JP2006065850A - Microcomputer - Google Patents
Microcomputer Download PDFInfo
- Publication number
- JP2006065850A JP2006065850A JP2005216995A JP2005216995A JP2006065850A JP 2006065850 A JP2006065850 A JP 2006065850A JP 2005216995 A JP2005216995 A JP 2005216995A JP 2005216995 A JP2005216995 A JP 2005216995A JP 2006065850 A JP2006065850 A JP 2006065850A
- Authority
- JP
- Japan
- Prior art keywords
- accelerator
- data
- memory
- microcomputer
- cache
- 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
Links
Images
Abstract
Description
本発明は、マイクロコンピュータ(以下、単にマイコンと称する)に関し、特に、CPUによる処理以外にアクセラレータなどの補助回路を有する通信及びマルチメディア処理を行うマイコンに適用して有効な技術に関する。 The present invention relates to a microcomputer (hereinafter, simply referred to as a microcomputer), and more particularly to a technique that is effective when applied to a microcomputer that performs communication and multimedia processing including an auxiliary circuit such as an accelerator in addition to processing by a CPU.
本発明者が検討したところによれば、マルチメディア処理を行うマイコンに関しては、以下のような技術が考えられる。 According to a study by the present inventor, the following techniques can be considered for a microcomputer that performs multimedia processing.
たとえば、マルチメディア処理を行うマイコンでは、マルチメディア処理の性能を上げるため、CPUのほかにCPUを補助するアクセラレータを内蔵している。このアクセラレータは、特にCPUが不得意な時間のかかる処理をハードウエアで高速処理すると共に、CPUとアクセラレータとで共同作業(以下、データ連携と称する)を行うことで、マルチメディア処理を効率よく高速化している。 For example, a microcomputer that performs multimedia processing incorporates an accelerator that assists the CPU in addition to the CPU in order to improve the performance of the multimedia processing. This accelerator performs high-speed multimedia processing by performing high-speed processing using hardware that is particularly difficult for the CPU, and performing collaborative work (hereinafter referred to as data linkage) between the CPU and the accelerator. It has become.
また、CPUやアクセラレータには、メモリアクセス待ちによる処理低下、つまりボトルネックを防ぐため、キャッシュを内蔵している。そのため、メモリの内容が他のアクセラレータにより変更された場合、CPUのキャッシュ内のデータとメモリ内のデータとの不一致を解消するために、キャッシュ内の当該データを破棄し、再びCPUが当該アドレスをアクセスすると、メモリから当該データをキャッシュに読み込まれるようにすることで、キャッシュとメモリ間のデータの一致、つまりキャッシュコヒーレンシを維持している。 The CPU and accelerator have a built-in cache in order to prevent processing degradation due to waiting for memory access, that is, a bottleneck. Therefore, when the contents of the memory are changed by another accelerator, the data in the cache is discarded and the CPU again sets the address to eliminate the mismatch between the data in the CPU cache and the data in the memory. When accessed, the data is read from the memory into the cache, thereby maintaining data coincidence between the cache and the memory, that is, cache coherency.
したがって、CPUやアクセラレータにキャッシュが内蔵されていても、CPUとアクセラレータ間のデータ連携は、キャッシュによる恩恵はなく、メモリを直接アクセスして行われる。 Therefore, even if the cache is built in the CPU or accelerator, data linkage between the CPU and the accelerator is not benefited from the cache, and is performed by directly accessing the memory.
たとえば、CPUやアクセラレータからメモリにアクセスするための技術として、特許文献1および特許文献2などが挙げられる。特許文献1には、アクセラレータがメモリに速くアクセスすることを可能とした技術が開示されている。また、特許文献2には、CPUがメモリに対して速くアクセスすることを可能とした技術が開示されている。
ところで、前記のようなマルチメディア処理を行うマイコンに関して、本発明者が検討した結果、以下のようなことが明らかとなった。 By the way, as a result of examination by the present inventor regarding the microcomputer for performing the multimedia processing as described above, the following has been clarified.
たとえば、近年、半導体製造技術の進歩により、マルチメディア処理システムは、システムLSI化により、1チップ内に複数のアクセラレータが搭載されると共に、アクセラレータ自体もCPU並みに高速化している。 For example, in recent years, due to advances in semiconductor manufacturing technology, multimedia processing systems have been made into system LSIs, and a plurality of accelerators are mounted on one chip, and the accelerator itself has been accelerated at the same speed as a CPU.
そのため、メモリへの負荷が高まると共に、アクセス速度の高速化が重要になってきた。ここで重要になるのは、メモリに書き込まれたデータを読み出す速度、つまりレイテンシである。しかし、SDRAMやDDR−SDRAMでは、メモリアクセスのスループット向上は実現したものの、コマンド投入に伴うオーバーヘッドが大きく、レイテンシは低下している。 For this reason, the load on the memory has increased and it has become important to increase the access speed. What is important here is the speed at which the data written in the memory is read, that is, the latency. However, in SDRAM and DDR-SDRAM, although the memory access throughput has been improved, the overhead associated with the command input is large and the latency is lowered.
したがって、CPUとアクセラレータ間でデータ連携を行う際には、CPUはアクセラレータの処理待ちもさりながら、アクセラレータが処理したデータがメモリに書き込まれてから、CPUが当該データをメモリから読み出されるまでCPUが待機してしまうメモリアクセス待ちになってしまう。つまり、マルチメディア処理がCPUやアクセラレータに比べて遅いメモリに律速される現象が起こってきている。さらに、半導体製造技術の進歩による集積度の向上のため、1チップ内に複数のアクセラレータが内蔵されるようになり、CPUと複数のアクセラレータ間でデータ連携が起こると、ますますCPUはメモリ待ちによる処理速度低下の影響が大きくなってしまう。 Therefore, when data is linked between the CPU and the accelerator, the CPU waits for the accelerator to process and after the data processed by the accelerator is written to the memory, the CPU reads the data from the memory until the CPU reads the data. Wait for memory access. In other words, a phenomenon has occurred in which multimedia processing is rate-limited to a memory that is slower than a CPU or an accelerator. In addition, due to advances in semiconductor manufacturing technology, multiple accelerators are built in one chip, and when data linkage occurs between the CPU and multiple accelerators, the CPU is increasingly waiting for memory. The effect of a decrease in processing speed is increased.
そこで、本発明の目的は、CPUとアクセラレータが連携して動作する際に発生するメモリアクセスでのデータ連携によるボトルネックを最小限に抑えて、マルチメディア処理性能を高めることができるマイコンを提供することにある。 SUMMARY OF THE INVENTION Accordingly, an object of the present invention is to provide a microcomputer capable of improving multimedia processing performance by minimizing a bottleneck caused by data cooperation in memory access that occurs when a CPU and an accelerator operate in cooperation. There is.
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。 The above and other objects and novel features of the present invention will be apparent from the description of this specification and the accompanying drawings.
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。 Of the inventions disclosed in the present application, the outline of typical ones will be briefly described as follows.
本発明は、マスタとして動作するCPUと、スレーブとして動作するアクセラレータとを有し、CPUおよびアクセラレータからメモリをアクセス可能なマイコンに適用され、以下のような特徴を有するものである。 The present invention is applied to a microcomputer that has a CPU that operates as a master and an accelerator that operates as a slave and can access a memory from the CPU and the accelerator, and has the following characteristics.
すなわち、本発明のマイコンにおいて、CPUおよびアクセラレータがメモリに対してアクセスするデータは、CPUおよびアクセラレータが互いにやり取りする連携データと、これを除くデータ本体とから構成され、これらのうち、連携データを保持するI/O専用キャッシュを有するものである。 In other words, in the microcomputer of the present invention, the data that the CPU and the accelerator access to the memory is composed of linked data that the CPU and the accelerator exchange with each other and the data body other than the linked data. Having an I / O dedicated cache.
また、本発明のマイコンにおいて、I/O専用キャッシュは、CPUおよびアクセラレータからメモリへのライトアクセス要求の際に、ライトアクセス要求のデータを保持するかどうかを判定する機能を有する。さらに、アクセラレータは、メモリへライトアクセスする際に、I/O専用キャッシュに対して保持要求を出す機能を有する。さらに、I/O専用キャッシュは、アクセラレータからのメモリへのライトアクセスの際に出力される保持要求により、アクセラレータから出力されるデータを保持するかどうかを判定する機能を有する。また、I/O専用キャッシュは、CPUおよびアクセラレータからのメモリへのライトアクセスの際に、CPUおよびアクセラレータから出力されるアドレスによりデータを保持するかどうかを判定する機能を有するものである。 In the microcomputer of the present invention, the I / O dedicated cache has a function of determining whether or not to hold write access request data when a write access request from the CPU and accelerator to the memory is made. Further, the accelerator has a function of issuing a holding request to the I / O dedicated cache when performing write access to the memory. Further, the I / O dedicated cache has a function of determining whether to hold data output from the accelerator in response to a holding request output at the time of write access to the memory from the accelerator. The I / O dedicated cache has a function of determining whether to hold data based on addresses output from the CPU and the accelerator when the CPU and the accelerator perform a write access to the memory.
また、本発明のマイコンにおいて、I/O専用キャッシュは、アクセラレータからメモリへのリードアクセス要求の際に、I/O専用キャッシュがリードアクセス要求のデータを保持している場合には、I/O専用キャッシュがデータをアクセラレータに出力する機能を有するものである。 In the microcomputer of the present invention, the I / O-dedicated cache is an I / O when the I / O-dedicated cache holds read access request data at the time of a read access request from the accelerator to the memory. The dedicated cache has a function of outputting data to the accelerator.
また、本発明のマイコンにおいて、CPUおよびアクセラレータからのメモリへのアクセスを制御するメモリコントローラを有し、CPUおよびアクセラレータからのアクセス要求に対して優先順位を持ち、メモリコントローラは、優先順位に従ってCPUおよびアクセラレータからのアクセス要求を処理する機能を有する。さらに、メモリがSDRAMまたはDDR−SDRAMであり、メモリコントローラは、CPUおよびアクセラレータからのアクセス要求に対して、メモリの同一バンクおよび同一ローアドレスに対するアクセスを連続して行う機能を有する。さらに、メモリコントローラは、CPUおよびアクセラレータからのアクセス要求のうち、同一アドレスへのアクセスに対し、依存関係を管理してメモリへのアクセスの一貫性を保つ機能を有するものである。 Further, the microcomputer of the present invention includes a memory controller that controls access to the memory from the CPU and the accelerator, and has a priority order for access requests from the CPU and the accelerator. It has a function of processing an access request from an accelerator. Further, the memory is SDRAM or DDR-SDRAM, and the memory controller has a function of continuously accessing the same bank and the same row address of the memory in response to an access request from the CPU and the accelerator. Further, the memory controller has a function of managing the dependency relationship for the access to the same address among the access requests from the CPU and the accelerator to keep the access to the memory consistent.
また、本発明のマイコンにおいて、メモリは、マイコンの外部に有するものである。あるいは、メモリは、マイコンの内部に有するものである。 In the microcomputer of the present invention, the memory is provided outside the microcomputer. Alternatively, the memory is provided inside the microcomputer.
具体的に、本発明のマイコンは、CPUとアクセラレータを有し、CPUとアクセラレータが連携してマルチメディア処理を行うマルチメディアマイコンにおいて、CPUとアクセラレータ間のデータ連携がメモリを介して行うために発生するメモリアクセスによるボトルネックを解消するために、メモリの手前に、CPUとアクセラレータが共通にアクセス可能なI/O専用キャッシュを設け、データ連携に必要な連携データをI/O専用キャッシュで保持することで、CPUとアクセラレータ間のデータ連携を高速化し、マルチメディア処理の高速化を実現するものである。 Specifically, the microcomputer of the present invention has a CPU and an accelerator, and occurs in the multimedia microcomputer in which the CPU and the accelerator cooperate to perform multimedia processing, because the data cooperation between the CPU and the accelerator is performed through the memory. In order to eliminate the bottleneck caused by memory access, an I / O dedicated cache that can be accessed in common by the CPU and accelerator is provided in front of the memory, and linked data required for data linkage is held in the I / O dedicated cache. As a result, the data linkage between the CPU and the accelerator is speeded up, and the speed of multimedia processing is realized.
また、本発明のマイコンにおいて、CPUは、内部にキャッシュを有するものである。 In the microcomputer of the present invention, the CPU has a cache inside.
また、本発明のマイコンにおいて、マイコンは外部のメモリと接続され、この外部のメモリには、プログラムまたはワークエリアの領域が形成されるものである。また、外部のメモリには、アクセラレータのデータ領域が形成されるものである。 In the microcomputer of the present invention, the microcomputer is connected to an external memory, and a program or work area is formed in the external memory. In addition, an accelerator data area is formed in the external memory.
また、本発明のマイコンにおいて、CPUの内部のキャッシュは、スヌープ機能を持つものである。 In the microcomputer of the present invention, the internal cache of the CPU has a snoop function.
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。 Among the inventions disclosed in the present application, effects obtained by typical ones will be briefly described as follows.
本発明によれば、CPUとアクセラレータが連携して動作する際に発生するメモリアクセスでのデータ連携によるボトルネックを最小限に抑えることができるので、マルチメディア処理性能を高めることが可能となる。 According to the present invention, it is possible to minimize a bottleneck caused by data cooperation in memory access that occurs when a CPU and an accelerator operate in cooperation with each other. Therefore, it is possible to improve multimedia processing performance.
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の機能を有する部材には原則として同一の符号を付し、その繰り返しの説明は省略する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. Note that components having the same function are denoted by the same reference symbols throughout the drawings for describing the embodiment, and the repetitive description thereof will be omitted.
図1〜図3を用いて、本発明の一実施の形態に係るマルチメディアマイコンの構成及び動作の一例を説明する。図1は、マルチメディアマイコンを示す構成図である。図2は、メモリの構成を示す図である。図3は、別のマルチメディアマイコンを示す構成図である。 An example of the configuration and operation of a multimedia microcomputer according to an embodiment of the present invention will be described with reference to FIGS. FIG. 1 is a block diagram showing a multimedia microcomputer. FIG. 2 is a diagram illustrating the configuration of the memory. FIG. 3 is a block diagram showing another multimedia microcomputer.
図1に示すように、本実施の形態のマルチメディアマイコン1は、マスタとして動作するCPU11と、スレーブとして動作する複数のアクセラレータ12(12−1〜12−n)と、本発明の特徴であるI/O専用キャッシュ14と、これらを接続するバス13と、メモリコントローラ15から構成されている。このマルチメディアマイコン1の外部に、メモリ2が接続されている。
As shown in FIG. 1, the
アクセラレータ12は、CPU11を補助する役目を持ち、CPU11が不得意な時間のかかる処理をハードウエアで高速に実行する機能を持つ。また、メモリコントローラ15は、I/O専用キャッシュ14とメモリ2とに接続され、バス13及びI/O専用キャッシュ14を介してから来るメモリアクセス要求に対し、メモリ2に対して、SDRAMまたはDDR−SDRAMコマンドを出してアクセスを行う機能を持つ。
The
図2に示すように、メモリ2には、CPU11で実行されるマルチメディア処理に関する一連の手続き処理を記述したプログラム21と、ワークエリア22と、さらには、アクセラレータ12毎に処理するデータを格納するデータ領域23(23−1〜23−n)がある。また、複数のアクセラレータ12間で共通のデータ領域23をアクセスすることもある。
As shown in FIG. 2, the
図3に示すように、本実施の形態のマルチメディアマイコンにおいては、前記図1のようにメモリ2を外部に接続する構成の他に、メモリ2を内部に設けて、このメモリ2と、CPU11、複数のアクセラレータ12(12−1〜12−n)、I/O専用キャッシュ14、バス13、及びメモリコントローラ15が一体型となったマルチメディアマイコン10とすることも可能である。
As shown in FIG. 3, in the multimedia microcomputer of the present embodiment, in addition to the configuration in which the
続いて、前記図1に示したマルチメディアマイコン1において、I/O専用キャッシュ14がOFFの場合の動作について説明する。なお、図3に示したマルチメディアマイコン10においても同様である。
Next, an operation when the I / O dedicated
CPU11は、バス13、I/O専用キャッシュ14、メモリコントローラ15を介し、メモリ2からプログラム21及びワークエリア22、データ領域23内のデータをアクセスして処理を行う。このとき、CPU11はプログラム21に従い、アクセラレータ12で処理すべきデータをデータ領域23へセットし、アクセラレータ12へ処理要求し、アクセラレータ12での処理結果をデータ領域23から読み出しを行うことにより、MPEGやMP3をはじめとしたマルチメディア処理が実現される。
The
このように、マルチメディアマイコン1では、CPU11とアクセラレータ12間でメモリ2内のデータ領域23を介したデータ連携を行い、マルチメディア処理が実行される。そのため、CPU11やアクセラレータ12の処理速度に比べ、アクセス速度の遅いメモリ2がマルチメディア処理におけるボトルネックとなり、マルチメディア処理性能の向上が難しくなってきた。そこで、本実施の形態では、後述するように、CPU11とアクセラレータ12間のデータのやり取りをスムーズに行うことで、マルチメディア処理の高速化を実現することが可能となる。
In this way, in the
すなわち、前記図1に示すように、I/O専用キャッシュ14をメモリコントローラ15側に置き、CPU11及びアクセラレータ12の双方からアクセスできるようにし、CPU11とアクセラレータ12間での連携データを保持する。これにより、CPU11とアクセラレータ12間のデータ連携を、より高速にアクセス可能なI/O専用キャッシュ14にて行い、メモリアクセス待ちによるオーバーヘッドを大幅に削減し、スムーズなマルチメディア処理の実行を実現する。
That is, as shown in FIG. 1, the I / O dedicated
また、CPU11とアクセラレータ12でのデータ連携に必要なデータは、アクセラレータ12で処理させるすべてのデータではなく、ヘッダやアクセラレータ12へのコマンドなどのみの一部であることに注目し、I/O専用キャッシュ14は連携に必要なデータである連携データのみを保持し、CPU11のみ、アクセラレータ12のみで処理するデータであるデータ本体は、I/O専用キャッシュ14ではなく、メモリ2上に置くことで、I/O専用キャッシュ14に保持するデータ量を抑え、I/O専用キャッシュ14の有効利用及びヒット率の向上を実現する。
Note that the data necessary for data linkage between the
ここで注目すべきは、I/O専用キャッシュ14が保持すべき連携データは、必ずCPU11かアクセラレータ12により、メモリ2に書き込まれるデータである。従って、I/O専用キャッシュ14は、メモリ2へのライトアクセスに対してのみキャッシュするか否かの判定を行えば良く、この判定には、当該ライトアクセスのアドレスを用いる方法と、I/O専用キャッシュ14へのキャッシュ要求信号を用いる方法の2通りが存在する。なお、CPU11からのライトアクセスにおけるキャッシュ判定は、アドレスを用いた判定を、また、アクセラレータ12からのライトアクセスにおけるキャッシュ判定は、アドレスを用いた判定及びキャッシュ要求信号による判定の両方を用いることができる。
It should be noted here that the cooperation data to be held by the I / O dedicated
一方、メモリ2へのリードに関しては、ヒットすればI/O専用キャッシュ14から当該データを出力するが、キャッシュミスの場合、I/O専用キャッシュ14はメモリ2へ当該アクセスを通すのみとし、メモリ2からのリードデータをキャッシュすることはしない。これは、CPU11及びアクセラレータ12が専用のキャッシュまたはバッファをもっており、この専用のキャッシュまたはバッファで、メモリ2からのリードデータが保持されるためである。さらに、バス13がスプリットバスである場合に対応するため、I/O専用キャッシュ14は、キャッシュミスを起こし、メモリ2にリードアクセス中であっても、次のアクセス要求に対して、キャッシュヒットの場合には、当該ヒットデータをバス13に出力する機能が必要となる。この点が、I/O専用キャッシュ14が従来のキャッシュ及びバッファと大きく異なる所となる。
On the other hand, regarding the read to the
また、もうひとつの特徴は、I/O専用キャッシュ14はキャッシュであり、CPU11で実行されるプログラム21は、このI/O専用キャッシュ14の存在を意識することなく、メモリ2へのアクセスとして処理できる点である。
Another feature is that the I / O dedicated
さらに、メモリ2へのアクセス効率を向上させるため、I/O専用キャッシュ14では、CPU11やアクセラレータ12から要求されるアクセスサイズが、メモリ2のアクセスサイズより小さい場合、本I/O専用キャッシュ14を用いてまとめてメモリ2とアクセスすることで、メモリ2へのアクセス回数を削減し、メモリ待ちによるボトルネックを削減することが可能となる。
Further, in order to improve the access efficiency to the
次に、図4を用いて、マルチメディアマイコンで実行されるマルチメディア処理の流れの一例を説明する。図4は、マルチメディア処理の流れを示す図である。 Next, an example of the flow of multimedia processing executed by the multimedia microcomputer will be described with reference to FIG. FIG. 4 is a diagram showing the flow of multimedia processing.
図4に示すように、マルチメディアマイコン1では、CPU11とアクセラレータ12とが連携してマルチメディア処理を行い、CPU11にて実行される処理(1000)と、アクセラレータ12にて実行される処理(1100)に区別される。CPU11にて実行されるマルチメディア処理は、前処理(1001)と後処理(1009)の2つがあり、それぞれ、アクセラレータ12による処理(1005)の前後に行う。
As shown in FIG. 4, in the
まず、CPU11が前処理(1001)を行うと、CPU11はアクセラレータ12に当該データを渡すために、データ領域23に書き込み(1002)、アクセラレータ12に対して、起動要求を出す(1003)。それを受け、アクセラレータ12は、データ領域23からデータを読み出し(1004)、アクセラレータ12で処理を行い(1005)、処理結果をデータ領域23に書き戻し(1006)、その後に、CPU11に対して処理終了報告を上げる(1007)。そして、CPU11は、アクセラレータ12からの処理終了報告を受けると、アクセラレータ12による処理結果をデータ領域23から読み込み(1008)、後処理を行う(1009)。また、処理内容によっては、前処理(1001)がなく、アクセラレータ12から処理が開始される場合や、後処理(1009)がなく、アクセラレータ12による処理で終了するものもある。
First, when the
このように、CPU11とアクセラレータ12がデータ領域23を介してデータ連携を行い、マルチメディア処理を実行している。
As described above, the
次に、図5及び図6を用いて、前記図4を参照しながら、I/O専用キャッシュを用いたマルチメディア処理のデータの流れの一例を説明する。図5及び図6は、マルチメディア処理のデータの流れを示す図であり、図5は図4における前処理(1001)からアクセラレータ処理(1005)までの処理、図6は図4における処理結果セット(1006)から後処理(1009)までの処理をそれぞれ示したものである。 Next, an example of the data flow of multimedia processing using the I / O dedicated cache will be described with reference to FIGS. 5 and 6 with reference to FIG. 5 and 6 are diagrams illustrating the flow of data in multimedia processing. FIG. 5 illustrates processing from pre-processing (1001) to accelerator processing (1005) in FIG. 4, and FIG. 6 illustrates processing result sets in FIG. The processes from (1006) to post-processing (1009) are respectively shown.
まず、図5に示すように、CPU11は前処理(1001)を行い、その結果データをアクセラレータ12で処理させるために、データ領域23に書き込む(1002,101)。このとき、I/O専用キャッシュ14は、CPU11からのデータ領域23への当該書き込みデータをキャッシュすると共に、メモリ2内のデータ領域23に当該書き込みデータを書き込む(102)。この際に、I/O専用キャッシュ14は、キャッシュすべきデータであるかは、CPU11から書き込みデータと共に出力される書き込み先のアドレスにより、データ領域23であるかどうかにより判断する。
First, as shown in FIG. 5, the
その後、CPU11は、アクセラレータ12に対して起動要求信号を出力する(1003)。それを受けて、アクセラレータ12は起動し、データ領域23から当該データを読み込む(1004)。このとき、I/O専用キャッシュ14上に当該書き込みデータがキャッシュされている部分の連携データは、I/O専用キャッシュ14から読み出し(103)、I/O専用キャッシュ14にキャッシュされていない部分のデータ本体は、メモリ2のデータ領域23から直接読み出し(104)、アクセラレータ12は読み出された当該データに対して処理(1005)を行う。
Thereafter, the
続いて、図6に示すように、アクセラレータ12による処理(1005)が終わると、処理結果をデータ領域23に書き戻す(1006,111)。このとき、I/O専用キャッシュ14は、アクセラレータ12からデータ領域23への書き込みデータをキャッシュすると共に、メモリ2内のデータ領域23に当該処理データを書き込む(112)。この際に、I/O専用キャッシュ14は、アクセラレータ12から当該処理データと共に出力されるキャッシュ要求信号または書き込み先のアドレスにより、キャッシュすべきデータであるかどうかを判定する。
Subsequently, as shown in FIG. 6, when the processing by the accelerator 12 (1005) is completed, the processing result is written back to the data area 23 (1006, 111). At this time, the I / O dedicated
その後、アクセラレータ12からの処理終了報告(1007)を受け、CPU11は、当該処理データをデータ領域23から読み出す(1008)。このとき、CPU11が処理するデータは、I/O専用キャッシュ14上に当該処理データがキャッシュされている部分の連携データであるため、I/O専用キャッシュ14から読み出す(113)だけで、CPU11は後処理(1009)ができる。この際に、I/O専用キャッシュ14の容量の関係でキャッシュされていない部分が存在した場合のみ、メモリ2のデータ領域23から読み出す(114)。
Thereafter, upon receiving a processing end report (1007) from the
このように、メモリ2よりもアクセスレイテンシが短い高速なI/O専用キャッシュ14を介して、CPU11とアクセラレータ12がデータ連携を行うことで、メモリ2内のデータ領域23を介したデータ連携に比べて、オーバーヘッドとなるアクセス待ち時間を大幅に削減でき、マルチメディア処理の高速化が実現される。
As described above, the
さらに、CPU11が後処理を行う場合、CPU11がアクセラレータ12による処理データをすべて読み出すことは少ないことに注目し、当該処理データをメモリ2に書き込む際に、CPU11が読み出すデータである連携データの部分をI/O専用キャッシュ14にキャッシュし、それ以外のデータ本体は、I/O専用キャッシュ14上にキャッシュせず、メモリ2内のデータ領域23に直接書き込む。
Further, when the
また、アクセラレータ12にて処理を行う場合、アクセラレータ12は、基本的にデータ領域23へのアクセスは連続したアドレスに対して行われる。そこで、メモリ2は、SDRAMやDDR−SDRAMなどのスループットが高速であるメモリであることに注目し、データ領域23の最初のみをI/O専用キャッシュ14に保持し、あとは、メモリ2の連続アクセス性能に期待する方法を採る。
When processing is performed by the
以上の方法を採ることで、I/O専用キャッシュ14上にキャッシュする連携データの部分を減らして、I/O専用キャッシュ14の有効利用を実現できる。
By adopting the above method, it is possible to reduce the portion of the cooperative data cached on the I / O dedicated
次に、図7〜図14を用いて、I/O専用キャッシュの構造及び動作を詳細に説明する。図7は、バスの構成を示す図である。図8は、I/O専用キャッシュの構成を示す図である。図9は、レジスタの構成を示す図である。図10(a),(b)は、I/O専用キャッシュ内のレジスタアクセス経路を示す図である。図11は、判定回路での処理の流れを示す図である。図12は、アドレス判定回路の構成を示す図である。図13は、キャッシュの構成を示す図である。図14は、キャッシュの動作を示す図である。 Next, the structure and operation of the I / O dedicated cache will be described in detail with reference to FIGS. FIG. 7 is a diagram illustrating the configuration of the bus. FIG. 8 is a diagram showing the configuration of the I / O dedicated cache. FIG. 9 is a diagram illustrating a configuration of a register. FIGS. 10A and 10B are diagrams showing register access paths in the I / O dedicated cache. FIG. 11 is a diagram showing a flow of processing in the determination circuit. FIG. 12 is a diagram illustrating a configuration of the address determination circuit. FIG. 13 is a diagram illustrating a configuration of a cache. FIG. 14 is a diagram illustrating a cache operation.
図7に示すように、バス13は、アドレスバス131と、データバス132から構成されている。アドレスバス131は、アクセス先のアドレス1311とアクセス信号1312、及び、アクセラレータ12からのキャッシュ要求信号1313から構成されている。また、データバス132は、リード用データバス1321とライト用データバス1322から構成されている。
As shown in FIG. 7, the
図8に示すように、I/O専用キャッシュ14は、バス13とメモリコントローラ15に接続されており、レジスタ141、判定回路142及びキャッシュ143から構成される。また、判定回路142からキャッシュ143に対して、キャッシュ要求144が、レジスタ141から判定回路142へエリアレジスタデータ信号145が出力されている。さらに、I/O専用キャッシュ14において、アドレスバス131は、判定回路142及びキャッシュ143に、データバス132はキャッシュ143に接続されている。
As shown in FIG. 8, the I / O dedicated
図9に示すように、レジスタ141は、CPU11からアクセス可能であり、I/O専用キャッシュ14の状態及び設定値を保持する複数のレジスタから構成されている。このレジスタ141は、I/O専用キャッシュ14の有効・無効をセットさせる動作モードレジスタ1411、ライトバックモードやライトスルーモードなどのキャッシュ143の動作モードを規定するキャッシュモードレジスタ1412、及びI/O専用キャッシュ14に保持させるデータエリア(アドレス範囲)を指定する連携データエリアレジスタ1413から構成されている。
As illustrated in FIG. 9, the
この連携データエリアレジスタ1413では、1つの連携データエリアは、連携データエリアアドレスレジスタ1414(1414−1〜1414−m)と、連携データエリアマスクレジスタ1415(1415−1〜1415−m)を用いて表し、この2つのレジスタのセットを複数持つことで、複数の連携データエリアをサポート可能とする。また、連携データエリアマスクレジスタ1415は、連携データエリアアドレスレジスタ1414とアドレス1311とで値の比較を行う際に、比較すべきビットを表している。これにより、2つのレジスタ1414と1415とで、連携データエリアを表現することが可能となる。他には、連携データエリア開始アドレスレジスタと連携データエリア終了アドレスレジスタのセットによる連携データエリアの表現もある。
In this cooperative
この連携データエリアレジスタ1413内のこれらのレジスタ値はエリアレジスタデータ信号145として、判定回路142に出力される。
These register values in the cooperative
なお、このレジスタ141に対するCPU11からのアクセス経路に関しては、図10に示すように、バス13に接続された構成(a)と、バス13とは異なるレジスタアクセス用バス経由でバス13に接続される構成(b)がある。すなわち、図10(a)の構成では、レジスタ141がバス13に接続され、このバス13を通じてCPU11からアクセスされる。一方、図10(b)の構成では、レジスタ141がレジスタアクセス用バスを経由してバス13に接続され、このレジスタアクセス用バスを経由してCPU11からアクセスされる。
The access path from the
判定回路142は、CPU11及びアクセラレータ12からのメモリ2へのライトアクセスに対し、レジスタ141からのエリアレジスタデータ信号145、アドレスバス131及び、アクセラレータ12からのキャッシュ要求信号1313から、そのライトデータをキャッシュ143に保持させるかどうかの判定を行い、キャッシュ143に対してキャッシュ要求144を出力する。この判定方法は、図11に示すとおりである。
In response to a write access to the
図11に示すように、まず、判定回路142は、バス13からメモリ2へのアクセス要求に対し、アクセス信号1312をチェックし、アクセスの種類を調べ(1421)、リードアクセスならば、キャッシュ要求144は無効とする(1426)。
As shown in FIG. 11, first, the
また、1421にて、ライトアクセスの場合、当該ライトアクセスのアドレス1311及び、レジスタ141からのエリアレジスタデータ信号145から、当該アドレスが、連携データエリア内であるかどうかを調べ(1422)、連携データエリア内ならば(Yes)、キャッシュ要求144は有効となる(1425)。
In the case of a write access at 1421, it is checked from the
また、1422にて、連携データエリア外の場合(No)、当該ライトアクセスのアクセス要求元を調べ(1423)、CPU11からのライトアクセスならば、キャッシュ要求144は無効となる(1426)。
If it is outside the cooperative data area at 1422 (No), the access request source of the write access is checked (1423), and if it is a write access from the
また、1423にて、アクセス要求元がアクセラレータ12ならば、当該アクセラレータ12からのキャッシュ要求信号1313が有効か無効かを調べ(1424)、有効ならば、キャッシュ要求144は有効となる(1425)。
If the access request source is the
また、1424にて、当該アクセラレータ12からのキャッシュ要求信号1313が無効ならば、キャッシュ要求144は無効となる(1426)。
If the
続いて、前述したライトアクセスのアドレスが連携データエリア内であるかどうかの判定(1422)について図12に示す。 Next, FIG. 12 shows determination (1422) of whether or not the above-described write access address is in the cooperative data area.
図12に示すように、判定(1422)は、レジスタ141からのエリアレジスタデータ信号145及びアドレス1311を入力とし、連携データエリアアドレスレジスタ1414−1〜1414−mとアドレス1311との比較を行う。連携データエリアアドレスレジスタ1414−1〜1414−mと連携データエリアマスクレジスタ1415とでビット毎の論理積を計算するゲート1425−1〜1425−mと、アドレス1311と連携データエリアマスクレジスタ1415とでビット毎の論理積を計算するゲート1426−1〜1426−mにより比較するビットのみを比較器1427−1〜1427−mに入力し、各比較器1427−1〜1427−mの比較結果の総論理和をゲート1428で計算し、当該アドレス1311が、連携データエリアであるかどうかを判定する。
As shown in FIG. 12, in the determination (1422), the area register data signal 145 and the
以上により、判定回路142は、メモリ2へのアクセスが連携データエリアへのアクセスかどうかを判定し、キャッシュ143にキャッシュ要求144を出力する。キャッシュ143は、バス13及びメモリコントローラ15と接続されており、ライトバックまたはライトスルーキャッシュとして動作し、判定回路142からのキャッシュ要求144を受け、当該ライトデータをキャッシュする。
As described above, the
このキャッシュ143の構成を図13に示す。図13ではフルアソシアティブ方式で、N個のエントリを持ち、各エントリに保持しているアドレス情報、データ、制御情報がある。各エントリが保持するデータのサイズは、32Bや64Bぐらいである。また、制御情報は、エントリの入換えを行う際のLRU情報やエントリにデータが登録されているかどうかのValidビット及び、データサイズが更新されているかどうかを示すダーティビット(ライトバック時に使用)などがある。また、キャッシュヒットとは、当該アドレスが、本キャッシュ143のエントリに登録されている場合、キャッシュミスは、キャッシュ143に登録されていない場合のことを示す。
The configuration of the
このキャッシュ143の動作は、下記の5種類(ライトアクセスで3種類(a)−(1),(2),(3)、リードアクセスで2種類(b),(c))に分類される。
The operation of the
(a)−(1)ライトアクセスで、キャッシュ要求144が有効及び、キャッシュヒットの場合は、キャッシュ143に登録されている当該エントリのデータをデータライトバス133のライトデータで上書きを行い、ダーティビットをONにする。
(A)-(1) If the
(a)−(2)ライトアクセスで、キャッシュ要求144が有効及び、キャッシュミスでキャッシュ143に空いているエントリがある場合は、キャッシュ143の空いているエントリを探し、当該エントリにライトデータを登録する。これは、エントリを有効にし、アドレス情報にアドレス1311の値を書き込む。このとき、データライトバス1322からのライトデータサイズがエントリのデータサイズより小さい場合には、メモリ2より当該アドレスの内容データを読み出し、当該エントリのデータ情報に登録した後に、当該ライトデータを書き込む。
(A)-(2) If the
(a)−(3)ライトアクセスで、キャッシュ要求144が有効及び、キャッシュミスでキャッシュ143に空いているエントリがない場合は、キャッシュ143の各エントリの制御情報にあるLRU情報を調べ、一番古いエントリを破棄し、このエントリに当該ライトデータを登録する。登録手順は、(a)−(2)と同じである。
(A)-(3) If the
(b)リードアクセスで、キャッシュ143にヒットした場合は、キャッシュ143に登録されている当該アドレスのエントリのデータ情報をデータリードバス1321に出力する。
(B) When the
(c)リードアクセスで、キャッシュ143にてミスした場合は、メモリコントローラ15に、当該アドレスを出力し、メモリ2から当該アドレスに対応するデータを読み出し、データリードバス1321に出力する。なお、このとき読み出したデータをキャッシュ143には登録しない。
(C) If there is a miss in the
上記処理にて、キャッシュ143に登録する際に、全てのエントリが使用中であった場合には、従来のキャッシュと同様にLRU等のアルゴリズムを用い、キャッシュ143から追い出すエントリを探す。このとき、キャッシュ143がライトバックモードの場合には、当該エントリのデータをメモリ2へ書き戻しを行う。
If all entries are in use when registered in the
以上の手順により、I/O専用キャッシュ14は、CPU11及びアクセラレータ12からのライトデータをキャッシュ143に保持し、CPU11とアクセラレータ12間のデータ連携をI/O専用キャッシュ14内で実現することで、データ連携によるボトルネックを解消し、マルチメディア処理の高速化を実現できる。また、本当に連携するデータのみをI/O専用キャッシュ14に保持させることで、I/O専用キャッシュ14の使用効率を向上し、キャッシュミスによるオーバーヘッドを最小化することが可能となる。
By the above procedure, the I / O dedicated
さらに、本I/O専用キャッシュ14の処理を高速化及びスプリットバスに対応するため、処理をパイプライン化し、図14に示すように3ステージ制を採る。なお、キャッシュミスによりメモリ2へのアクセス中のエントリに対しては、当該エントリへの登録処理が終了するまで、同一エントリへのアクセスは待たせ、メモリ競合においても、正しくメモリアクセスが行われるようにする。
Further, in order to increase the processing speed of the I / O dedicated
すなわち、図14に示すように、ステージ1では、判定回路142がキャッシュ要求判定を行い、キャッシュ143がライトアクセス及びリードアクセスの時にヒット判定を行う。ステージ2では、キャッシュの動作において、ライトアクセスの時はヒットの場合にキャッシュ143のデータ更新、ミスの場合にメモリ2へのアクセスを行い、リードアクセスの時はヒットの場合にキャッシュ143からデータ出力、ミスの場合にメモリ2へのアクセスを行う。ステージ3では、キャッシュの動作において、ライトアクセスの時はミスの場合にキャッシュ143への登録を行い、リードアクセスの時はミスの場合にバス13へのデータ出力を行う。
That is, as shown in FIG. 14, in
これにより、メモリアクセス中においても、判定回路142によるキャッシュ要求判定や、キャッシュ143によるキャッシュ判定処理が行えるため、I/O専用キャッシュ14によるオーバーヘッドを小さくすることができる。
As a result, the cache request determination by the
さらに、I/O専用キャッシュ14とメモリコントローラ15とを組合せて、さらに効率を向上させる本実施の形態の応用例を、以下において説明する。
Further, an application example of this embodiment in which the I / O dedicated
次に、図15〜図17を用いて、本実施の形態の応用例として、I/O専用キャッシュ14とメモリコントローラ15とを組合せて効率を向上させる場合を説明する。図15は、メモリコントローラの構成を示す図である。図16は、キャッシュの構成を示す図である。図17は、アクセス要求のデータ構成を示す図である。
Next, as an application example of the present embodiment, a case where the efficiency is improved by combining the I / O dedicated
まず、メモリコントローラ15に、以下の機能を持たせる。
First, the
(1)メモリ帯域確保のために、メモリアクセスに優先順位を導入する。すなわち、大きな帯域が必要なアクセラレータに対して、優先的にメモリアクセスが行われるようにする。 (1) In order to secure memory bandwidth, priority is introduced to memory access. That is, memory access is preferentially performed for an accelerator that requires a large bandwidth.
(2)メモリアクセスのオーバーヘッドを最小限にするOut−of−orderアクセスを採用する。すなわち、SDRAM及びDDR−SDRAMのバンク毎にアクティブ状態を管理し、各バンクに対してCASアドレス投入のみでアクセス可能な同じRowアドレスへのアクセスが連続するようにメモリアクセスの順番の入換えを行う。 (2) Adopt out-of-order access that minimizes memory access overhead. That is, the active state is managed for each bank of the SDRAM and the DDR-SDRAM, and the order of memory access is changed so that accesses to the same Row address that can be accessed only by inputting the CAS address to each bank are continuous. .
また、ライトアクセスはI/O専用キャッシュ14がアクセス要求を受け取れば、CPU11やアクセラレータ12は次の処理に移ることができるが、リードアクセスが遅れるとCPU11やアクセラレータ12がメモリ待ちとなるため、リードアクセスを優先して行う必要がある。そのため、本メモリコントローラ15では、メモリアクセスのみを高速化し、帯域確保のための優先順位制御はリードアクセスに対してのみ行う。
In the write access, if the I / O dedicated
さらに、注意すべき点は、帯域確保やOut−of−orderアクセスを行うことにより、メモリ2へのアクセス順序の入換えが発生する。そのため、アクセス順序どおりにアクセスしたのと同じ結果が得られるようにするメモリコンシステンシを保つことが重要となる。このメモリコンシステンシの維持には、以下の配慮が必要となる。
Further, it should be noted that the access order to the
すなわち、異なるアドレスへの2つのメモリアクセスに関する順序入換えは問題なし。同一アドレスへの2つのメモリアクセスに関して、ライトアクセスを越えた順序の入換えがないようにする。以後、同一アドレスへの2つのメモリアクセス要求のことを、「2つのメモリアクセスには依存関係がある」と呼ぶ。 That is, there is no problem with changing the order of two memory accesses to different addresses. The two memory accesses to the same address are not changed in order beyond the write access. Hereinafter, two memory access requests to the same address are referred to as “there is a dependency between the two memory accesses”.
このメモリコントローラ15の構成を図15に示す。図15に示すように、メモリコントローラ15は、アクセス制御回路151、リフレッシュ制御回路152、優先順位付きリードアクセス要求FIFO153、ライトアクセス要求FIFO154、メモリアクセス制御回路155から構成されている。リードアクセス要求FIFO153は、優先順位毎にFIFO(153−1〜153−n)が存在する。
The configuration of the
また、I/O専用キャッシュ14内にあるキャッシュ143の構成を図16に示す。図16に示すように、キャッシュ143には、前記図13に示したN個の各エントリに保持しているアドレス情報、データ、制御情報に加えて、優先順位を示す優先度が登録されている。
FIG. 16 shows the configuration of the
このような構成による本実施の形態の応用例では、I/O専用キャッシュ14からは、CPU11及びアクセラレータ12に従った優先順位情報付きのアクセス要求が来る。これを受け、アクセス制御回路151は、図17に示すアクセス要求フォーマットに変換する。このフォーマットは、アクセス要求に関するアクセス属性とメモリコンシステンシを維持するための依存関係情報からなっており、アクセス属性は、各アクセスを管理するためのtagNoと、リードライト信号、アドレス、データから構成され、また、依存関係情報は、依存関係のあるメモリアクセス要求のtagNo及び、自分に依存するアクセスがあるかどうかの最終ビットから構成されている。
In the application example of the present embodiment having such a configuration, an access request with priority information according to the
このアクセス制御回路151の動作は、I/O専用キャッシュ14から来るアクセス要求は、下記のとおりである。
As for the operation of this
(1)新たなアクセス要求に対して、新たなタグを発行し、tagNoに登録する。また、最終ビットをセットする。 (1) In response to a new access request, a new tag is issued and registered in tagNo. Also, the last bit is set.
(2)続いて、リードアクセス要求FIFO153及びライトアクセス要求FIFO154にキューイングされている先行アクセス要求を調べ、依存関係があるかを確認する。この確認の結果、依存関係がない場合、リードアクセスの場合には、該当するリードアクセス要求FIFO153−1〜153−nの該当FIFOに、また、ライトアクセスの場合は、ライトアクセス要求FIFO154にキューイングして終了する。
(2) Subsequently, the preceding access requests queued in the read
また、依存関係がある場合には、下記の手順に従う。 If there is a dependency, follow the procedure below.
(a)−(1)本アクセス要求がリードアクセス要求である場合、依存関係のある先行する最新アクセス要求(最終ビットがセット)に対し、ライトアクセス要求の場合は、当該先行アクセス要求のライトアクセスデータを返し、本リードアクセス要求はキューイングせずに終了する(FIFOヒット)。 (A)-(1) When this access request is a read access request, in the case of a write access request with respect to the preceding latest access request having a dependency relationship (the last bit is set), the write access of the preceding access request Data is returned, and this read access request is terminated without queuing (FIFO hit).
(a)−(2)本アクセス要求がリードアクセス要求である場合、依存関係のある先行する最新アクセス要求(最終ビットがセット)に対し、リードアクセス要求の場合は、当該先行リードアクセス要求のtagNoを、本アクセス要求の依存tagに登録し、先行リードアクセス要求の最終ビットをクリアする。 (A)-(2) When this access request is a read access request, in the case of a read access request with respect to the preceding latest access request having a dependency relationship (the last bit is set), the tag No. of the preceding read access request Is registered in the dependency tag of this access request, and the last bit of the preceding read access request is cleared.
(b)キューイングするアクセス要求がライトアクセスである場合、当該先行アクセス要求のtagNoを、本アクセス要求の依存tagに登録し、先行ライトアクセス要求の最終ビットをクリアする。 (B) When the access request to be queued is a write access, the tag No of the preceding access request is registered in the dependency tag of the present access request, and the last bit of the preceding write access request is cleared.
また、メモリアクセス制御回路155の動作は、各リードアクセス要求FIFO153とライトアクセス要求FIFO154に対して、各FIFOの優先順位順に、アクセス要求を取り出す。このとき、SDRAMに対して発行するアクセスに対して、同一バンク、同一Rowアドレスに関するアクセスについて、リードアクセスとライトアクセスをそれぞれまとめて、メモリ2にアクセスする。この際に、依存tagNoがセットされているアクセス要求に対しては、除外すると共に、メモリ2にアクセスする各アクセス要求に対して、最終ビットがセットされている場合は、依存関係がないので、そのまま終了する。最終ビットがクリアされている場合は、下記の手順に従い、依存関係リストを更新する。
The operation of the memory
(a)キューイングされている各アクセス要求に対して、依存tagが終了した本アクセス要求のタグ番号であるかを調べる。 (A) For each access request queued, it is checked whether or not the tag number of the access request for which the dependency tag has ended is completed.
(b)該当するキューイング中のアクセス要求に対して、依存tagをクリアする。 (B) The dependency tag is cleared for the corresponding queuing access request.
以上の方式を採ることにより、メモリコンシステンシ(一貫性)を保持しつつ、SDRAM、DDR−SDRAMの各バンクに対して、効率のよい同一Rowアドレスへのアクセスをまとめてアクセスすることが可能となり、メモリ2へのアクセス効率を向上させることが可能となる。このアクセス効率とI/O専用キャッシュ14による効果でマルチメディア処理はメモリ2によるボトルネックを最小限に抑え、スムーズな処理実行を実現できる。
By adopting the above method, it is possible to efficiently access the same row address to each bank of SDRAM and DDR-SDRAM while maintaining memory consistency (consistency). The access efficiency to the
次に、図18を用いて、本実施の形態のマルチメディアマイコンを用いたマルチメディア端末の一例を説明する。図18は、マルチメディアマイコンを用いたマルチメディア端末を示す構成図である。 Next, an example of a multimedia terminal using the multimedia microcomputer of this embodiment will be described with reference to FIG. FIG. 18 is a block diagram showing a multimedia terminal using a multimedia microcomputer.
マルチメディア端末としては、近年、携帯電話やPDAなどの小型の表示機能を持つ携帯端末においても、音楽演奏機能やカメラ機能を持ち、画面に静止画(写真)や動画(ムービー)を表示したりすることが可能となっている。 As multimedia terminals, mobile terminals with small display functions, such as mobile phones and PDAs, have music performance functions and camera functions, and display still images (photos) and videos (movies) on the screen. It is possible to do.
このマルチメディア端末100は、マルチメディアマイコン1を核として、このマルチメディアマイコン1に、メモリ2、入出力装置である画面3、カメラ4、スピーカ5、及び通信装置6を接続した構成となっている。
The
このマルチメディアマイコン1は、画面3、カメラ4、スピーカ5、通信装置6と接続するインタフェースを持つと共に、画面表示制御、画像入力制御、音声出力制御、通信送受信制御を行うアクセラレータを持つ。これにより、カメラ4で撮影された映像を画面3への表示や、通信装置6を介した外部と映像を高速に送受信することが可能となる。
The
次に、図19及び図20を用いて、本実施の形態において、さらに別のマルチメディアマイコンの構成及び動作の一例を説明する。図19は、さらに別のマルチメディアマイコンを示す構成図である。図20は、キャッシュとI/O専用キャッシュとの使い分けを示す図である。 Next, an example of the configuration and operation of another multimedia microcomputer in this embodiment will be described with reference to FIGS. 19 and 20. FIG. 19 is a block diagram showing still another multimedia microcomputer. FIG. 20 is a diagram showing the proper use of the cache and the I / O dedicated cache.
図19に示すように、本実施の形態において、さらに別のマルチメディアマイコン1は、マスタとして動作し、内部にキャッシュ110を持つCPU11と、スレーブとして動作する複数のアクセラレータ12(12−1〜12−n)と、本発明の特徴であるI/O専用キャッシュ14と、これらを接続するバス13と、メモリコントローラ15から構成されている。このマルチメディアマイコン1の外部にはメモリ2が接続されており、メモリ2には、CPU11で実行される一連の手続き処理を記述したプログラム21と、ワークエリア22と、さらに、各アクセラレータ12が処理するデータを格納するデータ領域23(23−1〜23−n)がある。
As shown in FIG. 19, in this embodiment, another
キャッシュ110及びI/O専用キャッシュ14はメモリ2の内容を一時的に保持するキャッシュとしての機能を持っており、キャッシュ110は、CPU11がメモリ2にアクセスする際のアクセス効率の向上を、また、I/O専用キャッシュ14は、CPU11及びアクセラレータ12がメモリ2にアクセスする際のアクセス効率の向上を実現させる。
The
図20を用いて、キャッシュ110とI/O専用キャッシュ14との使い分けについて説明する。なお、以下、キャッシュ110はコピーバック方式を採るものとし、スヌープ機能を用いて、アクセラレータ12からのメモリ2へのアクセスを監視し、キャッシュ110と、メモリ2及びI/O専用キャッシュ14との間で、キャッシュコヒーレンシを保つ機能を持つ。また、キャッシュがメモリ2からデータをラインサイズ分読み込むことをフィード、メモリ2に対してラインサイズ分書き込むことをパージと称する。
The use of the
CPU11が、プログラム21及びワークエリア22をアクセスする際には、キャッシュ110のみを動作し、I/O専用キャッシュ14はスルーする(121)。従って、キャッシュ110でキャッシュミスが発生した際には、CPU11のアクセスがリード及びライト(ライトバック時)の両方において、キャッシュ110はメモリ2に対して、データをフィード及びパージを行う。
When the
一方、CPU11が、アクセラレータ21のデータ領域23をアクセスする際には、キャッシュ110及びI/O専用キャッシュ14がともに動作する(122〜124)。従って、キャッシュ110でキャッシュミスが発生した際には、引き続いてI/O専用キャッシュ14でもキャッシュ判定が行われる。
On the other hand, when the
I/O専用キャッシュ14でキャッシュヒット時、CPU11はI/O専用キャッシュ14上のデータをアクセスする(122)。また、I/O専用キャッシュ14でキャッシュミス時、キャッシュ110からのアクセスにより動作が異なる。
When a cache hit occurs in the I / O dedicated
(1)キャッシュ110からのキャッシュフィードアクセス(リード)
I/O専用キャッシュ14は、メモリ2からのリードデータをスルーしてキャッシュ110にデータを出力する(123)。
(1) Cache feed access from cache 110 (read)
The I / O dedicated
(2)キャッシュ110からのキャッシュパージアクセス(ライト)
(2)−(a)I/O専用キャッシュ14は、当該パージデータが連携データである場合、I/O専用キャッシュ14に登録する。このとき、キャッシュ110のラインサイズが、I/O専用キャッシュ14のラインサイズより小さい場合、メモリ2より、当該パージデータを含むラインをフィード(124)した後に、当該パージデータを書き込む。
(2) Cache purge access (write) from the
(2)-(a) The I / O dedicated
(2)−(b)当該パージデータが連携データでない場合には、I/O専用キャッシュ14はスルーしてメモリ2に書き込む(123)。
(2)-(b) If the purge data is not linkage data, the I / O dedicated
続いて、図21〜図28を用いて、暗号化をIPプロトコルレベルで行い、セキュリティ確保を実現するIPsecを用いた通信を高速化するマルチメディアマイコンの具体例について説明する。このIPsecは、VPN(Virtual Private Network)の標準プロトコルとして規定されたものである。 Next, a specific example of a multimedia microcomputer that performs encryption at the IP protocol level and speeds up communication using IPsec for ensuring security will be described with reference to FIGS. This IPsec is specified as a standard protocol of VPN (Virtual Private Network).
図21は、マルチメディアマイコン1の具体的な構成を示す。マルチメディアマイコン1は、CPU11、アクセラレータ12、I/O専用キャッシュ14と、これらを接続するバス13及びメモリコントローラ15から構成されている。また、アクセラレータ12として、TCPアクセラレータ12−1、IPsecアクセラレータ12−2、及びEtherMAC12−3を持ち、TCPアクセラレータ12−1はチェックサム計算とメモリコピーを、IPsecアクセラレータ12−2は復号化及び認証処理を、EtherMAC12−3はLAN130で接続されて、LANからのフレームの送受信機能を持つ。なお、ここではLAN130は、LANとして最も多く使用されているイーサネット(登録商標)とする。
FIG. 21 shows a specific configuration of the
図22は、IPsecのトランスポートベースを用いて通信を行う際のフレーム構造を示す。LAN及びインターネットでは、標準プロトコルとしてTCP/IPプロトコルが使用されており、送受信されるデータサイズが1フレームで送信できるサイズより大きい場合、複数のTCPパケットに分割されて送受信される。 FIG. 22 shows a frame structure when communication is performed using an IPsec transport base. In the LAN and the Internet, the TCP / IP protocol is used as a standard protocol. When the data size to be transmitted / received is larger than the size that can be transmitted in one frame, it is divided into a plurality of TCP packets and transmitted / received.
図22に示すとおり、IPsecのトランスポートモードでは、TCPパケットを暗号化したIPsecパケットにIPヘッダを付加してIPでカプセル化した構成を採っている。マルチメディアマイコン1では、LAN向けとしてイーサネット(登録商標)を使用しているため、最後にMACヘッダを付加した構成となる。ちなみに、図23には、IPsecを用いない場合のTCP/IPのフレーム構成を示している。
As shown in FIG. 22, the IPsec transport mode adopts a configuration in which an IP header is added to an IPsec packet obtained by encrypting a TCP packet and encapsulated in IP. Since the
なお、IPsecパケットは、IPsecヘッダとIPsecデータから構成されており、IPsecヘッダには暗号化を行っているためにESPヘッダを使用する。IPsecデータは、暗号化に必要なデータを持つESPトレーラをTCPパケットに付加し、その全体を暗号化した後、改ざんを検出できるようにESP認証値が加えられている。 Note that an IPsec packet is composed of an IPsec header and IPsec data, and the ESP header is used because the IPsec header is encrypted. The IPsec data is added with an ESP authentication value so that tampering can be detected after an ESP trailer having data necessary for encryption is added to the TCP packet and the entire packet is encrypted.
次に、キャッシュの動作として、I/O専用キャッシュを使用しない場合の受信処理(図24)、I/O専用キャッシュを使用した場合の受信処理(図25)、連携データ部のみをI/O専用キャッシュに保持し、I/O専用キャッシュを使用した場合の受信処理(図26)を順に説明する。 Next, as cache operations, a reception process when the I / O dedicated cache is not used (FIG. 24), a reception process when the I / O dedicated cache is used (FIG. 25), and only the cooperative data section is I / O. The reception process (FIG. 26) in the case of holding in the dedicated cache and using the I / O dedicated cache will be described in order.
まず、I/O専用キャッシュ14を使用しない場合、この図22に示すIPsecのトランスポートモードのイーサフレームを受信する際の処理を、図24を用いて説明する。
First, when the I / O dedicated
(1)マルチメディアマイコン1がイーサネット(登録商標)のLAN130から、当該イーサフレームを受信し、メモリ2内のアクセラレータ12のデータ領域23に書き込む(1001,1011)。
(1) The
(2)CPU11は、当該イーサフレーム1011のMACヘッダ及びIPヘッダをアクセラレータ12のデータ領域23より読み込み、イーサ受信及びIP受信処理を行う(1002)。
(2) The
(3)CPU11は、当該イーサフレーム1011がIPsecパケットを含むため、当該イーサフレーム1011内のIPsecヘッダを読み込み、IPsec受信処理を行い、IPsecアクセラレータ12−2を起動する。
(3) Since the
(4)IPsecアクセラレータ12−2は、アクセラレータ12のデータ領域23より当該イーサフレーム1011内のIPsecデータを読み込み、認証処理及び復号処理を行い、その結果をアクセラレータ12のデータ領域23にTCPパケット(TCPデータ)1012として書き戻す(1003)。
(4) The IPsec accelerator 12-2 reads the IPsec data in the
(5)CPU11は、アクセラレータ12のデータ領域23内のTCPパケット1012より、TCPヘッダを読み込み、受信処理を行うとともに、チェックサムを計算するため、TCPアクセラレータ12−1を起動する(1004)。
(5) The
(6)TCPアクセラレータ12−1は、アクセラレータ12のデータ領域23内のTCPパケット1012を読み込み、チェックサムを計算するとともに、TCPデータを受信データ内の適切な位置(図では左から3番目の位置)に書き込む(1005)。
(6) The TCP accelerator 12-1 reads the
このように、I/O専用キャッシュ14を使用しない場合、メモリ2へのアクセスが、1イーサフレーム当たり5回発生することになる。
Thus, when the I / O dedicated
一方、I/O専用キャッシュ14を使用した場合の動作を、図25を用いて説明する。
On the other hand, the operation when the I / O dedicated
(1’)マルチメディアマイコン1がイーサネット(登録商標)のLAN130から、当該イーサフレームを受信し、メモリ2内のアクセラレータ12のデータ領域23に書き込む(1021,1011)。しかし、アクセラレータ12のデータ領域23への書き込みであるため、I/O専用キャッシュ14は当該フレームをキャッシュし(1011’)、実際にメモリ2へのアクセスは発生しない。
(1 ') The
(2’)CPU11は、アクセラレータ12のデータ領域23内の当該イーサフレーム1011内にあるMACヘッダ及びIPヘッダを読み込む際、I/O専用キャッシュ14にヒットする。そのため、メモリ2へのアクセスは発生せず、I/O専用キャッシュ14から当該フレーム1011’のMACヘッダ及びIPヘッダが読み込まれ、イーサ受信及びIP受信処理を行う(1022)。
(2 ′) When the
(3’)CPU11は、当該イーサフレーム1011’がIPsecパケットを含むため、当該イーサフレーム1011内のIPsecヘッダを読み込み、IPsec受信処理を行い、IPsecアクセラレータ12−2を起動する。このメモリ2へのアクセスも、(2)と同様にI/O専用キャッシュ14にヒットするため、当該イーサフレーム1011’のIPsecヘッダが読み込まれ、メモリ2へのアクセスは発生しない(1022)。
(3 ′) The
(4’)IPsecアクセラレータ12−2は、当該イーサフレーム1011内のIPsecデータを読み込もうとするが、I/O専用キャッシュ14にヒットし、実際には当該イーサフレーム1011’から読み込まれる(1023)。その後、IPsecアクセラレータ12−2は認証処理及び復号処理を行い、その結果をアクセラレータ12のデータ領域23にTCPパケット1012として書き戻す。しかし、アクセラレータ12のデータ領域23への書き込みであるため、I/O専用キャッシュ14はキャッシュし(1012’)、実際にメモリ2へのアクセスは発生しない(1023)。
(4 ') The IPsec accelerator 12-2 tries to read the IPsec data in the
(5’)CPU11は、アクセラレータ12のデータ領域23内のTCPパケット1012より、TCPヘッダの読み込みを行うが、実際にはI/O専用キャッシュ14でヒットするため、TCPパケット1012’のTCPヘッダが読み込まれる(1024)。続いて、CPU11はTCP受信処理を行うとともに、チェックサムを計算するため、TCPアクセラレータ12−1を起動する。
(5 ′) The
(6’)TCPアクセラレータ12−1は、アクセラレータ12のデータ領域23内にあるTCPパケット1012の読み込みを行うが、I/O専用キャッシュ14でヒットするため、TCPパケット1012’を読み込む。TCPアクセラレータ12−1は、チェックサムを計算するとともに、TCPデータを受信データ内の適切な位置に書き込む(1025)。
(6 ') The TCP accelerator 12-1 reads the
以上により、アクセラレータ12とCPU11がともにアクセスする連携データをI/O専用キャッシュ14内に留めることで、メモリ2へのアクセスを0回にすることが可能となった。実際には上述のように、画像やダウンロードなどでは、複数のイーサフレームに分割されて送受信されるため、メモリ2へのアクセスのオーバーヘッドが通信性能に大きく影響することになる。
As described above, it is possible to make access to the
また、CPU11とアクセラレータ12がともにアクセスする連携データは、1031及び1032のヘッダ部分である。この連携データをI/O専用キャッシュ14がキャッシュすることにより、CPU11は、アクセラレータ12が書き込んだデータをアクセスが遅いメモリ2からではなく、I/O専用キャッシュ14から読み込むことができるため、オーバーヘッドとなるアクセス待ち時間を大幅に削減でき、IPsecベースのTCP/IP通信を高速に行うことが可能となる。
The linkage data accessed by both the
また、図26に、連携データ部1031(MACヘッダ、IPヘッダ、IPsecヘッダ),1032(TCPヘッダ)のみをI/O専用キャッシュ14に保持し、それ以外のデータ(IPsecデータ、TCPデータ)をメモリ2内に保持した場合の構成図を示す。この構成は同時に複数のアクセラレータ12が動作し、I/O専用キャッシュ14に余裕がない場合である。
In FIG. 26, only the cooperative data sections 1031 (MAC header, IP header, IPsec header), 1032 (TCP header) are held in the I / O dedicated
一方、I/O専用キャッシュ14に余裕がある場合には、図25に示すように、連携データ部1031,1032に加えて、連携データ部以外のデータもキャッシュすることにより、アクセラレータ12間のデータ転送への利用も可能となる。アクセラレータ12側では、連続したアドレスに対してアクセスすることが多いことに注目し、アクセラレータ12間のデータ転送により、連携データ1031,1032がキャッシュアウトされないことがポイントとなる。そこで、I/O専用キャッシュ14上に連携データが優先的にキャッシュすることを実現する方法として、以下の方法が挙げられる。
On the other hand, when the I / O dedicated
(a)連携データのみキャッシュする。 (A) Only the linkage data is cached.
(b)連携データのキャッシュ滞在時間を他のデータよりも長くする(LRUのカウンタの進み具合を他のデータに比べて遅くするなど)。 (B) The cache data's staying time for linked data is made longer than for other data (for example, the progress of the LRU counter is delayed compared to other data).
(c)ラインごとに連携データ用の使用中ビットを設け、CPU11での一連の処理が終了した時点で、当該使用中ビットをクリアする。クリアされたラインは、キャッシュアウトの対象となる。
(C) An in-use bit for linked data is provided for each line, and the in-use bit is cleared when a series of processing in the
ここで、(a),(b)の方法は、I/O専用キャッシュ14での処理となるため、アプリケーションの介在が不要であるが、(c)の方法は、使用中ビットをOSかドライバ・ミドルウエアレベルの管理処理が必須となる。
Here, since the methods (a) and (b) are performed in the I / O dedicated
上記の方法により、連携データがI/O専用キャッシュ14に長く滞在可能となり、特に複数のアクセラレータが同時に動作している際に、連携データがI/O専用キャッシュ14からキャッシュアウトされることによる性能低下を防ぐ事が可能となる。
According to the above method, the linkage data can stay in the I / O dedicated
さらに、同様にIPsecを用いて暗号化したデータを送信する処理を図27に示す。送信処理は、受信処理と逆である。 Further, FIG. 27 shows a process for transmitting data encrypted similarly using IPsec. The transmission process is the reverse of the reception process.
CPU11は、メモリ2内のアクセラレータ12のデータ領域23内に送信データをセットする。このとき、I/O専用キャッシュ14は、送信データがアクセラレータ12のデータ領域23にライトされるのを検出し、キャッシュする。図27では、この送信データは4フレームに分割され、3番目のデータ1061が送信される処理を示している。
The
(1)CPU11は3番目のデータ1061を送信するため、TCPアクセラレータ12−1に起動をかける。
(1) The
(2)TCPアクセラレータ12−1は、アクセラレータ12のデータ領域23内の当該送信データから1フレームで送信可能なサイズ1061に切り出し、チェックサムを計算するとともに、送信用のバッファ1062内のTCPデータ部にコピーする。このとき、TCPアクセラレータ12−1はアクセラレータ12のデータ領域23内をアクセスするため、実際にはI/O専用キャッシュ14内の1061’を読み込み、1062’のTCPデータ部に書き込む(1051)。
(2) The TCP accelerator 12-1 cuts out the transmission data in the
(3)CPU11はTCPヘッダを作成し、アクセラレータ12のデータ領域23内のTCPパケット1062内のTCPヘッダに書き込む。しかし、実際にはI/O専用キャッシュ14内のTCPパケット1062’内のTCPヘッダ部1071に書き込まれる(1052)。
(3) The
(4)TCPパケットを暗号化するため、CPU11はIPsecアクセラレータ12−2を起動する。これを受けて、IPsecアクセラレータ12−2は、TCPパケット1062を読み込み、暗号化した結果をイーサフレーム1063のIPsecデータ部に書き込む。このとき、実際には、I/O専用キャッシュ14内の1062’を読み込み、暗号化したデータを1063’のIPsecデータ部に書き込む。
(4) In order to encrypt the TCP packet, the
(5)CPU11はヘッダ部(MACヘッダ、IPヘッダ、IPsecヘッダ)を作成し、アクセラレータ12のデータ領域23内のイーサフレーム1063のヘッダ部に書き込むが、実際にはI/O専用キャッシュ14内の1063’のヘッダ部1072に書き込まれる(1053)。
(5) The
(6)CPU11は、イーサフレーム1063の作成終了を受け、EtherMAC12−3に送信要求を行う。それを受け、EtherMAC12−3はアクセラレータ12のデータ領域23内のイーサフレーム1063(実際にはI/O専用キャッシュ14内の1063’)を読み出し、イーサネット(登録商標)のLAN130に出力する。
(6) Upon completion of creation of the
以上のように、送信処理においても、CPU11及びアクセラレータ12はともに、I/O専用キャッシュ14の有無を気にすることなく実行することが出来る。
As described above, also in the transmission process, both the
また、上記受信処理及び送信処理が同時に発生しても、I/O専用キャッシュ14はキャッシュであるため、問題なく利用できる。
Even if the reception process and the transmission process occur simultaneously, the I / O dedicated
次に、図28を用いて、CPU11内のキャッシュ110がスヌープ機能を持つ際の処理を示す。
Next, processing when the
上記送信処理の(3)において、CPU11がキャッシュ110を有効かつライトバックモードで、TCPヘッダを作成すると、実際のTCPヘッダはキャッシュ110内にのみ存在し、I/O専用キャッシュ14内の1071及び、アクセラレータ12のデータ領域23内には存在しない。ここで、CPU11の起動を受けたIPsecアクセラレータ12−2は、TCPヘッダを読みに行く。キャッシュ14はこのアクセスを、バス13を介して検出すると、IPsecアクセラレータ12−2にアクセス中断要求を出すとともに、キャッシュ110内のTCPヘッダのデータをアクセラレータ12のデータ領域23内のTCPパケット1062へパージする。しかし、実際にはI/O専用キャッシュ14内のTCPヘッダ部1071に書き込まれる。
In the transmission process (3), when the
パージ処理が終了すると、キャッシュ110はIPsecアクセラレータ12−2へのアクセス中断要求を解除する。これを受けて、IPsecアクセラレータ12−2はTCPヘッダの読み込みを再開する。キャッシュ110からのパージ後の正しいTCPヘッダ1071のデータを読み込むことが可能となる。
When the purge process ends, the
ここで注目すべきは、アクセス時間の短いI/O専用キャッシュ14を使用することで、キャッシュ110とメモリ2間のキャッシュコヒーレンシは、アクセス待ち時間の大きいメモリ2へのアクセスなしに、I/O専用キャッシュ14を介したアクセスとなり、キャッシュパージによるオーバーヘッドを大幅に削減することが可能となる。
It should be noted that by using the I / O dedicated
以上説明したように、本実施の形態によれば、以下のような効果を得ることができる。 As described above, according to the present embodiment, the following effects can be obtained.
(1)I/O専用キャッシュ14を採用したマルチメディアマイコン1,10によれば、マルチメディア処理をCPU11とアクセラレータ12が連携して動作する際に発生するメモリアクセスでのデータ連携によるボトルネックを最小限に抑えることができ、マルチメディア処理性能を高めることができる。
(1) According to the
(2)I/O専用キャッシュ14は、CPU11とアクセラレータ12間のデータ連携に必要なデータのみを保持すると共に、I/O専用キャッシュ14に保持するかどうかの判定は、メモリ2へのライトアクセスのみで良いことに注目することにより、データ連携におけるI/O専用キャッシュ14でのキャッシュヒット率を向上させることが可能となり、よりコンパクトにI/O専用キャッシュ14を実現できる。
(2) The I / O dedicated
(3)複数のマルチメディア向けのアクセラレータ12を搭載した場合でも、データ連携を効率よく行うことが可能となるため、音声や静止画、動画などの複数のマルチメディア処理を同時かつ高速に処理可能なマルチメディアマイコン1,10、及びこのマルチメディアマイコンを用いたマルチメディア端末100を構成できる。
(3) Even when multiple accelerators for
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。 As mentioned above, the invention made by the present inventor has been specifically described based on the embodiment. However, the present invention is not limited to the embodiment, and various modifications can be made without departing from the scope of the invention. Needless to say.
例えば、前記実施の形態においては、イーサネット(登録商標)を使用した有線による通信機能を具体例として説明したが、本発明はこれに限定されるものではなく、(1)無線による通信機能、(2)グラフィックス、MPEGやJPEG(画像圧縮/伸張)などによる画面表示機能、(3)画像回転や画質調整などの画像処理によるカメラ処理機能、(4)音楽、MP3(音声圧縮/伸張)などによるスピーカ処理機能、などにも同様に適用することができる。 For example, in the above-described embodiment, a wired communication function using Ethernet (registered trademark) has been described as a specific example. However, the present invention is not limited to this, and (1) a wireless communication function, ( 2) Screen display function by graphics, MPEG, JPEG (image compression / decompression), (3) Camera processing function by image processing such as image rotation and image quality adjustment, (4) Music, MP3 (audio compression / decompression), etc. The same can be applied to the speaker processing function according to the above.
尚、上述した実施の形態ではCPUを1つ備えた構成例を示したが、複数のCPUを備えた構成においても本発明を有効に適用することが出来る。 In the above-described embodiment, the configuration example including one CPU is shown. However, the present invention can be effectively applied to a configuration including a plurality of CPUs.
以上に説明した本発明の内容は、マイコンに関し、特に、CPUによる処理以外にアクセラレータなどの補助回路を有する通信及びマルチメディア処理を行うマイコンに適用することが可能である。 The contents of the present invention described above relate to a microcomputer, and in particular, can be applied to a microcomputer that performs auxiliary processing such as an accelerator and multimedia processing in addition to processing by a CPU.
1…マルチメディアマイコン、2…メモリ、3…画面、4…カメラ、5…スピーカ、6…通信装置、10…マルチメディアマイコン、11…CPU、12…アクセラレータ、13…バス、14…I/O専用キャッシュ、15…メモリコントローラ、21…プログラム、22…ワークエリア、23…データ領域、100…マルチメディア端末、110…キャッシュ、130…LAN、141…レジスタ、142…判定回路、143…キャッシュ、151…アクセス制御回路、152…リフレッシュ制御回路、153…リードアクセス要求FIFO、154…ライトアクセス要求FIFO、155…メモリアクセス制御回路。
DESCRIPTION OF
Claims (15)
スレーブとして動作するアクセラレータとを有し、
前記CPUおよび前記アクセラレータからメモリをアクセス可能なマイクロコンピュータであって、
前記CPUおよび前記アクセラレータが前記メモリに対してアクセスするデータは、前記CPUおよび前記アクセラレータが互いにやり取りする第1データと、前記第1データを除く第2データとから構成され、
前記第1データと前記第2データとのうち、前記第1データを保持するキャッシュ手段を有することを特徴とするマイクロコンピュータ。 A CPU acting as a master;
An accelerator that operates as a slave,
A microcomputer capable of accessing a memory from the CPU and the accelerator,
The data that the CPU and the accelerator access to the memory is composed of first data that the CPU and the accelerator exchange with each other, and second data that excludes the first data,
A microcomputer having a cache means for holding the first data out of the first data and the second data.
前記キャッシュ手段は、前記CPUおよび前記アクセラレータから前記メモリへのライトアクセス要求の際に、前記ライトアクセス要求のデータを保持するかどうかを判定する機能を有することを特徴とするマイクロコンピュータ。 The microcomputer according to claim 1.
The microcomputer having a function of determining whether to hold data of the write access request when a write access request from the CPU and the accelerator to the memory is made.
前記アクセラレータは、前記メモリへライトアクセスする際に、前記キャッシュ手段に対して保持要求を出す機能を有することを特徴とするマイクロコンピュータ。 The microcomputer according to claim 2.
The microcomputer has a function of issuing a holding request to the cache unit when performing write access to the memory.
前記キャッシュ手段は、前記アクセラレータからの前記メモリへのライトアクセスの際に出力される保持要求により、前記アクセラレータから出力されるデータを保持するかどうかを判定する機能を有することを特徴とするマイクロコンピュータ。 The microcomputer according to claim 3.
The microcomputer has a function of determining whether or not to hold data output from the accelerator in response to a holding request output at the time of write access to the memory from the accelerator. .
前記キャッシュ手段は、前記CPUおよび前記アクセラレータからの前記メモリへのライトアクセスの際に、前記CPUおよび前記アクセラレータから出力されるアドレスにより前記データを保持するかどうかを判定する機能を有することを特徴とするマイクロコンピュータ。 The microcomputer according to claim 2.
The cache unit has a function of determining whether to hold the data based on an address output from the CPU and the accelerator during a write access to the memory from the CPU and the accelerator. A microcomputer to do.
前記キャッシュ手段は、前記アクセラレータから前記メモリへのリードアクセス要求の際に、前記キャッシュ手段が前記リードアクセス要求のデータを保持している場合には、前記キャッシュ手段が前記データを前記アクセラレータに出力する機能を有することを特徴とするマイクロコンピュータ。 The microcomputer according to claim 1.
The cache means outputs the data to the accelerator when the cache means holds the data of the read access request at the time of a read access request from the accelerator to the memory. A microcomputer having a function.
前記CPUおよび前記アクセラレータからの前記メモリへのアクセスを制御するメモリコントローラを有し、
前記CPUおよび前記アクセラレータからのアクセス要求に対して優先順位を持ち、
前記メモリコントローラは、前記優先順位に従って前記CPUおよび前記アクセラレータからのアクセス要求を処理する機能を有することを特徴とするマイクロコンピュータ。 The microcomputer according to claim 1.
A memory controller for controlling access to the memory from the CPU and the accelerator;
Has priority for access requests from the CPU and the accelerator,
The microcomputer having a function of processing an access request from the CPU and the accelerator according to the priority order.
前記メモリは、SDRAMまたはDDR−SDRAMであり、
前記メモリコントローラは、前記CPUおよび前記アクセラレータからのアクセス要求に対して、前記メモリの同一バンクおよび同一ローアドレスに対するアクセスを連続して行う機能を有することを特徴とするマイクロコンピュータ。 The microcomputer according to claim 7, wherein
The memory is SDRAM or DDR-SDRAM,
The microcomputer having a function of continuously accessing the same bank and the same row address of the memory in response to an access request from the CPU and the accelerator.
前記メモリコントローラは、前記CPUおよび前記アクセラレータからのアクセス要求のうち、同一アドレスへのアクセスに対し、依存関係を管理して前記メモリへのアクセスの一貫性を保つ機能を有することを特徴とするマイクロコンピュータ。 The microcomputer according to claim 8, wherein
The memory controller has a function of managing dependency relations and maintaining consistency of access to the memory with respect to accesses to the same address among access requests from the CPU and the accelerator. Computer.
前記メモリは、前記マイクロコンピュータの外部に有することを特徴とするマイクロコンピュータ。 The microcomputer according to claim 1.
The microcomputer having the memory outside the microcomputer.
前記メモリは、前記マイクロコンピュータの内部に有することを特徴とするマイクロコンピュータ。 The microcomputer according to claim 1.
The microcomputer having the memory inside the microcomputer.
前記CPUは、内部にキャッシュを有することを特徴とするマイクロコンピュータ。 The microcomputer according to claim 1.
The microcomputer has a cache therein.
前記マイクロコンピュータは、外部のメモリと接続され、
前記外部のメモリには、プログラムまたはワークエリアの領域が形成されることを特徴とするマイクロコンピュータ。 The microcomputer according to claim 12, wherein
The microcomputer is connected to an external memory;
A microcomputer having a program or work area formed in the external memory.
前記外部のメモリには、前記アクセラレータのデータ領域が形成されることを特徴とするマイクロコンピュータ。 The microcomputer according to claim 13.
The microcomputer according to claim 1, wherein a data area of the accelerator is formed in the external memory.
前記CPUの内部の前記キャッシュは、スヌープ機能を持つことを特徴とするマイクロコンピュータ。 The microcomputer according to claim 12, wherein
The microcomputer having a snoop function in the cache inside the CPU.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005216995A JP4796346B2 (en) | 2004-07-28 | 2005-07-27 | Microcomputer |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004219563 | 2004-07-28 | ||
JP2004219563 | 2004-07-28 | ||
JP2005216995A JP4796346B2 (en) | 2004-07-28 | 2005-07-27 | Microcomputer |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006065850A true JP2006065850A (en) | 2006-03-09 |
JP4796346B2 JP4796346B2 (en) | 2011-10-19 |
Family
ID=36112240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005216995A Expired - Fee Related JP4796346B2 (en) | 2004-07-28 | 2005-07-27 | Microcomputer |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4796346B2 (en) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008108055A (en) * | 2006-10-25 | 2008-05-08 | Sony Corp | Semiconductor chip |
JP2011138401A (en) * | 2009-12-28 | 2011-07-14 | Fujitsu Ltd | Processor system, method of controlling the same, and control circuit |
JP2011199804A (en) * | 2010-03-24 | 2011-10-06 | Seiko Epson Corp | Image display apparatus, projector, and data acquiring method in image display apparatus |
JP2013531296A (en) * | 2010-06-24 | 2013-08-01 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Data access management in hybrid memory server |
US8954490B2 (en) | 2010-06-24 | 2015-02-10 | International Business Machines Corporation | Speculative and coordinated data access in a hybrid memory server |
JP2017215655A (en) * | 2016-05-30 | 2017-12-07 | 京セラドキュメントソリューションズ株式会社 | Electronic apparatus and processing execution program |
CN107450970A (en) * | 2016-05-30 | 2017-12-08 | 京瓷办公信息系统株式会社 | Can be according to the electronic equipment that hardware is utilized using priority of processor |
JP2018106573A (en) * | 2016-12-28 | 2018-07-05 | 富士通株式会社 | Storage control apparatus and control program |
JP2018120307A (en) * | 2017-01-23 | 2018-08-02 | Necプラットフォームズ株式会社 | Accelerator processing management apparatus, host apparatus, accelerator processing execution system, method and program |
JP2018165913A (en) * | 2017-03-28 | 2018-10-25 | 富士通株式会社 | Arithmetic processing apparatus, information processing apparatus, and control method for arithmetic processing apparatus |
JP2019126655A (en) * | 2018-01-26 | 2019-08-01 | キヤノン株式会社 | Radiographic system, medical image capturing system, radiographic method, and program |
JP2021062296A (en) * | 2021-01-27 | 2021-04-22 | キヤノン株式会社 | Radiographic system, radiographic method, and program |
JP2021534506A (en) * | 2018-08-20 | 2021-12-09 | シーメンス アクチエンゲゼルシヤフトSiemens Aktiengesellschaft | Modular Acceleration Module for Artificial Intelligence Based on Programmable Logic Controller |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH021043A (en) * | 1987-10-30 | 1990-01-05 | Hitachi Ltd | Data processing system and microprocessor to be used therefor |
JPH02226447A (en) * | 1989-01-13 | 1990-09-10 | Internatl Business Mach Corp <Ibm> | Computer system and memory access therefor |
JPH04130551A (en) * | 1990-09-20 | 1992-05-01 | Fujitsu Ltd | Cache control method |
JPH04195576A (en) * | 1990-11-28 | 1992-07-15 | Nec Corp | Cache memory system |
JP2002024202A (en) * | 2000-07-10 | 2002-01-25 | Mitsubishi Electric Corp | System lsi |
JP2002185470A (en) * | 2000-12-19 | 2002-06-28 | Nec Corp | Lan connection system |
JP2002278834A (en) * | 2001-03-21 | 2002-09-27 | Nec Corp | Cache memory device and data processor provided with the same |
WO2003052588A2 (en) * | 2001-12-14 | 2003-06-26 | Koninklijke Philips Electronics N.V. | Data processing system |
-
2005
- 2005-07-27 JP JP2005216995A patent/JP4796346B2/en not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH021043A (en) * | 1987-10-30 | 1990-01-05 | Hitachi Ltd | Data processing system and microprocessor to be used therefor |
JPH02226447A (en) * | 1989-01-13 | 1990-09-10 | Internatl Business Mach Corp <Ibm> | Computer system and memory access therefor |
JPH04130551A (en) * | 1990-09-20 | 1992-05-01 | Fujitsu Ltd | Cache control method |
JPH04195576A (en) * | 1990-11-28 | 1992-07-15 | Nec Corp | Cache memory system |
JP2002024202A (en) * | 2000-07-10 | 2002-01-25 | Mitsubishi Electric Corp | System lsi |
JP2002185470A (en) * | 2000-12-19 | 2002-06-28 | Nec Corp | Lan connection system |
JP2002278834A (en) * | 2001-03-21 | 2002-09-27 | Nec Corp | Cache memory device and data processor provided with the same |
WO2003052588A2 (en) * | 2001-12-14 | 2003-06-26 | Koninklijke Philips Electronics N.V. | Data processing system |
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008108055A (en) * | 2006-10-25 | 2008-05-08 | Sony Corp | Semiconductor chip |
JP2011138401A (en) * | 2009-12-28 | 2011-07-14 | Fujitsu Ltd | Processor system, method of controlling the same, and control circuit |
JP2011199804A (en) * | 2010-03-24 | 2011-10-06 | Seiko Epson Corp | Image display apparatus, projector, and data acquiring method in image display apparatus |
US10585593B2 (en) | 2010-06-24 | 2020-03-10 | International Business Machines Corporation | Data access management in a hybrid memory server |
US10592118B2 (en) | 2010-06-24 | 2020-03-17 | International Business Machines Corporation | Hierarchical pre-fetch pipelining in a hybrid memory server |
US10831375B2 (en) | 2010-06-24 | 2020-11-10 | International Business Machines Corporation | Hierarchical pre-fetch pipelining in a hybrid memory server |
US8954490B2 (en) | 2010-06-24 | 2015-02-10 | International Business Machines Corporation | Speculative and coordinated data access in a hybrid memory server |
US10222999B2 (en) | 2010-06-24 | 2019-03-05 | International Business Machines Corporation | Hierarchical pre-fetch pipelining in a hybrid memory server |
US9418235B2 (en) | 2010-06-24 | 2016-08-16 | International Business Machines Corporation | Hierarchical pre-fetch pipelining in a hybrid memory server |
US9542322B2 (en) | 2010-06-24 | 2017-01-10 | International Business Machines Corporation | Data access management in a hybrid memory server |
US8898324B2 (en) | 2010-06-24 | 2014-11-25 | International Business Machines Corporation | Data access management in a hybrid memory server |
JP2013531296A (en) * | 2010-06-24 | 2013-08-01 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Data access management in hybrid memory server |
US9857987B2 (en) | 2010-06-24 | 2018-01-02 | International Business Machines Corporation | Hierarchical pre-fetch pipelining in a hybrid memory server |
US9933949B2 (en) | 2010-06-24 | 2018-04-03 | International Business Machines Corporation | Data access management in a hybrid memory server |
US10228863B2 (en) | 2010-06-24 | 2019-03-12 | International Business Machines Corporation | Hierarchical pre-fetch pipelining in a hybrid memory server |
US10452276B2 (en) | 2010-06-24 | 2019-10-22 | International Business Machines Corporation | Hierarchical pre-fetch pipelining in a hybrid memory server |
US10235051B2 (en) | 2010-06-24 | 2019-03-19 | International Business Machines Corporation | Data access management in a hybrid memory server |
US8914528B2 (en) | 2010-06-24 | 2014-12-16 | International Business Machines Corporation | Multiplexing users and enabling virtualization on a hybrid system |
US9069977B2 (en) | 2010-06-24 | 2015-06-30 | International Business Machines Corporation | Hybrid server with heterogeneous memory |
US9952774B2 (en) | 2010-06-24 | 2018-04-24 | International Business Machines Corporation | Hierarchical pre-fetch pipelining in a hybrid memory server |
CN107450970A (en) * | 2016-05-30 | 2017-12-08 | 京瓷办公信息系统株式会社 | Can be according to the electronic equipment that hardware is utilized using priority of processor |
JP2017215655A (en) * | 2016-05-30 | 2017-12-07 | 京セラドキュメントソリューションズ株式会社 | Electronic apparatus and processing execution program |
CN107450970B (en) * | 2016-05-30 | 2020-07-03 | 京瓷办公信息系统株式会社 | Electronic device capable of utilizing hardware according to utilization priority of processor |
JP2018106573A (en) * | 2016-12-28 | 2018-07-05 | 富士通株式会社 | Storage control apparatus and control program |
JP2018120307A (en) * | 2017-01-23 | 2018-08-02 | Necプラットフォームズ株式会社 | Accelerator processing management apparatus, host apparatus, accelerator processing execution system, method and program |
JP2018165913A (en) * | 2017-03-28 | 2018-10-25 | 富士通株式会社 | Arithmetic processing apparatus, information processing apparatus, and control method for arithmetic processing apparatus |
JP2019126655A (en) * | 2018-01-26 | 2019-08-01 | キヤノン株式会社 | Radiographic system, medical image capturing system, radiographic method, and program |
CN110074802A (en) * | 2018-01-26 | 2019-08-02 | 佳能株式会社 | Radiation imaging system, medical imaging capture systems and method and storage medium |
US10888298B2 (en) | 2018-01-26 | 2021-01-12 | Canon Kabushiki Kaisha | Radiographic imaging system, medical image capturing system, medical image capturing method, and storage medium |
CN110074802B (en) * | 2018-01-26 | 2024-02-02 | 佳能株式会社 | Radiation imaging system, medical image capturing system and method, and storage medium |
JP2021534506A (en) * | 2018-08-20 | 2021-12-09 | シーメンス アクチエンゲゼルシヤフトSiemens Aktiengesellschaft | Modular Acceleration Module for Artificial Intelligence Based on Programmable Logic Controller |
JP2021062296A (en) * | 2021-01-27 | 2021-04-22 | キヤノン株式会社 | Radiographic system, radiographic method, and program |
Also Published As
Publication number | Publication date |
---|---|
JP4796346B2 (en) | 2011-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4796346B2 (en) | Microcomputer | |
US20060064546A1 (en) | Microprocessor | |
US11347649B2 (en) | Victim cache with write miss merging | |
JP5733701B2 (en) | Packet processing optimization | |
US9239789B2 (en) | Method and apparatus for monitor and MWAIT in a distributed cache architecture | |
US9218290B2 (en) | Data caching in a network communications processor architecture | |
US9183145B2 (en) | Data caching in a network communications processor architecture | |
KR101379524B1 (en) | Streaming translation in display pipe | |
US7600080B1 (en) | Avoiding deadlocks in a multiprocessor system | |
US8407422B2 (en) | Address translation caching and I/O cache performance improvement in virtualized environments | |
US20110173393A1 (en) | Cache memory, memory system, and control method therefor | |
JP2001167077A (en) | Data access method for network system, network system and recording medium | |
US20090006668A1 (en) | Performing direct data transactions with a cache memory | |
TWI502346B (en) | Directory cache allocation based on snoop response information | |
US6496917B1 (en) | Method to reduce memory latencies by performing two levels of speculation | |
US7302528B2 (en) | Caching bypass | |
US9606926B2 (en) | System for pre-fetching data frames using hints from work queue scheduler | |
US7535918B2 (en) | Copy on access mechanisms for low latency data movement | |
US7746856B2 (en) | Method, apparatus and system for optimizing packet throughput for content processing systems on chips | |
JP2001147858A (en) | Hybrid coherence protocol | |
JP2009237722A (en) | Cache controller and information processing apparatus | |
US20060004965A1 (en) | Direct processor cache access within a system having a coherent multi-processor protocol | |
US20090089559A1 (en) | Method of managing data movement and cell broadband engine processor using the same | |
US10963409B2 (en) | Interconnect circuitry and a method of operating such interconnect circuitry | |
US8732351B1 (en) | System and method for packet splitting |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070514 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20100528 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100706 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100713 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100908 |
|
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: 20110705 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110729 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140805 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |