JP6161396B2 - Arithmetic unit - Google Patents
Arithmetic unit Download PDFInfo
- Publication number
- JP6161396B2 JP6161396B2 JP2013103261A JP2013103261A JP6161396B2 JP 6161396 B2 JP6161396 B2 JP 6161396B2 JP 2013103261 A JP2013103261 A JP 2013103261A JP 2013103261 A JP2013103261 A JP 2013103261A JP 6161396 B2 JP6161396 B2 JP 6161396B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage unit
- task
- unit
- data storage
- 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
Links
Images
Landscapes
- Advance Control (AREA)
- Image Processing (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本発明は、演算装置に関する。 The present invention relates to an arithmetic device.
従来から、プログラムに応じた演算処理を実行するプロセッサを備えた演算装置がある。このような演算装置では、プロセッサが実行するそれぞれの演算処理を複数のタスクに分割し、プロセッサは、分割したそれぞれのタスクを順次実行することによって演算処理を行う。演算装置における演算処理では、外部のメモリにアクセスしながら実行する、すなわち、演算処理で使用するデータを、外部のメモリから読み出したり、外部のメモリに書き込んだりしながら実行する演算処理もある。そして、従来の演算装置には、予め外部のメモリからデータを読み出して一時記憶しておく外部のメモリよりも高速なメモリ、いわゆる、キャッシュメモリを備えたプロセッサを複数備えた、いわゆる、マルチプロセッサといわれる構成のものも見受けられる。 2. Description of the Related Art Conventionally, there is an arithmetic device including a processor that executes arithmetic processing according to a program. In such an arithmetic device, each arithmetic processing executed by the processor is divided into a plurality of tasks, and the processor performs arithmetic processing by sequentially executing the divided tasks. In the arithmetic processing in the arithmetic device, there is an arithmetic processing that is executed while accessing an external memory, that is, the data used in the arithmetic processing is read from the external memory or written to the external memory. The conventional arithmetic device is a so-called multiprocessor including a plurality of processors each having a memory having a higher speed than an external memory in which data is previously read from an external memory and temporarily stored, that is, a cache memory. The thing of the composition to be seen can be seen.
このような演算装置では、例えば、画像処理などの一連の処理を、演算装置に備えたそれぞれのプロセッサが分担して並列に行う、いわゆる、分散並列処理によって、プロセッサ同士でのそれぞれのタスクの処理の待ち合わせやラインバッファ処理など、データを一定時間保持する必要がある処理、あるいは演算装置に搭載しているプロセッサの数よりも多くのタスクからなる処理を行うことができる。このとき、それぞれのプロセッサ間のデータの受け渡しは、外部メモリを介して行われる。しかし、外部メモリへのアクセスは多くの電力を要するため、演算装置の消費電力の増大に繋がってしまうことから、演算処理を行う際の外部メモリへのアクセスを極力少なくしたいという要望がある。 In such an arithmetic device, for example, a series of processing such as image processing is performed in parallel by each processor provided in the arithmetic device, and the processing of each task between the processors is performed by so-called distributed parallel processing. Processing that requires data to be held for a certain period of time, such as waiting for data and line buffer processing, or processing that includes more tasks than the number of processors installed in the arithmetic unit can be performed. At this time, data is transferred between the processors via an external memory. However, since access to the external memory requires a large amount of power, this leads to an increase in power consumption of the arithmetic device, and there is a demand for minimizing access to the external memory when performing arithmetic processing.
このため、例えば、特許文献1のように、外部メモリを介さずに、それぞれのプロセッサに備えたキャッシュメモリ同士でデータを直接転送する技術が開示されている。特許文献1に開示された技術では、1つのプロセッサが実行した結果のデータを他のプロセッサが演算処理に使用する場合、外部メモリへのアクセスを行うDMAC(Direct Memory Access Controller)が、1つのプロセッサが実行した結果のデータを他のプロセッサのキャッシュメモリに転送した後に外部メモリに転送する。これにより、1つのプロセッサが実行した結果のデータに関わる外部メモリへのアクセス回数を低減することができる。
For this reason, for example, as disclosed in
しかしながら、演算装置に備えた複数のプロセッサの中に、キャッシュメモリを備えていないプロセッサが含まれている、すなわち、演算装置に備えた全てのプロセッサがキャッシュメモリを備えた構成ではない演算装置もある。このような構成の演算装置では、プロセッサ間のデータの受け渡しを、外部メモリを介して行わなければならず、特許文献1に開示された技術を適用した場合であっても、演算装置における外部メモリへのアクセス回数を低減することができない。
However, some of the processors included in the arithmetic device include a processor that does not include the cache memory, that is, there is an arithmetic device that does not have a configuration in which all the processors included in the arithmetic device include the cache memory. . In the arithmetic device having such a configuration, data transfer between processors must be performed via an external memory, and even when the technique disclosed in
また、例えば、撮像装置において行われる画像処理のように、別の構成要素によって外部メモリに記憶されたデータに対して、演算装置が演算処理を行う場合には、それぞれのプロセッサが、演算処理に使用するデータを外部メモリから読み出す。このとき、演算装置が行う演算処理が、例えば、画像処理における畳み込み演算処理のように、画像処理を行う全てのデータの領域(画像領域)を複数の領域(ブロック)に分割し、分割したブロック毎に処理を行う演算処理である場合には、それぞれのブロックに、演算処理に使用するデータ(画像データ)が重複している領域、いわゆる、糊代領域がある場合もある。この場合には、糊代領域の画像データを、演算装置内の異なるプロセッサがそれぞれ読み出すことになる。これは、外部メモリからみると、同じ記憶領域に記憶されている画像データが複数回読み出されることになり、演算装置における外部メモリへのアクセス回数を低減することができない。 In addition, for example, when the arithmetic device performs arithmetic processing on data stored in the external memory by another component as in image processing performed in the imaging device, each processor performs arithmetic processing. Read the data to be used from the external memory. At this time, the arithmetic processing performed by the arithmetic device divides all data regions (image regions) to be subjected to image processing into a plurality of regions (blocks), such as convolution arithmetic processing in image processing. When the calculation process is performed every time, each block may have an area where data (image data) used for the calculation process overlaps, that is, a so-called glue margin area. In this case, the image data of the margin area is read by different processors in the arithmetic device. This means that when viewed from the external memory, the image data stored in the same storage area is read out a plurality of times, and the number of accesses to the external memory in the arithmetic unit cannot be reduced.
このように、特許文献1で開示された技術を適用した演算装置であっても、必ずしも外部メモリへのアクセス回数を低減することができるとはいえない、という問題がある。
As described above, there is a problem that even an arithmetic device to which the technique disclosed in
本発明は、上記の課題認識に基づいてなされたものであり、複数のプロセッサが連携して処理を行う演算装置において、複数のプロセッサが演算処理に使用するデータが重複している場合に、外部メモリへのアクセス回数を減らすことができる演算装置を提供することを目的としている。 The present invention has been made based on the above problem recognition, and in an arithmetic device in which a plurality of processors perform processing in cooperation, when data used by the plurality of processors for arithmetic processing overlaps, An object of the present invention is to provide an arithmetic device capable of reducing the number of accesses to a memory.
上記の課題を解決するため、本発明の演算装置は、入力されたタスクに応じた演算処理を行う処理機能を有し、次に実行する演算処理に関する情報を前記タスクとして出力する複数の処理演算部と、それぞれの前記処理演算部が前記タスクに応じた演算処理を実行する際に使用するデータ、または前記タスクに応じた演算処理を実行した結果のデータを格納する複数のデータ記憶部と、前記タスクに応じた演算処理を実行する際に使用するデータを接続された外部記憶部から読み出して前記データ記憶部に格納することと、前記データ記憶部に格納されている前記タスクに応じた演算処理を実行する際に使用するデータを前記データ記憶部同士で転送することと、前記データ記憶部に格納されている前記タスクに応じた演算処理を実行した結果のデータを接続された前記外部記憶部に書き込むこととを行うためのメモリ制御部と、前記データ記憶部のそれぞれが格納しているデータの前記外部記憶部における記憶場所とデータ量を示す情報を保持するデータ転送情報テーブルと、前記タスクを順次格納するタスクキューを具備し、該タスクキューに格納された前記タスクを、複数の前記処理演算部の内、いずれか1つの前記処理演算部に出力すると共に、アクセス指示の対象となるタスクに応じた演算処理を実行する際に使用するデータの前記外部記憶部における記憶場所とデータ量を示す情報と、前記データ転送情報テーブルに保持された情報を参照して、前記外部記憶部または前記データ記憶部へのアクセスを前記メモリ制御部に指示する前記アクセス指示を出力するタスク制御部と、を備えることを特徴とする。 In order to solve the above problems, the arithmetic device of the present invention has a processing function for performing arithmetic processing according to an input task, and outputs a plurality of processing arithmetics as information about the arithmetic processing to be executed next as the task And a plurality of data storage units for storing data used when each processing operation unit executes an operation process corresponding to the task, or data obtained as a result of executing the operation process corresponding to the task, Reading out data to be used when performing arithmetic processing according to the task from a connected external storage unit and storing it in the data storage unit, and calculating according to the task stored in the data storage unit binding data for use in performing the process of executing the be transferred said data storage portions, the arithmetic processing corresponding to the tasks stored in the data storage unit A memory control unit for writing the data to the connected external storage unit, and information indicating a storage location and a data amount of the data stored in each of the data storage units in the external storage unit A data transfer information table to be held and a task queue for sequentially storing the tasks are output, and the tasks stored in the task queue are output to any one of the processing arithmetic units. In addition, information indicating the storage location and amount of data in the external storage unit of data used when executing arithmetic processing according to the task that is the target of the access instruction, and information held in the data transfer information table Referring to the task control that outputs the access instruction that instructs the memory control unit to access the external storage unit or the data storage unit. Characterized in that it comprises a part, a.
本発明によれば、複数のプロセッサが連携して処理を行う演算装置において、複数のプロセッサが演算処理に使用するデータが重複している場合に、外部メモリへのアクセス回数を減らすことができる演算装置を提供することができるという効果が得られる。 According to the present invention, in an arithmetic device that performs processing in cooperation with a plurality of processors, when the data that the plurality of processors use for arithmetic processing is duplicated, the arithmetic that can reduce the number of accesses to the external memory The effect that an apparatus can be provided is acquired.
以下、本発明の実施形態について、図面を参照して説明する。図1は、本実施形態における演算装置の概略構成の一例を示したブロック図である。図1に示した演算装置10は、n個の処理演算部11a〜処理演算部11nと、タスク制御部12と、メモリ制御部13と、n個のデータ記憶部14a〜データ記憶部14nと、を備えている。また、演算装置10には、外部記憶部20が接続されている。演算装置10は、要求された演算処理を、処理演算部11a〜処理演算部11nのそれぞれで分担して行う、分散並列処理型の演算装置である。
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram illustrating an example of a schematic configuration of the arithmetic device according to the present embodiment. The
なお、以下の説明においては、処理演算部11a〜処理演算部11nのそれぞれを区別せずに表す場合には、「処理演算部11」という。また、データ記憶部14a〜データ記憶部14nのそれぞれを区別せずに表す場合には、「データ記憶部14」という。
In the following description, when each of the
外部記憶部20は、処理演算部11a〜処理演算部11nのそれぞれで共有される、例えば、DRAM(Dynamic Random Access Memory)などのメモリである。外部記憶部20には、処理演算部11a〜処理演算部11nのそれぞれが起動するためのプログラムや、処理演算部11a〜処理演算部11nのそれぞれが演算処理を実行するために用いるデータが格納されている。また、外部記憶部20には、処理演算部11a〜処理演算部11nのそれぞれが演算処理の途中で生成したデータなどが、一時的に格納される。
The
処理演算部11a〜処理演算部11nのそれぞれは、同じ処理機能を持ったプロセッサである。処理演算部11a〜処理演算部11nのそれぞれは、演算装置10に接続された外部記憶部20へのデータの書き込みや、外部記憶部20からのデータの読み出しを行いながら、タスク制御部12から入力された、演算装置10に対して要求された演算処理におけるそれぞれのタスクを実行する。
Each of the
また、処理演算部11a〜処理演算部11nのそれぞれは、自身がタスクを実行した後に引き続き別の処理演算部11または自身に、次のタスクを実行させるための情報や、次に実行するタスクの内容を表す情報を、次のタスクの実行要求として、タスク制御部12に出力する。ここで、処理演算部11がタスク制御部12に出力する次のタスクの実行要求の情報には、タスクを実行する際に使用するデータが保持されている外部記憶部20の先頭アドレスを指定する情報が含まれている。また、処理演算部11がタスク制御部12に出力する次のタスクの実行要求の情報には、次のタスクの実行に必要な様々なパラメータのデータが含まれている。なお、以下の説明においては、処理演算部11がタスク制御部12に出力する、次のタスクの実行要求も、タスクという。
In addition, each of the
また、処理演算部11a〜処理演算部11nのそれぞれは、タスク制御部12から入力された、別の処理演算部11または自身が前回のタスクを実行した結果である、次のタスクを実行する。なお、処理演算部11a〜処理演算部11nのそれぞれは、さらに別の処理演算部11または自身が引き続き実行するタスクがある場合には、引き続き別の処理演算部11または自身に、次のタスクを実行させるための情報や、次に実行するタスクの内容を表す情報を、次のタスクとして再度、タスク制御部12に出力する。
In addition, each of the
また、処理演算部11a〜処理演算部11nのそれぞれは、次のタスクを受け付けられる状態であるか否かを表す信号を、タスク制御部12に出力する。処理演算部11a〜処理演算部11nのそれぞれは、今回実行しているタスクの処理が完了し、次のタスクを実行する準備が整ったときに、次に実行するタスクを受け付けられる状態であることを表す信号を、タスク制御部12に出力する。
In addition, each of the
タスク制御部12は、処理演算部11a〜処理演算部11nのそれぞれから入力されたそれぞれのタスクを受け付け、処理演算部11a〜処理演算部11nのそれぞれから入力された、次のタスクを受け付けられる状態であるか否かを表す信号に基づいて、受け付けたタスクを、処理演算部11a〜処理演算部11nのいずれか1つに割り当てる。
The
より具体的には、タスク制御部12は、処理演算部11a〜処理演算部11nのそれぞれから入力されたそれぞれのタスクに基づいて、次のタスクを受け付けられる状態であることを表す信号を入力している処理演算部11の中から、次のタスクを実行させる、いずれか1つ処理演算部11を選択する。そして、タスク制御部12は、選択したいずれか1つの処理演算部11にタスクを出力することによって、演算装置10に対して要求された演算処理におけるそれぞれのタスクを、処理演算部11a〜処理演算部11nのそれぞれに分配する。
More specifically, the
タスク制御部12は、処理演算部11a〜処理演算部11nのそれぞれからのタスクを受け付けるための構成として、タスクキュー121を備えている。タスクキュー121は、入力されたタスクを格納する待ち行列のメモリである。タスクキュー121には、処理演算部11a〜処理演算部11nのそれぞれから入力されたそれぞれのタスクが、入力された順番で順次格納される。タスクキュー121に格納されたそれぞれのタスクは、基本的に、格納された順番で出力されるが、演算装置10では、タスク制御部12が、タスクキュー121に格納されたタスクを出力する処理演算部11や、タスクの出力順番を制御する。
The
また、タスク制御部12は、タスクキュー121に格納されたそれぞれのタスクを実行するタイミングに基づいて、外部記憶部20にアクセスするための指示(以下、「アクセス指示」という)を、メモリ制御部13に出力する。例えば、タスク制御部12は、DMA(Direct Memory Access)によって外部記憶部20へのデータの書き込み、および外部記憶部20からのデータの読み出しを行うアクセス指示を、メモリ制御部13に出力する。
Further, the
より具体的には、タスク制御部12は、タスクキュー121に順次格納されたそれぞれのタスクに基づいて、タスクを実行する際に使用する外部記憶部20に格納されているデータを、このタスクが割り当てられた処理演算部11が実際にタスクを実行するタイミングまでに、事前に取得する(読み出す)ためのDMAのアクセス指示を、メモリ制御部13に出力する。また、タスク制御部12は、タスクキュー121に順次格納されたそれぞれのタスクに基づいて、それぞれの処理演算部11が割り当てられたタスクを実行する際に使用しないデータを、事前に外部記憶部20に退避する(書き込む)ためのDMAのアクセス指示を、メモリ制御部13に出力する。ここで、タスク制御部12がメモリ制御部13に出力するアクセス指示には、外部記憶部20のアドレスや、読み出しまたは書き込みを行うデータの量(大きさ)などを表す情報が含まれている。
More specifically, the
なお、アクセス指示に含まれる外部記憶部20のアドレスや、読み出しまたは書き込みを行うデータの量は、データ転送情報テーブル122を参照して決定される。演算装置10では、外部記憶部20に書き込まれるデータや、外部記憶部20から読み出されたデータは、一旦、データ記憶部14に格納される。そして、処理演算部11a〜処理演算部11nのそれぞれが実行しているタスクにおいて、外部記憶部20へのアクセスが行われた際には、アクセスする外部記憶部20のアドレスに対応したデータ記憶部14へのアクセスがされる。このときに外部記憶部20内にタスクを実行する際に使用するデータが格納されている場所(記憶場所)を示す外部記憶部20のアドレスとデータ記憶部14とを対応付け、さらに読み出しまたは書き込みを行うデータの量を対応付ける情報を保持しているのが、データ転送情報テーブル122である。
Note that the address of the
ここで、データ転送情報テーブル122の一例について説明する。図2は、本実施形態における演算装置10に備えたデータ転送情報テーブル122の一例を示した図である。図2に示したデータ転送情報テーブル122の一例では、それぞれのテーブル番号毎に、外部記憶部20の先頭アドレス、データ量、データ記憶部14の基準のアドレス(ベースアドレス)の情報が保持されている場合を示している。
Here, an example of the data transfer information table 122 will be described. FIG. 2 is a diagram illustrating an example of the data transfer information table 122 provided in the
このデータ転送情報テーブル122の情報から、それぞれのデータ記憶部14毎に、データ記憶部14に格納されている外部記憶部20のデータの範囲を特定することができる。より具体的には、図2に示した一例では、データ記憶部14aには、外部記憶部20の先頭アドレス0x1000からデータ量0x280のデータが格納され、データ記憶部14bには、外部記憶部20の先頭アドレス0x1280からデータ量0x280のデータが格納され、データ記憶部14nには、データが格納されていないことがわかる。
From the information in the data transfer information table 122, the data range of the
なお、タスクを実行する処理演算部11a〜処理演算部11nのそれぞれは、外部記憶部20へのデータの書き込みや、外部記憶部20からのデータの読み出しを行う際に、対応するデータ記憶部14を意識していない。演算装置10では、それぞれのタスクを実行する際に、処理演算部11が外部記憶部20に直接アクセスする動作を行うが、この動作に応じて実際にアクセスされるのはデータ記憶部14である。つまり、処理演算部11が外部記憶部20にデータを書き込むアクセスを行うと、書き込み先の外部記憶部20の先頭アドレスに対応したデータ記憶部14にデータが書き込まれ(格納され)、処理演算部11が外部記憶部20からデータを読み出すアクセスを行うと、読み出し元の外部記憶部20のアドレスに対応したデータ記憶部14から、事前に格納されているデータが読み出される。
Each of the
また、タスク制御部12は、次のタスクを実行する処理演算部11が使用する外部記憶部20のデータが、外部記憶部20の同じ記憶領域のデータである場合、すなわち、次のタスクを実行する処理演算部11が使用するデータが、以前のタスクを実行した他の処理演算部11が使用したデータと重複している場合には、重複しているデータを対応するデータ記憶部14同士で転送またはコピーするためのアクセス指示を、メモリ制御部13に出力する。これは、例えば、画像処理における畳み込み演算処理のように、演算処理に使用するデータ(画像データ)が重複している領域、いわゆる、糊代領域のデータを、再び外部記憶部20から読み出すことによって、外部記憶部20へのアクセス回数を増やさないようにするために行うアクセス指示である。
Further, the
このときのアクセス指示においても、重複しているデータを格納しているデータ記憶部14や、データ記憶部14から読み出して別のデータ記憶部14に書き込みを行うデータの量は、データ転送情報テーブル122を参照して決定される。なお、以下の説明においては、重複しているデータを対応するデータ記憶部14同士でコピーするものとして説明する。 Also in the access instruction at this time, the amount of data read from the data storage unit 14 storing the duplicated data or written to another data storage unit 14 is written in the data transfer information table. 122 is determined. In the following description, it is assumed that duplicate data is copied between the corresponding data storage units 14.
より具体的には、タスク制御部12は、データ転送情報テーブル122の情報に基づいて、それぞれのデータ記憶部14に格納しているデータに対応した外部記憶部20のアドレスとデータの量とを確認し、次のタスクを実行する処理演算部11が使用する外部記憶部20のデータが、すでにデータ記憶部14のいずれかに格納されているか否かを判定する。そして、次のタスクを実行する処理演算部11が使用する外部記憶部20のデータがすでにデータ記憶部14のいずれかに格納されている場合には、他の処理演算部11が以前のタスクを実行するためにすでにデータを格納しているデータ記憶部14から、次のタスクを実行する処理演算部11に対応するデータ記憶部14に、重複しているデータをコピーするためのアクセス指示を、メモリ制御部13に出力する。また、次のタスクを実行する処理演算部11が使用する外部記憶部20のデータがいずれのデータ記憶部14にも格納されていない場合には、外部記憶部20からデータを読み出して、次のタスクを実行する処理演算部11に対応するデータ記憶部14に格納するためのアクセス指示を、メモリ制御部13に出力する。
More specifically, the
なお、データ記憶部14同士でコピーするデータが、コピー元のデータ記憶部14に格納されている全てのデータではない、すなわち、重複しているデータがコピー元のデータ記憶部14に格納されているデータの一部である場合には、一部のデータのみをコピーすることもできる。この場合、処理演算部11が次のタスクを実行する際に使用する不足分のデータは、外部記憶部20からデータを読み出して格納することになる。その際、タスク制御部12は、不足分のデータを外部記憶部20からデータを読み出して、次のタスクを実行する処理演算部11に対応するデータ記憶部14に格納するためのアクセス指示を、メモリ制御部13に出力する。
Note that the data to be copied between the data storage units 14 is not all the data stored in the copy source data storage unit 14, that is, duplicate data is stored in the copy source data storage unit 14. If it is a part of the stored data, only a part of the data can be copied. In this case, the deficient data used when the
例えば、データ記憶部14nに対応した処理演算部11が使用する外部記憶部20のデータが、外部記憶部20の先頭アドレス0x13C0からデータ量0x280のデータである場合、図2に示したデータ転送情報テーブル122では、外部記憶部20の先頭アドレス0x13C0からデータ量0x140のデータが、すでにデータ記憶部14bに格納されていることがわかる。この場合、タスク制御部12は、データ記憶部14bに格納されている外部記憶部20の先頭アドレス0x13C0からデータ量0x140のデータをデータ記憶部14nにコピーするためのアクセス指示と、外部記憶部20のアドレス0x1500からデータ量0x140のデータを外部記憶部20からデータを読み出してデータ記憶部14nに格納するためのアクセス指示とを、メモリ制御部13に出力する。
For example, when the data in the
なお、一部のデータのみをデータ記憶部14同士でコピーする場合には、コピー元のデータ記憶部14に格納されているデータの順番を変更せずにそのままコピーしてもよいし、コピー元のデータ記憶部14に格納されているデータの順番を変更してコピーしてもよい。例えば、一部のデータが、コピー元のデータ記憶部14に格納されている後半のデータであり、次のタスクを実行する際の前半のデータとして使用される場合を考える。この場合、コピー元のデータ記憶部14に格納されているデータの順番を変更してコピーした場合には、次のタスクを実行する処理演算部11に対応したデータ記憶部14は、格納されている順番でデータを出力すればよい。しかし、コピー元のデータ記憶部14に格納されているデータの順番を変更せずにそのままコピーした場合には、次のタスクを実行する処理演算部11に対応したデータ記憶部14は、最初に後半のデータ(コピーしたデータ)を出力し、その後、前半のデータ(外部記憶部20から読み出したデータ)を出力することになる。このとき、データ記憶部14に格納されているデータを対応する処理演算部11に出力する順番の制御は、
例えば、メモリ制御部13内に、要求されたデータのアドレスから出力するデータのアドレスに変換するアドレス変換部などを備え、このアドレス変換部が、データの出力順番を制御する構成であってもよい。また、メモリ制御部13内に、データの出力順番を制御する制御部を備え、この制御部が、データの出力順番の制御を行う構成であってもよい。また、タスク制御部12がデータ転送情報テーブル122の情報に基づいて制御する構成であってもよい。この場合には、データ転送情報テーブル122に、例えば、最初に出力するデータを表す先頭アドレスの情報を保持し、この先頭アドレスの情報に基づいてデータの出力順番を制御する構成であってもよい。
When only a part of the data is copied between the data storage units 14, the data may be copied as it is without changing the order of the data stored in the copy source data storage unit 14. The order of data stored in the data storage unit 14 may be changed and copied. For example, consider a case in which a part of the data is the latter half of data stored in the copy source data storage unit 14 and is used as the first half of data when the next task is executed. In this case, when the order of data stored in the copy source data storage unit 14 is changed and copied, the data storage unit 14 corresponding to the
For example, the
また、例えば、一部のデータが、コピー元のデータ記憶部14に格納されている前半のデータであり、次のタスクを実行する際の後半のデータとして使用される場合を考える。この場合にも、コピー元のデータ記憶部14に格納されているデータの順番を変更してコピーした場合には、次のタスクを実行する処理演算部11に対応したデータ記憶部14は、格納されている順番でデータを出力すればよいが、コピー元のデータ記憶部14に格納されているデータの順番を変更せずにそのままコピーした場合には、データの出力順番を制御する必要がある。より具体的には、次のタスクを実行する処理演算部11に対応したデータ記憶部14は、最初に後半のデータ(外部記憶部20から読み出したデータ)を出力し、その後、前半のデータ(コピーしたデータ)を出力することになる。このときにも、データ記憶部14に格納されているデータを対応する処理演算部11に出力する順番の制御を、例えば、メモリ制御部13に備えたアドレス変換部や制御部が行う構成であってもよいし、タスク制御部12がデータ転送情報テーブル122の情報に基づいて制御する構成であってもよい。
Further, for example, a case is considered in which a part of data is the first half data stored in the copy source data storage unit 14 and is used as the second half data when the next task is executed. Also in this case, when the data stored in the copy source data storage unit 14 is changed in order and copied, the data storage unit 14 corresponding to the
なお、コピー元のデータ記憶部14に格納されているデータの順番を変更してコピーする場合にも、例えば、メモリ制御部13に備えたアドレス変換部や制御部がコピーする順番を制御する構成であってもよいし、タスク制御部12がデータ転送情報テーブル122の情報に基づいて制御する構成であってもよい。
Note that, in the case of copying by changing the order of data stored in the copy source data storage unit 14, for example, a configuration for controlling the order of copying by the address conversion unit and the control unit provided in the
なお、タスク制御部12によるタスクを出力する処理演算部11やタスクの出力順番の制御方法、およびメモリ制御部13に出力する外部記憶部20へのアクセス指示に関する詳細な説明は、後述する。
A detailed description of the
メモリ制御部13は、タスク制御部12から入力されたアクセス指示に応じて、演算装置10に接続された外部記憶部20からのデータの読み出しや、外部記憶部20へのデータの書き込みを行う。
The
より具体的には、メモリ制御部13は、タスク制御部12から入力された、外部記憶部20に格納されているデータを事前に取得する(読み出す)ためのアクセス指示に応じて、アクセス指示によって指定された外部記憶部20のアドレスから、アクセス指示によって指定された量のデータを読み出し、読み出したデータを、アクセス指示によって指定されたデータ記憶部14に格納する。メモリ制御部13は、タスク制御部12から入力された、データを外部記憶部20に退避する(書き込む)ためのアクセス指示に応じて、アクセス指示によって指定されたデータ記憶部14に格納されているデータを読み出し、読み出したデータを、アクセス指示によって指定された外部記憶部20のアドレスの記憶領域に書き込む。
More specifically, the
また、メモリ制御部13は、タスク制御部12から入力されたアクセス指示に応じて、処理演算部11a〜処理演算部11nのそれぞれから入力された次のタスクの実行要求の情報に含まれる、タスクの実行に必要な様々なパラメータのデータを、データ記憶部14に格納、または外部記憶部20に退避する。
In addition, the
より具体的には、メモリ制御部13は、タスク制御部12から入力された、パラメータのデータを格納する(書き込む)ためのアクセス指示に応じて、アクセス指示によって指定されたデータ記憶部14a〜データ記憶部14nのいずれかに、アクセス指示によって指定されたパラメータのデータを格納する。メモリ制御部13は、タスク制御部12から入力された、パラメータのデータを外部記憶部20に退避する(書き込む)ためのアクセス指示に応じて、アクセス指示によって指定されたパラメータのデータを、アクセス指示によって指定された外部記憶部20のアドレスの記憶領域に書き込む。ここで外部記憶部20に退避されたパラメータのデータは、タスク制御部12から必要に応じて入力されるパラメータのデータを読み出すためのアクセス指示に応じて、外部記憶部20から読み出され、アクセス指示によって指定されたデータ記憶部14に再び格納される。
More specifically, the
データ記憶部14a〜データ記憶部14nのそれぞれは、処理演算部11a〜処理演算部11nのそれぞれに対応し、対応する処理演算部11がタスクを実行する際に使用するデータや、次のタスクを実行する際に使用するデータ(例えば、現在のタスクを実行した結果のデータ)を格納する、例えば、SRAM(Static Random Access Memory)などのメモリ、いわゆる、キャッシュメモリである。
Each of the
なお、図1では、演算装置10内に、処理演算部11のそれぞれに対応したn個のデータ記憶部14を備えた構成を示しているが、データ記憶部14の構成は、本実施形態の構成のみに限定されるものではない。例えば、演算装置内に1つのデータ記憶部を備え、このデータ記憶部の記憶領域を、処理演算部11のそれぞれに対応する数に分割した構成であっても、同様に考えることができる。ただし、複数の処理演算部11が同時にデータ記憶部の別の領域に対してデータの書き込みや読み出しを行うことを考慮すると、データ記憶部は、図1に示したように、処理演算部11のそれぞれに対応した構成であることが望ましいと考えられる。
1 shows a configuration in which the n data storage units 14 corresponding to each of the
しかし、データ記憶部14のそれぞれを、演算装置内に備えた1つのデータ記憶部の記憶領域を分割した構成である場合には、次のタスクを実行する処理演算部11が使用するデータが、以前のタスクを実行した他の処理演算部11が使用したデータと重複しているときに、重複しているデータを対応するデータ記憶部14同士でコピーするためのアクセス指示を、メモリ制御部13に出力する必要がなくなる。そして、次のタスクを実行する処理演算部11が使用するデータを出力する順番の制御が必要になる可能性も少なくなると考えられる。
However, if each of the data storage units 14 has a configuration in which the storage area of one data storage unit provided in the arithmetic device is divided, the data used by the
このように、演算装置10では、いずれの処理演算部11から出力されたタスクも、タスク制御部12を経由してから、次のタスクを実行する処理演算部11に入力される。そして、演算装置10では、次のタスクが割り当てられた処理演算部11が、外部記憶部20に格納されているデータを使用するタイミングよりも早いタイミングで、タスクを実行する際に使用するデータを、事前にデータ記憶部14に格納しておく。また、演算装置10では、処理演算部11がタスクを実行する際にデータを使用しない場合には、対応するデータ記憶部14に格納されたデータを、外部記憶部20に退避しておく。
As described above, in the
また、演算装置10では、処理演算部11が演算処理する際に使用するデータが、すでにデータ記憶部14のいずれかに格納されている場合には、そのデータを再び外部記憶部20から読み出すのではなく、データ記憶部14同士でコピーを行うことによって、外部記憶部20へのアクセス回数を増やさないようにする。
In addition, in the
<第1の動作>
次に、演算装置10の動作について説明する。まず、演算装置10の動作において、タスク制御部12が、タスクキュー121に格納されたそれぞれのタスクを実行する際に使用する外部記憶部20のデータのデータ記憶部14への格納状況を確認し、データ記憶部14に格納されていないデータを、DMAによって外部記憶部20から取得する(読み出す)ためのアクセス指示(以下「DMAアクセス指示」という)を、メモリ制御部13に出力する第1の動作について説明する。図3は、本実施形態の演算装置10に備えたタスク制御部12の概略構成、およびタスク制御部12の動作の一例を説明する図である。
<First operation>
Next, the operation of the
上述したように、タスク制御部12は、DMAによって外部記憶部20にアクセスするためのDMAアクセス指示を、メモリ制御部13に出力する。このため、タスク制御部12には、図3に示したように、タスクキュー121およびデータ転送情報テーブル122に加えて、DMAリクエスト発生部123を備えている。DMAリクエスト発生部123は、タスクキュー121に順次格納されたそれぞれのタスクに基づいて決定されたタイミングのときに、DMAアクセス指示をメモリ制御部13に出力する。
As described above, the
また、図3には、タスク制御部12に備えたタスクキュー121のそれぞれにタスクが格納されている状態を示している。なお、図3においてタスクキュー121内に示したタスク番号は、タスクキュー121にそれぞれのタスクが格納された順番を表し、併せて、それぞれのタスクを実行する際に使用する外部記憶部20の先頭アドレスを示している。図3においては、タスク0は外部記憶部20の先頭アドレス0x1000から格納されたデータを使用するタスクであることを示し、タスク1は外部記憶部20の先頭アドレス0x1280から格納されたデータを使用するタスクであることを示し、タスク2は外部記憶部20の先頭アドレス0x1500から格納されたデータを使用するタスクであることを示している。
FIG. 3 shows a state in which tasks are stored in each of the
また、図3には、タスク制御部12に備えたデータ転送情報テーブル122に保持している情報を示している。図3に示したデータ転送情報テーブル122内に示した“#(シャープ)”に続く数字は、データ転送情報テーブル122に対応付けられているデータ記憶部14を識別するためのテーブル番号を表し、外部記憶部20の先頭アドレスは、テーブル番号で表されるデータ記憶部14に格納されているデータに対応する外部記憶部20の先頭アドレスを示している。図3においては、テーブル番号#0で表されるデータ記憶部14には、外部記憶部20の先頭アドレス0x1000から格納されたデータが格納されていることを示し、テーブル番号#1およびテーブル番号#2で表されるデータ記憶部14には、外部記憶部20のデータが格納されていないことを示している。
FIG. 3 shows information held in the data transfer information table 122 provided in the
なお、以下の説明においては、それぞれのタスクを処理演算部11が実行する際に使用するデータの量と、データ記憶部14に格納することができるデータの量、すなわち、データ記憶部14の記憶領域のサイズは同じであるものとし、そのデータの量は、データ量0x780であるものとして説明する。また、タスク番号は、それぞれのタスクが処理演算部11に出力される順番も示しているものとする。また、テーブル番号#0に対応するデータ記憶部14を、「データ記憶部14a」とし、テーブル番号#1に対応するデータ記憶部14を、「データ記憶部14b」とし、テーブル番号#2に対応するデータ記憶部14を、「データ記憶部14c」とする。
In the following description, the amount of data used when the
ここで、DMAリクエスト発生部123の構成および動作について説明する。DMAリクエスト発生部123は、タスクキュー121に順次格納されたそれぞれのタスクに基づいて、タスクが示す外部記憶部20の先頭アドレスからデータ量0x780のデータを、このタスクが割り当てられた処理演算部11が実際にタスクを実行するタイミングまでに事前に取得する(読み出す)ためのDMAのアクセス指示を、メモリ制御部13に出力する。DMAリクエスト発生部123は、使用アドレス選択部1231と、格納済みアドレス選択部1232と、アドレス比較部1233と、データ量比較部1234と、DMAリクエストコマンド生成部1235と、を備えている。
Here, the configuration and operation of the
使用アドレス選択部1231は、タスクキュー121に格納されているタスクの内、次に処理演算部11に出力するタスクを選択し、選択したタスクが示している外部記憶部20の先頭アドレスを取得する。そして。使用アドレス選択部1231は、取得した外部記憶部20の先頭アドレスを使用アドレスとして、アドレス比較部1233とDMAリクエストコマンド生成部1235とに出力する。
The used
格納済みアドレス選択部1232は、データ転送情報テーブル122において、外部記憶部20のデータが格納されていることを表しているテーブル番号を選択し、選択したテーブル番号の情報内に示されている外部記憶部20の先頭アドレスを取得する。そして、格納済みアドレス選択部1232は、取得した外部記憶部20の先頭アドレスを格納済みアドレスとして、アドレス比較部1233に出力する。また、格納済みアドレス選択部1232は、格納済みアドレスを取得したデータ転送情報テーブル122のテーブル番号を、DMAリクエストコマンド生成部1235に出力する。
The stored
アドレス比較部1233は、使用アドレス選択部1231から入力された使用アドレスと、格納済みアドレス選択部1232から入力された格納済みアドレスとを比較する。そして、アドレス比較部1233は、比較結果をデータ量比較部1234とDMAリクエストコマンド生成部1235とに出力する。
The
アドレス比較部1233による使用アドレスと格納済みアドレスとの比較においては、まず、使用アドレスの値と格納済みアドレスの値との差分値(使用アドレスの値−格納済みアドレスの値)を算出する。ここでアドレス比較部1233が算出した差分値の符号は、タスクを実行する際に使用する外部記憶部20のデータの先頭の位置と、データ記憶部14にすでに格納されている外部記憶部20のデータの先頭の位置との関係を表している。
In the comparison between the used address and the stored address by the
より具体的には、差分値の符号が“+(プラス)”である場合は、タスクを実行する際に使用する外部記憶部20のデータの先頭の位置が、データ記憶部14にすでに格納されている外部記憶部20のデータの先頭の位置よりも後にある、すなわち、データ記憶部14にすでに格納されている外部記憶部20のデータの先頭の位置よりも後側のデータを使用するタスクであることを表す。逆に、差分値の符号が“−(マイナス)”である場合は、タスクを実行する際に使用する外部記憶部20のデータの先頭の位置が、データ記憶部14にすでに格納されている外部記憶部20のデータの先頭の位置よりも前にある、すなわち、データ記憶部14にすでに格納されている外部記憶部20のデータの先頭の位置よりも前側のデータを使用するタスクであることを表す。アドレス比較部1233は、タスクを実行する際に使用する外部記憶部20のデータの位置関係を含む差分値を、DMAリクエストコマンド生成部1235に出力する。
More specifically, when the sign of the difference value is “+ (plus)”, the leading position of the data in the
その後、アドレス比較部1233は、算出した差分値の絶対値を算出する。すなわち、アドレス比較部1233は、使用アドレスの値と格納済みアドレスの値との差の絶対値(|使用アドレスの値−格納済みアドレスの値|)の算出を行う。第1の動作では、タスクを実行する際に使用するデータの量と、データ記憶部14に格納することができるデータの量(データ記憶部14の記憶領域のサイズ)が同じである。このため、アドレス比較部1233が算出した絶対値の値は、タスクを実行する際に使用する外部記憶部20のデータの先頭の位置と、データ記憶部14にすでに格納されている外部記憶部20のデータの先頭の位置との差の大きさであるが、この値は、データ記憶部14にすでに格納されているデータと重複していないデータの量に相当し、外部記憶部20から読み出すデータの量を表していることになる。アドレス比較部1233は、外部記憶部20から読み出すデータの量を表す絶対値を、データ量比較部1234に出力する。
Thereafter, the
データ量比較部1234は、アドレス比較部1233から入力された絶対値と、データ記憶部14の記憶領域のサイズとを比較、すなわち、外部記憶部20から読み出すデータの量と、データ記憶部14に格納することができるデータの量とを比較する。そして、データ量比較部1234は、比較した結果に基づいて、DMAリクエストコマンド生成部1235を起動するための起動信号を出力する。
The data amount
より具体的には、データ量比較部1234は、外部記憶部20から読み出すデータの量がデータ記憶部14に格納することができるデータの量よりも小さい(絶対値<サイズ)場合、すなわち、外部記憶部20から読み出すデータがデータ記憶部14の記憶領域に収まる場合に、DMAリクエストコマンド生成部1235にDMAリクエストコマンドを生成させるための起動信号を出力する。
More specifically, the data amount
DMAリクエストコマンド生成部1235は、使用アドレス選択部1231から入力された使用アドレスと、格納済みアドレス選択部1232から入力されたテーブル番号と、アドレス比較部1233から入力された差分値と、データ量比較部1234から入力された起動信号とに基づいて、DMAアクセス指示におけるDMAリクエストコマンドを生成する。
The DMA request
なお、DMAリクエストコマンド生成部1235が生成するDMAリクエストコマンドは、DMAアクセス指示によってアクセスする外部記憶部20およびデータ記憶部14のアドレスや、DMAで転送するデータの量を設定するコマンドである。DMAリクエスト発生部123は、DMAリクエストコマンド生成部1235が生成したDMAリクエストコマンドをメモリ制御部13に出力して設定をした後、DMAによるデータ転送を開始するためのDMA開始指示を、メモリ制御部13に出力する。以下の説明においては、メモリ制御部13に対するDMAリクエストコマンドの設定と、DMA開始指示とを併せて、タスク制御部12がメモリ制御部13に出力するDMAアクセス指示とする。
The DMA request command generated by the DMA request
次に、DMAリクエストコマンド生成部1235によるDMAリクエストコマンドの生成方法について説明する。図4は、本実施形態の演算装置10に備えたタスク制御部12による第1の動作における処理手順を示したフローチャートである。図4には、DMAリクエストコマンド生成部1235がDMAリクエストコマンドを生成する際の処理手順を示している。
Next, a method for generating a DMA request command by the DMA request
DMAリクエストコマンド生成部1235は、データ量比較部1234から起動信号が入力されると、DMAリクエストコマンドを生成する処理を実行する。まず、DMAリクエストコマンド生成部1235は、アドレス比較部1233から入力された差分値が0以上であるか否かを確認する(ステップS1)。このステップS1の確認によって、上述したように、タスクを実行する際に使用する外部記憶部20のデータの先頭の位置が、データ記憶部14にすでに格納されている外部記憶部20のデータの先頭の位置よりも前にあるか後にあるかを確認することができる。
When the activation signal is input from the data amount
ステップS1において、差分値が0以上である場合(ステップS1の“YES”)、すなわち、差分値の符号が“+(プラス)”である場合には、DMAリクエストコマンド生成部1235は、タスクを実行する際に使用する外部記憶部20のデータの先頭の位置が、データ記憶部14にすでに格納されている外部記憶部20のデータの先頭の位置よりも後にあると判断する。そして、DMAリクエストコマンド生成部1235は、最初にデータ記憶部14同士で重複しているデータをコピーするためのDMAリクエストコマンドを生成する(ステップS11)。
In step S1, if the difference value is 0 or more (“YES” in step S1), that is, if the sign of the difference value is “+ (plus)”, the DMA request
より具体的には、ステップS11において、DMAリクエストコマンド生成部1235は、データ記憶部14にすでに格納されている後側のデータを、タスクを実行する処理演算部11に対応したデータ記憶部14の前側にコピーするDMAを行う際の設定値を生成する。例えば、DMAの転送元アドレス(ソースアドレス)を、格納済みアドレス選択部1232から入力されたテーブル番号に対応するデータ記憶部14の基準のアドレス(ベースアドレス)に差分値を加算した値にし、DMAの転送先アドレス(ディスティネーションアドレス)を、タスクを実行する処理演算部11に対応したデータ記憶部14のベースアドレスにする。また、DMAにおけるデータの転送量を、データ記憶部14の記憶領域のサイズから差分値を減算した量にする。
More specifically, in step S11, the DMA request
これにより、DMAアクセス指示に応じて、例えば、テーブル番号#1に対応するデータ記憶部14bには、テーブル番号#0に対応するデータ記憶部14aのベースアドレスから差分値だけ後に格納されているそれぞれのデータが、データ記憶部14bの記憶領域のサイズ(=データ量0x780)から差分値を減算した量だけ、順次コピーされることになる。このとき、データ記憶部14bにコピーされるデータ記憶部14aのそれぞれのデータは、データ記憶部14bのベースアドレス、すなわち、先頭の位置から順次格納される。
Thereby, according to the DMA access instruction, for example, each of the
続いて、DMAリクエストコマンド生成部1235は、外部記憶部20からデータを読み出してデータ記憶部14に格納するためのDMAリクエストコマンドを生成する(ステップS12)。
Subsequently, the DMA request
より具体的には、ステップS12において、DMAリクエストコマンド生成部1235は、ステップS11でデータ記憶部14の前側にコピーしたデータの後側に、外部記憶部20から読み出したデータを追加して格納するDMAを行う際の設定値を生成する。例えば、DMAのソースアドレスを、使用アドレス選択部1231から入力された使用アドレスにステップS11において転送した転送量を加算した値にし、DMAのディスティネーションアドレスを、タスクを実行する処理演算部11に対応したデータ記憶部14のベースアドレスにステップS11において転送した転送量を加算した値にする。また、DMAにおけるデータの転送量を、差分値の量にする。
More specifically, in step S12, the DMA request
これにより、DMAアクセス指示に応じて、例えば、テーブル番号#1に対応するデータ記憶部14bには、外部記憶部20の先頭アドレスから転送量だけ後に格納されているそれぞれのデータが、外部記憶部20から読み出した差分値の量だけ、順次格納される。このとき、データ記憶部14bに格納されるそれぞれのデータは、ステップS11においてデータ記憶部14bにコピーされたデータ記憶部14aのデータの後側に引き続き、順次格納される。
Thereby, according to the DMA access instruction, for example, the
また、ステップS1において、差分値が0以上でない場合(ステップS1の“NO”)、すなわち、差分値の符号が“−(マイナス)”である場合には、DMAリクエストコマンド生成部1235は、タスクを実行する際に使用する外部記憶部20のデータの先頭の位置が、データ記憶部14にすでに格納されている外部記憶部20のデータの先頭の位置よりも前にあると判断する。そして、DMAリクエストコマンド生成部1235は、最初に重複していないデータを外部記憶部20から読み出すためのDMAリクエストコマンドを生成する(ステップS21)。
In step S1, if the difference value is not equal to or greater than 0 (“NO” in step S1), that is, if the sign of the difference value is “− (minus)”, the DMA request
より具体的には、ステップS21において、DMAリクエストコマンド生成部1235は、外部記憶部20から読み出したデータを、タスクを実行する処理演算部11に対応したデータ記憶部14の前側に格納するDMAを行う際の設定値を生成する。例えば、DMAのソースアドレスを、使用アドレス選択部1231から入力された使用アドレスの値にし、DMAのディスティネーションアドレスを、タスクを実行する処理演算部11に対応したデータ記憶部14のベースアドレスにする。また、DMAにおけるデータの転送量を、差分値の逆数(差分値の符号を逆にした値)の量にする。
More specifically, in step S21, the DMA request
これにより、DMAアクセス指示に応じて、例えば、テーブル番号#1に対応するデータ記憶部14bには、外部記憶部20の先頭アドレスから格納されているそれぞれのデータが、外部記憶部20から読み出した差分値の逆数の量だけ、順次格納される。このとき、データ記憶部14bに格納されるそれぞれのデータは、データ記憶部14bのベースアドレス、すなわち、先頭の位置から順次格納される。
Thereby, according to the DMA access instruction, for example, each data stored from the head address of the
続いて、DMAリクエストコマンド生成部1235は、データ記憶部14同士で重複しているデータをコピーするためのDMAリクエストコマンドを生成する(ステップS22)。
Subsequently, the DMA request
より具体的には、ステップS22において、DMAリクエストコマンド生成部1235は、ステップS21でデータ記憶部14の前側に格納した外部記憶部20から読み出したデータの後側に、データ記憶部14にすでに格納されているデータをコピーして追加するDMAを行う際の設定値を生成する。例えば、DMAのソースアドレスを、格納済みアドレス選択部1232から入力されたテーブル番号に対応するデータ記憶部14のベースアドレスの値にし、DMAのディスティネーションアドレスを、タスクを実行する処理演算部11に対応したデータ記憶部14のベースアドレスにステップS21において転送した転送量を加算した値にする。また、DMAにおけるデータの転送量を、データ記憶部14の記憶領域のサイズから差分値の逆数を減算した量にする。
More specifically, in step S22, the DMA request
これにより、DMAアクセス指示に応じて、例えば、テーブル番号#1に対応するデータ記憶部14bには、テーブル番号#0に対応するデータ記憶部14aのベースアドレスから格納されているそれぞれのデータが、データ記憶部14bの記憶領域のサイズ(=データ量0x780)から差分値の逆数を減算した量だけ、順次コピーされることになる。このとき、データ記憶部14bにコピーされるデータ記憶部14aのそれぞれのデータは、ステップS11においてデータ記憶部14bに格納された外部記憶部20から読み出したデータの後側に引き続き、順次格納される。
Thereby, according to the DMA access instruction, for example, each data stored from the base address of the
このようにして、DMAリクエストコマンド生成部1235は、データ記憶部14同士で重複しているデータをコピーするためのDMAリクエストコマンドと、外部記憶部20からデータを読み出してデータ記憶部14に格納するためのDMAリクエストコマンドとを生成する。これにより、DMAアクセス指示に応じて、データ記憶部14には、記憶領域のサイズ(=データ量0x780)分のデータが格納されることになる。
In this way, the DMA request
また、DMAリクエストコマンド生成部1235は、アドレス比較部1233から入力された差分値に基づいて、データ記憶部14同士で重複しているデータをコピーするためのDMAリクエストコマンドと、外部記憶部20からデータを読み出してデータ記憶部14に格納するためのDMAリクエストコマンドとを生成する順番を変更する。これにより、データ記憶部14には、タスク制御部12が出力したDMAアクセス指示に応じて、対応する処理演算部11がタスクを実行する際に使用する外部記憶部20のデータが、処理演算部11が使用する順番で順次格納される。
Further, the DMA request
なお、図4に示した第1の動作における処理手順では、ステップS1において、DMAリクエストコマンド生成部1235が、アドレス比較部1233から入力された差分値が0以上であるか否かを確認することによって、先にデータ記憶部14同士で重複しているデータをコピーするか、外部記憶部20からデータを読み出してデータ記憶部14に格納するかを判断した。しかし、DMAリクエストコマンド生成部1235によって、先にデータ記憶部14同士で重複しているデータをコピーすると判断される場合には、アドレス比較部1233から入力された差分値が0である場合も含まれる。
In the processing procedure in the first operation shown in FIG. 4, in step S1, the DMA request
ここで、差分値が0であるということは、タスクを実行する際に使用する外部記憶部20のデータの先頭の位置が、データ記憶部14にすでに格納されている外部記憶部20のデータの先頭の位置と同じ位置であることを表している。つまり、次のタスクが割り当てられた処理演算部11は、以前のタスクを実行した他の処理演算部11が使用したデータと同じデータを使用して演算処理を実行することを表している。
Here, the difference value being 0 means that the position of the head of the data in the
この場合には、DMAリクエストコマンド生成部1235は、ステップS11において、データ記憶部14同士で重複しているデータをコピーするためのDMAリクエストコマンドのみを生成し、ステップS12における外部記憶部20からデータを読み出してデータ記憶部14に格納するためのDMAリクエストコマンドを生成しないで、DMAリクエストコマンドを生成する処理を完了することになる。なお、このときのDMAのソースアドレスおよびディスティネーションアドレスは、上述したステップS11におけるソースアドレスおよびディスティネーションアドレスと同様であり、DMAにおけるデータの転送量のみが、データ記憶部14の記憶領域のサイズ(=データ量0x780)となる。
In this case, the DMA request
また、タスク制御部12が出力したDMAアクセス指示に応じて、メモリ制御部13がそれぞれのデータ記憶部14に格納されているデータを変更した後、タスク制御部12内のデータ転送情報テーブル122を更新する。
In addition, after the
次に、タスク制御部12内のデータ転送情報テーブル122を更新する動作について説明する。図5は、本実施形態の演算装置10に備えたタスク制御部12内のデータ転送情報テーブル122を更新する動作の一例を説明する図である。図5には、データ転送情報テーブル122の更新に関連する演算装置10内の構成要素のみを示している。
Next, an operation for updating the data transfer information table 122 in the
メモリ制御部13は、第1の動作によってタスク制御部12から出力されたDMAアクセス指示に応じて、外部記憶部20およびデータ記憶部14に対するDMAを行う。これにより、データ記憶部14に格納されている外部記憶部20のデータの範囲が変更され、データ記憶部14に格納されたデータに対応する外部記憶部20の先頭アドレスも変更される。
The
その後、メモリ制御部13は、データ記憶部14に格納されているデータが変更されたことを表すテーブル更新情報を、タスク制御部12に出力する。より具体的には、メモリ制御部13は、格納しているデータを変更したデータ記憶部14を識別する情報と、このデータ記憶部14に格納されているデータに対応する外部記憶部20の先頭の位置を表す情報とを、タスク制御部12に出力する。例えば、メモリ制御部13は、データ転送情報テーブル122において対応するテーブル番号と、外部記憶部20の先頭アドレスとを、タスク制御部12に出力する。
Thereafter, the
タスク制御部12は、メモリ制御部13から入力されたテーブル更新情報に基づいて、データ転送情報テーブル122に保持している情報を更新する。図5には、データ記憶部14bに外部記憶部20の先頭アドレス0x1000から格納されたデータを使用するタスク1に対応したデータが新たに格納され、データ記憶部14bに対応するデータ転送情報テーブル122の外部記憶部20の先頭アドレス(格納済みアドレス)の情報が“0x1000”に更新された場合を示している。また、図5には、データ記憶部14cに外部記憶部20の先頭アドレス0x2000から格納されたデータを使用するタスク2に対応したデータが新たに格納され、データ記憶部14cに対応するデータ転送情報テーブル122の外部記憶部20の先頭アドレス(格納済みアドレス)の情報が“0x2000”に更新された場合を示している。
The
ここで、メモリ制御部13がデータ記憶部14同士、または外部記憶部20とデータ記憶部14との間でデータを転送するタイミングについて説明する。図6は、本実施形態の演算装置10に備えたメモリ制御部13によるデータ転送のタイミングを示したタイミングチャートである。図6に示したタイミングチャートでは、図5に示したタスク0〜タスク2を実行する際に使用するデータを外部記憶部20から読み出して、演算装置10に備えた3つのデータ記憶部14a〜データ記憶部14cのそれぞれに格納する場合の一例を示している。
Here, the timing at which the
タスク制御部12は、最初に外部記憶部20の先頭アドレス0x1000からデータを読み出してデータ記憶部14aに格納するためのDMAアクセス指示をメモリ制御部13に出力する。このDMAアクセス指示に応じて、メモリ制御部13は、外部記憶部20の先頭アドレス0x1000から格納されたデータを順次読み出し、データ記憶部14aのベースアドレス、すなわち、先頭の位置から順次格納する。データ記憶部14aへのデータの格納が完了すると、外部記憶部20の先頭アドレス0x1000から格納されたデータを使用するタスク0の演算処理に応じて、データ記憶部14aに格納されたデータが順次読み出される。
The
また、タスク制御部12は、データ記憶部14aに格納されているデータをデータ記憶部14bにコピーするためのDMAアクセス指示をメモリ制御部13に出力する。このDMAアクセス指示に応じて、メモリ制御部13は、データ記憶部14aのベースアドレスから格納されているデータを順次読み出して、データ記憶部14bのベースアドレスから順次格納(コピー)する。データ記憶部14bへのデータのコピーが完了すると、外部記憶部20の先頭アドレス0x1000から格納されたデータを使用するタスク1の演算処理に応じて、データ記憶部14bに格納されたデータが順次読み出される。
Further, the
その後、タスク制御部12は、外部記憶部20の先頭アドレス0x2000からデータを読み出してデータ記憶部14aに格納するためのDMAアクセス指示をメモリ制御部13に出力する。このDMAアクセス指示に応じて、メモリ制御部13は、外部記憶部20の先頭アドレス0x2000から格納されたデータを順次読み出し、データ記憶部14cのベースアドレスから順次格納する。データ記憶部14cへのデータの格納が完了すると、外部記憶部20の先頭アドレス0x2000から格納されたデータを使用するタスク2の演算処理に応じて、データ記憶部14cに格納されたデータが順次読み出される。
Thereafter, the
このように、タスク制御部12は、データ記憶部14同士で重複しているデータをコピーするためのDMAアクセス指示と、外部記憶部20からデータを読み出してデータ記憶部14に格納するためのDMAアクセス指示とを、それぞれメモリ制御部13に出力することによって、処理演算部11がそれぞれのタスクを実行する際に、外部記憶部20へのアクセス回数を増やさないようにする。図6に示したタイミングチャートでは、3つのタスクを実行する際の外部記憶部20へのアクセスする回数が少なくなり、2回になっている。
As described above, the
なお、上述したように、最初に外部記憶部20の先頭アドレス0x1000からデータを読み出してデータ記憶部14aに格納し、データ記憶部14aに格納されているデータをデータ記憶部14bにコピーする動作以外でも、データ記憶部14aとデータ記憶部14bとに同じデータを格納することができる。例えば、タスク制御部12が、外部記憶部20の先頭アドレス0x1000からデータを読み出してデータ記憶部14aとデータ記憶部14bとに同時に格納するためのDMAアクセス指示をメモリ制御部13に出力してもよい。
As described above, other than the operation of first reading data from the head address 0x1000 of the
このように、タスク制御部12は、複数のデータ記憶部14に同時に同じデータを格納するためのDMAアクセス指示をメモリ制御部13に出力することもできる。ここで、複数のデータ記憶部14に同時に同じデータを格納するためのDMAアクセス指示は、上述したような、外部記憶部20から読み出したデータを複数のデータ記憶部14に同時に格納するDMAアクセス指示のみではなく、データ記憶部14同士で重複しているデータをコピーするためのDMAアクセス指示であってもよい。この場合には、例えば、データ記憶部14aに格納されているデータを、データ記憶部14bとデータ記憶部14cとにコピーすることができる。
In this way, the
なお、タスクを実行する際に使用するデータを、データ記憶部14にコピーまたは格納際には、このデータ記憶部14に演算処理に必要な前のデータが格納されていないか、すなわち、演算処理に必要なデータが残っていないかを確認し、演算処理に必要な前のデータが格納されていない場合にのみ、タスクを実行する際に使用するデータをコピーまたは格納する必要がある。このため、タスク制御部12は、データ記憶部14に演算処理に必要な前のデータが格納されている、すなわち、演算処理に必要なデータが残っている場合に、データ記憶部14に現在格納されているデータを、外部記憶部20に退避しておくためのDMAアクセス指示を、メモリ制御部13に出力する。このデータを退避しておくためのDMAアクセス指示は、データ記憶部14同士で重複しているデータをコピーするためのDMAアクセス指示、および外部記憶部20からデータを読み出してデータ記憶部14に格納するためのDMAアクセス指示よりも前に出力する。
It should be noted that when data used for executing a task is copied or stored in the data storage unit 14, whether or not the previous data necessary for the arithmetic processing is stored in the data storage unit 14, that is, the arithmetic processing It is necessary to copy or store the data used when executing the task only when the data necessary for the operation processing is checked and only the previous data necessary for the arithmetic processing is not stored. For this reason, the
<第2の動作>
次に、演算装置10の動作において、データ記憶部14に現在格納されているデータを外部記憶部20に退避する(書き込む)際の、タスク制御部12の第2の動作について説明する。第2の動作は、タスクキュー121に格納されたそれぞれのタスクを実行する際に使用する外部記憶部20のデータをDMAによって外部記憶部20から取得する(読み出す)ためのDMAアクセス指示を出力する前に、データ記憶部14に現在格納されている演算処理に必要な前のデータを、DMAによって外部記憶部20に退避する(書き込む)ためのアクセス指示(以下「DMA退避アクセス指示」という)を、メモリ制御部13に出力する動作である。
<Second operation>
Next, a second operation of the
なお、本第2の動作においては、タスクキュー121に格納されたそれぞれのタスクの内、処理演算部11に出力される順番が近いタスクを実行する際に使用する外部記憶部20のデータの退避を行わないようにするために、予め定めた退避閾値を設定する。この退避閾値を設定することにより、タスク制御部12は、退避閾値より前のタスクを実行した処理演算部11に対応したデータ記憶部14を、退避する対象のデータ記憶部14から除外する。これにより、演算装置10では、データ記憶部14に格納されている演算処理に必要なデータが外部記憶部20に一旦退避され、再び外部記憶部20から取得される(読み出される)という、不要な外部記憶部20へのアクセス、つまり、データ記憶部14のデータの不要な退避を回避することによって、外部記憶部20へのアクセス回数を低減することができる。また、演算装置10では、例えば、外部記憶部20から取得したままの状態のデータを外部記憶部20に退避してしまうなど、データ記憶部14に格納されたデータを不用意に退避することによって、外部記憶部20へのアクセス回数が増加してしまうことを回避することができる。
In the second operation, of the tasks stored in the
図7は、本実施形態の演算装置10に備えたタスク制御部12の概略構成、およびタスク制御部12の動作の一例を説明する図である。本第2の動作の説明においても、タスク制御部12の概略構成は、図3に示したタスク制御部12の概略構成と同様である。
FIG. 7 is a diagram for explaining an example of a schematic configuration of the
また、図7にも、図3に示したタスク制御部12の概略構成と同様に、タスク制御部12に備えたタスクキュー121のそれぞれにタスクが格納されている状態を示し、タスク番号とそれぞれのタスクを実行する際に使用する外部記憶部20の先頭アドレス(使用アドレス)とを併せて示している。ただし、本第2の動作の説明においては、図7に示したように、タスク制御部12に格納されたタスクが、図3に示したタスクと異なる。なお、タスク制御部12は、基本的に、タスクキュー121にそれぞれのタスクが格納された順番で、それぞれのタスクを処理演算部11に出力するが、タスクの出力順番をタスク制御部12が制御することもできる。しかし、以下の説明においては、説明を容易にするため、タスク制御部12は、図7に示したそれぞれのタスクを、タスク番号の順番に、処理演算部11に出力するものとする。
FIG. 7 also shows a state in which tasks are stored in each of the
また、図7にも、図3に示したタスク制御部12の概略構成と同様に、タスク制御部12に備えたデータ転送情報テーブル122に保持している情報を示している。そして、図7に示したデータ転送情報テーブル122内の“#(シャープ)”に続く数字で表したテーブル番号や、外部記憶部20の先頭アドレス(格納済みアドレス)も、図3に示したタスク制御部12の概略構成と同様である。図7においては、テーブル番号#0で表されるデータ記憶部14には、外部記憶部20の先頭アドレス0x1000から格納されたデータが格納されていることを示し、テーブル番号#1およびテーブル番号#2で表されるデータ記憶部14には、外部記憶部20の先頭アドレス0x2000から格納されたデータが格納されていることを示している。
7 also shows information held in the data transfer information table 122 provided in the
また、以下の説明においても、テーブル番号#0に対応するデータ記憶部14を、「データ記憶部14a」とし、テーブル番号#1に対応するデータ記憶部14を、「データ記憶部14b」とし、テーブル番号#2に対応するデータ記憶部14を、「データ記憶部14c」とする。
In the following description, the data storage unit 14 corresponding to the
ここで、タスク制御部12の第2の動作、特にDMAリクエスト発生部123の動作について説明する。DMAリクエスト発生部123は、タスクキュー121に順次格納されたそれぞれのタスクを、処理演算部11のそれぞれに出力する。その際、DMAリクエスト発生部123に備えた使用アドレス選択部1231は、タスクキュー121に格納されているそれぞれのタスクが示している外部記憶部20の先頭アドレス(使用アドレス)を取得する。また、DMAリクエスト発生部123に備えた格納済みアドレス選択部1232は、データ転送情報テーブル122において、外部記憶部20のデータが格納されていることを表しているテーブル番号内に示されている外部記憶部20の先頭アドレス(格納済みアドレス)を取得する。
Here, the second operation of the
そして、DMAリクエスト発生部123は、取得した使用アドレスと格納済みアドレスとに基づいて、データ記憶部14のそれぞれを、データを退避する対象のデータ記憶部14から除外するか否かを判定する。そして、DMAリクエスト発生部123は、データを退避する対象から除外すると判定されたデータ記憶部14に格納されているデータの外部記憶部20への退避(書き込み)を行わず、データを退避する対象であると判定されたデータ記憶部14に格納されているデータのみを、外部記憶部20に退避する(書き込む)。すなわち、データを退避する対象であると判定されたデータ記憶部14のみ、格納するデータの変更を行う。
Then, the DMA
より具体的には、例えば、図7に示したタスク制御部12の状態で、退避閾値が“3”である場合、つまり、タスクキュー121に格納されたそれぞれのタスクの内、処理演算部11に出力される順番が近い2つ目のタスクを実行する処理演算部11に対応したデータ記憶部14までを、退避する対象のデータ記憶部14から除外する場合を考える。
More specifically, for example, when the save threshold is “3” in the state of the
まず、タスク0を対応する処理演算部11に出力したとき、データ転送情報テーブル122は、図7に示した状態になっている。その後、DMAリクエスト発生部123は、タスクキュー121に格納されているタスク1からタスク9までのそれぞれのタスクの使用アドレスと、データ転送情報テーブル122のテーブル番号#0〜テーブル番号#2のそれぞれの格納済みアドレスとを取得する。そして、DMAリクエスト発生部123は、退避閾値が“3”であるため、タスク1とタスク2とが示している使用アドレスと、テーブル番号#0〜テーブル番号#2のそれぞれの格納済みアドレスとに基づいて、データ記憶部14のそれぞれを、データを退避する対象のデータ記憶部14から除外するか否かを判定する。図7に示した状態の場合、テーブル番号#2に対応するデータ記憶部14cがデータを退避する対象のデータ記憶部14から除外され、テーブル番号#1に対応するデータ記憶部14bが、データを退避する対象のデータ記憶部14となる。
First, when the
その後、DMAリクエスト発生部123は、タスク1を処理演算部11に出力するために、事前にメモリ制御部13に出力するデータ記憶部14aに格納されているデータをデータ記憶部14bにコピーするためのDMAアクセス指示に先立って、データ記憶部14bに格納されているデータを外部記憶部20に退避するためのDMA退避アクセス指示を、メモリ制御部13に出力する。これにより、データ記憶部14bに格納されているデータが外部記憶部20に退避されたあと、タスク1を実行する際に使用する外部記憶部20のデータ(データ記憶部14aに格納されているデータ)を、テーブル番号#1に対応するデータ記憶部14bにコピーすることができる。
Thereafter, the DMA
なお、DMAリクエスト発生部123は、必要に応じてDMA退避アクセス指示をメモリ制御部13に出力する。つまり、データ記憶部14に現在格納されているデータが、演算処理に必要なデータではない場合には、データ記憶部14に現在格納されているデータを上書きしても問題がないため、DMAリクエスト発生部123は、DMA退避アクセス指示をメモリ制御部13に出力しないこともある。
The DMA
次に、タスク制御部12の第2の動作、特にDMAリクエスト発生部123の動作における処理手順について説明する。図8は、本実施形態の演算装置10に備えたタスク制御部12が、データ記憶部14に格納されているデータを退避する処理手順を示したフローチャートである。なお、図8に示したデータを退避する処理手順の説明においては、図7を参照し、タスクキュー121に格納されたそれぞれのタスクと、データ転送情報テーブル122に保持されたそれぞれのデータ記憶部14の情報が、図7に示した状態であるものとして説明する。また、退避閾値は“3”であるものとして説明する。
Next, a processing procedure in the second operation of the
まず、タスク制御部12の第2の動作において、DMAリクエスト発生部123は、データ転送情報テーブル122に保持している情報を確認し、外部記憶部20のデータが格納されていることを表しているテーブル番号に空きがあるか否か、すなわち、外部記憶部20のデータを格納することができる空きの状態のデータ記憶部14があるか否かを確認する(ステップS3)。
First, in the second operation of the
ステップS3において、空きの状態のデータ記憶部14があると確認された場合(ステップS3の“YES”)には、図8に示した処理手順を完了し、次のタスクを実行する処理演算部11に対応するデータ記憶部14に外部記憶部20のデータを格納するための処理を行う。また、ステップS3において、空きの状態のデータ記憶部14がないと確認された場合(ステップS3の“NO”)には、ステップS31から、データ記憶部14のそれぞれを、データを退避する対象のデータ記憶部14から除外するか否かの判定処理、すなわち、データ記憶部14の退避する対象からの除外処理を開始する。
If it is confirmed in step S3 that there is an empty data storage unit 14 ("YES" in step S3), the processing operation unit that completes the processing procedure shown in FIG. 8 and executes the
データ記憶部14の退避する対象からの除外処理では、DMAリクエスト発生部123は、まず、ステップS31においてタスク番号iを“0”にクリアする。続いて、DMAリクエスト発生部123は、ステップS32においてテーブル番号#jを“0”にクリアする。
In the exclusion process from the target to be saved in the data storage unit 14, the DMA
続いて、DMAリクエスト発生部123は、タスク番号iのタスクを実行する際に使用するデータを保持している外部記憶部20の先頭アドレス(使用アドレス)が、データ転送情報テーブル122のテーブル番号#jに保持された外部記憶部20の先頭アドレス(格納済みアドレス)の情報と同じであるか否かを確認する(ステップS33)。
Subsequently, the DMA
ステップS33において、タスク番号iのタスクを実行する際に使用するデータを保持している外部記憶部20の先頭アドレス(使用アドレス)が、データ転送情報テーブル122のテーブル番号#jに保持された外部記憶部20の先頭アドレス(格納済みアドレス)の情報と同じであると確認された場合(ステップS33の“YES”)には、ステップS34においてテーブル番号#jに対応するデータ記憶部14を、データを退避する対象のデータ記憶部14から除外する。
In step S33, the external address stored in the table number #j of the data transfer information table 122 is the start address (use address) of the
なお、図8に示したステップS34では、データを退避する対象のデータ記憶部14から除外するための方法として、データ転送情報テーブル122に保持している不図示の書き換えNGフラグ[#j]をON状態にする方法を示している。しかし、格納しているデータを退避する対象のデータ記憶部14から除外するための方法は、図8に示した処理手順に示した方法に限定されるものではない。 In step S34 shown in FIG. 8, a rewrite NG flag [#j] (not shown) held in the data transfer information table 122 is used as a method for excluding data from the data storage unit 14 to be saved. It shows a method of turning on. However, the method for excluding the stored data from the target data storage unit 14 is not limited to the method shown in the processing procedure shown in FIG.
図7に示した状態の場合、最初に処理演算部11に出力するタスク0は、外部記憶部20の先頭アドレス(使用アドレス)0x1000から格納されたデータを使用するタスクであり、データ転送情報テーブル122のテーブル番号#0に保持された外部記憶部20の先頭アドレス(格納済みアドレス)の情報と同じであるため、ステップS33における確認の結果が“YES”となる。これにより、ステップS34において、テーブル番号#0に保持している書き換えNGフラグ[#0]をON状態に変更され、対応するデータ記憶部14aが、データを退避する対象のデータ記憶部14から除外される。
In the state shown in FIG. 7, the
また、タスク0の使用アドレスと、データ転送情報テーブル122のテーブル番号#1に保持された外部記憶部20の先頭アドレス(格納済みアドレス)の情報とは異なるため、ステップS33における確認の結果が“NO”となる。これにより、テーブル番号#1に対応するデータ記憶部14bは、データを退避する対象のデータ記憶部14になる。なお、このとき、テーブル番号#1に保持している書き換えNGフラグ[#1]は変更されるOFF状態のままである。
Further, since the used address of
同様に、ステップS32のループによって、データ転送情報テーブル122の全てのテーブル番号#jに保持された外部記憶部20の先頭アドレス(格納済みアドレス)の情報が、タスク0の使用アドレスと同じであるかの確認がされる。その後、全てのテーブル番号#jに対するステップS32のループの処理が完了すると、DMAリクエスト発生部123は、ステップS31においてタスク番号iに1を加えてタスク番号i=1とする。そして、同様に、ステップS32のループによる、データ転送情報テーブル122の全てのテーブル番号#jに保持された外部記憶部20の先頭アドレス(格納済みアドレス)の情報が、タスク1の使用アドレスと同じであるかの確認がされる。
Similarly, the information of the start address (stored address) of the
このステップS31のループによって、退避閾値よりも小さいタスク番号iのタスクの使用アドレスと、データ転送情報テーブル122の全てのテーブル番号#jに保持された格納済みアドレスとが同じであるか否かの確認がされ、データ転送情報テーブル122に保持しているそれぞれのテーブル番号#jに保持している書き換えNGフラグ[#j]が、順次更新される。 Whether or not the use address of the task with task number i smaller than the save threshold and the stored addresses held in all the table numbers #j of the data transfer information table 122 are the same by the loop of step S31. Confirmation is performed, and the rewrite NG flag [#j] held in each table number #j held in the data transfer information table 122 is sequentially updated.
その後、退避閾値よりも小さいタスク番号iに対するステップS31のループの処理が完了すると、DMAリクエスト発生部123は、ステップS41から、データを退避する対象のデータ記憶部14に現在格納されているデータの退避処理を開始する。
Thereafter, when the processing of the loop in step S31 for the task number i smaller than the save threshold is completed, the DMA
データ記憶部14に現在格納されているデータの退避処理では、DMAリクエスト発生部123は、まず、ステップS41においてテーブル番号#jを“0”にクリアする。続いて、DMAリクエスト発生部123は、それぞれのテーブル番号#jに保持している書き換えNGフラグ[#j]がON状態であるか否かを確認する(ステップS42)。
In the process of saving the data currently stored in the data storage unit 14, the DMA
ステップS42において、テーブル番号#jに保持している書き換えNGフラグ[#j]がON状態であると確認された場合(ステップS42の“YES”)には、DMAリクエスト発生部123は、ステップS41においてテーブル番号#jに1を加えてテーブル番号#j=1とする。そして、同様に、ステップS41のループによる、テーブル番号#jに保持している書き換えNGフラグ[#j]がON状態であるか否かの確認を行う。
In step S42, when it is confirmed that the rewrite NG flag [#j] held in the table number #j is in the ON state (“YES” in step S42), the DMA
また、ステップS42において、テーブル番号#jに保持している書き換えNGフラグ[#j]がON状態でない、すなわち、OFF状態であると確認された場合(ステップS42の“NO”)には、ステップS43においてステップS41のループを抜け出す。 If it is confirmed in step S42 that the rewrite NG flag [#j] held in the table number #j is not in the ON state, that is, in the OFF state (“NO” in step S42), the step In S43, the loop of Step S41 is exited.
そして、DMAリクエスト発生部123は、ステップS41のループを抜け出してきたとき、全てのテーブル番号#jに保持している書き換えNGフラグ[#j]の確認が完了したか否かを確認する。すなわち、演算装置10が備えている全てのデータ記憶部14に対応したデータ転送情報テーブル122の確認が完了したか否かを確認する(ステップS51)。
Then, when the DMA
ステップS51において、全てのテーブル番号#jに保持している書き換えNGフラグ[#j]の確認が完了した場合(ステップS51の“NO”)には、処理を完了する。このとき、演算装置10では、データ記憶部14に格納されているデータを外部記憶部20に退避しないことになる。これは、ステップS51において、全てのテーブル番号#jに保持している書き換えNGフラグ[#j]の確認が完了した場合(ステップS51の“NO”)には、ステップS42において、書き換えNGフラグ[#j]がOFF状態であると確認されたテーブル番号#jが確認できずにステップS41のループを抜け出してきたためである。すなわち、退避することができるデータを格納しているデータ記憶部14を発見することができなかったためである。この場合には、処理演算部11のいずれかが現在実行しているタスクの演算処理を完了した後に、その処理演算部11に次のタスクを割り当てる。
In step S51, when the confirmation of the rewrite NG flag [#j] held in all the table numbers #j is completed (“NO” in step S51), the processing is completed. At this time, the
また、ステップS51において、全てのテーブル番号#jに保持している書き換えNGフラグ[#j]の確認が完了していない場合(ステップS51の“NO”)には、ステップS52において、テーブル番号#jに対応するデータ記憶部14に格納されているデータを外部記憶部20に退避するためのDMA退避アクセス指示を、必要に応じてメモリ制御部13に出力する。
Further, in step S51, when the confirmation of the rewrite NG flag [#j] held in all the table numbers #j is not completed (“NO” in step S51), the table number # is determined in step S52. A DMA save access instruction for saving data stored in the data storage unit 14 corresponding to j to the
このように、タスク制御部12の第2の動作におけるデータ記憶部14に格納されているデータを退避する処理では、退避閾値を設定し、設定した退避閾値より前のタスクを実行した処理演算部11に対応したデータ記憶部14を、格納しているデータを退避する対象から除外する。これにより、演算装置10では、タスクキュー121に格納されたタスクの数が少ないなど、タスクを実行するまでの待ち時間が少ない場合に、データ記憶部14が空きの状態になるのを意図的に待つことができる。また、演算装置10では、退避閾値を設定することにより、処理演算部11に出力される順番が後の方のタスクを実行する際に使用する、演算処理に必要なデータを格納しているデータ記憶部14のみを、データを退避する対象のデータ記憶部14にすることができる。このことにより、演算装置10では、データ記憶部14に格納しているデータを不用意に退避することによって、外部記憶部20へのアクセス回数が増加してしまうことを回避し、外部記憶部20へのアクセス回数を低減することができる。
As described above, in the process of saving the data stored in the data storage unit 14 in the second operation of the
上記に述べたとおり、本発明を実施するための形態によれば、複数の処理演算部(プロセッサ)が連携して処理を行う演算装置において、それぞれの処理演算部がタスクを実行する際に使用する外部記憶部のデータが重複している場合には、外部記憶部にアクセスせずに、データ記憶部同士でデータをコピーする。そして、データ記憶部同士で重複していないデータのみを外部記憶部から取得して格納する。これにより、本発明を実施するための形態では、それぞれの処理演算部が、割り当てられたタスクを実行する際に外部記憶部にアクセスする回数を減らすことができる演算装置を提供することができる。 As described above, according to the embodiment for carrying out the present invention, in an arithmetic device in which a plurality of processing arithmetic units (processors) perform processing in cooperation, each processing arithmetic unit is used when executing a task. If the data stored in the external storage units overlap, the data storage units are copied without accessing the external storage units. Then, only data that is not duplicated between the data storage units is acquired from the external storage unit and stored. Thereby, in the form for implementing this invention, the arithmetic unit which can reduce the frequency | count that each process calculating part accesses an external memory part when performing the allocated task can be provided.
また、本発明を実施するための形態によれば、外部記憶部から取得したデータを格納するデータ記憶部に、演算処理に必要な前のデータが格納されている場合には、このデータを、事前に外部記憶部に退避しておく。このとき、本発明を実施するための形態では、退避閾値を設定し、タスクキューに格納されたそれぞれのタスクの内、出力される順番が近いタスクを実行する処理演算部に対応したデータ記憶部を、格納しているデータを退避する対象から除外する。これにより、本発明を実施するための形態では、データ記憶部に格納しているデータを不用意に退避することを回避し、外部記憶部にアクセスする回数を減らすことができる演算装置を提供することができる。 Further, according to the embodiment for carrying out the present invention, when the previous data necessary for the arithmetic processing is stored in the data storage unit that stores the data acquired from the external storage unit, Save to the external storage unit in advance. At this time, in a mode for carrying out the present invention, a data storage unit corresponding to a processing operation unit that sets a save threshold and executes a task in the order of output among the tasks stored in the task queue. Are excluded from the target of saving the stored data. Thus, in the embodiment for carrying out the present invention, there is provided an arithmetic device capable of avoiding inadvertently saving data stored in the data storage unit and reducing the number of times of accessing the external storage unit. be able to.
これらにより、本発明を実施するための形態では、演算装置を備えたシステムにおける消費電力を低減することができ、演算装置を備えたシステムの性能を向上させることができる。 Thus, in the embodiment for implementing the present invention, power consumption in a system including an arithmetic device can be reduced, and the performance of the system including the arithmetic device can be improved.
なお、本実施形態においては、データ転送情報テーブル122をタスク制御部12内に備えた構成について説明したが、演算装置10内でデータ転送情報テーブル122を備える位置は、本発明を実施するための形態の位置に限定されるものではない。例えば、データ転送情報テーブル122をメモリ制御部13内に備えた構成であってもよい。また、例えば、データ転送情報テーブル122を演算装置10内の別の構成要素として備えた構成であってもよい。この場合でも、タスク制御部12は、データ転送情報テーブル122に保持している情報を参照しながら、それぞれのアクセス指示をメモリ制御部13に出力する。
In the present embodiment, the configuration in which the data transfer information table 122 is provided in the
また、本実施形態においては、外部記憶部20が演算装置10に接続されている構成について説明したが、演算装置10と外部記憶部20との接続は、本発明を実施するための形態のように、演算装置10と外部記憶部20とが直接接続されている構成に限定されるものではない。例えば、外部記憶部20が、ネットワーク上に構成されたサーバであり、演算装置10とサーバとが、ネットワークを介して接続される構成であっても、同様に、本発明の考え方を適用することができる。この場合、例えば、メモリ制御部13は、通信部を介して、サーバからのデータの読み出し(受信)や、サーバへのデータの書き込み(送信)を行うと考えることができる。
In the present embodiment, the configuration in which the
また、本実施形態においては、タスク制御部12がアクセス指示をメモリ制御部13に出力するタイミングに関して説明していないが、このタイミングは、例えば、タスク制御部12が事前にわかっている、それぞれのタスクを実行する際の実行時間(サイクル数)などの情報に基づいて、外部記憶部20やデータ記憶部14にアクセスするタイミングを決定してもよい。また、例えば、タスクキュー121に格納されたタスクに含まれるプログラムのサイズや、データ量またはループ回数などのパラメータに基づいて、タスクを実行する際の実行時間(サイクル数)などを算出し、算出した実行時間(サイクル数)に基づいて、外部記憶部20やデータ記憶部14にアクセスするタイミングを決定する構成であってもよい。
In the present embodiment, the timing at which the
また、本実施形態においては、タスク制御部12が、タスクキュー121に格納されたそれぞれのタスクを出力する順番を制御する方法に関して説明していないが、このタスクを出力する順番は、例えば、タスクキュー121に格納されたそれぞれのタスクの優先度に基づいて、タスクを出力する順番を制御する構成であってもよい。
In the present embodiment, the
また、本実施形態においては、それぞれの処理演算部11の処理機能に関して説明していないが、例えば、演算装置10を、撮像装置などの撮像システム内に備えている場合には、それぞれの処理演算部11は、撮像システムにおける画像処理を行う処理機能を持っていると考えることができる。
In the present embodiment, the processing function of each
また、本実施形態においては、演算装置10に備えたそれぞれの処理演算部11が持っている処理機能について説明していない。しかし、例えば、演算装置10が、撮像装置などの撮像システムに備えた画像処理装置である場合には、それぞれの処理演算部11の処理機能は、YC変換処理、ノイズ除去処理、歪み補正処理、キズ補正処理、画像圧縮処理など、撮像システムにおける様々な画像処理を行うことができる処理機能であると考えられる。また、例えば、演算装置10が、撮像装置などの撮像システムに備えた画像処理装置内の画像認識部など、撮像システムにおける画像処理の一部の処理部である場合には、それぞれの処理演算部11の処理機能は、画像処理装置内の一部の処理部において種々の処理を行うための処理機能であると考えられる。
Moreover, in this embodiment, the processing function which each
以上、本発明の実施形態について、図面を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲においての種々の変更も含まれる。 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,11a,11b,11n・・・処理演算部
12・・・タスク制御部
121・・・タスクキュー(タスク制御部)
122・・・データ転送情報テーブル
123・・・DMAリクエスト発生部(タスク制御部)
1231・・・使用アドレス選択部(タスク制御部)
1232・・・格納済みアドレス選択部(タスク制御部)
1233・・・アドレス比較部(タスク制御部)
1234・・・データ量比較部(タスク制御部)
1235・・・DMAリクエストコマンド生成部(タスク制御部)
13・・・メモリ制御部
14,14a,14b,14n・・・データ記憶部
20・・・外部記憶部
DESCRIPTION OF
122... Data transfer information table 123... DMA request generation unit (task control unit)
1231: Used address selection unit (task control unit)
1232 ... Stored address selection unit (task control unit)
1233: Address comparison unit (task control unit)
1234... Data amount comparison unit (task control unit)
1235: DMA request command generation unit (task control unit)
13 ...
Claims (8)
それぞれの前記処理演算部が前記タスクに応じた演算処理を実行する際に使用するデータ、または前記タスクに応じた演算処理を実行した結果のデータを格納する複数のデータ記憶部と、
前記タスクに応じた演算処理を実行する際に使用するデータを接続された外部記憶部から読み出して前記データ記憶部に格納することと、前記データ記憶部に格納されている前記タスクに応じた演算処理を実行する際に使用するデータを前記データ記憶部同士で転送することと、前記データ記憶部に格納されている前記タスクに応じた演算処理を実行した結果のデータを接続された前記外部記憶部に書き込むこととを行うためのメモリ制御部と、
前記データ記憶部のそれぞれが格納しているデータの前記外部記憶部における記憶場所とデータ量を示す情報を保持するデータ転送情報テーブルと、
前記タスクを順次格納するタスクキューを具備し、該タスクキューに格納された前記タスクを、複数の前記処理演算部の内、いずれか1つの前記処理演算部に出力すると共に、アクセス指示の対象となるタスクに応じた演算処理を実行する際に使用するデータの前記外部記憶部における記憶場所とデータ量を示す情報と、前記データ転送情報テーブルに保持された情報を参照して、前記外部記憶部または前記データ記憶部へのアクセスを前記メモリ制御部に指示する前記アクセス指示を出力するタスク制御部と、
を備えることを特徴とする演算装置。 A plurality of processing operation units having a processing function for performing arithmetic processing according to the input task, and outputting information on the arithmetic processing to be executed next as the task;
A plurality of data storage units for storing data used when each of the processing calculation units executes a calculation process corresponding to the task, or data obtained as a result of executing the calculation process corresponding to the task;
Reading out data to be used when performing arithmetic processing according to the task from a connected external storage unit and storing it in the data storage unit, and calculating according to the task stored in the data storage unit and transferring the data to be used in performing the process in the data storage portions, the coupled data of a result of executing the operation processing in accordance with the tasks that are stored in the data storage unit the external storage A memory control unit for writing to the unit,
A data transfer information table for holding information indicating a storage location and a data amount of the data stored in each of the data storage units in the external storage unit;
A task queue for sequentially storing the tasks, the task stored in the task queue being output to any one of the processing arithmetic units among the processing arithmetic units; The external storage unit with reference to the information indicating the storage location and amount of data in the external storage unit of data used when executing the arithmetic processing according to the task and the information held in the data transfer information table Or a task control unit that outputs the access instruction to instruct the memory control unit to access the data storage unit;
An arithmetic device comprising:
アクセス指示の対象となるタスクに応じた演算処理を実行する際に使用するデータの前記外部記憶部における記憶場所とデータ量により、データの範囲を特定し、この特定したものを、第1の特定したデータの範囲とし、
前記データ転送情報テーブルに保持された情報に基づいて、前記データ記憶部毎に、当該データ記憶部が格納しているデータの前記外部記憶部における記憶場所とデータ量を特定し、この特定したものを、前記データ記憶部毎の、第2の特定したデータの範囲とし、
前記第1の特定したデータの範囲と、前記データ記憶部毎の、前記第2の特定したデータの範囲に基づいて、アクセス指示の対象となるタスクに対応する前記アクセス指示を出力する、
ことを特徴とする請求項1に記載の演算装置。 The task control unit
The range of data is specified by the storage location and the amount of data in the external storage unit of the data to be used when executing the arithmetic processing according to the task that is the target of the access instruction. Data range
The data based on the information held in the transfer information table, the every data storage unit, which identifies a storage location and the data amount in the external storage unit of the data provided in the data storage unit is stored, and this particular As the second specified data range for each data storage unit,
Based on the first specified data range and the second specified data range for each of the data storage units , the access instruction corresponding to the task that is the target of the access instruction is output.
The arithmetic unit according to claim 1.
前記データ記憶部毎の、前記第2の特定したデータの範囲のいずれかが、前記第1の特定したデータの範囲と重複している場合には、当該重複している対象の前記データ記憶部から、アクセス指示の対象となるタスクに応じた演算処理を実行する前記処理演算部に対応する前記データ記憶部に、当該重複している範囲のデータを、前記データ記憶部同士で転送することを指示する前記アクセス指示を出力し、
前記データ記憶部毎の、前記第2の特定したデータの範囲のいずれも、前記第1の特定したデータの範囲と重複していない場合には、前記外部記憶部のうちの、前記第1の特定したデータの範囲からデータを読み出して、アクセス指示の対象となるタスクに応じた演算処理を実行する前記処理演算部に対応する前記データ記憶部に格納することを指示する前記アクセス指示を出力する、
ことを特徴とする請求項2に記載の演算装置。 The task control unit
Wherein the data storage unit each, any range of the second specified data is wherein the first identified if you are overlapped with the range of data, the data for which are those that multiplicity from the storage unit, the data storage unit corresponding to the subject to pre-Symbol processing calculating unit that perform processing in accordance with the task of access instruction, the data of the range being the overlap in the data storage portions Outputting the access instruction instructing to transfer,
Wherein the data storage unit each, none of the second range of the identified data, wherein the first identified duplicated have such have field if the range of data, of said external storage unit, the first reads data from the specified range of data of 1, the access for instructing to store in the data storage unit corresponding to the previous SL processing computation section that perform arithmetic processing in accordance with the subject to the task of access instruction Output instructions,
The arithmetic unit according to claim 2.
前記データ記憶部毎の、前記第2の特定したデータの範囲のいずれかと、前記第1の特定したデータの範囲が、一部重複している場合には、
当該一部重複している対象の前記データ記憶部から、アクセス指示の対象となるタスクに応じた演算処理を実行する前記処理演算部に対応する前記データ記憶部に、当該一部重複している部分である一部のデータを、前記データ記憶部同士で転送することを指示する前記アクセス指示を出力するとともに、
前記第1の特定したデータの範囲のうち、前記一部重複している部分を除く部分である残りのデータを、前記外部記憶部から読み出して、アクセス指示の対象となるタスクに応じた演算処理を実行する前記処理演算部に対応する前記データ記憶部における、前記一部のデータを格納しない領域に、前記残りのデータを格納することを指示する前記アクセス指示を出力する、
ことを特徴とする請求項3に記載の演算装置。 The task control unit
Wherein the data storage unit each, and any one of the second range of the specified data, the first range of the specified data, in case you are part duplicate the
The data storage unit corresponding to the processing operation unit that executes the operation processing according to the task that is the target of the access instruction is partially overlapped from the data storage unit that is the target of the partial overlap. some of the data is a part, together with the outputs an access instruction to transfer the data storage portions,
Of the first range of the specified data, the remaining data is a portion except for the part that overlaps said portion, is read from the external storage unit, arithmetic processing according to the task to be accessed instruction Keru in the data storage unit corresponding to the previous SL processing computation section that perform the part of the data in the storage Shinano have area, outputs the access instructions for instructing to store the remaining data To
The arithmetic unit according to claim 3.
同じ範囲のデータを、複数の前記処理演算部のそれぞれに対応する複数の前記データ記憶部に格納する場合には、
当該同じ範囲のデータを格納している前記データ記憶部から、当該同じ範囲のデータを格納する対象となる複数の前記データ記憶部のうち、既に当該同じ範囲のデータを格納している前記データ記憶部を除いた、前記データ記憶部に、当該同じ範囲のデータを同時に転送することを指示する前記アクセス指示を出力するか、または、
前記外部記憶部から当該同じ範囲のデータを読み出して、当該同じ範囲のデータを格納する対象となる複数の前記データ記憶部に同時に格納することを指示する前記アクセス指示を出力する、
ことを特徴とする請求項2から請求項4のいずれか1の項に記載の演算装置。 The task control unit
To store the data in the same range, a plurality of the data storage unit corresponding to each of the processing operation of the multiple number,
From the data storage unit storing the same range of data, the data storage already storing the same range of data among the plurality of data storage units to be stored in the same range of data part except, in the data storage unit, or the output of said access instruction to transfer the same range of data at the same time, or,
Reads data of the same range from the front Kigaibu storage unit, and outputs the access instruction to store the same time to a plurality of said data storage unit for which to store the data in the same range,
The arithmetic unit according to any one of claims 2 to 4, characterized in that:
全ての前記データ記憶部のそれぞれに、いずれかのタスクに応じた演算処理で使用するデータが格納されていて、前記データ記憶部に空きがない場合には、アクセス指示の対象となるタスクに応じた演算処理を実行する際に使用するデータを前記データ記憶部に格納することを指示するためのアクセス指示を出力するよりも前に、複数の前記データ記憶部のいずれかに格納されているデータを前記外部記憶部に書き込んで退避するための別のアクセス指示を出力する、
ことを特徴とする請求項2から請求項5のいずれか1の項に記載の演算装置。 The task control unit
Each of all the data storage unit, and contains the data used in arithmetic processing in accordance with any of the tasks, if there is no room in the data storage unit, depending on the task to be accessed instruction Data stored in any of the plurality of data storage units before outputting an access instruction for instructing to store data used in executing the arithmetic processing in the data storage unit the to output the another access instruction for saving written to the external storage unit,
The arithmetic unit according to any one of claims 2 to 5, wherein the arithmetic unit is any one of the above.
前記タスクキューに格納されたそれぞれの前記タスク内の、予め定めた退避閾値より前の前記タスクに応じた演算処理を実行する際に使用するデータを格納している前記データ記憶部を、データの退避を行う前記データ記憶部から除外する、
ことを特徴とする請求項6に記載の演算装置。 The task control unit
In each of the tasks stored in the task queue, the data storage unit storing data to be used when executing an arithmetic process corresponding to the task before a predetermined save threshold is stored. Exclude from the data storage unit to save,
The arithmetic unit according to claim 6.
前記タスクキューに格納されたそれぞれの前記タスクの内、前記処理演算部に出力される順番が近い前記タスクの数である、
ことを特徴とする請求項7に記載の演算装置。 The evacuation threshold is
Of the tasks stored in the task queue, the number of the tasks that are close in order to be output to the processing operation unit.
The arithmetic unit according to claim 7.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013103261A JP6161396B2 (en) | 2013-05-15 | 2013-05-15 | Arithmetic unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013103261A JP6161396B2 (en) | 2013-05-15 | 2013-05-15 | Arithmetic unit |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014225089A JP2014225089A (en) | 2014-12-04 |
JP6161396B2 true JP6161396B2 (en) | 2017-07-12 |
Family
ID=52123737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013103261A Expired - Fee Related JP6161396B2 (en) | 2013-05-15 | 2013-05-15 | Arithmetic unit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6161396B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6693215B2 (en) * | 2016-03-25 | 2020-05-13 | ヤマハ株式会社 | Image processing device |
JP7162956B2 (en) * | 2019-09-02 | 2022-10-31 | 株式会社デンソー | data processor and program |
US11651209B1 (en) | 2019-10-02 | 2023-05-16 | Google Llc | Accelerated embedding layer computations |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003034229A1 (en) * | 2001-10-19 | 2003-04-24 | Telefonaktiebolaget Lm Ericsson | Data prefecthing in a computer system |
JP2005284749A (en) * | 2004-03-30 | 2005-10-13 | Kyushu Univ | Parallel computer |
JP2007047968A (en) * | 2005-08-09 | 2007-02-22 | Olympus Corp | Multiprocessor system |
JP5224498B2 (en) * | 2007-02-28 | 2013-07-03 | 学校法人早稲田大学 | MEMORY MANAGEMENT METHOD, INFORMATION PROCESSING DEVICE, PROGRAM CREATION METHOD, AND PROGRAM |
JP4945611B2 (en) * | 2009-09-04 | 2012-06-06 | 株式会社東芝 | Multiprocessor |
-
2013
- 2013-05-15 JP JP2013103261A patent/JP6161396B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2014225089A (en) | 2014-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6009692B2 (en) | Multi-mode memory access technique for graphics processing unit based memory transfer operations | |
US20070091097A1 (en) | Method and system for synchronizing parallel engines in a graphics processing unit | |
JP4981041B2 (en) | Caching method, apparatus and system | |
JPH0348370A (en) | Memory access control circuit | |
JP2008269282A (en) | Information processing device, method and program | |
JP2007241612A (en) | Multi-master system | |
US20130036426A1 (en) | Information processing device and task switching method | |
US7760205B2 (en) | Information processing apparatus for efficient image processing | |
US20110078351A1 (en) | Information processor system | |
JPH0640307B2 (en) | Data processing system | |
JP6161396B2 (en) | Arithmetic unit | |
JP2006338538A (en) | Stream processor | |
US9172839B2 (en) | Image forming apparatus, control method and storage medium | |
US20180173626A1 (en) | Memory management device | |
CN105389134A (en) | Flash memory interface control method and apparatus | |
US10459654B2 (en) | Storage apparatus, storage apparatus backup method, storage apparatus backup system, and storage medium | |
JP2010146084A (en) | Data processor including cache memory control section | |
US20060061579A1 (en) | Information processing apparatus for efficient image processing | |
JP2008009702A (en) | Arithmetic processing system | |
JPWO2009116279A1 (en) | Processing apparatus, processing system, data sharing processing method, and integrated circuit for data sharing processing | |
JP5168800B2 (en) | Multiprocessor system | |
US20220291993A1 (en) | Information processing apparatus and information processing method | |
JP2007333892A (en) | Memory controller, bus controller, and display device control system | |
WO2014069007A1 (en) | Storage device and data backup method | |
KR102280241B1 (en) | System for controlling memory-access, apparatus for controlling memory-access and method for controlling memory-access using the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160120 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160816 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160927 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161117 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20161118 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170411 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170530 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20170531 |
|
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: 20170606 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170613 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6161396 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 |