JP2015170293A - Data processing device and data transfer method - Google Patents

Data processing device and data transfer method Download PDF

Info

Publication number
JP2015170293A
JP2015170293A JP2014046733A JP2014046733A JP2015170293A JP 2015170293 A JP2015170293 A JP 2015170293A JP 2014046733 A JP2014046733 A JP 2014046733A JP 2014046733 A JP2014046733 A JP 2014046733A JP 2015170293 A JP2015170293 A JP 2015170293A
Authority
JP
Japan
Prior art keywords
data
bus
interface
temporary storage
input
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.)
Granted
Application number
JP2014046733A
Other languages
Japanese (ja)
Other versions
JP6394006B2 (en
Inventor
嵯峨 嘉孝
Yoshitaka Saga
嘉孝 嵯峨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2014046733A priority Critical patent/JP6394006B2/en
Publication of JP2015170293A publication Critical patent/JP2015170293A/en
Application granted granted Critical
Publication of JP6394006B2 publication Critical patent/JP6394006B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

PROBLEM TO BE SOLVED: To perform a high-speed data transfer between a plurality of functional modules connected to a bus.SOLUTION: A data processing device comprises: a bus 101 that relates to a data transfer; a plurality of functional modules 50 and 60 that is connected to the bus 101 ; and a plurality of temporary storage devices 10 and 20 that is connected to the bus 101 and has an order of writing and reading data defined. Each of the plurality of functional modules 50 and 60, and the plurality of temporary storage devices 10 and 20 includes bus connection interfaces 11, 12, 21, 22, 52, 53, 62 and 63 for connecting to the bus 101, and these bus connection interfaces have a bus address capable of uniquely identifying the bus connection interface allocated. Then, the processing device is configured to simultaneously execute the data transfer between one of the plurality of functional modules and one of the plurality of temporary storage devices and the data transfer between the other of the plurality of functional modules and the other of the plurality of temporary storage devices.

Description

本発明は、データ処理装置及びデータ転送方法に係り、特に同一のバスに接続された複数の機能モジュール間のデータ転送速度を向上させる技術に関する。   The present invention relates to a data processing apparatus and a data transfer method, and more particularly to a technique for improving a data transfer speed between a plurality of functional modules connected to the same bus.

周辺IOデバイス、例えばHDD(Hard disk drive)、SSD(Solid State Drive)、USB(Universal Serial Bus)、SDカード、PCI Express(登録商標)等の高速化や、データ処理(画像処理、圧縮伸張、暗号復号等)の高速化に伴い、各機能モジュール毎にマスタ型のDMAC(Direct Memory Access Controller)を備えている場合が多くなっている。各機能モジュール及びメモリはバスに接続されるが、マスター型のDMAC間でデータ転送を行う場合は、共有メモリを介してデータ転送を実行する必要がある。   Peripheral IO devices, such as HDD (Hard disk drive), SSD (Solid State Drive), USB (Universal Serial Bus), SD card, PCI Express (registered trademark), etc., data processing (image processing, compression / decompression, As the speed of encryption and decryption increases, a master type DMAC (Direct Memory Access Controller) is often provided for each functional module. Each functional module and memory are connected to a bus. When data is transferred between master type DMACs, it is necessary to execute data transfer via a shared memory.

また、データ処理順序が決まっている(逆転が許されない)場合はメモリへのライト完了を待った後に、メモリからのリードを実行する必要がある。若しくは、ライトDMACとリードDMAC間にサイドバンド信号を設け、それぞれのデータ転送の進捗を監視できるようにし、データ転送の進捗に従がって転送を待たせる処理が必要である。   If the data processing order is fixed (reversal is not allowed), it is necessary to read from the memory after waiting for completion of writing to the memory. Alternatively, it is necessary to provide a sideband signal between the write DMAC and the read DMAC so that the progress of each data transfer can be monitored and the transfer is awaited according to the progress of the data transfer.

メモリを介することなく、マスタ型DMAC間でデータ転送を実行する方法として、特許文献1には、マスタ型DMAC間及び転送に必要な容量を有する一つのFIFO(First−In First−Out)回路をバスに接続する構成が開示されている。特許文献1のFIFOは、データの入出力を行えることから明らかなように、2つのスレーブインターフェースを有し、それぞれのスレーブインターフェースがバスに接続されている。そして一方のスレーブインターフェースはFIFOへのデータ入力に使用され、もう一方のスレーブインターフェースはデータの出力に使用される。そして、データを送信する側のマスタ型DMACは、FIFOのデータ入力用のスレーブインターフェースに対してデータを出力し、データを引き取る側のマスタ型DMACは、FIFOのデータ出力用のスレーブインターフェースを通して、データを受信する。FIFOを使用するため、自然と、データの転送順序(ライトしてからリードする)を守ることができる。   As a method of executing data transfer between master type DMACs without going through a memory, Patent Document 1 discloses a first-in first-out (FIFO) circuit having a capacity necessary for transfer between master type DMACs. A configuration for connecting to a bus is disclosed. As is clear from the fact that the FIFO of Patent Document 1 can input and output data, it has two slave interfaces, and each slave interface is connected to a bus. One slave interface is used for data input to the FIFO, and the other slave interface is used for data output. Then, the master type DMAC on the data transmitting side outputs data to the slave data input interface of the FIFO, and the master type DMAC on the data receiving side passes the data through the slave interface for FIFO data output. Receive. Since the FIFO is used, the data transfer order (write and read) can be protected naturally.

しかし、特許文献1に記載されているようにマスタ型DMAC間のデータ転送を、バス接続した1個のFIFOを介して実行する方法では、1組のマスタ型DMAC間のデータ転送にFIFOを使用している場合、他のマスタ型DMAC間のデータ転送はFIFOを使用することができない。この場合、FIFOの代わりに共有メモリを介して転送を実行するため、共有メモリへのライト動作の完了を待ってから、リード動作が実行されることとなり、転送速度が低下する。また、共有メモリへのアクセスが混雑している場合にも転送速度が低下する。従って、特許文献1では、複数のマスタ型DMACを有する場合に、1組のマスタ型DMAC間のデータ転送にFIFOを使用中に他のマスタ型DMAC間のデータ転送速度が低下するという課題が解消できていない。   However, as described in Patent Document 1, in the method of executing data transfer between master DMACs via a single FIFO connected to the bus, the FIFO is used for data transfer between a pair of master DMACs. In this case, the FIFO cannot be used for data transfer between other master type DMACs. In this case, since the transfer is executed via the shared memory instead of the FIFO, the read operation is executed after completion of the write operation to the shared memory, and the transfer speed is lowered. Also, the transfer rate decreases when access to the shared memory is congested. Therefore, in Patent Document 1, when there are a plurality of master type DMACs, the problem that the data transfer rate between other master type DMACs decreases while using a FIFO for data transfer between a pair of master type DMACs is solved. Not done.

本発明は、上記課題に鑑みてなされたものであり、バスに接続した複数の機能モジュール間のデータ転送を高速に行えるデータ処理装置及びデータ転送方法を提供することを目的とする。   The present invention has been made in view of the above problems, and an object of the present invention is to provide a data processing apparatus and a data transfer method capable of transferring data between a plurality of functional modules connected to a bus at high speed.

上記課題を解決するために、本発明に係るデータ処理装置は、データ転送に係るバスと、前記バスに接続された複数の機能モジュールと、前記バスに接続され、先に書き込んだデータから順に前記データを読み出す複数の一時記憶装置と、を備え、前記複数の機能モジュール及び前記複数の一時記憶装置のそれぞれは、前記バスに接続するためのバス接続インターフェースを備え、前記複数の一時記憶装置のそれぞれに含まれるバス接続インターフェースには、前記バスから当該一時記憶装置へのデータの入力を受け付ける入力インターフェース及び当該一時記憶装置から前記バスへデータを出力する出力インターフェースが含まれ、前記バス接続インターフェース、前記入力インターフェース、及び前記出力インターフェースは、それぞれを固有に識別可能なバスアドレスが割り当てられ、前記複数の機能モジュールの一方及び前記複数の一時記憶装置の一方の間のデータの転送、及び前記複数の機能モジュールの他方及び前記複数の一時記憶装置の他方の間のデータの転送を同時に実行可能に形成される、ことを特徴とする。   In order to solve the above-described problems, a data processing device according to the present invention includes a bus for data transfer, a plurality of functional modules connected to the bus, and the data written in advance from the data connected to the bus. A plurality of temporary storage devices for reading data, and each of the plurality of functional modules and the plurality of temporary storage devices includes a bus connection interface for connecting to the bus, and each of the plurality of temporary storage devices Included in the bus connection interface includes an input interface for receiving data input from the bus to the temporary storage device and an output interface for outputting data from the temporary storage device to the bus, the bus connection interface, The input interface and the output interface are respectively A uniquely identifiable bus address is assigned, data transfer between one of the plurality of functional modules and one of the plurality of temporary storage devices, and the other of the plurality of functional modules and the plurality of temporary storage devices The data transfer between the other is formed so as to be executed simultaneously.

また、本発明に係るデータ転送方法は、データ転送に係るバスと、前記バスに接続された複数の機能モジュールと、前記バスに接続され、先に書き込んだデータから順に前記データを読み出す複数の一時記憶装置と、を備えたデータ処理装置において、前記複数の機能モジュール及び前記複数の一時記憶装置のそれぞれは、前記バスに接続するためのバス接続インターフェースを備え、前記複数の一時記憶装置のそれぞれに含まれるバス接続インターフェースには、前記バスから当該一時記憶装置へのデータの入力を受け付ける入力インターフェース及び当該一時記憶装置から前記バスへデータを出力する出力インターフェースが含まれ、前記バス接続インターフェース、前記入力インターフェース、及び前記出力インターフェースは、それぞれを固有に識別可能なバスアドレスが割り当てられ、前記複数の機能モジュールの一方及び前記複数の一時記憶装置の一方の間のデータの転送、及び前記複数の機能モジュールの他方及び前記複数の一時記憶装置の他方の間のデータの転送を同時に実行する、ことを特徴とする。   Further, the data transfer method according to the present invention includes a bus for data transfer, a plurality of functional modules connected to the bus, and a plurality of temporary data connected to the bus and reading the data in order from the previously written data. Each of the plurality of functional modules and the plurality of temporary storage devices includes a bus connection interface for connecting to the bus, and each of the plurality of temporary storage devices. The included bus connection interface includes an input interface that receives input of data from the bus to the temporary storage device and an output interface that outputs data from the temporary storage device to the bus. The bus connection interface, the input Interface, and the output interface A bus address uniquely identifiable is assigned, data transfer between one of the plurality of functional modules and one of the plurality of temporary storage devices, and the other of the plurality of functional modules and the plurality of temporary storages Data transfer between the other devices is performed simultaneously.

本発明によれば、バスに接続した複数の機能モジュール間のデータ転送を高速に行えるデータ処理装置及びデータ転送方法を提供することができる。   According to the present invention, it is possible to provide a data processing apparatus and a data transfer method capable of transferring data between a plurality of functional modules connected to a bus at high speed.

本発明を適用したデータ処理装置の構成を示す図The figure which shows the structure of the data processing apparatus to which this invention is applied 図1に示す機能モジュールの構成をより詳しく示した図であり、(a)は圧縮/伸張処理部の構成を示し、(b)は暗号/復号処理部の構成を示し、(c)はSATA制御部の構成を示す。2 is a diagram showing the configuration of the functional module shown in FIG. 1 in more detail, (a) shows the configuration of the compression / decompression processing unit, (b) shows the configuration of the encryption / decryption processing unit, and (c) shows SATA. The structure of a control part is shown. バスアドレスの割り当ての例を示す説明図Explanatory diagram showing an example of bus address assignment 圧縮、暗号化、及びHDDへライトする場合のデータ転送動作におけるデータの流れを示す図The figure which shows the data flow in the data transfer operation | movement at the time of compression, encryption, and writing in HDD 圧縮、暗号化、及びHDDへライトする場合の時系列に沿った処理動作を示す図The figure which shows the processing operation along the time series at the time of compression, encryption, and writing to HDD 復号化、伸張、及びメモリへライトする場合の時系列に沿った処理動作を示す図The figure which shows the processing operation in time series at the time of decoding, decompression, and writing to memory

以下、図面を参照して、本発明の実施形態を詳細に説明する。まず、図1及び図2を参照して本実施形態に係るデータ処理装置の構成について説明する。図1は、本発明を適用したデータ処理装置の構成を示す図である。図2は、図1に示す機能モジュールの構成をより詳しく示した図であり、(a)は圧縮/伸張処理部の構成を示し、(b)は暗号/復号処理部の構成を示し、(c)はSATA制御部の構成を示す。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. First, the configuration of the data processing apparatus according to the present embodiment will be described with reference to FIGS. 1 and 2. FIG. 1 is a diagram showing a configuration of a data processing apparatus to which the present invention is applied. 2 is a diagram showing the configuration of the functional module shown in FIG. 1 in more detail. (A) shows the configuration of the compression / decompression processing unit, (b) shows the configuration of the encryption / decryption processing unit, c) shows the configuration of the SATA control unit.

図1に示すように、データ処理装置1は、データ転送速度が異なる二つのバスを有する。これらのバスのうち、データ転送速度が速いバスを高速バス101、低いバスを低速バス102という。   As shown in FIG. 1, the data processing apparatus 1 has two buses with different data transfer rates. Among these buses, a bus with a high data transfer rate is called a high-speed bus 101, and a low bus is called a low-speed bus 102.

またデータ処理装置1は、一時記憶装置としてのFIFO回路(以下、「FIFO」と略記する)を二つ含む。また、これらのFIFOは、FIFO_A(符号10)、及びFIFO_B(符号20)と称する。更にデータ処理装置1は、メモリ30、SATA(Serial ATA)制御部40、暗号/復号器50、圧縮/伸張器60、汎用DMAC70、CPU(Central Processing Unit)80、フラッシュROM(Read Only Memory)90、及びHDD103を含む。以下、メモリ30、SATA制御部40、暗号/復号器50、圧縮/伸張器60、汎用DMAC70、CPU80、及びフラッシュROM90を一般化して機能モジュールと称する。   The data processing device 1 includes two FIFO circuits (hereinafter abbreviated as “FIFO”) as temporary storage devices. These FIFOs are referred to as FIFO_A (reference numeral 10) and FIFO_B (reference numeral 20). Further, the data processing apparatus 1 includes a memory 30, a SATA (Serial ATA) control unit 40, an encryption / decryption unit 50, a compression / decompression unit 60, a general-purpose DMAC 70, a CPU (Central Processing Unit) 80, and a flash ROM (Read Only Memory) 90. And HDD 103. Hereinafter, the memory 30, the SATA control unit 40, the encryption / decryption device 50, the compression / decompression device 60, the general-purpose DMAC 70, the CPU 80, and the flash ROM 90 are generalized and referred to as functional modules.

各機能モジュールは、高速バス101又は低速バス102に接続するためのバス接続インターフェース(以下「インターフェース」と略記する)を有する。各インターフェースは、マスタスレーブ機能の区分けからマスタインターフェース又はスレーブインターフェースに分類される。また各インターフェースは、データ入力を受け付ける入力インターフェース及びデータ出力を受け付ける出力インターフェースに分類される。各インターフェースは、当該インターフェースを固有に識別可能なバスアドレスが割り当てられる。これらの詳細については後述する。   Each functional module has a bus connection interface (hereinafter abbreviated as “interface”) for connection to the high-speed bus 101 or the low-speed bus 102. Each interface is classified into a master interface or a slave interface from the classification of the master / slave function. Each interface is classified into an input interface that receives data input and an output interface that receives data output. Each interface is assigned a bus address that can uniquely identify the interface. Details of these will be described later.

FIFO_A10、FIFO_B20、メモリ30、CPU80、及びフラッシュROM90は、高速バス101に接続される。   FIFO_A 10, FIFO_B 20, memory 30, CPU 80, and flash ROM 90 are connected to the high-speed bus 101.

また、SATA制御部40、暗号/復号器50、圧縮/伸張器60、及び汎用DMAC70は、高速バス101及び低速バス102にそれぞれ接続される。   The SATA control unit 40, the encryption / decryption device 50, the compression / decompression device 60, and the general-purpose DMAC 70 are connected to the high-speed bus 101 and the low-speed bus 102, respectively.

FIFO_A10は、先に記憶したデータから順番にデータを取り出すことができる一時記憶装置である。FIFO_A10は、入力スレーブインターフェース11及び出力スレーブインターフェース12を有し、各スレーブインターフェースを介して高速バス101に接続している。そして、高速バス101に接続しているマスタインターフェースを備えた任意の機能モジュールからアクセスすることができる。   The FIFO_A 10 is a temporary storage device that can sequentially retrieve data from previously stored data. The FIFO_A 10 has an input slave interface 11 and an output slave interface 12, and is connected to the high-speed bus 101 via each slave interface. Then, it can be accessed from any functional module having a master interface connected to the high-speed bus 101.

入力スレーブインターフェース11は、送信機能を備えた任意のマスタインターフェースから送信されたデータを受信する。受信されたデータはFIFO_A10に記憶される。送信機能を備えたマスタインターフェースを持つ機能モジュールは、入力スレーブインターフェース11に割り当てられたアドレスに対してライト動作を実行することで、FIFO_A10へのデータ入力を実施することができる。   The input slave interface 11 receives data transmitted from an arbitrary master interface having a transmission function. The received data is stored in FIFO_A10. A functional module having a master interface having a transmission function can perform data input to the FIFO_A 10 by executing a write operation on an address assigned to the input slave interface 11.

出力スレーブインターフェース12は、FIFO_A10に記憶してあるデータを、受信機能を備えた任意のマスタインターフェースへ送信する。受信機能を備えたマスタインターフェースを持つ機能モジュールは、出力スレーブインターフェース12に割り当てられたアドレスに対してリード動作を実行することで、FIFO_A10に記憶してあるデータを取得することができる。   The output slave interface 12 transmits the data stored in the FIFO_A 10 to an arbitrary master interface having a reception function. A functional module having a master interface having a reception function can acquire data stored in the FIFO_A 10 by executing a read operation on the address assigned to the output slave interface 12.

本実施形態では、入力スレーブインターフェース11、及び出力スレーブインターフェース12は、データバス幅128bitで高速バス101に接続する。また、FIFO_A10の記憶容量は、8バースト動作×2回分=8×128bit×2=2048bit=256Byteとする。ここで、8バーストは、FIFO_A10を最も高い頻度で使用するSATA制御部40のバースト数である。   In the present embodiment, the input slave interface 11 and the output slave interface 12 are connected to the high-speed bus 101 with a data bus width of 128 bits. The storage capacity of FIFO_A10 is 8 burst operations × 2 times = 8 × 128 bits × 2 = 2048 bits = 256 bytes. Here, 8 bursts is the number of bursts of the SATA control unit 40 that uses the FIFO_A 10 most frequently.

FIFO_A10の記憶容量をデータ転送頻度が最も高い機能モジュールであるSATA制御部40の1回のバースト転送サイズの2倍の記憶容量とすることで、FIFO_A10を用いた転送の速度と回路規模のバランスをとることができる。   By making the storage capacity of the FIFO_A10 twice as large as the burst transfer size of one time of the SATA control unit 40, which is the functional module having the highest data transfer frequency, the balance between the transfer speed and the circuit scale using the FIFO_A10 is balanced. Can take.

FIFO_B20は、FIFO_A10と同じく、先に記憶したデータから順番にデータを取り出すことができる一時記憶装置である。FIFO_B20は、入力スレーブインターフェース21及び出力スレーブインターフェース22を有し、各スレーブインターフェースを介して高速バス101に接続している。そして、高速バス101に接続しているマスタインターフェースを備えた任意の機能モジュールからアクセスすることができる。   The FIFO_B 20 is a temporary storage device that can extract data in order from the previously stored data, like the FIFO_A 10. The FIFO_B 20 has an input slave interface 21 and an output slave interface 22, and is connected to the high-speed bus 101 via each slave interface. Then, it can be accessed from any functional module having a master interface connected to the high-speed bus 101.

入力スレーブインターフェース21は、送信機能を備えた任意のマスタインターフェースから送信されたデータを受信し、受信したデータはFIFO_B20に記憶される。送信機能を備えたマスタインターフェースを持つ機能モジュールは、入力スレーブインターフェース21に割り当てられたアドレスに対してライト動作を実行することで、FIFO_B20へのデータ入力を実施することができる。   The input slave interface 21 receives data transmitted from an arbitrary master interface having a transmission function, and the received data is stored in the FIFO_B 20. A functional module having a master interface having a transmission function can perform data input to the FIFO_B 20 by executing a write operation on an address assigned to the input slave interface 21.

出力スレーブインターフェース22は、FIFO_B20に記憶してあるデータを、受信機能を備えた任意のマスタインターフェースへ送信する。受信機能を備えたマスタインターフェースを持つモジュールは、出力スレーブインターフェース22に割り当てられたアドレスに対してリード動作を実行することで、FIFO_B20に記憶してあるデータを取得することができる。   The output slave interface 22 transmits the data stored in the FIFO_B 20 to an arbitrary master interface having a reception function. A module having a master interface having a reception function can acquire data stored in the FIFO_B 20 by executing a read operation on the address assigned to the output slave interface 22.

本実施形態では、入力スレーブインターフェース21及び出力スレーブインターフェース22は、データバス幅128bitで高速バス101に接続する。また、FIFO_B20の記憶容量は、16バースト動作×2回分=16×128bit×2=4096bit=512Byteとする。ここで、16バーストは、高速バス101に接続された機能モジュールのうち、1回のバースト転送で行うバースト動作が最大の機能モジュールにおける動作数である。従って、1回のバースト転送で、16バーストを行う機能モジュールは、1回のバースト転送で転送するデータサイズが最大である機能モジュールと言える。   In the present embodiment, the input slave interface 21 and the output slave interface 22 are connected to the high-speed bus 101 with a data bus width of 128 bits. The storage capacity of the FIFO_B 20 is 16 burst operations × 2 times = 16 × 128 bits × 2 = 4096 bits = 512 bytes. Here, 16 bursts are the number of operations in the functional module having the maximum burst operation performed by one burst transfer among the functional modules connected to the high-speed bus 101. Therefore, a functional module that performs 16 bursts in one burst transfer can be said to be a functional module that has a maximum data size to be transferred in one burst transfer.

FIFO_B20の記憶容量を1回のバースト転送で転送するデータサイズが最大である機能モジュールの、1回のバースト転送サイズの2倍とすることで、バスに接続した任意の機能モジュールのバースト転送性能を最大限発揮できるという効果がある。   By making the storage capacity of FIFO_B20 twice the size of one burst transfer of the function module with the maximum data size transferred in one burst transfer, the burst transfer performance of any functional module connected to the bus can be increased. There is an effect that can be maximized.

FIFO_A10、FIFO_B20のそれぞれの記憶容量は、上記した決定手法の他、FIFO_A10、FIFO_B20のそれぞれのインタフェースのデータバス幅の2倍としてもよい。これにより、FIFO_A10、FIFO_B20にデータを入力する速度と、FIFO_A10、FIFO_B20からデータを出力する速度が同等である場合に、最小限の記憶容量で、データ転送速度を維持できる。   The storage capacities of FIFO_A10 and FIFO_B20 may be twice the data bus width of each interface of FIFO_A10 and FIFO_B20 in addition to the above-described determination method. Thereby, when the speed at which data is input to FIFO_A10 and FIFO_B20 is equal to the speed at which data is output from FIFO_A10 and FIFO_B20, the data transfer speed can be maintained with a minimum storage capacity.

また、FIFO_A10の記憶容量を、FIFO_A10を使用するデータ転送頻度が最も高い機能モジュール(SATA制御部40)の、1回のバースト転送サイズの2倍の記憶容量とし、FIFO_B20の記憶容量をデータ転送頻度が2番目に高いモジュール、例えばメモリ30の1回のバースト転送サイズの2倍の記憶容量としてもよい。これにより、FIFO_A10、FIFO_B20のデータ転送の速度と回路規模のバランスをとることができる。   Further, the storage capacity of the FIFO_A 10 is set to a storage capacity twice as large as the burst transfer size of one time of the function module (SATA control unit 40) having the highest data transfer frequency using the FIFO_A 10, and the storage capacity of the FIFO_B 20 is set to the data transfer frequency. The storage capacity of the second highest module, for example, twice the burst transfer size of the memory 30 may be used. Thereby, it is possible to balance the data transfer speed and the circuit scale of the FIFO_A 10 and the FIFO_B 20.

高速バス101は、任意のマスタインターフェースを備えた機能モジュールと、任意のスレーブインターフェースを備えた機能モジュール間のデータ転送を仲介し、複数組のマスタ/スレーブモジュール間のデータ転送を平行して実行することができる。本実施形態では、数GByte/sの帯域を想定している。   The high-speed bus 101 mediates data transfer between a function module having an arbitrary master interface and a function module having an arbitrary slave interface, and executes data transfer between a plurality of sets of master / slave modules in parallel. be able to. In the present embodiment, a band of several GB / s is assumed.

低速バス102は、高速な転送を必要としないデータ(各機能モジュールの設定情報)の送受信で使用され、任意のマスタインターフェースを備えた機能モジュールと、任意のスレーブインターフェースを備えた機能モジュール間のデータ転送を仲介し、1組のマスタ/スレーブモジュール間でデータ転送中である場合には、他のマスタ/モジュール間のデータ転送を実行することはできない。本実施形態では、数十MByte/sの帯域を想定している。   The low-speed bus 102 is used for transmission / reception of data that does not require high-speed transfer (setting information of each functional module), and data between a functional module having an arbitrary master interface and a functional module having an arbitrary slave interface When data transfer is being performed between a pair of master / slave modules via transfer, data transfer between other master / modules cannot be executed. In this embodiment, a bandwidth of several tens of MByte / s is assumed.

高速バス101及び低速バス102は、高速バス101が有するマスタインターフェース及び低速バス102が有するスレーブインターフェースを介して接続される。   The high-speed bus 101 and the low-speed bus 102 are connected via a master interface included in the high-speed bus 101 and a slave interface included in the low-speed bus 102.

CPU80は、各機能モジュールの動作を設定し、データ処理装置1のメイン制御を実行する。CPU80は、データ送受信用の入出力マスタインターフェース81を有し、これを通してバスに接続された任意のスレーブインターフェースを持つモジュールにアクセスすることができる。各スレーブインターフェースには、スレーブモジュールの仕様に応じたアドレス範囲、または、特定アドレス値が割り当てられており、このアドレスを指定することで、所望のスレーブモジュールにアクセスすることができる。各モジュールに備えられたスレーブインターフェースのアドレスは、図3を参照して後述する。   The CPU 80 sets the operation of each functional module and executes main control of the data processing device 1. The CPU 80 has an input / output master interface 81 for data transmission / reception, and can access a module having an arbitrary slave interface connected to the bus through the input / output master interface 81. Each slave interface is assigned an address range or a specific address value according to the specification of the slave module. By specifying this address, it is possible to access a desired slave module. The address of the slave interface provided in each module will be described later with reference to FIG.

フラッシュROM90は、ブートプログラムを格納しており、システムの起動時にCPU80からアクセスされる。   The flash ROM 90 stores a boot program and is accessed from the CPU 80 when the system is started.

入出力スレーブインターフェース91には、フラッシュROM90の容量に応じたアドレス範囲が割り当てられており、バスに接続された任意のマスタインターフェースを持つ機能モジュールは、このアドレスを指定することで、フラッシュROM90にアクセスすることができる。   An address range corresponding to the capacity of the flash ROM 90 is assigned to the input / output slave interface 91, and a functional module having an arbitrary master interface connected to the bus accesses the flash ROM 90 by specifying this address. can do.

汎用DMAC70は、入力マスタインターフェース72、及び出力マスタインターフェース73を有し、これらを介して高速バス101に接続しており、バスに接続しているスレーブインターフェースを備えた任意の機能モジュールに対してアクセスすることができる。   The general-purpose DMAC 70 has an input master interface 72 and an output master interface 73, and is connected to the high-speed bus 101 via these, and accesses any functional module having a slave interface connected to the bus. can do.

汎用DMAC70は、入力マスタインターフェース72を通して、任意の出力スレーブインターフェースを持つ機能モジュールからデータをリードし、出力マスタインターフェース73を通して、任意の入力スレーブインターフェースを持つ機能モジュールにデータをライトすることができる。   The general-purpose DMAC 70 can read data from a functional module having an arbitrary output slave interface through the input master interface 72, and can write data to a functional module having an arbitrary input slave interface through the output master interface 73.

汎用DMAC70は更に入出力スレーブインターフェース71を有し、これを介して低速バス102に接続される。汎用DMAC70の設定(リード対象スレーブモジュール、ライト対象スレーブモジュール、転送データサイズ、等)は、低速バス102に接続した入出力スレーブインターフェース71を通して、CPU80により実行される。   The general-purpose DMAC 70 further has an input / output slave interface 71, and is connected to the low-speed bus 102 via this. The setting of the general-purpose DMAC 70 (read target slave module, write target slave module, transfer data size, etc.) is executed by the CPU 80 through the input / output slave interface 71 connected to the low-speed bus 102.

メモリ30は、HDD103からリードしたCPU80の動作プログラムを記憶する、または、CPU80の処理したデータを記憶する等、各機能モジュールのワーク領域として使用される。   The memory 30 is used as a work area for each functional module, such as storing an operation program of the CPU 80 read from the HDD 103 or storing data processed by the CPU 80.

メモリ30は、入出力スレーブインターフェース31を有する。入出力スレーブインターフェース31には、メモリ30の容量に応じたアドレス範囲が割り当てられており、バスに接続された任意のマスタインターフェースを持つ機能モジュールは、このアドレスを指定することで、メモリ30にアクセスすることができる。   The memory 30 has an input / output slave interface 31. An address range corresponding to the capacity of the memory 30 is assigned to the input / output slave interface 31, and a functional module having an arbitrary master interface connected to the bus accesses the memory 30 by designating this address. can do.

圧縮/伸張器60は、図2の(a)に示すように、低速バス102に接続される入出力スレーブインターフェース61、高速バス101に接続される入力マスタインターフェース62及び出力マスタインターフェース63を備える。更に、圧縮/伸張器60は、マスタ型の受信用DMAC64、マスタ型の送信用DMAC65、及び圧縮伸張処理部66を内蔵する。   As shown in FIG. 2A, the compressor / decompressor 60 includes an input / output slave interface 61 connected to the low speed bus 102, an input master interface 62 connected to the high speed bus 101, and an output master interface 63. Further, the compressor / decompressor 60 includes a master type reception DMAC 64, a master type transmission DMAC 65, and a compression / decompression processing unit 66.

受信用DMAC64は入力マスタインターフェース62を通して高速バス101に接続される。送信用DMAC65は出力マスタインターフェース63を通して高速バス101に接続されている。そして受信用DMAC64は、送信機能を備えた出力スレーブインターフェースを持つ任意の機能モジュールにアクセスすることができ、送信用DMAC65は受信機能を備えた入力スレーブインターフェースを持つ任意の機能モジュールにアクセスすることができる。   The receiving DMAC 64 is connected to the high-speed bus 101 through the input master interface 62. The transmission DMAC 65 is connected to the high-speed bus 101 through the output master interface 63. The reception DMAC 64 can access any functional module having an output slave interface having a transmission function, and the transmission DMAC 65 can access any functional module having an input slave interface having a reception function. it can.

圧縮伸張処理部66は、入力マスタインターフェース62及び受信用DMAC64を介して入力されたデータの圧縮処理を行う圧縮動作モード、又は伸張処理を行う伸張動作モードを切替えてデータ処理を行う。   The compression / decompression processing unit 66 performs data processing by switching between a compression operation mode for compressing data input via the input master interface 62 and the receiving DMAC 64 or a decompression operation mode for performing expansion processing.

圧縮動作モードでは、圧縮したいデータを入力マスタインターフェース62を通して取得し、圧縮済みのデータを出力マスタインターフェース63を通して出力する。   In the compression operation mode, data to be compressed is acquired through the input master interface 62, and compressed data is output through the output master interface 63.

圧縮伸張処理部66の動作モードは、低速バス102に接続した入出力スレーブインターフェース61を通して、CPU80により設定される。また、受信用DMAC64、送信用DMAC65の設定(リード対象スレーブモジュール、ライト対象スレーブモジュール、転送データサイズ、等)も、入出力スレーブインターフェース61を通して、CPU80により設定される。   The operation mode of the compression / decompression processing unit 66 is set by the CPU 80 through the input / output slave interface 61 connected to the low-speed bus 102. The settings of the reception DMAC 64 and the transmission DMAC 65 (read target slave module, write target slave module, transfer data size, etc.) are also set by the CPU 80 through the input / output slave interface 61.

暗号/復号器50は、図2の(b)に示すように、低速バス102に接続される入出力スレーブインターフェース51、高速バス101に接続される入力マスタインターフェース52及び出力マスタインターフェース53を備える。更に、暗号/復号器50は、マスタ型の受信用DMAC54、マスタ型の送信用DMAC55、及び暗号復号処理部56を内蔵する。   The encryption / decryption device 50 includes an input / output slave interface 51 connected to the low-speed bus 102, an input master interface 52 and an output master interface 53 connected to the high-speed bus 101, as shown in FIG. Further, the encryption / decryption device 50 includes a master type reception DMAC 54, a master type transmission DMAC 55, and an encryption / decryption processing unit 56.

受信用DMAC54は入力マスタインターフェース52を通して高速バス101に接続される。送信用DMAC55は出力マスタインターフェース53を通して高速バス101に接続されている。そして受信用DMAC54は、送信機能を備えた出力スレーブインターフェースを持つ任意の機能モジュールにアクセスすることができ、送信用DMAC55は入力スレーブインターフェースを持つ任意の機能モジュールにアクセスすることができる。   The receiving DMAC 54 is connected to the high-speed bus 101 through the input master interface 52. The transmission DMAC 55 is connected to the high-speed bus 101 through the output master interface 53. The reception DMAC 54 can access any functional module having an output slave interface having a transmission function, and the transmission DMAC 55 can access any functional module having an input slave interface.

暗号/復号器50は、入力マスタインターフェース52及び受信用DMAC54を介して入力されたデータを暗号化する暗号動作モード、及び復号化する復号化モードを備え、いずれかの動作モードに切替えてデータ処理を行う。   The encryption / decryption device 50 includes an encryption operation mode for encrypting data input via the input master interface 52 and the reception DMAC 54, and a decryption mode for decryption. Data processing is performed by switching to one of the operation modes. I do.

暗号/復号器50は、暗号動作モードにおいて暗号化したいデータを、入力マスタインターフェース52を通して取得し、暗号化済みのデータを出力マスタインターフェース53を通して出力する。   The encryption / decryption device 50 acquires data to be encrypted in the encryption operation mode through the input master interface 52 and outputs the encrypted data through the output master interface 53.

復号動作モードでは、暗号化済みデータを、入力マスタインターフェース52を通して取得し、復号化済みのデータを、出力マスタインターフェース53を通して出力する。   In the decryption operation mode, the encrypted data is acquired through the input master interface 52, and the decrypted data is output through the output master interface 53.

暗号/復号器50の動作モードは、低速バス102に接続した入出力スレーブインターフェース51を通してCPU80が設定する。また、受信用DMAC54、送信用DMAC55の設定(リード対象スレーブモジュール、ライト対象スレーブモジュール、転送データサイズ、等)も、入出力スレーブインターフェース51を通して、CPU80が設定する。   The operation mode of the encryption / decryption device 50 is set by the CPU 80 through the input / output slave interface 51 connected to the low-speed bus 102. The CPU 80 also sets the settings of the reception DMAC 54 and the transmission DMAC 55 (read target slave module, write target slave module, transfer data size, etc.) through the input / output slave interface 51.

SATA制御部40は、図2の(c)に示すように、低速バス102に接続される入出力スレーブインターフェース41、高速バス101に接続される入出力マスタインターフェース42を備える。更にSATA制御部40は、送受信用のマスタ型DMAC(以下「送受信用DMAC」という)44、及びSATA規格に準拠したデバイスを制御するためのSATAホストコントローラ46を内蔵する。   The SATA control unit 40 includes an input / output slave interface 41 connected to the low speed bus 102 and an input / output master interface 42 connected to the high speed bus 101 as shown in FIG. Further, the SATA control unit 40 includes a master type DMAC for transmission / reception (hereinafter referred to as “transmission / reception DMAC”) 44 and a SATA host controller 46 for controlling a device compliant with the SATA standard.

送受信用DMAC44は入出力マスタインターフェース42を通して高速バス101に接続される。送受信用DMAC44は受信機能を備えた入力スレーブインターフェースを持つ任意の機能モジュールにアクセスすることができる。   The transmission / reception DMAC 44 is connected to the high-speed bus 101 through the input / output master interface 42. The transmission / reception DMAC 44 can access any functional module having an input slave interface having a reception function.

SATAホストコントローラ46は、HDD103へのデータライト/データリードを実行する。SATAのコマンド設定や、HDD103のステータス情報の取得は、低速バス102に接続した入出力スレーブインターフェース41を通して、CPU80が実行する。また、送受信用DMAC44の設定(リード対象スレーブモジュール、ライト対象スレーブモジュール、転送データサイズ、等)も、入出力スレーブインターフェース41を通して、CPU80が実行する。   The SATA host controller 46 executes data write / data read to the HDD 103. The SATA command setting and the acquisition of the status information of the HDD 103 are executed by the CPU 80 through the input / output slave interface 41 connected to the low-speed bus 102. Further, the CPU 80 also executes the setting of the transmission / reception DMAC 44 (read target slave module, write target slave module, transfer data size, etc.) through the input / output slave interface 41.

HDD103は、SATA規格に準拠したストレージデバイスで、OS、アプリケーションプログラム等の記憶、及び、処理データの一時待避領域等に使用する。   The HDD 103 is a storage device that conforms to the SATA standard, and is used for storing an OS, application programs, etc., and a temporary save area for processing data.

次に図3を参照して、本実施形態に係るデータ処理装置におけるバスアドレスの割り当て例を説明する。図3は、バスアドレスの割り当ての例を示す説明図である。   Next, an example of bus address allocation in the data processing apparatus according to the present embodiment will be described with reference to FIG. FIG. 3 is an explanatory diagram showing an example of bus address assignment.

図3に示すフラッシュROM領域910は、入出力スレーブインターフェース91を通してアクセスできる領域で、アドレス0x0008_0000〜0x000F_FFFFを割り当てている。   The flash ROM area 910 shown in FIG. 3 is an area that can be accessed through the input / output slave interface 91, and addresses 0x0008 — 0000 to 0x000F_FFFF are assigned.

システム制御レジスタ領域810は、CPU80の動作モード等を設定する領域で、アドレス0x0010_0000〜0x0010_0FFFを割り当てている。   The system control register area 810 is an area for setting an operation mode of the CPU 80, and addresses 0x0010 — 0000 to 0x0010 — 0FFF are allocated.

SATA制御レジスタ領域410は、入出力スレーブインターフェース41を通してアクセスできる領域で、アドレス0x0010_1000〜0x0010_1FFFを割り当てている。   The SATA control register area 410 is an area that can be accessed through the input / output slave interface 41, and is assigned addresses 0x0010_1000 to 0x0010_1FFF.

暗号/復号器制御レジスタ領域510は、入出力スレーブインターフェース51を通してアクセスできる領域で、アドレス0x0010_2000〜0x0010_2FFFを割り当てている。   The encryption / decryptor control register area 510 is an area that can be accessed through the input / output slave interface 51, and is assigned addresses 0x0010_2000 to 0x0010_2FFF.

圧縮/伸張器制御レジスタ領域610は、入出力スレーブインターフェース61を通してアクセスできる領域で、アドレス0x0010_3000〜0x0010_3FFFを割り当てている。   The compressor / decompressor control register area 610 is an area that can be accessed through the input / output slave interface 61, and is assigned addresses 0x0010_3000 to 0x0010_3FFF.

汎用DMAC制御レジスタ領域710は、入出力スレーブインターフェース71を通してアクセスできる領域で、アドレス0x0010_4000〜0x0010_4FFFを割り当てている。   The general-purpose DMAC control register area 710 is an area that can be accessed through the input / output slave interface 71, and is assigned addresses 0x0010_4000 to 0x0010_4FFF.

FIFO_A(入力)領域110は、入力スレーブインターフェース11を通してアクセスできる領域で、アドレス0x0020_0000を割り当てている。   The FIFO_A (input) area 110 is an area that can be accessed through the input slave interface 11 and is assigned an address 0x0020_0000.

FIFO_A(出力)領域120は、出力スレーブインターフェース12を通してアクセスできる領域で、アドレス0x0020_1000を割り当てている。   The FIFO_A (output) area 120 is an area that can be accessed through the output slave interface 12, and is assigned an address 0x0020_1000.

FIFO_B(入力)領域210は、入力スレーブインターフェース21を通してアクセスできる領域で、アドレス0x0020_2000を割り当てている。   The FIFO_B (input) area 210 is an area that can be accessed through the input slave interface 21 and is assigned an address 0x0020_2000.

FIFO_B(出力)領域220は、出力スレーブインターフェース22を通してアクセスできる領域で、アドレス0x0020_3000を割り当てている。   The FIFO_B (output) area 220 is an area that can be accessed through the output slave interface 22, and is assigned an address 0x0020_3000.

メモリ領域310は、入出力スレーブインターフェース31を通してアクセスできる領域で、アドレス0x8000_0000〜0xFFFF_FFFFを割り当てている。   The memory area 310 is an area that can be accessed through the input / output slave interface 31 and is assigned addresses 0x8000 — 0000 to 0xFFFF_FFFF.

以下に、図4及び図5を参照してメモリ30に記憶しているデータを、圧縮し、暗号化した後に、HDD103へライトする場合のデータ転送動作例について述べる。図4は、圧縮、暗号化、及びHDDへライトする場合のデータ転送動作におけるデータの流れを示す図である。図5は、圧縮、暗号化、及びHDDへライトする場合の時系列に沿った処理動作を示す図であって、実線はあるタイミングにおいて同時に処理が実行されている状態を示し、点線はそのタイミングよりも前に行われた処理を示す。   Hereinafter, an example of data transfer operation in the case where data stored in the memory 30 is compressed and encrypted and then written to the HDD 103 will be described with reference to FIGS. FIG. 4 is a diagram showing a data flow in a data transfer operation when compression, encryption, and writing to the HDD. FIG. 5 is a diagram showing processing operations in time series when compression, encryption, and writing to HDD. A solid line indicates a state in which processing is simultaneously performed at a certain timing, and a dotted line indicates the timing. The processing performed before is shown.

メモリからのリード動作、圧縮、暗号化、及びHDD103へのライト動作では、図4に示すようにCPUを介することなく、各機能モジュールが備えるDMACの機能によってデータ転送が行われる。以下、図5の各ステップ順に沿って一連の処理動作について説明する。   In the read operation from the memory, the compression, the encryption, and the write operation to the HDD 103, data transfer is performed by the function of the DMAC included in each functional module without using the CPU as shown in FIG. Hereinafter, a series of processing operations will be described in the order of steps in FIG.

圧縮/伸張器60は、入力マスタインターフェース62を使用して、メモリ30の入出力スレーブインターフェース31にアクセスし、メモリ30に記憶しているデータをリードする(S501)。   The compressor / decompressor 60 uses the input master interface 62 to access the input / output slave interface 31 of the memory 30 and read the data stored in the memory 30 (S501).

リードしたデータを圧縮伸張処理部66で圧縮処理した後(S502)、圧縮済みのデータを出力マスタインターフェース63を使用して、FIFO_B20の入力スレーブインターフェース21へ送信する(S503)。   After the read data is compressed by the compression / decompression processor 66 (S502), the compressed data is transmitted to the input slave interface 21 of the FIFO_B 20 using the output master interface 63 (S503).

FIFO_B20は、圧縮済みのデータを、入力スレーブインターフェース21で受信し、FIFO_B20に記憶する(S504)。   The FIFO_B 20 receives the compressed data at the input slave interface 21 and stores it in the FIFO_B 20 (S504).

入力スレーブインターフェース21は、データ受信可能を示す信号を含み、FIFO_B20の記憶領域に空きがある場合に、データ受信可能信号をアサートする。圧縮/伸張器60の出力マスタインターフェース63は、入力スレーブインターフェース21の受信可能信号がアサートするまで、現在送信しているデータを維持する、即ち次データの送信を実行しない。   The input slave interface 21 includes a signal indicating that data reception is possible, and asserts a data reception enable signal when there is a free space in the storage area of the FIFO_B 20. The output master interface 63 of the compressor / decompressor 60 maintains the currently transmitted data, i.e., does not perform transmission of the next data until the receivable signal of the input slave interface 21 is asserted.

出力スレーブインターフェース22は、データ送信可能を示す信号を含み、FIFO_B20にデータが記憶されている場合に、データ送信可能信号をアサートする。暗号/復号器50の入力マスタインターフェース52は、出力スレーブインターフェース22の送信可能信号がアサートするまで、データの取得を待つ。暗号/復号器50は、入力マスタインターフェース52を使用して、FIFO_B20の出力スレーブインターフェース22にアクセスし、FIFO_B20に記憶されている圧縮済みデータをリードする(S505)。   The output slave interface 22 includes a signal indicating that data transmission is possible, and asserts a data transmission enable signal when data is stored in the FIFO_B 20. The input master interface 52 of the encryption / decryption device 50 waits for data acquisition until the transmission enable signal of the output slave interface 22 is asserted. The encryption / decryption device 50 accesses the output slave interface 22 of the FIFO_B 20 by using the input master interface 52, and reads the compressed data stored in the FIFO_B 20 (S505).

暗号復号処理部56においてリードしたデータを暗号化処理した後(S506)、暗号化済みのデータを出力マスタインターフェース53を使用して、FIFO_A10の入力スレーブインターフェース11へ送信する(S507)。   After the read data is encrypted in the encryption / decryption processing unit 56 (S506), the encrypted data is transmitted to the input slave interface 11 of the FIFO_A 10 using the output master interface 53 (S507).

FIFO_A10は、暗号化済みのデータを、入力スレーブインターフェース11で受信し、FIFO_A10に記憶する(S508)。   The FIFO_A 10 receives the encrypted data at the input slave interface 11 and stores it in the FIFO_A 10 (S508).

入力スレーブインターフェース11は、データ受信可能を示す信号を含み、FIFO_A10の記憶領域に空きがある場合に、データ受信可能信号をアサートする。暗号/復号器50の出力マスタインターフェース53は、入力スレーブインターフェース11の受信可能信号がアサートするまで、現在送信しているデータを維持する、即ち次データの送信を実行しない。   The input slave interface 11 includes a signal indicating that data reception is possible, and asserts a data reception ready signal when there is a free space in the storage area of the FIFO_A 10. The output master interface 53 of the encryption / decryption device 50 maintains the currently transmitted data, that is, does not perform transmission of the next data until the receivable signal of the input slave interface 11 is asserted.

出力スレーブインターフェース12は、データ送信可能を示す信号を含み、FIFO_A10にデータが記憶されている場合に、データ送信可能信号をアサートする。SATA制御部40の入出力マスタインターフェース42は、出力スレーブインターフェース12の送信可能信号がアサートするまで、データの取得を待つ。   The output slave interface 12 includes a signal indicating that data transmission is possible, and asserts a data transmission enable signal when data is stored in the FIFO_A 10. The input / output master interface 42 of the SATA control unit 40 waits for data acquisition until the transmission enable signal of the output slave interface 12 is asserted.

SATA制御部40は、入出力マスタインターフェース42を使用して、FIFO_A10の出力スレーブインターフェース12にアクセスし、FIFO_A10に記憶されている暗号化済みデータをリードし(S509)、HDD103へ送信する(S510)。   The SATA control unit 40 uses the input / output master interface 42 to access the output slave interface 12 of the FIFO_A 10, reads the encrypted data stored in the FIFO_A 10 (S 509), and transmits it to the HDD 103 (S 510). .

上記において、メモリ30からのデータのリード処理、圧縮処理、暗号化処理、HDD103へのライト処理は、同時平行で行われる。図5はその同時平行の処理を表すために、あるタイミングにおいて圧縮/伸張器60からFAIFO_B20へのデータ転送と暗号/復号器50からFAIFO_A10へのデータ転送と、HDD103へのライト動作が同時に実行されていることを実線で示す   In the above, read processing, compression processing, encryption processing, and write processing to the HDD 103 of the data from the memory 30 are performed in parallel at the same time. FIG. 5 shows the simultaneous parallel processing. At a certain timing, the data transfer from the compressor / decompressor 60 to the FIFO_B 20, the data transfer from the encryption / decryptor 50 to the FIFO_A 10, and the write operation to the HDD 103 are executed simultaneously. Is shown by a solid line

上記のごとく、FIFO_A10とFIFO_B20を使用することにより、圧縮/伸張器60から暗号/復号器50へのデータ転送(S502〜S506)と、暗号/復号器50〜SATA制御部40へのデータ転送(S507〜S509)を平行して実行することができるため、メモリ30を共有する場合に比べて、高速にデータ転送を実行することができる。   As described above, by using the FIFO_A10 and the FIFO_B20, data transfer from the compression / decompression device 60 to the encryption / decryption device 50 (S502 to S506) and data transfer from the encryption / decryption device 50 to the SATA control unit 40 ( Since S507 to S509) can be executed in parallel, data transfer can be executed at a higher speed than when the memory 30 is shared.

次に、図6を参照して、HDD103に記憶しているデータを、復号化、伸張した後に、メモリ30へライトする場合のデータ転送動作例について述べる。図6は、復号化、伸張、及びメモリへライトする場合の時系列に沿った処理動作を示す図であって、実線はあるタイミングにおいて同時に処理が実行されている状態を示し、点線はそのタイミングよりも前に行われた処理を示す。   Next, with reference to FIG. 6, an example of data transfer operation in the case where data stored in the HDD 103 is decrypted and expanded and then written to the memory 30 will be described. FIG. 6 is a diagram illustrating processing operations in time series when decoding, decompressing, and writing to a memory. A solid line indicates a state in which processing is simultaneously performed at a certain timing, and a dotted line indicates the timing. The processing performed before is shown.

SATA制御部40は、HDD103からリードした(S601)データを、入出力マスタインターフェース42を使用して、FIFO_A10の入力スレーブインターフェース11へ送信する(S602)。   The SATA control unit 40 transmits the data read from the HDD 103 (S601) to the input slave interface 11 of the FIFO_A 10 using the input / output master interface 42 (S602).

FIFO_A10は、HDDからリードしたデータを、入力スレーブインターフェース11で受信し、FIFO_A10に記憶する(S603)。   The FIFO_A 10 receives the data read from the HDD at the input slave interface 11 and stores it in the FIFO_A 10 (S603).

入力スレーブインターフェース11は、データ受信可能を示す信号を含み、FIFO_A10の記憶領域に空きがある場合に、データ受信可能信号をアサートする。SATA制御部40の入出力マスタインターフェース42は、入力スレーブインターフェース11の受信可能信号がアサートするまで、現在送信しているデータを維持する。(次データの送信を実行しない)   The input slave interface 11 includes a signal indicating that data reception is possible, and asserts a data reception ready signal when there is a free space in the storage area of the FIFO_A 10. The input / output master interface 42 of the SATA control unit 40 maintains the currently transmitted data until the receivable signal of the input slave interface 11 is asserted. (Do not send the next data)

出力スレーブインターフェース12は、データ送信可能を示す信号を含み、FIFO_A10にデータが記憶されている場合に、データ送信可能信号をアサートする。暗号/復号器50の入力マスタインターフェース52は、出力スレーブインターフェース12の送信可能信号がアサートするまで、データの取得を待つ。   The output slave interface 12 includes a signal indicating that data transmission is possible, and asserts a data transmission enable signal when data is stored in the FIFO_A 10. The input master interface 52 of the encryption / decryption device 50 waits for data acquisition until the transmission enable signal of the output slave interface 12 is asserted.

暗号/復号器50は、入力マスタインターフェース52を使用して、FIFO_A10の出力スレーブインターフェース12にアクセスし、FIFO_A10に記憶されているHDDデータをリードする(S604)。   The encryption / decryption device 50 uses the input master interface 52 to access the output slave interface 12 of the FIFO_A 10 and reads the HDD data stored in the FIFO_A 10 (S604).

リードしたデータを暗号復号処理部56が復号化処理(S605)した後、復号化済みのデータを、出力マスタインターフェース53を使用して、FIFO_B20の入力スレーブインターフェース21へ送信する(S606)。   After the read / decryption processing unit 56 decrypts the read data (S605), the decrypted data is transmitted to the input slave interface 21 of the FIFO_B 20 using the output master interface 53 (S606).

FIFO_B20は、復号化済みのデータを、入力スレーブインターフェース21で受信し、FIFO_B20に記憶する(S607)。   The FIFO_B 20 receives the decrypted data by the input slave interface 21 and stores it in the FIFO_B 20 (S607).

入力スレーブインターフェース21は、データ受信可能を示す信号を含み、FIFO_B20の記憶領域に空きがある場合に、データ受信可能信号をアサートする。暗号/復号器50の出力マスタインターフェース53は、入力スレーブインターフェース21の受信可能信号がアサートするまで、現在送信しているデータを維持する。   The input slave interface 21 includes a signal indicating that data reception is possible, and asserts a data reception enable signal when there is a free space in the storage area of the FIFO_B 20. The output master interface 53 of the encryption / decryption device 50 maintains the currently transmitted data until the receivable signal of the input slave interface 21 is asserted.

出力スレーブインターフェース22は、データ送信可能を示す信号を含み、FIFO_B20にデータが記憶されている場合に、データ送信可能信号をアサートする。圧縮/伸張器60の入力マスタインターフェース62は、出力スレーブインターフェース22の送信可能信号がアサートするまで、データの取得を待つ。   The output slave interface 22 includes a signal indicating that data transmission is possible, and asserts a data transmission enable signal when data is stored in the FIFO_B 20. The input master interface 62 of the compressor / decompressor 60 waits for data acquisition until the transmission enable signal of the output slave interface 22 is asserted.

圧縮/伸張器60は、入力マスタインターフェース62を使用して、FIFO_B20の出力スレーブインターフェース22にアクセスし、FIFO_B20に記憶されている復号化済みデータをリードする(S608)。   The compressor / decompressor 60 accesses the output slave interface 22 of the FIFO_B 20 using the input master interface 62, and reads the decoded data stored in the FIFO_B 20 (S608).

リードしたデータを圧縮伸張処理部66が伸張処理(S609)した後、伸張済みのデータを出力マスタインターフェース63を使用して、メモリ30の入出力スレーブインターフェース31へ送信し、メモリ30へのライトを実行する(S610)。   The compression / decompression processing unit 66 decompresses the read data (S609), and then uses the output master interface 63 to transmit the decompressed data to the input / output slave interface 31 of the memory 30 and writes to the memory 30. Execute (S610).

上記において、HDD103からのリード処理、伸張処理、復号化処理、メモリ30へのライト処理は、同時平行で行われる。図6はその同時平行の処理を表すために、あるタイミングにおいてHDD103からSATA制御部40への読み出し、FAIFO_A10から暗号/復号器50へのデータ転送、FAIFO_B20から圧縮/伸張器60へのデータ転送とが同時に実行されていることを実線で示す。   In the above, read processing from the HDD 103, decompression processing, decryption processing, and write processing to the memory 30 are performed simultaneously in parallel. FIG. 6 shows reading from the HDD 103 to the SATA control unit 40 at a certain timing, data transfer from the FIFO_A 10 to the encryption / decryption device 50, and data transfer from the FIFO_B 20 to the compression / decompression device 60 in order to represent the simultaneous parallel processing. Are indicated by a solid line.

上記のごとく、FIFO_A10とFIFO_B20を使用することにより、SATA制御部40から暗号/復号器50へのデータ転送(S602〜S605)と、暗号/復号器50から圧縮/伸張器60へのデータ転送(S606〜S609)とを平行して実行することができるため、メモリ30を共有する場合に比べて、高速にデータ転送を実行することができる。   As described above, by using FIFO_A10 and FIFO_B20, data transfer from the SATA control unit 40 to the encryption / decryption device 50 (S602 to S605) and data transfer from the encryption / decryption device 50 to the compression / decompression device 60 ( S606 to S609) can be executed in parallel, so that data transfer can be executed at a higher speed than when the memory 30 is shared.

1 データ処理装置
10 FIFO_A
11、21 入力スレーブインターフェース
12、22 出力スレーブインターフェース
20 FIFO_B
30 メモリ
31、41、51、61、71、81 入出力スレーブインターフェース
40 SATA制御部
42、81 入出力マスタインターフェース
44 送受信用DMAC
46 SATAホストコントローラ
50 暗号/復号器
52、62、72 入力マスタインターフェース
53、63、73 出力マスタインターフェース
54、64 受信用DMAC
55、65 送信用DMAC
56 暗号復号処理部
60 圧縮/伸張器
66 圧縮伸張処理部
70 汎用DMAC
80 CPU
90 フラッシュROM
103 HDD
101 高速バス
102 低速バス
1 Data processing device 10 FIFO_A
11, 21 Input slave interface 12, 22 Output slave interface 20 FIFO_B
30 Memory 31, 41, 51, 61, 71, 81 Input / output slave interface 40 SATA control unit 42, 81 Input / output master interface 44 Transmission / reception DMAC
46 SATA host controller 50 Encryption / decryption device 52, 62, 72 Input master interface 53, 63, 73 Output master interface 54, 64 Reception DMAC
55, 65 DMAC for transmission
56 Encryption / Decryption Processing Unit 60 Compression / Expansion Unit 66 Compression / Expansion Processing Unit 70 General Purpose DMAC
80 CPU
90 flash ROM
103 HDD
101 High-speed bus 102 Low-speed bus

特開2003−337805号公報JP 2003-337805 A

Claims (5)

データ転送に係るバスと、
前記バスに接続された複数の機能モジュールと、
前記バスに接続され、先に書き込んだデータから順に前記データを読み出す複数の一時記憶装置と、を備え、
前記複数の機能モジュール及び前記複数の一時記憶装置のそれぞれは、前記バスに接続するためのバス接続インターフェースを備え、前記複数の一時記憶装置のそれぞれに含まれるバス接続インターフェースには、前記バスから当該一時記憶装置へのデータの入力を受け付ける入力インターフェース及び当該一時記憶装置から前記バスへデータを出力する出力インターフェースが含まれ、
前記バス接続インターフェース、前記入力インターフェース、及び前記出力インターフェースは、それぞれを固有に識別可能なバスアドレスが割り当てられ、
前記複数の機能モジュールの一方及び前記複数の一時記憶装置の一方の間のデータの転送、及び前記複数の機能モジュールの他方及び前記複数の一時記憶装置の他方の間のデータの転送を同時に実行可能に形成される、
ことを特徴とするデータ処理装置。
A bus for data transfer;
A plurality of functional modules connected to the bus;
A plurality of temporary storage devices connected to the bus and reading the data in order from the previously written data,
Each of the plurality of functional modules and the plurality of temporary storage devices includes a bus connection interface for connection to the bus, and the bus connection interface included in each of the plurality of temporary storage devices includes the bus connection interface. An input interface for receiving input of data to the temporary storage device and an output interface for outputting data from the temporary storage device to the bus are included,
The bus connection interface, the input interface, and the output interface are each assigned a bus address that can be uniquely identified,
Data transfer between one of the plurality of functional modules and one of the plurality of temporary storage devices, and data transfer between the other of the plurality of functional modules and the other of the plurality of temporary storage devices can be executed simultaneously. Formed into,
A data processing apparatus.
前記複数の一時記憶装置のうちの少なくとも1つの記憶容量は、前記複数の機能モジュールのうちの1回のバースト転送において転送するデータサイズが最大である機能モジュールの、1回のバースト転送サイズの2倍である、
ことを特徴とする請求項1に記載のデータ処理装置。
The storage capacity of at least one of the plurality of temporary storage devices is 2 of the burst transfer size of one time of the functional module having the maximum data size to be transferred in one burst transfer of the plurality of functional modules. Double,
The data processing apparatus according to claim 1.
前記複数の一時記憶装置のうちの少なくとも1つの記憶容量は、前記複数の機能モジュールのうち、当該一時記憶装置を使用するデータ転送頻度が最も高い機能モジュールの、1回のバースト転送サイズの2倍である、
ことを特徴とする請求項1に記載のデータ処理装置。
The storage capacity of at least one of the plurality of temporary storage devices is twice the burst transfer size of one time of the function module having the highest data transfer frequency using the temporary storage device among the plurality of function modules. Is,
The data processing apparatus according to claim 1.
前記複数の一時記憶装置のうちの少なくとも1つの記憶容量は、前記入力インターフェース及び前記出力インターフェースのデータバス幅の2倍である、
ことを特徴とする請求項1乃至3のいずれか一つに記載のデータ処理装置。
The storage capacity of at least one of the plurality of temporary storage devices is twice the data bus width of the input interface and the output interface.
The data processing apparatus according to claim 1, wherein the data processing apparatus is a data processing apparatus.
データ転送に係るバスと、
前記バスに接続された複数の機能モジュールと、
前記バスに接続され、先に書き込んだデータから順に前記データを読み出す複数の一時記憶装置と、を備えたデータ処理装置において、
前記複数の機能モジュール及び前記複数の一時記憶装置のそれぞれは、前記バスに接続するためのバス接続インターフェースを備え、前記複数の一時記憶装置のそれぞれに含まれるバス接続インターフェースには、前記バスから当該一時記憶装置へのデータの入力を受け付ける入力インターフェース及び当該一時記憶装置から前記バスへデータを出力する出力インターフェースが含まれ、
前記バス接続インターフェース、前記入力インターフェース、及び前記出力インターフェースは、それぞれを固有に識別可能なバスアドレスが割り当てられ、
前記複数の機能モジュールの一方及び前記複数の一時記憶装置の一方の間のデータの転送、及び前記複数の機能モジュールの他方及び前記複数の一時記憶装置の他方の間のデータの転送を同時に実行する、
ことを特徴とするデータ転送方法。
A bus for data transfer;
A plurality of functional modules connected to the bus;
In a data processing device comprising a plurality of temporary storage devices connected to the bus and reading the data in order from the previously written data,
Each of the plurality of functional modules and the plurality of temporary storage devices includes a bus connection interface for connection to the bus, and the bus connection interface included in each of the plurality of temporary storage devices includes the bus connection interface. An input interface for receiving input of data to the temporary storage device and an output interface for outputting data from the temporary storage device to the bus are included,
The bus connection interface, the input interface, and the output interface are each assigned a bus address that can be uniquely identified,
Simultaneously transferring data between one of the plurality of functional modules and one of the plurality of temporary storage devices, and transferring data between the other of the plurality of functional modules and the other of the plurality of temporary storage devices. ,
A data transfer method characterized by the above.
JP2014046733A 2014-03-10 2014-03-10 Data processing apparatus and data transfer method Expired - Fee Related JP6394006B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014046733A JP6394006B2 (en) 2014-03-10 2014-03-10 Data processing apparatus and data transfer method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014046733A JP6394006B2 (en) 2014-03-10 2014-03-10 Data processing apparatus and data transfer method

Publications (2)

Publication Number Publication Date
JP2015170293A true JP2015170293A (en) 2015-09-28
JP6394006B2 JP6394006B2 (en) 2018-09-26

Family

ID=54202926

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014046733A Expired - Fee Related JP6394006B2 (en) 2014-03-10 2014-03-10 Data processing apparatus and data transfer method

Country Status (1)

Country Link
JP (1) JP6394006B2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0417051A (en) * 1990-05-11 1992-01-21 Hitachi Ltd Data transferring system
JP2007219874A (en) * 2006-02-17 2007-08-30 Murata Mach Ltd Data transfer controller and data transfer control method
JP2007305073A (en) * 2006-05-15 2007-11-22 Toshiba Corp Data processor and memory controller chip
JP2013065065A (en) * 2011-09-15 2013-04-11 Ricoh Co Ltd Access control device, image forming device, and access control method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0417051A (en) * 1990-05-11 1992-01-21 Hitachi Ltd Data transferring system
JP2007219874A (en) * 2006-02-17 2007-08-30 Murata Mach Ltd Data transfer controller and data transfer control method
JP2007305073A (en) * 2006-05-15 2007-11-22 Toshiba Corp Data processor and memory controller chip
US20070288706A1 (en) * 2006-05-15 2007-12-13 Kabushiki Kaisha Toshiba Data processing apparatus and memory controller chip
JP2013065065A (en) * 2011-09-15 2013-04-11 Ricoh Co Ltd Access control device, image forming device, and access control method

Also Published As

Publication number Publication date
JP6394006B2 (en) 2018-09-26

Similar Documents

Publication Publication Date Title
KR102388893B1 (en) System and method for providing near storage compute using bridge device
US9563368B2 (en) Embedded multimedia card and method of operating the same
CN114443529B (en) Direct memory access architecture, system, method, electronic device and medium
US9183141B2 (en) Method and apparatus for parallel transfer of blocks of data between an interface module and a non-volatile semiconductor memory
KR20160049200A (en) Method for operating data storage device, mobile computing device having the same, and method of the mobile computing device
KR20150091663A (en) System comprising multi channel memory and operating method for the same
US9400614B2 (en) Method and system for programmable sequencer for processing I/O for various PCIe disk drives
JP5732708B2 (en) Controller for reading data from nonvolatile memory
US20140108714A1 (en) Apparatus and method for generating descriptors to transfer data to and from non-volatile semiconductor memory of a storage drive
US20120210038A1 (en) External bridge system
US9875199B2 (en) Data transfer control apparatus
WO2014144043A1 (en) Apparatus and method for generating descriptors to reaccess a non-volatile semiconductor memory of a storage drive due to an error
TW201945975A (en) Method and apparatus for data encryption using a standardized data storage and retrieval protocol
JP2021515318A (en) NVMe-based data reading methods, equipment and systems
US11126382B2 (en) SD card-based high-speed data storage method
US10860507B2 (en) Electronic systems having serial system bus interfaces and direct memory access controllers and methods of operating the same
US20160266827A1 (en) Memory controller, memory device, data transfer system, data transfer method, and computer program product
CN106919531B (en) Interaction method and device based on nonvolatile storage bus protocol
JP6394006B2 (en) Data processing apparatus and data transfer method
TWI578163B (en) Peripheral interface circuit and peripheral memory system
JP2014179066A (en) Storage control device, storage system, and storage control method
KR102254507B1 (en) Electronic system with message mechanism and method of operation thereof
US20160062653A1 (en) Memory card
JP6287691B2 (en) Information processing apparatus, information processing method, and information processing program
TWI452471B (en) Full-duplex controller in an universal serial bus device and method thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180228

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180813

R151 Written notification of patent or utility model registration

Ref document number: 6394006

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees