JP5445385B2 - Data processing device - Google Patents
Data processing device Download PDFInfo
- Publication number
- JP5445385B2 JP5445385B2 JP2010173474A JP2010173474A JP5445385B2 JP 5445385 B2 JP5445385 B2 JP 5445385B2 JP 2010173474 A JP2010173474 A JP 2010173474A JP 2010173474 A JP2010173474 A JP 2010173474A JP 5445385 B2 JP5445385 B2 JP 5445385B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- page
- internal memory
- read
- write
- 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
- Bus Control (AREA)
Description
本発明は、CPUに加えて特定の処理を高速に実行するアクセラレータを含むデータ処理装置に関する。 The present invention relates to a data processing apparatus including an accelerator that executes specific processing at high speed in addition to a CPU.
CPU、ROM、RAMなどのモジュールを接続したデータ処理装置(コンピュータシステム)およびそれらの機能を1チップに搭載した大規模SoC(シリコン・オン・チップ)では、アクセラレータ(Accelerator)を組み合わせることが行われる。アクセラレータは、画像処理などの特定の処理を高速に実行するように設計された専用のプロセッサであり、CPUの負担を軽減して特定の処理を実行する場合の処理速度を向上する。 In a data processing apparatus (computer system) connected with modules such as a CPU, ROM, and RAM, and a large-scale SoC (silicon-on-chip) in which those functions are mounted on one chip, an accelerator is combined. . The accelerator is a dedicated processor designed to execute specific processing such as image processing at high speed, and reduces processing load on the CPU to improve processing speed when executing specific processing.
アクセラレータなどのマスタ動作を行うマスタ動作モジュールの記憶領域に対するアクセス方法(プロトコル)が、CPUなどの他の要素のアクセスプロトコルと相違する場合がある。このような場合、マスタ動作モジュールは、NAND ROMなどで構成される外部メモリなどの通常の記憶領域に直接アクセスすることができない。 An access method (protocol) for a storage area of a master operation module that performs a master operation such as an accelerator may be different from an access protocol of another element such as a CPU. In such a case, the master operation module cannot directly access a normal storage area such as an external memory constituted by a NAND ROM or the like.
このような場合、CPU(Central Processing Unit)やDMAC(Direct Memory Access Control)などの外部メモリに対してアクセスを行うことが可能なモジュールがマスタとなって対象データを外部メモリから、専用の内部メモリ領域に転送する方式が取られる。以下、アクセラレータをマスタ動作モジュールとして使用し、DMACがデータ転送を行う例を説明するが、これに限定されないのはいうまでもない。 In such a case, a module capable of accessing an external memory such as a CPU (Central Processing Unit) or DMAC (Direct Memory Access Control) serves as a master to transfer target data from the external memory to a dedicated internal memory. A method of transferring to an area is taken. Hereinafter, an example in which an accelerator is used as a master operation module and the DMAC performs data transfer will be described, but it is needless to say that the present invention is not limited to this.
図1は、このようなアクセス方式を実行するデータ処理装置の構成とデータのアクセス経路を示す図である。 FIG. 1 is a diagram showing a configuration of a data processing apparatus that executes such an access method and a data access path.
図1に示すように、データ処理装置10は、内部バス11と、CPU12と、DMAC13と、アクセラレータ(ACC)14と、内部メモリ15と、メモリコントローラ16と、を有する。データ処理装置10は、例えばSoCチップとして実現される。図1では、外部に設けられる動作用メモリ17がデータ処理装置10の内部バス11に接続されるが、動作用メモリ17をSoCチップ内に設けることもある。
As shown in FIG. 1, the
以下、データ処理装置10をSoCチップとして実現した例を説明する。しかし、データ処理装置10は、CPU12と、DMAC13と、アクセラレータ(ACC)14と、内部メモリ15と、メモリコントローラ16の各モジュールを内部バス11に対応する配線で接続する形で実現することも可能である。
Hereinafter, an example in which the
外部メモリ18は、ACC14で処理するデータを記憶したメモリであり、メモリコントローラ16に接続される。ACC14のアクセスプロトコルは、外部メモリ18のアクセスプロトコルと異なるため、ACC14は外部メモリ18に直接アクセスすることはできない。図1の例では、DMAC13がメモリコントローラ16を介して外部メモリ18からデータを読出し、内部メモリ15にシーケンシャルなアドレスで展開して、アクセラレータ14がアクセス可能な形で書き込む。ACC14は、内部メモリ15に記憶されたデータを読み取る。
The
しかし、この方式では、アクセラレータ(ACC)14の処理に必要なデータ全てを内部メモリ15に転送する必要があり、データ処理装置10に必要なメモリ容量が増加してしまう、という問題があった。
However, this method has a problem that it is necessary to transfer all data necessary for the processing of the accelerator (ACC) 14 to the
そこで、内部メモリ15をFIFOメモリで構成することによって内部メモリ15の容量を削減するという手法が使用される。この場合、外部メモリ18から内部メモリ15へのデータ転送が順次行われ、ACC14は内部メモリ15からデータを読み取る。ACC14による読み取りが行われた領域は開放され、その領域に新たなデータ転送が行われる。これにより、転送されたデータは、常に転送順に読み取られ、内部メモリ15の空き容量を埋めるように順次データが転送される。
Therefore, a method of reducing the capacity of the
しかし、このFIFOメモリを使用した方式では、アクセラレータは、転送されたデータをすべて順番にアクセスする必要があり、画像処理などで途中のデータを飛ばして必要なデータにアクセスすることができない。言い換えれば、アクセラレータが必要なデータのみを取得することができない、という問題があった。 However, in the method using the FIFO memory, the accelerator needs to access all the transferred data in order, and cannot access the necessary data by skipping intermediate data in image processing or the like. In other words, there is a problem that the accelerator cannot acquire only necessary data.
マスタ動作モジュールが、内部メモリにアクセスする場合のアクセス方法を多様化して必要なデータのみを読み取れるようにすると共に、内部メモリの容量を低減することが望まれていた。 It has been desired that the master operation module can read out only necessary data by diversifying the access method when accessing the internal memory and reduce the capacity of the internal memory.
発明の一観点によれば、CPUと、マスタ動作モジュールと、マスタ動作モジュールから直接アクセス可能な内部メモリと、マスタ動作モジュールから直接アクセスできない外部メモリへのアクセスを行い、内部メモリに前記外部メモリに記憶されたデータを転送するデータ転送部と、を備え、内部メモリは、ページ単位で論理的に分割した2以上のページ記憶領域と、データ転送部により外部メモリから転送されたデータを、内部メモリのアドレスに変換して、2以上のページ記憶領域に書き込む書き込みアドレス変換部と、マスタ動作モジュールの読み出し動作に応じて、マスタ動作モジュールの読み出しアドレスを内部メモリのアドレスに変換して、2以上のページ記憶領域に記憶されたデータを読み出す読み出しアドレス変換部と、2以上のページ記憶領域のそれぞれに対応した状態フラグを有する状態遷移制御部と、を備え、読み出しアドレス変換部が書き込みアドレス変換部による書き込みが行われたページ記憶領域に対して読み出し動作を行い、書き込みアドレス変換部が読み出しアドレス変換部による読み出し動作が終了したページ記憶領域に対して書き込み動作を行うように制御することを特徴とするデータ処理装置が提供される。 According to one aspect of the invention, the CPU, the master operation module, the internal memory directly accessible from the master operation module, and the external memory not directly accessible from the master operation module are accessed and stored in the external memory in the external memory. A data transfer unit that transfers the received data, and the internal memory has two or more page storage areas logically divided in units of pages, and the data transferred from the external memory by the data transfer unit is an address of the internal memory And a write address conversion unit for writing to two or more page storage areas, and a read address of the master operation module in accordance with a read operation of the master operation module, converting the read address of the master operation module into an address of the internal memory. A read address conversion unit for reading data stored in the area; A state transition control unit having a state flag corresponding to each of the above page storage areas, and the read address conversion unit performs a read operation on the page storage area written by the write address conversion unit, and performs writing There is provided a data processing device characterized in that the address conversion unit controls to perform a write operation on a page storage area for which the read operation by the read address conversion unit has been completed.
上記の観点によれば、マスタ動作モジュールがアクセスプロトコルの異なるメモリに記憶されたデータを読み取るための内部メモリを小さな容量で実現でき、マスタ動作モジュールアクセス方法を多様化できる。 According to the above aspect, the internal memory for the master operation module to read data stored in memories having different access protocols can be realized with a small capacity, and the master operation module access method can be diversified.
図2は、第1実施形態のデータ処理装置10Aの構成とデータのアクセス経路を示す図である。
FIG. 2 is a diagram illustrating a configuration of the
図2に示すように、データ処理装置10Aは、内部バス11と、CPU12と、DMAC13と、アクセラレータ(ACC)14と、メモリコントローラ16と、内部メモリ20Aと、を有する。データ処理装置10Aは、例えばSoCチップとして実現される。図2では、外部に設けられる動作用メモリ17がデータ処理装置10の内部バス11に接続されるが、動作用メモリ17をSoCチップ内に設けてもよい。また、第1実施形態では、データ処理装置10Aを、SoCチップとして実現した例を示したが、データ処理装置10Aは、CPU12と、DMAC13と、アクセラレータ(ACC)14と、メモリコントローラ16と、内部メモリ20Aの各モジュールを内部バス11に対応する配線で接続する形で実現してもよい。
As shown in FIG. 2, the
外部メモリ18は、ACC14で処理するデータを記憶したメモリであり、メモリコントローラ16に接続される。ACC14のアクセスプロトコルは、外部メモリ18のアクセスプロトコルと異なるため、ACC14は外部メモリ18に直接アクセスすることはできない。第1実施形態のデータ処理装置10Aでは、DMAC13がメモリコントローラ16を介して外部メモリ18からデータを読出し、内部メモリ20Aにシーケンシャルなアドレスで展開して、アクセラレータ14がアクセス可能な形で書き込む。ACC14は、内部メモリ20Aに記憶されたデータを読み取る。なお、DMAC13を使用せずに、CPU12が外部メモリ18のデータを読み出して、内部メモリ20A書き込むことも可能である。
The
内部メモリ20Aは、図2に示すように、内部メモリコア21と、書き込みアドレス変換機構22と、読み出しアドレス変換機構23と、状態遷移制御部24と、を有する。書き込みアドレス変換機構22は、DMAC13が出力する書き込みアドレスを内部メモリコア21のアドレスに変換し、内部メモリコア21の変換したアドレスに、転送された書き込みデータを書き込む。読み出しアドレス変換機構23は、ACC14が出力する読み出しアドレスを内部メモリコア21のアドレスに変換し、内部メモリコア21の変換したアドレスからデータを読み出す。
As shown in FIG. 2, the
図3は、第1実施形態における内部メモリ20Aの構成を示す図である。
FIG. 3 is a diagram showing a configuration of the
内部メモリコア21は、複数のページ31A〜31Dで構成され、書き込みアドレス変換機構22および読み出しアドレス変換機構23により内部メモリアドレスでアクセスされる。内部コアメモリ21は、後述するように複数(図3では4個)のページ領域31A〜31Dに分割される。各ページ領域は、外からは、独立してアクセス可能であり、あるページ領域に書き込みまたは読み出しを行っている時に、他のページ領域に書き込みまたは読み出しを行うことが可能であるように見える。このような動作が可能なメモリは、高速のアクセス可能なメモリを使用すればバス調停回路などを設けることで実現できるが、例えば、ダブルバッファ構成や2ポートメモリを使用して実現することも可能である。
The
書き込みアドレス変換機構22は、書き込み動作制御部41と、内部メモリ容量レジスタ42と、ページ容量レジスタ43と、を有する。内部メモリ容量レジスタ42は、内部メモリコア21の全体容量の情報を記憶し、ページ容量レジスタ43は、ページごとの容量の情報を記憶する。例えば、CPU12は、ACC14が処理において使用する容量に応じて内部メモリコア21の値を、ACC14が処理におけるページの大きさに応じてページ容量レジスタ43の値を、決定して設定する。これにより、ハードウェアの再設計を行うこと無しに、ページの大きさやページ数を任意に設定できる。
The write
書き込み動作制御部41は、DMAC13からの書き込みアドレス、内部メモリ容量レジスタ42とページ容量レジスタ43の値、および状態フラグに基づいて、内部メモリ書き込みアドレスを生成して内部メモリコア21に出力する。DMAC13からの書き込みデータは、内部メモリ書き込みアドレスに同期して内部メモリコア21に出力される。さらに、書き込み動作制御部41は、書き込みアドレス、内部メモリ容量レジスタ42とページ容量レジスタ43の値、および状態フラグに基づいて、書き込みページ指示信号、書き込み(Write)通知および書き込み(Write)完了通知を生成して、状態遷移制御部24に出力する。状態フラグは、状態遷移制御部24から出力される。
The write
読み出しアドレス変換機構23は、読み出し動作制御部51と、内部メモリ容量レジスタ52と、ページ容量レジスタ53と、を有する。内部メモリ容量レジスタ52およびページ容量レジスタ53は、内部メモリ容量レジスタ42およびページ容量レジスタ43と同じ値を記憶しており、省くことも可能である。また、内部メモリ容量レジスタ42と52およびページ容量レジスタ43と53の値が固定であれば、内部メモリ容量レジスタ42と52およびページ容量レジスタ43と53は、設ける必要がない。
The read
読み出し動作制御部41は、ACC14からの読み出しアドレス、内部メモリ容量レジスタ52とページ容量レジスタ53の値、および状態フラグに基づいて、内部メモリ読み出しアドレスを生成して内部メモリコア21に出力する。内部メモリ読み出しアドレスに応じて内部メモリコア21から読み出された読み出したデータは、ACC14へ送信される。さらに、読み出し動作制御部51は、読み出しアドレス、内部メモリ容量レジスタ52とページ容量レジスタ53の値、および状態フラグに基づいて、読み出しページ指示信号、読み出し (Read)通知および読み出し(Read)完了通知を生成して、状態遷移制御部24に出力する。
The read
状態遷移制御部24は、内部メモリコア21の複数のページ31A〜31Dに対応してページごとの状態フラグ61A〜61Dを有し、フラグに基づいて内部メモリコア21へのアクセスを制御する。
The state
図4は、第1実施形態の内部メモリ20Aにおいて、DMAC13がメモリコントローラ16を介して外部メモリ18のデータを内部メモリ20Aに書き込み、ACC14が内部メモリ20Aに転送されたデータを読み取るアクセス動作を説明する図である。図4では、内部メモリコア21の2ページ分の領域31Aと31Bが使用される例を示している。
FIG. 4 illustrates an access operation in which the
まず、DMAC13による転送動作、すなわち内部メモリ20Aへの書き込み動作を説明する。図4に示すように、外部メモリ18は、ACC14が処理する複数ページ(ここでは8ページ分)のデータを記憶している。DMAC13は、外部メモリ18に記憶されているデータをメモリコントローラ16を介して1ページ目から順番に読み出し、内部メモリ20Aの書き込みアドレス変換機構22にダイレク・メモリ・アクセス(DMAC)で転送する。書き込みアドレス変換機構22は、DMAC13からの書き込みアドレス、内部メモリ容量レジスタ42とページ容量レジスタ43の値、および状態フラグに基づいて、内部メモリ書き込みアドレスに変換するアドレス変換を行う。さらに、書き込みアドレス変換機構22は、内部メモリ書き込みアドレスから、内部メモリコア21内で該当するページ領域を割り出し、そのページの状態フラグの確認を行い、書き込み不可の場合は可能になるまで待機し、書き込み可能な場合は書き込みデータの書き込みを行う。書き込みアドレス変換機構22は、内部メモリコア21の書き込みを行う時には、書き込み(Write)通知を状態遷移制御部24に出力する。さらに、書き込みアドレス変換機構22は、そのページの最終アドレスへの書き込みを行った場合は、書き込み(Write)完了通知を状態遷移制御部24に出力する。状態遷移制御部24は、Write完了通知を受信すると、そのページの状態フラグを”読み出し(Read)待ち”へと遷移させる。図4では、1ページ目の領域31Aの書き込みが完了すると、対応する状態フラグ61Aが、”読み出し(Read)待ち”に遷移する。
First, a transfer operation by the
その後、DMAC13は、外部メモリ18に記憶されている2ページ目のデータを、メモリコントローラ16を介して読み出し、内部メモリ20Aの書き込みアドレス変換機構22に転送し、上記と同様の処理で内部メモリコア21に書き込む。
Thereafter, the
一方、ACC14は、1ページ目のデータの内部メモリ20Aへの書き込みが完了すると、1ページ目のデータの内部メモリ20Aからの読み出し動作を開始する。この間、DMAC13は、2ページ目のデータの内部メモリ20Aの書き込みを並行に行う。
On the other hand, when the writing of the data for the first page to the
ACC14による内部メモリ20Aからのデータの読み出し動作を説明する。図4に示すように、まずACC14は、読み出しアドレス変換機構23に読み出しアドレスを出力する。読み出しアドレス変換機構23は、ACC14からの読み出しアドレス、内部メモリ容量レジスタ52とページ容量レジスタ53の値、および状態フラグに基づいて、内部メモリ読み出しアドレスに変換するアドレス変換を行う。さらに、読み出しアドレス変換機構23は、内部メモリ読み出しアドレスから、内部メモリコア21内で該当するページ領域を割り出し、そのページの状態フラグの確認を行い、読み出し不可の場合は可能になるまで待機し、読み出し可能な場合はデータの読み出しを行う。読み出しアドレス変換機構23は、内部メモリコア21からデータの読み出しを行う時には、読み出し(Read)通知を状態遷移制御部24に出力する。さらに、読み出しアドレス変換機構23は、そのページの最終アドレスからの読み出しを行った場合は、読み出し(Read)完了通知を状態遷移制御部24に出力する。状態遷移制御部24は、Read完了通知を受信すると、そのページの状態フラグを”書き込み(Write)待ち”へと遷移させる。図4では、1ページ目の領域31Aからのデータの読み出しが完了すると、対応する状態フラグ61Aが、”書き込み(Write)待ち”に遷移する。
A data read operation from the
その後、ACC14は、内部メモリ20Aに記憶されている2ページ目のデータの読み出し動作を、同様の処理で行う。
Thereafter, the
図5は、内部メモリ20Aのアクセス動作における書き込みデータおよび読み出しデータの変化を示すタイムチャートである。このタイムチャートは、DMAC13による外部メモリ18から内部メモリ20Aへのデータ転送速度と、ACC14による内部メモリ20Aからの読み出し速度がほぼ等しい場合の動作タイムチャートである。図5において、第1ページ領域および第2ページ領域の単線の四角形は、DMAC13による内部メモリ20Aへの転送データの書き込みを示し、両端が2重線の四角形は、ACC14による内部メモリ20Aからのデータの読み出しを示す。
FIG. 5 is a time chart showing changes in write data and read data in the access operation of the
図5に示すように、DMAC13による1ページ目のデータ転送および第1ページ領域31Aへの転送したデータの書き込みが行われる。1ページ目のデータ転送が完了すると、続いてDMAC13による2ページ目のデータ転送および第2ページ領域31Bへの転送したデータの書き込みが行われる。1ページ目のデータ転送が完了した直後(ここでは、2ページ目のデータ転送が開始された後)ACC14による第1ページ領域31Aからの1ページ目のデータの読み出しが行われる。ACC14による1ページ目のデータの読み出しが完了する時には、DMAC13による2ページ目のデータ転送は完了しており、DMAC13による3ページ目のデータ転送および第1ページ領域31Aへの転送したデータの書き込みが開始されている。そこで、ACC14による第2ページ領域31Bからの2ページ目のデータの読み出しが開始される。以下、このような動作を繰り返す。これにより、第1ページ領域31Aへの第2ページ領域31Bへのデータ書き込みと読み出しが並行に交互に行われ、ACC14は、外部メモリ18に記憶されたアクセス方式が異なる形で記憶されたデータを高速で読み出すことができる。
As shown in FIG. 5, the data transfer of the first page by the
DMAC13による外部メモリ18から内部メモリ20Aへのデータ転送速度と、ACC14による内部メモリ20Aからの読み出し速度が、異なるのが一般的である。DMAC13によるデータ転送速度の方が、ACC14による読み出し速度より速い場合、読み出しを行っていないページ領域に新たに転送されたデータを書き込む場合が起こり得る。逆に、DMAC13によるデータ転送速度の方が、ACC14による読み出し速度より遅い場合、書き込みを行っていない(前のページのデータが書き込まれている)ページ領域からデータを読み出す場合が起こり得る。このような状態が発生すると、ACC14が正しいデータを読み取ることができない。
In general, the data transfer speed from the
そこで、第1実施形態のデータ処理装置10Aでは、読み出しアドレス変換機構23は、書き込みがまだ行われていないデータおよびページに対して読み出し動作が要求された場合には、その読み出し動作を待機させる。また、書き込みアドレス変換機構22は、読み出しがまだ行われていないデータおよびページに対して書き込み動作が要求された場合には、その書き込み動作を待機させる。
Therefore, in the
図6は、第1実施形態のデータ処理装置10Aにおいて、内部メモリコア21のページ領域31A〜31Dの状態遷移を示す図である。とり得る状態は、書き込み(Write)待ち(00)、書き込み(Write)中(01)、読み出し (Read)待ち(10)および読み出し (Read)中(11)の4つの状態であり、動作に応じて図6のように変化する。動作が開始されると書き込み(Write)待ち(00)になり、次の動作が行われるまで、その状態で待機する。書き込み(Write)が行われると、書き込み(Write)中(01)に変化し、書き込み (Write)が完了するまでその状態を維持し、書き込み(Write)が完了すると(Read)待ち(10)になる。(Read)待ち(10)で、次の動作が行われるまで、その状態で待機し、読み出し(Read)が行われると、読み出し (Read)中(11) に変化し、読み出し(Read)が完了するまでその状態を維持し、読み出し(Read)が完了すると書き込み(Write)待ち(00)になる。
FIG. 6 is a diagram illustrating state transitions of the
図7は、DMAC13により転送されたデータの内部メモリ20A(内部メモリコア21のページ領域31A〜31D)への書き込み処理を示すフローチャートである。
FIG. 7 is a flowchart showing a process of writing data transferred by the
ステップS11では、DMAC13が、内部メモリ20Aの書き込みアドレス変換機構22への書き込み(Write)処理の発行を行う。
In step S11, the
ステップS12では、書き込みアドレス変換機構22が、設定したレジスタ情報を基にして、入力された書き込みアドレスから内部メモリ書き込みアドレスと書き込みページを算出する。
In step S12, the write
ステップS13では、書き込みアドレス変換機構22が、書き込みページの状態がRead待ち(10)またはRead中(11)であるか判定する。書き込みページが、Read待ちまたはRead中である時には書き込みは行えないので、これらの状態が終了するまで待機し、これらの状態が終了したら次のステップに進む。
In step S13, the write
ステップS14では、書き込みアドレス変換機構22が、書き込みページの状態がWrite待ち(00)であるかを判定し、Write待ち(00)であればステップS15に進み、Write待ち(00)でなければステップS16に進む。
In step S14, the write
ステップS15では、状態遷移制御部24が、書き込みページの状態フラグをWrite中(01)に遷移させる。
In step S15, the state
ステップS16では、書き込みアドレス変換機構22が、内部メモリコア21の内部メモリ書き込みアドレスへの転送されたデータの書き込みを行う。
In step S <b> 16, the write
ステップS17では、書き込みアドレス変換機構22が、設定したレジスタ情報を基にして、内部メモリ書き込みアドレスが、書き込みページの最終アドレスであるかを判定し、最終アドレスであればステップS18に進み、最終アドレスでなければ終了する。この後、同じ書き込みページに対して、ステップS11からS17が繰り返される。
In step S17, the write
ステップS18では、状態遷移制御部24が、書き込みページの状態フラグをRead待ち(10)に遷移させ、終了する。
In step S18, the state
図8は、ACC14により内部メモリ20A(内部メモリコア21のページ領域31A〜31D)からのデータの読み出し処理を示すフローチャートである。
FIG. 8 is a flowchart showing a process of reading data from the
ステップS21では、ACC14が、内部メモリ20Aの読み出しアドレス変換機構23への読み出し(Read)処理の発行を行う。
In step S21, the
ステップS22では、読み出しアドレス変換機構23が、設定したレジスタ情報を基にして、入力された読み出しアドレスから内部メモリ読み出しアドレスと読み出しページを算出する。
In step S22, the read
ステップS23では、読み出しアドレス変換機構23が、読み出しページの状態がWrite待ち(010)またはWrite中(01)であるか判定する。読み出しページが、Write待ちまたはWrite中である時には読み出しは行えないので、これらの状態が終了するまで待機し、これらの状態が終了したら次のステップに進む。
In step S <b> 23, the read
ステップS24では、読み出しアドレス変換機構23が、読み出しページの状態がRead待ち(10)であるかを判定し、Read待ち(10)であればステップS25に進み、Read待ち(10)でなければステップS26に進む。
In step S24, the read
ステップS25では、状態遷移制御部24が、読み出しページの状態フラグをRead中(11)に遷移させる。
In step S25, the state
ステップS26では、読み出しアドレス変換機構23が、内部メモリコア21の内部メモリ読み出しアドレスからのデータの読み出しを行う。
In step S <b> 26, the read
ステップS27では、読み出しアドレス変換機構23が、設定したレジスタ情報を基にして、内部メモリ読み出しアドレスが、読み出しページの最終アドレスであるかを判定し、最終アドレスであればステップS28に進み、最終アドレスでなければ終了する。この後、同じ読み出しページに対して、ステップS21からS27が繰り返される。
In step S27, the read
ステップS28では、状態遷移制御部24が、読み出しページの状態フラグをWrite待ち(00)に遷移させ、終了する。
In step S28, the state
以上説明した事項をまとめると、第1実施形態のデータ処理装置10Aは、次のような構成を有する。
Summarizing the items described above, the
(1)内部メモリ20A(内部メモリコア21)を有するが、その容量はアクセラレータ(ACC)14の処理に必要なメモリ容量より小さくてよい。
(1) Although the
(2)書き込み専用の領域と読み出し専用のメモリ空間を有する。 (2) It has a write-only area and a read-only memory space.
(3)書き込み/読み出し(WRITE/READ)アドレス変換機構は書き込み専用領域への書き込みアクセスおよび読み出し専用領域への読み出しアクセスのアドレスを、内部メモリのアドレスに変換する。 (3) The write / read (WRITE / READ) address conversion mechanism converts the address of the write access to the write-only area and the read access to the read-only area into the address of the internal memory.
(4)書き込み/読み出し(WRITE/READ)アドレス変換機構を有し、設定レジスタの情報によってアドレス変換の設定を行うことが可能である。 (4) A write / read (WRITE / READ) address conversion mechanism is provided, and address conversion can be set according to information in a setting register.
(5)読み出し(READ)アドレス変換機構は、書き込みがまだ行われていないページに対して読み込みが要求された場合、そのアクセスに対して読み込み待機をさせる。 (5) The read (READ) address conversion mechanism makes a read wait for the access when a read is requested for a page that has not been written yet.
(6)書き込み(WRITE)アドレス変換機構は、読み出しがまだ行われていないデータ(ページ)に対して書き込みが要求された場合、そのアクセスに対して書き込み待機をさせる。 (6) Write (WRITE) When a write request is made for data (page) that has not yet been read, the address conversion mechanism causes the access to wait for writing.
第1実施形態のデータ処理装置10Aは、外部メモリ18、DMAC13、ACC14などを使用しているが、内部メモリの書き込み/読み出しアドレス変換機構への書き込みと読み出しを行うことが可能なモジュールであればこれらに制限される必要はない。例えば、データの読み出しをCPUが行うような場合でも、同様の動作が成立する。これは、いかに説明するほかの実施形態でも同様である。
The
図9は、第2実施形態のデータ処理装置10Bの構成とデータのアクセス経路を示す図である。第2実施形態のデータ処理装置10Bは、アクセラレータ(ACC)14がデータを処理する処理速度が、DMAC13がデータを転送する速度より速い場合の例である。このような場合、ACC14は、DMAC13が転送するデータを常時待つ状態になり、ACC14の処理効率が低下する。そこで、第2実施形態のデータ処理装置10Bでは、複数個のDACを使用して、DMACによるデータの転送速度を高める。
FIG. 9 is a diagram illustrating a configuration of the
図9に示すように、第2実施形態のデータ処理装置10Bは、第1DMAC13Aおよび第2DMAC13Bを有し、2個の第1および第2外部メモリ18Aが接続されることが、第1実施形態と異なる。また、第2実施形態のデータ処理装置10Bの内部メモリ20Bも、第1実施形態のデータ処理装置10Aの内部メモリ20Aと異なるが、他の部分は同じである。なお、第2実施形態では2個のDMACを有し、2個の外部メモリを接続したが、それぞれ3個以上とすることも可能である。
As shown in FIG. 9, the
外部メモリ18Aおよび18Bは、ACC14で処理するデータを、ページ単位で記憶しており、例えば外部メモリ18Aが奇数番目のページのデータを、外部メモリ18Bが偶数番目のページのデータを記憶している。
The
図10は、第2実施形態における内部メモリ20Bの構成を示す図である。 FIG. 10 is a diagram showing a configuration of the internal memory 20B in the second embodiment.
図10に示すように、内部メモリ20Bは、第1書き込みアドレス変換機構22Aおよび第2書き込みアドレス変換機構22Bを有することが、第1実施形態の内部メモリ20Aと異なり、他の部分は第1実施形態と同じである。第1書き込みアドレス変換機構22Aおよび第2書き込みアドレス変換機構22Bは、ページ領域31A〜31Dに独立してアクセス可能である。また、第1書き込みアドレス変換機構22Aおよび第2書き込みアドレス変換機構22Bは、内部メモリ容量レジスタ42およびページ容量レジスタ43に加えて、ベースアドレスレジスタ44およびストライド量レジスタ45を有している。ベースアドレスレジスタ44は、各アドレス変換機構へ入力されたデータを内部メモリコア21に記憶する時に、内部メモリコア21の先頭からどの位置に書き込みを開始するかを指定するアドレス値を記憶する。ストライド量レジスタ45は、自分以外の全ての書き込みアドレス変換機構のページ容量の和を記憶する。この和の値から、次ページへの書き込み開始アドレスのオフセットを得ることが可能である。
As shown in FIG. 10, the internal memory 20B has a first write
図11は、第2実施形態の内部メモリ20Bにおいて、第1および第2DMAC13A、13Bが、メモリコントローラ16を介して第1および第2外部メモリ18A、18Bのデータを内部メモリ20Bに書き込み、ACC14が内部メモリ20Bに転送されたデータを読み取るアクセス動作を説明する図である。
FIG. 11 shows that in the internal memory 20B of the second embodiment, the first and
前述のように、第1外部メモリ18Aは奇数番目のページのデータを、第2外部メモリ18Bが偶数番目のページのデータを記憶しているものとする。
As described above, it is assumed that the first
まず、第1DMAC13Aは、第1外部メモリ18Aに記憶されている1ページ目のデータを、メモリコントローラ16を介して読み出し、内部メモリ20Bの第1書き込みアドレス変換機構22Aに転送する。第1書き込みアドレス変換機構22Aは、第1DMAC13Aからの書き込みアドレス、内部メモリ容量レジスタ42の値、ページ容量レジスタ43の値、ベースアドレスレジスタ44の値、ストライド量レジスタ45の値および状態フラグに基づいて、内部メモリ書き込みアドレスに変換するアドレス変換を行う。さらに、書き込みアドレス変換機構22は、内部メモリ書き込みアドレスから、内部メモリコア21内で該当するページ領域を割り出し、そのページの状態フラグの確認を行い、書き込み不可の場合は可能になるまで待機し、書き込み可能な場合は書き込みデータの書き込みを行う。第1書き込みアドレス変換機構22Aは、内部メモリコア21の書き込みを行う時には、Write通知を状態遷移制御部24に出力する。さらに、第1書き込みアドレス変換機構22Aは、そのページの最終アドレスへの書き込みを行った場合は、Write完了通知を状態遷移制御部24に出力する。状態遷移制御部24は、Write完了通知を受信すると、そのページの状態フラグを”読み出し(Read)待ち”へと遷移させる。図11では、1ページ目の領域31Aの書き込みが完了すると、対応する状態フラグ61Aが、”読み出し(Read)待ち”に遷移する。
First, the
一方、第2DMAC13Bは、上記の第1DMAC13Aの転送動作と並行して、第2外部メモリ18Bに記憶されている2ページ目のデータを、メモリコントローラ16を介して読み出し、内部メモリ20Bの第2書き込みアドレス変換機構22Bに転送する。第2書き込みアドレス変換機構22Bは、上記の第1書き込みアドレス変換機構22Aと同様の動作を行い、転送された2ページ目のデータを内部メモリコア21内の別のページ領域に書き込む。第2書き込みアドレス変換機構22BがWrite完了通知を状態遷移制御部24に出力すると、状態遷移制御部24はそのページの状態フラグを”読み出し(Read)待ち”へと遷移させる。
On the other hand, in parallel with the transfer operation of the
その後、第1書き込みアドレス変換機構22Aおよび第2書き込みアドレス変換機構22Bは、ストライド量レジスタ45に記憶された値から3ページおよび4ページの書き込み開始アドレス(ページ領域)を算出する。そして、第1書き込みアドレス変換機構22Aおよび第2書き込みアドレス変換機構22Bは、そのページ領域が“書き込み(Write)待ち”であれば書き込みを同様に行い、”読み出し(Read)待ち”または ”読み出し(Read)中”であれば、“書き込み(Write)待ち”になるまで待機する。
Thereafter, the first write
一方、ACC14は、1ページ目のデータの内部メモリ20Aへの書き込みが完了すると、読み出しアドレス変換機構23を介して、1ページ目のデータの内部メモリ20Aからの読み出し動作を開始する。読み出しアドレス変換機構23による読み出し動作は第1実施形態と同じであり、内部メモリコア21の第1ページ領域31Aに記憶された1ページ目のデータを読み取りが完了すると、第2ページ領域31Bにはすでに2ページ目のデータが記憶されているので、それを読み取る。
On the other hand, when the writing of the data of the first page to the
図12は、内部メモリ20Bのアクセス動作における書き込みデータおよび読み出しデータの変化を示すタイムチャートである。このタイムチャートは、2個のDMAC13Aおよび13Bによる外部メモリ18から内部メモリ20Aへのデータ転送速度と、ACC14による内部メモリ20Aからの読み出し速度がほぼ等しい場合の動作タイムチャートである。言い換えれば、1個のDMAC13Aまたは13Bが所定時間に転送するデータを、ACC14は所定時間の約半分の時間で処理できる。
FIG. 12 is a time chart showing changes in write data and read data in the access operation of the internal memory 20B. This time chart is an operation time chart when the data transfer speed from the
図12において、第1ページ領域〜第4ページ領域の単線の四角形は、第1DMAC13Aおよび第2DMAC13Bによる内部メモリ20Bへの転送データの書き込みを示し、両端が2重線の四角形は、ACC14による内部メモリ20Bからのデータの読み出しを示す。
In FIG. 12, single-line rectangles in the first page area to the fourth page area indicate writing of transfer data to the internal memory 20B by the
図12に示すように、第1DMA13Aによる1ページ目のデータ転送および第1ページ領域31Aへの転送したデータの書き込みと、第2DMA13Bによる2ページ目のデータ転送および第2ページ領域31Bへの転送したデータの書き込みが、並行して行われる。
As shown in FIG. 12, the data transfer of the first page by the
1ページ目および2ページ目のデータ転送が完了すると、第1DMAC13Aおよび第2DMAC13Bによる3ページ目および4ページ目のデータ転送および第3ページ領域31Cおよび第4ページ領域31Dへの書き込みが行われる。
When the data transfer of the first page and the second page is completed, the data transfer of the third page and the fourth page by the
一方、1ページ目のデータ転送および書込みが完了した直後、ACC14による第1ページ領域31Aからの1ページ目のデータの読み出しが行われる。そして、1ページ目のデータの読み出しが完了すると、ACC14による第2ページ領域31Bからの2ページ目のデータの読み出しが行われる。
On the other hand, immediately after the data transfer and writing of the first page are completed, the data of the first page is read from the
第1DMAC13Aによる3ページ目のデータの第3ページ領域31Cへのデータ転送および書き込みが完了した時には、ACC14による第1ページ領域31Aからの1ページ目のデータの読み出しは完了している。したがって、第1ページ領域31Aはデータ書き込みが可能であり、第1DMAC13Aは新しいデータ転送動作を行うことが可能である。そこで、第1DMAC13Aによる5ページ目のデータ転送および第1ページ領域31Aへのデータの書き込みを開始する。
When the data transfer and writing of the third page data to the
第2DMAC13Bによる4ページ目のデータの第4ページ領域31Dへの転送および書き込みが完了した時には、ACC14による第2ページ領域31Bからの2ページ目のデータの読み出しは完了していない。この時、第1ページ領域31Aは5ページ目のデータ書き込みが行われており、第3および第4ページ領域31C、31Dは、3ページ目および4ページ目のデータの読み出しが行われていない状態であり、新たなデータを書き込むことはできない。したがって、第2DMAC13Bは、非動作状態であるがデータの転送は行えないので、ACC14による第2ページ領域31Bからの2ページ目のデータの読み出しが完了するまで待機する。そして、第2ページ領域31Bからの2ページ目のデータの読み出しが完了した後、第2DMAC13Bによる6ページ目のデータの第2ページ領域31Bへの転送および書き込みを開始する。
When the transfer and writing of the fourth page data to the
以下、第1DMAC13Aと第2DMAC13Bを交互に使用して、書き込んだデータの読み出しが完了していずれかのページ領域が“書き込み(Write)待ち”状態になるまで待機し、“書き込み(Write)待ち”状態になったら、新たなデータの転送および書き込みを行う。このような動作を繰り返すことにより、ACC14は、外部メモリ18に記憶されたアクセス方式が異なる形で記憶されたデータを高速で読み出すことができる。
Thereafter, the
図13は、第2実施形態において、転送されたデータの内部メモリ20B(内部メモリコア21のページ領域31A〜31D)への書き込み処理を示すフローチャートである。
FIG. 13 is a flowchart showing a process of writing transferred data to the internal memory 20B (
ステップS31では、第1DMAC13Aまたは第2DMAC13Bが、内部メモリ20Bの第1書き込みアドレス変換機構22Aまたは第2書き込みアドレス変換機構22Bへの書き込み(Write)処理の発行を行う。
In step S31, the
ステップS32では、第1書き込みアドレス変換機構22Aまたは第2書き込みアドレス変換機構22Bが、設定したレジスタ情報を基にして、入力された書き込みアドレスから内部メモリ書き込みアドレスと書き込みページを算出する。
In step S32, the first write
ステップS33では、第1書き込みアドレス変換機構22Aまたは第2書き込みアドレス変換機構22Bが、データの書き込み先となる書き込みページの状態がRead待ち(10)またはRead中(11)であるか判定する。書き込みページが、Read待ちまたはRead中である時には書き込みは行えないので、これらの状態が終了するまで待機し、これらの状態が終了したら次のステップに進む。
In step S33, the first write
ステップS34では、第1書き込みアドレス変換機構22Aまたは第2書き込みアドレス変換機構22Bが、書き込みページの状態がWrite待ち(00)であるかを判定し、Write待ち(00)であればステップS35に進み、Write待ち(00)でなければステップS36に進む。
In step S34, the first write
ステップS35では、状態遷移制御部24が、書き込みページの状態フラグをWrite中(01)に遷移させる。
In step S35, the state
ステップS36では、第1書き込みアドレス変換機構22Aまたは第2書き込みアドレス変換機構22Bが、内部メモリコア21の内部メモリ書き込みアドレスへの転送されたデータの書き込みを行う。
In step S36, the first write
ステップS37では、第1書き込みアドレス変換機構22Aまたは第2書き込みアドレス変換機構22Bが、設定したレジスタ情報を基にして、内部メモリ書き込みアドレスが、書き込みページの最終アドレスであるかを判定し、最終アドレスであればステップS38に進み、最終アドレスでなければ終了する。この後、同じ書き込みページに対して、ステップS31からS37が繰り返される。
In step S37, the first write
ステップS38では、状態遷移制御部24が、書き込みページの状態フラグをRead待ち(10)に遷移させ、終了する。
In step S38, the state
ACC14による内部メモリ20B(内部メモリコア21のページ領域31A〜31D)からのデータの読み出し処理は、第1実施形態と同じであるので、説明は省略する。
Since the process of reading data from the internal memory 20B (
図14は、第3実施形態のデータ処理装置10Cの内部メモリ20Cの構成を示す図である。 FIG. 14 is a diagram illustrating a configuration of the internal memory 20C of the data processing device 10C according to the third embodiment.
第2実施形態のデータ処理装置10Bは、内部メモリ20B内部に、2個のDMAC13Aおよび13Bに対応して、2個の書き込みアドレス変換機構22Aおよび22Bを設けた。しかし、書き込みアドレス変換機構による内部メモリコア21へのデータの書き込み速度が、1個のDMACによるデータ転送速度より十分に高速であれば、例えば2倍以上高速であれば、2個のDMAC13Aおよび13Bを使用しても、1個の書き込みアドレス変換機構22で転送されたデータを内部メモリコア21に書き込むことが可能である。
The
第3実施形態のデータ処理装置10Cは、図9に示した第2実施形態のデータ処理装置10Bと同様に、2個のDMAC13Aおよび13Bを有し、2個の外部メモリ13Aおよび13Bが接続される。内部メモリ20は、第1実施形態の内部メモリ20Aと同様の構成を有するが、動作速度が高速で、2個のDMAC13Aおよび13Bが所定時間に転送するデータを1個の書き込みアドレス変換機構22で内部メモリコア21に所定時間内で書き込むことが可能である。他の部分は、第1および第2実施形態と同じである。
Similarly to the
図14に示すように、第3実施形態のデータ処理装置10Cの内部メモリ20Cは、第1実施形態の内部メモリ20Aと同様の構成を有するが、書き込みアドレス変換機構22が外部メモリの個数(ここでは2個)分のアドレス範囲レジスタ46Aおよび46Bを有する。なお、図示していないが、第2実施形態と同様に内部メモリ容量レジスタ42および52とページ容量レジスタ43および53が、書き込みアドレス変換機構22および読み出しアドレス変換機構23にそれぞれ設けられている。さらに、書き込みアドレス変換機構22は、ベースアドレスレジスタ44とストライド量レジスタ45と、を有する。
As shown in FIG. 14, the internal memory 20C of the data processing apparatus 10C of the third embodiment has the same configuration as the
アドレス範囲レジスタ46Aおよび46Bは、外部メモリ18Aおよび18Bのアドレス範囲をそれぞれ記憶している。2個のDMAC13Aおよび13Bにより転送されたデータの書き込みアドレスに関する情報から、転送元の外部メモリを判定することができる。
Address range registers 46A and 46B store the address ranges of
図15は、第3実施形態の内部メモリ20Cにおいて、第1および第2DMAC13A、13Bが、メモリコントローラ16を介して第1および第2外部メモリ18A、18Bのデータを内部メモリ20Bに書き込み、ACC14が内部メモリ20Bに転送されたデータを読み取るアクセス動作を説明する図である。
15 shows that in the internal memory 20C of the third embodiment, the first and
前述のように、外部メモリ18Aは奇数番目のページのデータを、外部メモリ18Bが偶数番目のページのデータを記憶しているものとする。
As described above, it is assumed that the
第1DMAC13Aおよび第2DMAC13Bは、バス調停しながら並行して第1外部メモリ18Aおよび第2外部メモリ18Bに記憶されている1ページ目および2ページ目のデータを、メモリコントローラ16を介して読み出し、内部メモリ20Cの書き込みアドレス変換機構22に転送する。書き込みアドレス変換機構22は、転送されたデータの書き込みアドレスと、アドレス範囲レジスタ46Aおよび46Bに記憶されたアドレス範囲と比較し、データの転送元の外部メモリを特定する。言い換えれば、書き込みアドレス変換機構22は、転送されたデータのページ領域を判定する。そして、書き込みアドレス変換機構22は、判定したページ領域に応じて、データを書き込むページ領域を選択する。そして、書き込みアドレス、各レジスタの値および状態フラグに基づいて、内部メモリ書き込みアドレスに変換するアドレス変換を行い、書き込み先のページの状態フラグに応じて、書き込みまたは待機を行う。
The
ACC14は、書き込みが完了して“書き込み(Write)待ち”になったページ領域から順番にデータの読み出しを行う。他の動作は、第2実施形態と同じである。したがって、第3実施形態における内部メモリ20Bのアクセス動作を示すタイムチャートは、図12に示した第2実施形態のタイムチャートと同じである。
The
図16は、第3実施形態において、転送されたデータの内部メモリ20C(内部メモリコア21のページ領域31A〜31D)への書き込み処理を示すフローチャートである。
FIG. 16 is a flowchart showing a process of writing transferred data to the internal memory 20C (
ステップS41では、第1DMAC13Aおよび第2DMAC13Bが、内部メモリ20Cの書き込みアドレス変換機構22への書き込み(Write)処理の発行を行う。
In step S41, the
ステップS42では、書き込みアドレスとアドレス範囲レジスタ46Aおよび46Bに記憶されたアドレス範囲情報がマッチするかを判定し、マッチすればステップS44に進み、マッチしなければステップS43に進む。 In step S42, it is determined whether the write address matches the address range information stored in the address range registers 46A and 46B. If they match, the process proceeds to step S44, and if they do not match, the process proceeds to step S43.
ステップS43では、書き込みアドレスとアドレス範囲がマッチしないので、転送元の外部メモリを確認できないので、別のレジスタ情報を参照する。この処理は実施形態の処理に直接関係しないので、説明は省略する。 In step S43, since the write address does not match the address range, the transfer-source external memory cannot be confirmed, so another register information is referred to. Since this process is not directly related to the process of the embodiment, the description is omitted.
ステップS44では、書き込みアドレス変換機構22が、設定したレジスタ情報を基にして、入力された書き込みアドレスから内部メモリ書き込みアドレスと書き込みページを算出する。
In step S44, the write
ステップS45からS50は、図13のステップS33からS38と同じ処理である。 Steps S45 to S50 are the same processes as steps S33 to S38 in FIG.
図17は、第4実施形態のデータ処理装置10Dの構成とデータのアクセス経路を示す図である。第4実施形態のデータ処理装置10Dは、DMAC13がデータを転送する速度が、アクセラレータ(ACC)14がデータを処理する処理速度よりより速い場合の例である。このような場合、DMAC13は、ACC14がデータを処理するまで常時データ転送を待つ状態になり、DMAC13の転送効率が低下する。そこで、第4実施形態のデータ処理装置10Dでは、複数個のACCを使用して、ACCによるデータ処理速度を高める。
FIG. 17 is a diagram illustrating a configuration of the data processing device 10D according to the fourth embodiment and a data access path. The data processing device 10D of the fourth embodiment is an example in which the speed at which the
図17に示すように、第4実施形態のデータ処理装置10Dは、第1および第2ACC14Aおよび14Bを有することが、第1実施形態と異なる。また、第4実施形態のデータ処理装置10Dの内部メモリ20Dも、第1実施形態のデータ処理装置10Aの内部メモリ20Aと異なるが、他の部分は同じである。なお、第2実施形態では2個のACCを有するが、3個以上のACCを設けることも可能である。
As shown in FIG. 17, the
図18は、内部メモリ20Dの構成を示す図である。
FIG. 18 is a diagram showing a configuration of the
図18に示すように、内部メモリ20Dは、第1読み出しアドレス変換機構23Aおよび第2読み出しアドレス変換機構23Bを有することが、第1実施形態の内部メモリ20Aと異なり、他の部分は第1実施形態と同じである。第1読み出しアドレス変換機構23Aおよび第2読み出しアドレス変換機構23Bは、ページ領域31A〜31Dに独立してアクセス可能である。また、第1読み出しアドレス変換機構23Aおよび第2読み出しアドレス変換機構23Bは、ベースアドレスレジスタ54およびストライド量レジスタ55を有している。なお、図示していないが、第1実施形態と同様に、第1読み出しアドレス変換機構23Aおよび第2読み出しアドレス変換機構23Bは、内部メモリ容量レジスタ52と、ページ容量レジスタ53と、を有する。さらに、書き込みアドレス変換機構22は、内部メモリ容量レジスタ42と、ページ容量レジスタ43と、を有する。
As shown in FIG. 18, the
ベースアドレスレジスタ54は、内部メモリコア21からデータを読み出す時に、内部メモリコア21において先頭からどの位置で読み出しを開始するかを指定するアドレス値を記憶する。ストライド量レジスタ55は、自分以外の全ての書き込みアドレス変換機構のページ容量の和を記憶する。この和の値から、次ページの読み出し開始アドレスのオフセットを得ることが可能である。
When reading data from the
図19は、第4実施形態の内部メモリ20Dにおいて、DMAC13が、メモリコントローラ16を介して外部メモリ18のデータを内部メモリ20Dに書き込み、第1ACC14Aおよび第2ACC14Bが内部メモリ20Dからデータを読み取るアクセス動作を説明する図である。
FIG. 19 shows an access operation in which the
外部メモリ18は、第1ACC14Aが処理するデータ1−a,2−a,3−a,4−a,5−aと、第2ACC14Bが処理するデータ1−b,2−b,3−b,4−b,5−bと、交互に記憶している。
The
まず、DMAC13は、メモリコントローラ16を介して、外部メモリ18に記憶されているデータ1−a,1−b,2−a,2−b,…を順番に読み出し、内部メモリ20Dの書き込みアドレス変換機構22に転送する。第1実施例と同様に、書き込みアドレス変換機構22は、転送されたデータを、ページ領域31A〜31Dに順番に書き込む。この際、各ページの状態フラグの確認を行い、書き込み不可の場合は可能になるまで待機し、書き込み可能な場合は書き込みデータの書き込みを行う。
First, the
第1ACC14Aは、1ページ目のデータ1−aの内部メモリ20Dへの書き込みが完了すると、第1読み出しアドレス変換機構23Aを介して、1ページ目のデータ1−aの内部メモリ20Dからの読み出し動作を開始する。第1読み出しアドレス変換機構23Aは、第1ACC14Aからの読み出しアドレス、内部メモリ容量レジスタおよびページ容量レジスタの値、ベースアドレスレジスタ54の値、ストライド量レジスタ55の値および状態フラグに基づいて、内部メモリ読み出しアドレスに変換するアドレス変換を行う。さらに、第1読み出しアドレス変換機構23Aは、内部メモリ読み出しアドレスから、内部メモリコア21内で該当するページ領域を割り出し、そのページの状態フラグの確認を行い、読み出し不可の場合は可能になるまで待機し、読み出し可能な場合はデータの読み出しを行う。第1読み出しアドレス変換機構23Aは、内部メモリコア21からデータの読み出しを行う時には、Read通知を状態遷移制御部24に出力する。さらに、第1読み出しアドレス変換機構23Aは、そのページの最終アドレスからの読み出しを行った場合は、Read完了通知を状態遷移制御部24に出力する。状態遷移制御部24は、Read完了通知を受信すると、そのページの状態フラグを”書き込み待ち”へと遷移させる。
When the writing of the first page data 1-a to the
一方、第2ACC14Bは、2ページ目のデータ1−bの内部メモリ20Dへの書き込みが完了すると、第2読み出しアドレス変換機構23Bを介して、2ページ目のデータ1−bの内部メモリ20Dからの読み出し動作を行う。この読み出し動作は、上記の第1読み出しアドレス変換機構23Aの動作と同じである。
On the other hand, when the writing of the data 1-b of the second page to the
以下、DMAC13による外部メモリ18のデータの内部メモリ20Dへの転送が順番に行われ、第1ACC14Aおよび第2ACC14Bによる内部メモリ20Dからのデータの読み出しが並行して行われる。図19では、データ1−aは第1データ領域31Aに、データ1−bは第2データ領域31Bに、データ2−aは第3データ領域31Cに、データ2−bは第4データ領域31Dに、それぞれ記憶される。また、データ3−a,4−a,5−aは、第1データ領域31A,第3データ領域31C,第1データ領域31Aにそれぞれ記憶され、データ3−b,4−b,5−bは、第2データ領域31B,第4データ領域31D,第2データ領域31Bにそれぞれ記憶される。第1ACC14Aは、第1データ領域31Aと第3データ領域31Cから交互にデータを読み取り、データ1−a,2−a,3−a,4−a,5−aを取得して処理する。第2ACC14Bは、第2データ領域31Bと第4データ領域31Dから交互にデータを読み取り、データ1−b,2−b,3−b,4−b,5−bを取得して処理する。
Thereafter, the
図20は、内部メモリ20Dのアクセス動作における書き込みデータおよび読み出しデータの変化を示すタイムチャートである。このタイムチャートは、1個のDMAC13による外部メモリ18から内部メモリ20Dへのデータ転送速度と、2個のACC14AおよびACC14Bによる内部メモリ20Dからの読み出し速度がほぼ等しい場合の動作タイムチャートである。言い換えれば、1個のDMAC13は、ACC14が所定時間に処理するデータを、所定時間の約半分の時間で転送する。
FIG. 20 is a time chart showing changes in write data and read data in the access operation of the
図20において、第1ページ領域〜第4ページ領域の単線の四角形は、DMAC13による内部メモリ20Dへの転送データの書き込みを示し、両端が2重線の四角形は、第1ACC14Aおよび第2ACC14Bによる内部メモリ20Dからのデータの読み出しを示す。
In FIG. 20, a single-line rectangle in the first page area to the fourth page area indicates writing of transfer data to the
図20に示すように、DMAC13によるデータ転送は、ページ順に行われ、第1ACC14Aおよび第2ACC14Bによるデータ読み出しは、一部が並行して行われる。
As shown in FIG. 20, data transfer by the
DMAC13は、1ページ目のデータ1−aの転送および書き込みが完了すると、2ページ目のデータ1−bの転送および書き込みを開始する。一方、1ページ目のデータ1−aの転送および書き込みが完了すると、第1ACC14Aは直ちにデータ1−aの読み取りを開始する。この時、2ページ目のデータ1−bの転送および書き込みが並行して行われる。そして、2ページ目のデータ1−bの転送および書き込みが完了すると、DMAC13は、3ページ目のデータ2−aの転送および書き込みを開始し、第2ACC14Bは、データ1−bの読み取りを開始する。この時、第1ACC14Aはまだデータ1−aの読み取りを行っている。以下、4ページ目以降のデータ2−aの書き込みおよび読み取りを行う。
When the transfer and writing of the data 1-a on the first page is completed, the
DMAC13による4ページ目のデータ2−bの転送および書き込みが完了した時には、第1ページ領域31Aに書き込まれたデータ1−aは既に第1ACC14Aにより読み取られて“書き込み(Write)待ち”であるから、DMAC13は、5ページ目のデータ3−aの第1ページ領域31Aへの転送および書き込みが開始される。
When the transfer and writing of the data 2-b of the fourth page by the
以下、第1ACC14Aと第2ACC14Bを交互に使用して、データの書き込みが完了していずれかのページ領域が“読み出し(Read)待ち”状態になるまで待機し、“読み出し(Read)”状態になったら、新たなデータの読み出しを行う。このような動作を繰り返すことにより、第1ACC14Aと第2ACC14Bは、外部メモリ18に記憶されたアクセス方式が異なる形で記憶されたデータを高速で処理することができる。
Thereafter, the
第4実施形態における転送されたデータの内部メモリ20D(内部メモリコア21のページ領域31A〜31D)への書き込み処理は、第1実施形態と同じである。
The process of writing the transferred data to the
図21は、第4実施形態において、第1ACC14Aおよび第2ACC14Bにより内部メモリ20D(内部メモリコア21のページ領域31A〜31D)からのデータの読み出し処理を示すフローチャートである。
FIG. 21 is a flowchart showing a process of reading data from the
ステップS51では、第1ACC14Aまたは第2ACC14Bが、内部メモリ20Dの第1読み出しアドレス変換機構23Aまたは第2読み出しアドレス変換機構23Bへの読み出し(Read)処理の発行を行う。
In step S51, the
ステップS52では、第1読み出しアドレス変換機構23Aまたは第2読み出しアドレス変換機構23Bが、内部メモリ容量レジスタおよびページ容量レジスタの値、ベースアドレスレジスタ54の値、ストライド量レジスタ55の値および状態フラグに基づいて、読み出しアドレスを内部メモリ読み出しアドレスと読み出しページを算出する。
In step S52, the first read
ステップS53では、第1読み出しアドレス変換機構23Aまたは第2読み出しアドレス変換機構23Bが、読み出しページの状態がWrite待ち(010)またはWrite中(01)であるか判定する。読み出しページが、Write待ちまたはWrite中である時には読み出しは行えないので、これらの状態が終了するまで待機し、これらの状態が終了したら次のステップに進む。
In step S53, the first read
ステップS54では、第1読み出しアドレス変換機構23Aまたは第2読み出しアドレス変換機構23Bが、読み出しページの状態がRead待ち(10)であるかを判定し、Read待ち(10)であればステップS55に進み、Read待ち(10)でなければステップS56に進む。
In step S54, the first read
ステップS55では、状態遷移制御部24が、読み出しページの状態フラグをRead中(11)に遷移させる。
In step S55, the state
ステップS56では、第1読み出しアドレス変換機構23Aまたは第2読み出しアドレス変換機構23Bが、内部メモリコア21の内部メモリ読み出しアドレスからのデータの読み出しを行う。
In step S56, the first read
ステップS57では、第1読み出しアドレス変換機構23Aまたは第2読み出しアドレス変換機構23Bが、設定したレジスタ情報を基にして、内部メモリ読み出しアドレスが、読み出しページの最終アドレスであるかを判定し、最終アドレスであればステップS58に進み、最終アドレスでなければ終了する。この後、同じ読み出しページに対して、ステップS51からS57が繰り返される。
In step S57, the first read
ステップS58では、状態遷移制御部24が、読み出しページの状態フラグをWrite待ち(00)に遷移させ、終了する。
In step S58, the state
図22は、第5実施形態のデータ処理装置10Eの内部メモリ20Eの構成を示す図である。 FIG. 22 is a diagram illustrating a configuration of the internal memory 20E of the data processing device 10E according to the fifth embodiment.
第4実施形態のデータ処理装置10Dは、内部メモリ20D内部に、2個のACC14Aおよび14Bに対応して、2個の読み出しアドレス変換機構23Aおよび23Bを設けた。しかし、読み出しアドレス変換機構による内部メモリコア21からのデータの読み出し速度が、1個のACCによるデータ処理速度より十分に高速であれば、例えば2倍以上高速であれば、2個のACC14Aおよび14Bを使用しても、1個の読み出しアドレス変換機構23で内部メモリコア21からデータを読み出すことが可能である。
In the data processing device 10D of the fourth embodiment, two read
第5実施形態のデータ処理装置10Eは、図17に示した第4実施形態のデータ処理装置10Bと同様に、2個のACC14Aおよび14Bを有する。内部メモリ20Eは、動作速度が高速で、2個のACC14Aおよび14Bが所定時間に処理するデータを1個の読み出しアドレス変換機構23で内部メモリコア21から所定時間内で読み出すことが可能である。他の部分は、第1および第4実施形態と同じである。
Similarly to the
図22に示すように、第5実施形態のデータ処理装置1ECの内部メモリ20Eは、第1実施形態の内部メモリ20Aと同様の構成を有するが、読み出しアドレス変換機構23がACCの個数(ここでは2個)分のアドレス範囲レジスタ56Aおよび56Bを有する。なお、図示していないが、第4実施形態と同様に内部メモリ容量レジスタ42および52とページ容量レジスタ43および53が、書き込みアドレス変換機構22および読み出しアドレス変換機構23にそれぞれ設けられている。さらに、読み出しアドレス変換機構23は、ベースアドレスレジスタ54とストライド量レジスタ55と、を有する。
As shown in FIG. 22, the internal memory 20E of the data processing device 1EC of the fifth embodiment has the same configuration as the
アドレス範囲レジスタ56Aおよび56Bは、第1ACC18Aおよび第2ACC18Bのアドレス範囲をそれぞれ記憶している。2個の第1ACC18Aおよび第2ACC18Bからの読み出しアドレスに関する情報から、データ要求元のACCを判定することができる。
Address range registers 56A and 56B store the address ranges of
図23は、第5実施形態の内部メモリ20Eにおいて、DMAC13が、メモリコントローラ16を介して外部メモリ18のデータを内部メモリ20Eに書き込み、第1ACC14Aおよび第2ACC14Bが内部メモリ20Eに転送されたデータを読み取るアクセス動作を説明する図である。
In FIG. 23, in the internal memory 20E of the fifth embodiment, the
前述のように、外部メモリ18は、第1ACC14Aが処理するデータ1−a,2−a,3−a,4−a,5−aと、第2ACC14Bが処理するデータ1−b,2−b,3−b,4−b,5−bと、交互に記憶している。
As described above, the
まず、DMAC13は、メモリコントローラ16を介して、外部メモリ18に記憶されているデータ1−a,1−b,2−a,2−b,…を順番に読み出し、内部メモリ20Eの書き込みアドレス変換機構22に転送する。第1実施例と同様に、書き込みアドレス変換機構22は、転送されたデータを、ページ領域31A〜31Dに順番に書き込む。この際、各ページの状態フラグの確認を行い、書き込み不可の場合は可能になるまで待機し、書き込み可能な場合は書き込みデータの書き込みを行う。
First, the
第1ACC14Aまたは第2ACC14Bは、読み出しアドレス変換機構23に読み出しアドレスを出力する。読み出しアドレス変換機構23は、読み出しアドレスと、アドレス範囲レジスタ56Aおよび56Bに記憶されたアドレス範囲と比較し、データの要求元のACCを特定する。言い換えれば、読み出しアドレス変換機構23は、要求されたデータのページ領域を判定する。そして、読み出しアドレス変換機構23は、判定したページ領域に応じて、データを読み出すページ領域を選択する。そして、読み出しアドレス、各レジスタの値および状態フラグに基づいて、内部メモリ読み出しアドレスに変換するアドレス変換を行い、読み出しページの状態フラグに応じて、読み出しまたは待機を行う。
The
読み出されたデータは、第1ACC14Aまたは第2ACC14Bに出力される。他の動作は、第4実施形態と同じである。したがって、第5実施形態における内部メモリ20Eのアクセス動作を示すタイムチャートは、図20に示した第4実施形態のタイムチャートと同じである。
The read data is output to the
図24は、第5実施形態において、第1ACC14Aおよび第2ACC14Bにより内部メモリ20E(内部メモリコア21のページ領域31A〜31D)からのデータの読み出し処理を示すフローチャートである。
FIG. 24 is a flowchart showing a process of reading data from the internal memory 20E (
ステップS61では、第1ACC14Aまたは第2ACC14Bが、内部メモリ20Dの第1読み出しアドレス変換機構23Aまたは第2読み出しアドレス変換機構23Bへの読み出し(Read)処理の発行を行う。
In step S61, the
ステップS62では、読み出しアドレスとアドレス範囲レジスタ56Aおよび56Bに記憶されたアドレス範囲情報がマッチするかを判定し、マッチすればステップS64に進み、マッチしなければステップS63に進む。 In step S62, it is determined whether the read address matches the address range information stored in the address range registers 56A and 56B. If they match, the process proceeds to step S64, and if they do not match, the process proceeds to step S63.
ステップS63では、読み出しアドレスとアドレス範囲がマッチしないので、要求元のACCを確認できないので、別のレジスタ情報を参照する。この処理は実施形態の処理に直接関係しないので、説明は省略する。 In step S63, since the read address and the address range do not match, the request source ACC cannot be confirmed, so another register information is referred to. Since this process is not directly related to the process of the embodiment, the description is omitted.
ステップS64では、読み出しアドレス変換機構23が、設定したレジスタ情報を基にして、入力された読み出しアドレスから内部メモリ読み出しアドレスと読み出しページを算出する。
In step S64, the read
ステップS65からS51は、図21のステップS53からS58と同じ処理である。 Steps S65 to S51 are the same processes as steps S53 to S58 in FIG.
第1および第5実施形態においては、各ページ領域のデータは最後まで読み出されてACCに出力された。状態遷移制御部24は、最後までデータが読み出された各ページ領域を、“書き込み(Write)待ち(00)”に変化させる。しかし、ACCの処理において、各ページ領域の途中までのデータで処理が完了し、最後までデータを読み出す必要のない場合があり得る。このような場合、内部メモリへの新たなデータの書き込みができないというデッドロックが発生する場合がある。このデッドロックの発生を、第4実施形態を例として説明する。
In the first and fifth embodiments, the data in each page area is read to the end and output to the ACC. The state
図25は、第4実施形態におけるデッドロックの発生を説明する図であり、図20のタイムチャートに対応する図である。 FIG. 25 is a diagram illustrating the occurrence of deadlock in the fourth embodiment, and corresponds to the time chart of FIG.
図25において、第1ACC14Aが、第1メモリ領域31Aに記憶されたデータ3−aを読み出すが、途中のデータまでしか必要としない場合を考える。この場合、第1ACC14Aは、データ3−aの最後まで読み出さないため、第1メモリ領域31Aの状態フラグは、“書き込み(Write)待ち(00)”にならず、“読み取り(Read)中(11)”のまま維持される。DMAC13による第4メモリ領域31Dへのデータ4−bの転送および書き込みが完了した後、DMAC13は第1メモリ領域31Aへのデータ5−aの転送および書き込みを行う。第1メモリ領域31Aは“読み取り(Read)中(11)”であり、DMAC13は、待機することになるが、第1メモリ領域31Aが“書き込み(Write)待ち(00)”になることはないので待機状態が続くことになる。そのため、データ5−a,5−bの内部メモリ20Dへの転送および書き込みが行われず、デッドロックが発生する。次に説明する第6実施形態のデータ処理装置では、デッドロックの発生を防止する。
In FIG. 25, consider a case where the
図26は、第6実施形態のデータ処理装置10Fの構成とデータのアクセス経路を示す図である。第6実施形態のデータ処理装置10Fは、第1および第2DMAC13Aおよび13Bと、第1および第2ACC14Aおよび14Bと、を有し、2個の第1および第2外部メモリ18Aが接続される。
FIG. 26 is a diagram illustrating a configuration of the
図27は、内部メモリ20Fの構成を示す図である。
FIG. 27 is a diagram showing the configuration of the
図27に示すように、第6実施形態のデータ処理装置10Fの内部メモリ20Fは、2個の書き込みアドレス変換機構22Aおよび22Bと、2個の読み出しアドレス変換機構23Aおよび23Bと、を有する。2個の書き込みアドレス変換機構22Aおよび22Bは、アドレス範囲レジスタ46Aおよび46Bを有し、2個の読み出しアドレス変換機構23Aおよび23Bは、アドレス範囲レジスタ56Aおよび56Bを有する。言い換えれば、第6実施形態のデータ処理装置10Fの内部メモリ20Fは、第3実施形態と第5実施形態を合わせた構成を有する。
As shown in FIG. 27, the
さらに、第6実施形態のデータ処理装置は、内部メモリ20Fの状態遷移制御部24のページごとの状態フラグに“ACC処理完了(100)”を追加したことが第4および第5実施形態のデータ処理装置と異なる。
Furthermore, the data processing apparatus according to the sixth embodiment adds “ACC processing completion (100)” to the status flag for each page of the state
第1ACC14Aおよび第2ACC14Bは、ページの途中でデータの処理を完了する場合を含めて、処理を完了した時には第1読み出しアドレス変換機構23Aおよび第2読み出しアドレス変換機構23Bに“ACC処理完了”を通知する。これに応じて、第1読み出しアドレス変換機構23Aおよび第2読み出しアドレス変換機構23Bは、“ACC処理完了”を状態遷移制御部24に通知し、状態遷移制御部24は対応するページの状態フラグを“ACC処理完了”に変化させる。
The
図28は、第6実施形態における各ページの状態フラグの変化を示す図である。図6に示した書き込み(Write)待ち(00)、書き込み(Write)中(01)、読み出し (Read)待ち(10)および読み出し (Read)中(11)の4つの状態に、“ACC処理完了(100)”が加えられている。“ACC処理完了(100)”は、4つの状態のいずれからも遷移することがあり得る。また、読み出し (Read)待ち(10)から書き込み(Write)待ち(00)への遷移も起きる場合がある。 FIG. 28 is a diagram illustrating changes in the status flags of each page in the sixth embodiment. In the four states shown in FIG. 6, writing (00), writing (01), reading (10) and reading (11), “ACC processing complete” (100) ”is added. “ACC processing complete (100)” can transition from any of the four states. In addition, there may be a transition from waiting for reading (10) to waiting for writing (00).
図29は、第6実施形態において、転送されたデータの内部メモリ20F(内部メモリコア21のページ領域31A〜31D)への書き込み処理を示すフローチャートである。
FIG. 29 is a flowchart showing a process of writing transferred data to the
ステップS71では、DMAC13が、内部メモリ20Fの書き込みアドレス変換機構22への書き込み(Write)処理の発行を行う。
In step S71, the
ステップS72では、書き込みアドレスとアドレス範囲レジスタ46Aおよび46Bに記憶されたアドレス範囲情報がマッチするかを判定し、マッチすればステップS74に進み、マッチしなければステップS73に進む。 In step S72, it is determined whether the write address matches the address range information stored in the address range registers 46A and 46B. If they match, the process proceeds to step S74, and if not, the process proceeds to step S73.
ステップS73では、書き込みアドレスとアドレス範囲がマッチしないので、転送元の外部メモリを確認できないので、別のレジスタ情報を参照する。 In step S73, since the write address and the address range do not match, the transfer source external memory cannot be confirmed, so another register information is referred to.
ステップS74では、書き込みアドレス変換機構22が、設定したレジスタ情報を基にして、入力された書き込みアドレスから内部メモリ書き込みアドレスと書き込みページを算出する。
In step S74, the write
ステップS75では、状態フラグが“ACC処理完了(100)”であるかを判定し、“ACC処理完了(100)”であればステップS76に進み、“ACC処理完了(100)”でなければステップS77に進む。 In step S75, it is determined whether or not the status flag is “ACC process complete (100)”. If “ACC process complete (100)”, the process proceeds to step S76. Proceed to S77.
ステップS76では、外部メモリからのデータの転送は行うが、内部メモリ20Fへの書き込みは行わずに終了する。
In step S76, data is transferred from the external memory, but the process ends without writing to the
ステップS77からS82は、図13のステップS33からS38と同じ処理である。 Steps S77 to S82 are the same processing as steps S33 to S38 in FIG.
図30は、第6実施形態において、第1ACC14Aおよび第2ACC14Bにより内部メモリ20F(内部メモリコア21のページ領域31A〜31D)からのデータの読み出し処理を示すフローチャートである。
FIG. 30 is a flowchart showing a process of reading data from the
ステップS91では、第1ACC14Aまたは第2ACC14Bが、内部メモリ20Dの第1読み出しアドレス変換機構23Aまたは第2読み出しアドレス変換機構23Bへの読み出し(Read)処理の発行を行う。
In step S91, the
ステップS92では、読み出しアドレスとアドレス範囲レジスタ56Aおよび56Bに記憶されたアドレス範囲情報がマッチするかを判定し、マッチすればステップS94に進み、マッチしなければステップS93に進む。 In step S92, it is determined whether the read address matches the address range information stored in the address range registers 56A and 56B. If they match, the process proceeds to step S94, and if they do not match, the process proceeds to step S93.
ステップS93では、読み出しアドレスとアドレス範囲がマッチしないので、要求元のACCを確認できないので、別のレジスタ情報を参照する。この処理は実施形態の処理に直接関係しないので、説明は省略する。 In step S93, since the read address does not match the address range, the request source ACC cannot be confirmed, so another register information is referred to. Since this process is not directly related to the process of the embodiment, the description is omitted.
ステップS94では、読み出しアドレス変換機構23が、設定したレジスタ情報を基にして、入力された読み出しアドレスから内部メモリ読み出しアドレスと読み出しページを算出する。
In step S94, the read
ステップS95では、算出した読み出しページと直前の処理で読み出したページが異なるか判定し、異なればステップS96に進み、同じであればステップS97に進む。 In step S95, it is determined whether the calculated read page is different from the page read in the immediately preceding process. If they are different, the process proceeds to step S96, and if they are the same, the process proceeds to step S97.
ステップ96では、内部メモリ20Fに保持されているページから算出した読み出しページの直前のページまでの状態フラグを“書き込み(Write)待ち(00)”に遷移させ、ステップS97に進む。
In step 96, the status flag from the page held in the
ステップS97からS102は、図21のステップS53からS58と同じ処理である。 Steps S97 to S102 are the same processing as steps S53 to S58 in FIG.
ステップS103では、読み出しアドレス変換機構23が行った処理における内部メモリ読み出しアドレスと読み出しページに関する情報をメモリに格納して終了する。
In step S103, the internal memory read address and information related to the read page in the process performed by the read
図31は、第6実施形態において、第1ACC14Aおよび第2ACC14Bによる読み出し処理が完了した時に行う処理を示すフローチャートである。
FIG. 31 is a flowchart illustrating a process performed when the read process by the
ステップS110では、第1ACC14Aまたは第2ACC14Bが、処理が完了したことを通知する。
In step S110, the
ステップS111では、読み出し制御部51が、処理が完了したのがどのACCであるかを確認する。
In step S111, the
ステップS112では、処理を完了したACCのレジスタ情報に基づいて、処理していたページを割り出す。 In step S112, the page that has been processed is determined based on the register information of the ACC that has completed the process.
ステップS113では、割り出したページの状態フラグの状態を“ACC処理完了(100)”に遷移させる。 In step S113, the status flag status of the determined page is changed to “ACC processing complete (100)”.
ステップS114では、処理完了したACCが複数のページについて処理を行っていた場合を考慮して、全ページの状態遷移を行ったかを判定し、ページが残っていればステップS112に戻り、ページが残っていなければ終了する。 In step S114, it is determined whether or not the state transition of all pages has been performed in consideration of the case where the completed ACC has performed processing for a plurality of pages. If pages remain, the process returns to step S112, and pages remain. If not, exit.
ACCの処理において、連続したページのデータを連続して処理せずに、途中のページのデータを使用せずに処理することがあり得る。このような場合、DMACによる外部メモリから内部メモリへのデータ転送および書き込みは連続したページで行われるため、データが書き込まれたページからのデータの読み出しが行われない、ページの読み飛ばしが発生する。第1から第5実施形態では、内部メモリコア21のページ領域は、データの読み出しが行われた後“書き込み(Write)待ち(00)”に遷移されるが、ページの読み飛ばしが発生すると、データの読み出しが行われないため“読み出し(Read)待ち(10)”が維持される。そのため、内部メモリへの新たなデータの書き込みができないというデッドロックが発生する場合がある。第7実施形態のデータ処理装置では、ページの読み飛ばしが発生しても、デッドロックが発生しない。
In the ACC process, it is possible that the data of consecutive pages is not processed continuously and the data of intermediate pages is not used. In such a case, since data transfer and writing from the external memory to the internal memory by the DMAC are performed in continuous pages, the data is not read from the page in which the data is written, and page skipping occurs. . In the first to fifth embodiments, the page area of the
図32は、内部メモリ20Gの構成を示す図である。 FIG. 32 is a diagram showing a configuration of the internal memory 20G.
図32に示すように、第7実施形態のデータ処理装置10Gの内部メモリ20Gは、読み出しアドレス変換機構23が、前回アドレスレジスタ57を有することが、第1実施形態と異なり、他の部分は第1実施形態と同じである。
As shown in FIG. 32, the internal memory 20G of the data processing device 10G of the seventh embodiment is different from the first embodiment in that the read
図33は、第7実施形態における各ページの状態フラグの変化を示す図である。図6に示した第1実施形態の場合と同様に、書き込み(Write)待ち(00)、書き込み(Write)中(01)、読み出し (Read)待ち(10)および読み出し (Read)中(11)の4つの状態を有する。しかし、“読み取り(Read)待ち(10)”から“書き込み(Write)待ち(00)”への遷移することがあり得ることが、第1実施形態と異なる。“読み取り(Read)待ち(10)”から“書き込み(Write)待ち(00)”への遷移は、読み取り(Read)されずに、ページを跨れた時に発生する。 FIG. 33 is a diagram illustrating changes in the status flag of each page in the seventh embodiment. As in the case of the first embodiment shown in FIG. 6, writing (00), writing (01), reading (10) and reading (11) are in progress (11). There are four states. However, it is different from the first embodiment that a transition from “Read wait (10)” to “Write wait (00)” can occur. The transition from “Read wait (10)” to “Write wait (00)” occurs when a page is straddled without being read.
図34は、第7実施形態において、内部メモリ20Gのアクセス動作における書き込みデータおよび読み出しデータの変化を示すタイムチャートであり、図5に対応する。基本的な動作は第1実施形態と同じなので説明は省略する。 FIG. 34 is a time chart showing changes in write data and read data in the access operation of the internal memory 20G in the seventh embodiment, and corresponds to FIG. Since the basic operation is the same as that of the first embodiment, the description is omitted.
図34に示すように、DMAC13による3ページ目のデータ転送および第1ページ領域31Aへのデータの書き込みが行われ、さらに4ページ目のデータ転送および第2ページ領域31Bへのデータの書き込みが行われる。通常、ACC14は、第2ページ領域31Bに書き込まれた2ページ目のデータの読み取りが終了した後、第1ページ領域31Aに書き込まれた3ページ目のデータおよび第2ページ領域31Bに書き込まれた4ページ目のデータを読み取る。しかし、図34の例では、3ページ目および4ページ目のデータを読み飛ばす。そのため、DMAC13による4ページ目のデータ転送および第2ページ領域31Bへのデータの書き込みが行われた後、5ページ目および6ページ目のデータ転送および第1ページ領域31Aおよび第2ページ領域31Bへのデータの書き込みが行われる。しかし、第1ページ領域31Aおよび第2ページ領域31Bは、“読み取り(Read)待ち(10)”であり、データの書き込みが行えない。そこで、各ページ領域ごとに、読み取り(Read)されずに、後のページを書き込むページを跨れる処理が発生すると、ページ領域を“読み取り(Read)待ち(10)”から“書き込み(Write)待ち(00)”へ遷移させる。これにより、5ページ目および6ページ目のデータ転送および第1ページ領域31Aおよび第2ページ領域31Bへのデータの書き込みが行われ、以降第1実施形態と同様の処理が行われる。
As shown in FIG. 34, the
図35は、ACC14により内部メモリ20G(内部メモリコア21のページ領域31A〜31D)からのデータの読み出し処理を示すフローチャートである。
FIG. 35 is a flowchart showing a process of reading data from the internal memory 20G (
ステップS121では、ACC14が、内部メモリ20Gの読み出しアドレス変換機構23への読み出し(Read)処理の発行を行う。
In step S121, the
ステップS122では、読み出しアドレス変換機構23が、設定したレジスタ情報を基にして、入力された読み出しアドレスから内部メモリ読み出しアドレスと読み出しページを算出する。
In step S122, the read
ステップ123では、読み出しアドレス変換機構23が、算出した読み出しページと、前回アドレスレジスタ57に記憶された前回の内部メモリ読み出しアドレスに対応するページとが異なるか判定し、異なればステップS124に進み、同じならばステップS125に進む。
In
ステップS124では、内部メモリに書き込まれて保持されているページのデータのうちで、算出した読み出しページの直前のページまでの状態フラグを“書き込み(Write)待ち(00)”に遷移させ、ステップS125に進む。 In step S124, among the data of the page written and held in the internal memory, the status flag up to the page immediately before the calculated read page is changed to “Waiting for write (00)”, and step S125. Proceed to
ステップS125からS130は、図21のステップS53からS58と同じ処理である。 Steps S125 to S130 are the same processing as steps S53 to S58 in FIG.
ステップS131では、読み出しアドレス変換機構23が行った処理における内部メモリ読み出しアドレスと読み出しページに関する情報をメモリに格納して終了する。
In step S131, the information related to the internal memory read address and the read page in the processing performed by the read
以上、第1から第7実施形態を説明したが、各種の変形例が可能であり、例えば、第1から第7実施形態で説明した構成は適宜組み合わせることが可能である。 The first to seventh embodiments have been described above, but various modifications are possible. For example, the configurations described in the first to seventh embodiments can be appropriately combined.
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。 Although the embodiment has been described above, all examples and conditions described herein are described for the purpose of helping understanding of the concept of the invention applied to the invention and the technology. It is not intended to limit the scope of the invention, and the construction of such examples in the specification does not indicate the advantages and disadvantages of the invention. Although embodiments of the invention have been described in detail, it should be understood that various changes, substitutions and modifications can be made without departing from the spirit and scope of the invention.
以下、実施形態に関し、更に以下の付記を開示する。
(付記1)
CPUと、
マスタ動作モジュールと、
前記マスタ動作モジュールから直接アクセス可能な内部メモリと、
前記マスタ動作モジュールから直接アクセスできない外部メモリへのアクセスを行い、前記内部メモリに前記外部メモリに記憶されたデータを転送するデータ転送部と、を備え、
前記内部メモリは、
ページ単位で論理的に分割した2以上のページ記憶領域と、
前記データ転送部により前記外部メモリから転送されたデータを、前記内部メモリのアドレスに変換して、前記2以上のページ記憶領域に書き込む書き込みアドレス変換部と、
前記マスタ動作モジュールの読み出し動作に応じて、前記マスタ動作モジュールの読み出しアドレスを前記内部メモリのアドレスに変換して、前記2以上のページ記憶領域に記憶されたデータを読み出す読み出しアドレス変換部と、
前記2以上のページ記憶領域のそれぞれに対応した状態フラグを有する状態遷移制御部と、を備え、
前記読み出しアドレス変換部が前記書き込みアドレス変換部による書き込みが行われたページ記憶領域に対して読み出し動作を行い、前記書き込みアドレス変換部が前記読み出しアドレス変換部による読み出し動作が終了したページ記憶領域に対して書き込み動作を行うように制御することを特徴とするデータ処理装置。(1)(図2−図9)
(付記2)
前記内部メモリは、
前記内部メモリの容量を規定する値を記憶する内部メモリ容量レジスタと、
前記ページ記憶領域の大きさを規定する値を記憶するページ容量レジスタと、を備え、
前記内部メモリ容量レジスタおよび前記ページ容量レジスタの値は、任意に設定可能である付記1記載のデータ処理装置。
(付記3)
前記データ転送部は、複数の前記外部メモリから並行してデータを転送する複数のデータ転送器を備え、
前記書き込みアドレス変換部は、前記複数のデータ転送器に対応した複数の書き込みアドレス変換機構を備える付記1または2記載のデータ処理装置。(2)(図9、図10)
(付記4)
各書き込みアドレス変換機構は、
前記内部メモリへのデータ書き込みの開始アドレス情報を記憶するベースアドレスレジスタと、
データを書き込むページ記憶領域が変化する時の変化量を記憶するストライド量レジスタと、を備える付記3記載のデータ処理装置。
(付記5)
前記データ転送部は、複数の前記外部メモリから並行してデータを転送する複数のデータ転送器を備え、
前記書き込みアドレス変換部は、前記複数のデータ転送器に対応した複数のアドレス範囲レジスタを備え、
各アドレス範囲レジスタは、対応するデータ転送器によりデータが転送される前記外部メモリのアドレス範囲を記憶し、
前記書き込みアドレス変換部は、前記アドレス範囲から前記外部メモリを特定する付記1または2記載のデータ処理装置。(3)(図14−図16)
(付記6)
前記マスタ動作モジュールは、前記内部メモリから並行してデータを読み取る複数のマスタ動作器を備え、
前記読み出しアドレス変換部は、前記複数のマスタ動作器に対応した複数の読み出しアドレス変換機構を備える付記1から5のいずれか記載のデータ処理装置。(4)(図17−図21)
(付記7)
各読み出しアドレス変換機構は、
前記内部メモリからのデータ読み出しの開始アドレス情報を記憶するベースアドレスレジスタと、
データを読み出すページ記憶領域が変化する時の変化量を記憶するストライド量レジスタと、を備える付記6記載のデータ処理装置。
(付記8)
前記マスタ動作モジュールは、前記内部メモリから並行してデータを読み取る複数のマスタ動作器を備え、
前記読み出しアドレス変換部は、前記複数のマスタ動作器に対応した複数のアドレス範囲レジスタを備え、
各アドレス範囲レジスタは、対応するマスタ動作器のアドレス範囲を記憶し、
前記読み出しアドレス変換部は、前記アドレス範囲から前記マスタ動作器を特定する付記1から5のいずれか記載のデータ処理装置。
(付記9)
前記マスタ動作モジュールは、前記内部メモリからのデータの読み取りが終了すると、前記読み出しアドレス変換部に読み取り完了を通知し、
前記読み出しアドレス変換部は、前記マスタ動作モジュールが、読み取り完了が通知された前記ページ記憶領域より後のページにアクセスしたことを検出した時には、読み取り完了が通知された前記ページ記憶領域を書き込み待ちの状態に遷移させる付記1から8のいずれか記載のデータ処理装置。
(付記10)
前記読み出しアドレス変換部は、前記マスタ動作モジュールが前回アクセスしたアドレス情報を記憶する前回アドレスレジスタを備え、
前記前回アクセスしたアドレス情報と前記マスタ動作モジュールによる読み出しアドレスを比較して、前記マスタ動作モジュールが前記内部メモリに書き込まれたデータを読み取らずに次のページにアクセスするページの読み飛ばしを行ったことを検出した時には、読み飛ばされたページを書き込み待ちの状態に遷移させる請求項1から8のいずれか記載のデータ処理装置。(5)(図32−図35)
Hereinafter, the following additional notes will be disclosed with respect to the embodiment.
(Appendix 1)
CPU,
A master operating module;
An internal memory accessible directly from the master operating module;
A data transfer unit that accesses an external memory that is not directly accessible from the master operation module, and that transfers data stored in the external memory to the internal memory; and
The internal memory is
Two or more page storage areas logically divided in units of pages;
A write address conversion unit that converts the data transferred from the external memory by the data transfer unit into an address of the internal memory and writes the address to the two or more page storage areas;
A read address conversion unit that converts a read address of the master operation module into an address of the internal memory in accordance with a read operation of the master operation module, and reads data stored in the two or more page storage areas;
A state transition control unit having a state flag corresponding to each of the two or more page storage areas,
The read address conversion unit performs a read operation on the page storage area where writing by the write address conversion unit is performed, and the write address conversion unit performs read operation on the page storage area where the read operation by the read address conversion unit is completed. And a data processing apparatus that controls to perform a writing operation. (1) (Figs. 2-9)
(Appendix 2)
The internal memory is
An internal memory capacity register for storing a value defining the capacity of the internal memory;
A page capacity register for storing a value defining the size of the page storage area,
The data processing device according to
(Appendix 3)
The data transfer unit includes a plurality of data transfer units that transfer data in parallel from the plurality of external memories,
The data processing apparatus according to
(Appendix 4)
Each write address translation mechanism
A base address register for storing start address information of data writing to the internal memory;
The data processing apparatus according to
(Appendix 5)
The data transfer unit includes a plurality of data transfer units that transfer data in parallel from the plurality of external memories,
The write address conversion unit includes a plurality of address range registers corresponding to the plurality of data transfer units,
Each address range register stores an address range of the external memory to which data is transferred by a corresponding data transfer unit,
The data processing device according to
(Appendix 6)
The master operation module includes a plurality of master operation units that read data in parallel from the internal memory,
The data processing device according to any one of
(Appendix 7)
Each read address translation mechanism
A base address register for storing start address information of data reading from the internal memory;
The data processing apparatus according to
(Appendix 8)
The master operation module includes a plurality of master operation units that read data in parallel from the internal memory,
The read address conversion unit includes a plurality of address range registers corresponding to the plurality of master operating units,
Each address range register stores the address range of the corresponding master actuator,
The data processing device according to any one of
(Appendix 9)
When the master operation module finishes reading the data from the internal memory, the master operation module notifies the read address conversion unit of the completion of reading,
When the master operation module detects that the master operation module has accessed a page after the page storage area notified of the read completion, the read address conversion unit waits for writing the page storage area notified of the read completion. 9. The data processing device according to any one of
(Appendix 10)
The read address conversion unit includes a previous address register for storing address information accessed by the master operation module last time,
The address information accessed last time is compared with the read address by the master operation module, and the master operation module skips the page that accesses the next page without reading the data written in the internal memory. The data processing apparatus according to
10 10A データ処理装置(SoC)
11 バス
12 CPU
13 DMAC
13 電源制御ユニット(PMU)
14 アクセラレータ(ACC)
16 メモリコントローラ
17 制御用メモリ
18 外部メモリ
20A 内部メモリ
21 内部メモリコア
22 書き込みアドレス変換機構
23 読み出しアドレス変換機構
24 状態遷移制御部
31A−31D ページ領域
41 書き込み動作制御部
51 読み出し動作制御部
61A−61D 状態フラグ
10 10A Data processing device (SoC)
11
13 DMAC
13 Power supply control unit (PMU)
14 Accelerator (ACC)
16
Claims (5)
マスタ動作モジュールと、
前記マスタ動作モジュールから直接アクセス可能な内部メモリと、
前記マスタ動作モジュールから直接アクセスできない外部メモリへのアクセスを行い、前記内部メモリに前記外部メモリに記憶されたデータを転送するデータ転送部と、を備え、
前記内部メモリは、
ページ単位で論理的に分割した2以上のページ記憶領域と、
前記データ転送部により前記外部メモリから転送されたデータを、前記内部メモリのアドレスに変換して、前記2以上のページ記憶領域に書き込む書き込みアドレス変換部と、
前記マスタ動作モジュールの読み出し動作に応じて、前記マスタ動作モジュールの読み出しアドレスを前記内部メモリのアドレスに変換して、前記2以上のページ記憶領域に記憶されたデータを読み出す読み出しアドレス変換部と、
前記2以上のページ記憶領域のそれぞれに対応した状態フラグを有する状態遷移制御部と、を備え、
前記読み出しアドレス変換部が前記書き込みアドレス変換部による書き込みが行われたページ記憶領域に対して読み出し動作を行い、前記書き込みアドレス変換部が前記読み出しアドレス変換部による読み出し動作が終了したページ記憶領域に対して書き込み動作を行うように制御することを特徴とするデータ処理装置。 CPU,
A master operating module;
An internal memory accessible directly from the master operating module;
A data transfer unit that accesses an external memory that is not directly accessible from the master operation module, and that transfers data stored in the external memory to the internal memory; and
The internal memory is
Two or more page storage areas logically divided in units of pages;
A write address conversion unit that converts the data transferred from the external memory by the data transfer unit into an address of the internal memory and writes the address to the two or more page storage areas;
A read address conversion unit that converts a read address of the master operation module into an address of the internal memory in accordance with a read operation of the master operation module, and reads data stored in the two or more page storage areas;
A state transition control unit having a state flag corresponding to each of the two or more page storage areas,
The read address conversion unit performs a read operation on the page storage area where writing by the write address conversion unit is performed, and the write address conversion unit performs read operation on the page storage area where the read operation by the read address conversion unit is completed. And a data processing apparatus that controls to perform a writing operation.
前記書き込みアドレス変換部は、前記複数のデータ転送器に対応した複数の書き込みアドレス変換機構を備える請求項1記載のデータ処理装置。 The data transfer unit includes a plurality of data transfer units that transfer data in parallel from the plurality of external memories,
The data processing apparatus according to claim 1, wherein the write address conversion unit includes a plurality of write address conversion mechanisms corresponding to the plurality of data transfer units.
前記書き込みアドレス変換部は、前記複数のデータ転送器に対応した複数のアドレス範囲レジスタを備え、
各アドレス範囲レジスタは、対応するデータ転送器によりデータが転送される前記外部メモリのアドレス範囲を記憶し、
前記書き込みアドレス変換部は、前記アドレス範囲から前記外部メモリを特定する請求項1記載のデータ処理装置。 The data transfer unit includes a plurality of data transfer units that transfer data in parallel from the plurality of external memories,
The write address conversion unit includes a plurality of address range registers corresponding to the plurality of data transfer units,
Each address range register stores an address range of the external memory to which data is transferred by a corresponding data transfer unit,
The data processing apparatus according to claim 1, wherein the write address conversion unit specifies the external memory from the address range.
前記読み出しアドレス変換部は、前記複数のマスタ動作器に対応した複数の読み出しアドレス変換機構を備える請求項1から3のいずれか記載のデータ処理装置。 The master operation module includes a plurality of master operation units that read data in parallel from the internal memory,
The data processing apparatus according to claim 1, wherein the read address conversion unit includes a plurality of read address conversion mechanisms corresponding to the plurality of master operating units.
前記前回アクセスしたアドレス情報と前記マスタ動作モジュールによる読み出しアドレスを比較して、前記マスタ動作モジュールが前記内部メモリに書き込まれたデータを読み取らずに次のページにアクセスするページの読み飛ばしを行ったことを検出した時には、読み飛ばされたページを書き込み待ちの状態に遷移させる請求項1から4のいずれか記載のデータ処理装置。 The read address conversion unit includes a previous address register for storing address information accessed by the master operation module last time,
The address information accessed last time is compared with the read address by the master operation module, and the master operation module skips the page that accesses the next page without reading the data written in the internal memory. 5. The data processing apparatus according to claim 1, wherein when the data is detected, the page skipped is shifted to a write wait state.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010173474A JP5445385B2 (en) | 2010-08-02 | 2010-08-02 | Data processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010173474A JP5445385B2 (en) | 2010-08-02 | 2010-08-02 | Data processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012033085A JP2012033085A (en) | 2012-02-16 |
JP5445385B2 true JP5445385B2 (en) | 2014-03-19 |
Family
ID=45846390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010173474A Expired - Fee Related JP5445385B2 (en) | 2010-08-02 | 2010-08-02 | Data processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5445385B2 (en) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001184191A (en) * | 1999-12-22 | 2001-07-06 | Alps Electric Co Ltd | Data processor |
JP2003288268A (en) * | 2002-03-28 | 2003-10-10 | Fujitsu Ltd | Memory device |
JP2005073004A (en) * | 2003-08-26 | 2005-03-17 | Konica Minolta Business Technologies Inc | Method and device for managing frame buffer |
JP2005267148A (en) * | 2004-03-18 | 2005-09-29 | Konica Minolta Business Technologies Inc | Memory controller |
JP2007034643A (en) * | 2005-07-27 | 2007-02-08 | Fujitsu Ltd | Memory unit |
JP2007233707A (en) * | 2006-03-01 | 2007-09-13 | Seiko Epson Corp | Buffer device and integrated circuit device |
-
2010
- 2010-08-02 JP JP2010173474A patent/JP5445385B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2012033085A (en) | 2012-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2012064021A (en) | Communication system, master device and slave device, and communication method | |
JP2004252960A (en) | Memory controller | |
JP2003296267A (en) | Bus system and information processing system including bus system | |
JP4945125B2 (en) | Memory control device | |
JP2006040276A (en) | Bus arbitration system for saving on power consumption based on selective clock control and method thereof | |
US8180990B2 (en) | Integrated circuit including a plurality of master circuits transmitting access requests to an external device and integrated circuit system including first and second interated circuits each including a plurality of master circuits transmitting access requests | |
US7913013B2 (en) | Semiconductor integrated circuit | |
US8799699B2 (en) | Data processing system | |
JP5445385B2 (en) | Data processing device | |
JP4193746B2 (en) | Matrix bus connection system | |
JPH0793274A (en) | System and device for transferring data | |
JP5528939B2 (en) | Microcomputer | |
US8127108B2 (en) | Apparatus, system and method for prefetching data in bus system | |
JP2011034214A (en) | Memory controller | |
JP3610029B2 (en) | Data processing system | |
JP4633334B2 (en) | Information processing apparatus and memory access arbitration method | |
JP2003208399A (en) | Data processing apparatus | |
JP5489871B2 (en) | Image processing device | |
JP2012168773A (en) | Bus system and access control method | |
JP4249741B2 (en) | Bus system and information processing system including bus system | |
JP2008305215A (en) | Bus system | |
JPH1185673A (en) | Method and device for controlling shared bus | |
JP4437386B2 (en) | Signal processing system | |
JP6725970B2 (en) | Multiprocessor system | |
JP2002236606A (en) | Memory control circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130604 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131120 |
|
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: 20131126 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131209 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |