JP6115564B2 - Data processing system, semiconductor integrated circuit and control method thereof - Google Patents
Data processing system, semiconductor integrated circuit and control method thereof Download PDFInfo
- Publication number
- JP6115564B2 JP6115564B2 JP2014504730A JP2014504730A JP6115564B2 JP 6115564 B2 JP6115564 B2 JP 6115564B2 JP 2014504730 A JP2014504730 A JP 2014504730A JP 2014504730 A JP2014504730 A JP 2014504730A JP 6115564 B2 JP6115564 B2 JP 6115564B2
- Authority
- JP
- Japan
- Prior art keywords
- data processing
- memory
- data
- memory block
- processing unit
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
- G06F9/3881—Arrangements for communication of instructions and data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
- Dram (AREA)
Description
本発明は、データ処理システム、半導体集積回路およびその制御方法に関する。 The present invention relates to a data processing system, a semiconductor integrated circuit, and a control method thereof.
CPU(Central Processing Unit)を用いてデータ処理を行うデータ処理システムにおいては、CPUで処理を行うと時間が掛かり過ぎたり、消費電力が大きくなり過ぎたりする特定のデータ処理を、CPUよりも高効率な処理性能を持つ別の回路が肩代わりして行うという方法が広く用いられている。以下では、CPUによる処理対象であるデータ処理のうち、特定のデータ処理を別の回路が肩代わりして行うことをオフロードと称する。また、CPUに代わって処理を行う回路をオフローダと称する。また、オフローダにより行われるデータ処理をオフロード処理と称する。また、オフローダのうち、多様なデータ処理を効率的に行うことができるものを汎用オフローダと称する。 In a data processing system that performs data processing using a CPU (Central Processing Unit), specific data processing that takes too much time or consumes too much power when processed by the CPU is more efficient than the CPU. A method is widely used in which another circuit having an appropriate processing performance takes over. Hereinafter, out of data processing to be processed by the CPU, performing specific data processing on behalf of another circuit is referred to as offloading. A circuit that performs processing in place of the CPU is referred to as an offloader. Data processing performed by the offloader is referred to as offload processing. Moreover, what can perform various data processing efficiently among offloaders is called a general purpose offloader.
図1は、特許文献1(特開2006−338538号公報)および特許文献2(特開2007−034392号公報)に開示される、汎用オフローダを備えたデータ処理システムの要部構成を示す図である。 FIG. 1 is a diagram showing a main configuration of a data processing system including a general-purpose offloader disclosed in Patent Document 1 (Japanese Patent Laid-Open No. 2006-338538) and Patent Document 2 (Japanese Patent Laid-Open No. 2007-034392). is there.
図1に示すデータ処理システムは、システムバス70を介して接続された、CPU10と、メモリ20と、汎用オフローダ30と、周辺ブロック90とを有する。なお、図1においては、CPU10、メモリ20および汎用オフローダ30以外の回路をまとめて周辺ブロック90として示す。周辺ブロック90の具体例としては、入出力回路などがある。
The data processing system shown in FIG. 1 includes a
CPU10は、メモリ20からデータを読み出してデータ処理を行い、処理結果をメモリ20に書き込む。
The
汎用オフローダ30は、CPU10による処理対象であるデータ処理のうち特定のデータ処理をCPU10に代わって行う。なお、CPU10が行うデータ処理と汎用オフローダ30が行うデータ処理とは、予めプログラムなどで規定されている。CPU10が行うものとして規定されたデータ処理を要求する旨が不図示の入出力回路を介して入力された場合には、CPU10によりデータ処理が行われ、汎用オフローダ30が行うものとして規定されたデータ処理を要求する旨が入力された場合には、汎用オフローダ30によりデータ処理が行われる。
The general-
図2は、汎用オフローダ30の構成の一例を示すブロック図である。
FIG. 2 is a block diagram illustrating an example of the configuration of the general-
汎用オフローダ30は、入力FIFO(First-In First-Out)回路31と、データ処理アクセレータ50と、出力FIFO回路33と、ローカルメモリ34と、コントローラ39と、を有する。
The general-
入力FIFO回路31は、入力されたデータを入力順にデータ処理アクセレータ50に出力する。
The
データ処理アクセレータ50は、汎用性のある高効率な処理回路であり、アレイプロセッサや再構成可能回路などで構成される。データ処理アクセレータ50は、入力FIFO回路31から入力されたデータを用いてデータ処理を行い、処理結果を出力する。
The
出力FIFO回路33は、入力FIFO回路31とは独立に、データ処理アクセレータ50から入力されたデータ処理結果を連続的に出力する。
The
ローカルメモリ34は、データ処理アクセレータ50がデータ処理を効率的に行うために設けられており、必要に応じて適宜、データ処理アクセレータ50からアクセスされる。なお、図2においては、ローカルメモリ34が1つである例を示しているが、ローカルメモリ34は、複数であってもよい。
The
コントローラ39は、図2においては不図示のメモリ20と入力FIFO回路31との間、および、メモリ20と出力FIFO回路33との間で、システムバス70を介してデータ転送を行うDMA(Direct Memory Access)回路を備えており、データ転送を制御する。
The
データ処理アクセレータ50により高効率な処理が可能なデータ処理の典型例として、ストリーミング処理がある。ストリーミング処理とは、データ入力とデータ処理結果の出力とが同時かつ連続的に行われる処理である。入力FIFO回路31から連続的にデータをデータ処理アクセレータ50に入力し、出力FIFO回路33から連続的にデータ処理アクセレータ50によるデータ処理結果を出力することで、複雑な処理を要する場合でも、高スループットを実現することができる。
A typical example of data processing that can be processed with high efficiency by the
汎用オフローダを備えたデータ処理システムにおいては、データ処理の前後にメモリ20と入力FIFO回路31との間、および、メモリ20と出力FIFO回路33との間で、多量のデータ転送を行う必要がある。また、そのデータ転送を効率的に行うためにDMA回路を含むコントローラ39を設ける必要がある。
In a data processing system including a general-purpose offloader, it is necessary to transfer a large amount of data between the
多量のデータ転送を行うと、データ転送のオーバーヘッドが大きくなる。また、DMA回路を含むコントローラ39を設けると、回路規模のオーバーヘッドが大きくなる。データ転送や回路規模のオーバーヘッドが大きくなると、処理時間、回路面積、消費電力などの増大という問題が生じる。多量の計算を要する大規模なオフロード処理の場合には、上述したようなオーバーヘッドによる処理時間、回路面積、消費電力などの増大は相対的に小さく、あまり問題とならない。しかし、比較的規模の小さいデータ処理を行うMCU(Micro Control Unit)などにおいては、上述したオーバーヘッドによる処理時間、回路面積、消費電力などの増大が大きな比重を占めるようになり、無視できないものとなる。
When a large amount of data is transferred, the data transfer overhead increases. Further, if the
本発明の目的は、データ転送や回路規模のオーバーヘッドの低減を図ることができるデータ処理システム、半導体集積回路およびその制御方法に関する。 An object of the present invention relates to a data processing system, a semiconductor integrated circuit, and a control method thereof that can reduce data transfer and overhead of circuit scale.
上記目的を達成するために本発明のデータ処理システムは、
データ処理を行う第1のデータ処理部と、
前記第1のデータ処理部による処理対象であるデータ処理のうち、特定のデータ処理を前記第1のデータ処理部に代わって行う第2のデータ処理部と、
少なくとも第1および第2のメモリブロックを備えるメモリと、を有し、
前記第1のデータ処理部は、第1の動作モードにおいては、前記メモリが備えるすべてのメモリブロックを連続したアドレス空間を有する1つのメモリとしてアクセスして前記データ処理に伴うデータの読み書きを行い、第2の動作モードにおいては、停止状態となり、
前記第2のデータ処理部は、前記第1の動作モードにおいては、停止状態となり、前記第2の動作モードにおいては、前記第1のメモリブロックを読み出し専用のメモリとするとともに、前記第2のメモリブロックを書き込み専用のメモリとし、前記第1のメモリブロックからデータを読み出して前記特定のデータ処理を行い、該特定のデータ処理の結果を前記第2のメモリブロックに書き込む。In order to achieve the above object, the data processing system of the present invention provides:
A first data processing unit for performing data processing;
Of the data processing to be processed by the first data processing unit, a second data processing unit that performs specific data processing instead of the first data processing unit;
A memory comprising at least first and second memory blocks;
In the first operation mode, the first data processing unit accesses all the memory blocks included in the memory as one memory having a continuous address space, reads and writes data associated with the data processing, In the second operation mode, it is stopped.
The second data processing unit is stopped in the first operation mode, and in the second operation mode, the first memory block is a read-only memory, and the second data processing unit The memory block is a write-only memory, data is read from the first memory block, the specific data processing is performed, and the result of the specific data processing is written to the second memory block.
上記目的を達成するために本発明の半導体集積回路は、
データ処理を行う第1の処理部と、前記第1のデータ処理部による処理対象であるデータ処理のうち、特定のデータ処理を前記第1のデータ処理部に代わって行う第2の処理部と、少なくとも第1および第2のメモリブロックを備えるメモリと、を有し、
前記第1の処理部は、第1の動作モードにおいては、前記メモリが備えるすべてのメモリブロックを連続したアドレス空間を有する1つのメモリとして前記データ処理に伴うデータの読み書きを行い、第2の動作モードにおいては、停止状態となり、
前記第2の処理部は、前記第1の動作モードにおいては、停止状態となり、前記第2の動作モードにおいては、前記第1のメモリブロックを読み出し専用のメモリとするとともに、前記第2のメモリブロックを書き込み専用のメモリとし、前記第1のメモリブロックからデータを読み出して前記特定のデータ処理を行い、該特定のデータ処理の結果を前記第2のメモリブロックに書き込む。In order to achieve the above object, a semiconductor integrated circuit of the present invention includes:
A first processing unit that performs data processing; and a second processing unit that performs specific data processing on behalf of the first data processing unit among the data processings to be processed by the first data processing unit A memory comprising at least first and second memory blocks;
In the first operation mode, the first processing unit reads and writes data associated with the data processing as one memory having a continuous address space for all memory blocks included in the memory, and performs a second operation. In the mode, it will be stopped.
The second processing unit is in a stopped state in the first operation mode, and in the second operation mode, the first memory block is a read-only memory and the second memory The block is used as a write-only memory, data is read from the first memory block, the specific data processing is performed, and the result of the specific data processing is written to the second memory block.
上記目的を達成するために本発明の半導体集積回路の制御方法は、
データ処理を行う第1の処理部と、前記第1のデータ処理部による処理対象であるデータ処理のうち、特定のデータ処理を前記第1のデータ処理部に代わって行う第2の処理部と、少なくとも第1および第2のメモリブロックを備えるメモリと、を有する半導体集積回路の制御方法であって、
第1の動作モードにおいては、
前記第1の処理部は、前記メモリが備えるすべてのメモリブロックを連続したアドレス空間を有する1つのメモリとして前記データ処理に伴うデータの読み書きを行い、
前記第2の処理部は、停止状態となり、
第2の動作モードにおいては、
前記第1の処理部は、停止状態となり、
前記第2の処理部は、前記第1のメモリブロックを読み出し専用のメモリとするとともに、前記第2のメモリブロックを書き込み専用のメモリとし、前記第1のメモリブロックからデータを読み出して前記特定のデータ処理を行い、該特定のデータ処理の結果を前記第2のメモリブロックに書き込む。In order to achieve the above object, a method for controlling a semiconductor integrated circuit according to the present invention includes:
A first processing unit that performs data processing; and a second processing unit that performs specific data processing on behalf of the first data processing unit among the data processings to be processed by the first data processing unit A method for controlling a semiconductor integrated circuit, comprising: a memory including at least first and second memory blocks,
In the first operation mode,
The first processing unit reads and writes data associated with the data processing as one memory having a continuous address space for all memory blocks provided in the memory,
The second processing unit is stopped,
In the second mode of operation,
The first processing unit is stopped,
The second processing unit sets the first memory block as a read-only memory, sets the second memory block as a write-only memory, reads data from the first memory block, and reads the specific memory block. Data processing is performed, and the result of the specific data processing is written into the second memory block.
本発明によれば、データ転送や回路規模のオーバーヘッドの低減を図ることができる。 According to the present invention, data transfer and circuit scale overhead can be reduced.
以下に、本発明を実施するための形態について図面を参照して説明する。 EMBODIMENT OF THE INVENTION Below, the form for implementing this invention is demonstrated with reference to drawings.
(第1の実施形態)
図3は、本発明の一実施形態のデータ処理システムの構成を示すブロック図である。図3において、図1および図2と同様の構成については同じ符号を付し、説明を省略する。(First embodiment)
FIG. 3 is a block diagram showing the configuration of the data processing system according to the embodiment of the present invention. 3, the same components as those in FIGS. 1 and 2 are denoted by the same reference numerals, and description thereof is omitted.
図3に示すデータ処理システム1は、CPU10と、メモリ20と、結合器40と、データ処理アクセレータ50と、システムバス70と、周辺ブロック90と、を有する。CPU10は、第1のデータ処理部の一例であり、データ処理アクセレータ50は、第2のデータ処理部の一例である。メモリ20、結合器40およびデータ処理アクセレータ50は、汎用アクセレータを構成する。
The
メモリ20は、メモリセルアレイを内蔵する複数のメモリブロックを備える。図3においては、メモリ20は、2つのメモリブロックを備える例を示している。メモリブロックとしては、1ポートメモリが用いられる。
The
結合器40は、メモリ20が備える複数のメモリブロックを連続したアドレス空間を有する1つのメモリとして結合する。
The
データ処理アクセレータ50は、結合器40を介してメモリ20にアクセスし、CPU10による処理対象であるデータ処理のうち特定のデータ処理をCPU10に代わって行う。なお、CPU10が行うデータ処理とデータ処理アクセレータ50が行うデータ処理とは、予めプログラムなどで規定されている。CPU10が行うものとして規定されたデータ処理を要求する旨が不図示の入出力回路を介して入力された場合には、CPU10によりデータ処理が行われ、データ処理アクセレータ50が行うものとして規定されたデータ処理を要求する旨が入力された場合には、データ処理アクセレータ50によりデータ処理が行われる。
The
システムバス70は、CPU10と、結合器40と、周辺回路90と、を接続する。
The
本実施形態のデータ処理システム1は、第1および第2の動作モードを備えている。
The
第1の動作モードにおいては、CPU10は、結合器40を介してメモリ20にアクセスし、データ処理を行う。上述したように、メモリ20には複数のメモリブロックが備えられているが、結合器40は、複数のメモリブロックを連続したアドレス空間を有する1つのメモリとして結合する。CPU10は、連続したアドレス空間を有する1つのメモリとしてメモリ20にアクセスし、データ処理に伴うデータの読み書きを行う。データ処理アクセレータ50は、第1の動作モードにおいては、停止状態となる。
In the first operation mode, the
第2の動作モードにおいては、データ処理アクセレータ50は、結合器40を介してメモリ20にアクセスし、CPU10による処理対象であるデータ処理のうち特定のデータ処理をCPU10に代わって行う。ここで、データ処理アクセレータ50は、メモリ20の備えるメモリブロックごとに、独立なメモリとしてアクセスしてデータ処理を行う。CPU10は、第2の動作モードにおいては、停止状態となる。
In the second operation mode, the
本実施形態のデータ処理システム1においては、第1の動作モードと第2の動作モードとが切り替えられながら、データ処理が行われる。
In the
第1の動作モードにおいて、メモリ20の然るべきアドレスにデータ処理アクセレータ50により処理されるべき入力データが保持される。第2の動作モードにおいて、然るべきアドレスに保持された入力データがデータ処理アクセレータ50により処理され、その処理結果がメモリ20の然るべきアドレスに保持される。次の第1の動作モードにおいて、CPU10は、メモリ20の然るべきアドレスに保持された、データ処理アクセレータの処理結果にアクセスすることができる。ここで、入力データとデータ処理アクセレータ50による処理結果とは、異なるメモリブロックに保持される。
In the first operation mode, input data to be processed by the
図4は、メモリ20および結合器40の内部構成を示すブロック図である。
FIG. 4 is a block diagram showing the internal configuration of the
メモリ20は、それぞれがメモリセルアレイを内蔵する3つメモリブロック21−1〜21−3を備える。また、結合器40は、マルチプレクサ41−1,41−2,41−3,42−2,42−3と、出力選択器45と、を有する。
The
なお、図4においては、メモリ20が3つのメモリブロックを備える場合を例として説明するが、これに限られるものではない。メモリ20はメモリブロックを2つ、あるいは、4つ以上備えていてもよい。なお、メモリ20がメモリブロックを2つ備える場合には、メモリブロック21−1とメモリブロック21−3とを備える。
In FIG. 4, the case where the
図4においては不図示のシステムバス70を介して、アドレス・制御信号71が、マルチプレクサ41−1,41−2,41−3と、出力選択器45と、に入力される。また、書き込みデータ信号72が、メモリブロック21−1のDI端子と、マルチプレクサ42−2,42−3と、に入力される。また、モード信号74が、マルチプレクサ41−1,41−2,42−2,41−3,42−3と、出力選択器45と、データ処理アクセレータ50と、に入力される。なお、アドレス・制御信号71には、アクセス対象のメモリセルのアドレスを示すアドレス信号と制御入力を示す制御信号とが含まれる。書き込みデータ信号72とは、メモリブロックに保持させるデータを示す信号である。モード信号74とは、データ処理システム1の動作モードを示す信号である。
In FIG. 4, an address / control signal 71 is input to the multiplexers 41-1, 41-2, 41-3 and the
データ処理アクセレータ50は、アドレス・制御信号51−1,51−2,51−3をそれぞれ、マルチプレクサ41−1,41−2,41−3に入力する。また、データ処理アクセレータ50は、データ処理の結果を示すデータ信号52−2,52−3をそれぞれ、マルチプレクサ42−2,42−3に入力する。また、データ処理アクセレータ50は、データ処理が終了すると、データ処理終了信号75をシステムバス70を介してCPU10に入力する。
The
メモリブロック21−1〜21−3はそれぞれ、アドレス・制御端子(AC端子)と、データ読み出し端子(DO端子)と、データ書き込み端子(DI端子)と、を有する。メモリブロック21−1〜21−3はそれぞれ、AC端子から入力されるアドレス・制御信号に応じて、DI端子に入力されたデータを保持する。また、メモリブロック21−1は、AC端子から入力されるアドレス・制御信号に応じて、保持しているデータをデータDO端子からデータ信号53−1として出力選択器45およびデータ処理アクセレータ50に出力する。また、メモリブロック21−2は、AC端子から入力されるアドレス・制御信号に応じて、保持しているデータをDO端子からデータ信号53−2として出力選択器45およびデータ処理アクセレータ50に出力する。また、メモリブロック21−3は、AC端子から入力されるアドレス・制御信号に応じて、保持しているデータをDO端子からデータ信号53−3として出力選択器45に出力する。
Each of the memory blocks 21-1 to 21-3 has an address / control terminal (AC terminal), a data read terminal (DO terminal), and a data write terminal (DI terminal). Each of the memory blocks 21-1 to 21-3 holds data input to the DI terminal according to an address / control signal input from the AC terminal. Further, the memory block 21-1 outputs the held data from the data DO terminal as the data signal 53-1 to the
マルチプレクサ41−1は、動作モードに応じて、システムバス70を介して入力されるアドレス・制御信号71とデータ処理アクセレータ50から入力されるアドレス・制御信号51−1とのいずれか一方をメモリブロック21−1のAC端子に入力する。
The multiplexer 41-1 selects one of the address / control signal 71 input via the
マルチプレクサ41−2は、動作モードに応じて、システムバス70を介して入力されるアドレス・制御信号71とデータ処理アクセレータ50から入力されるアドレス・制御信号51−2とのいずれか一方をメモリブロック21−2のAC端子に入力する。
The multiplexer 41-2 stores either the address / control signal 71 input via the
マルチプレクサ42−2は、動作モードに応じて、システムバス70を介して入力される書き込みデータ信号72とデータ処理アクセレータ50から入力されるデータ信号52−2とのいずれか一方をメモリブロック21−2のDI端子に入力する。
The multiplexer 42-2 outputs either the write data signal 72 input via the
マルチプレクサ41−3は、動作モードに応じて、システムバス70を介して入力されるアドレス・制御信号71とデータ処理アクセレータ50から入力されるアドレス・制御信号51−3とのいずれか一方をメモリブロック21−3のAC端子に入力する。
The multiplexer 41-3 stores either the address / control signal 71 input via the
マルチプレクサ42−3は、動作モードに応じて、システムバス70を介して入力される書き込みデータ信号72とデータ処理アクセレータ50から入力されるデータ信号52−3とのいずれか一方をメモリブロック21−3のDI端子に入力する。
The multiplexer 42-3 outputs either the write data signal 72 input via the
出力選択器45は、動作モードに応じて、データ信号53−1,53−2,53−3のいずれかを読み出しデータ信号73としてシステムバス70に出力し、または、読み出しデータ信号73の出力を停止する。
The
次に、データ処理システム1の動作について、図3および図4を参照して説明する。
Next, the operation of the
なお、以下では、CPU10により行われるものとして規定されたデータ処理を要求する旨と、データ処理アクセレータ50により行われるものとして規定された特定のデータ処理を要求する旨とが入力されるものとする。また、以下では、モード信号の論理値が第1の論理値である場合には第1の動作モードとなり、モード信号の論理値が第2の論理値である場合には第2の動作モードとなるものとする。
In the following description, it is assumed that a request for data processing defined as being performed by the
まず、第1の動作モード時の動作について説明する。 First, the operation in the first operation mode will be described.
第1の動作モードにおいては、CPU10は、動作状態となり、データ処理に応じて、アドレス・制御信号71と書き込みデータ信号72とをシステムバス70を介して結合器40に入力する。一方、データ処理アクセレータ50は停止状態となる。そのため、データ処理終了信号75の値はドントケアとなる。
In the first operation mode, the
マルチプレクサ41−1は、システムバス70を介して入力されるアドレス・制御信号71をメモリブロック21−1のAC端子に入力する。マルチプレクサ41−2は、システムバス70を介して入力されるアドレス・制御信号71をメモリブロック21−2のAC端子に入力する。マルチプレクサ41−3は、システムバス70を介して入力されるアドレス・制御信号71をメモリブロック21−3のAC端子に入力する。
The multiplexer 41-1 inputs an address / control signal 71 input via the
上述したように、アドレス・制御信号71には、アドレス信号と制御信号とが含まれる。制御信号の例としては、データ書き込みイネーブル信号WE、データ読み出しイネーブル信号RE、メモリブロックの入出力モードを制御する出力イネーブル信号OEなどがある。なお、データ書き込みイネーブル信号WEとデータ読み出しイネーブル信号REとを互いに反転論理の関係として1つの信号にまとめる方式など、メモリブロックの制御方式としては種々のものがあるが、本発明はメモリブロックの制御方式の差異に依存するものではない。 As described above, the address / control signal 71 includes an address signal and a control signal. Examples of control signals include a data write enable signal WE, a data read enable signal RE, and an output enable signal OE that controls the input / output mode of the memory block. Although there are various memory block control methods such as a method in which the data write enable signal WE and the data read enable signal RE are combined into one signal in an inverted logic relationship, the present invention controls the memory block. It does not depend on the difference in method.
第1の動作モードにおいては、例えば、アドレス信号の上位2ビットによって、メモリブロック21−1〜21−3のいずれかのメモリブロック(以下、メモリブロック21−k(k=1,2,3)と称する)が選択され、残りのメモリブロックは読み書きされない非選択状態となる。また、アドレス信号の上位2ビット以外の下位ビットにより、メモリブロック21−k内の特定のアドレスが指定される。 In the first operation mode, for example, depending on the upper 2 bits of the address signal, any one of the memory blocks 21-1 to 21-3 (hereinafter referred to as memory block 21-k (k = 1, 2, 3)). The remaining memory blocks are in a non-selected state in which reading and writing are not performed. Further, a specific address in the memory block 21-k is designated by lower bits other than the upper two bits of the address signal.
マルチプレクサ42−2は、システムバス70を介して入力された書き込みデータ信号72をメモリブロック21−2のDI端子に入力する。マルチプレクサ42−3は、システムバス70を介して入力された書き込みデータ信号72をメモリブロック21−3のDI端子に入力する。
The multiplexer 42-2 inputs the write data signal 72 input via the
メモリブロック21−kは、制御信号として書き込みイネーブル信号が入力され、また、DI端子に書き込みデータ信号72が入力されると、アドレス信号の上位2ビット以外の下位ビットにより示されるアドレスに、書き込みデータ信号72に示されるデータを保持する。
When a write enable signal is input as a control signal to the memory block 21-k and a
また、メモリブロック21−kは、制御信号として読み出しイネーブル信号が入力されると、アドレス信号の上位2ビット以外の下位ビットにより示されるアドレスに保持しているデータをデータ信号53−kとして出力選択器45に入力する。
Further, when the read enable signal is input as the control signal, the memory block 21-k selects the data held at the address indicated by the lower bits other than the upper 2 bits of the address signal as the data signal 53-k. Input to the
出力選択器45は、入力されたデータ信号53−kを読み出しデータ信号73としてシステムバス70に出力する。読み出しデータ信号73は、システムバス70を介してCPU10に入力される。
The
このように、第1の動作モードにおいては、メモリ20の備える複数のメモリブロックが連続したアドレス空間を有する1つのメモリとして、システムバス70、ひいては、CPU10からアクセスされる。
As described above, in the first operation mode, the plurality of memory blocks included in the
次に、第2の動作モード時の動作について説明する。 Next, the operation in the second operation mode will be described.
第2の動作モードにおいては、CPU10は停止状態となる。一方、データ処理アクセレータ50は、動作状態となり、データ処理に応じて、アドレス・制御信号51−1,51−2,51−3をそれぞれ、マルチプレクサ41−1,41−2,41−3に入力し、また、データ信号52−2,52−3をそれぞれ、マルチプレクサ42−2,42−3に入力する。
In the second operation mode, the
マルチプレクサ41−1は、データ処理アクセレータ50から入力されたアドレス・制御信号51−1をメモリブロック21−1のAC端子に入力する。マルチプレクサ41−2は、データ処理アクセレータ50から入力されたアドレス・制御信号51−2をメモリブロック21−2のAC端子に入力する。マルチプレクサ41−3は、データ処理アクセレータ50から入力されたアドレス・制御信号51−3をメモリブロック21−3のAC端子に入力する。
The multiplexer 41-1 inputs the address / control signal 51-1 input from the
アドレス・制御信号51−1の入力に応じて、メモリブロック21−1は読み出し専用となり、また、アドレス・制御信号51−3の入力に応じて、メモリブロック21−3は書き込み専用となる。 The memory block 21-1 is read-only according to the input of the address / control signal 51-1, and the memory block 21-3 is write-only according to the input of the address / control signal 51-3.
メモリブロック21−1は、アドレス信号に示されるアドレスに保持しているデータをデータ信号53−1としてDO端子からデータ処理アクセレータ50に出力する。データ処理アクセレータ50は、データ信号53−1を用いてデータ処理を行い、処理結果を示すデータ信号52−3をマルチプレクサ42−3に出力する。マルチプレクサ42−3は、そのデータ信号52−3をメモリブロック21−3のDI端子に入力する。メモリブロック21−3は、マルチプレクサ41−3から入力されたアドレス信号に示されるアドレスに、マルチプレクサ42−3から入力されたデータ信号52−3に示されるデータを保持する。
The memory block 21-1 outputs the data held at the address indicated by the address signal from the DO terminal to the
ここで、データ処理アクセレータ50は、メモリブロック21−1からのデータの読み出しとメモリブロック21−3へのデータの書き込みとを独立して連続的に行うことで、高効率にストリーミング処理を行うことができる。
Here, the
第2の動作モードにおいては、メモリブロック21−2は、データ処理アクセレータ50からのアドレス・制御信号51−2によって、他のメモリブロックとは独立にアドレッシングされ、また、独立に制御される。つまり、メモリブロック21−2は、データ処理アクセレータ50により適宜、メモリブロック21−2からのデータの読み出し、あるいは、メモリブロック21−2へのデータの書き込みが行われ、データ処理アクセレータ50の作業用ローカルメモリとして機能する。なお、データ処理アクセレータ50の使用目的によっては、作業用ローカルメモリを設けなくてもよいし、また、独立な作業用ローカルメモリを複数設けてもよい。
In the second operation mode, the memory block 21-2 is addressed and controlled independently from other memory blocks by the address / control signal 51-2 from the
第2の動作モードにおいては、出力選択器45は、データ読み出し信号73の出力を行わない。このとき、システムバス70に仕様により、出力選択器45の出力がハイインピーダンスである必要がある場合には、そのような仕様に準じる出力選択器を用いる。この場合、第2の動作モードにおいては、出力選択器45の出力はハイインピーダンス状態になる。また、第1の動作モードにおいては、出力選択器45は、入力されるデータ信号のうちいずれかを出力する。
In the second operation mode, the
データ処理アクセレータ50は、第2の動作モードになるとデータ処理終了信号75の論理値を第2の論理値とし、データ処理が終了すると、データ処理終了信号75の論理値を第1の論理値に遷移させる。データ処理終了信号75の論理値が第2の論理値から第1の論理値に遷移すると、モード信号74の論理値が第2の論理値から第1の論理値に遷移する。なお、モード信号74の論理値の第1の論理値から第2の論理値への遷移は、例えば、データ処理アクセレータ50がデータ処理を行うのに必要なデータのCPU10によるメモリブロック21−1への書き込みが終了した際などに行われる。
When the
このように、本実施形態のデータ処理システム1においては、CPU10とデータ処理アクセレータ50とがメモリ20を共有している。第1の動作モードにおいては、CPU10は、メモリ20の備える複数のメモリブロックを連続したアドレス空間を有する1つのメモリとしてアクセスしてデータ処理を行い、データ処理アクセレータ50は停止状態となる。一方、第2の動作モードにおいては、CPU10は停止状態となり、データ処理アクセレータ50は、メモリ20の備える複数のメモリブロックのそれぞれを独立したメモリブロックとして、各メモリブロックにアクセスし、データ処理を行う。
As described above, in the
図5は、第1および第2の動作モードにおけるモード信号およびデータ処理終了信号の状態と、CPU10、データ処理アクセレータ50およびメモリ20の状態とを示す図である。
FIG. 5 is a diagram illustrating the state of the mode signal and the data processing end signal in the first and second operation modes, and the states of the
図5において、時刻t1から時刻t2までの間は、モード信号の論理値が第1の論理値(Low)であるため、動作モードは第1の動作モードとなる。 In FIG. 5, since the logic value of the mode signal is the first logic value (Low) from time t1 to time t2, the operation mode is the first operation mode.
上述したように、第1の動作モードにおいては、データ処理アクセレータ50は停止状態となり、データ処理アクセレータ50から出力されるデータ処理終了信号の値はドントケアとなる。また、CPU10は動作状態となり、メモリ20が備える複数のメモリブロックを連続したアドレス空間を有する1つのメモリとしてアクセスする。
As described above, in the first operation mode, the
データ処理アクセレータ50により行われるものとして規定された特定のデータ処理を要求する旨が入力されると、モード信号の論理値が第1の論理値から第2の論理値に遷移する。ここで、データ処理アクセレータ50により行われるデータ処理に必要なデータのメモリブロックへの保持がCPU10により行われた後に、モード信号の論理値が第1の論理値から第2の論理値に遷移する。
When a request for specific data processing defined as being performed by the
時刻t2から時刻t3までの間は、モード信号の論理値が第2の論理値(High)であるため、動作モードは第2の動作モードに遷移する。 Since the logic value of the mode signal is the second logic value (High) from time t2 to time t3, the operation mode transitions to the second operation mode.
上述したように、第2の動作モードにおいては、CPU10は停止状態となる。また、データ処理アクセレータ50は、動作状態となり、データ処理終了信号の論理値を第1の論理値(Low)から第2の論理値(High)に遷移させる。また、データ処理アクセレータ50は、メモリ20が備える複数のメモリブロックをそれぞれ独立したメモリブロックとしてアクセスする。
As described above, the
データ処理が終了すると、データ処理アクセレータ50は、データ処理終了信号の論理値を第1の論理値から第2の論理値に遷移させる。データ処理終了信号の論理値が第1の論理値から第2の論理値に遷移すると、モード信号の論理値が第2の論理値から第1の論理値に遷移し、時刻t3において第1の動作モードに遷移する。その後、図5においては記載を省略するが、時刻t4において、再び、第2の動作モードとなり、第1の動作モードと第2の動作モードとが繰り返される。
When the data processing ends, the
このように本実施形態のデータ処理システム1は、CPU10とデータ処理アクセレータ50とがメモリ20を共有している。第1の動作モードにおいては、CPU10は、メモリ20の備える複数のメモリブロックを連続したアドレス空間を有する1つのメモリとしてアクセスし、データ処理アクセレータ50は、停止状態となる。第2の動作モードにおいては、CPU10は停止状態となり、データ処理アクセレータ50は、メモリ20の備える複数のメモリブロックのそれぞれを独立したメモリブロックとして、各メモリブロックにアクセスする。
Thus, in the
そのため、汎用オフローダのための専用メモリが不要となるので、専用メモリ分の回路面積および消費電力の削減を図ることができる。また、CPUが使用するメモリと汎用オフローダの専用メモリとの間でのデータ転送が不要となるので、データ転送に伴う処理時間や消費電力の増大を抑制することができる。また、DMA回路を備えたコントローラなどを設ける必要がなくなるので、回路面積の削減を図ることができる。 This eliminates the need for a dedicated memory for the general-purpose offloader, so that the circuit area and power consumption for the dedicated memory can be reduced. In addition, since data transfer between the memory used by the CPU and the dedicated memory of the general-purpose offloader becomes unnecessary, an increase in processing time and power consumption associated with data transfer can be suppressed. In addition, since it is not necessary to provide a controller or the like having a DMA circuit, the circuit area can be reduced.
また、本実施形態のデータ処理システム1においては、データ処理アクセレータ50は、第2の動作モードにおいては、複数のメモリブロックのうち、1つのメモリブロックを読み出し専用とし、別の1つのメモリブロックを書き込み専用とする。
Further, in the
そのため、データの読み出しと読み出したデータを用いたデータ処理による処理結果の出力とを独立かつ連続的に行うストリーミング処理を高効率に実現することができる。通常、ストリーミング処理を行うためには高コストなFIFO回路や2ポートメモリが用いられていた。しかし、本実施形態においては、入力専用のメモリブロックと出力専用のメモリブロックとを分けることで、メモリブロックを1ポートメモリとすることができる。そのため、安価なメモリブロックを用いることができ、低コスト化を図ることができる。さらに、汎用オフローダ(データ処理アクセレータ)がメモリにアクセスする際に、すべてのメモリブロックを読み書き可能なメモリブロックとする場合と比べて、回路構成を簡素化し、低コスト化を図ることができる。 For this reason, it is possible to achieve a highly efficient streaming process in which data reading and output of processing results by data processing using the read data are performed independently and continuously. Usually, a high-cost FIFO circuit or a 2-port memory is used to perform streaming processing. However, in the present embodiment, the memory block can be a one-port memory by separating the input-only memory block and the output-only memory block. Therefore, an inexpensive memory block can be used, and cost reduction can be achieved. Furthermore, when the general-purpose offloader (data processing accelerator) accesses the memory, the circuit configuration can be simplified and the cost can be reduced as compared with the case where all the memory blocks are read / writeable memory blocks.
(第2の実施形態)
本発明の第2の実施形態のデータ処理システムは、第1の実施形態のデータ処理システム1と比較して、結合器40およびメモリブロックの構成が異なる。そのため、以下では、これらの構成を中心に説明する。(Second Embodiment)
The data processing system according to the second embodiment of the present invention differs from the
図6は、本実施形態のメモリ20および結合器40の構成を示すブロック図である。図6において、図4と同様の構成については同じ符号を付し、説明を省略する。
FIG. 6 is a block diagram showing the configuration of the
メモリ20は、少なくとも2つのメモリブロック21−10,21−30を備える。なお、図6においては、メモリ20は2つのメモリブロックを備える例を用いて説明するが、これに限られるものではなく、第1の実施形態と同様に、3以上のメモリブロックを備えてもよい。メモリ20が3以上のメモリブロックを備える場合であっても、メモリブロック21−10,21−30以外のメモリブロックは第1の実施形態と同様にして組み込まれるものである。そのため、図6においては、メモリブロック21−10,21−30以外のメモリブロックについては記載を省略する。
The
結合器40は、マルチプレクサ41−1,41−3,42−0,43と、出力選択器45−2と、OR回路49と、バッファ220,230と、を有する。
The
図6においては不図示のシステムバス70を介して、アドレス・制御信号71が、マルチプレクサ41−1,41−3と、出力選択器45−2と、OR回路49と、に入力される。また、書き込みデータ信号72が、マルチプレクサ42−0に入力される。また、モード信号74が、マルチプレクサ41−1,41−3,42−0と、出力選択器45−2と、OR回路49と、データ処理アクセレータ50と、に入力される。
In FIG. 6, the address / control signal 71 is input to the multiplexers 41-1 and 41-3, the output selector 45-2, and the
データ処理アクセレータ50は、アドレス・制御信号51−1,51−3をそれぞれ、マルチプレクサ41−1,41−3に入力する。また、データ処理アクセレータ50は、データ信号52−3をマルチプレクサ42−0に入力する。
The
マルチプレクサ41−1は、動作モードに応じて、システムバス70を介して入力されるアドレス・制御信号71とデータ処理アクセレータ50から入力されるアドレス・制御信号51−1とのいずれか一方をメモリブロック21−10のAC端子に入力する。
The multiplexer 41-1 selects one of the address / control signal 71 input via the
マルチプレクサ41−3は、動作モードに応じて、システムバス70を介して入力されるアドレス・制御信号71とデータ処理アクセレータ50から入力されるアドレス・制御信号51−3とのいずれか一方をメモリブロック21−30のAC端子に入力する。
The multiplexer 41-3 stores either the address / control signal 71 input via the
マルチプレクサ42−0は、動作モードに応じて、システムバス70を介して入力される書き込みデータ信号72とデータ処理アクセレータ50から入力されるデータ信号52−3のいずれか一方をバッファ230に出力する。
The multiplexer 42-0 outputs either the write data signal 72 input via the
マルチプレクサ43は、OR回路49から入力される信号の論理値に応じて、メモリブロック21−10のDO端子からの出力とメモリブロック21−30のDO端子からの出力とのいずれか一方をバッファ220に出力する。
The
OR回路49は、システムバス70を介して入力されるアドレス・制御信号71とモード信号74との論理和を演算し、演算結果をマルチプレクサ43に出力する。
The OR
バッファ230は、マルチプレクサ42−0の出力をバッファリングし、データ信号52としてメモリブロック21−10およびメモリブロック21−30のDI端子に入力する。
The
バッファ220は、マルチプレクサ43の出力をバッファリングし、データ信号53−1として出力選択器45−2およびデータ処理アクセレータ50に入力する。
The
出力選択器45−2は、バッファ220から出力されたデータ信号53−1と図6においては不図示の他のメモリブロックのDO端子から入力されたデータ信号53−2のいずれかを読み出しデータ信号73としてシステムバス70に出力する。
The output selector 45-2 reads either the data signal 53-1 output from the
ここで、一般的なメモリブロックの構成について説明する。 Here, the configuration of a general memory block will be described.
図7は、一般的なメモリブロック21の構成を示すブロック図である。
FIG. 7 is a block diagram showing a configuration of a
図7に示すメモリブロック21は、メモリセルアレイを内蔵する。また、メモリブロック21は、メモリセルアレイからのデータの読み出しに用いられる読み出し用回路22と、メモリセルアレイへのデータの書き込みに用いられる書き込み用回路23と、を有する。なお、データの読み出しを行うか書き込みを行うかは、アドレス・制御信号に含まれる制御信号によって決まる。
The
図8は、図7に示す読み出し用回路22の構成を示すブロック図である。
FIG. 8 is a block diagram showing a configuration of the read
図8に示す読み出し用回路22は、スイッチ221と、センスアンプ222と、出力バッファ223と、を有する。
The
スイッチ221は、データ読み出しイネーブル信号REが入力され、データ読み出しイネーブル信号REの論理値に応じて、導通状態または遮断状態となる。データ読み出しイネーブル信号REは読み出しモードにおいて第1の論理値となり、スイッチ221は、データ読み出しイネーブル信号REの論理値が第1の論理値である場合に導通状態となる。
The
センスアンプ222は、スイッチ221を介して入力されたメモリセルからの信号を増幅し、出力バッファ223に出力する。
The
出力バッファ223は、センスアンプ222から入力された信号をバッファリングし、DO端子に出力する。
The
図9は、図7に示す書き込み用回路23の構成を示すブロック図である。
FIG. 9 is a block diagram showing a configuration of the
図9に示す書き込み用回路23は、入力バッファ231と、書き込みバッファ232と、スイッチ233と、を有する。
The
入力バッファ231は、DI端子に入力されたデータ入力信号をバッファリングし、書き込みバッファ232に出力する。
The
書き込みバッファ232は、入力バッファ231から入力されたデータをバッファリングし、スイッチ233に出力する。
The
スイッチ233は、データ書き込みイネーブル信号WEが入力され、データ書き込みイネーブル信号WEの論理値に応じて、導通状態または遮断状態となる。データ書き込みイネーブル信号WEは書き込みモードにおいて第1の論理値となり、スイッチ233は、データ書き込みイネーブル信号WEの論理値が第1の論理値である場合に導通状態となる。スイッチ233が導通状態となると、書き込みバッファ232から出力された信号がメモリセルアレイに書き込まれる。
The
なお、スイッチ221およびスイッチ233は、一般に、パストランジスタやトランスミッションゲートで構成されるスイッチである。スイッチ221およびスイッチ233は、データ読み出しイネーブル信号REやデータ書き込みイネーブル信号WEの論理値が第2の論理値である場合には遮断状態となる。典型的には、データ読み出しイネーブル信号REとデータ書き込みイネーブル信号WEとは論理反転の関係にある。
Note that the
本実施形態においては、メモリブロック21−10,21−30は、図8に示すセンスアンプ222および出力バッファ223と、図9に示す入力バッファ231および書き込みバッファ232と、を有さない。その代わりに、図6に示すバッファ230が、メモリブロック21−10およびメモリブロック21−30の書き込みバッファおよび入力バッファとして機能し、バッファ220が、メモリブロック21−10およびメモリブロック21−30のセンスアンプおよび出力バッファとして機能する。
In the present embodiment, the memory blocks 21-10 and 21-30 do not have the
本実施形態のデータ処理システムの動作について図6を参照して説明する。 The operation of the data processing system of this embodiment will be described with reference to FIG.
なお、以下では、モード信号74の第1の論理値を0とし、第2の論理値を1とする。 Hereinafter, the first logical value of the mode signal 74 is set to 0, and the second logical value is set to 1.
まず、モード信号74の論理値が0、すなわち、第1の動作モードの場合の動作について説明する。 First, the operation when the logical value of the mode signal 74 is 0, that is, in the first operation mode will be described.
第1の動作モードにおいては、システムバス70から入力されたアドレス・制御信号71が、マルチプレクサ41−1を介してメモリブロック21−10のAC端子に入力され、マルチプレクサ41−3を介してメモリブロック21−30のAC端子に入力される。さらに、システムバス70から入力された書き込みデータ信号72が、マルチプレクサ42−0を介してバッファ230に入力される。バッファ230は、マルチプレクサ42−0からの入力に応じて、データ信号52をメモリブロック21−10およびメモリブロック21−30のDI端子に入力する。アドレス・制御信号71の入力によって書き込みモードになっているメモリブロックがあれば、そのメモリブロックにデータ信号52が保持される。
In the first operation mode, the address / control signal 71 input from the
上述したように、第1の動作モードにおいては、メモリ20の備える複数のメモリブロックを連続したアドレス空間を有する1つのメモリとしてアクセスが行われる。そのため、ある時点において書き込みモードとなるメモリブロックは1つだけである。本実施形態においては、バッファ230は、メモリブロック21−10およびメモリブロック21−30の書き込み用回路として共有されるが、ある時点において書き込みモードとなるのは1つのメモリブロックだけであるため、メモリブロック21−10およびメモリブロック21−30がバッファ230を書き込み用回路として共有することができる。
As described above, in the first operation mode, a plurality of memory blocks provided in the
OR回路49は、アドレス・制御信号71とモード信号74との論理和を演算し、演算結果をマルチプレクサ43に出力する。ここで、アドレス・制御信号71には、メモリブロック21−10とメモリブロック21−30とを区別する1ビットの信号が含まれている。モード信号の論理値は0であるため、OR回路49は、アドレス・制御信号71に含まれるメモリブロック21−10とメモリブロック21−30とを区別する1ビットの信号と同じ論理値の信号をマルチプレクサ43に出力する。
The OR
マルチプレクサ43は、OR回路49から入力される信号の論理値に応じて、メモリブロック21−10およびメモリブロック21−30のうち、いずれかのメモリブロックのDO端子から出力された信号をバッファ220に出力する。ここで、マルチプレクサ43は、例えば、パストランジスタやトランスミッションゲートなどで構成されたパッシブなマルチプレクサであり、バッファリング機能を有しない。
The
バッファ220は、メモリブロック21−10あるいはメモリブロック21−30のメモリセルアレイからDO端子およびマルチプレクサ43を介して入力された微弱な信号を増幅し、データ信号53−1として出力選択器45−2に出力する。
The
出力選択器45−2は、メモリブロック21−10,21−30以外の他のメモリブロックからのデータ53−2の入力がある場合には、アドレス・制御信号71の論理値に応じて、データ信号53−1とデータ信号53−2のうちいずれか一方を読み出し信号73として出力する。
When there is an input of data 53-2 from a memory block other than the memory blocks 21-10 and 21-30, the output selector 45-2 receives data according to the logical value of the address / control signal 71. Either one of the signal 53-1 and the data signal 53-2 is output as a
上述したように、第1の動作モードにおいては、メモリ20の備える複数のメモリブロックを連続したアドレス空間を有する1つのメモリとしてアクセスが行われる。そのため、ある時点において読み出しモードとなるメモリブロックは1つだけである。本実施形態においては、バッファ220は、メモリブロック21−10およびメモリブロック21−30の読み出し用回路として共有されるが、ある時点において読み出しモードとなるのは1つのメモリブロックだけであるため、メモリブロック21−10およびメモリブロック21−30がバッファ220を読み出し用回路として共有することができる。
As described above, in the first operation mode, a plurality of memory blocks provided in the
次に、モード信号74の論理値が1、すなわち、第2の動作モードの場合の動作について説明する。 Next, the operation when the logic value of the mode signal 74 is 1, that is, in the second operation mode will be described.
第2の動作モードにおいては、マルチプレクサ41−1は、データ処理アクセレータ50から出力されたアドレス・制御信号51−1をメモリブロック21−10のAC端子に入力する。アドレス・制御信号51−1の入力に応じて、メモリブロック21−10は、読み出し専用となる。また、マルチプレクサ41−3は、データ処理アクセレータ50から出力されたアドレス・制御信号51−3をメモリブロック21−30のAC端子に入力する。アドレス・制御信号51−3の入力に応じて、メモリブロック21−30は、書き込み専用となる。
In the second operation mode, the multiplexer 41-1 inputs the address / control signal 51-1 output from the
メモリブロック21−10のDO端子からの出力はマルチプレクサ43に入力され、マルチプレクサ43はメモリブロック21−10のDO端子から出力された信号をバッファ220に出力する。
The output from the DO terminal of the memory block 21-10 is input to the
バッファ220は、マルチプレクサ43から入力された信号を増幅し、データ信号53−1としてデータ処理アクセレータ50に出力する。
The
また、マルチプレクサ42−0は、データ処理アクセレータ50から出力されたデータ信号52−3をバッファ230に出力する。バッファ230は、マルチプレクサ42−0から入力された信号をバッファリングし、データ信号52としてメモリバッファ21−10およびメモリバッファ21−30に出力する。ここで、第2の動作モードにおいては、メモリブロック21−30が書き込み専用のメモリブロックであり、書き込みモードとなるため、バッファ230から出力されたデータ信号52はメモリブロック21−30に保持される。
The multiplexer 42-0 outputs the data signal 52-3 output from the
上述したように、メモリブロック21−10とメモリブロック21−30とは、バッファ230を書き込み用回路として共有し、バッファ220を読み出し用回路として共有している。第2の動作モードにおいては、メモリブロック21−10は読み出し専用となり、メモリブロック21−30は書き込み専用となるため、メモリブロック21−10およびメモリブロック21−30がバッファ220を読み出し用回路として共有することができる。
As described above, the memory block 21-10 and the memory block 21-30 share the
このように本実施形態のデータ処理システムによれば、メモリブロック21−10とメモリブロック21−30とは、それぞれが内蔵するメモリセルアレイに書き込みを行うための書き込み用回路、および、メモリセルアレイから読み出しを行うための読み出し用回路と、を共有する。 As described above, according to the data processing system of the present embodiment, the memory block 21-10 and the memory block 21-30 are read from the memory cell array and the writing circuit for writing to the memory cell array incorporated therein. And a readout circuit for performing.
そのため、複数のメモリブロックのそれぞれに書き込み用回路および読み出し用回路を設ける場合と比較して、回路面積を削減することができる。特に、MCUのような小規模なチップ内のメモリの場合、メモリ容量は小さいため、書き込み回路や読み出し回路が示す面積比率が相対的に大きくなるため、複数のメモリブロックで書き込み用回路および読み出し用回路を共有することで、回路面積の削減の効果が大きくなる。 Therefore, the circuit area can be reduced as compared with the case where a writing circuit and a reading circuit are provided in each of the plurality of memory blocks. In particular, in the case of a memory in a small chip such as an MCU, since the memory capacity is small, the area ratio indicated by the writing circuit and the reading circuit becomes relatively large. By sharing the circuit, the effect of reducing the circuit area is increased.
なお、上述した第1および第2の実施形態のデータ処理システムにおいて、CPU10、汎用オフローダ(データ処理アクセレータ50)、周辺ブロック90、システムバス70などの各構成は、1つの半導体集積回路に修正されていることは必須ではない。しかし、メモリ20やデータ処理アクセラレータ50などを含む汎用オフローダが1つの半導体集積回路に集積されている場合、加えて、CPU10やシステムバス70なども同じ半導体集積回路に集積されている場合に、本発明は、より大きな効果を奏することができる。
In the data processing systems of the first and second embodiments described above, the components such as the
以上、実施形態を参照して本願発明を説明したが、本発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解し得る様々な変更をすることができる。 Although the present invention has been described with reference to the embodiments, the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.
この出願は、2012年3月13日に出願された日本出願2012−55903を基礎とする優先権を主張し、その開示の全てをここに取り込む。
This application claims the priority on the basis of the Japanese application 2012-55903 for which it applied on March 13, 2012, and takes in those the indications of all here.
Claims (10)
前記第1のデータ処理部による処理対象であるデータ処理のうち、特定のデータ処理を前記第1のデータ処理部に代わって行う第2のデータ処理部と、
少なくとも第1および第2のメモリブロックを備えるメモリと、を有し、
前記第1のデータ処理部は、第1の動作モードにおいては、前記メモリが備えるすべてのメモリブロックを連続したアドレス空間を有する1つのメモリとしてアクセスして前記データ処理に伴うデータの読み書きを行い、第2の動作モードにおいては、停止状態となり、
前記第2のデータ処理部は、前記第1の動作モードにおいては、停止状態となり、前記第2の動作モードにおいては、前記第1のメモリブロックを読み出し専用のメモリとするとともに、前記第2のメモリブロックを書き込み専用のメモリとし、前記第1のメモリブロックからデータを読み出して前記特定のデータ処理を行い、該特定のデータ処理の結果を前記第2のメモリブロックに書き込み、前記読み出しと前記書き込みを同時に行うことを特徴とするデータ処理システム。 A first data processing unit for performing data processing;
Of the data processing to be processed by the first data processing unit, a second data processing unit that performs specific data processing instead of the first data processing unit;
A memory comprising at least first and second memory blocks;
In the first operation mode, the first data processing unit accesses all the memory blocks included in the memory as one memory having a continuous address space, reads and writes data associated with the data processing, In the second operation mode, it is stopped.
The second data processing unit is stopped in the first operation mode, and in the second operation mode, the first memory block is a read-only memory, and the second data processing unit the memory block as a write-only memory, performs the particular data processing by reading the data from said first memory block, writes the results of the particular data processing in the second memory block, and the read A data processing system which performs the writing simultaneously .
前記特定のデータ処理の開始時に、前記第1の動作モードから前記第2の動作モードに遷移し、前記特定のデータ処理の終了時に、前記第2の動作モードから前記第1の動作モードに遷移することを特徴とするデータ処理システム。The data processing system of claim 1, wherein
Transition from the first operation mode to the second operation mode at the start of the specific data processing, and transition from the second operation mode to the first operation mode at the end of the specific data processing A data processing system characterized by:
前記第1のデータ処理部は、前記第1の動作モードにおいて、前記特定のデータ処理を行うためのデータを前記第1のメモリブロックに書き込むことを特徴とするデータ処理システム。The data processing system according to claim 2, wherein
The data processing system, wherein the first data processing unit writes data for performing the specific data processing into the first memory block in the first operation mode.
前記メモリは、第3のメモリブロックをさらに備え、
前記第2のデータ処理部は、前記第2の動作モードにおいて、他の前記メモリブロックとは独立に読み書き可能なローカルメモリとして前記第3のメモリブロックにアクセスすることを特徴とするデータ処理システム。The data processing system according to any one of claims 1 to 3,
The memory further comprises a third memory block;
In the second operation mode, the second data processing unit accesses the third memory block as a local memory that can be read / written independently of the other memory blocks.
前記メモリブロックは、1ポートメモリであることを特徴とするデータ処理システム。In the data processing system according to any one of claims 1 to 4,
The data processing system, wherein the memory block is a one-port memory.
前記第1のメモリブロックと前記第2のメモリブロックとは、各々が内蔵するメモリセルアレイからデータを読み出すための読み出し用回路および前記メモリセルアレイにデータを書き込むための書き込み用回路を共有することを特徴とするデータ処理システム。The data processing system according to any one of claims 1 to 5,
The first memory block and the second memory block share a read circuit for reading data from a built-in memory cell array and a write circuit for writing data to the memory cell array. Data processing system.
前記メモリおよび前記第2のデータ処理部が、1つの半導体集積回路に集積されることを特徴とするデータ処理システム。The data processing system according to any one of claims 1 to 6,
A data processing system, wherein the memory and the second data processing unit are integrated in one semiconductor integrated circuit.
前記半導体集積回路には、前記第1のデータ処理部がさらに集積されることを特徴とするデータ処理システム。The data processing system according to claim 7, wherein
The data processing system, wherein the first data processing unit is further integrated in the semiconductor integrated circuit.
前記第1の処理部は、第1の動作モードにおいては、前記メモリが備えるすべてのメモリブロックを連続したアドレス空間を有する1つのメモリとして前記データ処理に伴うデータの読み書きを行い、第2の動作モードにおいては、停止状態となり、
前記第2の処理部は、前記第1の動作モードにおいては、停止状態となり、前記第2の動作モードにおいては、前記第1のメモリブロックを読み出し専用のメモリとするとともに、前記第2のメモリブロックを書き込み専用のメモリとし、前記第1のメモリブロックからデータを読み出して前記特定のデータ処理を行い、該特定のデータ処理の結果を前記第2のメモリブロックに書き込み、前記読み出しと前記書き込みを同時に行うことを特徴とする半導体集積回路。 A first processing unit that performs data processing; and a second processing unit that performs specific data processing on behalf of the first data processing unit among the data processings to be processed by the first data processing unit A memory comprising at least first and second memory blocks;
In the first operation mode, the first processing unit reads and writes data associated with the data processing as one memory having a continuous address space for all memory blocks included in the memory, and performs a second operation. In the mode, it will be stopped.
The second processing unit is in a stopped state in the first operation mode, and in the second operation mode, the first memory block is a read-only memory and the second memory block a write-only memory, the first from the memory block reads the data subjected to the specific data processing, write the result of the particular data processing in the second memory block, the said read A semiconductor integrated circuit which performs writing simultaneously .
第1の動作モードにおいては、
前記第1の処理部は、前記メモリが備えるすべてのメモリブロックを連続したアドレス空間を有する1つのメモリとして前記データ処理に伴うデータの読み書きを行い、
前記第2の処理部は、停止状態となり、
第2の動作モードにおいては、
前記第1の処理部は、停止状態となり、
前記第2の処理部は、前記第1のメモリブロックを読み出し専用のメモリとするとともに、前記第2のメモリブロックを書き込み専用のメモリとし、前記第1のメモリブロックからデータを読み出して前記特定のデータ処理を行い、該特定のデータ処理の結果を前記第2のメモリブロックに書き込み、前記読み出しと前記書き込みを同時に行うことを特徴とする半導体集積回路の制御方法。 A first processing unit that performs data processing; and a second processing unit that performs specific data processing on behalf of the first data processing unit among the data processings to be processed by the first data processing unit A method for controlling a semiconductor integrated circuit, comprising: a memory including at least first and second memory blocks,
In the first operation mode,
The first processing unit reads and writes data associated with the data processing as one memory having a continuous address space for all memory blocks provided in the memory,
The second processing unit is stopped,
In the second mode of operation,
The first processing unit is stopped,
The second processing unit sets the first memory block as a read-only memory, sets the second memory block as a write-only memory, reads data from the first memory block, and reads the specific memory block. It performs data processing, write the result of the particular data processing in the second memory block, a control method for a semiconductor integrated circuit and performs the writing and the reading at the same time.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012055903 | 2012-03-13 | ||
| JP2012055903 | 2012-03-13 | ||
| PCT/JP2013/051539 WO2013136857A1 (en) | 2012-03-13 | 2013-01-25 | Data processing system, semiconductor integrated circuit, and control method thereof |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO2013136857A1 JPWO2013136857A1 (en) | 2015-08-03 |
| JP6115564B2 true JP6115564B2 (en) | 2017-04-19 |
Family
ID=49160779
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2014504730A Expired - Fee Related JP6115564B2 (en) | 2012-03-13 | 2013-01-25 | Data processing system, semiconductor integrated circuit and control method thereof |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP6115564B2 (en) |
| WO (1) | WO2013136857A1 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114201421B (en) * | 2022-02-17 | 2022-05-10 | 苏州浪潮智能科技有限公司 | A data stream processing method, storage control node and readable storage medium |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2564805B2 (en) * | 1985-08-08 | 1996-12-18 | 日本電気株式会社 | Information processing device |
| JPS6488853A (en) * | 1987-09-30 | 1989-04-03 | Yokogawa Medical Syst | Memory mechanism for high speed arithmetic unit |
| EP0843254A3 (en) * | 1990-01-18 | 1999-08-18 | National Semiconductor Corporation | Integrated digital signal processor/general purpose CPU with shared internal memory |
| JPH0460744A (en) * | 1990-06-29 | 1992-02-26 | Casio Comput Co Ltd | Digital microcomputer |
| GB2317468B (en) * | 1996-09-23 | 2001-01-24 | Advanced Risc Mach Ltd | Digital signal processing integrated circuit architecture |
| KR100572945B1 (en) * | 1998-02-04 | 2006-04-24 | 텍사스 인스트루먼츠 인코포레이티드 | Digital signal processor with hardware coprocessor that can be efficiently connected |
| ATE520086T1 (en) * | 2005-06-30 | 2011-08-15 | Imec | MEMORY ARRANGEMENT FOR MULTI-PROCESSOR SYSTEMS |
-
2013
- 2013-01-25 WO PCT/JP2013/051539 patent/WO2013136857A1/en not_active Ceased
- 2013-01-25 JP JP2014504730A patent/JP6115564B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| WO2013136857A1 (en) | 2013-09-19 |
| JPWO2013136857A1 (en) | 2015-08-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5431003B2 (en) | Reconfigurable circuit and reconfigurable circuit system | |
| US20130036426A1 (en) | Information processing device and task switching method | |
| JP6146128B2 (en) | Data processing device | |
| JP6115564B2 (en) | Data processing system, semiconductor integrated circuit and control method thereof | |
| JP2007133456A (en) | Semiconductor device | |
| US8327079B2 (en) | Cache memory control device and pipeline control method | |
| JP2006338538A (en) | Stream processor | |
| US9081673B2 (en) | Microprocessor and memory access method | |
| US20050135402A1 (en) | Data transfer apparatus | |
| US20120089771A1 (en) | Data Processing Apparatus | |
| JP2011065415A (en) | Asynchronous bus interface circuit | |
| JP4693843B2 (en) | Memory control device and memory control method | |
| US20140092123A1 (en) | Drawing control device | |
| JP2000227895A (en) | Device and method for transferring image data | |
| US8764874B2 (en) | Arrangement, method, integrated circuit and device for routing requests | |
| JP2010049511A (en) | Access method to shared memory and programmable controller of multi-cpu configuration | |
| US10534707B2 (en) | Semiconductor device including plurality of bus masters and control device and program used in the semiconductor device | |
| KR100336743B1 (en) | Processing circuit for data | |
| JP4769936B2 (en) | Information processing system with memory controller | |
| JP2004139218A (en) | Microprocessor | |
| JPS63217460A (en) | Buffer control circuit | |
| JP2012234417A (en) | Processor, multiprocessor system, and memory control method | |
| JP2005084737A (en) | Data transfer method and data transfer apparatus | |
| JP2008046697A (en) | Data processing unit and data processing apparatus using the same | |
| JP2018010464A (en) | Memory control device and semiconductor integrated circuit |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20151207 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160729 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160816 |
|
| 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: 20170221 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170306 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6115564 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |