JP2006065850A - Microcomputer - Google Patents

Microcomputer Download PDF

Info

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
Application number
JP2005216995A
Other languages
Japanese (ja)
Other versions
JP4796346B2 (en
Inventor
Yutaka Arita
有田  裕
Yasuhiro Nakatsuka
康弘 中塚
Kotaro Shimamura
光太郎 島村
Yasuo Watanabe
泰夫 渡邊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2005216995A priority Critical patent/JP4796346B2/en
Publication of JP2006065850A publication Critical patent/JP2006065850A/en
Application granted granted Critical
Publication of JP4796346B2 publication Critical patent/JP4796346B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a microcomputer capable of minimizing a bottleneck caused by data linkage at memory access generated when a CPU and an accelerator are operated in cooperation with each other to enhance multimedia processing performance. <P>SOLUTION: This multimedia microcomputer 1 has the CPU 11 and the accelerator 12 and is adapted to execute multimedia processing by cooperating the CPU 11 with the accelerator 12. In order to eliminate a bottleneck by memory access generated for implementing data linkage between the CPU 11 and the accelerator 12 via a memory 2, an I/O-specific cache 14 accessible by the CPU 11 and the accelerator 12 in common is formed in front of the memory 2, and data required for data linkage are kept in the I/O-specific cache 14, whereby the speed of the data linkage between the CPU 11 and the accelerator 12 is increased and the speed-up of multimedia processing is obtained. <P>COPYRIGHT: (C)2006,JPO&NCIPI

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がメモリに対して速くアクセスすることを可能とした技術が開示されている。
特開平11−161598号公報 特開2001−216194号公報
For example, Patent Document 1 and Patent Document 2 are examples of techniques for accessing a memory from a CPU or an accelerator. Patent Document 1 discloses a technique that enables an accelerator to quickly access a memory. Patent Document 2 discloses a technique that enables a CPU to quickly access a memory.
Japanese Patent Laid-Open No. 11-161598 JP 2001-216194 A

ところで、前記のようなマルチメディア処理を行うマイコンに関して、本発明者が検討した結果、以下のようなことが明らかとなった。   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 multimedia microcomputer 1 of the present embodiment is characterized by a CPU 11 that operates as a master, a plurality of accelerators 12 (12-1 to 12-n) that operate as slaves, and the present invention. It is composed of an I / O dedicated cache 14, a bus 13 for connecting them, and a memory controller 15. A memory 2 is connected to the outside of the multimedia microcomputer 1.

アクセラレータ12は、CPU11を補助する役目を持ち、CPU11が不得意な時間のかかる処理をハードウエアで高速に実行する機能を持つ。また、メモリコントローラ15は、I/O専用キャッシュ14とメモリ2とに接続され、バス13及びI/O専用キャッシュ14を介してから来るメモリアクセス要求に対し、メモリ2に対して、SDRAMまたはDDR−SDRAMコマンドを出してアクセスを行う機能を持つ。   The accelerator 12 has a function of assisting the CPU 11 and has a function of executing a time-consuming process that the CPU 11 is not good at using hardware. The memory controller 15 is connected to the I / O dedicated cache 14 and the memory 2, and in response to a memory access request coming via the bus 13 and the I / O dedicated cache 14, the memory controller 15 sends SDRAM or DDR to the memory 2. -It has a function of issuing an SDRAM command to access.

図2に示すように、メモリ2には、CPU11で実行されるマルチメディア処理に関する一連の手続き処理を記述したプログラム21と、ワークエリア22と、さらには、アクセラレータ12毎に処理するデータを格納するデータ領域23(23−1〜23−n)がある。また、複数のアクセラレータ12間で共通のデータ領域23をアクセスすることもある。   As shown in FIG. 2, the memory 2 stores a program 21 describing a series of procedure processes related to multimedia processing executed by the CPU 11, a work area 22, and data to be processed for each accelerator 12. There is a data area 23 (23-1 to 23-n). In addition, a common data area 23 may be accessed among a plurality of accelerators 12.

図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 memory 2 is connected to the outside as shown in FIG. 1, the memory 2 is provided inside, and the memory 2 and the CPU 11 The multimedia microcomputer 10 in which the plurality of accelerators 12 (12-1 to 12-n), the I / O dedicated cache 14, the bus 13, and the memory controller 15 are integrated is also possible.

続いて、前記図1に示したマルチメディアマイコン1において、I/O専用キャッシュ14がOFFの場合の動作について説明する。なお、図3に示したマルチメディアマイコン10においても同様である。   Next, an operation when the I / O dedicated cache 14 is OFF in the multimedia microcomputer 1 shown in FIG. 1 will be described. The same applies to the multimedia microcomputer 10 shown in FIG.

CPU11は、バス13、I/O専用キャッシュ14、メモリコントローラ15を介し、メモリ2からプログラム21及びワークエリア22、データ領域23内のデータをアクセスして処理を行う。このとき、CPU11はプログラム21に従い、アクセラレータ12で処理すべきデータをデータ領域23へセットし、アクセラレータ12へ処理要求し、アクセラレータ12での処理結果をデータ領域23から読み出しを行うことにより、MPEGやMP3をはじめとしたマルチメディア処理が実現される。   The CPU 11 performs processing by accessing the program 21, the work area 22, and the data in the data area 23 from the memory 2 via the bus 13, the I / O dedicated cache 14, and the memory controller 15. At this time, the CPU 11 sets data to be processed by the accelerator 12 in the data area 23 according to the program 21, requests processing to the accelerator 12, and reads the processing result in the accelerator 12 from the data area 23, so that MPEG or Multimedia processing including MP3 is realized.

このように、マルチメディアマイコン1では、CPU11とアクセラレータ12間でメモリ2内のデータ領域23を介したデータ連携を行い、マルチメディア処理が実行される。そのため、CPU11やアクセラレータ12の処理速度に比べ、アクセス速度の遅いメモリ2がマルチメディア処理におけるボトルネックとなり、マルチメディア処理性能の向上が難しくなってきた。そこで、本実施の形態では、後述するように、CPU11とアクセラレータ12間のデータのやり取りをスムーズに行うことで、マルチメディア処理の高速化を実現することが可能となる。   In this way, in the multimedia microcomputer 1, data processing is performed between the CPU 11 and the accelerator 12 via the data area 23 in the memory 2, and multimedia processing is executed. Therefore, the memory 2 having a slower access speed than the processing speed of the CPU 11 and the accelerator 12 has become a bottleneck in multimedia processing, and it has become difficult to improve multimedia processing performance. Therefore, in the present embodiment, as will be described later, it is possible to realize high-speed multimedia processing by smoothly exchanging data between the CPU 11 and the accelerator 12.

すなわち、前記図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 cache 14 is placed on the memory controller 15 side so that it can be accessed from both the CPU 11 and the accelerator 12, and the cooperation data between the CPU 11 and the accelerator 12 is held. As a result, data linkage between the CPU 11 and the accelerator 12 is performed by the I / O dedicated cache 14 that can be accessed at a higher speed, and the overhead caused by waiting for memory access is greatly reduced, so that smooth multimedia processing can be executed. .

また、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 CPU 11 and the accelerator 12 is not all data to be processed by the accelerator 12, but only a part of the header, commands to the accelerator 12, and the like. The cache 14 holds only linkage data that is data necessary for linkage, and the data body that is data processed only by the CPU 11 and only the accelerator 12 is placed on the memory 2 instead of the I / O dedicated cache 14. The amount of data held in the I / O dedicated cache 14 is suppressed, and effective use of the I / O dedicated cache 14 and improvement of the hit rate are realized.

ここで注目すべきは、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 cache 14 is data that is always written into the memory 2 by the CPU 11 or the accelerator 12. Therefore, the I / O dedicated cache 14 only needs to determine whether or not to cache only for write access to the memory 2. For this determination, there is a method of using the address of the write access and the I / O. There are two methods using a cache request signal to the dedicated cache 14. Note that the cache determination in the write access from the CPU 11 can use the determination using the address, and the cache determination in the write access from the accelerator 12 can use both the determination using the address and the determination based on the cache request signal. .

一方、メモリ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 memory 2, if a hit occurs, the data is output from the I / O dedicated cache 14, but in the case of a cache miss, the I / O dedicated cache 14 only passes the access to the memory 2, and the memory The read data from 2 is not cached. This is because the CPU 11 and the accelerator 12 have a dedicated cache or buffer, and read data from the memory 2 is held in the dedicated cache or buffer. Further, in order to cope with the case where the bus 13 is a split bus, the I / O dedicated cache 14 causes a cache miss, and even if the memory 2 is being read-accessed, a cache hit is detected in response to the next access request. In this case, a function for outputting the hit data to the bus 13 is required. This is where the I / O dedicated cache 14 is significantly different from conventional caches and buffers.

また、もうひとつの特徴は、I/O専用キャッシュ14はキャッシュであり、CPU11で実行されるプログラム21は、このI/O専用キャッシュ14の存在を意識することなく、メモリ2へのアクセスとして処理できる点である。   Another feature is that the I / O dedicated cache 14 is a cache, and the program 21 executed by the CPU 11 is processed as an access to the memory 2 without being aware of the existence of the I / O dedicated cache 14. This is a possible point.

さらに、メモリ2へのアクセス効率を向上させるため、I/O専用キャッシュ14では、CPU11やアクセラレータ12から要求されるアクセスサイズが、メモリ2のアクセスサイズより小さい場合、本I/O専用キャッシュ14を用いてまとめてメモリ2とアクセスすることで、メモリ2へのアクセス回数を削減し、メモリ待ちによるボトルネックを削減することが可能となる。   Further, in order to improve the access efficiency to the memory 2, the I / O dedicated cache 14 uses the I / O dedicated cache 14 when the access size requested from the CPU 11 or the accelerator 12 is smaller than the access size of the memory 2. By using and collectively accessing the memory 2, it is possible to reduce the number of accesses to the memory 2 and to reduce bottlenecks due to memory waiting.

次に、図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 multimedia microcomputer 1, the CPU 11 and the accelerator 12 cooperate to perform multimedia processing, the processing executed by the CPU 11 (1000), and the processing executed by the accelerator 12 (1100). ). The multimedia processing executed by the CPU 11 includes two processes, a pre-process (1001) and a post-process (1009), which are performed before and after the process (1005) by the accelerator 12, respectively.

まず、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 CPU 11 performs preprocessing (1001), the CPU 11 writes the data in the data area 23 in order to pass the data to the accelerator 12 (1002), and issues an activation request to the accelerator 12 (1003). In response to this, the accelerator 12 reads data from the data area 23 (1004), performs processing in the accelerator 12 (1005), writes the processing result back to the data area 23 (1006), and then processes it to the CPU 11. An end report is raised (1007). When the CPU 11 receives the processing end report from the accelerator 12, the CPU 11 reads the processing result by the accelerator 12 from the data area 23 (1008) and performs post-processing (1009). Further, depending on the processing contents, there are cases where there is no pre-processing (1001) and processing is started from the accelerator 12, or there is no post-processing (1009) and processing ends by the accelerator 12.

このように、CPU11とアクセラレータ12がデータ領域23を介してデータ連携を行い、マルチメディア処理を実行している。   As described above, the CPU 11 and the accelerator 12 perform data cooperation via the data area 23 and execute multimedia processing.

次に、図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 CPU 11 performs preprocessing (1001), and writes the result data into the data area 23 for processing by the accelerator 12 (1002, 101). At this time, the I / O dedicated cache 14 caches the write data from the CPU 11 to the data area 23 and writes the write data to the data area 23 in the memory 2 (102). At this time, the I / O dedicated cache 14 determines whether the data to be cached is based on whether it is the data area 23 based on the address of the write destination output from the CPU 11 together with the write data.

その後、CPU11は、アクセラレータ12に対して起動要求信号を出力する(1003)。それを受けて、アクセラレータ12は起動し、データ領域23から当該データを読み込む(1004)。このとき、I/O専用キャッシュ14上に当該書き込みデータがキャッシュされている部分の連携データは、I/O専用キャッシュ14から読み出し(103)、I/O専用キャッシュ14にキャッシュされていない部分のデータ本体は、メモリ2のデータ領域23から直接読み出し(104)、アクセラレータ12は読み出された当該データに対して処理(1005)を行う。   Thereafter, the CPU 11 outputs an activation request signal to the accelerator 12 (1003). In response to this, the accelerator 12 is activated and reads the data from the data area 23 (1004). At this time, the linkage data of the portion where the write data is cached on the I / O dedicated cache 14 is read from the I / O dedicated cache 14 (103), and the portion of the linkage data not cached in the I / O dedicated cache 14 is read. The data body is directly read from the data area 23 of the memory 2 (104), and the accelerator 12 performs processing (1005) on the read data.

続いて、図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 cache 14 caches the write data from the accelerator 12 to the data area 23 and writes the processed data to the data area 23 in the memory 2 (112). At this time, the I / O dedicated cache 14 determines whether the data to be cached is based on a cache request signal output from the accelerator 12 together with the processing data or a write destination address.

その後、アクセラレータ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 accelerator 12, the CPU 11 reads the processing data from the data area 23 (1008). At this time, since the data processed by the CPU 11 is the cooperative data of the portion where the processing data is cached on the I / O dedicated cache 14, the CPU 11 reads only from the I / O dedicated cache 14 (113). Post-processing (1009) can be performed. At this time, the data is read from the data area 23 of the memory 2 only when there is a portion that is not cached due to the capacity of the I / O dedicated cache 14 (114).

このように、メモリ2よりもアクセスレイテンシが短い高速なI/O専用キャッシュ14を介して、CPU11とアクセラレータ12がデータ連携を行うことで、メモリ2内のデータ領域23を介したデータ連携に比べて、オーバーヘッドとなるアクセス待ち時間を大幅に削減でき、マルチメディア処理の高速化が実現される。   As described above, the CPU 11 and the accelerator 12 perform data cooperation through the high-speed I / O dedicated cache 14 having a shorter access latency than the memory 2, thereby comparing with data cooperation through the data area 23 in the memory 2. Thus, the access waiting time, which is an overhead, can be greatly reduced, and the multimedia processing speed can be increased.

さらに、CPU11が後処理を行う場合、CPU11がアクセラレータ12による処理データをすべて読み出すことは少ないことに注目し、当該処理データをメモリ2に書き込む際に、CPU11が読み出すデータである連携データの部分をI/O専用キャッシュ14にキャッシュし、それ以外のデータ本体は、I/O専用キャッシュ14上にキャッシュせず、メモリ2内のデータ領域23に直接書き込む。   Further, when the CPU 11 performs post-processing, the CPU 11 rarely reads out all the processing data by the accelerator 12, and when the processing data is written in the memory 2, the portion of the cooperation data that is the data read by the CPU 11 is changed. The data is cached in the I / O dedicated cache 14, and the other data body is not cached on the I / O dedicated cache 14, but is directly written in the data area 23 in the memory 2.

また、アクセラレータ12にて処理を行う場合、アクセラレータ12は、基本的にデータ領域23へのアクセスは連続したアドレスに対して行われる。そこで、メモリ2は、SDRAMやDDR−SDRAMなどのスループットが高速であるメモリであることに注目し、データ領域23の最初のみをI/O専用キャッシュ14に保持し、あとは、メモリ2の連続アクセス性能に期待する方法を採る。   When processing is performed by the accelerator 12, the accelerator 12 basically accesses the data area 23 for consecutive addresses. Therefore, paying attention to the memory 2 that is a high-speed memory such as SDRAM or DDR-SDRAM, only the first of the data area 23 is held in the I / O-dedicated cache 14, and then the continuation of the memory 2 is continued. Use the method expected for access performance.

以上の方法を採ることで、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 cache 14 and realize effective use of the I / O dedicated cache 14.

次に、図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 bus 13 includes an address bus 131 and a data bus 132. The address bus 131 includes an access destination address 1311, an access signal 1312, and a cache request signal 1313 from the accelerator 12. The data bus 132 includes a read data bus 1321 and a write data bus 1322.

図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 cache 14 is connected to the bus 13 and the memory controller 15 and includes a register 141, a determination circuit 142, and a cache 143. Further, a cache request 144 is output from the determination circuit 142 to the cache 143, and an area register data signal 145 is output from the register 141 to the determination circuit 142. Further, in the I / O dedicated cache 14, the address bus 131 is connected to the determination circuit 142 and the cache 143, and the data bus 132 is connected to the cache 143.

図9に示すように、レジスタ141は、CPU11からアクセス可能であり、I/O専用キャッシュ14の状態及び設定値を保持する複数のレジスタから構成されている。このレジスタ141は、I/O専用キャッシュ14の有効・無効をセットさせる動作モードレジスタ1411、ライトバックモードやライトスルーモードなどのキャッシュ143の動作モードを規定するキャッシュモードレジスタ1412、及びI/O専用キャッシュ14に保持させるデータエリア(アドレス範囲)を指定する連携データエリアレジスタ1413から構成されている。   As illustrated in FIG. 9, the register 141 is accessible from the CPU 11, and includes a plurality of registers that hold the state and setting values of the I / O dedicated cache 14. This register 141 is an operation mode register 1411 for setting validity / invalidity of the I / O dedicated cache 14, a cache mode register 1412 for defining the operation mode of the cache 143 such as a write back mode and a write through mode, and an I / O dedicated register. It is composed of a cooperative data area register 1413 for designating a data area (address range) to be held in the cache 14.

この連携データエリアレジスタ1413では、1つの連携データエリアは、連携データエリアアドレスレジスタ1414(1414−1〜1414−m)と、連携データエリアマスクレジスタ1415(1415−1〜1415−m)を用いて表し、この2つのレジスタのセットを複数持つことで、複数の連携データエリアをサポート可能とする。また、連携データエリアマスクレジスタ1415は、連携データエリアアドレスレジスタ1414とアドレス1311とで値の比較を行う際に、比較すべきビットを表している。これにより、2つのレジスタ1414と1415とで、連携データエリアを表現することが可能となる。他には、連携データエリア開始アドレスレジスタと連携データエリア終了アドレスレジスタのセットによる連携データエリアの表現もある。   In this cooperative data area register 1413, one cooperative data area uses a cooperative data area address register 1414 (1414-1 to 1414-m) and a cooperative data area mask register 1415 (1415-1 to 1415-m). By having a plurality of sets of these two registers, a plurality of linked data areas can be supported. The cooperative data area mask register 1415 represents bits to be compared when the cooperative data area address register 1414 and the address 1311 compare values. As a result, the two registers 1414 and 1415 can represent the linked data area. In addition, there is a representation of a linked data area by setting a linked data area start address register and a linked data area end address register.

この連携データエリアレジスタ1413内のこれらのレジスタ値はエリアレジスタデータ信号145として、判定回路142に出力される。   These register values in the cooperative data area register 1413 are output to the determination circuit 142 as an area register data signal 145.

なお、このレジスタ141に対するCPU11からのアクセス経路に関しては、図10に示すように、バス13に接続された構成(a)と、バス13とは異なるレジスタアクセス用バス経由でバス13に接続される構成(b)がある。すなわち、図10(a)の構成では、レジスタ141がバス13に接続され、このバス13を通じてCPU11からアクセスされる。一方、図10(b)の構成では、レジスタ141がレジスタアクセス用バスを経由してバス13に接続され、このレジスタアクセス用バスを経由してCPU11からアクセスされる。   The access path from the CPU 11 to the register 141 is connected to the bus 13 via a register access bus that is different from the configuration (a) connected to the bus 13 and the bus 13 as shown in FIG. There is a configuration (b). That is, in the configuration of FIG. 10A, the register 141 is connected to the bus 13 and accessed from the CPU 11 through this bus 13. On the other hand, in the configuration of FIG. 10B, the register 141 is connected to the bus 13 via the register access bus, and is accessed from the CPU 11 via this register access bus.

判定回路142は、CPU11及びアクセラレータ12からのメモリ2へのライトアクセスに対し、レジスタ141からのエリアレジスタデータ信号145、アドレスバス131及び、アクセラレータ12からのキャッシュ要求信号1313から、そのライトデータをキャッシュ143に保持させるかどうかの判定を行い、キャッシュ143に対してキャッシュ要求144を出力する。この判定方法は、図11に示すとおりである。   In response to a write access to the memory 2 from the CPU 11 and the accelerator 12, the determination circuit 142 caches the write data from the area register data signal 145 from the register 141, the address bus 131, and the cache request signal 1313 from the accelerator 12. It is determined whether or not the data is held in 143 and a cache request 144 is output to the cache 143. This determination method is as shown in FIG.

図11に示すように、まず、判定回路142は、バス13からメモリ2へのアクセス要求に対し、アクセス信号1312をチェックし、アクセスの種類を調べ(1421)、リードアクセスならば、キャッシュ要求144は無効とする(1426)。   As shown in FIG. 11, first, the determination circuit 142 checks the access signal 1312 in response to an access request from the bus 13 to the memory 2, checks the type of access (1421), and if it is a read access, the cache request 144 Is invalid (1426).

また、1421にて、ライトアクセスの場合、当該ライトアクセスのアドレス1311及び、レジスタ141からのエリアレジスタデータ信号145から、当該アドレスが、連携データエリア内であるかどうかを調べ(1422)、連携データエリア内ならば(Yes)、キャッシュ要求144は有効となる(1425)。   In the case of a write access at 1421, it is checked from the address 1311 of the write access and the area register data signal 145 from the register 141 whether or not the address is in the linked data area (1422). If it is within the area (Yes), the cache request 144 becomes valid (1425).

また、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 CPU 11, the cache request 144 becomes invalid (1426).

また、1423にて、アクセス要求元がアクセラレータ12ならば、当該アクセラレータ12からのキャッシュ要求信号1313が有効か無効かを調べ(1424)、有効ならば、キャッシュ要求144は有効となる(1425)。   If the access request source is the accelerator 12 at 1423, it is checked whether the cache request signal 1313 from the accelerator 12 is valid or invalid (1424). If valid, the cache request 144 is valid (1425).

また、1424にて、当該アクセラレータ12からのキャッシュ要求信号1313が無効ならば、キャッシュ要求144は無効となる(1426)。   If the cache request signal 1313 from the accelerator 12 is invalid at 1424, the cache request 144 is invalidated (1426).

続いて、前述したライトアクセスのアドレスが連携データエリア内であるかどうかの判定(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 address 1311 from the register 141 are input, and the linked data area address registers 1414-1 to 1414-m and the address 1311 are compared. The gates 1425-1 to 1425 -m that calculate the logical product of each bit by the cooperative data area address registers 1414-1 to 1414 -m and the cooperative data area mask register 1415, and the addresses 1311 and the cooperative data area mask register 1415. Only the bits to be compared are input to the comparators 1427-1 to 1427 -m by the gates 1426-1 to 1426 -m that calculate the logical product for each bit, and the total of the comparison results of the comparators 1427-1 to 1427 -m are input. A logical sum is calculated by the gate 1428, and it is determined whether or not the address 1311 is a cooperative data area.

以上により、判定回路142は、メモリ2へのアクセスが連携データエリアへのアクセスかどうかを判定し、キャッシュ143にキャッシュ要求144を出力する。キャッシュ143は、バス13及びメモリコントローラ15と接続されており、ライトバックまたはライトスルーキャッシュとして動作し、判定回路142からのキャッシュ要求144を受け、当該ライトデータをキャッシュする。   As described above, the determination circuit 142 determines whether the access to the memory 2 is an access to the cooperative data area, and outputs the cache request 144 to the cache 143. The cache 143 is connected to the bus 13 and the memory controller 15, operates as a write-back or write-through cache, receives a cache request 144 from the determination circuit 142, and caches the write data.

このキャッシュ143の構成を図13に示す。図13ではフルアソシアティブ方式で、N個のエントリを持ち、各エントリに保持しているアドレス情報、データ、制御情報がある。各エントリが保持するデータのサイズは、32Bや64Bぐらいである。また、制御情報は、エントリの入換えを行う際のLRU情報やエントリにデータが登録されているかどうかのValidビット及び、データサイズが更新されているかどうかを示すダーティビット(ライトバック時に使用)などがある。また、キャッシュヒットとは、当該アドレスが、本キャッシュ143のエントリに登録されている場合、キャッシュミスは、キャッシュ143に登録されていない場合のことを示す。   The configuration of the cache 143 is shown in FIG. In FIG. 13, there are N entries in the fully associative method, and there are address information, data, and control information held in each entry. The size of data held by each entry is about 32B or 64B. In addition, the control information includes LRU information when exchanging entries, a Valid bit indicating whether data is registered in the entry, a dirty bit indicating whether the data size has been updated, etc. There is. The cache hit indicates that the address is registered in the entry of the cache 143, and the cache miss is not registered in the cache 143.

このキャッシュ143の動作は、下記の5種類(ライトアクセスで3種類(a)−(1),(2),(3)、リードアクセスで2種類(b),(c))に分類される。   The operation of the cache 143 is classified into the following five types (three types (a)-(1), (2), (3) for write access and two types (b), (c) for read access). .

(a)−(1)ライトアクセスで、キャッシュ要求144が有効及び、キャッシュヒットの場合は、キャッシュ143に登録されている当該エントリのデータをデータライトバス133のライトデータで上書きを行い、ダーティビットをONにする。   (A)-(1) If the cache request 144 is valid and the cache hit is a write access, the data of the entry registered in the cache 143 is overwritten with the write data of the data write bus 133, and the dirty bit Set to ON.

(a)−(2)ライトアクセスで、キャッシュ要求144が有効及び、キャッシュミスでキャッシュ143に空いているエントリがある場合は、キャッシュ143の空いているエントリを探し、当該エントリにライトデータを登録する。これは、エントリを有効にし、アドレス情報にアドレス1311の値を書き込む。このとき、データライトバス1322からのライトデータサイズがエントリのデータサイズより小さい場合には、メモリ2より当該アドレスの内容データを読み出し、当該エントリのデータ情報に登録した後に、当該ライトデータを書き込む。   (A)-(2) If the cache request 144 is valid for write access and there is a free entry in the cache 143 due to a cache miss, the free entry in the cache 143 is searched and write data is registered in the entry. To do. This validates the entry and writes the value of address 1311 to the address information. At this time, if the write data size from the data write bus 1322 is smaller than the data size of the entry, the content data at the address is read from the memory 2 and registered in the data information of the entry, and then the write data is written.

(a)−(3)ライトアクセスで、キャッシュ要求144が有効及び、キャッシュミスでキャッシュ143に空いているエントリがない場合は、キャッシュ143の各エントリの制御情報にあるLRU情報を調べ、一番古いエントリを破棄し、このエントリに当該ライトデータを登録する。登録手順は、(a)−(2)と同じである。   (A)-(3) If the cache request 144 is valid for write access and there is no free entry in the cache 143 due to a cache miss, the LRU information in the control information of each entry in the cache 143 is examined, Discard the old entry and register the write data in this entry. The registration procedure is the same as (a)-(2).

(b)リードアクセスで、キャッシュ143にヒットした場合は、キャッシュ143に登録されている当該アドレスのエントリのデータ情報をデータリードバス1321に出力する。   (B) When the cache 143 is hit by read access, the data information of the entry of the address registered in the cache 143 is output to the data read bus 1321.

(c)リードアクセスで、キャッシュ143にてミスした場合は、メモリコントローラ15に、当該アドレスを出力し、メモリ2から当該アドレスに対応するデータを読み出し、データリードバス1321に出力する。なお、このとき読み出したデータをキャッシュ143には登録しない。   (C) If there is a miss in the cache 143 in read access, the address is output to the memory controller 15, data corresponding to the address is read from the memory 2, and output to the data read bus 1321. Note that the data read at this time is not registered in the cache 143.

上記処理にて、キャッシュ143に登録する際に、全てのエントリが使用中であった場合には、従来のキャッシュと同様にLRU等のアルゴリズムを用い、キャッシュ143から追い出すエントリを探す。このとき、キャッシュ143がライトバックモードの場合には、当該エントリのデータをメモリ2へ書き戻しを行う。   If all entries are in use when registered in the cache 143 in the above processing, an entry to be evicted from the cache 143 is searched using an algorithm such as LRU as in the conventional cache. At this time, if the cache 143 is in the write back mode, the data of the entry is written back to the memory 2.

以上の手順により、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 cache 14 holds the write data from the CPU 11 and the accelerator 12 in the cache 143, and realizes data linkage between the CPU 11 and the accelerator 12 in the I / O dedicated cache 14. It eliminates bottlenecks caused by data linkage and can speed up multimedia processing. Further, by holding only data that is really linked to the I / O dedicated cache 14, it is possible to improve the usage efficiency of the I / O dedicated cache 14 and to minimize the overhead due to a cache miss.

さらに、本I/O専用キャッシュ14の処理を高速化及びスプリットバスに対応するため、処理をパイプライン化し、図14に示すように3ステージ制を採る。なお、キャッシュミスによりメモリ2へのアクセス中のエントリに対しては、当該エントリへの登録処理が終了するまで、同一エントリへのアクセスは待たせ、メモリ競合においても、正しくメモリアクセスが行われるようにする。   Further, in order to increase the processing speed of the I / O dedicated cache 14 and support the split bus, the processing is pipelined and a three-stage system is adopted as shown in FIG. For an entry that is being accessed to the memory 2 due to a cache miss, the access to the same entry is kept waiting until the registration process for the entry is completed, so that the memory is correctly accessed even in a memory conflict. To.

すなわち、図14に示すように、ステージ1では、判定回路142がキャッシュ要求判定を行い、キャッシュ143がライトアクセス及びリードアクセスの時にヒット判定を行う。ステージ2では、キャッシュの動作において、ライトアクセスの時はヒットの場合にキャッシュ143のデータ更新、ミスの場合にメモリ2へのアクセスを行い、リードアクセスの時はヒットの場合にキャッシュ143からデータ出力、ミスの場合にメモリ2へのアクセスを行う。ステージ3では、キャッシュの動作において、ライトアクセスの時はミスの場合にキャッシュ143への登録を行い、リードアクセスの時はミスの場合にバス13へのデータ出力を行う。   That is, as shown in FIG. 14, in stage 1, the determination circuit 142 performs cache request determination, and the cache 143 performs hit determination when write access and read access are performed. In stage 2, in the cache operation, the cache 143 is updated in the case of a hit during a write access, the memory 2 is accessed in the case of a miss, and the data is output from the cache 143 in the case of a read access. In case of a miss, the memory 2 is accessed. In stage 3, in the cache operation, registration is made to the cache 143 if there is a miss during write access, and data is output to the bus 13 if there is a miss during read access.

これにより、メモリアクセス中においても、判定回路142によるキャッシュ要求判定や、キャッシュ143によるキャッシュ判定処理が行えるため、I/O専用キャッシュ14によるオーバーヘッドを小さくすることができる。   As a result, the cache request determination by the determination circuit 142 and the cache determination processing by the cache 143 can be performed even during memory access, so that the overhead by the I / O dedicated cache 14 can be reduced.

さらに、I/O専用キャッシュ14とメモリコントローラ15とを組合せて、さらに効率を向上させる本実施の形態の応用例を、以下において説明する。   Further, an application example of this embodiment in which the I / O dedicated cache 14 and the memory controller 15 are combined to further improve the efficiency will be described below.

次に、図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 cache 14 and the memory controller 15 will be described with reference to FIGS. FIG. 15 is a diagram illustrating a configuration of the memory controller. FIG. 16 is a diagram illustrating a configuration of a cache. FIG. 17 is a diagram illustrating a data structure of an access request.

まず、メモリコントローラ15に、以下の機能を持たせる。   First, the memory controller 15 has the following functions.

(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 cache 14 receives an access request, the CPU 11 and the accelerator 12 can move to the next processing. However, if the read access is delayed, the CPU 11 and the accelerator 12 wait for the memory. It is necessary to give priority to access. For this reason, in the present memory controller 15, only memory access is accelerated, and priority control for securing a bandwidth is performed only for read access.

さらに、注意すべき点は、帯域確保やOut−of−orderアクセスを行うことにより、メモリ2へのアクセス順序の入換えが発生する。そのため、アクセス順序どおりにアクセスしたのと同じ結果が得られるようにするメモリコンシステンシを保つことが重要となる。このメモリコンシステンシの維持には、以下の配慮が必要となる。   Further, it should be noted that the access order to the memory 2 is changed by performing bandwidth reservation or out-of-order access. For this reason, it is important to maintain a memory consistency so that the same result as that accessed in the access order can be obtained. The following considerations are necessary to maintain this memory consistency.

すなわち、異なるアドレスへの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 memory controller 15 is shown in FIG. As shown in FIG. 15, the memory controller 15 includes an access control circuit 151, a refresh control circuit 152, a priority read access request FIFO 153, a write access request FIFO 154, and a memory access control circuit 155. The read access request FIFO 153 includes a FIFO (153-1 to 153-n) for each priority.

また、I/O専用キャッシュ14内にあるキャッシュ143の構成を図16に示す。図16に示すように、キャッシュ143には、前記図13に示したN個の各エントリに保持しているアドレス情報、データ、制御情報に加えて、優先順位を示す優先度が登録されている。   FIG. 16 shows the configuration of the cache 143 in the I / O dedicated cache 14. As shown in FIG. 16, in the cache 143, in addition to the address information, data, and control information held in each of the N entries shown in FIG. 13, a priority indicating priority is registered. .

このような構成による本実施の形態の応用例では、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 CPU 11 and the accelerator 12 comes from the I / O dedicated cache 14. In response to this, the access control circuit 151 converts the access request format shown in FIG. This format consists of access attributes related to access requests and dependency information for maintaining memory consistency, and the access attributes are composed of a tag No for managing each access, a read / write signal, an address, and data. In addition, the dependency relationship information includes a tag No of a memory access request having a dependency relationship and a final bit indicating whether or not there is an access depending on itself.

このアクセス制御回路151の動作は、I/O専用キャッシュ14から来るアクセス要求は、下記のとおりである。   As for the operation of this access control circuit 151, the access request coming from the I / O dedicated cache 14 is as follows.

(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 access request FIFO 153 and the write access request FIFO 154 are checked to determine whether there is a dependency. As a result of this check, if there is no dependency relationship, in the case of read access, the corresponding read access request FIFOs 153-1 to 153-n are queued to the corresponding FIFO, and in the case of write access, they are queued to the write access request FIFO 154. And exit.

また、依存関係がある場合には、下記の手順に従う。   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 access control circuit 155 takes out access requests for each read access request FIFO 153 and write access request FIFO 154 in the order of priority of each FIFO. At this time, with respect to the access issued to the SDRAM, the read access and the write access are combined for the access related to the same bank and the same Row address, and the memory 2 is accessed. At this time, the access request for which the dependency tagNo is set is excluded, and if the last bit is set for each access request for accessing the memory 2, there is no dependency relationship. It ends as it is. If the last bit is cleared, the dependency list is updated according to the following procedure.

(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 memory 2 can be improved. Due to the access efficiency and the effect of the I / O dedicated cache 14, the multimedia processing can minimize the bottleneck caused by the memory 2 and realize smooth processing execution.

次に、図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 multimedia terminal 100 has a configuration in which a multimedia microcomputer 1 is used as a core, and a memory 2, a screen 3, which is an input / output device, a camera 4, a speaker 5, and a communication device 6 are connected to the multimedia microcomputer 1. Yes.

このマルチメディアマイコン1は、画面3、カメラ4、スピーカ5、通信装置6と接続するインタフェースを持つと共に、画面表示制御、画像入力制御、音声出力制御、通信送受信制御を行うアクセラレータを持つ。これにより、カメラ4で撮影された映像を画面3への表示や、通信装置6を介した外部と映像を高速に送受信することが可能となる。   The multimedia microcomputer 1 has an interface for connecting to the screen 3, the camera 4, the speaker 5, and the communication device 6, and an accelerator that performs screen display control, image input control, audio output control, and communication transmission / reception control. As a result, it is possible to display video captured by the camera 4 on the screen 3 and to transmit / receive video to / from the outside via the communication device 6 at high speed.

次に、図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 multimedia microcomputer 1 operates as a master, and has a CPU 11 having a cache 110 therein and a plurality of accelerators 12 (12-1 to 12-12) operating as slaves. -N), an I / O dedicated cache 14 which is a feature of the present invention, a bus 13 for connecting them, and a memory controller 15. A memory 2 is connected to the outside of the multimedia microcomputer 1, and a program 21 describing a series of procedural processes executed by the CPU 11, a work area 22, and each accelerator 12 are processed in the memory 2. There is a data area 23 (23-1 to 23-n) for storing data to be processed.

キャッシュ110及びI/O専用キャッシュ14はメモリ2の内容を一時的に保持するキャッシュとしての機能を持っており、キャッシュ110は、CPU11がメモリ2にアクセスする際のアクセス効率の向上を、また、I/O専用キャッシュ14は、CPU11及びアクセラレータ12がメモリ2にアクセスする際のアクセス効率の向上を実現させる。   The cache 110 and the I / O dedicated cache 14 have a function as a cache that temporarily holds the contents of the memory 2, and the cache 110 improves the access efficiency when the CPU 11 accesses the memory 2, The I / O dedicated cache 14 improves the access efficiency when the CPU 11 and the accelerator 12 access the memory 2.

図20を用いて、キャッシュ110とI/O専用キャッシュ14との使い分けについて説明する。なお、以下、キャッシュ110はコピーバック方式を採るものとし、スヌープ機能を用いて、アクセラレータ12からのメモリ2へのアクセスを監視し、キャッシュ110と、メモリ2及びI/O専用キャッシュ14との間で、キャッシュコヒーレンシを保つ機能を持つ。また、キャッシュがメモリ2からデータをラインサイズ分読み込むことをフィード、メモリ2に対してラインサイズ分書き込むことをパージと称する。   The use of the cache 110 and the I / O dedicated cache 14 will be described with reference to FIG. Hereinafter, it is assumed that the cache 110 adopts a copy-back method, the access to the memory 2 from the accelerator 12 is monitored using a snoop function, and between the cache 110 and the memory 2 and the I / O dedicated cache 14. And it has a function to maintain cache coherency. The cache reads data from the memory 2 for the line size is referred to as feed, and the writing to the memory 2 for the line size is referred to as purge.

CPU11が、プログラム21及びワークエリア22をアクセスする際には、キャッシュ110のみを動作し、I/O専用キャッシュ14はスルーする(121)。従って、キャッシュ110でキャッシュミスが発生した際には、CPU11のアクセスがリード及びライト(ライトバック時)の両方において、キャッシュ110はメモリ2に対して、データをフィード及びパージを行う。   When the CPU 11 accesses the program 21 and the work area 22, only the cache 110 is operated, and the I / O dedicated cache 14 is passed through (121). Therefore, when a cache miss occurs in the cache 110, the cache 110 feeds and purges data to the memory 2 when the CPU 11 accesses both read and write (during write back).

一方、CPU11が、アクセラレータ21のデータ領域23をアクセスする際には、キャッシュ110及びI/O専用キャッシュ14がともに動作する(122〜124)。従って、キャッシュ110でキャッシュミスが発生した際には、引き続いてI/O専用キャッシュ14でもキャッシュ判定が行われる。   On the other hand, when the CPU 11 accesses the data area 23 of the accelerator 21, both the cache 110 and the I / O dedicated cache 14 operate (122 to 124). Therefore, when a cache miss occurs in the cache 110, the cache determination is also performed in the I / O dedicated cache 14 subsequently.

I/O専用キャッシュ14でキャッシュヒット時、CPU11はI/O専用キャッシュ14上のデータをアクセスする(122)。また、I/O専用キャッシュ14でキャッシュミス時、キャッシュ110からのアクセスにより動作が異なる。   When a cache hit occurs in the I / O dedicated cache 14, the CPU 11 accesses the data in the I / O dedicated cache 14 (122). Further, when the I / O dedicated cache 14 has a cache miss, the operation differs depending on the access from the cache 110.

(1)キャッシュ110からのキャッシュフィードアクセス(リード)
I/O専用キャッシュ14は、メモリ2からのリードデータをスルーしてキャッシュ110にデータを出力する(123)。
(1) Cache feed access from cache 110 (read)
The I / O dedicated cache 14 passes through the read data from the memory 2 and outputs the data to the cache 110 (123).

(2)キャッシュ110からのキャッシュパージアクセス(ライト)
(2)−(a)I/O専用キャッシュ14は、当該パージデータが連携データである場合、I/O専用キャッシュ14に登録する。このとき、キャッシュ110のラインサイズが、I/O専用キャッシュ14のラインサイズより小さい場合、メモリ2より、当該パージデータを含むラインをフィード(124)した後に、当該パージデータを書き込む。
(2) Cache purge access (write) from the cache 110
(2)-(a) The I / O dedicated cache 14 registers the purge data in the I / O dedicated cache 14 when the purge data is linkage data. At this time, if the line size of the cache 110 is smaller than the line size of the I / O dedicated cache 14, the purge data is written after feeding the line including the purge data from the memory 2 (124).

(2)−(b)当該パージデータが連携データでない場合には、I/O専用キャッシュ14はスルーしてメモリ2に書き込む(123)。   (2)-(b) If the purge data is not linkage data, the I / O dedicated cache 14 passes through and writes to the memory 2 (123).

続いて、図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 multimedia microcomputer 1. The multimedia microcomputer 1 includes a CPU 11, an accelerator 12, an I / O dedicated cache 14, a bus 13 that connects them, and a memory controller 15. The accelerator 12 includes a TCP accelerator 12-1, an IPsec accelerator 12-2, and an EtherMAC 12-3. The TCP accelerator 12-1 performs checksum calculation and memory copy, and the IPsec accelerator 12-2 performs decryption and authentication processing. The EtherMAC 12-3 is connected via the LAN 130 and has a function of transmitting and receiving frames from the LAN. Here, the LAN 130 is Ethernet (registered trademark), which is most frequently used as a LAN.

図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 multimedia microcomputer 1 uses Ethernet (registered trademark) for LAN, it has a configuration in which a MAC header is added at the end. Incidentally, FIG. 23 shows a TCP / IP frame configuration when IPsec is not used.

なお、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 cache 14 is not used, processing when receiving an IPsec frame in the IPsec transport mode shown in FIG. 22 will be described with reference to FIG.

(1)マルチメディアマイコン1がイーサネット(登録商標)のLAN130から、当該イーサフレームを受信し、メモリ2内のアクセラレータ12のデータ領域23に書き込む(1001,1011)。   (1) The multimedia microcomputer 1 receives the Ethernet frame from the LAN 130 of Ethernet (registered trademark) and writes it in the data area 23 of the accelerator 12 in the memory 2 (1001, 1011).

(2)CPU11は、当該イーサフレーム1011のMACヘッダ及びIPヘッダをアクセラレータ12のデータ領域23より読み込み、イーサ受信及びIP受信処理を行う(1002)。   (2) The CPU 11 reads the MAC header and IP header of the Ethernet frame 1011 from the data area 23 of the accelerator 12, and performs Ethernet reception and IP reception processing (1002).

(3)CPU11は、当該イーサフレーム1011がIPsecパケットを含むため、当該イーサフレーム1011内のIPsecヘッダを読み込み、IPsec受信処理を行い、IPsecアクセラレータ12−2を起動する。   (3) Since the Ethernet frame 1011 includes an IPsec packet, the CPU 11 reads the IPsec header in the Ethernet frame 1011, performs an IPsec reception process, and activates the IPsec accelerator 12-2.

(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 Ethernet frame 1011 from the data area 23 of the accelerator 12, performs authentication processing and decryption processing, and sends the result to the data area 23 of the accelerator 12 as a TCP packet (TCP Data) 1012 is written back (1003).

(5)CPU11は、アクセラレータ12のデータ領域23内のTCPパケット1012より、TCPヘッダを読み込み、受信処理を行うとともに、チェックサムを計算するため、TCPアクセラレータ12−1を起動する(1004)。   (5) The CPU 11 reads the TCP header from the TCP packet 1012 in the data area 23 of the accelerator 12, performs reception processing, and activates the TCP accelerator 12-1 to calculate the checksum (1004).

(6)TCPアクセラレータ12−1は、アクセラレータ12のデータ領域23内のTCPパケット1012を読み込み、チェックサムを計算するとともに、TCPデータを受信データ内の適切な位置(図では左から3番目の位置)に書き込む(1005)。   (6) The TCP accelerator 12-1 reads the TCP packet 1012 in the data area 23 of the accelerator 12, calculates the checksum, and sends the TCP data to an appropriate position in the received data (the third position from the left in the figure). (1005).

このように、I/O専用キャッシュ14を使用しない場合、メモリ2へのアクセスが、1イーサフレーム当たり5回発生することになる。   Thus, when the I / O dedicated cache 14 is not used, access to the memory 2 occurs five times per Ethernet frame.

一方、I/O専用キャッシュ14を使用した場合の動作を、図25を用いて説明する。   On the other hand, the operation when the I / O dedicated cache 14 is used will be described with reference to FIG.

(1’)マルチメディアマイコン1がイーサネット(登録商標)のLAN130から、当該イーサフレームを受信し、メモリ2内のアクセラレータ12のデータ領域23に書き込む(1021,1011)。しかし、アクセラレータ12のデータ領域23への書き込みであるため、I/O専用キャッシュ14は当該フレームをキャッシュし(1011’)、実際にメモリ2へのアクセスは発生しない。   (1 ') The multimedia microcomputer 1 receives the Ethernet frame from the Ethernet (registered trademark) LAN 130 and writes it in the data area 23 of the accelerator 12 in the memory 2 (1021, 1011). However, since the data is written to the data area 23 of the accelerator 12, the I / O dedicated cache 14 caches the frame (1011 '), and the memory 2 is not actually accessed.

(2’)CPU11は、アクセラレータ12のデータ領域23内の当該イーサフレーム1011内にあるMACヘッダ及びIPヘッダを読み込む際、I/O専用キャッシュ14にヒットする。そのため、メモリ2へのアクセスは発生せず、I/O専用キャッシュ14から当該フレーム1011’のMACヘッダ及びIPヘッダが読み込まれ、イーサ受信及びIP受信処理を行う(1022)。   (2 ′) When the CPU 11 reads the MAC header and IP header in the ether frame 1011 in the data area 23 of the accelerator 12, the CPU 11 hits the I / O dedicated cache 14. Therefore, access to the memory 2 does not occur, and the MAC header and the IP header of the frame 1011 'are read from the I / O dedicated cache 14 to perform Ethernet reception and IP reception processing (1022).

(3’)CPU11は、当該イーサフレーム1011’がIPsecパケットを含むため、当該イーサフレーム1011内のIPsecヘッダを読み込み、IPsec受信処理を行い、IPsecアクセラレータ12−2を起動する。このメモリ2へのアクセスも、(2)と同様にI/O専用キャッシュ14にヒットするため、当該イーサフレーム1011’のIPsecヘッダが読み込まれ、メモリ2へのアクセスは発生しない(1022)。   (3 ′) The CPU 11 reads the IPsec header in the Ethernet frame 1011 because the Ethernet frame 1011 ′ includes an IPsec packet, performs an IPsec reception process, and activates the IPsec accelerator 12-2. Since the access to the memory 2 also hits the I / O dedicated cache 14 as in (2), the IPsec header of the Ether frame 1011 'is read, and the access to the memory 2 does not occur (1022).

(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 Ethernet frame 1011. However, the IPsec accelerator 12-2 hits the I / O dedicated cache 14 and is actually read from the Ethernet frame 1011' (1023). Thereafter, the IPsec accelerator 12-2 performs an authentication process and a decryption process, and writes the result back as a TCP packet 1012 in the data area 23 of the accelerator 12. However, since the data is written to the data area 23 of the accelerator 12, the I / O dedicated cache 14 caches (1012 '), and no access to the memory 2 actually occurs (1023).

(5’)CPU11は、アクセラレータ12のデータ領域23内のTCPパケット1012より、TCPヘッダの読み込みを行うが、実際にはI/O専用キャッシュ14でヒットするため、TCPパケット1012’のTCPヘッダが読み込まれる(1024)。続いて、CPU11はTCP受信処理を行うとともに、チェックサムを計算するため、TCPアクセラレータ12−1を起動する。   (5 ′) The CPU 11 reads the TCP header from the TCP packet 1012 in the data area 23 of the accelerator 12. However, since the CPU 11 actually hits the I / O dedicated cache 14, the TCP header of the TCP packet 1012 ′ It is read (1024). Subsequently, the CPU 11 performs TCP reception processing and activates the TCP accelerator 12-1 in order to calculate a checksum.

(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 TCP packet 1012 in the data area 23 of the accelerator 12, but reads the TCP packet 1012' because it hits the I / O dedicated cache 14. The TCP accelerator 12-1 calculates the checksum and writes the TCP data at an appropriate position in the received data (1025).

以上により、アクセラレータ12とCPU11がともにアクセスする連携データをI/O専用キャッシュ14内に留めることで、メモリ2へのアクセスを0回にすることが可能となった。実際には上述のように、画像やダウンロードなどでは、複数のイーサフレームに分割されて送受信されるため、メモリ2へのアクセスのオーバーヘッドが通信性能に大きく影響することになる。   As described above, it is possible to make access to the memory 2 zero by keeping the cooperative data accessed by the accelerator 12 and the CPU 11 in the I / O dedicated cache 14. Actually, as described above, in an image, download, or the like, transmission and reception are performed by being divided into a plurality of ether frames, so the overhead of access to the memory 2 greatly affects the communication performance.

また、CPU11とアクセラレータ12がともにアクセスする連携データは、1031及び1032のヘッダ部分である。この連携データをI/O専用キャッシュ14がキャッシュすることにより、CPU11は、アクセラレータ12が書き込んだデータをアクセスが遅いメモリ2からではなく、I/O専用キャッシュ14から読み込むことができるため、オーバーヘッドとなるアクセス待ち時間を大幅に削減でき、IPsecベースのTCP/IP通信を高速に行うことが可能となる。   The linkage data accessed by both the CPU 11 and the accelerator 12 are the header portions of 1031 and 1032. Since the I / O dedicated cache 14 caches this cooperative data, the CPU 11 can read the data written by the accelerator 12 from the I / O dedicated cache 14 instead of from the slow-access memory 2. Thus, it is possible to greatly reduce the access waiting time, and to perform IPsec-based TCP / IP communication at high speed.

また、図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 cache 14, and other data (IPsec data, TCP data) is stored. The block diagram at the time of hold | maintaining in the memory 2 is shown. This configuration is a case where a plurality of accelerators 12 operate simultaneously and the I / O dedicated cache 14 has no room.

一方、I/O専用キャッシュ14に余裕がある場合には、図25に示すように、連携データ部1031,1032に加えて、連携データ部以外のデータもキャッシュすることにより、アクセラレータ12間のデータ転送への利用も可能となる。アクセラレータ12側では、連続したアドレスに対してアクセスすることが多いことに注目し、アクセラレータ12間のデータ転送により、連携データ1031,1032がキャッシュアウトされないことがポイントとなる。そこで、I/O専用キャッシュ14上に連携データが優先的にキャッシュすることを実現する方法として、以下の方法が挙げられる。   On the other hand, when the I / O dedicated cache 14 has a margin, as shown in FIG. 25, in addition to the linked data units 1031 and 1032, data other than the linked data unit is also cached, so that data between the accelerators 12. It can also be used for forwarding. It is noted that the accelerator 12 often accesses consecutive addresses, and the point is that the linked data 1031 and 1032 are not cached out due to data transfer between the accelerators 12. Therefore, as a method for realizing that the cooperative data is preferentially cached on the I / O dedicated cache 14, the following method can be cited.

(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 CPU 11 is completed. The cleared line is subject to cash out.

ここで、(a),(b)の方法は、I/O専用キャッシュ14での処理となるため、アプリケーションの介在が不要であるが、(c)の方法は、使用中ビットをOSかドライバ・ミドルウエアレベルの管理処理が必須となる。   Here, since the methods (a) and (b) are performed in the I / O dedicated cache 14, no application intervention is required. However, the method (c) uses the OS or driver as the bit in use.・ Middleware level management processing is essential.

上記の方法により、連携データがI/O専用キャッシュ14に長く滞在可能となり、特に複数のアクセラレータが同時に動作している際に、連携データがI/O専用キャッシュ14からキャッシュアウトされることによる性能低下を防ぐ事が可能となる。   According to the above method, the linkage data can stay in the I / O dedicated cache 14 for a long time. Especially when a plurality of accelerators are operating simultaneously, the performance of the linkage data being cached out from the I / O dedicated cache 14 is achieved. It is possible to prevent the decrease.

さらに、同様に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 CPU 11 sets transmission data in the data area 23 of the accelerator 12 in the memory 2. At this time, the I / O dedicated cache 14 detects and caches transmission data being written to the data area 23 of the accelerator 12. FIG. 27 shows a process in which the transmission data is divided into four frames and the third data 1061 is transmitted.

(1)CPU11は3番目のデータ1061を送信するため、TCPアクセラレータ12−1に起動をかける。   (1) The CPU 11 activates the TCP accelerator 12-1 to transmit the third data 1061.

(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 data area 23 of the accelerator 12 to a size 1061 that can be transmitted in one frame, calculates a checksum, and also transmits a TCP data portion in the transmission buffer 1062 Copy to. At this time, since the TCP accelerator 12-1 accesses the data area 23 of the accelerator 12, it actually reads 1061 'in the I / O dedicated cache 14 and writes it in the TCP data portion of 1062' (1051).

(3)CPU11はTCPヘッダを作成し、アクセラレータ12のデータ領域23内のTCPパケット1062内のTCPヘッダに書き込む。しかし、実際にはI/O専用キャッシュ14内のTCPパケット1062’内のTCPヘッダ部1071に書き込まれる(1052)。   (3) The CPU 11 creates a TCP header and writes it in the TCP header in the TCP packet 1062 in the data area 23 of the accelerator 12. However, it is actually written in the TCP header portion 1071 in the TCP packet 1062 'in the I / O dedicated cache 14 (1052).

(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 CPU 11 activates the IPsec accelerator 12-2. In response to this, the IPsec accelerator 12-2 reads the TCP packet 1062, and writes the encrypted result in the IPsec data portion of the Ethernet frame 1063. At this time, actually, 1062 'in the I / O dedicated cache 14 is read, and the encrypted data is written in the IPsec data portion of 1063'.

(5)CPU11はヘッダ部(MACヘッダ、IPヘッダ、IPsecヘッダ)を作成し、アクセラレータ12のデータ領域23内のイーサフレーム1063のヘッダ部に書き込むが、実際にはI/O専用キャッシュ14内の1063’のヘッダ部1072に書き込まれる(1053)。   (5) The CPU 11 creates a header part (MAC header, IP header, IPsec header) and writes it in the header part of the ether frame 1063 in the data area 23 of the accelerator 12, but actually it is in the I / O dedicated cache 14. It is written in the header portion 1072 of 1063 ′ (1053).

(6)CPU11は、イーサフレーム1063の作成終了を受け、EtherMAC12−3に送信要求を行う。それを受け、EtherMAC12−3はアクセラレータ12のデータ領域23内のイーサフレーム1063(実際にはI/O専用キャッシュ14内の1063’)を読み出し、イーサネット(登録商標)のLAN130に出力する。   (6) Upon completion of creation of the Ethernet frame 1063, the CPU 11 sends a transmission request to the EtherMAC 12-3. In response to this, the EtherMAC 12-3 reads the Ether frame 1063 (actually 1063 'in the I / O dedicated cache 14) in the data area 23 of the accelerator 12, and outputs it to the LAN 130 of Ethernet (registered trademark).

以上のように、送信処理においても、CPU11及びアクセラレータ12はともに、I/O専用キャッシュ14の有無を気にすることなく実行することが出来る。   As described above, also in the transmission process, both the CPU 11 and the accelerator 12 can be executed without worrying about the presence / absence of the I / O dedicated cache 14.

また、上記受信処理及び送信処理が同時に発生しても、I/O専用キャッシュ14はキャッシュであるため、問題なく利用できる。   Even if the reception process and the transmission process occur simultaneously, the I / O dedicated cache 14 is a cache and can be used without any problem.

次に、図28を用いて、CPU11内のキャッシュ110がスヌープ機能を持つ際の処理を示す。   Next, processing when the cache 110 in the CPU 11 has a snoop function will be described with reference to FIG.

上記送信処理の(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 CPU 11 creates the TCP header with the cache 110 enabled and in the write-back mode, the actual TCP header exists only in the cache 110, and the 1071 in the I / O dedicated cache 14 and , It does not exist in the data area 23 of the accelerator 12. Here, the IPsec accelerator 12-2 that has been activated by the CPU 11 reads the TCP header. When the cache 14 detects this access via the bus 13, it issues an access interruption request to the IPsec accelerator 12-2 and purges the TCP header data in the cache 110 to the TCP packet 1062 in the data area 23 of the accelerator 12. To do. However, it is actually written in the TCP header portion 1071 in the I / O dedicated cache 14.

パージ処理が終了すると、キャッシュ110はIPsecアクセラレータ12−2へのアクセス中断要求を解除する。これを受けて、IPsecアクセラレータ12−2はTCPヘッダの読み込みを再開する。キャッシュ110からのパージ後の正しいTCPヘッダ1071のデータを読み込むことが可能となる。   When the purge process ends, the cache 110 cancels the access interruption request to the IPsec accelerator 12-2. In response to this, the IPsec accelerator 12-2 resumes reading the TCP header. It is possible to read the correct TCP header 1071 data after purging from the cache 110.

ここで注目すべきは、アクセス時間の短いI/O専用キャッシュ14を使用することで、キャッシュ110とメモリ2間のキャッシュコヒーレンシは、アクセス待ち時間の大きいメモリ2へのアクセスなしに、I/O専用キャッシュ14を介したアクセスとなり、キャッシュパージによるオーバーヘッドを大幅に削減することが可能となる。   It should be noted that by using the I / O dedicated cache 14 having a short access time, cache coherency between the cache 110 and the memory 2 can be reduced without accessing the memory 2 having a large access latency. Access is made through the dedicated cache 14, and the overhead due to cache purge can be greatly reduced.

以上説明したように、本実施の形態によれば、以下のような効果を得ることができる。   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 multimedia microcomputers 1 and 10 adopting the I / O dedicated cache 14, a bottleneck caused by data cooperation in memory access that occurs when the CPU 11 and the accelerator 12 operate in cooperation with the multimedia processing. It can be minimized and the multimedia processing performance can be improved.

(2)I/O専用キャッシュ14は、CPU11とアクセラレータ12間のデータ連携に必要なデータのみを保持すると共に、I/O専用キャッシュ14に保持するかどうかの判定は、メモリ2へのライトアクセスのみで良いことに注目することにより、データ連携におけるI/O専用キャッシュ14でのキャッシュヒット率を向上させることが可能となり、よりコンパクトにI/O専用キャッシュ14を実現できる。   (2) The I / O dedicated cache 14 holds only data necessary for data linkage between the CPU 11 and the accelerator 12 and determines whether to hold the data in the I / O dedicated cache 14 by write access to the memory 2. It is possible to improve the cache hit rate in the I / O dedicated cache 14 in data linkage, and to realize the I / O dedicated cache 14 in a more compact manner.

(3)複数のマルチメディア向けのアクセラレータ12を搭載した場合でも、データ連携を効率よく行うことが可能となるため、音声や静止画、動画などの複数のマルチメディア処理を同時かつ高速に処理可能なマルチメディアマイコン1,10、及びこのマルチメディアマイコンを用いたマルチメディア端末100を構成できる。   (3) Even when multiple accelerators for multimedia 12 are installed, data linkage can be performed efficiently, so multiple multimedia processing such as audio, still images, and videos can be processed simultaneously and at high speed. The multimedia microcomputers 1 and 10 and the multimedia terminal 100 using the multimedia microcomputer can be configured.

以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。   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.

本発明の一実施の形態に係るマルチメディアマイコンを示す構成図である。It is a block diagram which shows the multimedia microcomputer which concerns on one embodiment of this invention. 本発明の一実施の形態において、メモリの構成を示す図である。FIG. 3 is a diagram showing a configuration of a memory in an embodiment of the present invention. 本発明の一実施の形態において、別のマルチメディアマイコンを示す構成図である。In one embodiment of the present invention, it is a block diagram showing another multimedia microcomputer. 本発明の一実施の形態において、マルチメディア処理の流れを示す図である。FIG. 5 is a diagram illustrating a flow of multimedia processing in an embodiment of the present invention. 本発明の一実施の形態において、マルチメディア処理のデータの流れ(前処理からアクセラレータ処理まで)を示す図である。In one embodiment of the present invention, it is a diagram showing a data flow (from pre-processing to accelerator processing) of multimedia processing. 本発明の一実施の形態において、マルチメディア処理のデータの流れ(処理結果セットから後処理まで)を示す図である。FIG. 6 is a diagram illustrating a data flow (from a processing result set to post-processing) of multimedia processing in an embodiment of the present invention. 本発明の一実施の形態において、バスの構成を示す図である。In one embodiment of the present invention, it is a figure showing composition of a bus. 本発明の一実施の形態において、I/O専用キャッシュの構成を示す図である。FIG. 3 is a diagram showing a configuration of an I / O dedicated cache in an embodiment of the present invention. 本発明の一実施の形態において、レジスタの構成を示す図である。FIG. 3 is a diagram illustrating a configuration of a register in an embodiment of the present invention. (a),(b)は本発明の一実施の形態において、I/O専用キャッシュ内のレジスタアクセス経路を示す図である。(A), (b) is a figure which shows the register access path | route in an I / O exclusive cache in one embodiment of this invention. 本発明の一実施の形態において、判定回路での処理の流れを示す図である。In one embodiment of the present invention, it is a figure showing a flow of processing in a judgment circuit. 本発明の一実施の形態において、アドレス判定回路の構成を示す図である。FIG. 3 is a diagram showing a configuration of an address determination circuit in an embodiment of the present invention. 本発明の一実施の形態において、キャッシュの構成を示す図である。In one embodiment of the present invention, it is a diagram showing a configuration of a cache. 本発明の一実施の形態において、キャッシュの動作を示す図である。FIG. 6 is a diagram illustrating a cache operation in the embodiment of the present invention. 本発明の一実施の形態の応用例において、メモリコントローラの構成を示す図である。In the application example of one embodiment of this invention, it is a figure which shows the structure of a memory controller. 本発明の一実施の形態の応用例において、キャッシュの構成を示す図である。In the application example of one embodiment of this invention, it is a figure which shows the structure of a cache. 本発明の一実施の形態の応用例において、アクセス要求のデータ構成を示す図である。In the application example of one embodiment of this invention, it is a figure which shows the data structure of an access request. 本発明の一実施の形態において、マルチメディアマイコンを用いたマルチメディア端末を示す構成図である。In one embodiment of the present invention, it is a block diagram showing a multimedia terminal using a multimedia microcomputer. 本発明の一実施の形態において、さらに別のマルチメディアマイコンを示す構成図である。In one embodiment of the present invention, it is a block diagram showing still another multimedia microcomputer. 本発明の一実施の形態において、キャッシュとI/O専用キャッシュとの使い分けを示す図である。In one embodiment of the present invention, it is a diagram showing the proper use of a cache and an I / O dedicated cache. 本発明の一実施の形態において、マルチメディアマイコンの具体的な構成を示す構成図である。In one embodiment of the present invention, it is a block diagram showing a specific configuration of a multimedia microcomputer. 本発明の一実施の形態において、通信を行う際のフレーム構造を示す構成図である。In one embodiment of the present invention, it is a block diagram showing a frame structure when performing communication. 本発明の一実施の形態において、通信を行う際の別のフレーム構造を示す構成図である。In one embodiment of this invention, it is a block diagram which shows another frame structure at the time of performing communication. 本発明の一実施の形態において、キャッシュの動作(I/O専用キャッシュを使用しない場合の受信処理)を示す図である。FIG. 10 is a diagram illustrating a cache operation (reception processing when an I / O dedicated cache is not used) in an embodiment of the present invention. 本発明の一実施の形態において、キャッシュの動作(I/O専用キャッシュを使用した場合の受信処理)を示す図である。FIG. 10 is a diagram illustrating a cache operation (reception processing when an I / O dedicated cache is used) in an embodiment of the present invention. 本発明の一実施の形態において、キャッシュの動作(連携データ部のみをI/O専用キャッシュに保持し、I/O専用キャッシュを使用した場合の受信処理)を示す図である。FIG. 11 is a diagram illustrating a cache operation (reception processing when only the linkage data unit is held in the I / O dedicated cache and the I / O dedicated cache is used) in the embodiment of the present invention. 本発明の一実施の形態において、暗号化したデータを送信する処理を示す図である。FIG. 6 is a diagram illustrating a process of transmitting encrypted data according to an embodiment of the present invention. 本発明の一実施の形態において、キャッシュの動作(スヌープ機能を持つ場合)を示す図である。FIG. 5 is a diagram illustrating a cache operation (when a snoop function is provided) in an embodiment of the present invention.

符号の説明Explanation of symbols

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 SYMBOLS 1 ... Multimedia microcomputer, 2 ... Memory, 3 ... Screen, 4 ... Camera, 5 ... Speaker, 6 ... Communication apparatus, 10 ... Multimedia microcomputer, 11 ... CPU, 12 ... Accelerator, 13 ... Bus, 14 ... I / O Dedicated cache, 15 ... Memory controller, 21 ... Program, 22 ... Work area, 23 ... Data area, 100 ... Multimedia terminal, 110 ... Cache, 130 ... LAN, 141 ... Register, 142 ... Judgment circuit, 143 ... Cache, 151 ... access control circuit, 152 ... refresh control circuit, 153 ... read access request FIFO, 154 ... write access request FIFO, 155 ... memory access control circuit.

Claims (15)

マスタとして動作するCPUと、
スレーブとして動作するアクセラレータとを有し、
前記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.
請求項1記載のマイクロコンピュータにおいて、
前記キャッシュ手段は、前記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.
請求項2記載のマイクロコンピュータにおいて、
前記アクセラレータは、前記メモリへライトアクセスする際に、前記キャッシュ手段に対して保持要求を出す機能を有することを特徴とするマイクロコンピュータ。
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.
請求項3記載のマイクロコンピュータにおいて、
前記キャッシュ手段は、前記アクセラレータからの前記メモリへのライトアクセスの際に出力される保持要求により、前記アクセラレータから出力されるデータを保持するかどうかを判定する機能を有することを特徴とするマイクロコンピュータ。
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. .
請求項2記載のマイクロコンピュータにおいて、
前記キャッシュ手段は、前記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.
請求項1記載のマイクロコンピュータにおいて、
前記キャッシュ手段は、前記アクセラレータから前記メモリへのリードアクセス要求の際に、前記キャッシュ手段が前記リードアクセス要求のデータを保持している場合には、前記キャッシュ手段が前記データを前記アクセラレータに出力する機能を有することを特徴とするマイクロコンピュータ。
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.
請求項1記載のマイクロコンピュータにおいて、
前記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.
請求項7記載のマイクロコンピュータにおいて、
前記メモリは、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.
請求項8記載のマイクロコンピュータにおいて、
前記メモリコントローラは、前記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.
請求項1記載のマイクロコンピュータにおいて、
前記メモリは、前記マイクロコンピュータの外部に有することを特徴とするマイクロコンピュータ。
The microcomputer according to claim 1.
The microcomputer having the memory outside the microcomputer.
請求項1記載のマイクロコンピュータにおいて、
前記メモリは、前記マイクロコンピュータの内部に有することを特徴とするマイクロコンピュータ。
The microcomputer according to claim 1.
The microcomputer having the memory inside the microcomputer.
請求項1記載のマイクロコンピュータにおいて、
前記CPUは、内部にキャッシュを有することを特徴とするマイクロコンピュータ。
The microcomputer according to claim 1.
The microcomputer has a cache therein.
請求項12記載のマイクロコンピュータにおいて、
前記マイクロコンピュータは、外部のメモリと接続され、
前記外部のメモリには、プログラムまたはワークエリアの領域が形成されることを特徴とするマイクロコンピュータ。
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.
請求項13記載のマイクロコンピュータにおいて、
前記外部のメモリには、前記アクセラレータのデータ領域が形成されることを特徴とするマイクロコンピュータ。
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.
請求項12記載のマイクロコンピュータにおいて、
前記CPUの内部の前記キャッシュは、スヌープ機能を持つことを特徴とするマイクロコンピュータ。
The microcomputer according to claim 12, wherein
The microcomputer having a snoop function in the cache inside the CPU.
JP2005216995A 2004-07-28 2005-07-27 Microcomputer Expired - Fee Related JP4796346B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (8)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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