JP6147131B2 - Arithmetic unit - Google Patents

Arithmetic unit Download PDF

Info

Publication number
JP6147131B2
JP6147131B2 JP2013157884A JP2013157884A JP6147131B2 JP 6147131 B2 JP6147131 B2 JP 6147131B2 JP 2013157884 A JP2013157884 A JP 2013157884A JP 2013157884 A JP2013157884 A JP 2013157884A JP 6147131 B2 JP6147131 B2 JP 6147131B2
Authority
JP
Japan
Prior art keywords
packet
processor
processing
arithmetic
queue
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
JP2013157884A
Other languages
Japanese (ja)
Other versions
JP2015028710A (en
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.)
Olympus Corp
Original Assignee
Olympus 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 Olympus Corp filed Critical Olympus Corp
Priority to JP2013157884A priority Critical patent/JP6147131B2/en
Publication of JP2015028710A publication Critical patent/JP2015028710A/en
Application granted granted Critical
Publication of JP6147131B2 publication Critical patent/JP6147131B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)
  • Memory System (AREA)

Description

本発明は、演算装置に関する。   The present invention relates to an arithmetic device.

従来から、プログラムに応じた演算処理を実行する複数のプロセッサを備えた、いわゆる、マルチプロセッサといわれる構成の演算装置がある。このような従来の演算装置では、それぞれのプロセッサが、外部ブロックから入力された演算対象のデータを含むパケットに応じたそれぞれの演算処理を、複数のプロセッサで共有されるメモリにそれぞれアクセスしながら、すなわち、演算処理で使用するデータをメモリから読み出したり、メモリに書き込んだりしながら実行する。   2. Description of the Related Art Conventionally, there is a so-called multiprocessor arithmetic device including a plurality of processors that execute arithmetic processing in accordance with a program. In such a conventional arithmetic device, each processor, while accessing each memory processing shared by a plurality of processors, each arithmetic processing according to a packet including data to be calculated input from an external block, In other words, the data used in the arithmetic processing is executed while being read from the memory or written to the memory.

このような従来の演算装置において、プロセッサとメモリとを対応付けるための構成が、特許文献1に開示されている。特許文献1には、プロセッサとメモリとの物理的な接続を切り替えるクロスバスイッチを用いて、それぞれのプロセッサに対応するメモリを変更する技術が開示されている。この特許文献1に開示された技術によって、全てのメモリを全てのプロセッサで共有する構成を実現している。   In such a conventional arithmetic device, a configuration for associating a processor with a memory is disclosed in Patent Document 1. Patent Document 1 discloses a technique for changing a memory corresponding to each processor by using a crossbar switch that switches a physical connection between the processor and the memory. With the technique disclosed in Patent Document 1, a configuration in which all memories are shared by all processors is realized.

そして、特許文献1に開示された技術を適用した演算装置では、それぞれのプロセッサが演算処理を実行する際に使用することができるメモリの構成を表した構成情報を事前に設定しておく、つまり、それぞれのプロセッサに対して、いくつかのメモリへのアクセスを事前に許可しておく。言い換えれば、それぞれのプロセッサ毎に、アクセスすることができるメモリを、構成情報によって予め定めたいくつかのメモリに事前に限定しておく。これにより、従来の演算装置では、それぞれの演算処理において、異なるプロセッサが同じメモリにアクセスしてしまう、すなわち、同じメモリに対するアクセスが競合してしまうことを回避している。   And in the arithmetic device to which the technique disclosed in Patent Document 1 is applied, configuration information representing the configuration of the memory that can be used when each processor executes arithmetic processing is set in advance. , For each processor, access to some memories is permitted in advance. In other words, the memory that can be accessed for each processor is limited in advance to some memories that are predetermined by the configuration information. Thereby, in the conventional arithmetic device, in each arithmetic processing, it is avoided that different processors access the same memory, that is, access to the same memory competes.

特許第4288421号公報Japanese Patent No. 4288421

しかしながら、特許文献1に開示された技術を適用した場合であっても、特定のメモリへのアクセスが許可されたプロセッサの数が増加すると、同じメモリにアクセスしてしまう頻度、つまり、同じメモリに対するアクセスが競合してしまう頻度が高くなってしまう。このため、例えば、それぞれのプロセッサに対してアクセスを許可するメモリの数を少なくするなど、複数のプロセッサから同じメモリに対するアクセスが競合しないような対応が必要となるが、1つのメモリに対するアクセスが複数のプロセッサに許可されている限りは、同じメモリに対するアクセスの競合が少なからず発生してしまう。つまり、プロセッサとメモリとが1対1で対応した構成でない限りは、複数のプロセッサからの同じメモリに対するアクセスの競合が少なからず発生してしまう。   However, even when the technique disclosed in Patent Document 1 is applied, if the number of processors permitted to access a specific memory increases, the frequency of accessing the same memory, that is, the same memory The frequency of access contention increases. For this reason, for example, it is necessary to take measures to prevent access to the same memory from a plurality of processors from competing, for example, by reducing the number of memories that allow access to each processor. As long as this processor is allowed, access contention to the same memory will occur. In other words, unless there is a one-to-one correspondence between the processor and the memory, there is a considerable contention for access to the same memory from a plurality of processors.

また、特許文献1に開示された技術では、例えば、演算装置内に備えたプロセッサの数に応じて構成情報の書き換えを行うなど、アクセスを許可するメモリの設定を事前に変更しておく必要もある。また、例えば、それぞれのプロセッサにアクセスを許可するメモリを変更する際にも、構成情報の書き換えが必要となる。   Further, in the technique disclosed in Patent Document 1, it is necessary to change the setting of the memory that permits access in advance, for example, rewriting configuration information according to the number of processors provided in the arithmetic device. is there. Further, for example, when changing the memory that permits access to each processor, the configuration information needs to be rewritten.

本発明は、上記の課題認識に基づいてなされたものであり、複数のプロセッサで複数のメモリを共有する演算装置において、複数のプロセッサからの同じメモリに対するアクセスの競合が発生することなく、それぞれのプロセッサ間で容易にメモリを共有することができる演算装置を提供することを目的としている。   The present invention has been made on the basis of the above-mentioned problem recognition. In an arithmetic unit that shares a plurality of memories with a plurality of processors, each of the plurality of processors can access the same memory without causing contention. An object of the present invention is to provide an arithmetic device capable of easily sharing a memory between processors.

上記の課題を解決するため、本発明の演算装置は、要求する演算処理の内容を表す情報が含まれた複数のパケットが入力され、該入力されたパケットに対する演算処理を実行する演算装置であって、前記パケットにおいて要求された演算処理の内容に応じた演算処理を行う処理機能を有し、次に実行する演算処理の内容を表す情報を含む演算処理後のパケットを出力する複数の処理演算部と、前記処理演算部が前記パケットに対する演算処理を実行する対象の演算対象データ、または前記パケットに対する演算処理を実行した結果のデータを格納する、それぞれの前記処理演算部で共有して使用される複数のデータ記憶部と、前記パケットを順次格納するパケットキューを具備し、該パケットキューに格納されたそれぞれの前記パケットに対して前記データ記憶部の使用権を付与して、いずれか1つの前記処理演算部に出力するパケット管理部と、前記パケットに付与された前記データ記憶部の使用権の情報に基づいて、該パケットに対する演算処理を実行する前記処理演算部と、該パケットに対する演算処理を実行する際に使用する前記データ記憶部との接続を切り替える接続切り替え部と、を備えることを特徴とする。   In order to solve the above-described problems, the arithmetic device of the present invention is an arithmetic device that receives a plurality of packets including information indicating the content of requested arithmetic processing and executes arithmetic processing on the input packets. A plurality of processing operations having a processing function for performing an arithmetic processing according to the content of the arithmetic processing requested in the packet, and outputting a packet after the arithmetic processing including information indicating the content of the arithmetic processing to be executed next And the processing calculation unit that stores calculation target data to be subjected to calculation processing on the packet, or data obtained as a result of execution of calculation processing on the packet. A plurality of data storage units and a packet queue for sequentially storing the packets, and each of the packets stored in the packet queue is A packet management unit that grants the right to use the data storage unit and outputs it to any one of the processing operation units, and the packet based on the information on the right to use the data storage unit assigned to the packet. And a connection switching unit that switches a connection between the processing operation unit that executes the operation process for the packet and the data storage unit that is used when the operation process for the packet is executed.

本発明によれば、複数のプロセッサで複数のメモリを共有する演算装置において、複数のプロセッサからの同じメモリに対するアクセスの競合が発生することなく、それぞれのプロセッサ間で容易にメモリを共有することができる演算装置を提供することができるという効果が得られる。   According to the present invention, in a computing device in which a plurality of processors share a plurality of memories, it is possible to easily share the memories between the processors without causing contention of access to the same memory from the plurality of processors. The effect that the computing device which can be provided can be provided is acquired.

本発明の第1の実施形態における演算装置の概略構成の一例を示したブロック図である。It is the block diagram which showed an example of schematic structure of the arithmetic unit in the 1st Embodiment of this invention. 本第1の実施形態の演算装置における演算処理の処理手順を示したフローチャートである。It is the flowchart which showed the process sequence of the arithmetic processing in the arithmetic unit of the 1st embodiment. 本第1の実施形態の演算装置に備えたキュー制御部がパケットを格納する処理手順を示したフローチャートである。It is the flowchart which showed the process sequence in which the queue control part with which the arithmetic unit of the 1st embodiment was equipped stores a packet. 本第1の実施形態の演算装置に備えたキュー制御部がワークメモリの使用権を付与する処理手順を示したフローチャートである。It is the flowchart which showed the process sequence which the queue control part with which the arithmetic unit of the 1st embodiment was provided gives the right to use work memory. 本第1の実施形態の演算装置に備えたキュー制御部がキューに格納されているパケットの出力を管理する処理手順を示したフローチャートである。It is the flowchart which showed the process sequence which the queue control part with which the arithmetic unit of the 1st embodiment was equipped manages the output of the packet stored in the queue. 本第1の実施形態の演算装置に備えたプロセッサが演算処理を実行する処理手順を示したフローチャートである。It is the flowchart which showed the process sequence in which the processor with which the arithmetic unit of the 1st embodiment was provided performs a calculation process. 本第1の実施形態の演算装置に備えた再エントリ判定部がパケットを再度格納する処理手順を示したフローチャートである。It is the flowchart which showed the process sequence in which the reentry determination part with which the arithmetic unit of the 1st embodiment was equipped stores a packet again. 本第1の実施形態の演算装置の動作におけるそれぞれの処理段階でのキューおよびワークメモリ内のパケットの状態の一例を示した図である。It is the figure which showed an example of the state of the queue in each process step in the operation | movement of the arithmetic unit of this 1st Embodiment, and the packet in a work memory. 本発明の第2の実施形態の演算装置の動作におけるそれぞれの処理段階でのキューおよびワークメモリ内のパケットの状態の一例を示した図である。It is the figure which showed an example of the state of the packet in a queue and a work memory in each process step in operation | movement of the arithmetic unit of the 2nd Embodiment of this invention. 本発明の第3の実施形態の演算装置の動作におけるそれぞれの処理段階でのキューおよびワークメモリ内のパケットの状態の一例を示した図である。It is the figure which showed an example of the state of the queue in each process step in the operation | movement of the arithmetic unit of the 3rd Embodiment of this invention, and the work memory. 本発明の第4の実施形態における演算装置の概略構成の一例を示したブロック図である。It is the block diagram which showed an example of schematic structure of the arithmetic unit in the 4th Embodiment of this invention. 本発明の第5の実施形態における演算装置の概略構成の一例を示したブロック図である。It is the block diagram which showed an example of schematic structure of the arithmetic unit in the 5th Embodiment of this invention. 本第5の実施形態の演算装置に備えたキュー制御部がワークメモリの使用権を付与する処理手順を示したフローチャートである。It is the flowchart which showed the process sequence which the queue control part with which the arithmetic unit of the 5th Embodiment was provided gives the right to use a work memory. 本第5の実施形態の演算装置に備えたキュー制御部がキューに格納されているパケットの出力を管理する処理手順を示したフローチャートである。It is the flowchart which showed the process sequence which the queue control part with which the arithmetic unit of the 5th Embodiment was equipped manages the output of the packet stored in the queue. 本第5の実施形態の演算装置に備えたプロセッサが演算処理を実行する処理手順を示したフローチャートである。It is the flowchart which showed the process sequence in which the processor with which the arithmetic unit of the 5th Embodiment was provided performs a calculation process. 本第5の実施形態の演算装置に備えた再エントリ判定部がパケットを再度格納する処理手順を示したフローチャートである。It is the flowchart which showed the process sequence in which the reentry determination part with which the arithmetic unit of the 5th Embodiment was equipped stores a packet again. 本第5の実施形態の演算装置の動作におけるそれぞれの処理段階でのキューおよびワークメモリ内のパケットの状態の一例を示した図である。It is the figure which showed an example of the state of the queue in each process step in the operation | movement of the arithmetic unit of this 5th Embodiment, and the packet in a work memory. 本発明の第6の実施形態の演算装置の動作におけるそれぞれの処理段階でのキューおよびワークメモリ内のパケットの状態の一例を示した図である。It is the figure which showed an example of the state of the packet in a queue and a work memory in each process step in operation | movement of the arithmetic unit of the 6th Embodiment of this invention. 本第6の実施形態の演算装置の動作において優先度が異なる場合のそれぞれの処理段階でのキューおよびワークメモリ内のパケットの状態の一例を示した図である。It is the figure which showed an example of the state of the packet in a queue and a work memory in each process step when priority differs in operation | movement of the arithmetic unit of this 6th Embodiment.

<第1の実施形態>
以下、本発明の第1の実施形態について、図面を参照して説明する。図1は、本第1の実施形態における演算装置の概略構成の一例を示したブロック図である。図1に示した演算装置10は、パケット管理部20と、3つのプロセッサ31〜プロセッサ33と、3つのローカルメモリ311〜ローカルメモリ331と、接続切り替え部40と、ワークメモリ50と、を備えている。なお、図1には、演算装置10に接続される外部ブロック100も併せて示している。
<First Embodiment>
A first embodiment of the present invention will be described below with reference to the drawings. FIG. 1 is a block diagram showing an example of a schematic configuration of the arithmetic device according to the first embodiment. 1 includes a packet management unit 20, three processors 31 to 33, three local memories 311 to 331, a connection switching unit 40, and a work memory 50. Yes. FIG. 1 also shows an external block 100 connected to the arithmetic device 10.

なお、以下の説明においては、3つのプロセッサ31〜プロセッサ33のそれぞれを区別せずに表す場合には、「プロセッサ30」という。また、以下の説明においては、3つのローカルメモリ311〜ローカルメモリ331のそれぞれを区別せずに表す場合には、「ローカルメモリ300」という。   In the following description, when each of the three processors 31 to 33 is expressed without distinction, it is referred to as “processor 30”. Further, in the following description, when each of the three local memories 311 to 331 is expressed without being distinguished, it is referred to as “local memory 300”.

外部ブロック100は、演算装置10に対して要求する演算処理の内容を表すパケットを、演算装置10に出力する。なお、外部ブロック100が演算装置10に出力するパケットは、プロセッサ30による演算処理の対象となる「演算対象データ」、パケットに対する演算処理を実行させるプロセッサ30を定める「プロセッサ番号」、プロセッサ30によるそれぞれの演算処理において使用するワークメモリ50内の記憶領域(以下、「ワーク領域」という)を定める「ワークメモリ番号」、およびそれぞれの演算処理における振る舞いとローカルメモリ300内に保持された処理コードとを1対1に対応付ける「処理番号」を含む情報である。また、パケットには、演算装置10内でのパケットに対する演算処理の状態を表すために使用される「パケット状態情報」を含んでいる。このパケット状態情報は、プロセッサ30によって演算処理が1度も実行されていないパケットであることを示す「未処理」、次のプロセッサ30に演算処理を引き継ぐパケットであることを示す「処理継続」、またはプロセッサ30によってパケットに対する演算処理が完了したことを示す、すなわち、演算装置10による一連の演算処理が完了したパケットであることを示す「処理完了」のいずれかの状態を示す情報である。また、処理コードには、演算対象データに対する演算内容、パケット状態情報およびプロセッサ番号の更新内容が記述されており、演算装置10に備えたそれぞれのプロセッサ30は、処理コードに従って、演算対象データに対する演算や、パケット状態情報およびプロセッサ番号の更新を行う。   The external block 100 outputs a packet representing the content of the arithmetic processing requested to the arithmetic device 10 to the arithmetic device 10. The packet output from the external block 100 to the arithmetic unit 10 includes “calculation target data” that is a target of arithmetic processing by the processor 30, “processor number” that defines the processor 30 that performs arithmetic processing on the packet, and the processor 30. The “work memory number” that defines the storage area (hereinafter referred to as “work area”) in the work memory 50 used in the above arithmetic processing, the behavior in each arithmetic processing, and the processing code held in the local memory 300 This information includes a “processing number” associated with one to one. Further, the packet includes “packet state information” used to represent the state of the arithmetic processing for the packet in the arithmetic unit 10. The packet status information includes “unprocessed” indicating that the processor 30 has not been subjected to the arithmetic processing once, “process continuation” indicating that the packet is to be taken over by the next processor 30, Alternatively, it is information indicating one of the states of “processing completed” indicating that the arithmetic processing for the packet is completed by the processor 30, that is, indicating that the packet has been subjected to a series of arithmetic processing by the arithmetic device 10. The processing code describes the calculation contents for the calculation target data, the packet status information, and the update contents of the processor number. Each processor 30 included in the calculation device 10 calculates the calculation target data according to the processing code. In addition, the packet status information and the processor number are updated.

演算装置10は、外部ブロック100から出力された複数のパケットの演算処理を、3つのプロセッサ31〜プロセッサ33のそれぞれで分担して実行する、分散並列処理型の演算装置である。   The arithmetic device 10 is a distributed parallel processing type arithmetic device that executes arithmetic processing of a plurality of packets output from the external block 100 in a shared manner by the three processors 31 to 33.

パケット管理部20は、外部ブロック100から入力された複数のパケットのそれぞれを一旦格納し、格納したそれぞれのパケットを、プロセッサ30のいずれか1つに割り当てる。これにより、演算装置10は、外部ブロック100から要求された複数の演算処理を並列に実行することができる。パケット管理部20は、格納したそれぞれのパケットに含まれるプロセッサ番号に基づいて、プロセッサ番号で定められたプロセッサ30に、それぞれのパケットを割り当てる。このとき、パケット管理部20は、格納したそれぞれのパケットをいずれか1つのプロセッサ30に割り当てる際、それぞれのパケットに含まれるワークメモリ番号で定められたワーク領域が使用できるか否かの状況と、そのパケットに含まれるプロセッサ番号で定められたプロセッサ30が別の演算処理を実行中であるか否かの状況とを確認する。つまり、パケット管理部20は、ワークメモリ50内のそれぞれのワーク領域の使用状況と、プロセッサ30の使用状況とを確認する。そして、パケット管理部20は、プロセッサ30がワーク領域を使用することができる状況であり、プロセッサ30がパケットを受け付けることができる状況であるパケットにワーク領域の使用権を付与して、対応するプロセッサ30に出力する。   The packet management unit 20 temporarily stores each of the plurality of packets input from the external block 100 and assigns each stored packet to any one of the processors 30. Thereby, the arithmetic unit 10 can execute a plurality of arithmetic processes requested from the external block 100 in parallel. The packet management unit 20 assigns each packet to the processor 30 defined by the processor number based on the processor number included in each stored packet. At this time, when the packet management unit 20 assigns each stored packet to any one of the processors 30, the situation as to whether or not the work area defined by the work memory number included in each packet can be used; It is confirmed whether or not the processor 30 defined by the processor number included in the packet is executing another calculation process. That is, the packet management unit 20 checks the usage status of each work area in the work memory 50 and the usage status of the processor 30. Then, the packet management unit 20 gives the right to use the work area to the packet in which the processor 30 can use the work area, and the processor 30 can accept the packet. Output to 30.

プロセッサ31〜プロセッサ33のそれぞれは、パケット管理部20によって割り当てられた、つまり、パケット管理部20から入力されたパケットに含まれる演算対象データに対する演算処理を、対応するローカルメモリ300に保持された処理コードに基づいて実行する処理演算部である。なお、それぞれのプロセッサ30がパケットに対する演算処理を実行する際には、まず、入力されたパケットに含まれるワークメモリ番号で定められたワークメモリ50内のワーク領域、すなわち、使用権が付与されたワーク領域と自身との接続の切り替えを、接続切り替え部40に行わせる。そして、自身と使用権が付与されたワーク領域とが接続された後に、ワーク領域を使用して、演算対象データに対する演算処理を実行する。   Each of the processors 31 to 33 is assigned to the packet management unit 20, that is, the arithmetic processing for the operation target data included in the packet input from the packet management unit 20 is stored in the corresponding local memory 300. It is a processing operation part to be executed based on the code. When each processor 30 executes an arithmetic process on a packet, first, a work area in the work memory 50 defined by a work memory number included in the input packet, that is, a usage right is given. The connection switching unit 40 switches the connection between the work area and itself. Then, after the work area to which the right of use is given is connected, the work area is used to perform arithmetic processing on the operation target data.

そして、プロセッサ30のそれぞれは、今回入力されたパケットの演算対象データに対する演算処理が完了したパケットを、パケット管理部20に出力する。このとき、プロセッサ30のそれぞれは、演算装置10による一連の演算処理が完了したパケットをパケット管理部20に出力する際には、パケット状態情報に「処理完了」を示す情報を設定したパケットを、パケット管理部20に出力する。   Then, each of the processors 30 outputs, to the packet management unit 20, a packet for which the arithmetic processing on the operation target data of the packet input this time has been completed. At this time, each of the processors 30 outputs a packet in which information indicating “processing complete” is set in the packet status information when outputting a packet for which a series of arithmetic processing by the arithmetic device 10 has been completed to the packet management unit 20. Output to the packet management unit 20.

また、プロセッサ30のそれぞれは、自身が演算処理を実行した後に引き続き別のプロセッサ30または自身に次の演算処理を実行させるパケットをパケット管理部20に出力する際には、パケット状態情報に「処理継続」を示す情報を設定したパケットを、次のパケットとしてパケット管理部20に出力する。このとき、プロセッサ30のそれぞれがパケット管理部20に出力する次のパケットには、外部ブロック100が演算装置10に出力するパケットと同様に、「演算対象データ」、「プロセッサ番号」、「ワークメモリ番号」、および「処理番号」が含まれている。なお、以下の説明においては、プロセッサ30のそれぞれがパケット管理部20に出力する次のパケットも、パケットという。   In addition, when each processor 30 outputs a packet that causes another processor 30 or itself to execute the next calculation process to the packet management unit 20 after the execution of the calculation process, the processor 30 includes “processing”. A packet in which information indicating “continuation” is set is output to the packet management unit 20 as the next packet. At this time, the next packet output from the processor 30 to the packet management unit 20 includes “operation target data”, “processor number”, “work memory” in the same manner as the packet output from the external block 100 to the arithmetic unit 10. “Number” and “processing number” are included. In the following description, the next packet output from the processor 30 to the packet management unit 20 is also referred to as a packet.

また、プロセッサ30のそれぞれは、パケット管理部20から入力された、別のプロセッサ30または自身が前回演算処理を実行したパケットに対する次の演算処理を実行した後に、さらに別のプロセッサ30または自身に引き続き次の演算処理を実行させるパケットをパケット管理部20に出力する際には、パケット状態情報に「処理継続」を示す情報を設定したパケットを、次のパケットとして再度、パケット管理部20に出力する。   In addition, each of the processors 30 continues to another processor 30 or itself after the next processor 30 or another processor 30 or the processor 30 itself that has been subjected to the previous computation process is executed. When outputting a packet for executing the next arithmetic processing to the packet management unit 20, a packet in which information indicating “process continuation” is set in the packet status information is output again to the packet management unit 20 as the next packet. .

それぞれのプロセッサ30におけるパケットに対する演算処理は、パケット状態情報に「処理完了」または「処理継続」が含まれているパケットを、パケット管理部20に出力することによって完了する。つまり、パケット管理部にパケットを出力したプロセッサ30は、次のパケットを受け付けられる状態となる。   The arithmetic processing for the packet in each processor 30 is completed by outputting to the packet management unit 20 a packet whose packet status information includes “processing complete” or “processing continuation”. That is, the processor 30 that has output the packet to the packet management unit is ready to receive the next packet.

ローカルメモリ311〜ローカルメモリ331のそれぞれは、対応するプロセッサ30の振る舞いを定める処理コードを保持している。ローカルメモリ300は、対応するプロセッサ30がパケットに含まれる演算対象データに対する演算処理を実行する際のそれぞれの処理毎に、パケットに含まれる処理番号に対応した処理コードが読み出される。図1に示した演算装置10の構成では、ローカルメモリ311がプロセッサ31に、ローカルメモリ321がプロセッサ32に、ローカルメモリ331がプロセッサ33に、それぞれ対応している。   Each of the local memory 311 to the local memory 331 holds a processing code that defines the behavior of the corresponding processor 30. The local memory 300 reads the processing code corresponding to the processing number included in the packet for each processing when the corresponding processor 30 executes the arithmetic processing on the calculation target data included in the packet. 1, the local memory 311 corresponds to the processor 31, the local memory 321 corresponds to the processor 32, and the local memory 331 corresponds to the processor 33, respectively.

接続切り替え部40は、それぞれのプロセッサ30と、プロセッサ30のそれぞれが演算対象データに対する演算処理を実行する際に使用するワークメモリ50内のワーク領域とが1対1で対応するように、プロセッサ30とワーク領域との接続を切り替える。また、接続切り替え部40は、プロセッサ30がアクセスするワーク領域のアドレスと、実際にアクセスされるアドレスとの切り替えを行う。これにより、それぞれのプロセッサ30は、いずれのワーク領域を使用して演算対象データに対する演算処理を実行する場合でも、ワーク領域のアドレスを考慮せずに(意識せずに)、演算処理を実行することができる。   The connection switching unit 40 is configured so that each processor 30 and the work area in the work memory 50 used when each of the processors 30 executes calculation processing on the calculation target data have a one-to-one correspondence. The connection between and the work area. Further, the connection switching unit 40 switches between the address of the work area accessed by the processor 30 and the address actually accessed. As a result, each processor 30 executes the arithmetic processing without considering (addressing) the address of the work area, regardless of which work area is used to execute the arithmetic processing on the calculation target data. be able to.

ワークメモリ50は、それぞれのパケットに含まれる演算対象データや、プロセッサ30のそれぞれが演算対象データに対する演算処理を実行している途中で生成したデータなどを一時的に記憶する複数のワーク領域を備えた、例えば、SRAM(Static Random Access Memory)などのメモリ、いわゆる、キャッシュメモリである。図1に示した演算装置10の構成では、5つのワーク領域(ワーク領域501〜ワーク領域505)を備えたワークメモリ50を示している。なお、以下の説明においては、5つのワーク領域501〜ワーク領域505のそれぞれを区別せずに表す場合には、「ワーク領域500」という。   The work memory 50 includes a plurality of work areas for temporarily storing calculation target data included in each packet, data generated while each of the processors 30 is executing calculation processing on the calculation target data, and the like. Further, for example, a memory such as SRAM (Static Random Access Memory), a so-called cache memory. The configuration of the arithmetic device 10 shown in FIG. 1 shows a work memory 50 having five work areas (work area 501 to work area 505). In the following description, when each of the five work areas 501 to 505 is expressed without being distinguished, it is referred to as a “work area 500”.

このような構成によって、演算装置10は、外部ブロック100から入力された複数のパケットに対する一連の演算処理を、それぞれのプロセッサ30で分担して実行する。ここで、演算装置10の構成、特に、パケット管理部20および接続切り替え部40について、さらに詳細に説明する。   With such a configuration, the arithmetic device 10 executes a series of arithmetic processing for a plurality of packets input from the external block 100 in a shared manner by the respective processors 30. Here, the configuration of the arithmetic device 10, in particular, the packet management unit 20 and the connection switching unit 40 will be described in more detail.

まず、パケット管理部20について、さらに詳細に説明する。パケット管理部20は、上述したように、外部ブロック100から入力された複数のパケットのそれぞれを一旦格納し、格納したそれぞれのパケットを、いずれか1つのプロセッサ30に割り当てる。パケット管理部20は、パケットキュー210と、キュー制御部220と、再エントリ判定部230と、ワークメモリ使用状況管理レジスタ240と、プロセッサ使用状況管理レジスタ250と、を備えている。   First, the packet management unit 20 will be described in more detail. As described above, the packet management unit 20 temporarily stores each of the plurality of packets input from the external block 100 and assigns each stored packet to any one processor 30. The packet management unit 20 includes a packet queue 210, a queue control unit 220, a reentry determination unit 230, a work memory usage status management register 240, and a processor usage status management register 250.

パケットキュー210は、キュー制御部220からの制御に応じて、外部ブロック100から入力された複数のパケット、および再エントリ判定部230から入力された、引き続き演算処理を実行するパケットを順次格納する、パケットの待ち行列のメモリである。パケットキュー210には、外部ブロック100および再エントリ判定部230から入力されたそれぞれのパケットが、入力された順番で順次格納される。また、パケットキュー210は、キュー制御部220からの制御に応じて、格納しているパケットをプロセッサ30のいずれか1つに出力する。なお、パケットキュー210に格納されたそれぞれのパケットは、基本的に、格納された順番で出力されるが、演算装置10では、キュー制御部220が、パケットキュー210に格納されたパケットの出力順番を制御する。   The packet queue 210 sequentially stores a plurality of packets input from the external block 100 and a packet that is subsequently input from the re-entry determination unit 230 and that is subjected to arithmetic processing in accordance with control from the queue control unit 220. Packet queue memory. Each packet input from the external block 100 and the reentry determination unit 230 is sequentially stored in the packet queue 210 in the input order. Further, the packet queue 210 outputs the stored packet to any one of the processors 30 in accordance with control from the queue control unit 220. The packets stored in the packet queue 210 are basically output in the order in which they are stored. In the arithmetic device 10, the queue control unit 220 outputs the packets stored in the packet queue 210. To control.

図1には、パケットを格納する5つの格納領域(格納領域211〜格納領域215)を備えたパケットキュー210の構成を示している。なお、図1において、パケットキュー210内のそれぞれの格納領域内に示した“#(シャープ)”に続く数字は、パケットがパケットキュー210に格納される順番を表している。そして、図1においては、パケットキュー210に最初に入力されたパケット#1、つまり、先頭のパケットは格納領域211に格納され、パケットキュー210にパケットが入力される毎に、格納領域212、格納領域213、格納領域214に順次格納され、パケットキュー210に最後に入力されたパケット#5、つまり、最後尾のパケットが格納領域215に格納された状態を示している。   FIG. 1 shows a configuration of a packet queue 210 having five storage areas (storage areas 211 to 215) for storing packets. In FIG. 1, the numbers following “# (sharp)” shown in the respective storage areas in the packet queue 210 indicate the order in which packets are stored in the packet queue 210. In FIG. 1, the packet # 1 that is first input to the packet queue 210, that is, the top packet is stored in the storage area 211, and each time a packet is input to the packet queue 210, the storage area 212 is stored. A state is shown in which the packet # 5 that is sequentially stored in the area 213 and the storage area 214 and is finally input to the packet queue 210, that is, the last packet is stored in the storage area 215.

キュー制御部220は、外部ブロック100からの演算処理の要求を受け付け、受け付けた演算処理の要求に対応するパケットのパケットキュー210への格納(エントリ)を制御する。キュー制御部220は、外部ブロック100からパケットの出力許可要求が入力されると、すなわち、外部ブロック100から演算処理を要求する信号が入力されると、パケットキュー210に備えた5つの格納領域の空き状況を確認し、パケットキュー210内の格納領域に空きがある場合に、パケットの出力を許可することを通知する許可信号を外部ブロック100に出力する。また、キュー制御部220は、パケットキュー210内の格納領域に空きがない場合には、パケットの出力を許可することができないことを通知する不許可信号を外部ブロック100に出力する。これにより、外部ブロック100は、許可された演算処理の要求に対応するパケットを、パケットキュー210に出力する。   The queue control unit 220 receives a calculation processing request from the external block 100 and controls the storage (entry) of a packet corresponding to the received calculation processing request in the packet queue 210. When a packet output permission request is input from the external block 100, that is, when a signal requesting arithmetic processing is input from the external block 100, the queue control unit 220 stores the five storage areas included in the packet queue 210. The availability status is confirmed, and when the storage area in the packet queue 210 is available, a permission signal notifying that the output of the packet is permitted is output to the external block 100. Further, the queue control unit 220 outputs a non-permission signal notifying that the output of the packet cannot be permitted to the external block 100 when the storage area in the packet queue 210 is not empty. As a result, the external block 100 outputs a packet corresponding to the permitted arithmetic processing request to the packet queue 210.

また、キュー制御部220は、プロセッサ30とワークメモリ50とのそれぞれの使用状況に応じて、パケットキュー210に格納されたパケットのプロセッサ30への出力を制御する。このとき、キュー制御部220は、パケットキュー210に格納されたそれぞれのパケットに含まれるワークメモリ番号を順次確認し、ワークメモリ50内のそれぞれのワーク領域500の使用状況に応じて、それぞれのパケットにワーク領域500の使用権を付与する。また、キュー制御部220は、ワーク領域500の使用権を付与したそれぞれのパケットに含まれるプロセッサ番号を順次確認し、パケットに対する演算処理を実行するプロセッサ30の使用状況に応じて、プロセッサ30に出力するパケットを選択する。そして、キュー制御部220は、プロセッサ30に出力するパケットとして選択したパケットを、パケットキュー210から対応するプロセッサ30に出力させる。   Further, the queue control unit 220 controls the output of the packets stored in the packet queue 210 to the processor 30 according to the usage status of the processor 30 and the work memory 50. At this time, the queue control unit 220 sequentially confirms the work memory number included in each packet stored in the packet queue 210, and determines each packet according to the usage status of each work area 500 in the work memory 50. Is given the right to use the work area 500. In addition, the queue control unit 220 sequentially checks the processor number included in each packet to which the right to use the work area 500 is granted, and outputs the processor number to the processor 30 according to the usage status of the processor 30 that performs arithmetic processing on the packet. Select the packet to be used. Then, the queue control unit 220 causes the packet 30 selected from the packet queue 210 to output the selected packet as the packet to be output to the processor 30.

より具体的には、まず、キュー制御部220は、パケットキュー210に格納されたそれぞれのパケットに含まれるワークメモリ番号で定められたワークメモリ50内のワーク領域500の使用状況を、ワークメモリ使用状況管理レジスタ240内のワークメモリ管理レジスタの情報から確認する。このワークメモリ管理レジスタの情報を確認した結果、ワークメモリ番号で定められたワーク領域500を使用することができる状況である場合、つまり、ワークメモリ管理レジスタの情報が「未使用」である場合、キュー制御部220は、ワーク領域500の使用権を付与する。そして、キュー制御部220は、ワーク領域500の使用権を付与したパケットに含まれるワークメモリ番号に対応するワークメモリ使用状況管理レジスタ240内のワークメモリ管理レジスタの情報を「使用中」に変更する。   More specifically, first, the queue control unit 220 determines the use status of the work area 500 in the work memory 50 defined by the work memory number included in each packet stored in the packet queue 210 as the work memory use. Confirmation is made from information in the work memory management register in the status management register 240. As a result of checking the information of the work memory management register, when the work area 500 defined by the work memory number can be used, that is, when the information of the work memory management register is “unused”, The queue control unit 220 grants the right to use the work area 500. Then, the queue control unit 220 changes the information in the work memory management register 240 in the work memory use status management register 240 corresponding to the work memory number included in the packet to which the work area 500 is granted the right to use to “in use”. .

なお、キュー制御部220がパケットに対してワーク領域500の使用権を付与する際には、パケットキュー210に格納されたワーク領域500の使用権が付与されていないパケットの内、先頭に近いパケット(図1においては、例えば、パケット#1)から順にワークメモリ番号を確認して、ワーク領域500の使用権を付与する。   When the queue control unit 220 grants the right to use the work area 500 to the packet, the packet near the head of the packets to which the right to use the work area 500 stored in the packet queue 210 is not granted. (In FIG. 1, for example, packet # 1), work memory numbers are confirmed in order, and the right to use the work area 500 is given.

続いて、キュー制御部220は、ワーク領域500の使用権が付与されたそれぞれのパケットに含まれるプロセッサ番号で定められたプロセッサ30の使用状況を、プロセッサ使用状況管理レジスタ250内の対応するプロセッサ管理レジスタの情報から確認する。このプロセッサ管理レジスタの情報を確認した結果、プロセッサ番号で定められたプロセッサ30がパケットを受け付けることができる状況である場合、つまり、プロセッサ管理レジスタの情報が「未使用」である場合、キュー制御部220は、このパケットはプロセッサ30に出力することができるパケットであると判断し、このパケットを次にプロセッサ30に出力するパケットとして選択する。そして、キュー制御部220は、選択したパケットに含まれるプロセッサ番号で定められたプロセッサ30に対応するプロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタの情報「使用中」に変更する。   Subsequently, the queue control unit 220 displays the usage status of the processor 30 determined by the processor number included in each packet to which the usage right of the work area 500 is given, as a corresponding processor management in the processor usage status management register 250. Check from the register information. As a result of checking the information of the processor management register, when the processor 30 determined by the processor number can accept a packet, that is, when the information of the processor management register is “unused”, the queue control unit 220 determines that this packet is a packet that can be output to the processor 30, and selects this packet as a packet to be output to the processor 30 next. Then, the queue control unit 220 changes the information “in use” in the processor management register in the processor usage status management register 250 corresponding to the processor 30 defined by the processor number included in the selected packet.

なお、キュー制御部220が次にプロセッサ30に出力するパケットを選択する際には、パケットキュー210に格納されたワーク領域500の使用権が付与されているパケットの内、先頭に近いパケット(図1においては、例えば、パケット#1)から順にプロセッサ番号を確認して、対応するプロセッサ30が他のパケットに対する演算処理を実行中ではないパケットを選択する。   When the queue control unit 220 selects a packet to be output to the processor 30 next, a packet near the top of the packets to which the right to use the work area 500 stored in the packet queue 210 is granted (see FIG. 1, for example, processor numbers are confirmed in order from packet # 1), and the corresponding processor 30 selects a packet that is not being executed for another packet.

その後、キュー制御部220は、選択したパケットに含まれるプロセッサ番号で定められたプロセッサ30へのパケットの出力を、パケットキュー210に指示する。これにより、パケットキュー210が、指示されたパケットを対応するプロセッサ30に出力し、プロセッサ30は、入力されたパケットの演算対象データに対する演算処理を実行する。   Thereafter, the queue control unit 220 instructs the packet queue 210 to output a packet to the processor 30 defined by the processor number included in the selected packet. As a result, the packet queue 210 outputs the instructed packet to the corresponding processor 30, and the processor 30 executes a calculation process on the calculation target data of the input packet.

再エントリ判定部230は、プロセッサ30から入力された演算処理後のパケットの出力先を制御する。このとき、再エントリ判定部230は、プロセッサ30から入力された演算処理後のパケットのパケット状態情報に基づいて、演算処理後のパケットの出力先を切り替える。そして、再エントリ判定部230は、演算処理後のパケットに対応するプロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタの情報と、ワークメモリ使用状況管理レジスタ240内のワークメモリ管理レジスタの情報とを変更する。   The reentry determination unit 230 controls the output destination of the packet after the arithmetic processing input from the processor 30. At this time, the re-entry determination unit 230 switches the output destination of the packet after the arithmetic processing based on the packet state information of the packet after the arithmetic processing input from the processor 30. Then, the re-entry determination unit 230 changes the information of the processor management register in the processor usage status management register 250 and the information of the work memory management register in the work memory usage status management register 240 corresponding to the packet after the arithmetic processing. To do.

より具体的には、再エントリ判定部230は、プロセッサ30から入力された演算処理後のパケットのパケット状態情報が「処理完了」を示している場合には、演算処理後のパケットを外部ブロック100に出力する。そして、再エントリ判定部230は、外部ブロック100に出力した演算処理後のパケットに対応するプロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタの情報を「未使用」に変更し、さらに、このパケットに対応するワークメモリ使用状況管理レジスタ240内のワークメモリ管理レジスタの情報を「未使用」に変更する。これにより、キュー制御部220は、パケットキュー210に格納された次のパケットのプロセッサ30への割り当てを行う、つまり、パケットの分配を行うことができる。   More specifically, when the packet status information of the packet after the arithmetic processing input from the processor 30 indicates “processing completed”, the reentry determination unit 230 sets the packet after the arithmetic processing to the external block 100. Output to. Then, the re-entry determination unit 230 changes the information of the processor management register in the processor usage status management register 250 corresponding to the post-computation packet output to the external block 100 to “unused”, and further to this packet. The information of the work memory management register in the corresponding work memory use status management register 240 is changed to “unused”. As a result, the queue control unit 220 can allocate the next packet stored in the packet queue 210 to the processor 30, that is, perform packet distribution.

また、再エントリ判定部230は、プロセッサ30から入力された演算処理後のパケットのパケット状態情報が「処理継続」を示している場合には、演算処理後のパケットを再度パケットキュー210に格納(エントリ)する。そして、再エントリ判定部230は、パケットキュー210に再度格納(エントリ)した演算処理後のパケットに対応するプロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタの情報を「未使用」に変更する。これにより、キュー制御部220が、パケットキュー210に格納された演算処理後のパケットのプロセッサ30への割り当てを再度行い、演算処理後のパケットに対する演算処理を継続することができる。   In addition, when the packet status information of the packet after the arithmetic processing input from the processor 30 indicates “processing continuation”, the re-entry determination unit 230 stores the packet after the arithmetic processing in the packet queue 210 again ( Entry). Then, the re-entry determination unit 230 changes the information in the processor management register in the processor usage status management register 250 corresponding to the packet after the arithmetic processing stored (entry) again in the packet queue 210 to “unused”. As a result, the queue control unit 220 can again allocate the post-computation packet stored in the packet queue 210 to the processor 30 and continue the computation process on the post-computation packet.

ワークメモリ使用状況管理レジスタ240は、演算装置10に備えたワークメモリ50内のワーク領域501〜ワーク領域505のそれぞれに対応し、対応するワーク領域500の使用状況を表す情報を保持している。図1に示した演算装置10の構成では、5つのワーク領域(ワーク領域501〜ワーク領域505)に対応した5つのワークメモリ管理レジスタ(ワークメモリ管理レジスタ241〜ワークメモリ管理レジスタ245)を備えたワークメモリ使用状況管理レジスタ240を示している。   The work memory usage status management register 240 corresponds to each of the work areas 501 to 505 in the work memory 50 provided in the arithmetic device 10 and holds information indicating the usage status of the corresponding work area 500. The configuration of the arithmetic unit 10 shown in FIG. 1 includes five work memory management registers (work memory management registers 241 to 245) corresponding to five work areas (work areas 501 to 505). A work memory use status management register 240 is shown.

より具体的には、ワークメモリ管理レジスタ241がワーク領域501の使用状況を表す情報を保持する。また、ワークメモリ管理レジスタ242がワーク領域502の使用状況を表す情報を保持し、ワークメモリ管理レジスタ243がワーク領域503の使用状況を表す情報を保持し、ワークメモリ管理レジスタ244がワーク領域504の使用状況を表す情報を保持し、ワークメモリ管理レジスタ245がワーク領域505の使用状況を表す情報を保持する。そして、それぞれのワークメモリ管理レジスタは、対応するワーク領域500がいずれのプロセッサ30にも使用されていない場合に「未使用」であることを表す情報を保持し、対応するワーク領域500がいずれかのプロセッサ30に使用されている場合に「使用中」であることを表す情報を保持する。   More specifically, the work memory management register 241 holds information indicating the usage status of the work area 501. Also, the work memory management register 242 holds information indicating the usage status of the work area 502, the work memory management register 243 holds information indicating the usage status of the work area 503, and the work memory management register 244 stores the information indicating the usage status of the work area 504. Information indicating the usage status is held, and the work memory management register 245 holds information indicating the usage status of the work area 505. Each work memory management register holds information indicating that the corresponding work area 500 is “unused” when the corresponding work area 500 is not used by any processor 30. Information indicating that the processor 30 is “in use”.

キュー制御部220および再エントリ判定部230は、ワークメモリ使用状況管理レジスタ240内のそれぞれのワークメモリ管理レジスタを常時確認することによって、演算装置10に備えたワークメモリ50内のそれぞれのワーク領域500の使用状況を常時監視する。ワークメモリ使用状況管理レジスタ240内のそれぞれのワークメモリ管理レジスタは、キュー制御部220および再エントリ判定部230によって読み書きすることができる。より具体的には、キュー制御部220は、パケットキュー210に格納されたそれぞれのパケットに対してワーク領域500の使用権を付与する際に、パケットに使用権を付与するワーク領域500に対応するワークメモリ管理レジスタの情報を「使用中」に変更する。また、再エントリ判定部230は、プロセッサ30から入力された演算処理後のパケットに付与されたワーク領域500の使用権を開放する際に、パケットの使用権を開放するワーク領域500に対応するワークメモリ管理レジスタの情報を「未使用」に変更する。   The queue control unit 220 and the re-entry determination unit 230 constantly check the respective work memory management registers in the work memory use status management register 240, so that each work area 500 in the work memory 50 provided in the arithmetic device 10 is obtained. Always monitor the usage status. Each work memory management register in the work memory usage status management register 240 can be read and written by the queue control unit 220 and the re-entry determination unit 230. More specifically, the queue control unit 220 corresponds to the work area 500 that gives the use right to the packet when the use right of the work area 500 is given to each packet stored in the packet queue 210. Change the information in the work memory management register to “in use”. In addition, when the reentry determination unit 230 releases the use right of the work area 500 given to the packet after the arithmetic processing input from the processor 30, the work corresponding to the work area 500 that releases the use right of the packet. Change the information in the memory management register to “unused”.

なお、それぞれのワークメモリ管理レジスタには、パケットに対して演算処理を実行するプロセッサ30を表す値を書き込むことによって、「使用中」であることを表す。例えば、プロセッサ32が演算処理を実行するパケットに、ワーク領域504の使用権を付与する場合、ワーク領域504に対応するワークメモリ管理レジスタ244に、プロセッサ32を表す値を書き込む。これにより、ワークメモリ管理レジスタ244は、ワーク領域504がプロセッサ32によって「使用中」であることを表すことができる。また、それぞれのワークメモリ管理レジスタに、いずれのプロセッサ30を表さない値(例えば、「0」)を書き込むことによって、「未使用」であることを表す。   In each work memory management register, a value representing the processor 30 that executes arithmetic processing on a packet is written to indicate “in use”. For example, when the processor 32 grants the right to use the work area 504 to a packet for executing arithmetic processing, a value representing the processor 32 is written in the work memory management register 244 corresponding to the work area 504. Thus, the work memory management register 244 can indicate that the work area 504 is “in use” by the processor 32. In addition, a value that does not represent any processor 30 (for example, “0”) is written in each work memory management register to indicate “unused”.

プロセッサ使用状況管理レジスタ250は、演算装置10に備えたプロセッサ30のそれぞれに対応し、対応するプロセッサ30の使用状況を表す情報を保持している。図1に示した演算装置10の構成では、3つのプロセッサ30(プロセッサ31〜プロセッサ33)に対応した3つのプロセッサ管理レジスタ(プロセッサ管理レジスタ251〜プロセッサ管理レジスタ253)を備えたプロセッサ使用状況管理レジスタ250を示している。   The processor usage status management register 250 corresponds to each of the processors 30 included in the arithmetic device 10 and holds information indicating the usage status of the corresponding processor 30. In the configuration of the arithmetic unit 10 shown in FIG. 1, a processor usage status management register including three processor management registers (processor management register 251 to processor management register 253) corresponding to three processors 30 (processor 31 to processor 33). 250 is shown.

より具体的には、プロセッサ管理レジスタ251がプロセッサ31の使用状況を表す情報を保持する。また、プロセッサ管理レジスタ252がプロセッサ32の使用状況を表す情報を保持し、プロセッサ管理レジスタ253がプロセッサ33の使用状況を表す情報を保持する。そして、それぞれのプロセッサ管理レジスタは、対応するプロセッサ30がいずれのパケットに対する演算処理を実行していない場合に「未使用」であることを表す情報を保持し、対応するプロセッサ30がいずれかのパケットに対する演算処理を実行している場合に「使用中」であることを表す情報を保持する。   More specifically, the processor management register 251 holds information indicating the usage status of the processor 31. The processor management register 252 holds information indicating the usage status of the processor 32, and the processor management register 253 holds information indicating the usage status of the processor 33. Each processor management register holds information indicating that the corresponding processor 30 is “unused” when the corresponding processor 30 is not performing arithmetic processing on any packet. When the arithmetic processing for is performed, information indicating “in use” is held.

キュー制御部220および再エントリ判定部230は、プロセッサ使用状況管理レジスタ250内のそれぞれのプロセッサ管理レジスタを常時確認することによって、演算装置10に備えたそれぞれのプロセッサ30の使用状況を常時監視する。プロセッサ使用状況管理レジスタ250内のそれぞれのプロセッサ管理レジスタは、キュー制御部220および再エントリ判定部230によって読み書きすることができる。より具体的には、キュー制御部220は、選択したパケットのプロセッサ30への出力をパケットキュー210に指示する際に、出力するパケットに含まれるプロセッサ番号で定められたプロセッサ30に対応するプロセッサ管理レジスタの情報「使用中」に変更する。また、再エントリ判定部230は、プロセッサ30から演算処理後のパケットが入力された際に、パケットに対する演算処理を実行したプロセッサ30に対応するプロセッサ管理レジスタの情報を「未使用」に変更する。   The queue control unit 220 and the re-entry determination unit 230 constantly monitor the usage status of each processor 30 included in the arithmetic device 10 by constantly checking the respective processor management registers in the processor usage status management register 250. Each processor management register in the processor usage status management register 250 can be read and written by the queue control unit 220 and the re-entry determination unit 230. More specifically, when the queue control unit 220 instructs the packet queue 210 to output the selected packet to the processor 30, the processor management corresponding to the processor 30 defined by the processor number included in the packet to be output. Change the register information to “In Use”. In addition, when a post-computation packet is input from the processor 30, the re-entry determination unit 230 changes the information in the processor management register corresponding to the processor 30 that has performed the computation process on the packet to “unused”.

なお、プロセッサ管理レジスタに、プロセッサ30が演算処理を実行する際に使用するワーク領域500を表す情報を含ませることもできる。例えば、プロセッサ32が演算処理を実行する際にワーク領域504を使用する場合、プロセッサ32に対応するプロセッサ管理レジスタ252に、ワーク領域504を表す値を書き込む。これにより、プロセッサ管理レジスタ252は、プロセッサ32がワーク領域504を使用した演算処理の実行するために「使用中」であることを表すことができる。   Note that the processor management register may include information representing the work area 500 used when the processor 30 executes arithmetic processing. For example, when the work area 504 is used when the processor 32 executes arithmetic processing, a value representing the work area 504 is written in the processor management register 252 corresponding to the processor 32. Accordingly, the processor management register 252 can indicate that the processor 32 is “in use” in order to execute the arithmetic processing using the work area 504.

このような構成によって、パケット管理部20は、外部ブロック100から入力された複数のパケット、およびプロセッサ30から入力された演算処理後のパケットのプロセッサ30への出力、または外部ブロック100への出力を、全てのプロセッサ30および全てのワークメモリ50の「使用中」または「未使用」の2つの状態に応じて管理する。   With such a configuration, the packet management unit 20 outputs a plurality of packets input from the external block 100 and a packet after arithmetic processing input from the processor 30 to the processor 30 or output to the external block 100. The management is performed according to two states of “in use” or “not in use” of all the processors 30 and all the work memories 50.

次に、接続切り替え部40について、さらに詳細に説明する。接続切り替え部40は、上述したように、それぞれのプロセッサ30と、プロセッサ30のそれぞれが演算対象データに対する演算処理を実行する際に使用するワークメモリ50内のワーク領域500とが1対1で対応するように、プロセッサ30とワーク領域500との接続を切り替える。接続切り替え部40は、アドレス変換部401〜アドレス変換部403と、クロスバスイッチ450と、を備えている。   Next, the connection switching unit 40 will be described in more detail. As described above, the connection switching unit 40 has a one-to-one correspondence between each processor 30 and the work area 500 in the work memory 50 used when each of the processors 30 executes a calculation process on the calculation target data. Thus, the connection between the processor 30 and the work area 500 is switched. The connection switching unit 40 includes an address conversion unit 401 to an address conversion unit 403 and a crossbar switch 450.

アドレス変換部401〜アドレス変換部403のそれぞれは、演算装置10に備えた3つのプロセッサ31〜プロセッサ33のそれぞれに対応し、対応するプロセッサ30がパケットに含まれる演算対象データに対する演算処理を実行する際に使用するワーク領域500を指定するアドレスと、実際に使用されるワークメモリ50内のワーク領域500のアドレスとを1対1に対応付ける。なお、以下の説明においては、3つのアドレス変換部401〜アドレス変換部403のそれぞれを区別せずに表す場合には、「アドレス変換部400」という。   Each of the address conversion unit 401 to the address conversion unit 403 corresponds to each of the three processors 31 to 33 provided in the calculation device 10, and the corresponding processor 30 executes calculation processing on the calculation target data included in the packet. The address that designates the work area 500 to be used at the time and the address of the work area 500 in the work memory 50 that is actually used are associated one-to-one. In the following description, when each of the three address conversion units 401 to 403 is expressed without distinction, it is referred to as an “address conversion unit 400”.

より具体的には、それぞれのアドレス変換部400は、ワークメモリ番号とワークメモリ50内のワーク領域500とを1対1に対応させたテーブルを備えている。そして、それぞれのアドレス変換部400は、対応するプロセッサ30が演算処理を実行するパケットに含まれるワークメモリ番号に対応するテーブルを参照して、対応するプロセッサ30が使用するワーク領域500を特定する。さらに、それぞれのアドレス変換部400は、特定したワーク領域500の情報に基づいて、対応するプロセッサ30がワーク領域500にアクセスする際の論理アドレスを、実際にワークメモリ50内のワーク領域500をアクセスする際の物理アドレスに変換する。これにより、それぞれのプロセッサ30は、パケットに対する演算処理を実行する際に使用するワーク領域500の物理アドレスを考慮することなく(意識することなく)、いずれのワーク領域500を使用する場合でも、同様に演算処理を実行することができる。つまり、それぞれのプロセッサ30は、いずれのワーク領域500を使用する場合でも、同一の論理アドレスでアクセスすることができる。   More specifically, each address conversion unit 400 includes a table in which a work memory number and a work area 500 in the work memory 50 are associated with each other on a one-to-one basis. Each address conversion unit 400 refers to a table corresponding to a work memory number included in a packet for which the corresponding processor 30 executes arithmetic processing, and specifies a work area 500 used by the corresponding processor 30. Furthermore, each address conversion unit 400 actually accesses the work area 500 in the work memory 50 using the logical address when the corresponding processor 30 accesses the work area 500 based on the information of the specified work area 500. Is converted to a physical address. Thereby, each processor 30 is the same regardless of which work area 500 is used without considering (without being aware of) the physical address of the work area 500 used when performing arithmetic processing on a packet. Arithmetic processing can be executed. That is, each processor 30 can access with the same logical address regardless of which work area 500 is used.

例えば、図1に示した演算装置10の構成において、ワークメモリ50内のワーク領域501に物理アドレス0x1000〜0x1FFFが、ワーク領域502に物理アドレス0x2000〜0x2FFFが、ワーク領域503に物理アドレス0x3000〜0x3FFFが、ワーク領域504に物理アドレス0x4000〜0x4FFFが、ワーク領域505に物理アドレス0x5000〜0x5FFFが、それぞれ割り当てられている場合を考える。このとき、例えば、アドレス変換部401が、プロセッサ31がワーク領域500にアクセスする際の論理アドレス0x0000〜0x0FFFを、ワーク領域502の物理アドレス0x2000〜0x2FFFに変換することによって、プロセッサ31は、ワークメモリ50内のワーク領域502に実際にアクセスすることができる。   For example, in the configuration of the arithmetic unit 10 shown in FIG. 1, the physical address 0x1000-0x1FFF is in the work area 501 in the work memory 50, the physical address 0x2000-0x2FFF is in the work area 502, and the physical address 0x3000-0x3FFF is in the work area 503. However, a case is considered where physical addresses 0x4000 to 0x4FFF are assigned to the work area 504 and physical addresses 0x5000 to 0x5FFF are assigned to the work area 505, respectively. At this time, for example, the address conversion unit 401 converts the logical address 0x0000 to 0x0FFF when the processor 31 accesses the work area 500 into the physical address 0x2000 to 0x2FFF of the work area 502, so that the processor 31 50 can actually access the work area 502 within the.

このように、それぞれのアドレス変換部400が、対応するプロセッサ30がワーク領域500にアクセスする際の論理アドレスを、実際のワーク領域500の物理アドレスに変換することによって、それぞれのプロセッサ30は、いずれのワーク領域500に対してアクセスする場合でも、同一の論理アドレス0x0000〜0x0FFFでアクセスすることができる。   In this way, each address conversion unit 400 converts the logical address when the corresponding processor 30 accesses the work area 500 into the physical address of the actual work area 500, so that each processor 30 Even when the work area 500 is accessed, the same logical address 0x0000 to 0x0FFF can be accessed.

また、それぞれのアドレス変換部400は、対応するプロセッサ30とワークメモリ50内のワーク領域500とを1対1に接続させるクロスバスイッチ450の制御値をまとめたテーブルを備えている。そして、それぞれのアドレス変換部400は、対応するプロセッサ30が演算処理を実行するパケットに含まれるワークメモリ番号に基づいて、制御値をまとめたテーブルを参照してクロスバスイッチ450の制御値を決定し、決定した制御値をクロスバスイッチ450に出力する。   Each address conversion unit 400 includes a table in which control values of the crossbar switch 450 for connecting the corresponding processor 30 and the work area 500 in the work memory 50 in a one-to-one relationship. Then, each address conversion unit 400 determines the control value of the crossbar switch 450 by referring to a table that summarizes the control values based on the work memory number included in the packet for which the corresponding processor 30 executes the arithmetic processing. The determined control value is output to the crossbar switch 450.

クロスバスイッチ450は、演算装置10に備えた3つのプロセッサ31〜プロセッサ33のそれぞれがワーク領域500にアクセスする際の信号線と、プロセッサ31〜プロセッサ33のそれぞれがパケットに対する演算処理を実行する際に使用するワークメモリ50内の5つのワーク領域501〜ワーク領域505のそれぞれの信号線とを1対1に接続するスイッチである。クロスバスイッチ450は、アドレス変換部400のそれぞれから入力された制御値に応じて、それぞれのプロセッサ30の信号線とそれぞれのワーク領域500の信号線との接続を切り替える。   The crossbar switch 450 is a signal line used when each of the three processors 31 to 33 provided in the arithmetic device 10 accesses the work area 500, and when each of the processors 31 to 33 performs arithmetic processing on a packet. It is a switch that connects the signal lines of the five work areas 501 to 505 in the work memory 50 to be used in a one-to-one relationship. The crossbar switch 450 switches the connection between the signal line of each processor 30 and the signal line of each work area 500 according to the control value input from each of the address conversion units 400.

このような構成によって、接続切り替え部40は、それぞれのプロセッサ30と、プロセッサ30のそれぞれが演算対象データに対する演算処理を実行する際に使用するワークメモリ50内のワーク領域500とを1対1で対応させる。   With this configuration, the connection switching unit 40 has a one-to-one correspondence between each processor 30 and the work area 500 in the work memory 50 that is used when each processor 30 executes a calculation process on the calculation target data. Make it correspond.

次に、演算装置10による演算処理の処理手順について説明する。図2は、本第1の実施形態の演算装置10における演算処理の処理手順を示したフローチャートである。図2には、演算装置10の全体の処理手順を示している。図2の説明においては、演算装置10が実行する演算処理の全体の処理の流れを説明し、それぞれの詳細な処理手順は、後述する。   Next, a processing procedure of arithmetic processing by the arithmetic device 10 will be described. FIG. 2 is a flowchart illustrating the processing procedure of the arithmetic processing in the arithmetic device 10 according to the first embodiment. FIG. 2 shows an overall processing procedure of the arithmetic device 10. In the description of FIG. 2, the overall processing flow of the arithmetic processing executed by the arithmetic device 10 will be described, and detailed processing procedures of each will be described later.

演算装置10は、外部ブロック100からパケットの出力許可要求が入力されると、すなわち、外部ブロック100から演算処理の要求が入力されると、入力された演算処理の要求に対応するパケットに対する演算処理を開始する。まず、ステップS1において、パケット管理部20内のキュー制御部220は、外部ブロック100からの演算処理の要求を受け付け、演算処理の要求に対応するパケットを一旦パケットキュー210に格納(エントリ)するための初エントリ処理を行う。   When a packet output permission request is input from the external block 100, that is, when an arithmetic processing request is input from the external block 100, the arithmetic device 10 performs arithmetic processing on a packet corresponding to the input arithmetic processing request. To start. First, in step S1, the queue control unit 220 in the packet management unit 20 receives a calculation processing request from the external block 100 and temporarily stores (entries) a packet corresponding to the calculation processing request in the packet queue 210. The first entry processing is performed.

続いて、ステップS2において、キュー制御部220は、パケットキュー210に格納したパケットに対してワークメモリ50内のワーク領域500の使用権を付与するための使用権付与処理を行う。続いて、ステップS3において、キュー制御部220は、パケットキュー210に格納されているワーク領域500の使用権が付与されたパケットを対応するプロセッサ30に出力するためのキュー管理処理を行う。   Subsequently, in step S <b> 2, the queue control unit 220 performs usage right grant processing for granting the right to use the work area 500 in the work memory 50 to the packets stored in the packet queue 210. Subsequently, in step S <b> 3, the queue control unit 220 performs a queue management process for outputting a packet to which the right to use the work area 500 stored in the packet queue 210 is granted to the corresponding processor 30.

続いて、ステップS4において、パケット管理部20からパケットが入力されたプロセッサ30は、入力されたパケットに対する演算処理を実行する。続いて、ステップS5において、パケット管理部20内の再エントリ判定部230は、プロセッサ30から入力された演算処理後のパケットのパケット状態情報に応じて出力先を判定する再エントリ判定処理を行う。   Subsequently, in step S4, the processor 30 to which the packet is input from the packet management unit 20 executes arithmetic processing on the input packet. Subsequently, in step S <b> 5, the reentry determination unit 230 in the packet management unit 20 performs reentry determination processing for determining an output destination according to the packet state information of the packet after the arithmetic processing input from the processor 30.

続いて、ステップS6において、キュー制御部220は、外部ブロック100から入力された全てのパケットに対する演算処理が完了したか否かを確認する。このステップS6の確認によって、全てのパケットに対する演算処理が完了していない場合(ステップS6の“NO”)には、ステップS2に戻って、他のパケットに対する処理を継続する。また、ステップS6の確認によって、全てのパケットに対する演算処理が完了した場合(ステップS6の“YES”)には、演算装置10における処理を完了する。   Subsequently, in step S <b> 6, the queue control unit 220 confirms whether the arithmetic processing for all the packets input from the external block 100 has been completed. If the calculation processing for all the packets is not completed by the confirmation in step S6 (“NO” in step S6), the processing returns to step S2 and the processing for other packets is continued. Further, when the calculation processing for all the packets is completed by the confirmation in step S6 (“YES” in step S6), the processing in the calculation device 10 is completed.

なお、図2に示した演算装置10における全体の処理の流れのフローチャートでは、それぞれの処理が順次行われるように示されているが、演算装置10に備えたそれぞれの構成要素は、それぞれの処理を常に行っている。すなわち、図2のフローチャートに示した演算装置10におけるそれぞれの処理は、平行して行われる処理である。   In the flowchart of the overall processing flow in the arithmetic device 10 shown in FIG. 2, each processing is shown to be performed sequentially, but each component provided in the arithmetic device 10 is different from each other. Always going. That is, each process in the arithmetic unit 10 shown in the flowchart of FIG. 2 is a process performed in parallel.

次に、演算装置10に備えたパケット管理部20内のキュー制御部220による初エントリ処理(図2に示したステップS1)の処理手順について説明する。図3は、本第1の実施形態の演算装置10に備えたキュー制御部220がパケットを格納する初エントリ処理の処理手順を示したフローチャートである。   Next, a processing procedure of the first entry process (step S1 shown in FIG. 2) by the queue control unit 220 in the packet management unit 20 provided in the arithmetic device 10 will be described. FIG. 3 is a flowchart showing the processing procedure of the first entry process in which the queue control unit 220 included in the arithmetic device 10 according to the first embodiment stores a packet.

キュー制御部220は、初エントリ処理を開始すると、まず、ステップS11において、外部ブロック100からパケットの出力許可要求があるか否か、すなわち、外部ブロック100からの演算処理の要求があるか否かを確認する。ステップS11において、外部ブロック100からパケットの出力許可要求がない場合(ステップS11の“NO”)には、キュー制御部220は、初エントリ処理を完了する。   When starting the first entry process, the queue control unit 220 first determines in step S11 whether there is a packet output permission request from the external block 100, that is, whether there is a calculation processing request from the external block 100. Confirm. In step S11, when there is no packet output permission request from the external block 100 (“NO” in step S11), the queue control unit 220 completes the first entry process.

また、ステップS11において、外部ブロック100からパケットの出力許可要求がある場合(ステップS11の“YES”)には、ステップS12において、キュー制御部220は、すでにパケットキュー210に格納済みのパケットの数(以下、「エントリ済みパケット数」という)が、パケットキュー210に格納することができる予め定めた最大のパケットの数(以下、「最大エントリ数」という)よりも少ないか否かを確認する。なお、最大エントリ数は、演算装置10に備えたパケットキュー210内の格納領域の数と、演算装置10に備えたプロセッサ30の数とに基づいて、予め定められる値である。   If there is a packet output permission request from the external block 100 in step S11 (“YES” in step S11), the queue control unit 220 in step S12 determines the number of packets already stored in the packet queue 210. It is checked whether or not the number of packets (hereinafter referred to as “number of packets already entered”) is smaller than a predetermined maximum number of packets that can be stored in the packet queue 210 (hereinafter referred to as “maximum number of entries”). The maximum number of entries is a value determined in advance based on the number of storage areas in the packet queue 210 provided in the arithmetic device 10 and the number of processors 30 provided in the arithmetic device 10.

ステップS12において、エントリ済みパケット数が最大エントリ数以上(エントリ済みパケット数≧最大エントリ数)である場合(ステップS12の“NO”)には、ステップS13において、キュー制御部220は、パケットの出力を許可することができないことを通知する不許可信号を外部ブロック100に出力し、初エントリ処理を完了する。   In step S12, when the number of entered packets is equal to or greater than the maximum number of entries (number of entered packets ≧ maximum number of entries) (“NO” in step S12), in step S13, the queue control unit 220 outputs the packet. Is output to the external block 100, and the first entry process is completed.

また、ステップS12において、エントリ済みパケット数が最大エントリ数よりも少ない(エントリ済みパケット数<最大エントリ数)場合(ステップS12の“YES”)には、ステップS14において、キュー制御部220は、パケットの出力を許可することを通知する許可信号を外部ブロック100に出力し、外部ブロック100からのパケットを受け付ける。そして、キュー制御部220は、外部ブロック100から今回入力されたパケットのパケット状態情報に「未処理」を示す情報を設定する。   In step S12, when the number of packets that have been entered is smaller than the maximum number of entries (number of packets that have been entered <maximum number of entries) (“YES” in step S12), in step S14, the queue control unit 220 Is output to the external block 100, and a packet from the external block 100 is received. Then, the queue control unit 220 sets information indicating “unprocessed” in the packet status information of the packet input this time from the external block 100.

続いて、ステップS15において、キュー制御部220は、パケット状態情報に「未処理」を示す情報を設定した、外部ブロック100から今回入力されたパケットを、パケットキュー210内ですでにパケットが格納されている格納領域の次の格納領域、すなわち、現在の最後尾の格納領域に格納(エントリ)し、初エントリ処理を完了する。   Subsequently, in step S15, the queue control unit 220 sets the information indicating “unprocessed” in the packet status information, and the packet input this time from the external block 100 is already stored in the packet queue 210. Storage (entry) in the storage area next to the current storage area, that is, the current storage area at the tail end, and the first entry process is completed.

このような処理によって、キュー制御部220は、外部ブロック100から入力された複数のパケットのそれぞれを、一旦パケットキュー210に格納(エントリ)する。なお、キュー制御部220は、初エントリ処理を常時行っている。すなわち、キュー制御部220は、演算装置10が動作している間、常に外部ブロック100から出力されるパケットの出力許可要求を監視して、初エントリ処理を行う。このため、キュー制御部220は、例えば、ステップS12において、エントリ済みパケット数<最大エントリ数である場合(ステップS12の“YES”)に、パケットの出力を許可することを通知する許可信号を、外部ブロック100に出力している構成にすることもできる。   Through such processing, the queue control unit 220 temporarily stores (entries) each of the plurality of packets input from the external block 100 in the packet queue 210. The queue control unit 220 always performs the initial entry process. That is, the queue control unit 220 always monitors the output permission request of the packet output from the external block 100 and performs the initial entry process while the arithmetic device 10 is operating. For this reason, for example, in step S12, when the number of entered packets <the maximum number of entries (“YES” in step S12), the queue control unit 220 sends a permission signal to notify that the packet output is permitted. It can also be configured to output to the external block 100.

次に、演算装置10に備えたパケット管理部20内のキュー制御部220によるワークメモリ50内のワーク領域500の使用権付与処理(図2に示したステップS2)の処理手順について説明する。図4は、本第1の実施形態の演算装置10に備えたキュー制御部220がワークメモリ50内のワーク領域500の使用権を付与する使用権付与処理の処理手順を示したフローチャートである。   Next, the processing procedure of the right to use the work area 500 in the work memory 50 (step S2 shown in FIG. 2) by the queue control unit 220 in the packet management unit 20 provided in the arithmetic device 10 will be described. FIG. 4 is a flowchart illustrating a processing procedure of a usage right granting process in which the queue control unit 220 included in the arithmetic device 10 according to the first embodiment grants the usage right of the work area 500 in the work memory 50.

キュー制御部220は、使用権付与処理を開始すると、まず、ステップS21において、ワークメモリ50内のそれぞれのワーク領域500の内、パケットの演算処理に使用することができるワーク領域500、すなわち、未使用のワーク領域500があるか否かを確認する。より具体的には、キュー制御部220は、ワークメモリ使用状況管理レジスタ240内のそれぞれのワークメモリ管理レジスタの情報を確認し、ワークメモリ管理レジスタの情報が「未使用」であるワーク領域500を検索する。ステップS21において、未使用のワーク領域500がない場合(ステップS21の“NO”)には、キュー制御部220は、使用権付与処理を完了する。   When the queue control unit 220 starts the usage right granting process, first, in step S21, among the work areas 500 in the work memory 50, the work area 500 that can be used for packet calculation processing, that is, the unprocessed area is not yet stored. It is confirmed whether or not there is a work area 500 to be used. More specifically, the queue control unit 220 confirms information on each work memory management register in the work memory use status management register 240, and creates a work area 500 in which the information on the work memory management register is “unused”. Search for. In step S21, when there is no unused work area 500 (“NO” in step S21), the queue control unit 220 completes the usage right granting process.

また、ステップS21において、未使用のワーク領域500がある場合(ステップS21の“YES”)には、ステップS22において、キュー制御部220は、パケットキュー210に格納済みのパケットにおいてワーク領域500の使用権が付与されていないパケットがあるか否かを確認する。ステップS22において、ワーク領域500の使用権が付与されていないパケットがない場合(ステップS22の“NO”)には、キュー制御部220は、使用権付与処理を完了する。   If there is an unused work area 500 in step S21 (“YES” in step S21), in step S22, the queue control unit 220 uses the work area 500 in a packet already stored in the packet queue 210. Check if there is a packet to which no right is granted. In step S22, when there is no packet to which the use right of the work area 500 is not granted (“NO” in step S22), the queue control unit 220 completes the use right grant process.

また、ステップS22において、ワーク領域500の使用権が付与されていないパケットがある場合(ステップS22の“YES”)には、ステップS23において、キュー制御部220は、ステップS22において確認したワーク領域500の使用権が付与されていないパケットの内、最もパケットキュー210の先頭に近いパケットにワーク領域500の使用権を付与する。また、キュー制御部220は、パケットに使用権を付与したワーク領域500に対応するワークメモリ使用状況管理レジスタ240内のワークメモリ管理レジスタの情報を、「使用中」を示す情報に更新し、使用権付与処理を完了する。   If there is a packet to which the right to use the work area 500 is not granted in step S22 (“YES” in step S22), in step S23, the queue control unit 220 checks the work area 500 confirmed in step S22. The right to use the work area 500 is granted to the packet closest to the head of the packet queue 210 among the packets to which no right to use is assigned. In addition, the queue control unit 220 updates the information in the work memory management register 240 in the work memory use status management register 240 corresponding to the work area 500 to which the usage right is given to the packet to information indicating “in use”. Complete the authorization process.

このような処理によって、キュー制御部220は、ワークメモリ使用状況管理レジスタ240内のワークメモリ管理レジスタの情報から未使用のワーク領域500を確認し、ワーク領域500の使用権が付与されていないパケットに、ワーク領域500の使用権を付与する。なお、キュー制御部220は、使用権付与処理を常時行っている。すなわち、キュー制御部220は、パケットキュー210内にパケットが格納されている間、常に未使用のワーク領域500を検索して、使用権付与処理を行う。これにより、キュー制御部220は、ワークメモリ50内のいずれかのワーク領域500が使用することができる状況になった後の早いタイミングで、他のパケットにワーク領域500の使用権を付与することができる。   Through such processing, the queue control unit 220 confirms the unused work area 500 from the information in the work memory management register in the work memory usage status management register 240, and a packet to which the right to use the work area 500 is not granted. The right to use the work area 500 is granted. Note that the queue control unit 220 always performs use right grant processing. In other words, the queue control unit 220 always searches for an unused work area 500 and performs a usage right granting process while packets are stored in the packet queue 210. Thereby, the queue control unit 220 grants the right to use the work area 500 to other packets at an early timing after any work area 500 in the work memory 50 can be used. Can do.

次に、演算装置10に備えたパケット管理部20内のキュー制御部220によるキュー管理処理(図2に示したステップS3)の処理手順について説明する。図5は、本第1の実施形態の演算装置10に備えたキュー制御部220がパケットキュー210に格納されているパケットのプロセッサ30への出力を管理するキュー管理処理の処理手順を示したフローチャートである。   Next, a processing procedure of queue management processing (step S3 shown in FIG. 2) by the queue control unit 220 in the packet management unit 20 provided in the arithmetic device 10 will be described. FIG. 5 is a flowchart illustrating a processing procedure of a queue management process in which the queue control unit 220 included in the arithmetic device 10 according to the first embodiment manages the output of the packets stored in the packet queue 210 to the processor 30. It is.

キュー制御部220は、キュー管理処理を開始すると、まず、ステップS31において、演算装置10に備えたそれぞれのプロセッサ30の内、パケットの演算処理を実行することができるプロセッサ30、すなわち、未使用のプロセッサ30があるか否かを確認する。より具体的には、キュー制御部220は、プロセッサ使用状況管理レジスタ250内のそれぞれのプロセッサ管理レジスタの情報を確認し、プロセッサ管理レジスタの情報が「未使用」であるプロセッサ30を検索する。ステップS31において、未使用のプロセッサ30がない場合(ステップS31の“NO”)には、キュー制御部220は、キュー管理処理を完了する。   When the queue control unit 220 starts the queue management process, first, in step S31, the processor 30 that can execute the packet calculation process among the processors 30 included in the calculation apparatus 10, that is, an unused one. It is confirmed whether or not there is a processor 30. More specifically, the queue control unit 220 confirms information of each processor management register in the processor usage status management register 250 and searches for a processor 30 whose information in the processor management register is “unused”. In step S31, when there is no unused processor 30 (“NO” in step S31), the queue control unit 220 completes the queue management process.

また、ステップS31において、未使用のプロセッサ30がある場合(ステップS31の“YES”)には、ステップS32において、キュー制御部220は、パケットキュー210に格納済みのワーク領域500の使用権が付与されているパケットの内、ステップS31において検索した未使用のプロセッサ30を、演算処理を実行させるプロセッサ30として定めているパケットがあるか否かを確認する。より具体的には、キュー制御部220は、ワーク領域500の使用権が付与されているパケットに含まれるプロセッサ番号を確認することによって、未使用のプロセッサ30が演算処理を実行させるプロセッサ30として定められているパケットを検索する。ステップS32において、未使用のプロセッサ30が演算処理を実行させるプロセッサ30として定められているパケットがない場合(ステップS32の“NO”)には、キュー制御部220は、キュー管理処理を完了する。   If there is an unused processor 30 in step S31 (“YES” in step S31), the queue control unit 220 grants the right to use the work area 500 stored in the packet queue 210 in step S32. It is confirmed whether or not there is a packet in which the unused processor 30 searched in step S31 is determined as the processor 30 that executes the arithmetic processing among the packets that have been searched. More specifically, the queue control unit 220 determines the processor number included in the packet to which the right to use the work area 500 is granted, thereby determining that the unused processor 30 executes the arithmetic processing. Search for packets that have been sent. In step S32, when there is no packet defined as the processor 30 that causes the unused processor 30 to execute the arithmetic processing (“NO” in step S32), the queue control unit 220 completes the queue management process.

また、ステップS32において、未使用のプロセッサ30が演算処理を実行させるプロセッサ30として定められているパケットがある場合(ステップS32の“YES”)には、ステップS33において、キュー制御部220は、ステップS32において確認した未使用のプロセッサ30が演算処理を実行させるプロセッサ30として定められているパケットの内、最もパケットキュー210の先頭に近いパケットを、対応するプロセッサ30に出力する。また、キュー制御部220は、プロセッサ30に出力したパケットに対応するプロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタの情報を、「使用中」を示す情報に更新し、キュー管理処理を完了する。   In step S32, when there is a packet defined as the processor 30 that causes the unused processor 30 to execute arithmetic processing (“YES” in step S32), in step S33, the queue control unit 220 performs step Among the packets determined as the processor 30 that the unused processor 30 confirmed in S32 executes the arithmetic processing, the packet closest to the head of the packet queue 210 is output to the corresponding processor 30. In addition, the queue control unit 220 updates the processor management register information in the processor usage status management register 250 corresponding to the packet output to the processor 30 to information indicating “in use”, and completes the queue management process.

このような処理によって、キュー制御部220は、プロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタの情報から未使用のプロセッサ30を確認し、未使用のプロセッサ30が演算処理を実行させるプロセッサ30として定められているパケットを、対応するプロセッサ30に出力する。なお、キュー制御部220は、キュー管理処理を常時行っている。すなわち、キュー制御部220は、パケットキュー210内にパケットが格納されている間、常に未使用のプロセッサ30を検索して、キュー管理処理を行う。これにより、キュー制御部220は、演算装置10に備えたいずれかのプロセッサ30がパケットを受け付けることができる状況になった後の早いタイミングで、対応するパケットを出力することができる。   By such processing, the queue control unit 220 confirms the unused processor 30 from the information of the processor management register in the processor usage status management register 250, and determines that the unused processor 30 executes the arithmetic processing. The received packet is output to the corresponding processor 30. The queue control unit 220 always performs queue management processing. In other words, the queue control unit 220 always searches for unused processors 30 and performs queue management processing while packets are stored in the packet queue 210. Accordingly, the queue control unit 220 can output the corresponding packet at an early timing after any of the processors 30 included in the arithmetic device 10 can accept the packet.

次に、演算装置10に備えたプロセッサ30による演算処理(図2に示したステップS4)の処理手順について説明する。図6は、本第1の実施形態の演算装置10に備えたプロセッサ30が演算処理を実行する処理手順を示したフローチャートである。   Next, the processing procedure of the arithmetic processing (step S4 shown in FIG. 2) by the processor 30 provided in the arithmetic device 10 will be described. FIG. 6 is a flowchart illustrating a processing procedure in which the processor 30 included in the arithmetic device 10 according to the first embodiment executes arithmetic processing.

プロセッサ30は、パケット管理部20内のパケットキュー210から対応するパケットが入力されると、演算処理を開始する。まず、ステップS41において、プロセッサ30は、入力されたパケットに含まれるワークメモリ番号を取得する。すなわち、入力されたパケットに対する演算処理を実行する際に使用するワーク領域500の情報を取得する。   When a corresponding packet is input from the packet queue 210 in the packet management unit 20, the processor 30 starts arithmetic processing. First, in step S41, the processor 30 acquires a work memory number included in the input packet. That is, information on the work area 500 that is used when performing arithmetic processing on the input packet is acquired.

続いて、ステップS42において、プロセッサ30は、取得したワークメモリ番号を、接続切り替え部40内の対応するアドレス変換部400に出力する。これにより、対応するアドレス変換部400は、プロセッサ30から入力されたワークメモリ番号に対応する、ワークメモリ番号とワーク領域500とを1対1に対応させたテーブルを参照して、プロセッサ30が使用するワーク領域500を特定する。また、対応するアドレス変換部400は、プロセッサ30とワークメモリ50内のワーク領域500とを1対1に接続させるクロスバスイッチ450の制御値をまとめたテーブルを参照してクロスバスイッチ450の制御値を決定し、決定した制御値をクロスバスイッチ450に出力する。これにより、クロスバスイッチ450は、アドレス変換部400から入力された制御値に応じて、プロセッサ30の信号線とワーク領域500の信号線との接続を切り替え、プロセッサ30とワーク領域500とを1対1に接続させる。なお、アドレス変換部400は、クロスバスイッチ450によるプロセッサ30とワーク領域500との接続の切り替えが完了した後、ワーク領域500の接続が完了したことを表す通知を、対応するプロセッサ30に通知する。   Subsequently, in step S <b> 42, the processor 30 outputs the acquired work memory number to the corresponding address conversion unit 400 in the connection switching unit 40. As a result, the corresponding address conversion unit 400 uses the processor 30 by referring to the table in which the work memory number and the work area 500 corresponding to the work memory number input from the processor 30 are associated with each other. The work area 500 to be specified is specified. Further, the corresponding address conversion unit 400 refers to a table that summarizes the control values of the crossbar switch 450 that connects the processor 30 and the work area 500 in the work memory 50 in a one-to-one relationship, and determines the control value of the crossbar switch 450. The determined control value is output to the crossbar switch 450. As a result, the crossbar switch 450 switches the connection between the signal line of the processor 30 and the signal line of the work area 500 according to the control value input from the address conversion unit 400, and the processor 30 and the work area 500 are paired. Connect to 1. The address conversion unit 400 notifies the corresponding processor 30 of a notification indicating that the connection of the work area 500 is completed after the switching of the connection between the processor 30 and the work area 500 by the crossbar switch 450 is completed.

続いて、ステップS43において、プロセッサ30は、入力されたパケット全体を、対応するアドレス変換部400およびクロスバスイッチ450を介して、対応するワーク領域500に転送する。   Subsequently, in step S43, the processor 30 transfers the entire input packet to the corresponding work area 500 via the corresponding address conversion unit 400 and the crossbar switch 450.

続いて、ステップS44において、プロセッサ30は、ワーク領域500に転送したパケットに含まれる処理番号に対応した処理コードを、プロセッサ30に接続されたローカルメモリから読み出して、演算対象データに対する演算処理を実行する。   Subsequently, in step S44, the processor 30 reads the processing code corresponding to the processing number included in the packet transferred to the work area 500 from the local memory connected to the processor 30, and executes the arithmetic processing on the operation target data. To do.

そして、演算対象データに対する演算処理を完了した後、ステップS45において、プロセッサ30は、演算処理後のパケットのパケット状態情報およびプロセッサ番号を更新する。より具体的には、演算処理後のパケットが、演算処理を引き継ぐパケットである場合には、演算処理後のパケットのパケット状態情報を「処理継続」に更新し、さらに、プロセッサ番号を、引き続き演算処理を実行させる次のプロセッサ30(別のプロセッサ30または自身)のプロセッサ番号に更新する。また、演算処理後のパケットが、演算処理が完了したことにより外部ブロック100に出力するパケットである場合には、演算処理後のパケットのパケット状態情報を「処理完了」に更新する。   Then, after completing the calculation process on the calculation target data, in step S45, the processor 30 updates the packet state information and the processor number of the packet after the calculation process. More specifically, when the packet after the arithmetic processing is a packet that takes over the arithmetic processing, the packet status information of the packet after the arithmetic processing is updated to “continue processing”, and the processor number is continuously calculated. The processor number of the next processor 30 (another processor 30 or itself) to be executed is updated. If the packet after the arithmetic processing is a packet that is output to the external block 100 when the arithmetic processing is completed, the packet status information of the packet after the arithmetic processing is updated to “processing complete”.

なお、処理コードは、演算対象データに対する演算内容や、パケット状態情報およびプロセッサ番号の更新内容が論理アドレスで記述されているが、アドレス変換部400が、プロセッサ30がワーク領域500にアクセスする際の論理アドレスを対応するワーク領域500をアクセスする際の物理アドレスに変換する。これにより、プロセッサ30は、ステップS44の演算対象データに対する演算処理や、ステップS45のパケット状態情報およびプロセッサ番号の更新を実現することができる。   In the processing code, the calculation contents for the calculation target data, the packet status information, and the update contents of the processor number are described by logical addresses. When the address conversion unit 400 accesses the work area 500, the processor 30 accesses the work area 500. The logical address is converted into a physical address when the corresponding work area 500 is accessed. Thereby, the processor 30 can implement | achieve the calculation process with respect to the calculation object data of step S44, and the update of the packet status information and processor number of step S45.

続いて、演算対象データに対する演算処理(ステップS44)と、パケット状態情報およびプロセッサ番号の更新(ステップS45)とが完了すると、ステップS46において、プロセッサ30は、出力する演算処理後のパケットがあることを、パケット管理部20内の再エントリ判定部230に通知する。再エントリ判定部230は、演算処理後のパケットの取得ができる状態である場合、パケットを受け付けることを表す通知を、プロセッサ30に出力する。   Subsequently, when the calculation process for the calculation target data (step S44) and the update of the packet state information and the processor number (step S45) are completed, in step S46, the processor 30 has a packet after the calculation process to be output. Is sent to the re-entry determination unit 230 in the packet management unit 20. The re-entry determination unit 230 outputs a notification indicating that the packet is accepted to the processor 30 when the packet after the arithmetic processing can be acquired.

そして、プロセッサ30は、再エントリ判定部230から演算処理後のパケットを受け付けることを表す通知を受け取ると、ステップS47において、再エントリ判定部230に出力する演算処理後のパケットのパケット状態情報が「処理継続」であるか否かを確認する。   When the processor 30 receives from the re-entry determination unit 230 a notification indicating that the packet after the arithmetic processing is accepted, in step S47, the packet status information of the post-computation packet output to the re-entry determination unit 230 is “ It is confirmed whether it is “Continue processing”.

ステップS47において、再エントリ判定部230に出力する演算処理後のパケットのパケット状態情報が「処理継続」でない場合(ステップS47の“NO”)、すなわち、パケット状態情報が「処理完了」であり、外部ブロック100に出力するパケットである場合には、ステップS48において、プロセッサ30は、演算処理後のパケット全体を、クロスバスイッチ450および対応するアドレス変換部400を介して再エントリ判定部230に出力し、演算処理を完了する。   In step S47, when the packet status information of the post-computation packet output to the re-entry determination unit 230 is not “processing continuation” (“NO” in step S47), that is, the packet status information is “processing complete”, If the packet is to be output to the external block 100, in step S48, the processor 30 outputs the entire packet after the arithmetic processing to the reentry determination unit 230 via the crossbar switch 450 and the corresponding address conversion unit 400. , The arithmetic processing is completed.

また、ステップS47において、再エントリ判定部230に出力する演算処理後のパケットのパケット状態情報が「処理継続」である場合(ステップS47の“YES”)、すなわち、演算処理後のパケットが演算処理を引き継ぐパケットである場合には、ステップS49において、プロセッサ30は、ワーク領域500に最終的に記憶されている次の演算対象データ以外のパケットを、クロスバスイッチ450および対応するアドレス変換部400を介して再エントリ判定部230に出力し、演算処理を完了する。   In step S47, when the packet status information of the packet after the calculation process output to the re-entry determination unit 230 is “processing continuation” (“YES” in step S47), that is, the packet after the calculation process is calculated. In step S49, the processor 30 sends a packet other than the next calculation target data finally stored in the work area 500 via the crossbar switch 450 and the corresponding address conversion unit 400. Is output to the re-entry determination unit 230 to complete the arithmetic processing.

このような処理によって、プロセッサ30は、入力されたパケットに対応するワーク領域500を使用して、演算対象データに対する演算処理を実行する。そして、プロセッサ30は、演算処理後のパケットのパケット状態情報を更新し、再エントリ判定部230に出力する。このとき、プロセッサ30は、演算処理後のパケットのパケット状態情報に応じて、再エントリ判定部230に出力するパケットの構成を変える。より具体的には、演算処理後のパケットのパケット状態情報が「処理完了」である場合には、演算処理後のパケット全体を再エントリ判定部230に出力し、演算処理後のパケットのパケット状態情報が「処理継続」である場合には、演算対象データ以外の演算処理後のパケットを再エントリ判定部230に出力する。これにより、演算処理後のパケットが演算処理を引き継ぐパケットである場合には、次に演算処理を行う演算対象データがワーク領域500に記憶されている(残っている)状態になり、この演算対象データに対して次に演算処理を実行するプロセッサ30は、ステップS43におけるパケット全体のワーク領域500への転送に要する時間を削減することができる。   By such processing, the processor 30 executes a calculation process on the calculation target data using the work area 500 corresponding to the input packet. Then, the processor 30 updates the packet state information of the packet after the arithmetic processing and outputs it to the re-entry determination unit 230. At this time, the processor 30 changes the configuration of the packet output to the reentry determination unit 230 according to the packet state information of the packet after the arithmetic processing. More specifically, when the packet status information of the packet after the arithmetic processing is “processing completed”, the entire packet after the arithmetic processing is output to the re-entry determination unit 230, and the packet status of the packet after the arithmetic processing is When the information is “process continuation”, the packet after the calculation process other than the calculation target data is output to the re-entry determination unit 230. As a result, when the packet after the calculation process is a packet that takes over the calculation process, the calculation target data to be subjected to the next calculation process is stored (remaining) in the work area 500, and this calculation target The processor 30 that performs the next arithmetic processing on the data can reduce the time required to transfer the entire packet to the work area 500 in step S43.

次に、演算装置10に備えたパケット管理部20内の再エントリ判定部230による再エントリ判定処理(図2に示したステップS5)の処理手順について説明する。図7は、本第1の実施形態の演算装置10に備えた再エントリ判定部230がパケットを再度格納する再エントリ判定処理の処理手順を示したフローチャートである。   Next, the procedure of the reentry determination process (step S5 shown in FIG. 2) by the reentry determination unit 230 in the packet management unit 20 provided in the arithmetic device 10 will be described. FIG. 7 is a flowchart illustrating a processing procedure of reentry determination processing in which the reentry determination unit 230 included in the arithmetic device 10 according to the first embodiment stores the packet again.

再エントリ判定部230は、再エントリ判定処理を開始すると、まず、ステップS51において、プロセッサ30から演算処理後のパケットがあることを表す通知があるか否か、すなわち、プロセッサ30からの演算処理後のパケットの出力許可要求があるか否かを確認する。ステップS51において、プロセッサ30からの演算処理後のパケットの出力許可要求がない場合(ステップS51の“NO”)には、再エントリ判定部230は、再エントリ判定処理を完了する。   When the re-entry determination unit 230 starts the re-entry determination process, first, in step S51, the processor 30 determines whether or not there is a notification indicating that there is a packet after the arithmetic processing, that is, after the arithmetic processing from the processor 30. Check whether there is a request for permission to output other packets. In step S51, when there is no output permission request for the packet after the arithmetic processing from the processor 30 (“NO” in step S51), the reentry determination unit 230 completes the reentry determination process.

また、ステップS51において、プロセッサ30からの演算処理後のパケットの出力許可要求がある場合(ステップS51の“YES”)には、再エントリ判定部230は、プロセッサ30から演算処理後のパケットを取得し、取得した演算処理後のパケットに対応するプロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタの情報を、「未使用」を示す情報に更新する。そして、ステップS52において、再エントリ判定部230は、プロセッサ30から入力された演算処理後のパケットのパケット状態情報が「処理継続」であるか否かを確認する。   In step S51, when there is an output permission request for the packet after the arithmetic processing from the processor 30 (“YES” in step S51), the reentry determination unit 230 acquires the packet after the arithmetic processing from the processor 30. Then, the information of the processor management register in the processor usage status management register 250 corresponding to the acquired packet after the arithmetic processing is updated to information indicating “unused”. In step S <b> 52, the reentry determination unit 230 confirms whether or not the packet state information of the post-computation packet input from the processor 30 is “processing continuation”.

ステップS52において、プロセッサ30から入力された演算処理後のパケットのパケット状態情報が「処理継続」である場合(ステップS52の“YES”)、すなわち、演算処理後のパケットが演算処理を引き継ぐパケットである場合には、ステップS53において、再エントリ判定部230は、プロセッサ30から今回入力された演算処理後のパケットを、パケットキュー210内ですでにパケットが格納されている格納領域の次の格納領域、すなわち、現在の最後尾の格納領域に格納(エントリ)し、再エントリ判定処理を完了する。つまり、再エントリ判定部230は、今回入力された演算処理後のパケットにワーク領域500の使用権を付与したまま、パケットキュー210に再度格納(エントリ)する。   In step S52, when the packet status information of the packet after the arithmetic processing input from the processor 30 is “processing continuation” (“YES” in step S52), that is, the packet after the arithmetic processing is a packet that takes over the arithmetic processing. If there is, in step S53, the re-entry determination unit 230 uses the storage area next to the storage area in which the packet has already been stored in the packet queue 210, as a result of the computation process input from the processor 30 this time. That is, the current entry is stored (entry) in the last storage area, and the re-entry determination process is completed. That is, the re-entry determination unit 230 stores (entries) the packet in the packet queue 210 again while giving the right to use the work area 500 to the packet after the arithmetic processing input this time.

また、ステップS52において、プロセッサ30から入力された演算処理後のパケットのパケット状態情報が「処理継続」でない場合(ステップS52の“NO”)、すなわち、パケット状態情報が「処理完了」であり、外部ブロック100に出力するパケットである場合には、ステップS54において、再エントリ判定部230は、入力された演算処理後のパケットに付与されたワーク領域500の使用権を開放する。より具体的には、ワークメモリ使用状況管理レジスタ240内の演算処理後のパケットに対応するワークメモリ管理レジスタの情報を、「未使用」を示す情報に更新することによって、ワーク領域500の使用権を開放する。   In step S52, when the packet status information of the packet after the arithmetic processing input from the processor 30 is not “processing continuation” (“NO” in step S52), that is, the packet status information is “processing completed”. If the packet is to be output to the external block 100, in step S54, the re-entry determination unit 230 releases the right to use the work area 500 given to the input packet after the arithmetic processing. More specifically, the usage right of the work area 500 is updated by updating the information in the work memory management register corresponding to the packet after the arithmetic processing in the work memory usage management register 240 to information indicating “unused”. Is released.

続いて、ステップS55において、再エントリ判定部230は、ワーク領域500の使用権を開放した演算処理後のパケット全体を、外部ブロック100に出力し、再エントリ判定処理を完了する。   Subsequently, in step S55, the re-entry determination unit 230 outputs the entire packet after the arithmetic processing that releases the right to use the work area 500 to the external block 100, and completes the re-entry determination process.

このような処理によって、再エントリ判定部230は、プロセッサ30から入力された演算処理後のパケットのパケット状態情報に応じて、演算処理後のパケットの出力先を切り替える。なお、再エントリ判定部230は、再エントリ判定処理を常時行っている。すなわち、再エントリ判定部230は、演算装置10が動作している間、常にプロセッサ30から出力される演算処理後のパケットの出力許可要求を監視して、再エントリ判定処理を行う。そして、再エントリ判定処理では、パケット状態情報が「処理継続」である演算処理後のパケットを再度パケットキュー210に格納(エントリ)する。このため、再エントリ判定部230は、例えば、キュー制御部220が実行する初エントリ処理におけるステップS12と同様に、エントリ済みパケット数と最大エントリ数との比較を行い、比較した結果に応じてプロセッサ30からの演算処理後のパケットを受け付ける(取得する)構成にすることもできる。また、演算処理後のパケットを再度パケットキュー210に格納(エントリ)する際に、外部ブロック100と同様に、演算処理後のパケットの出力許可要求をキュー制御部220に出力し、キュー制御部220からパケットの出力を許可することを通知する許可信号が入力された後に、取得した演算処理後のパケットをパケットキュー210に格納(エントリ)する構成にすることもできる。   By such processing, the re-entry determination unit 230 switches the output destination of the packet after the arithmetic processing according to the packet state information of the packet after the arithmetic processing input from the processor 30. The reentry determination unit 230 always performs reentry determination processing. That is, the re-entry determination unit 230 performs a re-entry determination process by monitoring an output permission request for a packet after a calculation process that is always output from the processor 30 while the calculation device 10 is operating. In the re-entry determination process, the packet after the arithmetic process whose packet state information is “process continuation” is stored (entry) in the packet queue 210 again. For this reason, the re-entry determination unit 230 compares the number of already entered packets with the maximum number of entries, for example, similarly to step S12 in the initial entry process executed by the queue control unit 220, and determines the processor according to the comparison result. It is also possible to adopt a configuration for receiving (acquiring) packets after arithmetic processing from 30. Further, when storing (entry) the packet after the arithmetic processing in the packet queue 210 again, as in the external block 100, an output permission request for the packet after the arithmetic processing is output to the queue controller 220, and the queue controller 220 It is also possible to store (entry) the acquired packet after the arithmetic processing in the packet queue 210 after the permission signal notifying that the output of the packet is permitted is input.

このように、演算装置10では、外部ブロック100から入力された複数のパケットに対する一連の演算処理を、パケットキュー210に格納されたそれぞれのパケットに対して常時行うことによって、外部ブロック100から要求された複数の演算処理を並列に実行することができる。   As described above, the arithmetic device 10 requests the external block 100 by constantly performing a series of arithmetic processing on a plurality of packets input from the external block 100 for each packet stored in the packet queue 210. A plurality of arithmetic processes can be executed in parallel.

<第1の動作>
ここで、演算装置10における動作の一例について説明する。演算装置10の動作については、パケットキュー210およびワークメモリ50内のパケットに着目して説明する。図8は、本第1の実施形態の演算装置10の動作におけるそれぞれの処理段階でのパケットキュー210およびワークメモリ50内のパケットの状態の一例を示した図である。
<First operation>
Here, an example of the operation in the arithmetic unit 10 will be described. The operation of the arithmetic unit 10 will be described by paying attention to the packets in the packet queue 210 and the work memory 50. FIG. 8 is a diagram illustrating an example of the state of packets in the packet queue 210 and the work memory 50 at each processing stage in the operation of the arithmetic device 10 according to the first embodiment.

図8には、ワークメモリ50内のパケットの状態として、それぞれのパケットに含まれる「演算対象データ」および「プロセッサ番号」を示している。また、図8には、パケットキュー210内のパケットの状態として、それぞれのパケットに含まれる「演算対象データ」、「プロセッサ番号」、「ワークメモリ番号」、および「パケット状態情報」を示している。なお、図8に示したそれぞれのパケットの状態において、「プロセッサ番号」には、パケットに含まれる「演算対象データ」に対して演算処理を実行するプロセッサ30を、それぞれのプロセッサ30の符号の下1桁の数字で示している。また、「ワークメモリ番号」には、それぞれのプロセッサ30がパケットに含まれる「演算対象データ」に対して演算処理を実行する際に使用するワーク領域500を、それぞれのワーク領域500の符号の下1桁の数字で示している。   FIG. 8 shows “calculation target data” and “processor number” included in each packet as the state of the packet in the work memory 50. Further, FIG. 8 shows “calculation target data”, “processor number”, “work memory number”, and “packet state information” included in each packet as the state of the packet in the packet queue 210. . In the state of each packet shown in FIG. 8, the “processor number” includes a processor 30 that executes arithmetic processing on “operation target data” included in the packet, under the symbol of each processor 30. It is indicated by a single digit. The “work memory number” includes a work area 500 used when each processor 30 executes a computation process on “calculation target data” included in the packet, under the sign of each work area 500. It is indicated by a single digit.

なお、図8に示したパケットキュー210およびワークメモリ50内のパケットのそれぞれの状態では、説明を容易にするため、パケットがパケットキュー210に格納された順番を、「パケット番号」の項目内に示している。このパケット番号は、パケットがパケットキュー210に格納された順に付与され、演算処理が完了して外部ブロック100に出力されるまで変わらない番号とする。また、ワークメモリ50内のパケットの状態では、それぞれのワーク領域500に格納されたパケットに対して演算処理を実行しているプロセッサ30を、「処理中プロセッサ」の項目内に示している。   In the respective states of the packet queue 210 and the packet in the work memory 50 shown in FIG. 8, the order in which the packets are stored in the packet queue 210 is included in the “packet number” item for easy explanation. Show. The packet numbers are assigned in the order in which the packets are stored in the packet queue 210, and are not changed until the arithmetic processing is completed and output to the external block 100. Further, in the state of the packet in the work memory 50, the processor 30 executing the arithmetic processing on the packet stored in each work area 500 is shown in the item “Processing Processor”.

まず、演算装置10の動作においては、図8(a)に示したように、ワークメモリ50内に3つのパケットが記憶され、パケットキュー210内に3つのパケットが格納され、パケットキュー210内に格納されたパケットの内、先頭に近い2つのパケットに、キュー制御部220によってすでにワーク領域500の使用権が付与されている状態を、演算装置10の初期の状態として、以降の動作を説明する。   First, in the operation of the arithmetic unit 10, as shown in FIG. 8A, three packets are stored in the work memory 50, three packets are stored in the packet queue 210, and in the packet queue 210. The subsequent operation will be described with the state in which the use right of the work area 500 has already been given by the queue control unit 220 to the two packets near the head of the stored packets as the initial state of the arithmetic device 10. .

より具体的には、ワークメモリ50の初期状態は、ワーク領域501に、パケットキュー210に最初に入力された、演算対象データAに対してプロセッサ31が演算処理を実行するパケット#1が記憶されている状態である。また、ワーク領域502に、パケットキュー210に2番目に入力された、演算対象データBに対してプロセッサ32が演算処理を実行するパケット#2が記憶され、ワーク領域503に、パケットキュー210に3番目に入力された、演算対象データCに対してプロセッサ33が演算処理を実行するパケット#3が記憶されている状態である。   More specifically, the initial state of the work memory 50 is stored in the work area 501 as a packet # 1 that is first input to the packet queue 210 and for which the processor 31 performs calculation processing on the calculation target data A. It is in a state. Also, the work area 502 stores packet # 2 for which the processor 32 executes the arithmetic process on the operation target data B, which is input secondly into the packet queue 210, and the work area 503 stores 3 in the packet queue 210. This is a state in which packet # 3 is stored in which processor 33 performs arithmetic processing on operation target data C that is input second.

また、パケットキュー210の初期状態は、格納領域211に、パケットキュー210に4番目に入力された、演算対象データDに対してプロセッサ31が演算処理を実行する、ワーク領域504の使用権が付与されたパケット#4が格納されている状態である。また、格納領域212に、パケットキュー210に5番目に入力された、演算対象データEに対してプロセッサ31が演算処理を実行する、ワーク領域505の使用権が付与されたパケット#5が格納され、格納領域213に、パケットキュー210に6番目に入力された、演算対象データFに対してプロセッサ31が演算処理を実行する、ワーク領域500の使用権が付与されていないパケット#6が格納されている状態である。   In the initial state of the packet queue 210, the right to use the work area 504 is given to the storage area 211, in which the processor 31 executes arithmetic processing on the operation target data D that is input fourth in the packet queue 210. In this state, the received packet # 4 is stored. Also, in the storage area 212, packet # 5, which has been given the right to use the work area 505, is stored in the storage area 212. In the storage area 213, packet # 6, which is the sixth input to the packet queue 210 and for which the processor 31 executes arithmetic processing on the operation target data F and is not granted the right to use the work area 500, is stored. It is in a state.

この初期状態から、プロセッサ31が、パケット#1に含まれる演算対象データAに対する演算処理を完了し、次の演算処理をプロセッサ32に引き継ぐためにプロセッサ番号を「2」とし、パケット状態情報を「処理継続」に更新した演算処理後のパケット#1を、再エントリ判定部230に出力する場合を考える。なお、演算処理後のパケット#1のパケット状態情報は「処理継続」であるため、上述したように、プロセッサ31は、ワーク領域501に最終的に記憶されている次の演算対象データ(以下、「演算対象データA2」という)以外のパケット#1を、再エントリ判定部230に出力する(図6のステップS49参照)。   From this initial state, the processor 31 completes the arithmetic processing for the operation target data A included in the packet # 1, sets the processor number to “2” to take over the next arithmetic processing to the processor 32, and sets the packet status information to “ Consider a case where packet # 1 after the arithmetic processing updated to “continue processing” is output to the re-entry determination unit 230. Since the packet state information of the packet # 1 after the arithmetic processing is “processing continuation”, as described above, the processor 31 determines that the next calculation target data (hereinafter referred to as the following calculation target data) that is finally stored in the work area 501. Packet # 1 other than “calculation target data A2” is output to the reentry determination unit 230 (see step S49 in FIG. 6).

演算処理後のパケット#1を取得した再エントリ判定部230は、プロセッサ31に対応するプロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタ251の情報を、「未使用」を示す情報に更新する(図7のステップS51参照)。そして、再エントリ判定部230は、取得した演算処理後のパケット#1を、パケットキュー210内の最後尾の格納領域に再度格納(エントリ)する(図7のステップS53参照)。なお、演算処理後のパケット#1のパケット状態情報は「処理継続」であるため、上述したように、再エントリ判定部230は、演算処理後のパケット#1に付与したワーク領域501の使用権を開放せず、つまり、演算処理後のパケット#1にワーク領域501の使用権を付与したまま、パケットキュー210に再度格納(エントリ)する。   The re-entry determination unit 230 that has acquired the packet # 1 after the arithmetic processing updates the information in the processor management register 251 in the processor usage status management register 250 corresponding to the processor 31 to information indicating “unused” (FIG. 7 step S51). Then, the re-entry determination unit 230 stores (entries) the acquired packet # 1 after the arithmetic processing again in the last storage area in the packet queue 210 (see step S53 in FIG. 7). Since the packet state information of packet # 1 after the arithmetic processing is “processing continuation”, as described above, the re-entry determination unit 230 uses the right to use the work area 501 given to the packet # 1 after the arithmetic processing. Is stored, that is, stored (entry) in the packet queue 210 again with the use right of the work area 501 being given to the packet # 1 after the arithmetic processing.

また、キュー制御部220は、再エントリ判定部230によってプロセッサ31に対応するプロセッサ管理レジスタ251の情報が「未使用」になった、すなわち、プロセッサ31がパケットの演算処理を実行することができる状態になったことに応じて、パケットキュー210に格納済みのワーク領域500の使用権が付与されているパケットの内、プロセッサ番号=1で、最もパケットキュー210の先頭に近いパケット#4を、プロセッサ31に出力させる。また、キュー制御部220は、プロセッサ31に対応するプロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタ251の情報を、「使用中」を示す情報に更新する(図5のステップS33参照)。   In addition, the queue control unit 220 indicates that the information in the processor management register 251 corresponding to the processor 31 has become “unused” by the re-entry determination unit 230, that is, the processor 31 can execute the packet calculation process. Accordingly, the packet # 4 closest to the head of the packet queue 210 with the processor number = 1 among the packets to which the right to use the work area 500 stored in the packet queue 210 is granted 31 to output. Further, the queue control unit 220 updates the information in the processor management register 251 in the processor usage status management register 250 corresponding to the processor 31 to information indicating “in use” (see step S33 in FIG. 5).

その後、プロセッサ31は、入力されたパケット#4に含まれるワークメモリ番号を対応するアドレス変換部401に出力し、プロセッサ31とワーク領域504とが1対1に接続された後(図6のステップS42参照)、パケット#4に含まれる演算対象データDをワーク領域504に転送(図6のステップS43参照)し、演算対象データDに対する演算処理を実行する(図6のステップS44参照)。   Thereafter, the processor 31 outputs the work memory number included in the input packet # 4 to the corresponding address conversion unit 401, and after the processor 31 and the work area 504 are connected one-to-one (step in FIG. 6). The calculation target data D included in the packet # 4 is transferred to the work area 504 (see step S43 in FIG. 6), and the calculation process for the calculation target data D is executed (see step S44 in FIG. 6).

図8(b)は、このときのパケットキュー210およびワークメモリ50内のパケットの状態を示している。より具体的には、ワークメモリ50の状態は、ワーク領域501に、プロセッサ31がパケット#1の演算対象データAに対する演算処理を実行した結果の演算対象データA2が記憶され(残っており)、ワーク領域504に、パケットキュー210から入力された、演算対象データDに対してプロセッサ31が演算処理を実行するパケット#4が記憶されている状態となっている。なお、ワークメモリ50内のワーク領域502およびワーク領域503は、プロセッサ32によるパケット#2に含まれる演算対象データBに対する演算処理、およびプロセッサ33によるパケット#3に含まれる演算対象データCに対する演算処理を完了していないため、初期状態と同様である。   FIG. 8B shows the state of the packets in the packet queue 210 and the work memory 50 at this time. More specifically, the work memory 50 is stored in the work area 501 with calculation target data A2 as a result of the processor 31 executing calculation processing on the calculation target data A of packet # 1 (remaining). The work area 504 stores a packet # 4 that is input from the packet queue 210 and that is executed by the processor 31 on the calculation target data D. The work area 502 and the work area 503 in the work memory 50 are an arithmetic process for the calculation target data B included in the packet # 2 by the processor 32 and an arithmetic process for the calculation target data C included in the packet # 3 by the processor 33. This is the same as in the initial state.

また、パケットキュー210の状態は、格納領域211に格納されていたパケット#4がプロセッサ31に出力されたことにより、格納領域211にはパケット#5が格納され、同様に、格納領域212にはパケット#6が格納され、パケットキュー210内の最後尾の格納領域213には再エントリ判定部230によって再度格納(エントリ)された演算処理後のパケット#1が格納されている状態になる。なお、上述したように、格納領域213に格納される演算処理後のパケット#1は、パケット状態情報が「処理継続」のパケットであるため、すなわち、演算対象データA2がワーク領域501に記憶されている(残っている)パケットであるため、演算対象データA2は含まれておらず、ワーク領域501の使用権が付与されたままの状態である。   The packet queue 210 is in a state where the packet # 4 stored in the storage area 211 is output to the processor 31 and the packet # 5 is stored in the storage area 211. Packet # 6 is stored, and the final storage area 213 in the packet queue 210 is in a state where the post-computation packet # 1 stored again (entry) by the re-entry determination unit 230 is stored. As described above, the post-computation packet # 1 stored in the storage area 213 is a packet whose packet status information is “continue processing”, that is, the computation target data A2 is stored in the work area 501. Since it is a packet that remains (remains), the calculation target data A2 is not included, and the right to use the work area 501 remains granted.

この状態から、プロセッサ32が、パケット#2に含まれる演算対象データBに対する演算処理を完了し、次の演算処理をプロセッサ33に引き継ぐためにプロセッサ番号を「3」とし、パケット状態情報を「処理継続」に更新した演算処理後のパケット#2を、再エントリ判定部230に出力する場合を考える。なお、プロセッサ32は、プロセッサ31と同様に、ワーク領域502に最終的に記憶されている次の演算対象データ(以下、「演算対象データB2」という)以外のパケット#2を、再エントリ判定部230に出力する(図6のステップS49参照)。   From this state, the processor 32 completes the operation processing for the operation target data B included in the packet # 2, sets the processor number to “3” to take over the next operation processing to the processor 33, and sets the packet state information to “processing”. Consider a case where the packet # 2 after the arithmetic processing updated to “continue” is output to the re-entry determination unit 230. Similar to the processor 31, the processor 32 uses the re-entry determination unit for the packet # 2 other than the next calculation target data (hereinafter referred to as “calculation target data B 2”) finally stored in the work area 502. 230 (see step S49 in FIG. 6).

演算処理後のパケット#2を取得した再エントリ判定部230は、プロセッサ32に対応するプロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタ252の情報を、「未使用」を示す情報に更新する(図7のステップS51参照)。そして、再エントリ判定部230は、取得した演算処理後のパケット#2を、パケットキュー210内の最後尾の格納領域に再度格納(エントリ)する(図7のステップS53参照)。なお、再エントリ判定部230は、演算処理後のパケット#1をパケットキュー210に再度格納(エントリ)するときと同様に、演算処理後のパケット#2にワーク領域502の使用権を付与したまま、パケットキュー210に再度格納(エントリ)する。   The re-entry determination unit 230 that has acquired the packet # 2 after the arithmetic processing updates the information in the processor management register 252 in the processor usage status management register 250 corresponding to the processor 32 to information indicating “unused” (FIG. 7 step S51). Then, the re-entry determination unit 230 stores (entries) the acquired packet # 2 after the arithmetic processing again in the last storage area in the packet queue 210 (see step S53 in FIG. 7). Note that the re-entry determination unit 230 gives the right to use the work area 502 to the packet # 2 after the arithmetic processing in the same manner as when the packet # 1 after the arithmetic processing is stored (entry) again in the packet queue 210. Then, it is stored (entry) in the packet queue 210 again.

また、キュー制御部220は、再エントリ判定部230によってプロセッサ32に対応するプロセッサ管理レジスタ252の情報が「未使用」になり、プロセッサ32がパケットの演算処理を実行することができる状態になったことに応じて、パケットキュー210に格納済みのワーク領域500の使用権が付与されているパケットの内、プロセッサ番号=2で、最もパケットキュー210の先頭に近い演算処理後のパケット#1、つまり、パケットキュー210に再度格納され、プロセッサ32に演算処理が引き継がれた演算処理後のパケット#1を、プロセッサ32に出力させる。また、キュー制御部220は、プロセッサ32に対応するプロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタ252の情報を、「使用中」を示す情報に更新する(図5のステップS33参照)。   Also, the queue control unit 220 is in a state where the information in the processor management register 252 corresponding to the processor 32 becomes “unused” by the re-entry determination unit 230 and the processor 32 can execute the packet calculation process. Accordingly, among the packets to which the right to use the work area 500 stored in the packet queue 210 is granted, the processor number = 2 and the packet # 1 after the arithmetic processing closest to the head of the packet queue 210, that is, Then, the processor 32 is caused to output the packet # 1 after being stored in the packet queue 210 again and the processor 32 taking over the operation process. Further, the queue control unit 220 updates the information in the processor management register 252 in the processor usage status management register 250 corresponding to the processor 32 to information indicating “in use” (see step S33 in FIG. 5).

その後、プロセッサ32は、入力された演算処理後のパケット#1に含まれるワークメモリ番号を対応するアドレス変換部401に出力し、プロセッサ32と演算対象データA2が記憶されている(残っている)ワーク領域501とが1対1に接続された後(図6のステップS42参照)、演算対象データをワーク領域501に転送せずに、演算対象データA2に対する演算処理を実行する(図6のステップS44参照)。   Thereafter, the processor 32 outputs the work memory number included in the input packet # 1 after the arithmetic processing to the corresponding address conversion unit 401, and the processor 32 and the operation target data A2 are stored (remaining). After the work area 501 is connected in a one-to-one relationship (see step S42 in FIG. 6), the calculation process is performed on the calculation target data A2 without transferring the calculation target data to the work area 501 (step in FIG. 6). (See S44).

図8(c)は、このときのパケットキュー210およびワークメモリ50内のパケットの状態を示している。より具体的には、ワークメモリ50の状態は、ワーク領域502に、プロセッサ32がパケット#2の演算対象データBに対する演算処理を実行した結果の演算対象データB2が記憶されている(残っている)状態となっている。なお、ワークメモリ50内のワーク領域501には、プロセッサ31がパケット#1の演算対象データAに対する演算処理を実行した結果の演算対象データA2が記憶され(残っており)、プロセッサ32が、プロセッサ31から引き継がれた演算対象データA2に対する演算処理を実行している。また、ワークメモリ50内のワーク領域503およびワーク領域504は、プロセッサ33によるパケット#3に含まれる演算対象データCに対する演算処理、およびプロセッサ31によるパケット#4に含まれる演算対象データDに対する演算処理を完了していないため、図8(b)に示した状態と同様である。   FIG. 8C shows the state of packets in the packet queue 210 and the work memory 50 at this time. More specifically, the state of the work memory 50 is stored in the work area 502 as the calculation target data B2 as a result of the processor 32 executing the calculation processing on the calculation target data B of the packet # 2 (remaining). ) State. The work area 501 in the work memory 50 stores (remains) the calculation target data A2 as a result of the processor 31 executing the calculation processing on the calculation target data A of the packet # 1. Calculation processing is performed on the calculation target data A <b> 2 inherited from 31. In addition, the work area 503 and the work area 504 in the work memory 50 are calculated by the processor 33 for the calculation target data C included in the packet # 3, and the calculation process for the calculation target data D included in the packet # 4 by the processor 31. This is the same as the state shown in FIG.

また、パケットキュー210の状態は、パケットキュー210内の最後尾の格納領域213には、前回格納領域213に格納されていた演算処理後のパケット#1がプロセッサ32に出力されたことにより、再エントリ判定部230によって再度格納(エントリ)された演算処理後のパケット#2が格納されている状態になっている。なお、上述したように、格納領域213に格納される演算処理後のパケット#2は、パケット状態情報が「処理継続」のパケットであり、演算対象データB2がワーク領域502に記憶されている(残っている)パケットであるため、演算対象データB2は含まれておらず、ワーク領域502の使用権が付与されたままの状態である。また、パケットキュー210内の格納領域211および格納領域212は、それぞれのパケットがプロセッサ30に出力されていないため、図8(b)に示した状態と同様である。   Further, the state of the packet queue 210 is re-stated in the last storage area 213 in the packet queue 210 because the packet # 1 after the arithmetic processing stored in the previous storage area 213 is output to the processor 32. The packet # 2 after the arithmetic processing stored again (entry) by the entry determination unit 230 is stored. As described above, the post-computation packet # 2 stored in the storage area 213 is a packet whose packet status information is “continue processing”, and the computation target data B2 is stored in the work area 502 ( Since the packet is a remaining packet, the calculation target data B2 is not included and the right to use the work area 502 is still given. The storage area 211 and the storage area 212 in the packet queue 210 are the same as the state shown in FIG. 8B because the respective packets are not output to the processor 30.

この状態から、プロセッサ33が、パケット#3に含まれる演算対象データCに対する演算処理を完了したことにより、演算装置10による一連の演算処理が完了し、パケット状態情報を「処理完了」に更新した演算処理後のパケット#3を、再エントリ判定部230に出力する場合を考える。なお、演算処理後のパケット#3のパケット状態情報は「処理完了」であるため、上述したように、プロセッサ33は、ワーク領域503に最終的に記憶されている演算対象データCを含めた演算処理後のパケット#3全体を、再エントリ判定部230に出力する(図6のステップS48参照)。   From this state, the processor 33 completes the arithmetic processing for the operation target data C included in the packet # 3, whereby a series of arithmetic processing by the arithmetic device 10 is completed, and the packet state information is updated to “processing complete”. Consider a case where the packet # 3 after the arithmetic processing is output to the reentry determination unit 230. Since the packet status information of the packet # 3 after the arithmetic processing is “processing completed”, the processor 33 includes the arithmetic target data C finally stored in the work area 503 as described above. The entire processed packet # 3 is output to the reentry determination unit 230 (see step S48 in FIG. 6).

演算処理後のパケット#3を取得した再エントリ判定部230は、プロセッサ33に対応するプロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタ253の情報を、「未使用」を示す情報に更新する(図7のステップS51参照)。また、再エントリ判定部230は、演算処理後のパケット#3のパケット状態情報が「処理完了」であるため、上述したように、ワークメモリ使用状況管理レジスタ240内のワークメモリ管理レジスタ243の情報を、「未使用」を示す情報に更新することによって、演算処理後のパケット#3に付与されたワーク領域503の使用権を開放する(図7のステップS54参照)。そして、再エントリ判定部230は、取得した演算処理後のパケット#3全体を、外部ブロック100に出力する(図7のステップS55参照)。   The re-entry determination unit 230 that acquired the packet # 3 after the arithmetic processing updates the information in the processor management register 253 in the processor usage status management register 250 corresponding to the processor 33 to information indicating “unused” (FIG. 7 step S51). Further, since the packet status information of the packet # 3 after the arithmetic processing is “processing completed”, the re-entry determining unit 230 has the information in the work memory management register 243 in the work memory usage status management register 240 as described above. Is updated to information indicating “unused” to release the right to use the work area 503 given to the packet # 3 after the arithmetic processing (see step S54 in FIG. 7). Then, the re-entry determination unit 230 outputs the acquired packet # 3 after the arithmetic processing to the external block 100 (see step S55 in FIG. 7).

また、キュー制御部220は、再エントリ判定部230によってプロセッサ33に対応するプロセッサ管理レジスタ253の情報が「未使用」になり、プロセッサ33がパケットの演算処理を実行することができる状態になったことに応じて、パケットキュー210に格納済みのワーク領域500の使用権が付与されているパケットの内、プロセッサ番号=3で、最もパケットキュー210の先頭に近い演算処理後のパケット#2、つまり、パケットキュー210に再度格納され、プロセッサ33に演算処理が引き継がれた演算処理後のパケット#2を、プロセッサ33に出力させる。また、キュー制御部220は、プロセッサ33に対応するプロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタ253の情報を、「使用中」を示す情報に更新する(図5のステップS33参照)。   Also, the queue control unit 220 is in a state where the information in the processor management register 253 corresponding to the processor 33 becomes “unused” by the re-entry determination unit 230, and the processor 33 can execute the packet calculation process. Accordingly, among the packets to which the right to use the work area 500 stored in the packet queue 210 is granted, the processor number = 3 and the packet # 2 after the arithmetic processing closest to the head of the packet queue 210, that is, Then, the processor 33 outputs the packet # 2 after being stored in the packet queue 210 again, and the processor 33 takes over the operation process. Further, the queue control unit 220 updates the information in the processor management register 253 in the processor usage status management register 250 corresponding to the processor 33 to information indicating “in use” (see step S33 in FIG. 5).

その後、プロセッサ33は、入力された演算処理後のパケット#2に含まれるワークメモリ番号を対応するアドレス変換部402に出力し、プロセッサ33と演算対象データB2が記憶されている(残っている)ワーク領域502とが1対1に接続された後(図6のステップS42参照)、演算対象データをワーク領域502に転送せずに、演算対象データB2に対する演算処理を実行する(図6のステップS44参照)。   Thereafter, the processor 33 outputs the work memory number included in the input packet # 2 after the arithmetic processing to the corresponding address conversion unit 402, and the processor 33 and the operation target data B2 are stored (remaining). After the work area 502 is connected to the work area 502 in a one-to-one relationship (see step S42 in FIG. 6), the calculation process is performed on the calculation target data B2 without transferring the calculation target data to the work area 502 (step in FIG. 6). (See S44).

また、キュー制御部220は、再エントリ判定部230によってワーク領域503に対応するワークメモリ使用状況管理レジスタ240内のワークメモリ管理レジスタ243の情報が「未使用」になり、ワーク領域503の使用権を付与することができる状態になったことに応じて、パケットキュー210に格納済みのワーク領域500の使用権が付与されていないパケットの内、最もパケットキュー210の先頭に近い演算処理後のパケット#6に、ワーク領域503の使用権を付与する(図4のステップS23参照)。   In addition, the queue control unit 220 causes the re-entry determination unit 230 to change the information in the work memory management register 243 in the work memory usage status management register 240 corresponding to the work area 503 to “unused”, so that the right to use the work area 503 is obtained. The packet after the arithmetic processing closest to the head of the packet queue 210 among the packets to which the right to use the work area 500 already stored in the packet queue 210 is not granted. The right to use the work area 503 is granted to # 6 (see step S23 in FIG. 4).

図8(d)は、このときのパケットキュー210およびワークメモリ50内のパケットの状態を示している。より具体的には、ワークメモリ50の状態は、ワーク領域503にパケットが記憶されていない状態となっている。なお、ワークメモリ50内のワーク領域502には、プロセッサ32がパケット#2の演算対象データBに対する演算処理を実行した結果の演算対象データB2が記憶され(残っており)、プロセッサ33が、プロセッサ32から引き継がれた演算対象データB2に対する演算処理を実行している。また、ワークメモリ50内のワーク領域501およびワーク領域504は、プロセッサ32による演算処理後のパケット#1の演算対象データA2に対する演算処理、およびプロセッサ31によるパケット#4に含まれる演算対象データDに対する演算処理を完了していないため、図8(c)に示した状態と同様である。   FIG. 8D shows the state of the packets in the packet queue 210 and the work memory 50 at this time. More specifically, the work memory 50 is in a state where no packet is stored in the work area 503. The work area 502 in the work memory 50 stores the calculation target data B2 as a result of the processor 32 executing the calculation process on the calculation target data B of the packet # 2, and the processor 33 is stored in the processor 33. The calculation process is performed on the calculation target data B <b> 2 inherited from 32. Further, the work area 501 and the work area 504 in the work memory 50 are used for the calculation process on the calculation target data A2 of the packet # 1 after the calculation process by the processor 32 and the calculation target data D included in the packet # 4 by the processor 31. Since the arithmetic processing has not been completed, the state is the same as that shown in FIG.

また、パケットキュー210の状態は、格納領域213に格納されたパケット#6に対してワーク領域503の使用権が付与された状態となっている。また、パケットキュー210内の格納領域211は、パケット#5がプロセッサ31に出力されていないため、図8(c)に示した状態と同様である。なお、このとき、例えば、予め定めた最大エントリ数を、最大エントリ数=3としていた場合、キュー制御部220は、エントリ済みパケット数<最大エントリ数であることが確認できる(図3のステップS12参照)ため、パケットの出力を許可することを通知する許可信号を、外部ブロック100に出力することもできる。   The state of the packet queue 210 is a state in which the right to use the work area 503 is granted to the packet # 6 stored in the storage area 213. The storage area 211 in the packet queue 210 is the same as the state shown in FIG. 8C because the packet # 5 is not output to the processor 31. At this time, for example, when the predetermined maximum number of entries is set to the maximum number of entries = 3, the queue control unit 220 can confirm that the number of already entered packets <the maximum number of entries (step S12 in FIG. 3). Therefore, a permission signal notifying that the packet output is permitted can be output to the external block 100.

このように、演算装置10は、演算装置10に備えたワークメモリ50内のそれぞれのワーク領域500の使用状況と、演算装置10に備えたそれぞれのプロセッサ30の使用状況を常時監視し、監視した状況に応じて、それぞれのパケットを対応するプロセッサ30に割り当てる。このとき、プロセッサ30とワーク領域500とは1対1で対応するため、それぞれのプロセッサ30が割り当てられたパケットに対する演算処理を実行する際に、それぞれのプロセッサ30でワーク領域500の競合が発生することなくワーク領域500を共有し、演算装置10は、外部ブロック100から要求された複数の演算処理を並列に実行することができる。   In this way, the arithmetic device 10 constantly monitors and monitors the usage status of each work area 500 in the work memory 50 provided in the arithmetic device 10 and the usage status of each processor 30 provided in the arithmetic device 10. Depending on the situation, each packet is assigned to the corresponding processor 30. At this time, since the processor 30 and the work area 500 have a one-to-one correspondence, when each processor 30 executes an arithmetic process on the assigned packet, a conflict of the work area 500 occurs in each processor 30. The work area 500 is shared without any problem, and the arithmetic device 10 can execute a plurality of arithmetic processes requested from the external block 100 in parallel.

また、演算装置10では、別のプロセッサ30に演算処理を引き継ぐ場合には、ワーク領域500に演算対象データを記憶したまま(残したまま)、演算処理を引き継ぐパケットを再エントリ判定部230に出力する。このため、演算装置10では、それぞれのプロセッサ30間で演算対象データを共有することができる。   In addition, in the arithmetic device 10, when the arithmetic processing is taken over by another processor 30, the operation target data is stored (leaved) in the work area 500 and a packet that takes over the arithmetic processing is output to the reentry determination unit 230. To do. For this reason, in the arithmetic unit 10, calculation target data can be shared between the processors 30.

なお、図8に示した演算装置10の動作の一例では、それぞれのプロセッサ30がワークメモリ50内の1つのワーク領域500を使用して、パケットに含まれる演算対象データに対する演算処理を実行する場合について説明した。しかし、それぞれのプロセッサ30が演算処理を実行する際に使用するワーク領域500は、必ずしも1つであるとは限らない。例えば、2つのワーク領域500を使用して演算処理を実行するパケットが、プロセッサ30に割り当てられる場合もある。   In the example of the operation of the arithmetic device 10 illustrated in FIG. 8, each processor 30 uses one work area 500 in the work memory 50 to execute arithmetic processing on the operation target data included in the packet. Explained. However, the number of work areas 500 used when each processor 30 executes arithmetic processing is not necessarily one. For example, a packet that performs arithmetic processing using two work areas 500 may be assigned to the processor 30.

<第2の実施形態>
次に、本発明の第2の実施形態について説明する。本第2の実施形態の演算装置は、演算装置に備えたそれぞれのプロセッサが複数のワーク領域を使用して演算処理を実行する場合の考え方を適用した演算装置である。このため、本第2の実施形態の演算装置には、第1の実施形態の演算装置10において説明した「演算対象データ」、「プロセッサ番号」、「ワークメモリ番号」、「処理番号」、および「パケット状態情報」に加えて、パケットに対する演算処理を実行する際に使用するワークメモリ内のワーク領域の数を定める「使用メモリ数」の情報が含まれているパケットが、外部ブロックから入力される。
<Second Embodiment>
Next, a second embodiment of the present invention will be described. The arithmetic device according to the second embodiment is an arithmetic device to which the concept when each processor provided in the arithmetic device executes arithmetic processing using a plurality of work areas is applied. For this reason, the arithmetic device of the second embodiment includes the “calculation target data”, the “processor number”, the “work memory number”, the “processing number” described in the arithmetic device 10 of the first embodiment, and In addition to the “packet status information”, a packet that contains information on the “number of used memory” that determines the number of work areas in the work memory used when performing arithmetic processing on the packet is input from an external block The

本第2の実施形態の演算装置では、複数のワーク領域を使用して演算処理を実行するための機能が、キュー制御部およびアドレス変換部に加わること以外は、演算装置の構成や処理手順は、第1の実施形態の演算装置10と同様である。従って、以下の説明においては、本第2の実施形態の演算装置を演算装置10とし、演算装置10に備えたそれぞれの構成要素に加わった機能のみを説明する。   In the arithmetic device according to the second embodiment, the configuration and processing procedure of the arithmetic device are the same except that a function for executing arithmetic processing using a plurality of work areas is added to the queue control unit and the address conversion unit. This is the same as the arithmetic device 10 of the first embodiment. Therefore, in the following description, the arithmetic device according to the second embodiment is the arithmetic device 10, and only functions added to the respective components provided in the arithmetic device 10 will be described.

キュー制御部220には、パケットキュー210に格納されたそれぞれのパケットに含まれる使用メモリ数を確認し、使用メモリ数で定められた数のワーク領域500の使用権を、パケットに付与する機能が加わる。   The queue control unit 220 has a function of confirming the number of used memories included in each packet stored in the packet queue 210 and giving the right to use the work area 500 of the number determined by the number of used memories to the packet. Join.

より具体的には、まず、キュー制御部220は、パケットキュー210に格納されたそれぞれのパケットに含まれる使用メモリ数で定められたワークメモリ50内のワーク領域500を使用する数を確認する。そして、キュー制御部220は、ワーク領域500の使用数を確認したパケットに含まれるワークメモリ番号で定められたワークメモリ50内のワーク領域500の使用状況を、ワークメモリ使用状況管理レジスタ240内のワークメモリ管理レジスタの情報から確認する。このワーク領域500の使用数とワークメモリ管理レジスタの情報を確認した結果、使用メモリ数で定められ、ワークメモリ番号で定められたワーク領域500を使用することができる状況である場合、つまり、ワークメモリ管理レジスタの情報が、使用メモリ数で定められた数だけ「未使用」である場合、キュー制御部220は、複数のワーク領域500の使用権を付与する。そして、キュー制御部220は、ワーク領域500の使用権を付与したパケットに含まれるワークメモリ番号に対応するワークメモリ使用状況管理レジスタ240内の、使用メモリ数に対応する数のワークメモリ管理レジスタの情報を「使用中」に変更する。   More specifically, first, the queue control unit 220 checks the number of work areas 500 in the work memory 50 that are determined by the number of used memories included in each packet stored in the packet queue 210. Then, the queue control unit 220 indicates the usage status of the work area 500 in the work memory 50 determined by the work memory number included in the packet for which the usage count of the work area 500 is confirmed, in the work memory usage status management register 240. Check from the information in the work memory management register. As a result of confirming the use number of the work area 500 and the information of the work memory management register, the work area 500 is determined by the number of used memory and can be used by the work memory number. When the information in the memory management register is “unused” by the number determined by the number of used memories, the queue control unit 220 grants the right to use the plurality of work areas 500. Then, the queue control unit 220 stores the number of work memory management registers corresponding to the number of used memories in the work memory use state management register 240 corresponding to the work memory number included in the packet to which the right to use the work area 500 is granted. Change the information to “in use”.

アドレス変換部401〜アドレス変換部403のそれぞれには、対応するプロセッサ30がパケットに含まれる演算対象データに対する演算処理を実行する際に使用するワーク領域500を指定するアドレスと、実際に使用されるワークメモリ50内の複数のワーク領域500のアドレスとを連続して1対1に対応付ける機能が加わる。すなわち、アドレス変換部400は、対応するプロセッサ30が複数のワーク領域500にアクセスする際の論理アドレスを、実際にワークメモリ50内の複数のワーク領域500をアクセスする際の連続した物理アドレスに変換する。これにより、それぞれのプロセッサ30は、パケットに対する演算処理を実行する際に使用するワーク領域500の区切り(物理的に分離された構造)を考慮することなく(意識することなく)、いずれのワーク領域500を使用する場合でも、同様に演算処理を実行することができる。つまり、それぞれのプロセッサ30は、いずれのワーク領域500を使用する場合でも、記憶領域の大きさが大きい1つのワーク領域500としてアクセスすることができる。   Each of the address conversion unit 401 to the address conversion unit 403 is actually used with an address that specifies the work area 500 used when the corresponding processor 30 executes the calculation process on the calculation target data included in the packet. A function for continuously associating the addresses of the plurality of work areas 500 in the work memory 50 with one to one is added. That is, the address conversion unit 400 converts the logical address when the corresponding processor 30 accesses the plurality of work areas 500 into a continuous physical address when actually accessing the plurality of work areas 500 in the work memory 50. To do. As a result, each processor 30 can select any work area without considering (without being aware of) the delimiter (physically separated structure) of the work area 500 used when executing the arithmetic processing on the packet. Even when 500 is used, the arithmetic processing can be executed in the same manner. That is, each processor 30 can access as one work area 500 having a large storage area regardless of which work area 500 is used.

例えば、第2の実施形態の演算装置10の構成(図1参照)において、ワークメモリ50内のワーク領域501に物理アドレス0x1000〜0x1FFFが、ワーク領域502に物理アドレス0x2000〜0x2FFFが、ワーク領域503に物理アドレス0x3000〜0x3FFFが、ワーク領域504に物理アドレス0x4000〜0x4FFFが、ワーク領域505に物理アドレス0x5000〜0x5FFFが、それぞれ割り当てられている場合を考える。このとき、例えば、アドレス変換部401が、プロセッサ31がワーク領域500にアクセスする際の論理アドレス0x0000〜0x1FFFを、ワーク領域501の物理アドレス0x1000〜0x1FFFと、ワーク領域502の物理アドレス0x2000〜0x2FFFとが連続するように変換する。これにより、プロセッサ31は、ワークメモリ50内のワーク領域501とワーク領域502との2つのワーク領域500に連続してアクセスすることができる。また、例えば、アドレス変換部401が、プロセッサ31がワーク領域500にアクセスする際の論理アドレス0x0000〜0x1FFFを、ワーク領域502の物理アドレス0x2000〜0x2FFFと、ワーク領域505の物理アドレス0x5000〜0x5FFFとが連続するように変換する。これにより、プロセッサ31は、ワークメモリ50内のワーク領域502とワーク領域505との2つのワーク領域500に連続してアクセスすることができる。また、例えば、アドレス変換部401が、プロセッサ31がワーク領域500にアクセスする際の論理アドレス0x0000〜0x1FFFを、ワーク領域501の物理アドレス0x1000〜0x1FFFと、ワーク領域504の物理アドレス0x4000〜0x4FFFとが連続するように変換する。これにより、プロセッサ31は、ワークメモリ50内のワーク領域501とワーク領域504との2つのワーク領域500に連続してアクセスすることができる。   For example, in the configuration of the arithmetic unit 10 of the second embodiment (see FIG. 1), the work area 501 in the work memory 50 has a physical address 0x1000-0x1FFF, the work area 502 has a physical address 0x2000-0x2FFF, and the work area 503. Assume that physical addresses 0x3000 to 0x3FFF are assigned to the work area 504, physical addresses 0x4000 to 0x4FFF are assigned to the work area 505, and physical addresses 0x5000 to 0x5FFF are assigned to the work area 505, respectively. At this time, for example, the address conversion unit 401 uses the logical address 0x0000 to 0x1FFF when the processor 31 accesses the work area 500, the physical address 0x1000 to 0x1FFF of the work area 501, and the physical address 0x2000 to 0x2FFF of the work area 502 as Are converted to be continuous. As a result, the processor 31 can continuously access the two work areas 500 of the work area 501 and the work area 502 in the work memory 50. Further, for example, the address conversion unit 401 includes logical addresses 0x0000 to 0x1FFF when the processor 31 accesses the work area 500, physical addresses 0x2000 to 0x2FFF of the work area 502, and physical addresses 0x5000 to 0x5FFF of the work area 505. Convert to be continuous. As a result, the processor 31 can continuously access the two work areas 500 of the work area 502 and the work area 505 in the work memory 50. Further, for example, the address conversion unit 401 includes logical addresses 0x0000 to 0x1FFF when the processor 31 accesses the work area 500, physical addresses 0x1000 to 0x1FFF of the work area 501, and physical addresses 0x4000 to 0x4FFF of the work area 504. Convert to be continuous. Thereby, the processor 31 can continuously access the two work areas 500 of the work area 501 and the work area 504 in the work memory 50.

<第2の動作>
ここで、第2の実施形態の演算装置10において、プロセッサ30が複数のワーク領域500を使用して演算処理を実行する場合の動作の一例について説明する。本第2の動作の説明でも、パケットキュー210およびワークメモリ50内のパケットに着目して、演算装置10の動作を説明する。図9は、本第2の実施形態の演算装置10の動作におけるそれぞれの処理段階でのパケットキュー210およびワークメモリ50内のパケットの状態の一例を示した図である。本第2の動作は、パケットキュー210に格納されたパケット内に、2つのワーク領域500を使用して演算処理を実行するパケットが含まれている場合の演算装置10の動作である。
<Second operation>
Here, in the arithmetic device 10 of the second embodiment, an example of an operation when the processor 30 executes arithmetic processing using a plurality of work areas 500 will be described. Also in the description of the second operation, the operation of the arithmetic unit 10 will be described by paying attention to the packets in the packet queue 210 and the work memory 50. FIG. 9 is a diagram illustrating an example of packet states in the packet queue 210 and the work memory 50 at each processing stage in the operation of the arithmetic device 10 according to the second embodiment. The second operation is the operation of the arithmetic device 10 when the packet stored in the packet queue 210 includes a packet for performing arithmetic processing using the two work areas 500.

図9には、図8に示した第1の実施形態の演算装置10の動作におけるワークメモリ50内のパケットの状態の一例と同様に、ワークメモリ50内のパケットの状態として、それぞれのパケットに含まれる「演算対象データ」および「プロセッサ番号」を示している。図9には、図8に示した第1の実施形態の演算装置10の動作におけるパケットキュー210内のパケットの状態の一例と同様に、パケットキュー210内のパケットの状態として、それぞれのパケットに含まれる「演算対象データ」、「プロセッサ番号」、「ワークメモリ番号」、および「パケット状態情報」を示している。また、パケットキュー210内のパケットの状態には、さらに、「使用メモリ数」も示している。   FIG. 9 shows, as an example of the state of the packet in the work memory 50 in the operation of the arithmetic unit 10 of the first embodiment shown in FIG. “Calculation target data” and “processor number” included are shown. FIG. 9 shows the state of the packet in the packet queue 210 as an example of the state of the packet in the packet queue 210 in the operation of the arithmetic device 10 of the first embodiment shown in FIG. “Calculation target data”, “processor number”, “work memory number”, and “packet state information” included are shown. Further, the state of the packet in the packet queue 210 further indicates “number of used memories”.

なお、図9に示したそれぞれのパケットの状態における「プロセッサ番号」および「ワークメモリ番号」には、図8に示した第1の実施形態の演算装置10の動作におけるパケットキュー210およびワークメモリ50内のパケットの状態の一例と同様に、それぞれのプロセッサ30の符号の下1桁の数字およびそれぞれのワーク領域500の符号の下1桁の数字で示している。また、図9に示したそれぞれのパケットの状態においても、説明を容易にするため、図8に示した第1の実施形態の演算装置10の動作におけるパケットキュー210およびワークメモリ50内のパケットの状態の一例と同様に、「パケット番号」の項目と「処理中プロセッサ」の項目とを示している。   The “processor number” and “work memory number” in each packet state shown in FIG. 9 include the packet queue 210 and the work memory 50 in the operation of the arithmetic unit 10 of the first embodiment shown in FIG. Similarly to the example of the state of the packet, the last digit of the sign of each processor 30 and the last digit of the sign of each work area 500 are shown. Also, in the state of each packet shown in FIG. 9, for ease of explanation, the packet queue 210 and the packet in the work memory 50 in the operation of the arithmetic unit 10 of the first embodiment shown in FIG. Similarly to the example of the state, an item “packet number” and an item “processor in process” are shown.

まず、第2の実施形態の演算装置10の動作においては、図9(a)に示したように、ワークメモリ50内に3つのパケットが記憶され、パケットキュー210内に3つのパケットが格納され、パケットキュー210内に格納されたパケットの内、先頭に近い1つのパケットに、キュー制御部220によってすでにワーク領域500の使用権が付与されている状態を、第2の実施形態の演算装置10の初期の状態として、以降の動作を説明する。ここで、先頭から2番目のパケットが、2つのワーク領域500を使用するパケットであるものとする。   First, in the operation of the arithmetic unit 10 of the second embodiment, as shown in FIG. 9A, three packets are stored in the work memory 50, and three packets are stored in the packet queue 210. The computing device 10 according to the second embodiment shows a state in which the right to use the work area 500 has already been given to one of the packets stored in the packet queue 210 by the queue control unit 220. The following operations will be described as the initial state. Here, it is assumed that the second packet from the top is a packet that uses two work areas 500.

より具体的には、ワークメモリ50の初期状態は、ワーク領域501に、パケットキュー210に最初に入力された、演算対象データAに対してプロセッサ31が演算処理を実行するパケット#1が記憶されている状態である。また、ワーク領域502に、パケットキュー210に2番目に入力された、演算対象データBに対してプロセッサ32が演算処理を実行するパケット#2が記憶され、ワーク領域503に、パケットキュー210に3番目に入力された、演算対象データCに対してプロセッサ33が演算処理を実行するパケット#3が記憶されている状態である。   More specifically, the initial state of the work memory 50 is stored in the work area 501 as a packet # 1 that is first input to the packet queue 210 and for which the processor 31 performs calculation processing on the calculation target data A. It is in a state. Also, the work area 502 stores packet # 2 for which the processor 32 executes the arithmetic process on the operation target data B, which is input secondly into the packet queue 210, and the work area 503 stores 3 in the packet queue 210. This is a state in which packet # 3 is stored in which processor 33 performs arithmetic processing on operation target data C that is input second.

また、パケットキュー210の初期状態は、格納領域211に、パケットキュー210に4番目に入力された、演算対象データDに対してプロセッサ31が演算処理を実行する、ワーク領域504の使用権が付与されたパケット#4が格納されている状態である。また、格納領域212に、パケットキュー210に5番目に入力された、演算対象データEに対してプロセッサ32が演算処理を実行する、2つのワーク領域500を使用し、ワーク領域500の使用権が付与されていないパケット#5が格納され、格納領域213に、パケットキュー210に6番目に入力された、演算対象データFに対してプロセッサ31が演算処理を実行する、ワーク領域500の使用権が付与されていないパケット#6が格納されている状態である。   In the initial state of the packet queue 210, the right to use the work area 504 is given to the storage area 211, in which the processor 31 executes arithmetic processing on the operation target data D that is input fourth in the packet queue 210. In this state, the received packet # 4 is stored. In addition, in the storage area 212, two work areas 500 in which the processor 32 executes arithmetic processing on the calculation target data E that is input fifth in the packet queue 210 are used, and the right to use the work area 500 is granted. The packet # 5 that has not been granted is stored, and the storage area 213 has the right to use the work area 500 in which the processor 31 executes the arithmetic processing on the calculation target data F that is input sixth in the packet queue 210. This is a state where unassigned packet # 6 is stored.

なお、図9(a)を見て分かるように、ワークメモリ50内には、2つのワーク領域500(ワーク領域504およびワーク領域505)が、「未使用」の状態である。しかしながら、2つのワーク領域500を使用して演算処理を行うパケット#5には、ワーク領域500の使用権が付与されていない。これは、パケット#5は、パケットキュー210の2番目の格納領域212に格納されており、パケットキュー210の先頭の格納領域211に格納されているパケット#4にすでにワーク領域504の使用権が付与されていることにより、「未使用」の状態であるワーク領域500が、ワーク領域505のみであるためである。つまり、ワークメモリ50の初期状態では「未使用」の状態であるワーク領域500がワーク領域505の1つのみであり、パケット#5の演算処理に必要な数のワーク領域500を確保できないためである。   As can be seen from FIG. 9A, two work areas 500 (work area 504 and work area 505) are in an “unused” state in the work memory 50. However, the right to use the work area 500 is not given to the packet # 5 that performs arithmetic processing using the two work areas 500. This is because packet # 5 is stored in the second storage area 212 of the packet queue 210, and packet # 4 stored in the top storage area 211 of the packet queue 210 already has the right to use the work area 504. This is because the work area 500 that is in an “unused” state is only the work area 505 due to the assignment. That is, in the initial state of the work memory 50, there is only one work area 500 in the “unused” state, and the number of work areas 500 necessary for the arithmetic processing of packet # 5 cannot be secured. is there.

この初期状態から、プロセッサ31が、パケット#1に含まれる演算対象データAに対する演算処理を完了し、次の演算処理をプロセッサ32に引き継ぐためにプロセッサ番号を「2」とし、パケット状態情報を「処理継続」に更新した演算処理後のパケット#1を、再エントリ判定部230に出力する場合を考える。このとき、プロセッサ31は、ワーク領域501に最終的に記憶されている次の演算対象データA2以外のパケット#1を、再エントリ判定部230に出力する(図6のステップS49参照)。   From this initial state, the processor 31 completes the arithmetic processing for the operation target data A included in the packet # 1, sets the processor number to “2” to take over the next arithmetic processing to the processor 32, and sets the packet status information to “ Consider a case where packet # 1 after the arithmetic processing updated to “continue processing” is output to the re-entry determination unit 230. At this time, the processor 31 outputs the packet # 1 other than the next calculation target data A2 finally stored in the work area 501 to the reentry determination unit 230 (see step S49 in FIG. 6).

演算処理後のパケット#1を取得した再エントリ判定部230は、プロセッサ31に対応するプロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタ251の情報を、「未使用」を示す情報に更新する(図7のステップS51参照)。そして、再エントリ判定部230は、取得した演算処理後のパケット#1を、パケットキュー210内の最後尾の格納領域に再度格納(エントリ)する(図7のステップS53参照)。なお、再エントリ判定部230は、演算処理後のパケット#1に付与したワーク領域501の使用権を開放せずに、パケットキュー210に再度格納(エントリ)する。   The re-entry determination unit 230 that has acquired the packet # 1 after the arithmetic processing updates the information in the processor management register 251 in the processor usage status management register 250 corresponding to the processor 31 to information indicating “unused” (FIG. 7 step S51). Then, the re-entry determination unit 230 stores (entries) the acquired packet # 1 after the arithmetic processing again in the last storage area in the packet queue 210 (see step S53 in FIG. 7). The re-entry determination unit 230 stores (entries) the packet in the packet queue 210 again without releasing the right to use the work area 501 given to the packet # 1 after the arithmetic processing.

また、キュー制御部220は、再エントリ判定部230によってプロセッサ31に対応するプロセッサ管理レジスタ251の情報が「未使用」になり、プロセッサ31がパケットの演算処理を実行することができる状態になったことに応じて、パケットキュー210に格納済みのワーク領域500の使用権が付与されているパケットの内、プロセッサ番号=1で、最もパケットキュー210の先頭に近いパケット#4を、プロセッサ31に出力させる。また、キュー制御部220は、プロセッサ31に対応するプロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタ251の情報を、「使用中」を示す情報に更新する(図5のステップS33参照)。   Also, the queue control unit 220 is in a state where the information in the processor management register 251 corresponding to the processor 31 becomes “unused” by the re-entry determination unit 230 and the processor 31 can execute the packet calculation process. Accordingly, among the packets to which the right to use the work area 500 stored in the packet queue 210 is granted, the packet # 4 closest to the head of the packet queue 210 with the processor number = 1 is output to the processor 31. Let Further, the queue control unit 220 updates the information in the processor management register 251 in the processor usage status management register 250 corresponding to the processor 31 to information indicating “in use” (see step S33 in FIG. 5).

その後、プロセッサ31は、入力されたパケット#4に含まれるワークメモリ番号を対応するアドレス変換部401に出力し、プロセッサ31とワーク領域504とが1対1に接続された後(図6のステップS42参照)、パケット#4に含まれる演算対象データDをワーク領域504に転送(図6のステップS43参照)し、演算対象データDに対する演算処理を実行する(図6のステップS44参照)。   Thereafter, the processor 31 outputs the work memory number included in the input packet # 4 to the corresponding address conversion unit 401, and after the processor 31 and the work area 504 are connected one-to-one (step in FIG. 6). The calculation target data D included in the packet # 4 is transferred to the work area 504 (see step S43 in FIG. 6), and the calculation process for the calculation target data D is executed (see step S44 in FIG. 6).

図9(b)は、このときのパケットキュー210およびワークメモリ50内のパケットの状態を示している。より具体的には、ワークメモリ50の状態は、ワーク領域501に、プロセッサ31がパケット#1の演算対象データAに対する演算処理を実行した結果の演算対象データA2が記憶され(残っており)、ワーク領域504に、パケットキュー210から入力された、演算対象データDに対してプロセッサ31が演算処理を実行するパケット#4が記憶されている状態となっている。なお、ワークメモリ50内のワーク領域502およびワーク領域503は、プロセッサ32によるパケット#2に含まれる演算対象データBに対する演算処理、およびプロセッサ33によるパケット#3に含まれる演算対象データCに対する演算処理を完了していないため、初期状態と同様である。   FIG. 9B shows the state of packets in the packet queue 210 and the work memory 50 at this time. More specifically, the work memory 50 is stored in the work area 501 with calculation target data A2 as a result of the processor 31 executing calculation processing on the calculation target data A of packet # 1 (remaining). The work area 504 stores a packet # 4 that is input from the packet queue 210 and that is executed by the processor 31 on the calculation target data D. The work area 502 and the work area 503 in the work memory 50 are an arithmetic process for the calculation target data B included in the packet # 2 by the processor 32 and an arithmetic process for the calculation target data C included in the packet # 3 by the processor 33. This is the same as in the initial state.

また、パケットキュー210の状態は、格納領域211に格納されていたパケット#4がプロセッサ31に出力されたことにより、格納領域211にはパケット#5が格納され、同様に、格納領域212にはパケット#6が格納され、パケットキュー210内の最後尾の格納領域213には再エントリ判定部230によって再度格納(エントリ)された演算処理後のパケット#1が格納されている状態になる。なお、上述したように、格納領域213に格納される演算処理後のパケット#1は、パケット状態情報が「処理継続」のパケットであるため、演算対象データA2は含まれておらず、ワーク領域501の使用権が付与されたままの状態である。   The packet queue 210 is in a state where the packet # 4 stored in the storage area 211 is output to the processor 31 and the packet # 5 is stored in the storage area 211. Packet # 6 is stored, and the final storage area 213 in the packet queue 210 is in a state where the post-computation packet # 1 stored again (entry) by the re-entry determination unit 230 is stored. Note that, as described above, the post-computation packet # 1 stored in the storage area 213 does not include the computation target data A2 because the packet status information is a “process continuation” packet, and the work area In this state, the usage right 501 is still given.

なお、図9(b)を見て分かるように、2つのワーク領域500を使用して演算処理を行うパケット#5には、ワーク領域500の使用権が付与されていない。これは、パケット#5がパケットキュー210の先頭の格納領域211に格納された状態でも、「未使用」の状態であるワーク領域500がワーク領域505のみであり、パケット#5の演算処理に必要な数のワーク領域500を確保できないためである。   As can be seen from FIG. 9B, the right to use the work area 500 is not given to the packet # 5 that performs arithmetic processing using the two work areas 500. This is because the work area 500 in the “unused” state is only the work area 505 even when the packet # 5 is stored in the top storage area 211 of the packet queue 210, and is necessary for the calculation process of the packet # 5. This is because a large number of work areas 500 cannot be secured.

この状態から、プロセッサ32が、パケット#2に含まれる演算対象データBに対する演算処理を完了したことにより、演算装置10による一連の演算処理が完了し、パケット状態情報を「処理完了」に更新した演算処理後のパケット#2を、再エントリ判定部230に出力する場合を考える。なお、プロセッサ32は、ワーク領域502に最終的に記憶されている演算対象データBを含めた演算処理後のパケット#2全体を、再エントリ判定部230に出力する(図6のステップS48参照)。   From this state, when the processor 32 has completed the arithmetic processing on the operation target data B included in the packet # 2, a series of arithmetic processing by the arithmetic device 10 is completed, and the packet state information is updated to “processing complete”. Consider a case where the packet # 2 after the arithmetic processing is output to the reentry determination unit 230. The processor 32 outputs the entire packet # 2 after the calculation process including the calculation target data B finally stored in the work area 502 to the reentry determination unit 230 (see step S48 in FIG. 6). .

演算処理後のパケット#2を取得した再エントリ判定部230は、プロセッサ32に対応するプロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタ252の情報を、「未使用」を示す情報に更新する(図7のステップS51参照)。また、再エントリ判定部230は、ワークメモリ使用状況管理レジスタ240内のワークメモリ管理レジスタ242の情報を、「未使用」を示す情報に更新することによって、演算処理後のパケット#2に付与されたワーク領域502の使用権を開放する(図7のステップS54参照)。そして、再エントリ判定部230は、取得した演算処理後のパケット#2全体を、外部ブロック100に出力する(図7のステップS55参照)。   The re-entry determination unit 230 that has acquired the packet # 2 after the arithmetic processing updates the information in the processor management register 252 in the processor usage status management register 250 corresponding to the processor 32 to information indicating “unused” (FIG. 7 step S51). In addition, the re-entry determination unit 230 updates the information in the work memory management register 242 in the work memory usage status management register 240 to information indicating “unused”, thereby giving the re-entry determination unit 230 to the packet # 2 after the arithmetic processing. The right to use the work area 502 is released (see step S54 in FIG. 7). Then, the reentry determination unit 230 outputs the acquired packet # 2 after the arithmetic processing to the external block 100 (see step S55 in FIG. 7).

また、キュー制御部220は、再エントリ判定部230によってワーク領域502に対応するワークメモリ使用状況管理レジスタ240内のワークメモリ管理レジスタ242の情報が「未使用」になり、ワーク領域502の使用権を付与することができる状態になったことに応じて、パケットキュー210に格納済みのワーク領域500の使用権が付与されていないパケットの内、最もパケットキュー210の先頭に近い、2つのワーク領域500を使用して演算処理を行うパケット#5の演算処理に必要な数のワーク領域500を確保できたことを確認する(図4のステップS21参照)。これにより、キュー制御部220は、パケット#5に、ワーク領域502とワーク領域505の使用権を付与する(図4のステップS23参照)。   In addition, the queue control unit 220 causes the re-entry determination unit 230 to change the information in the work memory management register 242 in the work memory usage status management register 240 corresponding to the work area 502 to “unused”, and the right to use the work area 502. The two work areas that are closest to the top of the packet queue 210 among the packets to which the right to use the work area 500 stored in the packet queue 210 is not granted. It is confirmed that the number of work areas 500 necessary for the arithmetic processing of packet # 5 that performs arithmetic processing using 500 can be secured (see step S21 in FIG. 4). Thereby, the queue control unit 220 grants the right to use the work area 502 and the work area 505 to the packet # 5 (see step S23 in FIG. 4).

そして、キュー制御部220は、再エントリ判定部230によってプロセッサ32に対応するプロセッサ管理レジスタ252の情報が「未使用」になり、プロセッサ32がパケットの演算処理を実行することができる状態になったことに応じて、パケットキュー210に格納済みのワーク領域500の使用権が付与されているパケットの内、プロセッサ番号=2で、最もパケットキュー210の先頭に近い演算処理後のパケット#5を、プロセッサ32に出力させる。また、キュー制御部220は、プロセッサ32に対応するプロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタ252の情報を、「使用中」を示す情報に更新する(図5のステップS33参照)。   The queue control unit 220 is in a state in which the information in the processor management register 252 corresponding to the processor 32 becomes “unused” by the re-entry determination unit 230 and the processor 32 can execute the packet calculation process. Accordingly, the packet # 5 after the arithmetic processing closest to the head of the packet queue 210 with the processor number = 2 among the packets to which the right to use the work area 500 stored in the packet queue 210 is granted, The data is output to the processor 32. Further, the queue control unit 220 updates the information in the processor management register 252 in the processor usage status management register 250 corresponding to the processor 32 to information indicating “in use” (see step S33 in FIG. 5).

その後、プロセッサ32は、入力されたパケット#5に含まれるワークメモリ番号を対応するアドレス変換部402に出力する。そして、アドレス変換部402は、ワーク領域502とワーク領域505とが連続した1つのワーク領域となるように論理アドレスを構成する。より具体的には、ワーク領域502の物理アドレスに割り振ったプロセッサ32がワーク領域にアクセスする際の論理アドレスをオフセットとして、ワーク領域505の論理アドレスに加えることによって、連続した1つのワーク領域を構成する。これにより、例えば、ワーク領域502に半分の演算対象データEを、ワーク領域505にもう半分の演算対象データEを、それぞれ記憶することができる。   Thereafter, the processor 32 outputs the work memory number included in the input packet # 5 to the corresponding address conversion unit 402. The address conversion unit 402 configures a logical address so that the work area 502 and the work area 505 are one continuous work area. More specifically, one continuous work area is formed by adding the logical address when the processor 32 allocated to the physical address of the work area 502 accesses the work area as an offset to the logical address of the work area 505. To do. Thereby, for example, half of the calculation target data E can be stored in the work area 502 and the other half of the calculation target data E can be stored in the work area 505.

そして、プロセッサ32は、プロセッサ32と、ワーク領域502およびワーク領域505で構成されたワーク領域とが1対1に接続された後(図6のステップS42参照)、パケット#5に含まれる演算対象データEを、連続した1つのワーク領域(ワーク領域502およびワーク領域505)に転送(図6のステップS43参照)し、演算対象データEに対する演算処理を実行する(図6のステップS44参照)。このとき、プロセッサ32は、ワーク領域500の物理的な区切りを考慮することなく(意識することなく)、演算対象データEに対する演算処理を実行することができる。   Then, after the processor 32 and the work area composed of the work area 502 and the work area 505 are connected one-to-one (see step S42 in FIG. 6), the processor 32 calculates the calculation target included in the packet # 5. Data E is transferred to one continuous work area (work area 502 and work area 505) (see step S43 in FIG. 6), and calculation processing is performed on calculation target data E (see step S44 in FIG. 6). At this time, the processor 32 can execute a calculation process on the calculation target data E without considering (not aware of) the physical separation of the work area 500.

図9(c)は、このときのパケットキュー210およびワークメモリ50内のパケットの状態を示している。より具体的には、ワークメモリ50の状態は、ワーク領域502およびワーク領域505に、パケットキュー210から入力された、演算対象データEに対してプロセッサ32が演算処理を実行するパケット#5が記憶されている状態となっている。ここで、図9(c)には、ワーク領域502に演算対象データEの上位側の半分のデータが、ワーク領域505に演算対象データEの下位側の半分のデータが、それぞれ分割して記憶されている状態を示している。なお、ワークメモリ50内のワーク領域501には、プロセッサ31がパケット#1の演算対象データAに対する演算処理を実行した結果の演算対象データA2が記憶され(残っており)、ワーク領域503およびワーク領域504は、プロセッサ33によるパケット#3に含まれる演算対象データCに対する演算処理、およびプロセッサ31によるパケット#4に含まれる演算対象データDに対する演算処理を完了していないため、図9(b)に示した状態と同様である。   FIG. 9C shows the state of packets in the packet queue 210 and the work memory 50 at this time. More specifically, the state of the work memory 50 is stored in the work area 502 and the work area 505 as a packet # 5 that is input from the packet queue 210 by the processor 32 and performs arithmetic processing on the operation target data E. It is in a state that has been. Here, in FIG. 9C, the upper half of the calculation target data E is stored in the work area 502 and the lower half of the calculation target data E is stored in the work area 505 separately. It shows the state being done. The work area 501 in the work memory 50 stores the calculation target data A2 as a result of the processor 31 executing the calculation process on the calculation target data A of the packet # 1 (remains). In the area 504, the calculation processing for the calculation target data C included in the packet # 3 by the processor 33 and the calculation processing for the calculation target data D included in the packet # 4 by the processor 31 have not been completed. It is the same as the state shown in.

また、パケットキュー210の状態は、格納領域211に格納されていたパケット#5がプロセッサ32に出力されたことにより、格納領域211にはパケット#6が格納され、同様に、パケットキュー210内の最後尾の格納領域212には再エントリ判定部230によって再度格納(エントリ)された演算処理後のパケット#1が格納されている状態になる。   Further, the state of the packet queue 210 is that the packet # 5 stored in the storage area 211 is output to the processor 32, so that the packet # 6 is stored in the storage area 211. In the last storage area 212, the packet # 1 after the arithmetic processing stored again (entry) by the re-entry determination unit 230 is stored.

なお、図9(c)を見て分かるように、パケット#6には、ワーク領域500の使用権が付与されていない。これは、ワークメモリ50内の全てのワーク領域500が使用中である、すなわち、ワークメモリ使用状況管理レジスタ240内のワークメモリ管理レジスタの情報が全て「使用中」であるため、パケット#6の演算処理に必要な数のワーク領域500を確保できないためである。   As can be seen from FIG. 9C, the right to use the work area 500 is not given to the packet # 6. This is because all the work areas 500 in the work memory 50 are in use, that is, all the information in the work memory management register in the work memory use status management register 240 is “in use”. This is because the number of work areas 500 necessary for the arithmetic processing cannot be secured.

このように、第2の実施形態の演算装置10でも、第1の実施形態の演算装置10と同様に、演算装置10に備えたワークメモリ50内のそれぞれのワーク領域500の使用状況を常時監視し、監視したワーク領域500の使用状況に応じて、パケットに対する演算処理を実行する際に必要な数のワーク領域500の使用権を付与する。これにより、第2の実施形態の演算装置10でも、第1の実施形態の演算装置10と同様に、それぞれのプロセッサ30でワーク領域500の競合が発生することなく、外部ブロック100から入力された複数のパケットに対する一連の演算処理を、それぞれのプロセッサ30で分担して並列に実行することができる。   As described above, also in the arithmetic device 10 of the second embodiment, as in the arithmetic device 10 of the first embodiment, the usage status of each work area 500 in the work memory 50 provided in the arithmetic device 10 is constantly monitored. Then, according to the monitored usage status of the work area 500, the right to use the work areas 500 as many as necessary when performing the arithmetic processing on the packet is granted. As a result, even in the arithmetic device 10 of the second embodiment, as in the arithmetic device 10 of the first embodiment, each processor 30 is input from the external block 100 without causing a conflict of the work area 500. A series of arithmetic processing for a plurality of packets can be shared by each processor 30 and executed in parallel.

また、第2の実施形態の演算装置10では、それぞれのプロセッサ30がパケットに対する演算処理を実行する際に必要な数の複数のワーク領域500で構成された1つのワーク領域500とプロセッサ30とを1対1で対応させる。つまり、第2の実施形態の演算装置10では、それぞれのプロセッサ30が演算処理を実行する際に必要な記憶領域の大きさのワーク領域500を対応させる。これにより、第2の実施形態の演算装置10では、パケットに対する演算処理を実行する際に記憶領域の大きさが大きいワーク領域を使用する場合でも、それぞれのプロセッサ30がパケットに対する演算処理を実行する際のワーク領域500の競合が発生することなく、演算装置10は、外部ブロック100から要求された複数の演算処理を並列に実行することができる。   Further, in the arithmetic device 10 of the second embodiment, the processor 30 includes a single work area 500 including a plurality of work areas 500 necessary for each processor 30 to execute arithmetic processing on a packet. One-to-one correspondence. That is, in the arithmetic device 10 according to the second embodiment, the work area 500 having a size of a storage area required when each processor 30 executes arithmetic processing is associated. Thus, in the arithmetic device 10 of the second embodiment, each processor 30 executes arithmetic processing for a packet even when a work area having a large storage area is used when executing arithmetic processing for the packet. The computing device 10 can execute a plurality of computing processes requested from the external block 100 in parallel without causing conflicts in the work area 500 at the time.

なお、図8および図9に示した演算装置10の動作の一例では、次のプロセッサ30に演算処理を引き継ぐパケット以外は、パケットがパケットキュー210に格納された順番でワークメモリ50内のワーク領域500の使用権を付与する場合について説明した。しかし、パケットキュー210には、それぞれのプロセッサ30が演算処理を実行するパケットが分散して格納されるとは限らず、同じプロセッサ30(例えば、プロセッサ31)が演算処理を実行するパケットが連続してパケットキュー210内に格納される場合もある。   In the example of the operation of the arithmetic device 10 shown in FIGS. 8 and 9, the work areas in the work memory 50 are in the order in which the packets are stored in the packet queue 210 except for the packet that takes over the arithmetic processing to the next processor 30. The case where 500 usage rights are granted has been described. However, the packets that each processor 30 executes arithmetic processing are not necessarily distributed and stored in the packet queue 210, and packets that the same processor 30 (for example, the processor 31) executes arithmetic processing are consecutive. May be stored in the packet queue 210.

<第3の実施形態>
次に、本発明の第3の実施形態について説明する。本第3の実施形態の演算装置は、キュー内に、ワーク領域の使用権が付与された同一のプロセッサが処理するパケットの数が予め定めた閾値以上とならないように、ワーク領域の使用権を付与する順番を制御するという考え方を適用した演算装置である。つまり、本第3の実施形態の演算装置は、パケットに対して演算処理を実行するプロセッサに付与するワーク領域の使用権が偏らないように制御することによって、特定のプロセッサがワーク領域の使用権を占有してしまうことを防止する構成の演算装置である。
<Third Embodiment>
Next, a third embodiment of the present invention will be described. The arithmetic device according to the third embodiment sets the right to use the work area in the queue so that the number of packets processed by the same processor to which the right to use the work area is processed does not exceed a predetermined threshold. This is an arithmetic device to which the concept of controlling the order of giving is applied. In other words, the arithmetic device according to the third embodiment controls the right to use a work area so that a specific processor does not bias the right to use the work area given to a processor that performs arithmetic processing on a packet. It is the arithmetic unit of the structure which prevents having occupied.

本第3の実施形態の演算装置では、ワークメモリ50の使用権を付与する順番を制御するための機能が、キュー制御部および再エントリ判定部に加わること以外は、演算装置の構成や処理手順は、第1または第2の実施形態の演算装置10と同様である。従って、以下の説明においては、本第3の実施形態の演算装置を演算装置10とし、演算装置10に備えたそれぞれの構成要素に加わった機能のみを説明する。   In the arithmetic device according to the third embodiment, the configuration and processing procedure of the arithmetic device are the same except that a function for controlling the order of granting the right to use the work memory 50 is added to the queue control unit and the re-entry determination unit. Is the same as that of the arithmetic unit 10 of the first or second embodiment. Therefore, in the following description, the arithmetic device of the third embodiment is the arithmetic device 10, and only functions added to the respective components provided in the arithmetic device 10 will be described.

キュー制御部220には、パケットキュー210内に、ワーク領域500の使用権が付与された同一のプロセッサ30が処理するパケットの数が予め定めた閾値(以下、「有使用権パケット数」という)以上とならないように、それぞれのパケットに対して付与するワーク領域500の使用権を制御する機能が加わる。なお、有使用権パケット数は、それぞれのプロセッサ30毎に設定することができる。   In the queue control unit 220, the number of packets to be processed by the same processor 30 to which the use right of the work area 500 is given is set in the packet queue 210 (hereinafter referred to as “the number of used right packets”). In order not to become the above, a function for controlling the right to use the work area 500 to be assigned to each packet is added. Note that the number of use right packets can be set for each processor 30.

より具体的には、まず、キュー制御部220は、パケットキュー210に格納されたそれぞれのパケットに含まれるプロセッサ番号を確認する。そして、キュー制御部220は、すでにワーク領域500の使用権が付与されているパケットに含まれるプロセッサ番号と、ワーク領域500の使用権が付与されていないパケットに含まれるプロセッサ番号とが同じであるか否かを確認する。この確認の結果、すでにワーク領域500の使用権が付与されている同じプロセッサ番号が含まれるパケットが、パケットキュー210内に予め定めた閾値以上ある場合には、ワークメモリ使用状況管理レジスタ240内のワークメモリ管理レジスタに「未使用」の情報がある場合でも、同じプロセッサ番号が含まれるワーク領域500の使用権を付与していないパケットに対しては、ワーク領域500の使用権を付与しない。   More specifically, the queue control unit 220 first confirms the processor number included in each packet stored in the packet queue 210. Then, the queue control unit 220 has the same processor number included in the packet that has already been given the right to use the work area 500 and the processor number included in the packet that has not been given the right to use the work area 500. Check whether or not. As a result of this confirmation, if there are more packets than the predetermined threshold in the packet queue 210 that contain the same processor number to which the right to use the work area 500 has been assigned, the work memory usage status management register 240 Even when there is “unused” information in the work memory management register, the right to use the work area 500 is not granted to a packet that does not have the right to use the work area 500 including the same processor number.

再エントリ判定部230には、パケットキュー210内に、ワーク領域500の使用権が付与された同一のプロセッサ30が処理するパケットの数が有使用権パケット数以上とならないように、それぞれのパケットに付与されているワーク領域500の使用権の開放を制御する機能が加わる。   The re-entry determination unit 230 assigns each packet to the packet queue 210 so that the number of packets processed by the same processor 30 to which the usage right of the work area 500 is granted does not exceed the number of usage right packets. A function for controlling the release of the right to use the assigned work area 500 is added.

より具体的には、まず、再エントリ判定部230は、パケットキュー210に格納されたそれぞれのパケットに含まれるプロセッサ番号を確認する。そして、再エントリ判定部230は、すでにワーク領域500の使用権が付与されているパケットに含まれるプロセッサ番号と、パケットキュー210に再度格納(エントリ)するパケットに含まれるプロセッサ番号とが同じであるか否かを確認する。この確認の結果、すでにワーク領域500の使用権が付与されている同じプロセッサ番号が含まれるパケットが、パケットキュー210内に有使用権パケット数以上ある場合には、パケットキュー210に再度格納(エントリ)するパケットのパケット状態情報が「処理継続」である場合でも、パケットキュー210に再度格納(エントリ)するパケットに付与されたワーク領域500の使用権を開放する。   More specifically, first, the re-entry determination unit 230 checks the processor number included in each packet stored in the packet queue 210. Then, the re-entry determination unit 230 has the same processor number included in the packet to which the right to use the work area 500 is already assigned and the processor number included in the packet stored (entry) in the packet queue 210 again. Check whether or not. As a result of this confirmation, if there are more packets in the packet queue 210 that have the same processor number to which the right to use the work area 500 has been assigned, the packet queue 210 stores the packet again (entry ), Even when the packet status information of the packet to be processed is “continuation of processing”, the right to use the work area 500 given to the packet stored (entry) in the packet queue 210 again is released.

なお、パケットキュー210に再度格納(エントリ)するパケットに付与されたワーク領域500の使用権を開放すると、ワーク領域500に記憶されている(残している)演算対象データが書き換えられてしまうことになる。このため、再エントリ判定部230は、パケット状態情報が「処理継続」であるが、ワーク領域500の使用権を開放する演算処理後のパケットを出力するプロセッサ30に、演算処理を実行した結果の演算対象データ、すなわち、次のプロセッサ30に引き継ぐ演算対象データを含めた演算処理後のパケット全体を出力するように指示する。   Note that if the right to use the work area 500 given to a packet stored (entry) again in the packet queue 210 is released, the calculation target data stored (remaining) in the work area 500 is rewritten. Become. For this reason, the re-entry determination unit 230, although the packet status information is “processing continuation”, the result of executing the arithmetic processing to the processor 30 that outputs the packet after the arithmetic processing for releasing the right to use the work area 500 is obtained. An instruction is given to output the calculation target data, that is, the entire packet after the calculation process including the calculation target data to be taken over by the next processor 30.

<第3の動作>
ここで、第3の実施形態の演算装置10において、ワーク領域500の使用権が付与された同一のプロセッサ30が処理するパケットキュー210内のパケットの数が有使用権パケット数以上とならないように、ワーク領域500の使用権の付与を制御する場合の動作の一例について説明する。本第3の動作の説明でも、パケットキュー210およびワークメモリ50内のパケットに着目して、演算装置10の動作を説明する。なお、本第3の動作では、有使用権パケット数が全てのプロセッサ番号に対して同じ値が適用される、すなわち、演算装置10内の全てのプロセッサ30に対して同じ有使用権パケット数が適用されるものとする。また、有使用権パケット数は、有使用権パケット数=1であるものとする。つまり、パケットキュー210内には、同じプロセッサ30が演算処理を実行するワーク領域500の使用権が付与されたパケットが、1つずつしか存在しないものとする。図10は、本第3の実施形態の演算装置10の動作におけるそれぞれの処理段階でのパケットキュー210およびワークメモリ50内のパケットの状態の一例を示した図である。
<Third operation>
Here, in the arithmetic device 10 of the third embodiment, the number of packets in the packet queue 210 processed by the same processor 30 to which the usage right of the work area 500 is granted does not exceed the number of the usage right packets. An example of an operation when controlling the granting of the right to use the work area 500 will be described. Also in the description of the third operation, the operation of the arithmetic unit 10 will be described by paying attention to the packets in the packet queue 210 and the work memory 50. In the third operation, the same value is applied to all processor numbers for the number of right-of-use packets, that is, the same number of right-of-use packets is assigned to all the processors 30 in the arithmetic unit 10. Shall apply. The number of usage right packets is assumed to be the number of usage right packets = 1. That is, it is assumed that there is only one packet in the packet queue 210 to which the right to use the work area 500 in which the same processor 30 executes arithmetic processing is assigned. FIG. 10 is a diagram illustrating an example of packet states in the packet queue 210 and the work memory 50 at each processing stage in the operation of the arithmetic device 10 according to the third embodiment.

図10には、図8に示した第1の実施形態の演算装置10の動作におけるワークメモリ50内のパケットの状態の一例と同様に、ワークメモリ50内のパケットの状態として、それぞれのパケットに含まれる「演算対象データ」および「プロセッサ番号」を示している。また、図10には、図8に示した第1の実施形態の演算装置10の動作におけるパケットキュー210内のパケットの状態の一例と同様に、パケットキュー210内のパケットの状態として、それぞれのパケットに含まれる「演算対象データ」、「プロセッサ番号」、「ワークメモリ番号」、および「パケット状態情報」を示している。また、パケットキュー210内のパケットの状態には、図9に示した第2の実施形態の演算装置10の動作におけるパケットキュー210内のパケットの状態の一例と同様に、さらに、「使用メモリ数」も示している。ただし、使用メモリ数は、使用メモリ数=1のみであるものとする。   FIG. 10 shows, as an example of the state of the packet in the work memory 50 in the operation of the arithmetic device 10 of the first embodiment shown in FIG. “Calculation target data” and “processor number” included are shown. In addition, FIG. 10 shows the packet status in the packet queue 210 as an example of the status of the packet in the packet queue 210 in the operation of the arithmetic device 10 of the first embodiment shown in FIG. “Calculation target data”, “processor number”, “work memory number”, and “packet state information” included in the packet are shown. Further, the state of the packet in the packet queue 210 includes “number of used memories” as in the example of the state of the packet in the packet queue 210 in the operation of the arithmetic device 10 of the second embodiment shown in FIG. Is also shown. However, the number of used memories is only used memory number = 1.

なお、図10に示したそれぞれのパケットの状態における「プロセッサ番号」および「ワークメモリ番号」には、図8および図9に示した第1の実施形態および第2の実施形態の演算装置10の動作におけるパケットキュー210およびワークメモリ50内のパケットの状態の一例と同様に、それぞれのプロセッサ30の符号の下1桁の数字およびそれぞれのワーク領域500の符号の下1桁の数字で示している。また、図10に示したそれぞれのパケットの状態においても、説明を容易にするため、図8および図9に示した第1の実施形態および第2の実施形態の演算装置10の動作におけるパケットキュー210およびワークメモリ50内のパケットの状態の一例と同様に、「パケット番号」の項目と「処理中プロセッサ」の項目とを示している。   The “processor number” and “work memory number” in the state of each packet shown in FIG. 10 are the same as those of the arithmetic unit 10 of the first embodiment and the second embodiment shown in FIGS. Similarly to the example of the state of the packet in the packet queue 210 and the work memory 50 in the operation, the last digit of the sign of each processor 30 and the last digit of the sign of each work area 500 are shown. . Also, in the state of each packet shown in FIG. 10, in order to facilitate the explanation, the packet queue in the operation of the arithmetic unit 10 of the first embodiment and the second embodiment shown in FIGS. Similarly to the example of the state of the packet in 210 and the work memory 50, the item of “packet number” and the item of “processing processor” are shown.

まず、第3の実施形態の演算装置10の動作においては、図10(a)に示したように、ワークメモリ50内に3つのパケットが記憶され、パケットキュー210内に3つのパケットが格納され、パケットキュー210内に格納されたパケットの内、先頭のパケットと3番目のパケットとに、キュー制御部220によってすでにワーク領域500の使用権が付与されている状態を、第3の実施形態の演算装置10の初期の状態として、以降の動作を説明する。   First, in the operation of the arithmetic unit 10 of the third embodiment, as shown in FIG. 10A, three packets are stored in the work memory 50, and three packets are stored in the packet queue 210. The state in which the right to use the work area 500 is already granted to the first packet and the third packet among the packets stored in the packet queue 210 by the queue control unit 220 in the third embodiment. The following operations will be described as an initial state of the arithmetic unit 10.

より具体的には、ワークメモリ50の初期状態は、ワーク領域501に、パケットキュー210に最初に入力された、演算対象データAに対してプロセッサ31が演算処理を実行するパケット#1が記憶されている状態である。また、ワーク領域502に、パケットキュー210に2番目に入力された、演算対象データBに対してプロセッサ32が演算処理を実行するパケット#2が記憶され、ワーク領域503に、パケットキュー210に3番目に入力された、演算対象データCに対してプロセッサ33が演算処理を実行するパケット#3が記憶されている状態である。   More specifically, the initial state of the work memory 50 is stored in the work area 501 as a packet # 1 that is first input to the packet queue 210 and for which the processor 31 performs calculation processing on the calculation target data A. It is in a state. Also, the work area 502 stores packet # 2 for which the processor 32 executes the arithmetic process on the operation target data B, which is input secondly into the packet queue 210, and the work area 503 stores 3 in the packet queue 210. This is a state in which packet # 3 is stored in which processor 33 performs arithmetic processing on operation target data C that is input second.

また、パケットキュー210の初期状態は、格納領域211に、パケットキュー210に4番目に入力された、演算対象データDに対してプロセッサ31が演算処理を実行する、ワーク領域504の使用権が付与されたパケット#4が格納されている状態である。また、格納領域212に、パケットキュー210に5番目に入力された、演算対象データEに対してプロセッサ31が演算処理を実行する、ワーク領域500の使用権が付与されていないパケット#5が格納され、格納領域213に、パケットキュー210に6番目に入力された、演算対象データFに対してプロセッサ32が演算処理を実行する、ワーク領域505の使用権が付与されたパケット#6が格納されている状態である。   In the initial state of the packet queue 210, the right to use the work area 504 is given to the storage area 211, in which the processor 31 executes arithmetic processing on the operation target data D that is input fourth in the packet queue 210. In this state, the received packet # 4 is stored. Also, in the storage area 212, packet # 5, which is the fifth input to the packet queue 210 and for which the processor 31 performs arithmetic processing on the operation target data E and is not granted the right to use the work area 500, is stored. In the storage area 213, the packet # 6, which is the sixth input to the packet queue 210 and for which the processor 32 executes the arithmetic process on the operation target data F and is granted the right to use the work area 505, is stored. It is in a state.

なお、図10(a)を見て分かるように、パケットキュー210の2番目の格納領域212に格納されたパケット#5は、パケットキュー210の3番目の格納領域213に格納されたパケット#6よりも先頭に近いパケットであるにも関わらず、ワーク領域500の使用権が付与されていない。このパケット#5には、パケット#6にワーク領域500の使用権を付与する前の段階でワークメモリ50内にワーク領域505が「未使用」の状態であったため、ワーク領域505の使用権が付与されてもよいはずである。しかし、現段階でワーク領域505の使用権が付与されていないのは、同じプロセッサ番号=1が含まれ、すでにワーク領域500の使用権が付与されているパケットが1つ以上(有使用権パケット数以上)存在するためである。より具体的には、本第3の動作では、有使用権パケット数=1であるため、同じプロセッサ31が演算処理を実行する、すでにワーク領域504の使用権が付与されたパケット#4が先頭の格納領域211に格納されているため、パケット#4と同じプロセッサ31が演算処理を実行するパケット#5には、ワーク領域505の使用権が付与されないのである。そして、プロセッサ番号=2で、すでにワーク領域500の使用権が付与された同じプロセッサ32が演算処理を実行するパケットがパケットキュー210内に存在しないパケット#6に、ワーク領域505の使用権が付与されたのである。   As can be seen from FIG. 10A, the packet # 5 stored in the second storage area 212 of the packet queue 210 is the packet # 6 stored in the third storage area 213 of the packet queue 210. The right to use the work area 500 is not granted even though the packet is closer to the beginning. In this packet # 5, since the work area 505 is in an “unused” state in the work memory 50 before the use right of the work area 500 is given to the packet # 6, the right to use the work area 505 is given. Should be granted. However, the right to use the work area 505 is not granted at this stage because the same processor number = 1 is included and one or more packets to which the right to use the work area 500 has already been assigned (usage right packet This is because there are more than a few). More specifically, in the third operation, since the number of right-of-use packets is 1, the same processor 31 executes arithmetic processing, and packet # 4 to which the right to use work area 504 has already been granted is the first. Therefore, the right to use the work area 505 is not given to the packet # 5 in which the same processor 31 as that of the packet # 4 executes the arithmetic processing. Then, the use right of the work area 505 is given to the packet # 6 in which the packet for which the processor 32 performs the arithmetic processing by the same processor 32 to which the use right of the work area 500 has already been given does not exist in the packet queue 210. It was done.

この初期状態から、プロセッサ31が、パケット#1に含まれる演算対象データAに対する演算処理を完了し、次の演算処理をプロセッサ32に引き継ぐためにプロセッサ番号を「2」とし、パケット状態情報を「処理継続」に更新した演算処理後のパケット#1を、再エントリ判定部230に出力する場合を考える。このとき、プロセッサ31は、ワーク領域501に最終的に記憶されている次の演算対象データA2以外のパケット#1、つまり、プロセッサ番号とパケット状態情報とのみを含んだ演算処理後のパケット#1を、再エントリ判定部230に出力する(図6のステップS49参照)。   From this initial state, the processor 31 completes the arithmetic processing for the operation target data A included in the packet # 1, sets the processor number to “2” to take over the next arithmetic processing to the processor 32, and sets the packet status information to “ Consider a case where packet # 1 after the arithmetic processing updated to “continue processing” is output to the re-entry determination unit 230. At this time, the processor 31 uses the packet # 1 other than the next calculation target data A2 finally stored in the work area 501, that is, the packet # 1 after the calculation process including only the processor number and the packet state information. Is output to the re-entry determination unit 230 (see step S49 in FIG. 6).

プロセッサ番号とパケット状態情報とのみを含んだ演算処理後のパケット#1をプロセッサ31から取得した再エントリ判定部230は、まず、パケットキュー210に格納されている、取得した演算処理後のパケット#1に含まれるプロセッサ番号と同じプロセッサ番号で、すでにワーク領域500の使用権が付与されたパケットの数を確認する。より具体的には、再エントリ判定部230は、演算処理後のパケット#1に含まれるプロセッサ番号と同じプロセッサ番号=2が書き込まれている、ワークメモリ使用状況管理レジスタ240内のそれぞれのワークメモリ管理レジスタの数を確認する。本第3の動作では、ワークメモリ管理レジスタ245に、プロセッサ32を表す値が書き込まれているため、再エントリ判定部230は、すでにワーク領域500の使用権が付与されているパケット(図10(a)に示したパケット#6が該当)が、パケットキュー210内に1つ以上(有使用権パケット数以上)存在すると判断する。   The re-entry determination unit 230 that acquired the processed packet # 1 including only the processor number and the packet status information from the processor 31 first stores the acquired processed packet # 1 stored in the packet queue 210. The number of packets having the same processor number as that included in 1 and already granted the right to use the work area 500 is confirmed. More specifically, the re-entry determination unit 230 stores each work memory in the work memory use status management register 240 in which the same processor number = 2 as the processor number included in the packet # 1 after the arithmetic processing is written. Check the number of management registers. In the third operation, since the value representing the processor 32 is written in the work memory management register 245, the re-entry determination unit 230 has already given the right to use the work area 500 (see FIG. 10 ( It is determined that at least one packet # 6 shown in a) corresponds to the packet queue 210 (the number of used right packets).

なお、プロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタに、対応するプロセッサ30が演算処理を実行する際に使用するワーク領域500を表す情報が含まれている場合には、再エントリ判定部230は、それぞれのプロセッサ管理レジスタを確認することによっても、同様の確認をすることができる。   When the processor management register in the processor usage status management register 250 includes information indicating the work area 500 used when the corresponding processor 30 executes the arithmetic processing, the re-entry determination unit 230 The same confirmation can be made by checking the respective processor management registers.

有使用権パケット数以上のパケットがパケットキュー210内に存在することを確認した再エントリ判定部230は、演算対象データA2を含めた演算処理後のパケット#1全体を出力するように、プロセッサ31に指示する。これは、演算処理後のパケット#1に含まれるパケット状態情報は「処理継続」であるが、プロセッサ32に引き継ぐ演算対象データA2が、他のプロセッサ30によって書き換えられてしまう可能性があるため、引き継ぐ演算対象データA2を退避するためである。   The re-entry determining unit 230 that has confirmed that there are more packets than the number of use right packets in the packet queue 210 outputs the entire packet # 1 after the arithmetic processing including the arithmetic target data A2 so as to output the processor 31. To instruct. This is because the packet status information included in the packet # 1 after the arithmetic processing is “processing continuation”, but the calculation target data A2 to be taken over by the processor 32 may be rewritten by another processor 30. This is to save the data A2 to be inherited.

再エントリ判定部230から演算処理後のパケット#1全体を出力するように指示を受けたプロセッサ31は、ワーク領域501に最終的に記憶されている次の演算対象データA2を含んだ演算処理後のパケット#1全体を再度、再エントリ判定部230に出力する(図6のステップS48参照)。   The processor 31 that has received an instruction to output the entire packet # 1 after the arithmetic processing from the re-entry determination unit 230, after the arithmetic processing including the next arithmetic target data A2 that is finally stored in the work area 501 The entire packet # 1 is output again to the re-entry determination unit 230 (see step S48 in FIG. 6).

演算処理後のパケット#1全体をプロセッサ31から取得した再エントリ判定部230は、プロセッサ31に対応するプロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタ251の情報を、「未使用」を示す情報に更新する(図7のステップS51参照)。そして、再エントリ判定部230は、取得した演算処理後のパケット#1に含まれるパケット状態情報は「処理継続」であるが、今回取得した演算処理後のパケット#1全体を、パケットキュー210内の最後尾の格納領域に再度格納(エントリ)する(図7のステップS53参照)。また、再エントリ判定部230は、取得した演算処理後のパケット#1に含まれるパケット状態情報は「処理継続」であるが、ワークメモリ使用状況管理レジスタ240内のワークメモリ管理レジスタ241の情報を、「未使用」を示す情報に更新することによって、演算処理後のパケット#1に付与されたワーク領域501の使用権を開放する(図7のステップS54参照)。   The re-entry determination unit 230 that acquired the entire packet # 1 after the arithmetic processing from the processor 31 converts the information in the processor management register 251 in the processor usage status management register 250 corresponding to the processor 31 into information indicating “unused”. Update (see step S51 in FIG. 7). Then, the re-entry determination unit 230 determines that the packet state information included in the acquired packet # 1 after the arithmetic processing is “processing continuation”, but the entire packet # 1 after the arithmetic processing acquired this time is stored in the packet queue 210. Is stored (entry) again in the last storage area (see step S53 in FIG. 7). The re-entry determination unit 230 also sets the information of the work memory management register 241 in the work memory usage status management register 240, although the packet status information included in the acquired packet # 1 after the arithmetic processing is “processing continuation”. By updating to information indicating “unused”, the right to use the work area 501 assigned to the packet # 1 after the arithmetic processing is released (see step S54 in FIG. 7).

また、キュー制御部220は、再エントリ判定部230によってプロセッサ31に対応するプロセッサ管理レジスタ251の情報が「未使用」になり、プロセッサ31がパケットの演算処理を実行することができる状態になったことに応じて、パケットキュー210に格納済みのワーク領域500の使用権が付与されているパケットの内、プロセッサ番号=1で、最もパケットキュー210の先頭に近いパケット#4を、プロセッサ31に出力させる。また、キュー制御部220は、プロセッサ31に対応するプロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタ251の情報を、「使用中」を示す情報に更新する(図5のステップS33参照)。   Also, the queue control unit 220 is in a state where the information in the processor management register 251 corresponding to the processor 31 becomes “unused” by the re-entry determination unit 230 and the processor 31 can execute the packet calculation process. Accordingly, among the packets to which the right to use the work area 500 stored in the packet queue 210 is granted, the packet # 4 closest to the head of the packet queue 210 with the processor number = 1 is output to the processor 31. Let Further, the queue control unit 220 updates the information in the processor management register 251 in the processor usage status management register 250 corresponding to the processor 31 to information indicating “in use” (see step S33 in FIG. 5).

その後、プロセッサ31は、入力されたパケット#4に含まれるワークメモリ番号を対応するアドレス変換部401に出力し、プロセッサ31とワーク領域504とが1対1に接続された後(図6のステップS42参照)、パケット#4に含まれる演算対象データDをワーク領域504に転送(図6のステップS43参照)し、演算対象データDに対する演算処理を実行する(図6のステップS44参照)。   Thereafter, the processor 31 outputs the work memory number included in the input packet # 4 to the corresponding address conversion unit 401, and after the processor 31 and the work area 504 are connected one-to-one (step in FIG. 6). The calculation target data D included in the packet # 4 is transferred to the work area 504 (see step S43 in FIG. 6), and the calculation process for the calculation target data D is executed (see step S44 in FIG. 6).

また、キュー制御部220は、再エントリ判定部230によってワーク領域501に対応するワークメモリ使用状況管理レジスタ240内のワークメモリ管理レジスタ241の情報が「未使用」になり、ワーク領域501の使用権を付与することができる状態になったことに応じて、パケットキュー210に格納済みのワーク領域500の使用権が付与されていないパケットの内、最もパケットキュー210の先頭に近いパケット#5に、ワーク領域501の使用権を付与する(図4のステップS23参照)。これは、格納領域211に格納されていたパケット#4がプロセッサ31に出力されたことにより、同じプロセッサ番号=1が含まれ、すでにワーク領域500の使用権が付与されているパケットが、パケットキュー210内に1つ以上(有使用権パケット数以上)存在しなくなった、つまり、「0」になったためである。   In addition, the queue control unit 220 causes the re-entry determination unit 230 to change the information in the work memory management register 241 in the work memory usage status management register 240 corresponding to the work area 501 to “unused”, so that the right to use the work area 501 To the packet # 5 closest to the head of the packet queue 210 among the packets to which the right to use the work area 500 stored in the packet queue 210 is not granted. The right to use the work area 501 is granted (see step S23 in FIG. 4). This is because the packet # 4 stored in the storage area 211 is output to the processor 31, so that a packet that includes the same processor number = 1 and has already been granted the right to use the work area 500 is transferred to the packet queue. This is because one or more (more than the number of use right packets) does not exist in 210, that is, “0”.

図10(b)は、このときのパケットキュー210およびワークメモリ50内のパケットの状態を示している。より具体的には、ワークメモリ50の状態は、プロセッサ31によって処理後のパケット#1全体が出力されたことにより、ワーク領域501にパケットが記憶されていない状態となっている。また、ワーク領域504に、パケットキュー210から入力された、演算対象データDに対してプロセッサ31が演算処理を実行するパケット#4が記憶されている状態となっている。なお、ワークメモリ50内のワーク領域502およびワーク領域503は、プロセッサ32によるパケット#2に含まれる演算対象データBに対する演算処理、およびプロセッサ33によるパケット#3に含まれる演算対象データCに対する演算処理を完了していないため、初期状態と同様である。   FIG. 10B shows the state of packets in the packet queue 210 and the work memory 50 at this time. More specifically, the work memory 50 is in a state in which no packet is stored in the work area 501 because the entire packet # 1 after processing is output by the processor 31. Further, the work area 504 stores a packet # 4 that is input from the packet queue 210 and for which the processor 31 performs arithmetic processing on the operation target data D. The work area 502 and the work area 503 in the work memory 50 are an arithmetic process for the calculation target data B included in the packet # 2 by the processor 32 and an arithmetic process for the calculation target data C included in the packet # 3 by the processor 33. This is the same as in the initial state.

また、パケットキュー210の状態は、格納領域211に格納されていたパケット#4がプロセッサ31に出力されたことにより、格納領域211にはワーク領域501の使用権が付与されたパケット#5が格納され、同様に、格納領域212にはすでにワーク領域505の使用権が付与されたパケット#6が格納され、パケットキュー210内の最後尾の格納領域213には再エントリ判定部230によって再度格納(エントリ)された演算処理後のパケット#1が格納されている状態になる。   The packet queue 210 is in a state where the packet # 4 stored in the storage area 211 is output to the processor 31 and the packet # 5 to which the right to use the work area 501 is stored is stored in the storage area 211. Similarly, the storage area 212 stores the packet # 6 to which the use right of the work area 505 has already been granted, and the re-entry determination unit 230 stores the packet # 6 again in the last storage area 213 in the packet queue 210 ( The packet # 1 after the arithmetic processing entered is stored.

なお、上述したように、格納領域213に格納される演算処理後のパケット#1は、パケット状態情報が「処理継続」のパケットであるが、再エントリ判定部230の指示に応じて、プロセッサ31が演算処理後のパケット#1全体を出力しているため、演算対象データA2が格納されている状態である。また、格納領域213に格納される演算処理後のパケット#1は、パケット状態情報が「処理継続」のパケットであるが、再エントリ判定部230によって演算処理後のパケット#1に付与されたワーク領域501の使用権が開放されているため、ワーク領域500の使用権は付与されていない状態である。これは、すでにワーク領域505の使用権が付与されたパケット#6が、演算処理後のパケット#1が格納されている格納領域213よりも前の格納領域212に格納されているため、パケット#6と同じプロセッサ32が演算処理を実行する演算処理後のパケット#1には、ワーク領域500の使用権が付与されないためである。   Note that, as described above, the post-computation packet # 1 stored in the storage area 213 is a packet whose packet state information is “continue processing”, but the processor 31 responds to an instruction from the reentry determination unit 230. Is outputting the entire packet # 1 after the arithmetic processing, so that the arithmetic target data A2 is stored. In addition, although the packet # 1 after the arithmetic processing stored in the storage area 213 is a packet whose packet status information is “processing continuation”, the work given to the packet # 1 after the arithmetic processing by the re-entry determination unit 230 Since the right to use the area 501 is released, the right to use the work area 500 is not granted. This is because the packet # 6 to which the right to use the work area 505 has already been stored is stored in the storage area 212 before the storage area 213 in which the packet # 1 after the arithmetic processing is stored. This is because the right to use the work area 500 is not given to the packet # 1 after the arithmetic processing in which the same processor 32 as that of FIG.

このように、第3の実施形態の演算装置10でも、第1の実施形態および第2の実施形態の演算装置10と同様に、演算装置10に備えたワークメモリ50内のそれぞれのワーク領域500の使用状況を常時監視し、監視したワーク領域500の使用状況に応じて、パケットに対する演算処理を実行する際に必要な数のワーク領域500の使用権を付与する。これにより、第2の実施形態の演算装置10でも、第1の実施形態および第2の実施形態の演算装置10と同様に、それぞれのプロセッサ30でワーク領域500の競合が発生することなく、外部ブロック100から入力された複数のパケットに対する一連の演算処理を、それぞれのプロセッサ30で分担して並列に実行することができる。   As described above, also in the arithmetic device 10 of the third embodiment, each work area 500 in the work memory 50 provided in the arithmetic device 10 is the same as the arithmetic device 10 of the first embodiment and the second embodiment. The usage rights of the number of work areas 500 necessary to execute the arithmetic processing on the packet are given according to the monitored usage status of the work areas 500. As a result, even in the arithmetic device 10 of the second embodiment, as in the arithmetic device 10 of the first and second embodiments, the competition of the work area 500 does not occur in each processor 30, and external A series of arithmetic processing for a plurality of packets input from the block 100 can be shared by the respective processors 30 and executed in parallel.

また、第3の実施形態の演算装置10では、演算装置10に備えたワークメモリ50内のそれぞれのワーク領域500の使用状況から、パケットキュー210に格納されている、ワーク領域500の使用権が付与されたパケットの数を確認する。そして、第3の実施形態の演算装置10では、ワーク領域500の使用権が付与された同一のプロセッサ30が処理するパケットの数が予め定めた有使用権パケット数以上とならないように、ワーク領域500の使用権の付与を制御する。これにより、第3の実施形態の演算装置10では、特定のプロセッサ30が演算処理を実行するパケットが、ワークメモリ50内のワーク領域500の使用権を占有してしまうことを防止することができる。このことにより、第3の実施形態の演算装置10では、それぞれのプロセッサ30によるワーク領域500の競合が発生することなく、それぞれのプロセッサ30の稼働率を向上させることができる。なお、本第3の実施形態におけるワーク領域500の使用権が付与された同一のプロセッサ30が処理するパケットの数が予め定めた有使用権パケット数以上とならないようにワーク領域500の使用権の付与を制御するという考え方は、第1および第2の実施形態のいずれの演算装置10にも適用することができる。   In the arithmetic device 10 of the third embodiment, the right to use the work area 500 stored in the packet queue 210 is determined based on the usage status of each work area 500 in the work memory 50 provided in the arithmetic device 10. Check the number of packets attached. In the arithmetic device 10 of the third embodiment, the work area is set so that the number of packets processed by the same processor 30 to which the right to use the work area 500 is processed does not exceed the predetermined number of use right packets. Controls the granting of 500 usage rights. Thereby, in the arithmetic device 10 of 3rd Embodiment, it can prevent that the packet which the specific processor 30 performs arithmetic processing occupies the right to use the work area 500 in the work memory 50. . Thus, in the arithmetic device 10 according to the third embodiment, it is possible to improve the operation rate of each processor 30 without causing competition of the work area 500 by each processor 30. Note that the usage rights of the work area 500 are set so that the number of packets processed by the same processor 30 to which the usage right of the work area 500 in the third embodiment is granted does not exceed a predetermined number of usage right packets. The idea of controlling the assignment can be applied to any of the arithmetic devices 10 of the first and second embodiments.

なお、図8〜図10に示した演算装置10の動作の一例では、それぞれのプロセッサ30が、入力された演算処理を実行するパケットに含まれるワークメモリ番号を、接続切り替え部40内の対応するアドレス変換部400に出力し、対応するアドレス変換部400がプロセッサ30とワーク領域500とを1対1に接続した後に、演算対象データをワーク領域500に転送して、演算対象データに対する演算処理を実行する場合について説明した。しかし、プロセッサ30とワーク領域500とを1対1に接続させるためのワークメモリ番号のアドレス変換部400への出力は、それぞれのプロセッサ30が行うのではなく、パケット管理部20が行う構成にすることもできる。   In the example of the operation of the arithmetic device 10 shown in FIGS. 8 to 10, each processor 30 corresponds to the work memory number included in the packet for executing the input arithmetic processing in the connection switching unit 40. After output to the address conversion unit 400 and the corresponding address conversion unit 400 connects the processor 30 and the work area 500 in a one-to-one relationship, the calculation target data is transferred to the work area 500 to perform calculation processing on the calculation target data. The case of executing was described. However, the output of the work memory number to the address conversion unit 400 for connecting the processor 30 and the work area 500 on a one-to-one basis is not performed by each processor 30, but by the packet management unit 20. You can also.

<第4の実施形態>
次に、本発明の第4の実施形態について説明する。本第4の実施形態の演算装置は、パケット管理部がプロセッサ30とワーク領域との接続切り替えを制御するという考え方を適用した演算装置である。図11は、本第4の実施形態における演算装置の概略構成の一例を示したブロック図である。図11に示した演算装置11は、パケット管理部21と、3つのプロセッサ31〜プロセッサ33と、3つのローカルメモリ311〜ローカルメモリ331と、接続切り替え部41と、ワークメモリ50と、を備えている。なお、図11には、演算装置11に接続される外部ブロック100も併せて示している。
<Fourth Embodiment>
Next, a fourth embodiment of the present invention will be described. The arithmetic device according to the fourth embodiment is an arithmetic device to which the idea that the packet management unit controls connection switching between the processor 30 and the work area is applied. FIG. 11 is a block diagram illustrating an example of a schematic configuration of an arithmetic device according to the fourth embodiment. The arithmetic device 11 illustrated in FIG. 11 includes a packet management unit 21, three processors 31 to 33, three local memories 311 to 331, a connection switching unit 41, and a work memory 50. Yes. FIG. 11 also shows the external block 100 connected to the arithmetic unit 11.

なお、本第4の実施形態の演算装置11は、図1に示した第1〜第3の実施形態の演算装置10のパケット管理部20と接続切り替え部40とのそれぞれが、パケット管理部21と接続切り替え部41とのそれぞれに代わった構成であり、その他の構成要素は、第1〜第3の実施形態の演算装置10の構成要素と同様である。以下の説明においては、第1〜第3の実施形態の演算装置10と異なる構成要素の動作のみを説明し、第1〜第3の実施形態の演算装置10と同様の構成要素には、同一の符号を付与して、詳細な説明は省略する。   Note that in the arithmetic device 11 of the fourth embodiment, the packet management unit 20 and the connection switching unit 40 of the arithmetic device 10 of the first to third embodiments shown in FIG. And the connection switching unit 41, and other components are the same as those of the arithmetic device 10 of the first to third embodiments. In the following description, only the operation of components that are different from the arithmetic device 10 of the first to third embodiments will be described, and the same components as those of the arithmetic device 10 of the first to third embodiments are the same. The detailed description is abbreviate | omitted.

パケット管理部21は、第1〜第3の実施形態の演算装置10に備えたパケット管理部20と同様に、外部ブロック100から入力された複数のパケットのそれぞれを一旦格納し、格納したそれぞれのパケットを、いずれか1つのプロセッサ30に割り当てる。パケット管理部21は、パケットキュー260と、キュー制御部221と、再エントリ判定部230と、ワークメモリ使用状況管理レジスタ240と、プロセッサ使用状況管理レジスタ250と、を備えている。   The packet management unit 21 temporarily stores each of a plurality of packets input from the external block 100 in the same manner as the packet management unit 20 provided in the arithmetic device 10 of the first to third embodiments. The packet is assigned to any one processor 30. The packet management unit 21 includes a packet queue 260, a queue control unit 221, a reentry determination unit 230, a work memory usage status management register 240, and a processor usage status management register 250.

なお、パケット管理部21は、第1〜第3の実施形態の演算装置10に備えたパケット管理部20内のパケットキュー210とキュー制御部220とのそれぞれが、パケットキュー260とキュー制御部221とのそれぞれに代わった構成であり、その他の構成要素は、第1〜第3の実施形態の演算装置10に備えたパケット管理部20の構成要素と同様である。以下の説明においては、第1〜第3の実施形態の演算装置10に備えたパケット管理部20と異なる構成要素の動作のみを説明し、第1〜第3の実施形態の演算装置10に備えたパケット管理部20と同様の構成要素には、同一の符号を付与して、詳細な説明は省略する。   The packet management unit 21 includes a packet queue 210 and a queue control unit 221 in the packet queue 210 and the queue control unit 220 in the packet management unit 20 provided in the arithmetic device 10 of the first to third embodiments. The other components are the same as the components of the packet management unit 20 included in the arithmetic device 10 of the first to third embodiments. In the following description, only the operation of components different from the packet management unit 20 provided in the arithmetic device 10 of the first to third embodiments will be described, and the arithmetic device 10 of the first to third embodiments will be provided. The same components as those of the packet management unit 20 are denoted by the same reference numerals, and detailed description thereof is omitted.

キュー制御部221は、第1〜第3の実施形態の演算装置10に備えたキュー制御部220と同様に、外部ブロック100から入力されたそれぞれのパケットのパケットキュー260への格納(エントリ)と、プロセッサ30とワークメモリ50とのそれぞれの使用状況に応じた、パケットキュー260に格納されたパケットのプロセッサ30への出力とを制御する。   The queue control unit 221 stores (entries) each packet input from the external block 100 in the packet queue 260, similarly to the queue control unit 220 provided in the arithmetic device 10 of the first to third embodiments. The output of the packet stored in the packet queue 260 to the processor 30 according to the usage status of the processor 30 and the work memory 50 is controlled.

ただし、キュー制御部221は、第1〜第3の実施形態の演算装置10に備えたキュー制御部220と異なり、プロセッサ30に出力するパケットを選択した後、まず、パケットキュー260に、選択したパケットに含まれるワークメモリ番号を、選択したパケットに含まれるプロセッサ番号に対応するアドレス変換部に出力させる。その後、対応するアドレス変換部から、プロセッサ30とワーク領域500との接続の切り替えが完了したことを表す通知を受け取った後に、プロセッサ30に出力するパケットとして選択したパケットに含まれる演算対象データを、パケットキュー260から対応するプロセッサ30に出力させる。   However, unlike the queue control unit 220 provided in the arithmetic device 10 of the first to third embodiments, the queue control unit 221 first selects a packet to be output to the processor 30 and then selects the packet queue 260. The work memory number included in the packet is output to the address conversion unit corresponding to the processor number included in the selected packet. Thereafter, after receiving a notification indicating that the switching of the connection between the processor 30 and the work area 500 is completed from the corresponding address conversion unit, the calculation target data included in the packet selected as the packet to be output to the processor 30 is The packet 30 is output from the packet queue 260 to the corresponding processor 30.

パケットキュー260は、第1〜第3の実施形態の演算装置10に備えたパケットキュー210と同様に、外部ブロック100から入力された複数のパケット、および再エントリ判定部230から入力された、引き続き演算処理を実行するパケットを順次格納する。ただし、パケットキュー260は、第1〜第3の実施形態の演算装置10に備えたパケットキュー210とは異なり、格納しているパケットに含まれるワークメモリ番号を、プロセッサ番号に対応するいずれか1つのアドレス変換部に、格納しているパケットに含まれる演算対象データを、プロセッサ番号に対応するいずれか1つのプロセッサ30に出力する。なお、パケットキュー260に格納されたそれぞれのパケットの情報を出力する順番は、第1〜第3の実施形態の演算装置10に備えたキュー制御部220と同様に動作するキュー制御部221によって制御される。   The packet queue 260 continues to be input from the plurality of packets input from the external block 100 and the re-entry determination unit 230, similarly to the packet queue 210 provided in the arithmetic device 10 of the first to third embodiments. Packets that execute arithmetic processing are sequentially stored. However, the packet queue 260 is different from the packet queue 210 provided in the arithmetic device 10 of the first to third embodiments, and the work memory number included in the stored packet is any one corresponding to the processor number. The operation target data included in the packet stored in one address conversion unit is output to any one of the processors 30 corresponding to the processor number. Note that the order of outputting the information of each packet stored in the packet queue 260 is controlled by the queue control unit 221 that operates in the same manner as the queue control unit 220 included in the arithmetic device 10 of the first to third embodiments. Is done.

図11には、パケットを格納する5つの格納領域(格納領域261〜格納領域265)を備えたパケットキュー260の構成を示している。なお、図11において、パケットキュー260内のそれぞれの格納領域内に示した“#(シャープ)”に続く数字は、第1〜第3の実施形態の演算装置10に備えたパケットキュー210と同様に、パケットがパケットキュー260に格納される順番を表している。   FIG. 11 shows a configuration of a packet queue 260 having five storage areas (storage areas 261 to 265) for storing packets. In FIG. 11, the numbers following “# (sharp)” shown in the respective storage areas in the packet queue 260 are the same as those in the packet queue 210 provided in the arithmetic device 10 of the first to third embodiments. The order in which packets are stored in the packet queue 260 is shown.

接続切り替え部41は、第1〜第3の実施形態の演算装置10に備えた接続切り替え部40と同様に、それぞれのプロセッサ30とワークメモリ50内のそれぞれのワーク領域500とが1対1で対応するように、プロセッサ30とワーク領域との接続およびアドレスを切り替える。接続切り替え部41は、アドレス変換部411〜アドレス変換部413と、クロスバスイッチ450と、を備えている。   In the connection switching unit 41, each processor 30 and each work area 500 in the work memory 50 are in a one-to-one relationship, similarly to the connection switching unit 40 provided in the arithmetic device 10 of the first to third embodiments. The connection and address between the processor 30 and the work area are switched so as to correspond. The connection switching unit 41 includes an address conversion unit 411 to an address conversion unit 413 and a crossbar switch 450.

なお、接続切り替え部41は、第1〜第3の実施形態の演算装置10に備えた接続切り替え部40内のアドレス変換部401〜アドレス変換部403のそれぞれが、アドレス変換部411〜アドレス変換部413のそれぞれに代わった構成であり、クロスバスイッチ450は、第1〜第3の実施形態の演算装置10に備えた接続切り替え部40と同様である。以下の説明においては、第1〜第3の実施形態の演算装置10に備えた接続切り替え部40と異なるアドレス変換部411〜アドレス変換部413の動作のみを説明し、第1〜第3の実施形態の演算装置10に備えた接続切り替え部40と同様のクロスバスイッチ450には、同一の符号を付与して、詳細な説明は省略する。   The connection switching unit 41 includes an address conversion unit 411 to an address conversion unit, each of the address conversion unit 401 to the address conversion unit 403 in the connection switching unit 40 included in the arithmetic device 10 of the first to third embodiments. The crossbar switch 450 is the same as the connection switching unit 40 provided in the arithmetic device 10 of the first to third embodiments. In the following description, only the operations of the address conversion unit 411 to the address conversion unit 413, which are different from the connection switching unit 40 provided in the arithmetic device 10 of the first to third embodiments, will be described, and the first to third implementations will be described. The crossbar switch 450 that is the same as the connection switching unit 40 included in the computing device 10 of the embodiment is given the same reference numeral, and detailed description thereof is omitted.

アドレス変換部411〜アドレス変換部413のそれぞれは、第1〜第3の実施形態の演算装置10に備えたアドレス変換部401〜アドレス変換部403のそれぞれと同様に、演算装置11に備えた3つのプロセッサ31〜プロセッサ33のそれぞれに対応し、対応するプロセッサ30と、対応するプロセッサ30が演算処理を実行する際に使用するワークメモリ50内のワーク領域500とを1対1に対応付ける。なお、以下の説明においては、3つのアドレス変換部411〜アドレス変換部413のそれぞれを区別せずに表す場合には、「アドレス変換部410」という。   Each of the address conversion unit 411 to the address conversion unit 413 is similar to each of the address conversion unit 401 to the address conversion unit 403 included in the arithmetic device 10 of the first to third embodiments. Corresponding to each of the three processors 31 to 33, the corresponding processor 30 and the work area 500 in the work memory 50 used when the corresponding processor 30 executes arithmetic processing are associated with each other in a one-to-one relationship. In the following description, when each of the three address conversion units 411 to 413 is expressed without distinction, it is referred to as an “address conversion unit 410”.

また、それぞれのアドレス変換部410は、クロスバスイッチ450を制御して、対応するプロセッサ30とワーク領域500との接続の切り替えが完了した後、ワーク領域500の接続が完了したことを表す通知を、パケット管理部21内のキュー制御部221に通知する。   In addition, each address conversion unit 410 controls the crossbar switch 450, and after the switching of the connection between the corresponding processor 30 and the work area 500 is completed, a notification indicating that the connection of the work area 500 is completed, This is notified to the queue control unit 221 in the packet management unit 21.

<第4の動作>
演算装置11における動作は、それぞれのプロセッサ30とそれぞれのワーク領域500とが1対1で対応するように、プロセッサ30とワーク領域との接続およびアドレスを切り替えるためのワークメモリ番号の出力元が、それぞれのプロセッサ30からパケット管理部21に代わったのみであり、第1〜第3の実施形態の演算装置10における動作と同様に考えることができる。従って、演算装置11の動作に関する詳細な説明は省略する。
<Fourth operation>
The operation in the computing device 11 is such that the output source of the work memory number for switching the connection and address between the processor 30 and the work area so that each processor 30 and each work area 500 correspond one-to-one. Only the packet management unit 21 is replaced from each processor 30, and the operation can be considered in the same manner as the operation in the arithmetic device 10 of the first to third embodiments. Therefore, the detailed description regarding operation | movement of the arithmetic unit 11 is abbreviate | omitted.

このように、第4の実施形態の演算装置11でも、第1〜第3の実施形態の演算装置10と同様に、プロセッサ30とワーク領域500とは1対1で対応させる。これにより、第4の実施形態の演算装置11でも、第1〜第3の実施形態の演算装置10と同様に、それぞれのプロセッサ30でワーク領域500の競合が発生することなく、外部ブロック100から入力された複数のパケットに対する一連の演算処理を、それぞれのプロセッサ30で分担して並列に実行することができる。   As described above, also in the arithmetic device 11 of the fourth embodiment, the processor 30 and the work area 500 are made to correspond one-to-one as in the arithmetic device 10 of the first to third embodiments. As a result, in the arithmetic device 11 of the fourth embodiment, as in the arithmetic devices 10 of the first to third embodiments, the content of the work area 500 does not occur in each processor 30, and the external block 100 can A series of arithmetic processing for a plurality of input packets can be shared by each processor 30 and executed in parallel.

また、第4の実施形態の演算装置11では、プロセッサ30とワーク領域500との接続の切り替えを、パケットに対して演算処理を行うプロセッサ30と異なるパケット管理部21が行う。これにより、第4の実施形態の演算装置11では、プロセッサ30がプロセッサ30とワーク領域500との接続の切り替えを行うための処理の負荷を軽減すると共に、プロセッサ30とワーク領域500との接続の切り替えが完了から、演算対象データのワーク領域500への転送を開始するまでの時間、つまり、プロセッサ30におけるオーバーヘッド時間を削減することができる。なお、本第4の実施形態におけるパケット管理部がプロセッサ30とワーク領域との接続切り替えを制御するという考え方は、第1〜第3の実施形態のいずれの演算装置10にも適用することができる。   In the arithmetic device 11 of the fourth embodiment, the connection between the processor 30 and the work area 500 is switched by a packet management unit 21 that is different from the processor 30 that performs arithmetic processing on a packet. Thereby, in the arithmetic unit 11 of the fourth embodiment, the processing load for the processor 30 to switch the connection between the processor 30 and the work area 500 is reduced, and the connection between the processor 30 and the work area 500 is reduced. It is possible to reduce the time from the completion of the switching until the start of the transfer of the calculation target data to the work area 500, that is, the overhead time in the processor 30. Note that the idea that the packet management unit in the fourth embodiment controls the connection switching between the processor 30 and the work area can be applied to any of the arithmetic devices 10 in the first to third embodiments. .

なお、第1〜第3の実施形態の演算装置10および第4の実施形態の演算装置11では、それぞれのパケットに、演算処理の対象となる演算対象データが含まれ、対応するプロセッサ30が、演算処理を実行する演算対象データを対応するワーク領域500に転送する構成ついて説明した。しかし、演算装置は、演算対象データが含まれるパケットに対して演算処理を実行する構成に限られるものではない。例えば、外部ブロック100が、演算処理の対象となる演算対象データを外部もメモリに記憶し、外部メモリに記憶されている演算対象データに対して演算処理を実行する構成の演算装置も考えられる。   In addition, in the arithmetic device 10 of the first to third embodiments and the arithmetic device 11 of the fourth embodiment, each packet includes operation target data to be subjected to arithmetic processing, and the corresponding processor 30 is The configuration for transferring the calculation target data for executing the calculation processing to the corresponding work area 500 has been described. However, the arithmetic device is not limited to a configuration that performs arithmetic processing on a packet including calculation target data. For example, an arithmetic device in which the external block 100 stores arithmetic target data to be subject to arithmetic processing in the memory and executes arithmetic processing on the arithmetic target data stored in the external memory is also conceivable.

<第5の実施形態>
次に、本発明の第5の実施形態について説明する。本第5の実施形態の演算装置は、演算対象データをパケットと異なる他の構成要素から取得し、取得した演算対象データに対して要求された演算処理を実行する構成の演算装置である。図12は、本第5の実施形態における演算装置の概略構成の一例を示したブロック図である。図12に示した演算装置12は、パケット管理部22と、3つのプロセッサ31〜プロセッサ33と、3つのローカルメモリ311〜ローカルメモリ331と、接続切り替え部40と、ワークメモリ52と、を備えている。なお、図12には、本第5の実施形態の演算装置12を備えたシステムの構成として、演算装置12に接続される外部ブロック100およびDMA(Direct Memory Access)制御部60と、演算装置12が接続されるバス700に接続されたDRAM(Dynamic Random Access Memory)200とも併せて示している。
<Fifth Embodiment>
Next, a fifth embodiment of the present invention will be described. The arithmetic device according to the fifth embodiment is an arithmetic device configured to acquire operation target data from another component different from a packet and to execute a requested operation process on the acquired operation target data. FIG. 12 is a block diagram illustrating an example of a schematic configuration of an arithmetic device according to the fifth embodiment. The arithmetic device 12 shown in FIG. 12 includes a packet management unit 22, three processors 31 to 33, three local memories 311 to 331, a connection switching unit 40, and a work memory 52. Yes. In FIG. 12, as a system configuration including the arithmetic device 12 of the fifth embodiment, an external block 100 connected to the arithmetic device 12, a DMA (Direct Memory Access) control unit 60, and the arithmetic device 12. Also shown is a DRAM (Dynamic Random Access Memory) 200 connected to a bus 700 to which is connected.

DRAM200は、演算装置12が演算処理を実行する対象の演算対象データが記憶されている演算装置12の外部に配置された外部メモリである。DMA制御部60は、演算装置12からの制御に応じて、バス700を介したDRAM200と演算装置12に備えたワークメモリ52との間でDMA転送を行う演算対象データの転送制御部である。   The DRAM 200 is an external memory arranged outside the arithmetic device 12 in which arithmetic target data on which the arithmetic device 12 performs arithmetic processing is stored. The DMA control unit 60 is a transfer control unit for calculation target data that performs DMA transfer between the DRAM 200 and the work memory 52 provided in the calculation device 12 via the bus 700 in accordance with control from the calculation device 12.

なお、本第5の実施形態における考え方、すなわち、演算対象データをパケットと異なる他の構成要素(図12においては、DRAM200)から取得して要求された演算処理を実行する構成は、図1に示した第1〜第3の実施形態の演算装置10および図11に示した第4の実施形態の演算装置11のいずれの構成にも適用することができる。図12に示した演算装置12の構成は、図1に示した第1〜第3の実施形態の演算装置10に適用した構成を示している。   The concept in the fifth embodiment, that is, the configuration for obtaining the computation target data from another component (DRAM 200 in FIG. 12) different from the packet and executing the requested computation process is shown in FIG. The present invention can be applied to any configuration of the arithmetic device 10 of the first to third embodiments shown and the arithmetic device 11 of the fourth embodiment shown in FIG. The configuration of the arithmetic device 12 shown in FIG. 12 is a configuration applied to the arithmetic device 10 of the first to third embodiments shown in FIG.

図12に示した本第5の実施形態の演算装置12を備えたシステムでは、演算対象データを、DMA制御部60によるDMA転送によって、DRAM200とワークメモリ52との間で転送する。このため、本第5の実施形態の演算装置12には、第1の実施形態の演算装置10において説明した「演算対象データ」の代わりに、パケットにおける演算処理の対象となる演算対象データが記憶されているDRAM200内の記憶領域の先頭アドレスを定める「先頭アドレス」と、演算対象データの大きさを定める「データサイズ」との情報が含まれているパケットが、外部ブロックから入力される。   In the system including the arithmetic device 12 of the fifth embodiment shown in FIG. 12, the operation target data is transferred between the DRAM 200 and the work memory 52 by the DMA transfer by the DMA control unit 60. For this reason, the calculation device 12 of the fifth embodiment stores calculation target data that is a target of calculation processing in a packet, instead of the “calculation target data” described in the calculation device 10 of the first embodiment. A packet including information on a “start address” that determines the start address of the storage area in the DRAM 200 and a “data size” that determines the size of the calculation target data is input from the external block.

本第5の実施形態の演算装置11は、図1に示した演算装置10のパケット管理部20とワークメモリ50とのそれぞれが、パケット管理部22とワークメモリ52とのそれぞれに代わった構成であり、その他の構成要素は、図1に示した演算装置10の構成要素と同様である。以下の説明においては、演算装置10と異なる構成要素の動作のみを説明し、演算装置10と同様の構成要素には、同一の符号を付与して、詳細な説明は省略する。   The arithmetic device 11 of the fifth embodiment has a configuration in which the packet management unit 20 and the work memory 50 of the arithmetic device 10 shown in FIG. 1 are replaced with the packet management unit 22 and the work memory 52, respectively. The other components are the same as those of the arithmetic unit 10 shown in FIG. In the following description, only the operation of components that are different from the arithmetic device 10 will be described, and the same components as those of the arithmetic device 10 will be assigned the same reference numerals, and detailed description thereof will be omitted.

ワークメモリ52は、それぞれのパケットにおける演算対象データや、プロセッサ30のそれぞれが演算対象データに対する演算処理を実行している途中で生成したデータなどを一時的に記憶する、図1に示した演算装置10に備えたワークメモリ50と同様の構成のメモリである。ただし、ワークメモリ52は、演算対象データを、バス700を介してDMA転送させる機能が加わる。図12に示した演算装置12の構成では、6つのワーク領域(ワーク領域521〜ワーク領域526)を備えたワークメモリ52を示している。なお、以下の説明においては、6つのワーク領域521〜ワーク領域526のそれぞれを区別せずに表す場合には、「ワーク領域520」という。   The work memory 52 temporarily stores calculation target data in each packet, data generated while each of the processors 30 is executing calculation processing on the calculation target data, and the like shown in FIG. 10 is a memory having the same configuration as the work memory 50 included in the memory 10. However, the work memory 52 has a function of performing DMA transfer of the operation target data via the bus 700. The configuration of the arithmetic unit 12 shown in FIG. 12 shows a work memory 52 having six work areas (work area 521 to work area 526). In the following description, when each of the six work areas 521 to 526 is expressed without being distinguished, it is referred to as a “work area 520”.

なお、図12では、6つのワーク領域521〜ワーク領域526のそれぞれに対応して、ワークメモリ使用状況管理レジスタ240のワークメモリ管理レジスタも6つのワークメモリ管理レジスタ(ワークメモリ管理レジスタ241〜ワークメモリ管理レジスタ246)となっている。   In FIG. 12, corresponding to each of the six work areas 521 to 526, the work memory management register of the work memory use status management register 240 also includes six work memory management registers (work memory management register 241 to work memory. Management register 246).

パケット管理部22は、図1に示した演算装置10に備えたパケット管理部20と同様に、外部ブロック100から入力された複数のパケットのそれぞれを一旦格納し、格納したそれぞれのパケットを、いずれか1つのプロセッサ30に割り当てる。また、パケット管理部22は、DMA制御部60によるDRAM200とワークメモリ52との間での演算対象データのDMA転送を制御する。パケット管理部22は、パケットキュー210と、キュー制御部222と、再エントリ判定部232と、ワークメモリ使用状況管理レジスタ240と、プロセッサ使用状況管理レジスタ250と、を備えている。   The packet management unit 22 temporarily stores each of a plurality of packets input from the external block 100, as in the packet management unit 20 provided in the arithmetic device 10 illustrated in FIG. Assigned to one processor 30. Further, the packet management unit 22 controls the DMA transfer of the operation target data between the DRAM 200 and the work memory 52 by the DMA control unit 60. The packet management unit 22 includes a packet queue 210, a queue control unit 222, a reentry determination unit 232, a work memory usage status management register 240, and a processor usage status management register 250.

なお、パケット管理部22は、演算装置10に備えたパケット管理部20内のキュー制御部220と、再エントリ判定部230とのそれぞれが、キュー制御部222と再エントリ判定部232とのそれぞれに代わった構成であり、その他の構成要素は、第1〜第3の実施形態の演算装置10に備えたパケット管理部20の構成要素と同様である。以下の説明においては、第1〜第3の実施形態の演算装置10に備えたパケット管理部20と異なる構成要素の動作のみを説明し、第1〜第3の実施形態の演算装置10に備えたパケット管理部20と同様の構成要素には、同一の符号を付与して、詳細な説明は省略する。   The packet management unit 22 includes a queue control unit 220 and a reentry determination unit 230 in the packet management unit 20 included in the arithmetic device 10, and a queue control unit 222 and a reentry determination unit 232, respectively. This is an alternative configuration, and the other components are the same as those of the packet management unit 20 provided in the arithmetic device 10 of the first to third embodiments. In the following description, only the operation of components different from the packet management unit 20 provided in the arithmetic device 10 of the first to third embodiments will be described, and the arithmetic device 10 of the first to third embodiments will be provided. The same components as those of the packet management unit 20 are denoted by the same reference numerals, and detailed description thereof is omitted.

キュー制御部222は、第1〜第3の実施形態の演算装置10に備えたキュー制御部220と同様に、外部ブロック100から入力されたそれぞれのパケットのパケットキュー210への格納(エントリ)と、プロセッサ30とワークメモリ52とのそれぞれの使用状況に応じた、パケットキュー210に格納されたパケットのプロセッサ30への出力とを制御する。   The queue control unit 222 stores (entries) each packet input from the external block 100 in the packet queue 210, similarly to the queue control unit 220 included in the arithmetic device 10 of the first to third embodiments. The output of the packet stored in the packet queue 210 to the processor 30 according to the usage status of the processor 30 and the work memory 52 is controlled.

また、キュー制御部222には、第1〜第3の実施形態の演算装置10に備えたキュー制御部220の機能に、パケットに含まれる先頭アドレスおよびデータサイズの情報に基づいてDMA制御部60を制御し、演算対象データをDRAM200からワークメモリ52にDMA転送させる機能が加わる。   In addition, the queue control unit 222 has a function of the queue control unit 220 included in the arithmetic device 10 of the first to third embodiments, based on the information on the start address and the data size included in the packet, and the DMA control unit 60. And a function for DMA transfer of the operation target data from the DRAM 200 to the work memory 52 is added.

より具体的には、まず、キュー制御部222は、パケットキュー210に格納されたそれぞれのパケットに含まれる先頭アドレスおよびデータサイズで定められたDRAM200内の記憶領域を確認する。そして、キュー制御部222は、DRAM200内の記憶領域を確認したパケットに含まれるワークメモリ番号で定められたワークメモリ52内のワーク領域520の使用状況を、ワークメモリ使用状況管理レジスタ240内のワークメモリ管理レジスタの情報から確認する。このDRAM200内の記憶領域とワークメモリ管理レジスタの情報を確認した結果、対応するワーク領域520を使用することができる状況である場合、つまり、ワークメモリ管理レジスタの情報が、データサイズ定められた大きさの演算対象データを記憶する分だけ「未使用」である場合、キュー制御部222は、ワーク領域の使用権を付与する。そして、キュー制御部222は、先頭アドレスからデータサイズ分の演算対象データの、対応するワーク領域520へのDMA転送を、DMA制御部60に対して指示する。   More specifically, first, the queue control unit 222 confirms a storage area in the DRAM 200 defined by the head address and the data size included in each packet stored in the packet queue 210. Then, the queue control unit 222 indicates the usage status of the work area 520 in the work memory 52 determined by the work memory number included in the packet confirming the storage area in the DRAM 200, as the work status in the work memory usage status management register 240. Check from the information in the memory management register. As a result of confirming the information of the storage area and the work memory management register in the DRAM 200, when the corresponding work area 520 can be used, that is, the work memory management register information has a data size determined size. If the calculation target data is “unused” for storing the calculation target data, the queue control unit 222 grants the right to use the work area. Then, the queue control unit 222 instructs the DMA control unit 60 to perform DMA transfer of the calculation target data corresponding to the data size from the head address to the corresponding work area 520.

キュー制御部222からDMA転送の指示が入力されたDMA制御部60は、キュー制御部222から指定された先頭アドレスからデータサイズ分の演算対象データを、同じく指定されたワーク領域520にDMA転送する。   The DMA control unit 60, to which the DMA transfer instruction is input from the queue control unit 222, DMA-transfers the operation target data corresponding to the data size from the head address designated by the queue control unit 222 to the designated work area 520. .

また、キュー制御部222は、ワーク領域の使用権を付与したパケットに含まれるワークメモリ番号に対応するワークメモリ使用状況管理レジスタ240内の、対応するワーク領域520のワークメモリ管理レジスタの情報を「使用中」に変更する。その後、キュー制御部222は、DMA制御部60によるDRAM200からワーク領域520への演算対象データのDMA転送が完了した後、DMA転送が完了した演算対象データに対して演算処理を実行するパケットを、パケットキュー210から対応するプロセッサ30に出力させる。   In addition, the queue control unit 222 displays the information of the work memory management register of the corresponding work area 520 in the work memory use state management register 240 corresponding to the work memory number included in the packet to which the work area use right is granted. Change to “In Use”. Thereafter, after the DMA transfer of the operation target data from the DRAM 200 to the work area 520 by the DMA control unit 60 is completed by the DMA control unit 60, the queue control unit 222 performs a packet for executing the operation process on the operation target data for which the DMA transfer is completed. The packet queue 210 outputs to the corresponding processor 30.

パケットキュー210からパケットが入力されたプロセッサ30は、入力されたパケットに含まれるワークメモリ番号を取得して対応するアドレス変換部400に出力し、対応するワーク領域520と1対1に接続された後、対応するワーク領域520にDRAM200から転送された演算対象データに対する演算処理を実行する。   The processor 30 to which the packet is input from the packet queue 210 acquires the work memory number included in the input packet, outputs it to the corresponding address conversion unit 400, and is connected to the corresponding work area 520 on a one-to-one basis. Thereafter, a calculation process is performed on the calculation target data transferred from the DRAM 200 to the corresponding work area 520.

再エントリ判定部232は、第1〜第3の実施形態の演算装置10に備えた再エントリ判定部230と同様に、それぞれのプロセッサ30から入力されたそれぞれのパケットの外部ブロック100への出力またはパケットキュー210への再度の格納(エントリ)と、それぞれのパケットに付与されているワーク領域520の使用権の開放とを制御する。   Similar to the reentry determination unit 230 provided in the arithmetic device 10 of the first to third embodiments, the reentry determination unit 232 outputs each packet input from each processor 30 to the external block 100 or The storage (entry) for the second time in the packet queue 210 and the release of the right to use the work area 520 assigned to each packet are controlled.

また、再エントリ判定部232には、第1〜第3の実施形態の演算装置10に備えた再エントリ判定部230の機能に、パケットに含まれる先頭アドレスおよびデータサイズの情報に基づいてDMA制御部60を制御し、ワーク領域520の使用権の開放する前に、演算対象データをワークメモリ52からDRAM200にDMA転送させる機能が加わる。   In addition, the re-entry determination unit 232 performs DMA control on the basis of information on the start address and data size included in the packet, in addition to the function of the re-entry determination unit 230 provided in the arithmetic device 10 of the first to third embodiments. The function of transferring the calculation target data from the work memory 52 to the DRAM 200 before controlling the unit 60 and releasing the right to use the work area 520 is added.

より具体的には、まず、再エントリ判定部232は、プロセッサ30から入力された演算処理後のパケットのパケット状態情報が「処理完了」を示している場合には、演算処理後のパケットを外部ブロック100に出力すると判定し、外部ブロック100に出力する演算処理後のパケットに含まれる先頭アドレスおよびデータサイズで定められたDRAM200内の記憶領域を確認する。そして、再エントリ判定部232は、演算処理後のパケットに含まれるワークメモリ番号を確認し、対応するワーク領域520に記憶されている演算処理後の演算対象データの、DRAM200の先頭アドレスからデータサイズ分だけのDMA転送を、DMA制御部60に対して指示する。   More specifically, first, when the packet status information of the packet after the arithmetic processing input from the processor 30 indicates “processing completed”, the reentry determination unit 232 externally transmits the packet after the arithmetic processing. It is determined that the data is output to the block 100, and the storage area in the DRAM 200 defined by the head address and the data size included in the packet after the arithmetic processing output to the external block 100 is confirmed. Then, the re-entry determination unit 232 confirms the work memory number included in the packet after the arithmetic processing, and the data size from the top address of the DRAM 200 of the arithmetic processing target data stored in the corresponding work area 520 after the arithmetic processing. The DMA control unit 60 is instructed to perform DMA transfer for the number of minutes.

続いて、再エントリ判定部232は、DMA制御部60によるワーク領域520からDRAM200への演算処理後の演算対象データのDMA転送が完了した後、プロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタの情報を「未使用」に変更し、さらに、この演算処理後のパケットに対応するワークメモリ使用状況管理レジスタ240内のワークメモリ管理レジスタの情報を「未使用」に変更して、演算処理後のパケットに付与されているワーク領域520の使用権を開放する。そして、再エントリ判定部232は、演算処理後のパケットを外部ブロック100に出力する。   Subsequently, after the DMA transfer of the operation target data after the operation processing from the work area 520 to the DRAM 200 by the DMA control unit 60 is completed by the DMA control unit 60, the re-entry determination unit 232 stores information on the processor management register in the processor usage status management register 250. Is changed to “unused”, and the information of the work memory management register 240 in the work memory usage status management register 240 corresponding to the packet after the arithmetic processing is changed to “unused”, and the packet after the arithmetic processing The right to use the work area 520 given to the user is released. Then, the reentry determination unit 232 outputs the packet after the arithmetic processing to the external block 100.

また、再エントリ判定部232は、プロセッサ30から入力された演算処理後のパケットのパケット状態情報が「処理継続」を示している場合には、演算処理後のパケットを再度パケットキュー210に格納(エントリ)すると判定し、演算処理後のパケットに付与されているワーク領域520の使用権の開放が必要であるか否かを確認する。この確認の結果、ワーク領域520の使用権の開放が必要である場合には、再度パケットキュー210に格納(エントリ)する演算処理後のパケットに含まれる先頭アドレスおよびデータサイズで定められたDRAM200内の記憶領域を確認する。また、再エントリ判定部232は、再度パケットキュー210に格納(エントリ)する演算処理後のパケットに含まれるワークメモリ番号を確認し、対応するワーク領域520に記憶されている演算処理後の演算対象データの、DRAM200の先頭アドレスからデータサイズ分だけのDMA転送を、DMA制御部60に対して指示する。   Further, the re-entry determination unit 232 stores the packet after the arithmetic processing in the packet queue 210 again when the packet state information of the packet after the arithmetic processing input from the processor 30 indicates “processing continuation” ( It is determined whether or not it is necessary to release the right to use the work area 520 given to the packet after the arithmetic processing. As a result of this confirmation, if it is necessary to release the right to use the work area 520, the DRAM 200 in the DRAM 200 defined by the start address and data size included in the packet after the arithmetic processing to be stored (entry) in the packet queue 210 again. Check the storage area. Further, the re-entry determination unit 232 confirms the work memory number included in the packet after the arithmetic processing to be stored (entry) in the packet queue 210 again, and the arithmetic target after the arithmetic processing stored in the corresponding work area 520 The DMA control unit 60 is instructed to perform DMA transfer of data corresponding to the data size from the start address of the DRAM 200.

再エントリ判定部232からDMA転送の指示が入力されたDMA制御部60は、再エントリ判定部232から指定されたワーク領域520に記憶されている演算処理後の演算対象データを、同じく指定された先頭アドレスからデータサイズ分だけDRAM200にDMA転送する。   The DMA control unit 60 to which the DMA transfer instruction is input from the re-entry determination unit 232 also specifies the calculation target data after the calculation process stored in the work area 520 specified by the re-entry determination unit 232. DMA transfer is performed to the DRAM 200 by the data size from the head address.

続いて、再エントリ判定部232は、DMA制御部60によるワーク領域520からDRAM200への演算処理後の演算対象データのDMA転送が完了した後、プロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタの情報を「未使用」に変更し、さらに、この演算処理後のパケットに対応するワークメモリ使用状況管理レジスタ240内のワークメモリ管理レジスタの情報を「未使用」に変更して、演算処理後のパケットに付与されているワーク領域520の使用権を開放する。そして、再エントリ判定部232は、演算処理後のパケットを再度パケットキュー210に格納(エントリ)する。   Subsequently, after the DMA transfer of the operation target data after the operation processing from the work area 520 to the DRAM 200 by the DMA control unit 60 is completed by the DMA control unit 60, the re-entry determination unit 232 stores information on the processor management register in the processor usage status management register 250. Is changed to “unused”, and the information of the work memory management register 240 in the work memory usage status management register 240 corresponding to the packet after the arithmetic processing is changed to “unused”, and the packet after the arithmetic processing The right to use the work area 520 given to the user is released. Then, the reentry determination unit 232 stores (entries) the packet after the arithmetic processing in the packet queue 210 again.

このような構成によって、パケット管理部22は、外部ブロック100から入力された複数のパケット、およびプロセッサ30から入力された演算処理後のパケットのプロセッサ30への出力、または外部ブロック100への出力をする際に、DMA制御部60によるDRAM200とワークメモリ52との間での演算対象データのDMA転送を制御する。   With such a configuration, the packet management unit 22 outputs a plurality of packets input from the external block 100 and a packet after arithmetic processing input from the processor 30 to the processor 30 or output to the external block 100. At this time, the DMA control unit 60 controls the DMA transfer of the calculation target data between the DRAM 200 and the work memory 52.

なお、図12に示した演算装置12では、DMA制御部60を演算装置12の外部に備えた構成を示したが、DMA制御部60を備える位置は、本第5の実施形態の演算装置12に示した位置に限定されるものではない。例えば、DMA制御部60を、演算装置12の内部に備えた構成にする、すなわち、DMA制御部60が演算装置12の構成要素の一つである構成にすることもできる。   In the arithmetic device 12 shown in FIG. 12, the configuration in which the DMA control unit 60 is provided outside the arithmetic device 12 is shown. It is not limited to the position shown in. For example, the DMA control unit 60 may be configured to be included in the arithmetic device 12, that is, the DMA control unit 60 may be a component of the arithmetic device 12.

次に、演算装置12による演算処理の処理手順について説明する。なお、演算装置12が実行する演算処理の全体の処理の流れは、図2に示した第1〜第3の実施形態の演算装置10における演算処理の全体の処理の流れと同様であるため、詳細な説明は省略する。そして、以下の説明においては、演算装置12のそれぞれの処理において演算装置10のそれぞれの処理と異なる処理の処理手順について説明する。   Next, a processing procedure of arithmetic processing by the arithmetic device 12 will be described. The overall processing flow of the arithmetic processing executed by the arithmetic device 12 is the same as the overall processing flow of the arithmetic processing in the arithmetic device 10 of the first to third embodiments shown in FIG. Detailed description is omitted. In the following description, processing procedures of processing different from the processing of the arithmetic device 10 in the processing of the arithmetic device 12 will be described.

まず、演算装置12に備えたパケット管理部22内のキュー制御部222によるワークメモリ52内のワーク領域520の使用権付与処理(図2に示したステップS2)の処理手順について説明する。図13は、本第5の実施形態の演算装置12に備えたキュー制御部222がワークメモリ52内のワーク領域520の使用権を付与する使用権付与処理の処理手順を示したフローチャートである。   First, the processing procedure of the right-of-use grant processing (step S2 shown in FIG. 2) of the work area 520 in the work memory 52 by the queue control unit 222 in the packet management unit 22 provided in the arithmetic device 12 will be described. FIG. 13 is a flowchart illustrating a processing procedure of a usage right granting process in which the queue control unit 222 provided in the arithmetic device 12 according to the fifth embodiment grants the usage right of the work area 520 in the work memory 52.

キュー制御部222は、使用権付与処理を開始すると、まず、ステップS221において、ワークメモリ52内のそれぞれのワーク領域520の内、パケットの演算処理に使用することができるワーク領域520、すなわち、未使用のワーク領域520があるか否かを確認する。より具体的には、キュー制御部222は、ワークメモリ使用状況管理レジスタ240内のそれぞれのワークメモリ管理レジスタの情報を確認し、ワークメモリ管理レジスタの情報が「未使用」であるワーク領域520を検索する。ステップS221において、未使用のワーク領域520がない場合(ステップS221の“NO”)には、キュー制御部222は、使用権付与処理を完了する。   When the queue control unit 222 starts the usage right granting process, first, in step S221, among the work areas 520 in the work memory 52, a work area 520 that can be used for packet calculation processing, that is, an unprocessed area. It is confirmed whether there is a work area 520 to be used. More specifically, the queue control unit 222 confirms information on each work memory management register in the work memory use status management register 240, and creates a work area 520 in which the work memory management register information is “unused”. Search for. In step S221, when there is no unused work area 520 (“NO” in step S221), the queue control unit 222 completes the usage right granting process.

また、ステップS221において、未使用のワーク領域520がある場合(ステップS221の“YES”)には、ステップS222において、キュー制御部222は、パケットキュー210に格納されたそれぞれのパケットに含まれるプロセッサ番号を確認し、すでにワーク領域520の使用権が付与されている同一のプロセッサ30が処理するパケットの数が、有使用権パケット数以上あるか否かを確認する。ステップS222において、すでにワーク領域520の使用権が付与されている同一のプロセッサ30が処理するパケットの数が有使用権パケット数以上ある場合(ステップS222の“YES”)には、キュー制御部222は、使用権付与処理を完了する。   If there is an unused work area 520 in step S221 (“YES” in step S221), in step S222, the queue control unit 222 causes the processor included in each packet stored in the packet queue 210. The number is confirmed, and it is confirmed whether or not the number of packets to be processed by the same processor 30 to which the right to use the work area 520 is already assigned is equal to or larger than the number of used right packets. In step S222, when the number of packets processed by the same processor 30 to which the usage right of the work area 520 has already been given is equal to or larger than the number of usage right packets (“YES” in step S222), the queue control unit 222 Completes the usage right granting process.

また、ステップS222において、すでにワーク領域520の使用権が付与されている同一のプロセッサ30が処理するパケットの数が有使用権パケット数以上ない場合(ステップS222の“NO”)には、ステップS223において、キュー制御部222は、パケットキュー210に格納済みのパケットにおいてワーク領域520の使用権が付与されていないパケットがあるか否かを確認する。ステップS223において、ワーク領域520の使用権が付与されていないパケットがない場合(ステップS223の“NO”)には、キュー制御部222は、使用権付与処理を完了する。   In step S222, if the number of packets processed by the same processor 30 to which the usage right of the work area 520 has already been granted is not equal to or greater than the number of usage right packets (“NO” in step S222), step S223 is performed. Then, the queue control unit 222 confirms whether there is a packet to which the right to use the work area 520 is not given in the packets already stored in the packet queue 210. In step S223, when there is no packet to which the usage right of the work area 520 is not granted (“NO” in step S223), the queue control unit 222 completes the usage right granting process.

また、ステップS223において、ワーク領域520の使用権が付与されていないパケットがある場合(ステップS223の“YES”)には、ステップS224において、キュー制御部222は、ステップS223において確認したワーク領域520の使用権が付与されていないパケットの内、最もパケットキュー210の先頭に近いパケットにワーク領域520の使用権を付与する。また、キュー制御部222は、パケットに使用権を付与したワーク領域520に対応するワークメモリ使用状況管理レジスタ240内のワークメモリ管理レジスタの情報を、「使用中」を示す情報に更新する。   If there is a packet to which the right to use the work area 520 is not granted in step S223 (“YES” in step S223), in step S224, the queue control unit 222 checks the work area 520 confirmed in step S223. The right to use the work area 520 is given to the packet closest to the head of the packet queue 210 among the packets to which no right to use is assigned. In addition, the queue control unit 222 updates the information in the work memory management register 240 in the work memory use status management register 240 corresponding to the work area 520 to which the use right is given to the packet, to information indicating “in use”.

続いて、ステップS225において、キュー制御部222は、ワーク領域520の使用権を付与した、最もパケットキュー210の先頭に近いパケットに含まれる先頭アドレスおよびデータサイズを確認し、確認した先頭アドレスからデータサイズ分の演算対象データの、DRAM200から対応するワーク領域520へのDMA転送を、DMA制御部60に指示し、使用権付与処理を完了する。   Subsequently, in step S225, the queue control unit 222 confirms the head address and data size included in the packet closest to the head of the packet queue 210 to which the right to use the work area 520 is granted, and data from the confirmed head address. The DMA control unit 60 is instructed to perform DMA transfer of the calculation target data for the size from the DRAM 200 to the corresponding work area 520, and the usage right granting process is completed.

このような処理によって、キュー制御部222は、ワークメモリ使用状況管理レジスタ240内のワークメモリ管理レジスタの情報から未使用のワーク領域520を確認し、ワーク領域520の使用権が付与されていないパケットに、ワーク領域520の使用権を付与する。そして、DMA制御部60に、ワーク領域520の使用権が付与されていないパケットに対応する演算対象データの、DMA転送を指示する。なお、キュー制御部222は、使用権付与処理を常時行っている。すなわち、キュー制御部222は、パケットキュー210内にパケットが格納されている間、常に未使用のワーク領域520を検索して、使用権付与処理を行う。これにより、キュー制御部222は、ワークメモリ52内のいずれかのワーク領域520が使用することができる状況になった後の早いタイミングで、他のパケットに対する演算処理を実行する際に使用する演算対象データを対応するワーク領域520に準備すると共に、このパケットにワーク領域520の使用権を付与することができる。   By such processing, the queue control unit 222 confirms the unused work area 520 from the information of the work memory management register in the work memory usage status management register 240, and the packet to which the right to use the work area 520 is not granted. The right to use the work area 520 is granted. Then, the DMA control unit 60 is instructed to perform DMA transfer of operation target data corresponding to a packet to which the right to use the work area 520 is not granted. Note that the queue control unit 222 always performs use right grant processing. In other words, the queue control unit 222 always searches for an unused work area 520 and performs usage right grant processing while packets are stored in the packet queue 210. As a result, the queue control unit 222 performs an arithmetic operation used when executing arithmetic processing on another packet at an early timing after any work area 520 in the work memory 52 can be used. The target data is prepared in the corresponding work area 520, and the right to use the work area 520 can be given to this packet.

次に、演算装置12に備えたパケット管理部22内のキュー制御部222によるキュー管理処理(図2に示したステップS3)の処理手順について説明する。図14は、本第5の実施形態の演算装置12に備えたキュー制御部222がパケットキュー210に格納されているパケットのプロセッサ30への出力を管理するキュー管理処理の処理手順を示したフローチャートである。   Next, a processing procedure of queue management processing (step S3 shown in FIG. 2) by the queue control unit 222 in the packet management unit 22 provided in the arithmetic device 12 will be described. FIG. 14 is a flowchart illustrating a processing procedure of queue management processing in which the queue control unit 222 included in the arithmetic device 12 according to the fifth embodiment manages the output of the packets stored in the packet queue 210 to the processor 30. It is.

キュー制御部222は、キュー管理処理を開始すると、まず、ステップS321において、演算装置12に備えたそれぞれのプロセッサ30の内、パケットの演算処理を実行することができるプロセッサ30、すなわち、未使用のプロセッサ30があるか否かを確認する。より具体的には、キュー制御部222は、プロセッサ使用状況管理レジスタ250内のそれぞれのプロセッサ管理レジスタの情報を確認し、プロセッサ管理レジスタの情報が「未使用」であるプロセッサ30を検索する。ステップS321において、未使用のプロセッサ30がない場合(ステップS321の“NO”)には、キュー制御部222は、キュー管理処理を完了する。   When the queue control unit 222 starts the queue management process, first, in step S321, among the processors 30 included in the arithmetic unit 12, the processor 30 that can execute the packet arithmetic process, that is, an unused one. It is confirmed whether or not there is a processor 30. More specifically, the queue control unit 222 confirms information of each processor management register in the processor usage status management register 250 and searches for a processor 30 whose information in the processor management register is “unused”. In step S321, when there is no unused processor 30 (“NO” in step S321), the queue control unit 222 completes the queue management process.

また、ステップS321において、未使用のプロセッサ30がある場合(ステップS321の“YES”)には、ステップS322において、キュー制御部222は、パケットキュー210に格納済みのワーク領域520の使用権が付与されているパケットの内、ステップS321において検索した未使用のプロセッサ30を、演算処理を実行させるプロセッサ30として定めているパケットがあるか否かを確認する。より具体的には、キュー制御部222は、ワーク領域520の使用権が付与されているパケットに含まれるプロセッサ番号を確認することによって、未使用のプロセッサ30が演算処理を実行させるプロセッサ30として定められているパケットを検索する。ステップS322において、未使用のプロセッサ30が演算処理を実行させるプロセッサ30として定められているパケットがない場合(ステップS322の“NO”)には、キュー制御部222は、キュー管理処理を完了する。   If there is an unused processor 30 in step S321 (“YES” in step S321), the queue control unit 222 grants the right to use the work area 520 stored in the packet queue 210 in step S322. It is confirmed whether or not there is a packet in which the unused processor 30 searched in step S321 is determined as the processor 30 that executes the arithmetic processing among the packets that have been searched. More specifically, the queue control unit 222 confirms the processor number included in the packet to which the right to use the work area 520 is granted, thereby defining the processor 30 that causes the unused processor 30 to execute arithmetic processing. Search for packets that have been sent. In step S322, when there is no packet defined as the processor 30 that causes the unused processor 30 to execute the arithmetic processing (“NO” in step S322), the queue control unit 222 completes the queue management process.

また、ステップS322において、未使用のプロセッサ30が演算処理を実行させるプロセッサ30として定められているパケットがある場合(ステップS322の“YES”)には、ステップS323において、キュー制御部222は、DMA制御部60に指示した、最もパケットキュー210の先頭に近いパケットに対応する演算対象データの、DRAM200から対応するワーク領域520へのDMA転送が完了しているか否かを確認する。ステップS323の確認の結果、DRAM200から対応するワーク領域520への演算対象データのDMA転送が完了していない場合(ステップS323の“NO”)には、ステップS322を繰り返して、演算対象データのDMA転送が完了するのを待つ。   In step S322, when there is a packet defined as a processor 30 that causes the unused processor 30 to execute arithmetic processing (“YES” in step S322), in step S323, the queue control unit 222 determines that the DMA It is confirmed whether or not the DMA transfer from the DRAM 200 to the corresponding work area 520 of the operation target data corresponding to the packet closest to the head of the packet queue 210 instructed to the control unit 60 is completed. As a result of the confirmation in step S323, if the DMA transfer of the operation target data from the DRAM 200 to the corresponding work area 520 is not completed ("NO" in step S323), step S322 is repeated to calculate the DMA of the operation target data. Wait for the transfer to complete.

また、ステップS323の確認の結果、DRAM200から対応するワーク領域520への演算対象データのDMA転送が完了している場合(ステップS323の“YES”)には、ステップS324において、キュー制御部222は、ステップS322において演算対象データのDMA転送が完了したワーク領域520に対応するパケットに対して演算処理を実行するプロセッサ30に出力する。また、キュー制御部222は、プロセッサ30に出力したパケットに対応するプロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタの情報を、「使用中」を示す情報に更新し、キュー管理処理を完了する。   Further, as a result of the confirmation in step S323, when the DMA transfer of the operation target data from the DRAM 200 to the corresponding work area 520 is completed (“YES” in step S323), in step S324, the queue control unit 222 In step S322, the packet corresponding to the work area 520 for which the DMA transfer of the calculation target data has been completed is output to the processor 30 that executes the calculation process. Further, the queue control unit 222 updates the processor management register information in the processor usage status management register 250 corresponding to the packet output to the processor 30 to information indicating “in use”, and completes the queue management process.

このような処理によって、キュー制御部222は、プロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタの情報から未使用のプロセッサ30を確認し、未使用のプロセッサ30が演算処理を実行させるプロセッサ30として定められているパケットの演算対象データのDMA転送が完了した後に、このパケットを対応するプロセッサ30に出力する。なお、キュー制御部222は、キュー管理処理を常時行っている。すなわち、キュー制御部222は、パケットキュー210内にパケットが格納されている間、常に未使用のプロセッサ30を検索して、キュー管理処理を行う。これにより、キュー制御部222は、演算装置12に備えたいずれかのプロセッサ30がパケットを受け付けることができる状況になった後に演算対象データのDMA転送が完了した早いタイミングで、対応するパケットを出力することができる。   By such processing, the queue control unit 222 confirms the unused processor 30 from the information of the processor management register in the processor usage status management register 250, and defines it as a processor 30 that causes the unused processor 30 to execute arithmetic processing. After the DMA transfer of the operation target data of the received packet is completed, this packet is output to the corresponding processor 30. The queue control unit 222 always performs queue management processing. That is, the queue control unit 222 always searches for an unused processor 30 and performs queue management processing while packets are stored in the packet queue 210. Accordingly, the queue control unit 222 outputs the corresponding packet at an early timing when the DMA transfer of the operation target data is completed after any of the processors 30 included in the arithmetic device 12 can accept the packet. can do.

次に、演算装置12に備えたプロセッサ30による演算処理(図2に示したステップS4)の処理手順について説明する。図15は、本第5の実施形態の演算装置12に備えたプロセッサ30が演算処理を実行する処理手順を示したフローチャートである。   Next, the processing procedure of the arithmetic processing (step S4 shown in FIG. 2) by the processor 30 provided in the arithmetic device 12 will be described. FIG. 15 is a flowchart illustrating a processing procedure in which the processor 30 included in the arithmetic device 12 according to the fifth embodiment executes arithmetic processing.

プロセッサ30は、パケット管理部22内のパケットキュー210から対応するパケットが入力されると、演算処理を開始する。まず、ステップS421において、プロセッサ30は、入力されたパケットに含まれるワークメモリ番号を取得する。すなわち、入力されたパケットに対する演算処理を実行する際に使用するワーク領域520の情報を取得する。   When the corresponding packet is input from the packet queue 210 in the packet management unit 22, the processor 30 starts arithmetic processing. First, in step S421, the processor 30 acquires a work memory number included in the input packet. That is, information on the work area 520 used when executing arithmetic processing on the input packet is acquired.

続いて、ステップS422において、プロセッサ30は、取得したワークメモリ番号を、接続切り替え部40内の対応するアドレス変換部400に出力する。これにより、対応するアドレス変換部400は、プロセッサ30から入力されたワークメモリ番号に対応する、ワークメモリ番号とワーク領域520とを1対1に対応させたテーブルを参照して、プロセッサ30が使用するワーク領域520を特定する。また、対応するアドレス変換部400は、プロセッサ30とワークメモリ52内のワーク領域520とを1対1に接続させるクロスバスイッチ450の制御値をまとめたテーブルを参照してクロスバスイッチ450の制御値を決定し、決定した制御値をクロスバスイッチ450に出力する。これにより、クロスバスイッチ450は、アドレス変換部400から入力された制御値に応じて、プロセッサ30の信号線とワーク領域520の信号線との接続を切り替え、プロセッサ30とワーク領域520とを1対1に接続させる。なお、アドレス変換部400は、クロスバスイッチ450によるプロセッサ30とワーク領域520との接続の切り替えが完了した後、ワーク領域520の接続が完了したことを表す通知を、対応するプロセッサ30に通知する。   Subsequently, in step S422, the processor 30 outputs the acquired work memory number to the corresponding address conversion unit 400 in the connection switching unit 40. As a result, the corresponding address conversion unit 400 uses the processor 30 by referring to the table in which the work memory number and the work area 520 corresponding to the work memory number input from the processor 30 are associated one-to-one. The work area 520 to be specified is specified. Further, the corresponding address conversion unit 400 refers to a table that summarizes the control values of the crossbar switch 450 that connects the processor 30 and the work area 520 in the work memory 52 on a one-to-one basis. The determined control value is output to the crossbar switch 450. Thereby, the crossbar switch 450 switches the connection between the signal line of the processor 30 and the signal line of the work area 520 in accordance with the control value input from the address conversion unit 400, and makes a pair of the processor 30 and the work area 520. Connect to 1. The address conversion unit 400 notifies the corresponding processor 30 of a notification indicating that the connection of the work area 520 is completed after the switching of the connection between the processor 30 and the work area 520 by the crossbar switch 450 is completed.

続いて、ステップS423において、プロセッサ30は、入力されたパケットに含まれる処理番号を、対応するアドレス変換部400およびクロスバスイッチ450を介して、対応するワーク領域520に転送する。   Subsequently, in step S423, the processor 30 transfers the processing number included in the input packet to the corresponding work area 520 via the corresponding address conversion unit 400 and the crossbar switch 450.

続いて、ステップS424において、プロセッサ30は、ワーク領域520に転送したパケットに含まれる処理番号に対応した処理コードを、プロセッサ30に接続されたローカルメモリから読み出して、演算対象データに対する演算処理を実行する。   Subsequently, in step S424, the processor 30 reads the processing code corresponding to the processing number included in the packet transferred to the work area 520 from the local memory connected to the processor 30, and executes the arithmetic processing on the operation target data. To do.

そして、演算対象データに対する演算処理を完了した後、ステップS425において、プロセッサ30は、演算処理後のパケットのパケット状態情報およびプロセッサ番号を更新する。より具体的には、演算処理後のパケットが、演算処理を引き継ぐパケットである場合には、演算処理後のパケットのパケット状態情報を「処理継続」に更新し、さらに、プロセッサ番号を、引き続き演算処理を実行させる次のプロセッサ30(別のプロセッサ30または自身)のプロセッサ番号に更新する。また、演算処理後のパケットが、演算処理が完了したことにより外部ブロック100に出力するパケットである場合には、演算処理後のパケットのパケット状態情報を「処理完了」に更新する。   Then, after completing the calculation process on the calculation target data, in step S425, the processor 30 updates the packet state information and the processor number of the packet after the calculation process. More specifically, when the packet after the arithmetic processing is a packet that takes over the arithmetic processing, the packet status information of the packet after the arithmetic processing is updated to “continue processing”, and the processor number is continuously calculated. The processor number of the next processor 30 (another processor 30 or itself) to be executed is updated. If the packet after the arithmetic processing is a packet that is output to the external block 100 when the arithmetic processing is completed, the packet status information of the packet after the arithmetic processing is updated to “processing complete”.

続いて、演算対象データに対する演算処理(ステップS424)と、パケット状態情報およびプロセッサ番号の更新(ステップS425)とが完了すると、ステップS426において、プロセッサ30は、出力する演算処理後のパケットがあることを、パケット管理部22内の再エントリ判定部232に通知する。再エントリ判定部232は、演算処理後のパケットの取得ができる状態である場合、パケットを受け付けることを表す通知を、プロセッサ30に出力する。   Subsequently, when the calculation process for the calculation target data (step S424) and the update of the packet state information and the processor number (step S425) are completed, in step S426, the processor 30 has a packet after the calculation process to be output. To the re-entry determination unit 232 in the packet management unit 22. The re-entry determination unit 232 outputs a notification indicating that the packet is accepted to the processor 30 when the packet after the arithmetic processing can be acquired.

そして、プロセッサ30は、再エントリ判定部232から演算処理後のパケットを受け付けることを表す通知を受け取ると、ステップS427において、プロセッサ30は、演算処理後のパケットを、クロスバスイッチ450および対応するアドレス変換部400を介して再エントリ判定部232に出力し、演算処理を完了する。なお、ここで再エントリ判定部232に出力する演算処理後のパケットは、パケット状態情報が「処理継続」であるか否かに関わらず、すなわち、パケット状態情報が「処理継続」であっても、パケット状態情報が「処理完了」であっても、ワーク領域520に最終的に記憶されている演算対象データ以外のパケットである。   When the processor 30 receives a notification indicating that the packet after the arithmetic processing is accepted from the re-entry determination unit 232, the processor 30 converts the packet after the arithmetic processing into the crossbar switch 450 and the corresponding address conversion in step S427. The data is output to the re-entry determination unit 232 via the unit 400, and the arithmetic processing is completed. It should be noted that the post-computation packet output to the re-entry determination unit 232 here does not matter whether or not the packet state information is “continue processing”, that is, even if the packet state information is “continue processing”. Even if the packet status information is “processing complete”, the packet is other than the calculation target data finally stored in the work area 520.

このような処理によって、プロセッサ30は、入力されたパケットに対応し、すでに演算対象データが記憶されているワーク領域520を使用して、演算対象データに対する演算処理を実行する。そして、プロセッサ30は、演算処理後のパケットのパケット状態情報を更新し、再エントリ判定部232に出力する。このとき、プロセッサ30は、演算処理後のパケットのパケット状態情報に関わらず、演算対象データ以外の演算処理後のパケットを再エントリ判定部232に出力する。これにより、再エントリ判定部232は、ワーク領域520に記憶されている演算対象データのDRAM200へのDMA転送を行うか否かを判定し、その判定結果に応じて、DMA制御部60にDMA転送を指示することができ、不要なDMA転送を避けることができる。つまり、引き続き演算処理に使用する演算対象データは、DRAM200へのDMA転送を行わず、ワーク領域520に記憶されている(残っている)状態にすることができ、DMA転送を効率的に行うことができる。   By such processing, the processor 30 executes arithmetic processing on the calculation target data using the work area 520 corresponding to the input packet and in which the calculation target data is already stored. Then, the processor 30 updates the packet state information of the packet after the arithmetic processing and outputs it to the re-entry determination unit 232. At this time, the processor 30 outputs the post-computation packet other than the computation target data to the re-entry determination unit 232 regardless of the packet state information of the post-computation packet. As a result, the re-entry determination unit 232 determines whether or not to perform the DMA transfer of the operation target data stored in the work area 520 to the DRAM 200, and performs DMA transfer to the DMA control unit 60 according to the determination result. And unnecessary DMA transfer can be avoided. That is, the calculation target data used for the calculation processing can be stored (remaining) in the work area 520 without performing the DMA transfer to the DRAM 200, and the DMA transfer can be efficiently performed. Can do.

次に、演算装置12に備えたパケット管理部22内の再エントリ判定部232による再エントリ判定処理(図2に示したステップS5)の処理手順について説明する。図16は、本第5の実施形態の演算装置12に備えた再エントリ判定部232がパケットを再度格納する再エントリ判定処理の処理手順を示したフローチャートである。   Next, the procedure of the reentry determination process (step S5 shown in FIG. 2) by the reentry determination unit 232 in the packet management unit 22 provided in the arithmetic device 12 will be described. FIG. 16 is a flowchart illustrating a processing procedure of reentry determination processing in which the reentry determination unit 232 included in the arithmetic device 12 according to the fifth embodiment stores a packet again.

再エントリ判定部232は、再エントリ判定処理を開始すると、まず、ステップS521において、プロセッサ30から演算処理後のパケットがあることを表す通知があるか否か、すなわち、プロセッサ30からの演算処理後のパケットの出力許可要求があるか否かを確認する。ステップS521において、プロセッサ30からの演算処理後のパケットの出力許可要求がない場合(ステップS521の“NO”)には、再エントリ判定部232は、再エントリ判定処理を完了する。   When the re-entry determination unit 232 starts the re-entry determination process, first, in step S521, the processor 30 determines whether or not there is a notification indicating that there is a packet after the calculation process, that is, after the calculation process from the processor 30. Check whether there is a request for permission to output other packets. In step S521, when there is no output permission request for the packet after the arithmetic processing from the processor 30 (“NO” in step S521), the reentry determination unit 232 completes the reentry determination process.

また、ステップS521において、プロセッサ30からの演算処理後のパケットの出力許可要求がある場合(ステップS521の“YES”)には、再エントリ判定部232は、プロセッサ30から演算処理後のパケットを取得し、取得した演算処理後のパケットに対応するプロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタの情報を、「未使用」を示す情報に更新する。そして、ステップS522において、再エントリ判定部232は、プロセッサ30から入力された演算処理後のパケットのパケット状態情報が「処理継続」であるか否かを確認する。   In step S521, when there is an output permission request for the packet after the arithmetic processing from the processor 30 ("YES" in step S521), the reentry determination unit 232 acquires the packet after the arithmetic processing from the processor 30. Then, the information of the processor management register in the processor usage status management register 250 corresponding to the acquired packet after the arithmetic processing is updated to information indicating “unused”. In step S <b> 522, the re-entry determination unit 232 confirms whether the packet state information of the post-calculation packet input from the processor 30 is “continue processing”.

ステップS522において、プロセッサ30から入力された演算処理後のパケットのパケット状態情報が「処理継続」である場合(ステップS522の“YES”)、すなわち、演算処理後のパケットが演算処理を引き継ぐパケットである場合には、ステップS523において、再エントリ判定部232は、プロセッサ30から今回入力された演算処理後のパケットを、パケットキュー210内ですでにパケットが格納されている格納領域の次の格納領域、すなわち、現在の最後尾の格納領域に格納(エントリ)し、再エントリ判定処理を完了する。つまり、再エントリ判定部232は、今回入力された演算処理後のパケットにワーク領域520の使用権を付与したまま、パケットキュー210に再度格納(エントリ)する。   In step S522, when the packet status information of the packet after the arithmetic processing input from the processor 30 is “processing continuation” (“YES” in step S522), that is, the packet after the arithmetic processing is a packet that takes over the arithmetic processing. If there is, in step S523, the re-entry determination unit 232 stores the post-computation packet input this time from the processor 30 in the storage area next to the storage area in which the packet is already stored in the packet queue 210. That is, the current entry is stored (entry) in the last storage area, and the re-entry determination process is completed. In other words, the re-entry determination unit 232 stores (entries) the packet in the packet queue 210 again while giving the right to use the work area 520 to the packet after the arithmetic processing input this time.

また、ステップS522において、プロセッサ30から入力された演算処理後のパケットのパケット状態情報が「処理継続」でない場合(ステップS522の“NO”)、すなわち、パケット状態情報が「処理完了」であり、外部ブロック100に出力するパケットである場合には、ステップS524において、再エントリ判定部232は、取得した演算処理後のパケットに含まれる先頭アドレスおよびデータサイズを確認し、対応するワーク領域520に記憶されている演算処理後の演算対象データの、DRAM200の確認した先頭アドレスからデータサイズ分のDMA転送を、DMA制御部60に対して指示する。   In step S522, when the packet status information of the packet after the arithmetic processing input from the processor 30 is not “processing continuation” (“NO” in step S522), that is, the packet status information is “processing completed”. If the packet is to be output to the external block 100, in step S524, the re-entry determination unit 232 checks the start address and data size included in the acquired packet after the arithmetic processing, and stores it in the corresponding work area 520. The DMA control unit 60 is instructed to perform DMA transfer corresponding to the data size from the start address confirmed by the DRAM 200 of the operation target data after the operation processing.

続いて、ステップS525において、再エントリ判定部232は、DMA制御部60に指示した、演算処理後の演算対象データのワーク領域520からDRAM200へのDMA転送が完了しているか否かを確認する。ステップS525の確認の結果、ワーク領域520からDRAM200への演算対象データのDMA転送が完了していない場合(ステップS525の“NO”)には、ステップS525を繰り返して、演算対象データのDMA転送が完了するのを待つ。   Subsequently, in step S525, the re-entry determination unit 232 confirms whether the DMA transfer from the work area 520 of the operation target data after the operation processing, which is instructed to the DMA control unit 60, to the DRAM 200 is completed. As a result of the confirmation in step S525, if the DMA transfer of the operation target data from the work area 520 to the DRAM 200 is not completed (“NO” in step S525), step S525 is repeated to perform the DMA transfer of the operation target data. Wait for completion.

また、ステップS525の確認の結果、ワーク領域520からDRAM200への演算対象データのDMA転送が完了している場合(ステップS525の“YES”)には、ステップS526において、再エントリ判定部232は、入力された演算処理後のパケットに付与されたワーク領域520の使用権を開放する。より具体的には、ワークメモリ使用状況管理レジスタ240内の演算処理後のパケットに対応するワークメモリ管理レジスタの情報を、「未使用」を示す情報に更新することによって、ワーク領域520の使用権を開放する。   As a result of the confirmation in step S525, when the DMA transfer of the operation target data from the work area 520 to the DRAM 200 is completed (“YES” in step S525), in step S526, the reentry determination unit 232 The right to use the work area 520 given to the input packet after the arithmetic processing is released. More specifically, the right to use the work area 520 is updated by updating the information in the work memory management register corresponding to the packet after the arithmetic processing in the work memory use status management register 240 to information indicating “unused”. Is released.

続いて、ステップS527において、再エントリ判定部232は、ワーク領域520の使用権を開放した演算処理後のパケットを、外部ブロック100に出力し、再エントリ判定処理を完了する。なお、ここで外部ブロック100に出力する演算処理後のパケットは、パケット状態情報が「処理完了」であるが、ワーク領域520に最終的に記憶されている演算対象データ以外のパケットである。   Subsequently, in step S527, the re-entry determination unit 232 outputs the packet after the arithmetic processing that releases the right to use the work area 520 to the external block 100, and completes the re-entry determination process. Note that the post-computation packet output to the external block 100 here is a packet other than the computation target data finally stored in the work area 520, although the packet status information is “processing complete”.

このような処理によって、再エントリ判定部232は、プロセッサ30から入力された演算処理後のパケットのパケット状態情報に応じて、演算処理後のパケットの出力先を切り替える。なお、再エントリ判定部232は、再エントリ判定処理を常時行っている。すなわち、再エントリ判定部232は、演算装置12が動作している間、常にプロセッサ30から出力される演算処理後のパケットの出力許可要求を監視して、再エントリ判定処理を行う。そして、再エントリ判定処理では、パケット状態情報が「処理継続」である演算処理後のパケットを再度パケットキュー210に格納(エントリ)し、パケット状態情報が「処理完了」である演算処理後のパケットを外部ブロック100に出力する。このとき、再エントリ判定部232が外部ブロック100に出力する演算処理後のパケットは、パケット状態情報が「処理完了」であっても、演算対象データ以外の演算処理後のパケットを外部ブロック100に出力する。このため、外部ブロック100は、パケット状態情報が「処理完了」である演算処理後のパケットが入力されると、必要に応じてDRAM200から演算処理後の演算対象データを取得することができる。   By such processing, the re-entry determination unit 232 switches the output destination of the packet after the arithmetic processing according to the packet state information of the packet after the arithmetic processing input from the processor 30. The reentry determination unit 232 always performs reentry determination processing. That is, the re-entry determination unit 232 always monitors the output permission request for the post-computation packet output from the processor 30 while the arithmetic device 12 is operating, and performs the re-entry determination process. In the re-entry determination process, the packet after the arithmetic processing whose packet state information is “processing continuation” is stored (entry) in the packet queue 210 again, and the packet after the arithmetic processing whose packet state information is “processing complete” Is output to the external block 100. At this time, the post-computation packet output to the external block 100 by the re-entry determination unit 232 indicates that the post-computation packet other than the computation target data is sent to the external block 100 even if the packet status information is “processing complete” Output. For this reason, the external block 100 can acquire post-arithmetic operation target data from the DRAM 200 as necessary when a post-arithmetic packet whose packet state information is “processing complete” is input.

このように、演算装置12では、外部ブロック100から入力された複数のパケットに対する一連の演算処理を、パケットキュー210に格納されたそれぞれのパケットに対して常時行うことによって、外部ブロック100から要求された複数の演算処理を並列に実行することができる。このとき、演算装置12には、演算対象データ以外の情報を含むパケットが、外部ブロック100から入力される。そして、演算装置12では、演算処理の実行に合わせて、DRAM200に記憶されている演算対象データを、DMA転送でワークメモリ52に転送し、演算処理後の演算対象データを、DMA転送でDRAM200に転送する。これにより、演算装置12に入力するパケットの大きさを小さくすることができると共に、それぞれのプロセッサ30が演算対象データをワークメモリ52に転送する必要がないため、プロセッサ30におけるパケットのワークメモリ52への転送に要する時間を削減することができる。また、演算対象データは、DMA転送によって事前にワークメモリ52に記憶させておくことができるため、プロセッサ30とワーク領域500との接続の切り替えが完了から、演算対象データに対する演算処理の実行を開始するまでの時間、つまり、プロセッサ30が演算処理を実行するまでに待たされるオーバーヘッド時間を削減することができる。   As described above, the arithmetic device 12 requests the external block 100 by constantly performing a series of arithmetic processing on a plurality of packets input from the external block 100 for each packet stored in the packet queue 210. A plurality of arithmetic processes can be executed in parallel. At this time, a packet including information other than the calculation target data is input from the external block 100 to the arithmetic device 12. Then, in accordance with the execution of the arithmetic processing, the arithmetic device 12 transfers the operation target data stored in the DRAM 200 to the work memory 52 by DMA transfer, and the operation target data after the operation processing is transferred to the DRAM 200 by DMA transfer. Forward. As a result, the size of the packet input to the arithmetic unit 12 can be reduced, and each processor 30 does not need to transfer the operation target data to the work memory 52. Therefore, the packet in the processor 30 is transferred to the work memory 52. The time required for the transfer can be reduced. Further, since the calculation target data can be stored in the work memory 52 in advance by DMA transfer, execution of calculation processing on the calculation target data is started after the switching of the connection between the processor 30 and the work area 500 is completed. It is possible to reduce the time to wait, that is, the overhead time that is waited until the processor 30 executes the arithmetic processing.

<第5の動作>
ここで、演算装置12における動作の一例について説明する。演算装置12の動作についても、第1〜第3の実施形態の演算装置10における動作の説明と同様に、パケットキュー210およびワークメモリ52内のパケットに着目して説明する。図17は、本第5の実施形態の演算装置12の動作におけるそれぞれの処理段階でのパケットキュー210およびワークメモリ52内のパケットの状態の一例を示した図である。
<Fifth operation>
Here, an example of the operation in the arithmetic unit 12 will be described. The operation of the arithmetic device 12 will be described by paying attention to the packets in the packet queue 210 and the work memory 52, as in the description of the operation in the arithmetic device 10 of the first to third embodiments. FIG. 17 is a diagram illustrating an example of packet states in the packet queue 210 and the work memory 52 at each processing stage in the operation of the arithmetic device 12 according to the fifth embodiment.

図17には、DRAM200のアドレスとDRAM200内に記憶された演算対象データとの対応、すなわち、それぞれの演算対象データのDRAM200内の配置を示している。また、図17には、ワークメモリ52内のパケットの状態として、それぞれのパケットに対応する「演算対象データ」および「プロセッサ番号」を示している。また、図17には、パケットキュー210内のパケットの状態として、それぞれのパケットに対応する演算対象データが記憶されているDRAM200の記憶領域を表す「先頭アドレス」、「プロセッサ番号」、「ワークメモリ番号」、および「パケット状態情報」を示している。また、パケットキュー210内のパケットの状態には、「使用メモリ数」も示している。この使用メモリ数は、DRAM200に記憶されている演算対象データの大きさを定める「データサイズ」に対応する。例えば、使用メモリ数=1である場合には、DRAM200内に1つ分のワーク領域520に対応する演算対象データが記憶されていることを表す。以下の説明において使用メモリ数は、使用メモリ数=1のみであるものとする。   FIG. 17 shows the correspondence between the address of the DRAM 200 and the calculation target data stored in the DRAM 200, that is, the arrangement of the calculation target data in the DRAM 200. FIG. 17 shows “calculation target data” and “processor number” corresponding to each packet as the state of the packet in the work memory 52. FIG. 17 also shows the state of the packet in the packet queue 210 as “start address”, “processor number”, “work memory” indicating the storage area of the DRAM 200 in which the calculation target data corresponding to each packet is stored. “Number” and “packet state information”. The packet status in the packet queue 210 also indicates “number of used memories”. This number of used memories corresponds to a “data size” that determines the size of the calculation target data stored in the DRAM 200. For example, when the number of used memories = 1, it indicates that the calculation target data corresponding to one work area 520 is stored in the DRAM 200. In the following description, it is assumed that the number of used memories is only the number of used memories = 1.

なお、図17に示したそれぞれのパケットの状態における「プロセッサ番号」および「ワークメモリ番号」には、図8〜図10に示した第1〜第3の実施形態の演算装置10の動作におけるパケットキュー210およびワークメモリ50内のパケットの状態の一例と同様に、それぞれのプロセッサ30の符号の下1桁の数字およびそれぞれのワーク領域520の符号の下1桁の数字で示している。また、図17に示したそれぞれのパケットの状態においても、説明を容易にするため、図8〜図10に示した第1〜第3の実施形態の演算装置10の動作におけるパケットキュー210およびワークメモリ50内のパケットの状態の一例と同様に、「パケット番号」の項目と「処理中プロセッサ」の項目とを示している。また、図17に示したパケットキュー210内のパケットの状態においては、説明を容易にするため、「先頭アドレス」の項目内の先頭アドレスに続く“():括弧”内に、対応する演算対象データを示している。   The “processor number” and “work memory number” in the state of each packet shown in FIG. 17 include the packet in the operation of the arithmetic device 10 of the first to third embodiments shown in FIGS. Similarly to the example of the state of the packet in the queue 210 and the work memory 50, the last one digit of the sign of each processor 30 and the last one digit of the sign of each work area 520 are shown. Also, in order to facilitate the explanation in the state of each packet shown in FIG. 17, the packet queue 210 and the work in the operation of the arithmetic unit 10 of the first to third embodiments shown in FIGS. Similarly to the example of the state of the packet in the memory 50, an item “packet number” and an item “processor in process” are shown. Further, in the state of the packet in the packet queue 210 shown in FIG. 17, for easy explanation, the corresponding calculation target is indicated in “(): parentheses” following the head address in the “head address” item. Data are shown.

まず、図17(a)に示したDRAM200内に記憶された演算対象データについて説明する。それぞれのパケットにおける演算処理の対象となる演算対象データは、DRAM200のそれぞれの先頭アドレスから1つ分のワーク領域520に対応するデータサイズ分記憶されている。より具体的には、例えば、図12に示した演算装置12の構成において、ワークメモリ52内のそれぞれのワーク領域520の大きさ(サイズ)が0x1000である場合を考える。この場合、図17(a)に示した状態では、演算対象データAがDRAM200の物理アドレス0x1000〜0x1FFFに記憶されていることを表している。同様に、図17(a)に示した状態では、演算対象データBはDRAM200の物理アドレス0x2000〜0x2FFFに、演算対象データCはDRAM200の物理アドレス0x3000〜0x3FFFに、それぞれ記憶されていることを表している。また、同様に、図17(a)に示した状態では、演算対象データDはDRAM200の物理アドレス0x4000〜0x4FFFに、演算対象データEはDRAM200の物理アドレス0x5000〜0x5FFFに、演算対象データFはDRAM200の物理アドレス0x6000〜0x6FFFに、演算対象データGはDRAM200の物理アドレス0x7000〜0x7FFFに、それぞれ記憶されていることを表している。   First, calculation target data stored in the DRAM 200 shown in FIG. 17A will be described. Calculation target data to be subjected to calculation processing in each packet is stored for a data size corresponding to one work area 520 from each head address of the DRAM 200. More specifically, for example, consider a case where the size (size) of each work area 520 in the work memory 52 is 0x1000 in the configuration of the arithmetic unit 12 shown in FIG. In this case, the state shown in FIG. 17A represents that the calculation target data A is stored in the physical addresses 0x1000 to 0x1FFF of the DRAM 200. Similarly, in the state shown in FIG. 17A, the calculation target data B is stored in the physical address 0x2000-0x2FFF of the DRAM 200, and the calculation target data C is stored in the physical address 0x3000-0x3FFF of the DRAM 200. ing. Similarly, in the state shown in FIG. 17A, the operation target data D is the physical address 0x4000 to 0x4FFF of the DRAM 200, the operation target data E is the physical address 0x5000 to 0x5FFF of the DRAM 200, and the operation target data F is the DRAM 200. This indicates that the physical address 0x6000 to 0x6FFF and the calculation target data G are stored in the physical address 0x7000 to 0x7FFF of the DRAM 200, respectively.

続いて、演算装置12の動作について説明する。なお、本第5の動作における有使用権パケット数は、有使用権パケット数=1であるものとする。まず、演算装置12の動作においては、図17(b)に示したように、ワークメモリ52内に3つのパケットが記憶され、パケットキュー210内に4つのパケットが格納され、パケットキュー210内に格納されたパケットの内、先頭に近い2つのパケットと最後尾のパケットとに、キュー制御部222によってすでにワーク領域520の使用権が付与されている。キュー制御部222は、それぞれのパケットにワーク領域520の使用権を付与すると、DMA制御部60に、使用権を付与したパケットに含まれるDRAM200の先頭アドレスからデータサイズ分の演算対象データの、対応するワーク領域520へのDMA転送を指示する。これにより、ワークメモリ52には、DMA制御部60によって、すでにワーク領域520の使用権が付与されたパケットに対応する演算対象データのDMA転送が完了している。このパケットキュー210およびワークメモリ52内のパケットの状態を、演算装置12の初期の状態として、以降の動作を説明する。   Next, the operation of the arithmetic device 12 will be described. It is assumed that the number of usage right packets in the fifth operation is the number of usage right packets = 1. First, in the operation of the arithmetic unit 12, as shown in FIG. 17B, three packets are stored in the work memory 52, four packets are stored in the packet queue 210, and in the packet queue 210. Among the stored packets, the right to use the work area 520 has already been given by the queue control unit 222 to the two packets close to the head and the last packet. When the queue control unit 222 grants the right to use the work area 520 to each packet, the queue control unit 222 responds to the DMA control unit 60 with the calculation target data corresponding to the data size from the start address of the DRAM 200 included in the packet to which the usage right is given. The DMA transfer to the work area 520 to be performed is instructed. As a result, the DMA transfer of the calculation target data corresponding to the packet to which the right to use the work area 520 has already been granted by the DMA control unit 60 is completed in the work memory 52. The subsequent operation will be described with the state of the packets in the packet queue 210 and the work memory 52 as the initial state of the arithmetic unit 12.

より具体的には、ワークメモリ52の初期状態は、ワーク領域521に、パケットキュー210に最初に入力された、DRAM200の先頭アドレス0x1000に記憶された演算対象データAに対してプロセッサ31が演算処理を実行するパケット#1が記憶されている状態である。また、ワーク領域522に、パケットキュー210に2番目に入力された、DRAM200の先頭アドレス0x2000に記憶された演算対象データBに対してプロセッサ32が演算処理を実行するパケット#2が記憶され、ワーク領域523に、パケットキュー210に3番目に入力された、DRAM200の先頭アドレス0x3000に記憶された演算対象データCに対してプロセッサ33が演算処理を実行するパケット#3が記憶されている状態である。   More specifically, the initial state of the work memory 52 is that the processor 31 performs arithmetic processing on the operation target data A stored in the start address 0x1000 of the DRAM 200 that is first input to the work area 521 in the packet queue 210. Is stored in the packet # 1. Also, in the work area 522, packet # 2 is stored in which the processor 32 performs arithmetic processing on the operation target data B stored in the leading address 0x2000 of the DRAM 200, which is input second in the packet queue 210, In the area 523, a packet # 3 is stored in which the processor 33 executes arithmetic processing on the operation target data C stored in the leading address 0x3000 of the DRAM 200, which is input third in the packet queue 210. .

また、パケットキュー210の初期状態は、格納領域211に、パケットキュー210に4番目に入力された、DRAM200の先頭アドレス0x4000に記憶された演算対象データDに対してプロセッサ31が演算処理を実行する、ワーク領域524の使用権が付与されたパケット#4が格納されている状態である。また、格納領域212に、パケットキュー210に5番目に入力された、DRAM200の先頭アドレス0x5000に記憶された演算対象データEに対してプロセッサ32が演算処理を実行する、ワーク領域525の使用権が付与されたパケット#5が格納されている状態である。また、格納領域213に、パケットキュー210に6番目に入力された、DRAM200の先頭アドレス0x6000に記憶された演算対象データFに対してプロセッサ31が演算処理を実行する、ワーク領域520の使用権が付与されていないパケット#6が格納されている状態である。なお、パケット#6にワーク領域520の使用権が付与されていないのは、有使用権パケット数=1であるため、すでに、同じプロセッサ31が演算処理を実行するパケット#4にワーク領域521の使用権が付与されているためである。また、格納領域214に、パケットキュー210に7番目に入力された、DRAM200の先頭アドレス0x7000に記憶された演算対象データGに対してプロセッサ33が演算処理を実行する、ワーク領域526の使用権が付与されたパケット#7が格納されている状態である。   In the initial state of the packet queue 210, the processor 31 performs an arithmetic process on the operation target data D stored in the start address 0x4000 of the DRAM 200, which is input fourth in the packet queue 210 in the storage area 211. In this state, packet # 4 to which the right to use the work area 524 is granted is stored. In the storage area 212, the right to use the work area 525, in which the processor 32 executes arithmetic processing on the operation target data E stored in the leading address 0x5000 of the DRAM 200, which is input fifth in the packet queue 210, is used. In this state, the assigned packet # 5 is stored. In the storage area 213, the right to use the work area 520, in which the processor 31 executes the arithmetic process on the operation target data F stored in the start address 0x6000 of the DRAM 200, which is input sixth in the packet queue 210, is used. This is a state where unassigned packet # 6 is stored. Note that the use right of the work area 520 is not given to the packet # 6 because the number of use right packets = 1, so that the work area 521 is already included in the packet # 4 in which the same processor 31 executes the arithmetic processing. This is because usage rights are granted. In the storage area 214, the right to use the work area 526, in which the processor 33 executes arithmetic processing on the operation target data G stored in the leading address 0x7000 of the DRAM 200, which is input seventh in the packet queue 210, is used. In this state, the assigned packet # 7 is stored.

また、ワークメモリ52の初期状態は、ワーク領域524に、すでにワーク領域524の使用権が付与されたパケット#4に対応する演算対象データDが、ワーク領域525に、すでにワーク領域525の使用権が付与されたパケット#5に対応する演算対象データEが、ワーク領域526に、すでにワーク領域526の使用権が付与されたパケット#7に対応する演算対象データGが、それぞれ記憶されている状態である。   The initial state of the work memory 52 is that the operation target data D corresponding to the packet # 4 to which the work area 524 is already granted the right to use the work area 524 is already stored in the work area 525 and the work area 525 is already used. The calculation target data E corresponding to packet # 5 to which is assigned is stored in the work area 526, and the calculation target data G corresponding to packet # 7 to which the right to use the work area 526 is already stored is stored. It is.

この初期状態から、プロセッサ31が、パケット#1に対応する演算対象データAに対する演算処理を完了したことにより、演算装置12による一連の演算処理が完了し、パケット状態情報を「処理完了」に更新した演算処理後のパケット#1を、再エントリ判定部232に出力する場合を考える。なお、演算処理後のパケット#1のパケット状態情報は「処理完了」であるが、上述したように、プロセッサ31は、ワーク領域521に最終的に記憶されている演算対象データA以外の演算処理後のパケット#1を、再エントリ判定部232に出力する(図15のステップS427参照)。   From this initial state, when the processor 31 has completed the arithmetic processing for the operation target data A corresponding to the packet # 1, a series of arithmetic processing by the arithmetic device 12 is completed, and the packet state information is updated to “processing complete”. Consider a case where the packet # 1 after the above arithmetic processing is output to the re-entry determination unit 232. Although the packet status information of packet # 1 after the arithmetic processing is “processing completed”, as described above, the processor 31 performs arithmetic processing other than the arithmetic target data A finally stored in the work area 521. The subsequent packet # 1 is output to the re-entry determination unit 232 (see step S427 in FIG. 15).

演算処理後のパケット#1を取得した再エントリ判定部232は、プロセッサ31に対応するプロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタ251の情報を、「未使用」を示す情報に更新する(図16のステップS521参照)。そして、再エントリ判定部232は、演算処理後のパケット#1に含まれる先頭アドレス(=0x4000)および使用メモリ数(データサイズ)を確認し、対応するワーク領域521に記憶されている演算処理後の演算対象データA(以下、「演算対象データA2」という)のDMA転送を、DMA制御部60に指示する(図16のステップS524参照)。   The re-entry determination unit 232 that has acquired the packet # 1 after the arithmetic processing updates the information in the processor management register 251 in the processor usage status management register 250 corresponding to the processor 31 to information indicating “unused” (FIG. 16 step S521). Then, the re-entry determination unit 232 confirms the start address (= 0x4000) and the number of used memories (data size) included in the packet # 1 after the arithmetic processing, and after the arithmetic processing stored in the corresponding work area 521 The DMA control unit 60 is instructed to perform DMA transfer of the calculation target data A (hereinafter referred to as “calculation target data A2”) (see step S524 in FIG. 16).

続いて、再エントリ判定部232は、DMA制御部60に指示した、演算処理後の演算対象データA2のDRAM200の先頭アドレス(=0x4000)からデータサイズ分のDMA転送が完了しているか否かを確認し(図16のステップS525参照)、DMA転送が完了した後に、ワークメモリ使用状況管理レジスタ240内のワークメモリ管理レジスタ241の情報を、「未使用」を示す情報に更新する。そして、再エントリ判定部232は、演算処理後のパケット#1に付与されていたワーク領域521の使用権を開放する(図16のステップS526参照)。そして、再エントリ判定部232は、取得した演算処理後のパケット#1を、外部ブロック100に出力する(図16のステップS527参照)。   Subsequently, the re-entry determination unit 232 instructs the DMA control unit 60 whether the DMA transfer for the data size has been completed from the start address (= 0x4000) of the DRAM 200 of the calculation target data A2 after the calculation process. After confirming (see step S525 in FIG. 16) and completing the DMA transfer, the information in the work memory management register 241 in the work memory use status management register 240 is updated to information indicating “unused”. Then, the re-entry determination unit 232 releases the right to use the work area 521 given to the packet # 1 after the arithmetic processing (see step S526 in FIG. 16). Then, the reentry determination unit 232 outputs the acquired packet # 1 after the arithmetic processing to the external block 100 (see step S527 in FIG. 16).

また、キュー制御部222は、再エントリ判定部232によってプロセッサ31に対応するプロセッサ管理レジスタ251の情報が「未使用」になった、すなわち、プロセッサ31がパケットの演算処理を実行することができる状態になったことに応じて、パケットキュー210に格納済みのワーク領域520の使用権が付与されているパケットの内、プロセッサ番号=1で、最もパケットキュー210の先頭に近いパケット#4に対応した演算対象データDの、DRAM200からワーク領域524へのDMA転送が完了しているか否かを確認する(図14のステップS323参照)。そして、キュー制御部222は、ワーク領域524への演算対象データDのDMA転送が完了した後、パケットキュー210に、パケット#4をプロセッサ31に出力させる。また、キュー制御部222は、プロセッサ31に対応するプロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタ251の情報を、「使用中」を示す情報に更新する(図14のステップS324参照)。   In addition, the queue control unit 222 indicates that the information in the processor management register 251 corresponding to the processor 31 has become “unused” by the re-entry determination unit 232, that is, the processor 31 can execute the packet calculation process. As a result, among the packets to which the right to use the work area 520 stored in the packet queue 210 is granted, the processor number = 1 corresponds to the packet # 4 closest to the head of the packet queue 210. It is confirmed whether or not the DMA transfer of the operation target data D from the DRAM 200 to the work area 524 is completed (see step S323 in FIG. 14). Then, the queue control unit 222 causes the packet queue 210 to output the packet # 4 to the processor 31 after the DMA transfer of the calculation target data D to the work area 524 is completed. Further, the queue control unit 222 updates the information in the processor management register 251 in the processor usage status management register 250 corresponding to the processor 31 to information indicating “in use” (see step S324 in FIG. 14).

その後、プロセッサ31は、入力されたパケット#4に含まれるワークメモリ番号を対応するアドレス変換部401に出力し、プロセッサ31とワーク領域524とが1対1に接続された後(図15のステップS422参照)、パケット#4に対応した演算対象データDに対する演算処理を実行する(図15のステップS424参照)。   Thereafter, the processor 31 outputs the work memory number included in the input packet # 4 to the corresponding address conversion unit 401, and after the processor 31 and the work area 524 are connected one-to-one (step in FIG. 15). (Refer to S422), the calculation process is performed on the calculation target data D corresponding to the packet # 4 (see Step S424 in FIG. 15).

また、キュー制御部222は、再エントリ判定部232によってワーク領域521に対応するワークメモリ使用状況管理レジスタ240内のワークメモリ管理レジスタ241の情報が「未使用」になり、ワーク領域521の使用権を付与することができる状態になったことに応じて、パケットキュー210に格納済みのワーク領域520の使用権が付与されていないパケットの内、プロセッサ番号=1で、最もパケットキュー210の先頭に近いパケット#6に、ワーク領域521の使用権を付与する(図13のステップS224参照)。これは、格納領域211に格納されていたパケット#4がプロセッサ31に出力されたことにより、同じプロセッサ番号=1が含まれ、すでにワーク領域520の使用権が付与されているパケットが、パケットキュー210内に1つ以上(有使用権パケット数以上)存在しなくなった、つまり、「0」になったためである。   In addition, the queue control unit 222 uses the re-entry determination unit 232 to change the information in the work memory management register 241 in the work memory usage status management register 240 corresponding to the work area 521 to “unused”, so that the right to use the work area 521 In the packet queue 210 that is not granted the right to use the work area 520 stored in the packet queue 210, the processor number = 1 and the packet queue 210 at the top of the packet queue 210. The right to use the work area 521 is given to the near packet # 6 (see step S224 in FIG. 13). This is because the packet # 4 stored in the storage area 211 is output to the processor 31, so that a packet that includes the same processor number = 1 and is already granted the right to use the work area 520 is transferred to the packet queue. This is because one or more (more than the number of use right packets) does not exist in 210, that is, “0”.

続いて、キュー制御部222は、ワーク領域521の使用権を付与したパケット#6に含まれる先頭アドレスおよびデータサイズを確認し、確認した先頭アドレスからデータサイズ分の演算対象データFの、DRAM200から対応するワーク領域521へのDMA転送を、DMA制御部60に指示する(図13のステップS225参照)。   Subsequently, the queue control unit 222 confirms the start address and the data size included in the packet # 6 to which the right to use the work area 521 is granted, and the calculation target data F corresponding to the data size from the confirmed start address is received from the DRAM 200. The DMA control unit 60 is instructed to perform DMA transfer to the corresponding work area 521 (see step S225 in FIG. 13).

図17(c)は、このときのパケットキュー210およびワークメモリ52内のパケットの状態を示している。より具体的には、ワークメモリ52の状態は、ワーク領域521に、DMA制御部60によってDMA転送されたパケット#6に対応する演算対象データFが記憶され、ワーク領域524に、パケットキュー210から入力された、演算対象データDに対してプロセッサ31が演算処理を実行するパケット#4が記憶されている状態となっている。なお、ワークメモリ52内のワーク領域522およびワーク領域523は、プロセッサ32によるパケット#2に対応した演算対象データBに対する演算処理、およびプロセッサ33によるパケット#3に対応した演算対象データCに対する演算処理を完了していないため、初期状態と同様である。また、ワークメモリ52内のワーク領域525およびワーク領域526も、プロセッサ32およびプロセッサ33による演算処理の実行に使用されていないため、初期状態と同様である。   FIG. 17C shows the state of packets in the packet queue 210 and the work memory 52 at this time. More specifically, the work memory 52 is in a state where the calculation target data F corresponding to the packet # 6 DMA-transferred by the DMA control unit 60 is stored in the work area 521, and the work area 524 is stored in the packet queue 210. A packet # 4 is stored in which the processor 31 executes arithmetic processing on the input operation target data D. The work area 522 and the work area 523 in the work memory 52 are calculated by the processor 32 for the calculation target data B corresponding to the packet # 2, and the processor 33 performs the calculation process for the calculation target data C corresponding to the packet # 3. This is the same as in the initial state. Also, the work area 525 and the work area 526 in the work memory 52 are not used for execution of arithmetic processing by the processor 32 and the processor 33, and thus are the same as in the initial state.

また、パケットキュー210の状態は、格納領域211に格納されていたパケット#4がプロセッサ31に出力されたことにより、格納領域211にはパケット#5が格納され、同様に、格納領域212にはワーク領域521の使用権が付与されたパケット#6が格納され、格納領域213にはパケット#7が格納されている状態になる。   The packet queue 210 is in a state where the packet # 4 stored in the storage area 211 is output to the processor 31 and the packet # 5 is stored in the storage area 211. The packet # 6 to which the right to use the work area 521 is granted is stored, and the packet # 7 is stored in the storage area 213.

このように、演算装置12は、演算装置12に備えたワークメモリ52内のそれぞれのワーク領域520の使用状況と、演算装置12に備えたそれぞれのプロセッサ30の使用状況を常時監視し、監視した状況に応じて、それぞれのパケットに対応する演算対象データを、DRAM200とワークメモリ52との間でDMA転送する。そして、演算装置12は、第1〜第3の実施形態の演算装置10と同様に、それぞれのパケットを対応するプロセッサ30に割り当て、演算処理を実行させる。このとき、プロセッサ30とワーク領域520とは1対1で対応するため、第1〜第3の実施形態の演算装置10と同様に、それぞれのプロセッサ30でワーク領域520の競合が発生することなく、外部ブロック100から入力された複数のパケットに対する一連の演算処理を、それぞれのプロセッサ30で分担して並列に実行することができる。   In this way, the arithmetic device 12 constantly monitors and monitors the usage status of each work area 520 in the work memory 52 provided in the arithmetic device 12 and the usage status of each processor 30 provided in the arithmetic device 12. Depending on the situation, the operation target data corresponding to each packet is DMA-transferred between the DRAM 200 and the work memory 52. And the arithmetic device 12 allocates each packet to the corresponding processor 30, and performs arithmetic processing similarly to the arithmetic device 10 of the 1st-3rd embodiment. At this time, since the processor 30 and the work area 520 have a one-to-one correspondence, similarly to the arithmetic device 10 of the first to third embodiments, each processor 30 does not compete with the work area 520. A series of arithmetic processing for a plurality of packets input from the external block 100 can be shared by the processors 30 and executed in parallel.

また、演算装置12では、それぞれのパケットの演算処理の対象である演算対象データを、DMA制御部60がDMA転送する。これにより、演算装置12では、外部ブロック100から入力されるパケットの大きさが小さくなると共に、プロセッサ30による演算対象データのワークメモリ52への転送に要する時間を削減することができる。   In the arithmetic unit 12, the DMA control unit 60 DMA-transfers the operation target data that is the target of the operation processing of each packet. As a result, the arithmetic device 12 can reduce the size of the packet input from the external block 100 and reduce the time required for the processor 30 to transfer the operation target data to the work memory 52.

また、演算装置12では、DMA制御部60によって演算対象データをワークメモリ52内の対応するワーク領域520に事前に記憶させておく。これにより、プロセッサ30は、対応するパケットが入力されてから、より早いタイミングで演算処理の実行を開始することができ、それぞれのプロセッサ30が演算対象データを転送することによって発生するオーバーヘッド時間を削減することができる。   In the arithmetic unit 12, the calculation target data is stored in advance in the corresponding work area 520 in the work memory 52 by the DMA control unit 60. As a result, the processor 30 can start execution of the arithmetic processing at an earlier timing after the corresponding packet is input, and the overhead time generated by each processor 30 transferring the operation target data is reduced. can do.

なお、演算装置が演算処理を実行するそれぞれのパケットには、演算処理を実行する際の優先順位がある場合がある。このため、キュー制御部は、それぞれのパケットの優先度に応じて、ワークメモリ内のワーク領域の使用権を付与し、キューに格納されたパケットのプロセッサへの出力を制御する必要がある。   Note that each packet for which the arithmetic device executes arithmetic processing may have a priority order when the arithmetic processing is executed. For this reason, the queue control unit needs to give the right to use the work area in the work memory according to the priority of each packet, and to control the output of the packet stored in the queue to the processor.

<第6の実施形態>
次に、本発明の第6の実施形態について説明する。本第6の実施形態の演算装置は、入力されたそれぞれのパケットの優先度に基づいて、ワーク領域の使用権を付与する順番を制御する構成である。なお、本第6の実施形態における考え方は、図1に示した第1〜第3の実施形態の演算装置10、図11に示した第4の実施形態の演算装置11、および図12に示した第5の実施形態の演算装置12のいずれの構成にも適用することができる。以下の説明においては、図12に示した第5の実施形態の演算装置12に、本第6の実施形態における考え方を適用した場合について説明する。
<Sixth Embodiment>
Next, a sixth embodiment of the present invention will be described. The arithmetic device of the sixth embodiment is configured to control the order in which work area usage rights are granted based on the priority of each input packet. The concept in the sixth embodiment is shown in the arithmetic device 10 of the first to third embodiments shown in FIG. 1, the arithmetic device 11 of the fourth embodiment shown in FIG. 11, and FIG. In addition, the present invention can be applied to any configuration of the arithmetic device 12 of the fifth embodiment. In the following description, a case will be described in which the idea of the sixth embodiment is applied to the arithmetic device 12 of the fifth embodiment shown in FIG.

本第6の実施形態では、上述したように、入力されたそれぞれのパケットの優先度に基づいてワーク領域の使用権を付与する順番を制御する。このため、本第6の実施形態の演算装置12に入力されるパケットには、当該パケットに対する演算処理を実行する際の優先度を定める「優先度」の情報が追加されている。なお、優先度は、外部ブロック100またはそれぞれのプロセッサ30によって、パケット毎に設定される。   In the sixth embodiment, as described above, the order of granting the right to use the work area is controlled based on the priority of each input packet. For this reason, “priority” information that determines the priority for executing the arithmetic processing on the packet is added to the packet input to the arithmetic device 12 of the sixth embodiment. The priority is set for each packet by the external block 100 or each processor 30.

本第6の実施形態の演算装置12では、優先度に応じてワークメモリ52の使用権を付与する順番を制御するための機能が、キュー制御部222および再エントリ判定部232に加わること以外は、本第6の実施形態の演算装置12の構成や処理手順は、第5の実施形態の演算装置12と同様である。従って、以下の説明においては、本第6の実施形態の演算装置を演算装置12とし、演算装置12に備えたそれぞれの構成要素に加わった機能のみを説明する。   In the arithmetic device 12 of the sixth embodiment, a function for controlling the order of granting the right to use the work memory 52 according to the priority is added to the queue control unit 222 and the reentry determination unit 232. The configuration and processing procedure of the arithmetic device 12 of the sixth embodiment are the same as those of the arithmetic device 12 of the fifth embodiment. Therefore, in the following description, the arithmetic device of the sixth embodiment is the arithmetic device 12, and only functions added to the respective components provided in the arithmetic device 12 will be described.

キュー制御部222には、パケットキュー210に格納されたそれぞれのパケットの優先度に応じて、それぞれのパケットに対して付与するワーク領域520の使用権を制御する機能が加わる。キュー制御部222は、同一のプロセッサ30が処理するパケットにおいて、優先度が高いパケットから順にワーク領域520の使用権を付与し、対応するプロセッサ30に出力する。なお、パケットキュー210に、同一のプロセッサ30が処理する優先度が同じパケットが複数格納されている場合には、より先頭に近いパケットから順にワーク領域520の使用権を付与し、対応するプロセッサ30に出力する。   The queue control unit 222 has a function of controlling the right to use the work area 520 assigned to each packet according to the priority of each packet stored in the packet queue 210. The queue control unit 222 grants the right to use the work area 520 in order from the packet with the highest priority in the packets processed by the same processor 30, and outputs them to the corresponding processor 30. If a plurality of packets with the same priority processed by the same processor 30 are stored in the packet queue 210, the right to use the work area 520 is assigned in order from the packet closer to the head, and the corresponding processor 30 is assigned. Output to.

より具体的には、まず、キュー制御部222は、パケットキュー210に格納されたそれぞれのパケットに含まれるプロセッサ番号を確認する。そして、キュー制御部222は、同じプロセッサ番号が含まれるパケット同士で、それぞれのパケットに含まれる優先度を確認する。そして、キュー制御部222は、確認した優先度に応じて、ワーク領域520の使用権を付与する。なお、パケットキュー210に格納されているパケットの状態が変わったことにより、ワーク領域520の使用権を付与し直すこともある。   More specifically, first, the queue control unit 222 confirms the processor number included in each packet stored in the packet queue 210. Then, the queue control unit 222 checks the priority included in each packet among packets including the same processor number. Then, the queue control unit 222 grants the right to use the work area 520 according to the confirmed priority. Note that the right to use the work area 520 may be reassigned when the state of the packet stored in the packet queue 210 changes.

例えば、パケットキュー210に格納されたそれぞれのパケットに含まれるプロセッサ番号と優先度とを確認した結果、すでにワーク領域520の使用権が付与されている同じプロセッサ番号が含まれるパケットの優先度が、後からパケットキュー210に格納されたワーク領域520の使用権が付与されていないパケットよりも高い場合には、すでに付与したワーク領域520の使用権を付与したまま、後からパケットキュー210に格納された優先度の低いパケットよりも先に、対応するプロセッサ30に出力する。また、例えば、すでにワーク領域520の使用権が付与されている同じプロセッサ番号が含まれるパケットの優先度が、後からパケットキュー210に格納されたワーク領域520の使用権が付与されていないパケットよりも低い場合には、すでに付与したワーク領域520の使用権を開放し、後からパケットキュー210に格納された優先度の高いパケットに、ワーク領域520の使用権を付与し直す。そして、今回ワーク領域520の使用権を付与し直した、後からパケットキュー210に格納されたパケットを、先に対応するプロセッサ30に出力する。また、例えば、すでにワーク領域520の使用権が付与されている同じプロセッサ番号が含まれるパケットの優先度と、後からパケットキュー210に格納されたワーク領域520の使用権が付与されていないパケットの優先度とが同じである場合には、パケットキュー210に格納された順番で、対応するプロセッサ30に出力する。   For example, as a result of confirming the processor number and the priority included in each packet stored in the packet queue 210, the priority of the packet including the same processor number to which the right to use the work area 520 has already been assigned is If the usage right of the work area 520 stored later in the packet queue 210 is higher than the packet to which the use right of the work area 520 is not granted, the use right of the work area 520 that has already been granted is granted and stored in the packet queue 210 later. The packet is output to the corresponding processor 30 prior to the low priority packet. Further, for example, the priority of a packet including the same processor number to which the right to use the work area 520 is already assigned is higher than that of the packet to which the right to use the work area 520 stored in the packet queue 210 is not granted later. If it is lower, the right to use the work area 520 that has already been granted is released, and the right to use the work area 520 is reassigned to a packet having a high priority stored in the packet queue 210 later. Then, after the right to use the work area 520 is reassigned, the packet stored in the packet queue 210 later is output to the processor 30 corresponding to the previous one. Further, for example, the priority of a packet including the same processor number to which the right to use the work area 520 is already assigned, and the packet to which the right to use the work area 520 stored in the packet queue 210 is not granted later. If the priorities are the same, they are output to the corresponding processor 30 in the order stored in the packet queue 210.

再エントリ判定部232には、それぞれのプロセッサ30から、パケット状態情報が「処理継続」であるパケットを取得した場合に、パケットキュー210に格納されたそれぞれのパケットの優先度に応じて、それぞれのパケットに付与されているワーク領域520の使用権の開放を制御する機能が加わる。再エントリ判定部232は、パケット状態情報が「処理継続」である場合でも、同一のプロセッサ30が処理するパケットにおいて、優先度が低いパケットのワーク領域520の使用権を開放してから、パケットキュー210に再度格納(エントリ)する。なお、パケットキュー210に、同一のプロセッサ30が処理する優先度が同じパケットが複数格納されている場合にも、ワーク領域520の使用権を開放してから、パケットキュー210に再度格納(エントリ)する。   In the re-entry determination unit 232, when a packet whose packet status information is “process continuation” is acquired from each processor 30, each re-entry determination unit 232 depends on the priority of each packet stored in the packet queue 210. A function for controlling the release of the right to use the work area 520 given to the packet is added. The re-entry determination unit 232 releases the right to use the work area 520 of the low-priority packet in the packet processed by the same processor 30 even when the packet status information is “process continuation”, and then sets the packet queue Store (entry) in 210 again. Note that even when a plurality of packets with the same priority processed by the same processor 30 are stored in the packet queue 210, the right to use the work area 520 is released and stored again in the packet queue 210 (entry). To do.

より具体的には、まず、再エントリ判定部232は、パケットキュー210に格納されたそれぞれのパケットに含まれるプロセッサ番号を確認する。そして、再エントリ判定部232は、同じプロセッサ番号が含まれるパケットのそれぞれと、パケットキュー210に再度格納(エントリ)するパケット状態情報が「処理継続」であるパケットとの、それぞれのパケットに含まれる優先度を確認する。そして、再エントリ判定部232は、確認した優先度に応じて、ワーク領域520の使用権を開放する。なお、ワーク領域520の使用権を開放は、パケットキュー210に再度格納(エントリ)するパケットに対応する、引き継ぎを行う演算対象データをDRAM200に退避してから、つまり、DMA制御部60によって引き継ぎを行う演算対象データのDRAM200へのDMA転送が完了した後に行う。また、再エントリ判定部232は、ワーク領域520の使用権が付与された同一のプロセッサ30が処理する有使用権パケット数が設定されている場合には、ワーク領域520の使用権が付与された同一のプロセッサ30が処理するパケットの数が有使用権パケット数以上とならないように、有使用権パケット数と優先度に応じて、それぞれのパケットに付与されているワーク領域520の使用権の開放を制御する。   More specifically, first, the reentry determination unit 232 confirms the processor number included in each packet stored in the packet queue 210. The re-entry determination unit 232 includes each packet including the same processor number and a packet whose packet state information to be stored (entry) in the packet queue 210 is “process continuation”. Check the priority. Then, the re-entry determination unit 232 releases the right to use the work area 520 according to the confirmed priority. Note that the right to use the work area 520 is released after the operation target data to be transferred corresponding to the packet to be stored (entry) again in the packet queue 210 is saved in the DRAM 200, that is, the DMA control unit 60 takes over. This is performed after the completion of the DMA transfer of the operation target data to be performed to the DRAM 200. Further, the re-entry determination unit 232 is given the right to use the work area 520 when the number of usage right packets to be processed by the same processor 30 to which the right to use the work area 520 is assigned is set. Release the right of use of the work area 520 assigned to each packet according to the number of use right packets and priority so that the number of packets processed by the same processor 30 does not exceed the number of use right packets. To control.

例えば、プロセッサ30からパケット状態情報が「処理継続」であるパケットを取得すると、まず、再エントリ判定部232は、パケットキュー210に格納されたそれぞれのパケットに含まれるプロセッサ番号と優先度とを確認する。そして、再エントリ判定部232は、すでにワーク領域520の使用権が付与されているパケットに含まれるプロセッサ番号と、パケットキュー210に再度格納(エントリ)するパケットに含まれるプロセッサ番号とが同じであるパケットが、有使用権パケット数以上パケットキュー210内に存在するか否かを確認する。この確認の結果、すでにワーク領域520の使用権が付与されている同じプロセッサ番号が含まれるパケットが、パケットキュー210内に有使用権パケット数以上ある場合には、これらのパケットにおいて最も優先度が低く、最もパケットキュー210内の最後尾に近いパケットと、パケットキュー210に再度格納(エントリ)するパケット状態情報が「処理継続」であるパケットとの優先度を比較する。   For example, when a packet whose packet status information is “processing continuation” is acquired from the processor 30, the re-entry determination unit 232 first checks the processor number and priority included in each packet stored in the packet queue 210. To do. Then, the re-entry determination unit 232 has the same processor number included in the packet to which the right to use the work area 520 is already assigned and the processor number included in the packet stored (entry) in the packet queue 210 again. It is confirmed whether or not there are more packets in the packet queue 210 than the number of use right packets. As a result of this confirmation, when there are more packets in the packet queue 210 that have the same processor number to which the right to use the work area 520 has been assigned, the highest priority is given to these packets. The priority of the packet that is the lowest and closest to the tail in the packet queue 210 is compared with the packet whose packet status information to be stored (entry) in the packet queue 210 is “continue processing”.

この比較の結果、パケットキュー210に再度格納(エントリ)するパケット状態情報が「処理継続」であるパケットの優先度の方が低い場合には、パケット状態情報が「処理継続」である場合でも、再度格納(エントリ)するパケットに対応する演算対象データをDRAM200に退避し、このパケットに付与されたワーク領域520の使用権を開放した後に、パケットキュー210に格納(エントリ)する。また、比較の結果、パケットキュー210に再度格納(エントリ)するパケット状態情報が「処理継続」であるパケットの優先度の方が高い場合には、同じプロセッサ番号が含まれ、最も優先度が低く、最もパケットキュー210内の最後尾に近いパケットに対応する演算対象データをDRAM200に退避し、このパケットに付与されたワーク領域520の使用権を開放する。なお、ワーク領域520の使用権を開放する、同じプロセッサ番号が含まれ、最も優先度が低く、最もパケットキュー210内の最後尾に近いパケットのパケット状態情報が「処理継続」である場合には、そのパケットにおいて継続して演算処理をする際に使用する演算対象データをDRAM200に退避してから、ワーク領域520の使用権を開放する。   As a result of this comparison, when the packet status information to be stored (entry) again in the packet queue 210 is lower in priority of the packet whose processing status is “continuation of processing”, even when the packet status information is “processing continues”, The operation target data corresponding to the packet to be stored (entry) again is saved in the DRAM 200, and the right to use the work area 520 given to the packet is released, and then stored (entry) in the packet queue 210. As a result of comparison, if the priority of a packet whose packet state information stored (entry) in the packet queue 210 is “continuation of processing” is higher, the same processor number is included and the priority is lowest. The operation target data corresponding to the packet closest to the tail in the packet queue 210 is saved in the DRAM 200, and the right to use the work area 520 given to this packet is released. When the same processor number that releases the right to use the work area 520 is included, the lowest priority, and the packet status information of the packet closest to the tail in the packet queue 210 is “continue processing” Then, after the operation target data to be used when the operation processing is continued in the packet is saved in the DRAM 200, the right to use the work area 520 is released.

<第6の動作>
ここで、第6の実施形態の演算装置12において、パケットの優先度に基づいてワーク領域の使用権を付与する順番を制御する場合の動作の一例について説明する。本第6の動作の説明でも、パケットキュー210およびワークメモリ50内のパケットに着目して、演算装置10の動作を説明する。なお、本第6の動作でも、有使用権パケット数は、有使用権パケット数=1であるものとする。図18は、本第6の実施形態の演算装置12の動作におけるそれぞれの処理段階でのパケットキュー210およびワークメモリ52内のパケットの状態の一例を示した図である。
<Sixth operation>
Here, an example of the operation in the case of controlling the order of assigning the right to use work areas based on the priority of packets in the arithmetic device 12 according to the sixth embodiment will be described. Also in the description of the sixth operation, the operation of the arithmetic unit 10 will be described by paying attention to the packets in the packet queue 210 and the work memory 50. In the sixth operation as well, the number of use right packets is assumed to be the number of use right packets = 1. FIG. 18 is a diagram illustrating an example of the state of packets in the packet queue 210 and the work memory 52 at each processing stage in the operation of the arithmetic device 12 according to the sixth embodiment.

図18には、図17に示した第5の実施形態の演算装置12の動作におけるそれぞれの演算対象データのDRAM200内の配置の一例と同様に、DRAM200のアドレスとDRAM200内に記憶された演算対象データとの対応を示している。また、図18には、図17に示した第5の実施形態の演算装置12の動作におけるワークメモリ52内のパケットの状態の一例と同様に、ワークメモリ52内のパケットの状態として、それぞれのパケットに対応する「演算対象データ」および「プロセッサ番号」を示している。また、図18には、図17に示した第5の実施形態の演算装置12の動作におけるパケットキュー210内のパケットの状態の一例と同様に、パケットキュー210内のパケットの状態として、それぞれのパケットに含まれる「使用メモリ数」、「先頭アドレス」、「プロセッサ番号」、「ワークメモリ番号」、および「パケット状態情報」を示している。また、パケットキュー210内のパケットの状態には、「優先度」も示している。ここで、優先度は、優先度=1が最も優先度が高く、優先度=3が最も優先度が低いものとする。   FIG. 18 shows the address of the DRAM 200 and the operation target stored in the DRAM 200, as in the example of the arrangement of the operation target data in the DRAM 200 in the operation of the arithmetic device 12 of the fifth embodiment shown in FIG. The correspondence with the data is shown. In addition, FIG. 18 shows, as an example of the state of the packet in the work memory 52 in the operation of the arithmetic unit 12 of the fifth embodiment shown in FIG. “Calculation target data” and “processor number” corresponding to the packet are shown. In addition, FIG. 18 shows, as an example of the state of the packet in the packet queue 210 in the operation of the arithmetic device 12 of the fifth embodiment shown in FIG. The “number of used memories”, “start address”, “processor number”, “work memory number”, and “packet state information” included in the packet are shown. The packet status in the packet queue 210 also indicates “priority”. Here, it is assumed that priority = 1 is the highest priority and priority = 3 is the lowest priority.

なお、図18に示したそれぞれのパケットの状態における「プロセッサ番号」および「ワークメモリ番号」には、図7に示した第5の実施形態の演算装置12の動作におけるパケットキュー210およびワークメモリ52内のパケットの状態の一例と同様に、それぞれのプロセッサ30の符号の下1桁の数字およびそれぞれのワーク領域520の符号の下1桁の数字で示している。また、図18に示したそれぞれのパケットの状態においても、説明を容易にするため、図17に示した第5の実施形態の演算装置12の動作におけるパケットキュー210およびワークメモリ52内のパケットの状態の一例と同様に、「パケット番号」の項目と「処理中プロセッサ」の項目とを示している。また、図18に示したパケットキュー210内のパケットの状態においても、説明を容易にするため、図17に示した第5の実施形態の演算装置12の動作におけるパケットキュー210内のパケットの状態の一例と同様に、「先頭アドレス」の項目内の先頭アドレスに続く“():括弧”内に、対応する演算対象データを示している。なお、第6の実施形態の演算装置12は、パケットキュー210内に8つの格納領域(格納領域211〜格納領域218)を備えているものとして説明する。   The “processor number” and “work memory number” in the state of each packet shown in FIG. 18 include the packet queue 210 and the work memory 52 in the operation of the arithmetic unit 12 of the fifth embodiment shown in FIG. Similarly to the example of the state of the packet, the last digit of the sign of each processor 30 and the last digit of the sign of each work area 520 are shown. Also, in the state of each packet shown in FIG. 18, in order to facilitate the explanation, the packet queue 210 and the packet in the work memory 52 in the operation of the arithmetic unit 12 of the fifth embodiment shown in FIG. Similarly to the example of the state, an item “packet number” and an item “processor in process” are shown. Also, in order to facilitate the description of the state of the packet in the packet queue 210 shown in FIG. 18, the state of the packet in the packet queue 210 in the operation of the arithmetic device 12 of the fifth embodiment shown in FIG. Similarly to the example, the corresponding calculation target data is shown in “(): parentheses” following the head address in the item “head address”. Note that the arithmetic device 12 of the sixth embodiment will be described assuming that the packet queue 210 includes eight storage areas (storage areas 211 to 218).

まず、図18(a)に示したDRAM200内に記憶された演算対象データについて説明する。それぞれのパケットにおける演算処理の対象となる演算対象データは、DRAM200のそれぞれの先頭アドレスから1つ分のワーク領域520に対応するデータサイズ分記憶されている。より具体的には、例えば、ワークメモリ52内のそれぞれのワーク領域520の大きさ(サイズ)が0x1000である場合を考えると、図18(a)に示した状態では、演算対象データAがDRAM200の物理アドレス0x1000〜0x1FFFに記憶されていることを表している。同様に、図18(a)に示した状態では、演算対象データBはDRAM200の物理アドレス0x2000〜0x2FFFに、演算対象データCはDRAM200の物理アドレス0x3000〜0x3FFFに、それぞれ記憶されていることを表している。また、同様に、図18(a)に示した状態では、演算対象データDはDRAM200の物理アドレス0x4000〜0x4FFFに、演算対象データEはDRAM200の物理アドレス0x5000〜0x5FFFに、演算対象データFはDRAM200の物理アドレス0x6000〜0x6FFFに、演算対象データGはDRAM200の物理アドレス0x7000〜0x7FFFに、それぞれ記憶されていることを表している。また、同様に、図18(a)に示した状態では、演算対象データHはDRAM200の物理アドレス0x8000〜0x8FFFに、演算対象データIはDRAM200の物理アドレス0x9000〜0x9FFFに、それぞれ記憶されていることを表している。   First, calculation target data stored in the DRAM 200 shown in FIG. Calculation target data to be subjected to calculation processing in each packet is stored for a data size corresponding to one work area 520 from each head address of the DRAM 200. More specifically, for example, considering the case where the size (size) of each work area 520 in the work memory 52 is 0x1000, in the state shown in FIG. Stored in physical addresses 0x1000 to 0x1FFF. Similarly, in the state shown in FIG. 18A, the calculation target data B is stored in the physical address 0x2000-0x2FFF of the DRAM 200, and the calculation target data C is stored in the physical address 0x3000-0x3FFF of the DRAM 200. ing. Similarly, in the state shown in FIG. 18A, the operation target data D is the physical address 0x4000 to 0x4FFF of the DRAM 200, the operation target data E is the physical address 0x5000 to 0x5FFF of the DRAM 200, and the operation target data F is the DRAM 200. This indicates that the physical address 0x6000 to 0x6FFF and the calculation target data G are stored in the physical address 0x7000 to 0x7FFF of the DRAM 200, respectively. Similarly, in the state shown in FIG. 18A, the operation target data H is stored in the physical address 0x8000 to 0x8FFF of the DRAM 200, and the operation target data I is stored in the physical address 0x9000 to 0x9FFF of the DRAM 200. Represents.

続いて、演算装置12の動作について説明する。なお、本第6の動作における有使用権パケット数は、有使用権パケット数=1であるものとする。まず、演算装置12の動作においては、図18(b)に示したように、ワークメモリ52内に3つのパケットが記憶され、パケットキュー210内に6つのパケットが格納され、パケットキュー210内に格納されたパケットの内、先頭に近い2つのパケットと4番目のパケットとに、キュー制御部222によってすでにワーク領域520の使用権が付与されている。これにより、ワークメモリ52には、キュー制御部222からDMA転送が指示されたDMA制御部60によって、すでにワーク領域520の使用権が付与されたパケットに対応する演算対象データのDMA転送が完了している。このパケットキュー210およびワークメモリ52内のパケットの状態を、演算装置12の初期の状態として、以降の動作を説明する。   Next, the operation of the arithmetic device 12 will be described. Note that the number of usage right packets in the sixth operation is the number of usage right packets = 1. First, in the operation of the arithmetic unit 12, as shown in FIG. 18B, three packets are stored in the work memory 52, six packets are stored in the packet queue 210, and in the packet queue 210. Of the stored packets, the right to use the work area 520 has already been given by the queue control unit 222 to the two packets near the head and the fourth packet. As a result, the DMA transfer of the operation target data corresponding to the packet to which the use right of the work area 520 has already been granted by the DMA control unit 60 instructed by the queue control unit 222 to the DMA transfer is completed. ing. The subsequent operation will be described with the state of the packets in the packet queue 210 and the work memory 52 as the initial state of the arithmetic unit 12.

より具体的には、ワークメモリ52の初期状態は、ワーク領域521に、パケットキュー210に最初に入力された、DRAM200の先頭アドレス0x1000に記憶された演算対象データAに対してプロセッサ31が演算処理を実行するパケット#1が記憶されている状態である。また、ワーク領域522に、パケットキュー210に2番目に入力された、DRAM200の先頭アドレス0x2000に記憶された演算対象データBに対してプロセッサ32が演算処理を実行するパケット#2が記憶され、ワーク領域523に、パケットキュー210に3番目に入力された、DRAM200の先頭アドレス0x3000に記憶された演算対象データCに対してプロセッサ33が演算処理を実行するパケット#3が記憶されている状態である。   More specifically, the initial state of the work memory 52 is that the processor 31 performs arithmetic processing on the operation target data A stored in the start address 0x1000 of the DRAM 200 that is first input to the work area 521 in the packet queue 210. Is stored in the packet # 1. Also, in the work area 522, packet # 2 is stored in which the processor 32 performs arithmetic processing on the operation target data B stored in the leading address 0x2000 of the DRAM 200, which is input second in the packet queue 210, In the area 523, a packet # 3 is stored in which the processor 33 executes arithmetic processing on the operation target data C stored in the leading address 0x3000 of the DRAM 200, which is input third in the packet queue 210. .

また、パケットキュー210の初期状態は、格納領域211に、パケットキュー210に4番目に入力された、DRAM200の先頭アドレス0x4000に記憶された演算対象データDに対してプロセッサ31が演算処理を実行する、ワーク領域524の使用権が付与されたパケット#4が格納されている状態である。また、格納領域212に、パケットキュー210に5番目に入力された、DRAM200の先頭アドレス0x5000に記憶された演算対象データEに対してプロセッサ32が演算処理を実行する、ワーク領域525の使用権が付与されたパケット#5が格納されている状態である。また、格納領域213に、パケットキュー210に6番目に入力された、DRAM200の先頭アドレス0x6000に記憶された演算対象データFに対してプロセッサ33が演算処理を実行する、ワーク領域520の使用権が付与されていないパケット#6が格納されている状態である。また、格納領域214に、パケットキュー210に7番目に入力された、DRAM200の先頭アドレス0x7000に記憶された演算対象データGに対してプロセッサ33が演算処理を実行する、ワーク領域526の使用権が付与されたパケット#7が格納されている状態である。なお、パケット#6にワーク領域520の使用権が付与されていないのは、有使用権パケット数=1であるため、すでに、同じプロセッサ33が演算処理を実行する優先度の高いパケット#7にワーク領域526の使用権が付与されているためである。また、格納領域215に、パケットキュー210に8番目に入力された、DRAM200の先頭アドレス0x8000に記憶された演算対象データHに対してプロセッサ32が演算処理を実行する、ワーク領域520の使用権が付与されていないパケット#8が格納されている状態である。また、格納領域216に、パケットキュー210に9番目に入力された、DRAM200の先頭アドレス0x9000に記憶された演算対象データIに対してプロセッサ31が演算処理を実行する、ワーク領域520の使用権が付与されていないパケット#9が格納されている状態である。   In the initial state of the packet queue 210, the processor 31 performs an arithmetic process on the operation target data D stored in the start address 0x4000 of the DRAM 200, which is input fourth in the packet queue 210 in the storage area 211. In this state, packet # 4 to which the right to use the work area 524 is granted is stored. In the storage area 212, the right to use the work area 525, in which the processor 32 executes arithmetic processing on the operation target data E stored in the leading address 0x5000 of the DRAM 200, which is input fifth in the packet queue 210, is used. In this state, the assigned packet # 5 is stored. In the storage area 213, the right to use the work area 520, in which the processor 33 executes arithmetic processing on the arithmetic target data F stored in the leading address 0x6000 of the DRAM 200, which is input sixth in the packet queue 210, is used. This is a state where unassigned packet # 6 is stored. In the storage area 214, the right to use the work area 526, in which the processor 33 executes arithmetic processing on the operation target data G stored in the leading address 0x7000 of the DRAM 200, which is input seventh in the packet queue 210, is used. In this state, the assigned packet # 7 is stored. Note that the use right of the work area 520 is not granted to the packet # 6 because the number of use right packets = 1, so that the same processor 33 has already assigned the high-priority packet # 7 for executing the arithmetic processing. This is because the right to use the work area 526 is given. In the storage area 215, the right to use the work area 520, in which the processor 32 executes the arithmetic process on the operation target data H stored in the first address 0x8000 of the DRAM 200, which is input eighth in the packet queue 210, is used. This is a state where unassigned packet # 8 is stored. In the storage area 216, the right to use the work area 520, in which the processor 31 performs arithmetic processing on the operation target data I stored in the leading address 0x9000 of the DRAM 200, which is input ninth in the packet queue 210, is used. This is a state where unassigned packet # 9 is stored.

また、ワークメモリ52の初期状態は、ワーク領域524に、すでにワーク領域524の使用権が付与されたパケット#4に対応する演算対象データDが、ワーク領域525に、すでにワーク領域525の使用権が付与されたパケット#5に対応する演算対象データEが、ワーク領域526に、すでにワーク領域526の使用権が付与されたパケット#7に対応する演算対象データGが、それぞれ記憶されている状態である。   The initial state of the work memory 52 is that the operation target data D corresponding to the packet # 4 to which the work area 524 is already granted the right to use the work area 524 is already stored in the work area 525 and the work area 525 is already used. The calculation target data E corresponding to packet # 5 to which is assigned is stored in the work area 526, and the calculation target data G corresponding to packet # 7 to which the right to use the work area 526 is already stored is stored. It is.

この初期状態から、プロセッサ31が、パケット#1に対応する演算対象データAに対する演算処理を完了し、次の演算処理をプロセッサ33に引き継ぐためにプロセッサ番号を「3」とし、パケット状態情報を「処理継続」に更新した優先度が「1」の演算処理後のパケット#1を、再エントリ判定部232に出力する場合を考える。なお、演算処理後のパケット#1のパケット状態情報は「処理継続」であるため、上述したように、プロセッサ31は、ワーク領域521に最終的に記憶されている次の演算対象データ(以下、「演算対象データA2」という)以外の演算処理後のパケット#1を、再エントリ判定部232に出力する(図15のステップS427参照)。   From this initial state, the processor 31 completes the arithmetic processing for the operation target data A corresponding to the packet # 1, sets the processor number to “3” in order to take over the next arithmetic processing to the processor 33, and sets the packet state information to “ Consider a case where the packet # 1 after the arithmetic processing with the priority “1” updated to “continue processing” is output to the re-entry determination unit 232. Since the packet state information of the packet # 1 after the arithmetic processing is “processing continuation”, as described above, the processor 31 determines that the next calculation target data (hereinafter referred to as the following calculation target data) that is finally stored in the work area 521. Packet # 1 after calculation processing other than “calculation target data A2” is output to the re-entry determination unit 232 (see step S427 in FIG. 15).

演算処理後のパケット#1を取得した再エントリ判定部232は、プロセッサ31に対応するプロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタ251の情報を、「未使用」を示す情報に更新する(図16のステップS521参照)。そして、再エントリ判定部232は、パケットキュー210に格納されている、演算処理後のパケット#1に含まれるプロセッサ番号と同じプロセッサ番号=3で、すでにワーク領域520の使用権が付与されたパケットの数を確認する。本第6の動作では、格納領域214に格納されたパケット#7が確認され、再エントリ判定部232は、パケットキュー210内に1つ以上(有使用権パケット数以上)存在すると判断する。そして、再エントリ判定部232は、パケットキュー210内のパケットにおいて最も優先度が低く、最もパケットキュー210内の最後尾に近いパケット#7に含まれる優先度と、演算処理後のパケット#1に含まれる優先度とを比較する。本第6の動作では、格納領域214に格納されたパケット#7の優先度の方が、演算処理後のパケット#1の優先度よりも低いため、再エントリ判定部232は、パケット#7に付与されたワーク領域526の使用権を開放し、演算処理後のパケット#1にワーク領域521の使用権を付与したまま、パケットキュー210に再度格納(エントリ)する(図16のステップS523参照)。なお、格納領域214に格納されたパケット#7は、一度ワーク領域526の使用権が付与された後、ワーク領域526の使用権が開放されたことになるが、パケット#7のパケット状態情報は「未処理」であるため、再エントリ判定部232は、DMA制御部60に対して、ワーク領域526の使用権が開放に伴う演算対象データGのDMA転送、すなわち、演算対象データGの退避を指示しない。   The re-entry determination unit 232 that has acquired the packet # 1 after the arithmetic processing updates the information in the processor management register 251 in the processor usage status management register 250 corresponding to the processor 31 to information indicating “unused” (FIG. 16 step S521). Then, the re-entry determination unit 232 stores a packet in which the use right of the work area 520 is already granted with the same processor number as the processor number included in the packet # 1 after the arithmetic processing stored in the packet queue 210. Check the number of In the sixth operation, the packet # 7 stored in the storage area 214 is confirmed, and the re-entry determination unit 232 determines that there is one or more (more than the number of used right packets) in the packet queue 210. Then, the re-entry determination unit 232 has the lowest priority in the packet in the packet queue 210, the priority included in the packet # 7 closest to the tail in the packet queue 210, and the packet # 1 after the arithmetic processing. Compare the included priorities. In the sixth operation, since the priority of the packet # 7 stored in the storage area 214 is lower than the priority of the packet # 1 after the arithmetic processing, the re-entry determination unit 232 sets the packet # 7 to the packet # 7. The use right of the assigned work area 526 is released, and it is stored (entry) again in the packet queue 210 while the use right of the work area 521 is given to the packet # 1 after the arithmetic processing (see step S523 in FIG. 16). . The packet # 7 stored in the storage area 214 is given the right to use the work area 526 and then the right to use the work area 526 is released. Since it is “unprocessed”, the re-entry determination unit 232 causes the DMA control unit 60 to perform DMA transfer of the operation target data G when the right to use the work area 526 is released, that is, save the operation target data G. Do not instruct.

また、キュー制御部222は、再エントリ判定部232によってプロセッサ31に対応するプロセッサ管理レジスタ251の情報が「未使用」になった、すなわち、プロセッサ31がパケットの演算処理を実行することができる状態になったことに応じて、パケットキュー210に格納済みのワーク領域520の使用権が付与されているパケットの内、プロセッサ番号=1で、最もパケットキュー210の先頭に近いパケット#4に対応した演算対象データDの、DRAM200からワーク領域524へのDMA転送が完了しているか否かを確認する(図14のステップS323参照)。そして、キュー制御部222は、ワーク領域524への演算対象データDのDMA転送が完了した後、パケットキュー210に、パケット#4をプロセッサ31に出力させる。また、キュー制御部222は、プロセッサ31に対応するプロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタ251の情報を、「使用中」を示す情報に更新する(図14のステップS324参照)。   In addition, the queue control unit 222 indicates that the information in the processor management register 251 corresponding to the processor 31 has become “unused” by the re-entry determination unit 232, that is, the processor 31 can execute the packet calculation process. As a result, among the packets to which the right to use the work area 520 stored in the packet queue 210 is granted, the processor number = 1 corresponds to the packet # 4 closest to the head of the packet queue 210. It is confirmed whether or not the DMA transfer of the operation target data D from the DRAM 200 to the work area 524 is completed (see step S323 in FIG. 14). Then, the queue control unit 222 causes the packet queue 210 to output the packet # 4 to the processor 31 after the DMA transfer of the calculation target data D to the work area 524 is completed. Further, the queue control unit 222 updates the information in the processor management register 251 in the processor usage status management register 250 corresponding to the processor 31 to information indicating “in use” (see step S324 in FIG. 14).

その後、プロセッサ31は、入力されたパケット#4に含まれるワークメモリ番号を対応するアドレス変換部401に出力し、プロセッサ31とワーク領域524とが1対1に接続された後(図15のステップS422参照)、パケット#4に対応した演算対象データDに対する演算処理を実行する(図15のステップS424参照)。   Thereafter, the processor 31 outputs the work memory number included in the input packet # 4 to the corresponding address conversion unit 401, and after the processor 31 and the work area 524 are connected one-to-one (step in FIG. 15). (Refer to S422), the calculation process is performed on the calculation target data D corresponding to the packet # 4 (see Step S424 in FIG. 15).

また、キュー制御部222は、再エントリ判定部232によってワーク領域526に対応するワークメモリ使用状況管理レジスタ240内のワークメモリ管理レジスタ246の情報が「未使用」になり、ワーク領域526の使用権を付与することができる状態になったことに応じて、パケットキュー210に格納済みのワーク領域520の使用権が付与されていないパケットの内、プロセッサ番号=1で、最もパケットキュー210の先頭に近いパケット#9に、ワーク領域526の使用権を付与する(図13のステップS224参照)。これは、格納領域211に格納されていたパケット#4がプロセッサ31に出力されたことにより、同じプロセッサ番号=1が含まれ、すでにワーク領域520の使用権が付与されているパケットが、パケットキュー210内に1つ以上(有使用権パケット数以上)存在しなくなった、つまり、「0」になったためである。   In addition, the queue control unit 222 causes the re-entry determination unit 232 to change the information in the work memory management register 246 in the work memory usage status management register 240 corresponding to the work area 526 to “unused”, and the right to use the work area 526 In the packet queue 210 that is not granted the right to use the work area 520 stored in the packet queue 210, the processor number = 1 and the packet queue 210 at the top of the packet queue 210. The right to use the work area 526 is granted to the near packet # 9 (see step S224 in FIG. 13). This is because the packet # 4 stored in the storage area 211 is output to the processor 31, so that a packet that includes the same processor number = 1 and is already granted the right to use the work area 520 is transferred to the packet queue. This is because one or more (more than the number of use right packets) does not exist in 210, that is, “0”.

続いて、キュー制御部222は、ワーク領域526の使用権を付与したパケット#9に含まれる先頭アドレスおよびデータサイズを確認し、確認した先頭アドレスからデータサイズ分の演算対象データIの、DRAM200から対応するワーク領域526へのDMA転送を、DMA制御部60に指示する(図13のステップS225参照)。   Subsequently, the queue control unit 222 confirms the start address and the data size included in the packet # 9 to which the right to use the work area 526 is granted, and the calculation target data I corresponding to the data size from the confirmed start address from the DRAM 200. The DMA control unit 60 is instructed to perform DMA transfer to the corresponding work area 526 (see step S225 in FIG. 13).

図18(c)は、このときのパケットキュー210およびワークメモリ52内のパケットの状態を示している。より具体的には、ワークメモリ52の状態は、ワーク領域521に、プロセッサ31がパケット#1の演算対象データAに対する演算処理を実行した結果の演算対象データA2が記憶され(残っており)、ワーク領域524に、パケットキュー210から入力された、演算対象データDに対してプロセッサ31が演算処理を実行するパケット#4が記憶され、ワーク領域526に、DMA制御部60によってDMA転送されたパケット#9に対応する演算対象データIが記憶されている状態となっている。なお、ワークメモリ52内のワーク領域522およびワーク領域523は、プロセッサ32によるパケット#2に対応した演算対象データBに対する演算処理、およびプロセッサ33によるパケット#3に対応した演算対象データCに対する演算処理を完了していないため、初期状態と同様である。また、ワークメモリ52内のワーク領域525も、プロセッサ32による演算処理の実行に使用されていないため、初期状態と同様である。   FIG. 18C shows the state of packets in the packet queue 210 and the work memory 52 at this time. More specifically, the state of the work memory 52 is stored in the work area 521 as operation target data A2 as a result of the processor 31 executing operation processing on the operation target data A of packet # 1 (remaining). The work area 524 stores a packet # 4 input from the packet queue 210 and executed by the processor 31 on the operation target data D. The packet transferred to the work area 526 by the DMA control unit 60 is DMA-transferred. The calculation target data I corresponding to # 9 is stored. The work area 522 and the work area 523 in the work memory 52 are calculated by the processor 32 for the calculation target data B corresponding to the packet # 2, and the processor 33 performs the calculation process for the calculation target data C corresponding to the packet # 3. This is the same as in the initial state. Further, the work area 525 in the work memory 52 is not used for the execution of the arithmetic processing by the processor 32, and thus is similar to the initial state.

また、パケットキュー210の状態は、格納領域211に格納されていたパケット#4がプロセッサ31に出力されたことにより、格納領域211にはパケット#5が格納され、同様に、格納領域212にはパケット#6が格納され、格納領域213にはワーク領域526の使用権が開放されたパケット#7が格納されている状態になる。また、格納領域214にはパケット#8が格納され、格納領域215にはワーク領域526の使用権が付与されたパケット#9が格納され、パケットキュー210内の最後尾の格納領域216には、再エントリ判定部232によって再度格納(エントリ)された演算処理後のパケット#1が格納されている状態になる。   The packet queue 210 is in a state where the packet # 4 stored in the storage area 211 is output to the processor 31 and the packet # 5 is stored in the storage area 211. Packet # 6 is stored, and packet # 7 in which the right to use work area 526 is released is stored in storage area 213. The storage area 214 stores packet # 8, the storage area 215 stores packet # 9 to which the right to use the work area 526 is stored, and the last storage area 216 in the packet queue 210 stores The packet # 1 after the arithmetic processing stored again (entry) by the re-entry determining unit 232 is stored.

ここで、図18(b)に示した初期状態から、プロセッサ31が、パケット#1に対応する演算対象データAに対する演算処理を完了し、次の演算処理をプロセッサ33に引き継ぐためにプロセッサ番号を「3」とし、パケット状態情報を「処理継続」に更新した演算処理後のパケット#1を再エントリ判定部232に出力する場合において、演算処理後のパケット#1の優先度が異なる場合の一例について説明する。図19は、本第6の実施形態の演算装置12の動作において優先度が異なる場合のそれぞれの処理段階でのパケットキュー210およびワークメモリ52内のパケットの状態の一例を示した図である。図19(a)には、優先度が「2」である場合、図19(b)には、優先度が「3」である場合における、図18(c)に対応したそれぞれのパケットキュー210およびワークメモリ52内のパケットの状態の一例を示している。   Here, from the initial state shown in FIG. 18B, the processor 31 completes the arithmetic processing for the operation target data A corresponding to the packet # 1, and sets the processor number to take over the next arithmetic processing to the processor 33. An example of the case where the priority of packet # 1 after the arithmetic processing is different in the case where packet # 1 after the arithmetic processing whose packet state information is updated to “continue processing” is output to the re-entry determination unit 232. Will be described. FIG. 19 is a diagram illustrating an example of the state of the packet in the packet queue 210 and the work memory 52 at each processing stage when the priorities are different in the operation of the arithmetic unit 12 of the sixth embodiment. In FIG. 19A, when the priority is “2”, FIG. 19B shows each packet queue 210 corresponding to FIG. 18C when the priority is “3”. An example of the state of a packet in the work memory 52 is shown.

まず、図18(b)に示した初期状態から、プロセッサ31が、パケット#1に対応する演算対象データAに対する演算処理を完了し、次の演算処理をプロセッサ33に引き継ぐためにプロセッサ番号を「3」とし、パケット状態情報を「処理継続」に更新した優先度が「2」の演算処理後のパケット#1を、再エントリ判定部232に出力する場合について説明する。   First, from the initial state shown in FIG. 18B, the processor 31 completes the calculation process for the calculation target data A corresponding to the packet # 1, and the processor number “ 3, and a case where the packet # 1 after the arithmetic processing with the priority “2” updated to “continue processing” in the packet state information is output to the re-entry determination unit 232 will be described.

優先度=2の演算処理後のパケット#1を取得した再エントリ判定部232は、優先度=1の演算処理後のパケット#1を取得した場合と同様に、格納領域214に格納されたパケット#7を、優先度とを比較するパケットとして確認する。そして、再エントリ判定部232は、パケット#7に含まれる優先度と、優先度=2の演算処理後のパケット#1に含まれる優先度とを比較した結果、それぞれのパケットの優先度が同じであるため、パケット#7に付与されたワーク領域526の使用権を開放せず、優先度=2の演算処理後のパケット#1に対応する演算処理後の演算対象データA2のDMA転送、すなわち、演算対象データA2のDRAM200への退避を指示する。これは、優先度=2の演算処理後のパケット#1にワーク領域521の使用権を付与したまま、パケットキュー210に再度格納(エントリ)すると、パケットキュー210に格納されているプロセッサ番号=3で、すでにワーク領域520の使用権が付与されたパケットの数が1つ以上(有使用権パケット数以上)存在してしまうことになるためである。その後、再エントリ判定部232は、ワーク領域521に記憶された演算対象データA2のDRAM200へのDMA転送が完了した後に、優先度=2の演算処理後のパケット#1に付与されたワーク領域521の使用権を開放する。   The re-entry determination unit 232 that acquired the packet # 1 after the arithmetic processing with the priority = 2 performs the packet stored in the storage area 214 in the same manner as when the packet # 1 after the arithmetic processing with the priority = 1 is acquired. Confirm # 7 as a packet to be compared with the priority. The re-entry determination unit 232 compares the priority included in the packet # 7 and the priority included in the packet # 1 after the calculation process of priority = 2, and as a result, the priority of each packet is the same. Therefore, the right to use the work area 526 given to the packet # 7 is not released, and the DMA transfer of the computation target data A2 after the computation processing corresponding to the packet # 1 after the computation processing with the priority = 2, that is, Instruct to save the calculation target data A2 to the DRAM 200. This means that if the right of use of the work area 521 is given to the packet # 1 after the calculation process with the priority = 2, the processor number stored in the packet queue 210 = 3 when the packet is stored again (entry) in the packet queue 210. This is because the number of packets to which the right to use the work area 520 has already been granted is one or more (more than the number of used right packets). After that, the re-entry determination unit 232 completes the DMA transfer of the calculation target data A2 stored in the work area 521 to the DRAM 200, and then the work area 521 given to the packet # 1 after the calculation process with priority = 2. The right to use is released.

また、キュー制御部222は、再エントリ判定部232によってワーク領域521に対応するワークメモリ使用状況管理レジスタ240内のワークメモリ管理レジスタ241の情報が「未使用」になり、ワーク領域521の使用権を付与することができる状態になったことに応じて、パケットキュー210に格納済みのワーク領域520の使用権が付与されていないパケットの内、プロセッサ番号=1で、最もパケットキュー210の先頭に近いパケット#9に、ワーク領域521の使用権を付与する(図13のステップS224参照)。これは、格納領域211に格納されていたパケット#4がプロセッサ31に出力されたことにより、同じプロセッサ番号=1が含まれ、すでにワーク領域520の使用権が付与されているパケットが、パケットキュー210内に1つ以上(有使用権パケット数以上)存在しなくなった、つまり、「0」になったためである。   In addition, the queue control unit 222 uses the re-entry determination unit 232 to change the information in the work memory management register 241 in the work memory usage status management register 240 corresponding to the work area 521 to “unused”, so that the right to use the work area 521 In the packet queue 210 that is not granted the right to use the work area 520 stored in the packet queue 210, the processor number = 1 and the packet queue 210 at the top of the packet queue 210. The right to use the work area 521 is given to the near packet # 9 (see step S224 in FIG. 13). This is because the packet # 4 stored in the storage area 211 is output to the processor 31, so that a packet that includes the same processor number = 1 and is already granted the right to use the work area 520 is transferred to the packet queue. This is because one or more (more than the number of use right packets) does not exist in 210, that is, “0”.

続いて、キュー制御部222は、ワーク領域521の使用権を付与したパケット#9に含まれる先頭アドレスおよびデータサイズを確認し、確認した先頭アドレスからデータサイズ分の演算対象データIの、DRAM200から対応するワーク領域521へのDMA転送を、DMA制御部60に指示する(図13のステップS225参照)。   Subsequently, the queue control unit 222 confirms the head address and the data size included in the packet # 9 to which the right to use the work area 521 is granted, and the calculation target data I corresponding to the data size from the confirmed head address is read from the DRAM 200. The DMA control unit 60 is instructed to perform DMA transfer to the corresponding work area 521 (see step S225 in FIG. 13).

これにより、パケットキュー210およびワークメモリ52内のパケットの状態は、図19(a)に示した状態になる。より具体的には、ワークメモリ52の状態は、ワーク領域521に、DMA制御部60によってDMA転送されたパケット#9に対応する演算対象データIが記憶され、ワーク領域524に、パケットキュー210から入力された、演算対象データDに対してプロセッサ31が演算処理を実行するパケット#4が記憶されている状態となっている。なお、ワークメモリ52内のワーク領域522およびワーク領域523は、プロセッサ32によるパケット#2に対応した演算対象データBに対する演算処理、およびプロセッサ33によるパケット#3に対応した演算対象データCに対する演算処理を完了していないため、初期状態と同様である。また、ワークメモリ52内のワーク領域525およびワーク領域526も、プロセッサ32およびプロセッサ33による演算処理の実行に使用されていないため、初期状態と同様である。   Thereby, the state of the packet in the packet queue 210 and the work memory 52 becomes the state shown in FIG. More specifically, the work memory 52 is stored in the work area 521 in which the calculation target data I corresponding to the packet # 9 DMA-transferred by the DMA control unit 60 is stored, and in the work area 524 from the packet queue 210. A packet # 4 is stored in which the processor 31 executes arithmetic processing on the input operation target data D. The work area 522 and the work area 523 in the work memory 52 are calculated by the processor 32 for the calculation target data B corresponding to the packet # 2, and the processor 33 performs the calculation process for the calculation target data C corresponding to the packet # 3. This is the same as in the initial state. Also, the work area 525 and the work area 526 in the work memory 52 are not used for execution of arithmetic processing by the processor 32 and the processor 33, and thus are the same as in the initial state.

また、パケットキュー210の状態は、格納領域211に格納されていたパケット#4がプロセッサ31に出力されたことにより、格納領域211にはパケット#5が格納され、同様に、格納領域212にはパケット#6が格納され、格納領域213にはワーク領域526の使用権が付与されたままのパケット#7が格納されている状態になる。また、格納領域214にはパケット#8が格納され、格納領域215にはワーク領域521の使用権が付与されたパケット#9が格納され、パケットキュー210内の最後尾の格納領域216には、再エントリ判定部232によって再度格納(エントリ)された、ワーク領域521の使用権が開放された演算処理後のパケット#1が格納されている状態になる。   The packet queue 210 is in a state where the packet # 4 stored in the storage area 211 is output to the processor 31 and the packet # 5 is stored in the storage area 211. The packet # 6 is stored, and the storage area 213 stores the packet # 7 with the right to use the work area 526 still stored. The storage area 214 stores packet # 8, the storage area 215 stores packet # 9 to which the right to use the work area 521 is stored, and the last storage area 216 in the packet queue 210 stores The packet # 1 after the arithmetic processing in which the right to use the work area 521 is released and stored (entry) again by the re-entry determination unit 232 is stored.

なお、上記の説明では、再エントリ判定部232が、優先度が同じパケット#7を確認したときに、ワーク領域521の使用権を開放する場合について説明したが、開放したワーク領域521の使用権を付与するパケット#9が格納された格納領域215よりも前のワーク領域520に格納されているそれぞれのパケットの演算処理が完了したときにも、ワーク領域520が開放されると考えられる。このため、再エントリ判定部232は、ワーク領域521の使用権を開放する演算処理後のパケット#1のパケット状態情報が「処理継続」であることを考慮し、すぐにワーク領域521の使用権を開放せず、例えば、パケット#9をプロセッサ30に出力する順番など、予め定めた条件に基づいて、演算処理後のパケット#1にワーク領域521の使用権を付与したまま、パケットキュー210に再度格納(エントリ)する構成であってもよい。   In the above description, a case has been described in which the re-entry determination unit 232 releases the right to use the work area 521 when the packet # 7 having the same priority is confirmed. However, the right to use the work area 521 that has been released has been described. It is considered that the work area 520 is also released when the calculation processing of each packet stored in the work area 520 prior to the storage area 215 in which the packet # 9 to which the packet # 9 is stored is completed. Therefore, the re-entry determination unit 232 immediately considers that the packet state information of the packet # 1 after the arithmetic processing for releasing the use right of the work area 521 is “processing continuation”, and immediately uses the work area 521. For example, based on a predetermined condition such as the order in which the packet # 9 is output to the processor 30, the packet # 1 after the arithmetic processing is assigned to the packet queue 210 with the right to use the work area 521 being granted. It may be configured to store (entry) again.

次に、図18(b)に示した初期状態から、プロセッサ31が、パケット#1に対応する演算対象データAに対する演算処理を完了し、次の演算処理をプロセッサ33に引き継ぐためにプロセッサ番号を「3」とし、パケット状態情報を「処理継続」に更新した優先度が「3」の演算処理後のパケット#1を、再エントリ判定部232に出力する場合について説明する。   Next, from the initial state shown in FIG. 18B, the processor 31 completes the arithmetic processing for the operation target data A corresponding to the packet # 1, and sets the processor number to take over the next arithmetic processing to the processor 33. A case will be described in which “3” is output and packet # 1 after the arithmetic processing with the priority “3” updated to “continue processing” in the packet state information is output to the re-entry determination unit 232.

優先度=3の演算処理後のパケット#1を取得した再エントリ判定部232は、優先度=1の演算処理後のパケット#1を取得した場合と同様に、格納領域214に格納されたパケット#7を、優先度とを比較するパケットとして確認する。そして、再エントリ判定部232は、パケット#7に含まれる優先度と、優先度=3の演算処理後のパケット#1に含まれる優先度とを比較した結果、演算処理後のパケット#1の優先度の方が、パケット#7の優先度よりも低いため、パケット#7に付与されたワーク領域526の使用権を開放せず、優先度=3の演算処理後のパケット#1に対応する演算処理後の演算対象データA2のDRAM200への退避を指示する。その後、再エントリ判定部232は、ワーク領域521に記憶された演算対象データA2のDRAM200へのDMA転送が完了した後に、優先度=3の演算処理後のパケット#1に付与されたワーク領域521の使用権を開放する。   The re-entry determination unit 232 that acquired the packet # 1 after the arithmetic processing with the priority = 3 receives the packet stored in the storage area 214 in the same manner as when the packet # 1 after the arithmetic processing with the priority = 1 is acquired. Confirm # 7 as a packet to be compared with the priority. Then, the re-entry determination unit 232 compares the priority included in the packet # 7 and the priority included in the packet # 1 after the arithmetic processing with the priority = 3, and as a result, the re-entry determining unit 232 Since the priority is lower than the priority of the packet # 7, the right to use the work area 526 given to the packet # 7 is not released, and it corresponds to the packet # 1 after the arithmetic processing of the priority = 3. An instruction to save the calculation target data A2 after the calculation processing to the DRAM 200 is given. After that, the re-entry determination unit 232 completes the DMA transfer of the calculation target data A2 stored in the work area 521 to the DRAM 200, and then the work area 521 given to the packet # 1 after the calculation process with the priority = 3. The right to use is released.

また、キュー制御部222は、ワーク領域521の使用権を付与することができる状態になったことに応じて、優先度=2の演算処理後のパケット#1を取得した場合と同様に、パケット#9にワーク領域521の使用権を付与する(図13のステップS224参照)。続いて、キュー制御部222は、優先度=2の演算処理後のパケット#1を取得した場合と同様に、演算対象データIの、DRAM200から対応するワーク領域521へのDMA転送を、DMA制御部60に指示する(図13のステップS225参照)。   Further, in response to the fact that the right to use the work area 521 can be granted, the queue control unit 222 receives the packet # 1 after the arithmetic processing of the priority = 2, The right to use the work area 521 is given to # 9 (see step S224 in FIG. 13). Subsequently, the queue control unit 222 performs DMA control on the DMA transfer of the calculation target data I from the DRAM 200 to the corresponding work area 521 in the same manner as when the packet # 1 after the calculation process with the priority = 2 is acquired. The unit 60 is instructed (see step S225 in FIG. 13).

これにより、パケットキュー210およびワークメモリ52内のパケットの状態は、図19(b)に示した状態になる。なお、図19(b)に示したパケットキュー210およびワークメモリ52内のパケットの状態は、演算処理後のパケットの優先度以外は、図19(a)に示した優先度=2であるときのパケットキュー210およびワークメモリ52内のパケットの状態と同様であるため、詳細な説明は省略する。   As a result, the state of the packet in the packet queue 210 and the work memory 52 becomes the state shown in FIG. Note that the state of the packet in the packet queue 210 and the work memory 52 shown in FIG. 19B is when the priority shown in FIG. 19A is 2 except for the priority of the packet after the arithmetic processing. The packet queue 210 and the state of the packet in the work memory 52 are the same as those in FIG.

なお、以降の動作においては、同じプロセッサ33が演算処理を実行するパケットにおいて、優先度が同じでパケットキュー210の先頭に近いパケット#6に、演算処理後のパケット#1よりも先にワーク領域520の使用権が付与される。   In the subsequent operation, in the packet for which the same processor 33 executes the arithmetic processing, the work area is set to the packet # 6 having the same priority and close to the head of the packet queue 210 before the packet # 1 after the arithmetic processing. 520 usage rights are granted.

このように、第6の実施形態の演算装置12でも、第5の実施形態の演算装置12と同様に、演算装置12に備えたワークメモリ52内のそれぞれのワーク領域520の使用状況と、演算装置12に備えたそれぞれのプロセッサ30の使用状況を常時監視し、監視した状況に応じて、それぞれのパケットに対応する演算対象データを、DRAM200とワークメモリ52との間でDMA転送する。そして、演算装置12は、第5の実施形態の演算装置12と同様に、それぞれのパケットを対応するプロセッサ30に割り当て、演算処理を実行させる。このとき、プロセッサ30とワーク領域520とは1対1で対応するため、第5の実施形態の演算装置12と同様に、それぞれのプロセッサ30でワーク領域520の競合が発生することなく、外部ブロック100から入力された複数のパケットに対する一連の演算処理を、それぞれのプロセッサ30で分担して並列に実行することができる。   As described above, in the arithmetic device 12 of the sixth embodiment, as in the arithmetic device 12 of the fifth embodiment, the usage status of each work area 520 in the work memory 52 provided in the arithmetic device 12 and the arithmetic The usage status of each processor 30 provided in the apparatus 12 is constantly monitored, and the calculation target data corresponding to each packet is DMA-transferred between the DRAM 200 and the work memory 52 according to the monitored status. Then, similarly to the arithmetic device 12 of the fifth embodiment, the arithmetic device 12 assigns each packet to the corresponding processor 30 to execute arithmetic processing. At this time, since the processor 30 and the work area 520 have a one-to-one correspondence, as in the arithmetic device 12 of the fifth embodiment, the content of the work area 520 does not occur in each processor 30, and the external block A series of arithmetic processing on a plurality of packets input from 100 can be shared by each processor 30 and executed in parallel.

また、演算装置12では、それぞれのパケットの優先度に基づいて、それぞれのパケットに対して付与するワーク領域の使用権を制御する。そして、パケットキュー210に格納された順番が遅いパケットであっても、優先度が高いパケットには早いタイミングでワーク領域520の使用権を付与する。つまり、パケットキュー210に格納された順番よりもパケットの優先度に重点をおいて(パケットの優先度>パケットキュー210に格納された順番)、ワーク領域520の使用権を付与する順番を制御する。これにより、第6の実施形態の演算装置12では、優先度が高いパケット対応するワーク領域520の使用権を優先的に付与し、演算対象データを退避させる頻度を少なくし、演算対象データを転送することによって発生するオーバーヘッド時間を削減することができる。このことにより、第6の実施形態の演算装置12では、優先度が高いパケットに対する一連の演算処理を早いタイミングで完了させることができる。なお、本第6の実施形態におけるパケットの優先度に基づいてワーク領域の使用権を付与する順番を制御するという考え方は、第1〜第3の実施形態のいずれの演算装置10にも、第4の実施形態の演算装置11にも適用することができる。   Further, the arithmetic unit 12 controls the right to use the work area to be assigned to each packet based on the priority of each packet. Even if the packets stored in the packet queue 210 are late in order, the right to use the work area 520 is granted to the packets with high priority at an early timing. That is, priority is given to the packet priority over the order stored in the packet queue 210 (packet priority> order stored in the packet queue 210), and the order in which the right to use the work area 520 is given is controlled. . Thereby, in the arithmetic device 12 of the sixth embodiment, the right to use the work area 520 corresponding to a packet having a high priority is preferentially given, the frequency of saving the operation target data is reduced, and the operation target data is transferred. By doing so, the overhead time generated can be reduced. As a result, the arithmetic device 12 of the sixth embodiment can complete a series of arithmetic processing for a packet with high priority at an early timing. Note that the concept of controlling the order in which work area usage rights are granted based on the priority of packets in the sixth embodiment is the same as that in any of the arithmetic devices 10 of the first to third embodiments. The present invention can also be applied to the arithmetic device 11 of the fourth embodiment.

上記に述べたとおり、本発明を実施するための形態によれば、複数の処理演算部(プロセッサ)で複数のデータ記憶部(ワーク領域)を共有する演算装置において、要求された演算処理の内容を表す複数のパケットに対する演算処理を並列に実行する際に、それぞれのデータ記憶部の使用状況とそれぞれの処理演算部の使用状況を常時監視し、監視した状況に応じて、それぞれのパケットに対する演算処理をそれぞれの処理演算部に割り当てる。このとき、本発明を実施するための形態では、処理演算部と、演算処理を実行する際に使用するデータ記憶部とが1対1に対応するように、それぞれのパケットに付与するデータ記憶部の使用権を動的に変更する。これにより、本発明を実施するための形態では、それぞれの処理演算部が、対応するパケットに対する演算処理を実行する際に、処理演算部同士での同じデータ記憶部に対するアクセスが競合することなく、要求された複数の演算処理を並列に実行することができる。つまり、それぞれの処理演算部は、使用権が付与されたデータ記憶部を独占して使用することができる。   As described above, according to the embodiment for carrying out the present invention, the content of requested arithmetic processing in the arithmetic device that shares a plurality of data storage units (work areas) with a plurality of processing arithmetic units (processors). When executing arithmetic processing for a plurality of packets representing the data in parallel, the usage status of each data storage unit and the usage status of each processing arithmetic unit are constantly monitored, and the calculation for each packet is performed according to the monitored status. A process is assigned to each processing operation unit. At this time, in the form for implementing this invention, the data storage part provided to each packet so that a process calculating part and the data storage part used when performing a calculation process may correspond to 1 to 1 Change usage rights dynamically. Thereby, in the form for implementing this invention, when each process calculating part performs the calculation process with respect to a corresponding packet, the access with respect to the same data storage part between process calculating parts does not compete, A plurality of requested arithmetic processes can be executed in parallel. That is, each processing operation unit can exclusively use the data storage unit to which the usage right is given.

また、本発明を実施するための形態によれば、同じ処理演算部が演算処理を行う予め定めた閾値以上の複数のパケットに、データ記憶部の使用権を付与しない。すなわち、本発明を実施するための形態では、データ記憶部の使用権が付与された同一の処理演算部が処理するパケットの数が予め定めた閾値以上とならないように、データ記憶部の使用権の付与を制御する。このとき、本発明を実施するための形態では、それぞれのパケットにおける演算処理の優先度も考慮する。これにより、本発明を実施するための形態では、特定の処理演算部が演算処理を実行するパケットが、データ記憶部の使用権を占有してしまうことを防止することができる。このことにより、本発明を実施するための形態では、それぞれの処理演算部によるデータ記憶部の競合が発生することなく、それぞれの処理演算部の稼働率を向上させることができる。   Moreover, according to the form for implementing this invention, the use right of a data storage part is not provided to the several packet more than the predetermined threshold value which the same process calculating part performs arithmetic processing. That is, in the embodiment for carrying out the present invention, the right to use the data storage unit is used so that the number of packets processed by the same processing operation unit to which the right to use the data storage unit is given does not exceed a predetermined threshold. Control the grant of At this time, in the embodiment for carrying out the present invention, the priority of the arithmetic processing in each packet is also taken into consideration. Thereby, in the form for implementing this invention, it can prevent that the packet which a specific process calculating part performs a calculation process occupies the usage right of a data storage part. Thereby, in the form for implementing this invention, the operation rate of each process calculating part can be improved, without the competition of the data storage part by each process calculating part generating.

また、本発明を実施するための形態によれば、処理演算部がデータ記憶部をアクセスする際のアドレスを、データ記憶部のアドレスに変換する。これにより、本発明を実施するための形態では、それぞれの処理演算部は、パケットに対する演算処理を実行する際に使用するデータ記憶部のアドレスを考慮することなく(意識することなく)、いずれのデータ記憶部を使用する場合でも、同様に演算処理を実行することができる。   Moreover, according to the form for implementing this invention, the address at the time of a process calculating part accessing a data storage part is converted into the address of a data storage part. Thereby, in the form for implementing this invention, each process calculating part does not consider the address of the data storage part used when performing the calculation process with respect to a packet (without being conscious), Even when the data storage unit is used, the arithmetic processing can be executed in the same manner.

なお、本実施形態においては、例えば、キュー制御部220がパケットキュー210に格納されたそれぞれのパケットを、対応するプロセッサ30に出力させる構成について説明したが、パケットをプロセッサ30に出力する際の動作は、本発明を実施するための形態の動作に限定されるものではない。例えば、キュー制御部220が、出力することができるパケットがパケットキュー210内に存在することを対応するプロセッサ30に通知し、この通知を受け取ったプロセッサ30が、パケットキュー210からパケットを取得する、すなわち、パケットを読み出す構成であってもよい。   Note that, in the present embodiment, for example, the configuration in which the queue control unit 220 outputs each packet stored in the packet queue 210 to the corresponding processor 30 has been described, but the operation when outputting the packet to the processor 30 is described. Is not limited to the operation of the embodiment for carrying out the present invention. For example, the queue control unit 220 notifies the corresponding processor 30 that a packet that can be output exists in the packet queue 210, and the processor 30 that has received this notification acquires the packet from the packet queue 210. That is, a configuration for reading a packet may be used.

また、本実施形態においては、例えば、プロセッサ30が再エントリ判定部230に出力した演算処理後のパケットをパケットキュー210に再度格納(エントリ)した後に、キュー制御部220がパケットキュー210に格納されたパケットを対応するプロセッサ30に出力するという順番で説明した。しかし、上述したように、演算装置10に備えたそれぞれの構成要素は、それぞれの処理を常時平行して行っている。従って、パケットをパケットキュー210に再度格納(エントリ)するタイミングと、パケットキュー210からパケットをプロセッサ30に出力するタイミングとは、本発明を実施するための形態の動作に限定されるものではない。例えば、キュー制御部220がパケットキュー210に格納されたパケットを対応するプロセッサ30に出力した後に、プロセッサ30が再エントリ判定部230に出力した演算処理後のパケットをパケットキュー210に再度格納(エントリ)するという順番であってもよい。   In the present embodiment, for example, after the processor 30 outputs (after entering) the post-computation packet output to the re-entry determination unit 230 in the packet queue 210, the queue control unit 220 stores the packet in the packet queue 210. In this order, the packets are output to the corresponding processor 30. However, as described above, each component included in the arithmetic device 10 always performs each process in parallel. Therefore, the timing at which the packet is stored (entry) again in the packet queue 210 and the timing at which the packet is output from the packet queue 210 to the processor 30 are not limited to the operation of the mode for carrying out the present invention. For example, after the queue control unit 220 outputs the packet stored in the packet queue 210 to the corresponding processor 30, the operation-processed packet output by the processor 30 to the re-entry determination unit 230 is stored again in the packet queue 210 (entry ).

なお、本実施形態においては、ワークメモリを演算装置内に備えた構成について説明したが、ワークメモリを備える位置は、本発明を実施するための形態の動作に限定されるものではなく、ワークメモリを演算装置の外部に備える構成にすることもできる。また、ワークメモリ内のワーク領域の数も、本発明を実施するための形態の動作に限定されるものではない。この場合、ワークメモリ使用状況管理レジスタ240内のワークメモリ管理レジスタの数は、ワークメモリ内のワーク領域の数に応じて適宜変更される。また同様に、キュー内の格納領域の数も、本発明を実施するための形態の動作に限定されるものではない。   In the present embodiment, the configuration in which the work memory is provided in the arithmetic device has been described. However, the position at which the work memory is provided is not limited to the operation of the embodiment for carrying out the present invention. Can be provided outside the arithmetic unit. Further, the number of work areas in the work memory is not limited to the operation of the mode for carrying out the present invention. In this case, the number of work memory management registers in the work memory usage status management register 240 is appropriately changed according to the number of work areas in the work memory. Similarly, the number of storage areas in the queue is not limited to the operation of the embodiment for carrying out the present invention.

また、本実施形態においては、3つのプロセッサ31〜プロセッサ33を備えた演算装置の一例について説明したが、演算装置に備えるプロセッサの数は、本発明を実施するための形態の動作に限定されるものではなく、演算装置内に、2つまたは3つよりもさらに多くのプロセッサを搭載した構成であっても同様に、本発明の考え方を適用することができる。この場合、プロセッサ使用状況管理レジスタ250内のプロセッサ管理レジスタや、ローカルメモリ300、アドレス変換部400またはアドレス変換部410などの数は、演算装置に備えたプロセッサの数に応じて適宜変更される。   In this embodiment, an example of an arithmetic device including three processors 31 to 33 has been described. However, the number of processors included in the arithmetic device is limited to the operation of the embodiment for carrying out the present invention. The concept of the present invention can be similarly applied to a configuration in which more processors than two or three are mounted in the arithmetic device. In this case, the number of processor management registers in the processor usage status management register 250, the local memory 300, the address conversion unit 400, or the address conversion unit 410 is appropriately changed according to the number of processors provided in the arithmetic device.

また、本実施形態においては、それぞれのプロセッサ30の処理機能に関して説明していないが、例えば、演算装置10を、撮像装置などの撮像システム内に備えている場合には、それぞれのプロセッサ30は、撮像システムにおける画像処理を行う処理機能を持っていると考えることができる。   In the present embodiment, the processing function of each processor 30 is not described. For example, when the arithmetic device 10 is provided in an imaging system such as an imaging device, each processor 30 It can be considered that the imaging system has a processing function for performing image processing.

また、本実施形態においては、演算装置10に備えたそれぞれのプロセッサ30が持っている処理機能について説明していない。しかし、例えば、演算装置10が、撮像装置などの撮像システムに備えた画像処理装置である場合には、それぞれのプロセッサ30の処理機能は、YC変換処理、ノイズ除去処理、歪み補正処理、キズ補正処理、画像圧縮処理など、撮像システムにおける様々な画像処理を行うことができる処理機能であると考えられる。また、例えば、演算装置10が、撮像装置などの撮像システムに備えた画像処理装置内の画像認識部など、撮像システムにおける画像処理の一部の処理部である場合には、それぞれのプロセッサ30の処理機能は、画像処理装置内の一部の処理部において種々の処理を行うための処理機能であると考えられる。   Further, in the present embodiment, the processing functions possessed by the respective processors 30 included in the arithmetic device 10 are not described. However, for example, when the arithmetic device 10 is an image processing device provided in an imaging system such as an imaging device, the processing functions of the respective processors 30 are YC conversion processing, noise removal processing, distortion correction processing, and scratch correction. It is considered that this is a processing function capable of performing various image processing in the imaging system such as processing and image compression processing. Further, for example, when the arithmetic device 10 is a part of image processing in the imaging system, such as an image recognition unit in an image processing device provided in an imaging system such as an imaging device, each processor 30 The processing function is considered to be a processing function for performing various processes in some processing units in the image processing apparatus.

以上、本発明の実施形態について、図面を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲においての種々の変更も含まれる。   The embodiment of the present invention has been described above with reference to the drawings. However, the specific configuration is not limited to this embodiment, and includes various modifications within the scope of the present invention. It is.

10,11,12・・・演算装置
20,21,22・・・パケット管理部
210,260・・・パケットキュー
211,212,213,214,215,261,262,263,264,265・・・格納領域(パケットキュー)
220,221,222・・・キュー制御部(パケット管理部,キュー制御部)
230,232・・・再エントリ制御部(パケット管理部,再エントリ判定部)
240・・・ワークメモリ使用状況管理レジスタ(パケット管理部)
241,242,243,244,245,246・・・ワークメモリ管理レジスタ(パケット管理部)
250・・・プロセッサ使用状況管理レジスタ(パケット管理部)
251,252,253・・・プロセッサ管理レジスタ(パケット管理部)
30,31,32,33・・・プロセッサ(処理演算部)
300,311,321,331・・・ローカルメモリ(処理演算部)
40,41・・・接続切り替え部
400,401,402,403,410,411,412,413・・・アドレス変換部(接続切り替え部,)
450・・・クロスバスイッチ(接続切り替え部,)
50,52・・・ワークメモリ(データ記憶部)
500,501,502,503,504,505,520,521,522,523,524,525,526・・・ワーク領域(データ記憶部)
60・・・DMA制御部(転送制御部)
100・・・外部ブロック
200・・・DRAM(外部メモリ)
700・・・バス
10, 11, 12 ... arithmetic devices 20, 21, 22 ... packet management units 210, 260 ... packet queues 211, 212, 213, 214, 215, 261, 262, 263, 264, 265,. -Storage area (packet queue)
220, 221, 222 ... Queue control unit (packet management unit, queue control unit)
230, 232 ... Re-entry control unit (packet management unit, re-entry determination unit)
240... Work memory usage status management register (packet management unit)
241, 242, 243, 244, 245, 246 ... Work memory management register (packet management unit)
250... Processor usage status management register (packet management unit)
251, 252, 253... Processor management register (packet management unit)
30, 31, 32, 33... Processor (processing operation unit)
300, 311, 321, 331... Local memory (processing operation unit)
40, 41 ... connection switching unit 400, 401, 402, 403, 410, 411, 412, 413 ... address conversion unit (connection switching unit)
450 ... Crossbar switch (connection switching part)
50, 52 ... Work memory (data storage unit)
500, 501, 502, 503, 504, 505, 520, 521, 522, 523, 524, 525, 526... Work area (data storage unit)
60: DMA controller (transfer controller)
100: External block 200: DRAM (external memory)
700 ... Bus

Claims (9)

要求する演算処理の内容を表す情報が含まれた複数のパケットが入力され、該入力されたパケットに対する演算処理を実行する演算装置であって、
前記パケットにおいて要求された演算処理の内容に応じた演算処理を行う処理機能を有し、次に実行する演算処理の内容を表す情報を含む演算処理後のパケットを出力する複数の処理演算部と、
前記処理演算部が前記パケットに対する演算処理を実行する対象の演算対象データ、または前記パケットに対する演算処理を実行した結果のデータを格納する、それぞれの前記処理演算部で共有して使用される複数のデータ記憶部と、
前記パケットを順次格納するパケットキューを具備し、該パケットキューに格納されたそれぞれの前記パケットに対して前記データ記憶部の使用権を付与して、いずれか1つの前記処理演算部に出力するパケット管理部と、
前記パケットに付与された前記データ記憶部の使用権の情報に基づいて、該パケットに対する演算処理を実行する前記処理演算部と、該パケットに対する演算処理を実行する際に使用する前記データ記憶部との接続を切り替える接続切り替え部と、
を備えることを特徴とする演算装置。
A computing device that receives a plurality of packets including information indicating the content of requested computation processing, and performs computation processing on the input packet.
A plurality of processing arithmetic units having a processing function for performing arithmetic processing according to the content of the arithmetic processing requested in the packet, and outputting a packet after arithmetic processing including information indicating the content of arithmetic processing to be executed next; ,
The processing operation unit stores operation target data to be subjected to operation processing on the packet, or data obtained as a result of execution of operation processing on the packet, and is shared by each of the processing operation units. A data storage unit;
A packet that includes a packet queue that sequentially stores the packets, grants the right to use the data storage unit to each of the packets stored in the packet queue, and outputs the packet to any one of the processing arithmetic units The management department,
Based on the information on the right to use the data storage unit assigned to the packet, the processing operation unit that performs operation processing on the packet, and the data storage unit used when executing operation processing on the packet; A connection switching unit for switching the connection of
An arithmetic device comprising:
前記パケット管理部は、
それぞれの前記処理演算部の使用状況、およびそれぞれの前記データ記憶部の使用状況に基づいて、前記パケットに対して1つ以上の前記データ記憶部の使用権を付与し、該データ記憶部の使用権を付与した前記パケットを、前記パケットキューから、該パケットに対する演算処理を実行するいずれか1つの前記処理演算部に出力させるキュー制御部と、
前記処理演算部のそれぞれから出力された前記演算処理後のパケット内の情報に基づいて、該演算処理後のパケットの出力先を判定する再エントリ判定部と、
を備え、
前記接続切り替え部は、
前記パケットに使用権が付与された前記データ記憶部と、該パケットに対する演算処理を実行する前記処理演算部とが1対1に接続されるように該データ記憶部と該処理演算部とを接続するクロスバスイッチと、
前記パケットに付与された前記データ記憶部の使用権の情報に基づいて、前記クロスバスイッチによる前記データ記憶部と前記処理演算部との接続の切り替えを制御すると共に、前記パケットに対する演算処理の実行において、前記処理演算部が前記データ記憶部にアクセスする際の論理アドレスを、使用権が付与された前記データ記憶部の物理アドレスに変換するアドレス変換部と、
を備えることを特徴とする請求項1に記載の演算装置。
The packet management unit
Based on the usage status of each of the processing operation units and the usage status of each of the data storage units, one or more usage rights of the data storage units are granted to the packet, and the use of the data storage units A queue control unit that causes the packet to which the right is granted to be output from the packet queue to any one of the processing arithmetic units that performs arithmetic processing on the packet;
A re-entry determining unit that determines an output destination of the packet after the arithmetic processing based on information in the packet after the arithmetic processing output from each of the processing arithmetic units;
With
The connection switching unit
The data storage unit and the processing operation unit are connected so that the data storage unit to which the usage right is given to the packet and the processing operation unit that executes the operation processing on the packet are connected one-to-one. A crossbar switch to
Based on information on the right to use the data storage unit attached to the packet, the switching of the connection between the data storage unit and the processing operation unit by the crossbar switch is controlled. An address conversion unit that converts a logical address when the processing operation unit accesses the data storage unit into a physical address of the data storage unit to which a right to use is granted;
The arithmetic unit according to claim 1, further comprising:
前記キュー制御部は、
前記データ記憶部の使用権が付与されていない同一の前記処理演算部が演算処理を実行する前記パケットに対して、前記パケットキューに格納された順番が早い前記パケットから順に、前記データ記憶部の使用権を付与し、
前記データ記憶部の使用権が付与された同一の前記処理演算部が演算処理を実行する前記パケットを、前記パケットキューに格納された順番が早い前記パケットから順に、対応する前記処理演算部に出力し、
前記再エントリ判定部は、
前記演算処理後のパケット内の情報に基づいて、該演算処理後のパケットが、当該演算装置から出力するパケットであるか、次の演算処理を要求するパケットであるかを判定し、
該演算処理後のパケットが当該演算装置から出力するパケットである場合には、該演算処理後のパケットに付与された前記データ記憶部の使用権を開放して出力し、
該演算処理後のパケットが次の演算処理を要求するパケットである場合には、該演算処理後のパケットを前記パケットキューに再度格納する、
ことを特徴とする請求項2に記載の演算装置。
The queue control unit
The same processing operation unit to which the right to use the data storage unit is not given is subjected to the processing, and the packets stored in the packet queue are sequentially stored in the packet queue in order from the first packet stored in the packet queue. Grant usage rights,
The same processing operation unit to which the right to use the data storage unit is given outputs the packets to be executed to the corresponding processing operation unit in order from the packets stored in the packet queue in order from the earlier And
The re-entry determination unit
Based on the information in the packet after the arithmetic processing, determine whether the packet after the arithmetic processing is a packet output from the arithmetic device or a packet requesting the next arithmetic processing,
When the packet after the arithmetic processing is a packet output from the arithmetic device, the right to use the data storage unit attached to the packet after the arithmetic processing is released and output,
If the packet after the arithmetic processing is a packet requesting the next arithmetic processing, the packet after the arithmetic processing is stored again in the packet queue.
The arithmetic unit according to claim 2.
前記キュー制御部は、
前記データ記憶部の使用権を付与する前記パケット内の情報に基づいて、該パケットに対して複数の前記データ記憶部の使用権を付与し、
前記アドレス変換部は、
複数の前記データ記憶部の使用権が付与された前記パケットに対する演算処理を実行する前記処理演算部が、使用権が付与されたぞれぞれの前記データ記憶部に連続してアクセスすることができるように、アドレスを変換する、
ことを特徴とする請求項3に記載の演算装置。
The queue control unit
Based on the information in the packet that grants the right to use the data storage unit, the usage right to the data storage unit is granted to the packet,
The address conversion unit
The processing arithmetic unit that executes arithmetic processing on the packet to which a plurality of data storage unit usage rights are granted continuously accesses each of the data storage units to which usage rights have been granted. Translate addresses so that you can,
The arithmetic unit according to claim 3.
前記キュー制御部は、
前記データ記憶部の使用権が付与された同一の前記処理演算部が演算処理を実行する前記パケットの数が、予め定めたパケット数の閾値以上、前記パケットキュー内に存在しないように、前記データ記憶部の使用権が付与されていない同一の前記処理演算部が演算処理を実行する前記パケットに対する前記データ記憶部の使用権の付与を制御し、
前記再エントリ判定部は、
前記演算処理後のパケットを前記パケットキューに再度格納する際に、該演算処理後のパケットに対して演算処理を実行する前記処理演算部と同一の前記処理演算部が演算処理を実行する、前記データ記憶部の使用権が付与された前記パケットの数が、前記パケット数の閾値以上、前記パケットキュー内に存在しないように、前記パケットキューに再度格納する前記演算処理後のパケットに付与された前記データ記憶部の使用権の開放を制御する、
ことを特徴とする請求項3または請求項4に記載の演算装置。
The queue control unit
The data is set so that the number of the packets for which the same processing operation unit to which the right to use the data storage unit is given executes the arithmetic processing does not exist in the packet queue more than a predetermined number of packets. The same processing operation unit to which the right to use the storage unit is not granted controls the grant of the right to use the data storage unit to the packet for executing the arithmetic processing,
The re-entry determination unit
When the packet after the arithmetic processing is stored again in the packet queue, the same processing arithmetic unit as the processing arithmetic unit that performs the arithmetic processing on the packet after the arithmetic processing executes the arithmetic processing, The number of the packets to which the right to use the data storage unit is given is given to the packet after the arithmetic processing to be stored again in the packet queue so that it does not exist in the packet queue more than the threshold of the number of packets Controlling the release of the right to use the data storage unit;
The arithmetic unit according to claim 3 or 4, characterized by the above.
前記キュー制御部は、
前記データ記憶部の使用権が付与されていない同一の前記処理演算部が演算処理を実行する前記パケットに対して、演算処理を実行する際の優先度が高く、前記パケットキューに格納された順番が早い前記パケットから順に、前記データ記憶部の使用権を付与し、
前記データ記憶部の使用権が付与された同一の前記処理演算部が演算処理を実行する前記パケットを、演算処理を実行する際の優先度が高く、前記パケットキューに格納された順番が早い前記パケットから順に、対応する前記処理演算部に出力し、
前記再エントリ判定部は、
前記演算処理後のパケットを前記パケットキューに再度格納する際に、該演算処理後のパケットに対して演算処理を実行する前記処理演算部と同一の前記処理演算部が演算処理を実行する前記データ記憶部の使用権が付与された前記パケットと、該演算処理後のパケットとにおいて、演算処理を実行する際の優先度が高く、前記パケットキューに格納された順番が早い前記パケットから順に、前記データ記憶部の使用権を有するように、前記パケットキューに格納された前記パケット、または該パケットキューに再度格納する前記演算処理後のパケットに付与された前記データ記憶部の使用権の開放を制御する、
ことを特徴とする請求項3から請求項5のいずれか1の項に記載の演算装置。
The queue control unit
The same processing operation unit to which the right to use the data storage unit is not assigned has a high priority when performing the operation processing, and the order in which the packets are stored in the packet queue. In order starting from the earlier packet, the right to use the data storage unit is granted,
The same processing operation unit to which the right to use the data storage unit is assigned has a higher priority when performing the operation processing, and the order in which the packets are stored in the packet queue is higher. In order from the packet, output to the corresponding processing operation unit,
The re-entry determination unit
When the packet after the arithmetic processing is stored again in the packet queue, the processing arithmetic unit that performs the arithmetic processing on the packet after the arithmetic processing performs the arithmetic processing by the same processing arithmetic unit. In the packet to which the right to use the storage unit is given, and the packet after the calculation process, the priority when executing the calculation process is high, and the packets stored in the packet queue are in order from the packet stored in the earlier order. Controls the release of the right to use the data storage unit assigned to the packet stored in the packet queue or the packet after the arithmetic processing to be stored again in the packet queue so as to have the right to use the data storage unit To
The arithmetic unit according to any one of claims 3 to 5, wherein the arithmetic unit is any one of the above.
前記演算対象データは、
それぞれの前記パケットに含まれ、
前記処理演算部は、
前記クロスバスイッチによって、演算処理を実行する前記パケットに使用権が付与された前記データ記憶部と接続された後に、演算処理を実行する前記パケットに含まれる前記演算対象データを該データ記憶部に転送し、該転送した前記演算対象データに対して演算処理を実行する、
ことを特徴とする請求項3から請求項6のいずれか1の項に記載の演算装置。
The calculation target data is
Included in each said packet,
The processing operation unit is
After the crossbar switch is connected to the data storage unit to which the right to use the packet for executing the arithmetic processing is connected, the arithmetic target data included in the packet for executing the arithmetic processing is transferred to the data storage unit And performing a calculation process on the transferred calculation target data,
The arithmetic unit according to any one of claims 3 to 6, wherein the arithmetic unit is any one of the above.
前記演算対象データは、
当該演算装置の外部に配置された外部メモリに記憶され、
当該演算装置は、
前記外部メモリと前記データ記憶部との間での前記演算対象データの転送を制御する転送制御部、
をさらに備え、
前記キュー制御部は、
前記データ記憶部の使用権を付与した前記パケットを対応する前記処理演算部に出力する前に、該パケットに対応する前記演算対象データの前記外部メモリから使用権を付与した該データ記憶部への転送を、前記転送制御部に指示し、
前記転送制御部の制御によって該演算対象データの該データ記憶部への転送が完了した後に、該データ記憶部の使用権を付与した前記パケットを対応する前記処理演算部に出力し、
前記再エントリ判定部は、
前記パケットまたは前記演算処理後のパケットに付与された前記データ記憶部の使用権を開放する前に、該パケットに対応する前記演算対象データの該データ記憶部から前記外部メモリへの転送を、前記転送制御部に指示し、
前記転送制御部の制御によって該演算対象データの該外部メモリへの転送が完了した後に、前記パケットに付与された該データ記憶部の使用権を開放する、
ことを特徴とする請求項3から請求項6のいずれか1の項に記載の演算装置。
The calculation target data is
Stored in an external memory arranged outside the arithmetic unit,
The arithmetic unit is
A transfer control unit for controlling transfer of the operation target data between the external memory and the data storage unit;
Further comprising
The queue control unit
Before outputting the packet to which the right to use the data storage unit is assigned to the corresponding processing operation unit, the operation target data corresponding to the packet is transferred from the external memory to the data storage unit to which the right to use is assigned. Instructing the transfer control unit to transfer,
After the transfer of the operation target data to the data storage unit is completed under the control of the transfer control unit, the packet to which the right to use the data storage unit is output is output to the corresponding processing operation unit,
The re-entry determination unit
Before releasing the right to use the data storage unit attached to the packet or the packet after the arithmetic processing, transferring the operation target data corresponding to the packet from the data storage unit to the external memory, Instruct the transfer control unit,
After the transfer of the operation target data to the external memory is completed under the control of the transfer control unit, the right to use the data storage unit attached to the packet is released.
The arithmetic unit according to any one of claims 3 to 6, wherein the arithmetic unit is any one of the above.
前記キュー制御部は、
前記パケットに付与した前記データ記憶部の使用権の情報を、前記アドレス変換部に出力し、
前記クロスバスイッチによって、該パケットに対する演算処理を実行する前記処理演算部と、対応する前記データ記憶部とが接続された後に、該パケットを該処理演算部に出力する、
ことを特徴とする請求項3から請求項8のいずれか1の項に記載の演算装置。
The queue control unit
Information on the right to use the data storage unit attached to the packet is output to the address conversion unit,
After the crossbar switch connects the processing arithmetic unit that executes arithmetic processing on the packet and the corresponding data storage unit, the packet is output to the processing arithmetic unit;
The arithmetic unit according to claim 3, wherein the arithmetic unit is any one of claims 3 to 8.
JP2013157884A 2013-07-30 2013-07-30 Arithmetic unit Expired - Fee Related JP6147131B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013157884A JP6147131B2 (en) 2013-07-30 2013-07-30 Arithmetic unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013157884A JP6147131B2 (en) 2013-07-30 2013-07-30 Arithmetic unit

Publications (2)

Publication Number Publication Date
JP2015028710A JP2015028710A (en) 2015-02-12
JP6147131B2 true JP6147131B2 (en) 2017-06-14

Family

ID=52492379

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013157884A Expired - Fee Related JP6147131B2 (en) 2013-07-30 2013-07-30 Arithmetic unit

Country Status (1)

Country Link
JP (1) JP6147131B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112152947B (en) * 2020-08-21 2021-07-20 北京百度网讯科技有限公司 Processor, implementation method, electronic device and storage medium

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4288421B2 (en) * 2004-03-12 2009-07-01 日本電気株式会社 Main storage system and main storage device for controlling correspondence with CPU
JP5309703B2 (en) * 2008-03-07 2013-10-09 日本電気株式会社 Shared memory control circuit, control method, and control program
JP2012113632A (en) * 2010-11-26 2012-06-14 Toyota Motor Corp Information processor and method of managing exclusive access right of information processor

Also Published As

Publication number Publication date
JP2015028710A (en) 2015-02-12

Similar Documents

Publication Publication Date Title
JP3573614B2 (en) Image processing apparatus and image processing system
US10241946B2 (en) Multi-channel DMA system with command queue structure supporting three DMA modes
JP5360061B2 (en) Multiprocessor system and control method thereof
EP1365321A2 (en) Multiprocessor system
JP2008276638A (en) Semiconductor storage device, memory access control system and method for reading data
US10282310B2 (en) Arithmetic processing device and control method thereof
JP2002366507A (en) Multichannel dma(direct memory access) controller, and processor system
US6606691B2 (en) System integrating agents having different resource-accessing schemes
JP5439808B2 (en) System LSI with multiple buses
JP6147131B2 (en) Arithmetic unit
JP2001333137A (en) Self-operating communication controller and self- operating communication control method
JP7468112B2 (en) INTERFACE CIRCUIT AND METHOD FOR CONTROLLING INTERFACE CIRCUIT - Patent application
WO2007039933A1 (en) Operation processing device
JP2009252133A (en) Device and method for processing vector
JP2007199859A (en) Data transfer system
JP2013041361A (en) Resource arbitration system and resource arbitration method
JP2006079394A (en) Data processor
JP4924970B2 (en) Data processing system
JP4292218B2 (en) Image processing apparatus and image processing system
JP2006139766A (en) Information processor
JP3959407B2 (en) Image processing apparatus and image processing system
JP2007506174A (en) Integrated circuit having a plurality of communication digital signal processors
JPH0222757A (en) Multiprocessor memory system
JP2006277363A (en) Information transfer system, and image forming device
JP4409561B2 (en) Event notification method, information processing apparatus, and processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160502

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170314

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170516

R151 Written notification of patent or utility model registration

Ref document number: 6147131

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees