JP5452148B2 - Memory control system - Google Patents

Memory control system Download PDF

Info

Publication number
JP5452148B2
JP5452148B2 JP2009218506A JP2009218506A JP5452148B2 JP 5452148 B2 JP5452148 B2 JP 5452148B2 JP 2009218506 A JP2009218506 A JP 2009218506A JP 2009218506 A JP2009218506 A JP 2009218506A JP 5452148 B2 JP5452148 B2 JP 5452148B2
Authority
JP
Japan
Prior art keywords
data
cpu
memory
block
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009218506A
Other languages
Japanese (ja)
Other versions
JP2011070253A (en
Inventor
亜希子 山崎
康人 近江谷
茂 橋本
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2009218506A priority Critical patent/JP5452148B2/en
Publication of JP2011070253A publication Critical patent/JP2011070253A/en
Application granted granted Critical
Publication of JP5452148B2 publication Critical patent/JP5452148B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、CPU(Central Processing Unit)によるメモリアクセスを効率化する技術に関する。   The present invention relates to a technology for improving the efficiency of memory access by a CPU (Central Processing Unit).

従来CPUと周辺機器、メモリを接続する拡張バスとしてPCI(Peripheral Component Interconnect)バスがある。
PCIは32bitまたは64bitのパラレルバスで33MHzまたは66MHzで動作し、133Mバイト/秒〜533Mバイト/秒でデータを転送する。
CPUやストレージの高速化によりバスの伝送速度の向上が要求されるようになっている。
PCIのようなパラレルバスを高速化する手法としてはデータのビット幅を広げる方法やクロック周波数を引き上げる方法がある。
しかし、ビット幅が増えることで信号線の数も多くなり、基板面積やデバイスの端子数、コネクタのピン数も多く必要になる。
また、クロック周波数を引き上げると信号の長さや負荷の違いによるタイミングのずれ(スキュー)が無視できない要素になり、速度を上げるのが難しくなる。これらの理由により、パラレルバスの高速化の限界がでてきている。
Conventionally, there is a PCI (Peripheral Component Interconnect) bus as an expansion bus that connects a CPU, peripheral devices, and memory.
PCI operates on a 32-bit or 64-bit parallel bus at 33 MHz or 66 MHz, and transfers data at 133 Mbyte / second to 533 Mbyte / second.
Increasing the transmission speed of the bus is demanded by increasing the speed of the CPU and storage.
As a method for speeding up a parallel bus such as PCI, there are a method of increasing the bit width of data and a method of increasing the clock frequency.
However, as the bit width increases, the number of signal lines also increases, and the board area, the number of device terminals, and the number of connector pins are also required.
Further, when the clock frequency is increased, a timing shift (skew) due to a difference in signal length or load becomes a factor that cannot be ignored, and it is difficult to increase the speed. For these reasons, the speed limit of parallel buses has come to the limit.

そこで、シリアルバスが注目されるようになり、PCI Express(以下、PCIe)が規格化された。
シリアルバスでは1本の信号線でデータ転送を行うため、スキューや基板上の問題がなく、パラレルバスよりも高速な伝送を行うことができる。
PCIeの1レーンあたりのデータ転送速度はPCIe1.xでは250Mバイト/秒、PCIe2.0で500Mバイト/秒となっており、複数のレーンを束ねて1つの伝送路とすることで高速にデータ転送を行うことができる。
以上の背景(PCIをはじめとするパラレルバスによる伝送速度の限界と高速なシリアルバスであるPCIeの規格化)に関しては、CQ出版社発行のInterface 2009年2月号の「特集 インターフェース規格のすぐに役立つ基礎知識」の「第1章 標準拡張バス/スロット仕様のいろいろ」に記されている。
Therefore, attention has been focused on the serial bus, and PCI Express (hereinafter, PCIe) has been standardized.
Since data transfer is performed with one signal line in the serial bus, there is no problem on the skew and the substrate, and transmission can be performed at a higher speed than the parallel bus.
The data transfer rate per lane of PCIe is PCIe1. x is 250 Mbytes / second, and PCIe 2.0 is 500 Mbytes / second, and data transmission can be performed at high speed by bundling a plurality of lanes into one transmission path.
Regarding the above background (limitation of transmission speed by parallel buses such as PCI and standardization of PCIe, which is a high-speed serial bus), “Special Feature Immediately of Interface Standards” issued in the February 2009 issue of Interface issued by CQ Publisher It is written in "Chapter 1 Various standard expansion bus / slot specifications" in "Basic knowledge to help".

Interface 2009年2月号 「特集 インターフェース規格のすぐに役立つ基礎知識」「第1章 標準拡張バス/スロット仕様のいろいろ」、2009年2月、CQ出版社、pp40〜pp51Interface 2009 February “Special Feature Basic Knowledge of Interface Standards” “Chapter 1 Various Standard Expansion Bus / Slot Specifications”, February 2009, CQ Publisher, pp40-pp51

しかし、PCIeでは大量のデータを一度に送るバースト転送では高速にデータを転送できるものの、コマンドを発行してからデータが到達するまでのレイテンシが大きい。
DRAMやSRAMのメモリアクセス時間は数十ナノ秒程度なのに対し、PCIeでは1回のデータ転送に1マイクロ秒程度発生する。
一般にCPUがメモリのデータに対してREAD要求を発行した場合、CPUはデータを取得するまで処理を停止(ストール)する。
CPUの処理時間と比較してメモリアクセス時間は数倍〜数十倍程度の差があるため、メモリアクセス時間が性能に及ぼす影響は大きい。
その上、PCIeを経由してデータにアクセスするとCPUのストール時間はさらに増加し、処理効率が低下する。
However, although PCIe can transfer data at high speed in burst transfer in which a large amount of data is sent at a time, the latency from when a command is issued until the data arrives is large.
Memory access time of DRAM or SRAM is about several tens of nanoseconds, whereas PCIe generates about 1 microsecond for each data transfer.
In general, when the CPU issues a READ request to the data in the memory, the CPU stops (stall) the process until the data is acquired.
Since the memory access time has a difference of several times to several tens of times compared with the processing time of the CPU, the memory access time has a great influence on performance.
In addition, when data is accessed via PCIe, the CPU stall time further increases and processing efficiency decreases.

この発明は、上記のような課題を解決することを主な目的の一つとしており、CPUのメモリへのアクセス時間を短縮するシステムを提供することを主な目的とする。   One of the main objects of the present invention is to solve the above-described problems, and it is a main object of the present invention to provide a system that shortens the access time of the CPU to the memory.

本発明に係るメモリ制御システムは、
CPU(Central Processing Unit)と、バスを介して前記CPUと接続される外部メモリと、前記バスを介さずに前記CPUと接続され、前記外部メモリに格納されているデータの少なくとも一部のデータの複製を所定サイズのデータブロック単位で格納する内部メモリとを備える情報処理装置に含まれ、
前記CPUにより前記外部メモリに格納されているいずれかのデータの読み出しが要求された場合に、読み出し対象データの複製が前記内部メモリに格納されているか否かを判定する複製データ判定部と、
前記読み出し対象データの複製が前記内部メモリに格納されていない場合に、前記読み出し対象データを前記外部メモリから読み出し、読み出した前記読み出し対象データを前記CPUに供給する第1のデータ処理部と、
前記読み出し対象データの複製が前記内部メモリに格納されていない場合に、前記第1のデータ処理部が前記読み出し対象データを前記外部メモリから読み出した後に、前記読み出し対象データを含むデータブロックを前記外部メモリから読み出し、読み出したデータブロックを前記内部メモリに格納する第2のデータ処理部とを有することを特徴とする。
A memory control system according to the present invention includes:
A CPU (Central Processing Unit), an external memory connected to the CPU via a bus, and at least a part of data stored in the external memory connected to the CPU without going through the bus Included in an information processing apparatus including an internal memory for storing a copy in units of data blocks of a predetermined size,
A duplicate data determination unit that determines whether a copy of the data to be read is stored in the internal memory when the CPU requests reading of any data stored in the external memory;
A first data processing unit that reads the read target data from the external memory and supplies the read read target data to the CPU when a copy of the read target data is not stored in the internal memory;
When a copy of the read target data is not stored in the internal memory, after the first data processing unit reads the read target data from the external memory, a data block including the read target data is stored in the external memory. And a second data processing unit that reads the data block from the memory and stores the read data block in the internal memory.

本発明によれば、読み出し対象データの複製が内部メモリに格納されていない場合に、CPUに読み出し対象データを供給するために読み出し対象データを外部メモリから読み出した後に、読み出し対象データを含むデータブロックを外部メモリから読み出し、読み出したデータブロックを内部メモリに格納するので、外部メモリからのデータブロックの読み出し及び読み出したデータブロックの内部メモリへの格納を待つことなくCPUに読み出し対象データを供給することができ、CPUのメモリアクセス時間を短縮することができる。   According to the present invention, when a copy of the read target data is not stored in the internal memory, the data block including the read target data after reading the read target data from the external memory to supply the read target data to the CPU Since the data block is read from the external memory and the read data block is stored in the internal memory, the read target data is supplied to the CPU without waiting for the data block to be read from the external memory and the read data block to be stored in the internal memory. CPU access time can be shortened.

実施の形態1に情報処理装置の構成例を示す図。FIG. 3 illustrates a configuration example of an information processing device in Embodiment 1. 実施の形態1に係る情報処理装置の構成例を示す図。2 is a diagram illustrating a configuration example of an information processing device according to Embodiment 1. FIG. 実施の形態1に係る内部メモリにおけるデータ配置例を示す図。FIG. 3 is a diagram showing an example of data arrangement in the internal memory according to the first embodiment. 実施の形態1に係るREAD時のフローチャート図。FIG. 3 is a flowchart at the time of READ according to the first embodiment. 実施の形態1に係るWRITE時のフローチャート図。FIG. 4 is a flowchart at the time of WRITE according to the first embodiment. 実施の形態1に係る外部メモリへのアクセス用関数例を示す図。FIG. 6 is a diagram illustrating an example of a function for accessing an external memory according to the first embodiment. 実施の形態2に係るメモリ制御装置の構成例を示す図。FIG. 4 is a diagram illustrating a configuration example of a memory control device according to a second embodiment. 実施の形態2に係る複製情報管理回路の構成例を示す図。FIG. 6 is a diagram showing a configuration example of a duplicate information management circuit according to the second embodiment. 実施の形態2に係るアドレス変換回路の構成例を示す図。FIG. 4 is a diagram illustrating a configuration example of an address conversion circuit according to a second embodiment. 実施の形態2に係るREAD監視回路の構成例を示す図。FIG. 4 is a diagram illustrating a configuration example of a READ monitoring circuit according to a second embodiment. 実施の形態2に係るWRITE監視回路の構成例を示す図。FIG. 5 is a diagram illustrating a configuration example of a WRITE monitoring circuit according to a second embodiment. 実施の形態2に係る内部メモリにおけるデータ配置例を示す図。FIG. 10 is a diagram showing an example of data arrangement in an internal memory according to the second embodiment. 実施の形態2に係るREAD時のフローチャート図。FIG. 9 is a flowchart at the time of READ according to the second embodiment. 実施の形態2に係るデータ転送回路の動作例を示すフローチャート図。FIG. 9 is a flowchart showing an operation example of the data transfer circuit according to the second embodiment. 実施の形態2に係るデータ無効化回路の動作例を示すフローチャート図。FIG. 10 is a flowchart showing an operation example of the data invalidation circuit according to the second embodiment. 実施の形態2に係るWRITE時のフローチャート図。FIG. 9 is a flowchart diagram during WRITE according to the second embodiment. 実施の形態3に係るメモリ制御装置の構成例を示す図。FIG. 9 is a diagram illustrating a configuration example of a memory control device according to a third embodiment. 実施の形態4に係るメモリ制御装置の構成例を示す図。FIG. 10 is a diagram illustrating a configuration example of a memory control device according to a fourth embodiment. 実施の形態5に係る内部メモリにおけるデータ配置例を示す図。FIG. 10 is a diagram showing an example of data arrangement in an internal memory according to the fifth embodiment. 実施の形態5に係るREAD時のフローチャート図。FIG. 10 is a flowchart at the time of READ according to the fifth embodiment. 実施の形態5に係るWRITE時のフローチャート図。FIG. 10 is a flowchart diagram during WRITE according to the fifth embodiment. 実施の形態1又は5に係る情報処理装置の構成の変形例を示す図。FIG. 10 is a diagram illustrating a modification of the configuration of the information processing device according to the first or fifth embodiment. 実施の形態2及び3に係る情報処理装置の構成例を示す図。FIG. 4 is a diagram illustrating a configuration example of an information processing device according to Embodiments 2 and 3. 実施の形態4に係る情報処理装置の構成例を示す図。FIG. 10 illustrates a configuration example of an information processing device according to a fourth embodiment.

実施の形態1.
図1は、本実施の形態に係る情報処理装置100の内部構成例を示す。
図1に示すように、CPU(Central Processing Unit)201、CPU202、外部メモリ203、I/O(Input/Output)デバイス204、DMA(Direct Memory Access)コントローラ703がバスコントローラたるバスブリッジ回路211を経由して接続されている。
CPU201とCPU202はそれぞれ高速なシリアルバス205でバスブリッジ回路211に接続されている。
バスブリッジ回路211は外部メモリ203を制御するDMAコントローラ703やCPU201、CPU202、I/Oデバイス204との通信を行う機能を備えている。
CPU202及びI/Oデバイス204は、デバイスの例である。
CPU201には内部メモリ206が直接接続されており、バス205を経由せずにアクセスできる。
つまり、CPU201は、バス205及びバスブリッジ回路211を介して外部メモリ203と接続している一方で、内部メモリ206とはバス205及びバスブリッジ回路211を介さずに接続している。
本実施の形態では、CPU201が外部メモリ203にアクセスする時間を短縮するため、CPU201に接続している内部メモリ206に外部メモリ203のデータの少なくとも一部を格納し、内部メモリ206にアクセスして外部メモリ203のデータのREAD/WRITEを行う。
CPU202はCPU201のようにデータの複製を持たない。
また、DMAコントローラ703は、外部メモリ203のデータを内部メモリ206へ転送する。
Embodiment 1 FIG.
FIG. 1 shows an internal configuration example of the information processing apparatus 100 according to the present embodiment.
As shown in FIG. 1, a CPU (Central Processing Unit) 201, a CPU 202, an external memory 203, an I / O (Input / Output) device 204, and a DMA (Direct Memory Access) controller 703 pass through a bus bridge circuit 211 as a bus controller. Connected.
The CPU 201 and the CPU 202 are each connected to the bus bridge circuit 211 by a high-speed serial bus 205.
The bus bridge circuit 211 has a function of communicating with the DMA controller 703 that controls the external memory 203, the CPU 201, the CPU 202, and the I / O device 204.
The CPU 202 and the I / O device 204 are examples of devices.
An internal memory 206 is directly connected to the CPU 201 and can be accessed without going through the bus 205.
That is, the CPU 201 is connected to the external memory 203 via the bus 205 and the bus bridge circuit 211, while being connected to the internal memory 206 without going through the bus 205 and the bus bridge circuit 211.
In this embodiment, in order to shorten the time for the CPU 201 to access the external memory 203, at least a part of the data in the external memory 203 is stored in the internal memory 206 connected to the CPU 201, and the internal memory 206 is accessed. READ / WRITE of data in the external memory 203 is performed.
The CPU 202 does not have data replication like the CPU 201.
Further, the DMA controller 703 transfers the data in the external memory 203 to the internal memory 206.

図2は、図1に示した構成をより詳細に説明する図である。   FIG. 2 is a diagram for explaining the configuration shown in FIG. 1 in more detail.

内部メモリ206は、複製データ領域207と複製状態管理情報208を持つ。
複製データ領域207は外部メモリ203の一部または全てのデータの複製を格納する領域であり、複製状態管理情報208は複製データ領域207に外部メモリ203のデータの複製が含まれるかを示す情報が格納されている。
The internal memory 206 has a replication data area 207 and replication status management information 208.
The duplicate data area 207 is an area for storing a copy of a part or all of the data in the external memory 203, and the duplicate status management information 208 is information indicating whether the duplicate data area 207 includes a duplicate of data in the external memory 203. Stored.

図3は内部メモリ206における、複製データ領域207と複製状態管理情報208のメモリ配置例を示す。
複製データ領域207は所定サイズのN個のデータ格納ブロック303(以下、単にブロックともいう)に区分されている。また、外部メモリ203のデータの複製は、所定サイズのデータブロック単位でデータ格納ブロックに格納される。1つのデータ格納ブロックには1つのデータブロックが格納される。データ格納ブロックとデータブロックは同じデータサイズである。
複製状態管理情報208にはデータ格納ブロックごとにデータブロックの複製元のアドレスを表す外部メモリアドレス301とデータブロックが有効かどうかを示す有効/無効情報302が格納されている。
外部メモリアドレス301には、例えば、データ格納ブロックに格納されているデータブロックに対応する外部メモリアドレスのうちの先頭アドレスが示される。
有効/無効情報302は、そのデータ格納ブロックに外部メモリのデータブロック(複製)が格納されているかどうかを示す識別子(valid bit)であり、有効であればそのデータ格納ブロックには外部メモリアドレス301で示すアドレスのデータブロック(複製)が格納されており、無効であればそのデータ格納ブロックには外部メモリのどのデータも格納されていないことを示す。
FIG. 3 shows a memory arrangement example of the duplicate data area 207 and the duplicate status management information 208 in the internal memory 206.
The duplicate data area 207 is divided into N data storage blocks 303 (hereinafter also simply referred to as blocks) having a predetermined size. A copy of data in the external memory 203 is stored in a data storage block in units of data blocks of a predetermined size. One data block is stored in one data storage block. The data storage block and the data block have the same data size.
The replication status management information 208 stores, for each data storage block, an external memory address 301 that represents a replication source address of the data block and valid / invalid information 302 that indicates whether the data block is valid.
The external memory address 301 indicates, for example, the head address of the external memory addresses corresponding to the data block stored in the data storage block.
The valid / invalid information 302 is an identifier (valid bit) indicating whether or not a data block (duplicate) of the external memory is stored in the data storage block. If valid, the external memory address 301 is stored in the data storage block. The data block (replica) at the address indicated by is stored, and if it is invalid, it indicates that no data in the external memory is stored in the data storage block.

CPU201では、アドレス変換プログラム209とメモリアクセス制御プログラム210を実行する。
アドレス変換プログラム209は、外部メモリ203のアドレスと内部メモリ206のアドレスとの間での変換を行うプログラムである。
メモリアクセス制御プログラム210は、複製データ判定部、第1のデータ処理部及び第2のデータ処理部の例である。
すなわち、メモリアクセス制御プログラム210では、CPU201で実行されている他のプログラム(不図示)により外部メモリ203に格納されているいずれかのデータの読み出しが要求された場合に、読み出し対象データの複製が内部メモリ206に格納されているか否かを判定し(複製データ判定部の動作)、読み出し対象データの複製が内部メモリ206に格納されていない場合に、読み出し対象データを外部メモリ203から読み出し、読み出した読み出し対象データをCPU201で実行されている他のプログラム(読み出しの要求元のプログラム)に供給する(第1のデータ処理部の動作)。
更に、メモリアクセス制御プログラム210では、読み出し対象データの複製が内部メモリ206に格納されていない場合に、読み出し対象データが外部メモリ203から読み出された後に、読み出し対象データを含むデータブロックを外部メモリから読み出し、DMAコントローラ703(第2のデータ処理部の一部)を用いて、読み出したデータブロックを内部メモリ206のデータ格納ブロック303に格納する(第2のデータ処理部の動作)。
このように、本実施の形態では、CPU201自体がメモリ制御システムとして機能する。
In the CPU 201, an address conversion program 209 and a memory access control program 210 are executed.
The address conversion program 209 is a program that performs conversion between the address of the external memory 203 and the address of the internal memory 206.
The memory access control program 210 is an example of a duplicate data determination unit, a first data processing unit, and a second data processing unit.
That is, in the memory access control program 210, when reading of any data stored in the external memory 203 is requested by another program (not shown) executed by the CPU 201, the read target data is copied. It is determined whether or not the data is stored in the internal memory 206 (operation of the replicated data determination unit). The read target data is supplied to another program (the program that requested reading) executed by the CPU 201 (operation of the first data processing unit).
Furthermore, in the memory access control program 210, when a copy of the read target data is not stored in the internal memory 206, after the read target data is read from the external memory 203, a data block including the read target data is stored in the external memory. Then, using the DMA controller 703 (part of the second data processing unit), the read data block is stored in the data storage block 303 of the internal memory 206 (operation of the second data processing unit).
Thus, in this embodiment, the CPU 201 itself functions as a memory control system.

なお、以下では、「アドレス変換プログラム209が・・・する」や「メモリアクセス制御プログラム210が・・・する」といった記述を行うが、これらは、「アドレス変換プログラム209が実行され、アドレス変換プログラム209のプロセス又はタスクが・・・する」、「メモリアクセス制御プログラム210が実行され、メモリアクセス制御プログラム210のプロセス又はタスクが・・・する」という意味である。   In the following description, “address conversion program 209...” And “memory access control program 210...” Are described, but these are “address conversion program 209 is executed and address conversion program is executed. 209 process or task ... "means" the memory access control program 210 is executed and the process or task of the memory access control program 210 does ".

図4は、CPU201が外部メモリ203のデータをREADする時の動作を示したフローチャートである。
以下、図4の各ステップを説明する。
FIG. 4 is a flowchart showing an operation when the CPU 201 reads data in the external memory 203.
Hereinafter, each step of FIG. 4 will be described.

まず、CPU201の他のプログラムより特定のデータのREAD要求があった場合にメモリアクセス制御プログラム210が実行され、メモリアクセス制御プログラム210は、複製状態管理情報208を参照し、READするデータ(読み出し対象データ)の複製が複製データ領域207に格納されているかを調べる(ステップS401)。より具体的には、有効/無効情報302が有効であり、読み出し対象データの外部メモリ203上のアドレスが外部メモリアドレス301に示されているデータ格納ブロックが存在するかどうかを調べる。
データの複製が複製データ領域207にあると判定した場合は、アドレス変換プログラム209が実行され、外部メモリ203のアドレスが複製データ領域のアドレスに変換され(ステップS402)、メモリアクセス制御プログラム210により複製データ領域207に格納されているデータがREAD要求を行った他のプログラムに返される(ステップS403)。
一方、データの複製が複製データ領域207にないと判定した場合は、メモリアクセス制御プログラム210により外部メモリ203からREAD対象のデータが取得され、READ要求を行った他のプログラムに返される(ステップS404)。
また、メモリアクセス制御プログラム210は、READ対象データを含むデータブロックを外部メモリ203から読み出して複製データ領域207に格納するよう、DMAコントローラ703を用いて、DMA転送を行う(ステップS405)。
さらに、メモリアクセス制御プログラム210は、ステップS405で転送したデータブロックのデータ格納ブロックを有効にするよう複製状態管理情報208の有効/無効情報302を更新し(有効にする)、また、ステップS405で転送したデータブロックに対応する外部メモリ203のアドレスを外部メモリアドレス301に設定する(ステップS406)。
First, when there is a READ request for specific data from another program of the CPU 201, the memory access control program 210 is executed. The memory access control program 210 refers to the replication status management information 208 and reads data to be read (read target). It is checked whether or not a duplicate of (data) is stored in the duplicate data area 207 (step S401). More specifically, it is checked whether or not there is a data storage block in which the valid / invalid information 302 is valid and the address of the read target data on the external memory 203 is indicated by the external memory address 301.
If it is determined that the copy of the data is in the copy data area 207, the address conversion program 209 is executed, the address of the external memory 203 is converted to the address of the copy data area (step S402), and the memory access control program 210 copies the data. The data stored in the data area 207 is returned to the other program that made the READ request (step S403).
On the other hand, if it is determined that there is no data replication in the replication data area 207, the memory access control program 210 acquires the READ target data from the external memory 203 and returns it to the other program that made the READ request (step S404). ).
Further, the memory access control program 210 performs DMA transfer using the DMA controller 703 so as to read the data block including the READ target data from the external memory 203 and store it in the duplicate data area 207 (step S405).
Further, the memory access control program 210 updates (validates) the valid / invalid information 302 of the replication status management information 208 so as to validate the data storage block of the data block transferred in step S405, and also in step S405. The address of the external memory 203 corresponding to the transferred data block is set to the external memory address 301 (step S406).

図5は、CPU201が外部メモリ203のデータをWRITEする時の動作を示したフローチャートである。   FIG. 5 is a flowchart showing an operation when the CPU 201 writes data in the external memory 203.

まず、CPU201の他のプログラムより特定のデータのWRITE要求があった場合にメモリアクセス制御プログラム210が実行され、メモリアクセス制御プログラム210により外部メモリ203にWRITE対象のデータを書き込む(ステップS501)。
その後、メモリアクセス制御プログラム210が、複製状態管理情報208を用いて、外部メモリ203に書き込んだアドレス(外部メモリのアドレス)のデータが複製データ領域207にあるかを調べる(ステップS502)。
データがある場合は、アドレス変換プログラム209により、外部メモリ203のアドレスが複製データ領域のアドレスに変換され(ステップS503)、メモリアクセス制御プログラム210により複製データ領域207のデータが外部メモリ203に書き込まれたデータに変更される(ステップS504)。
First, when there is a WRITE request for specific data from another program of the CPU 201, the memory access control program 210 is executed, and the memory access control program 210 writes the data to be written to the external memory 203 (step S501).
Thereafter, the memory access control program 210 uses the replication status management information 208 to check whether the data at the address (external memory address) written in the external memory 203 exists in the replication data area 207 (step S502).
If there is data, the address conversion program 209 converts the address of the external memory 203 into the address of the duplicate data area (step S503), and the memory access control program 210 writes the data of the duplicate data area 207 to the external memory 203. (Step S504).

図6はメモリアクセス制御プログラム210に相当する、CPU201から外部メモリ203にアクセスする際のアクセス関数例を示す。
CPU201が外部メモリのデータへREADするときはmem_read関数601を、WRITEするときはmem_write関数602を呼び出してアクセスする。
mem_read関数601の動作は図4のフローチャートで、mem_write関数602の動作は図5のフローチャートで示す通りである。
FIG. 6 shows an example of an access function corresponding to the memory access control program 210 when the CPU 201 accesses the external memory 203.
When the CPU 201 reads the data in the external memory, the mem_read function 601 is called, and when the WRITE is performed, the mem_write function 602 is called and accessed.
The operation of the mem_read function 601 is as shown in the flowchart of FIG. 4, and the operation of the mem_write function 602 is as shown in the flowchart of FIG.

このように、本実施の形態によれば、外部メモリ203のデータが内部メモリ206内の複製データ領域207にある場合は複製データ領域207からデータをREADする。内部メモリ206はCPU201とバス205を経由せず直接アクセスすることができるため、高速にデータを読み出すことができる。   Thus, according to the present embodiment, when the data in the external memory 203 is in the duplicate data area 207 in the internal memory 206, the data is read from the duplicate data area 207. Since the internal memory 206 can be directly accessed without going through the CPU 201 and the bus 205, data can be read at high speed.

従来のキャッシュメモリではキャッシュミスが発生するとキャッシュミスをしたデータを含むブロックをキャッシュメモリに格納する動作とCPUにキャッシュミスをしたデータを返す動作を同時に行うが、本実施の形態ではキャッシュミスが発生すると外部メモリからキャッシュミスをしたデータを取得してCPUに返した後、DMAによって内部メモリにキャッシュミスをしたデータを含むデータブロックを内部メモリに転送する。
つまり、従来のキャッシュメモリではキャッシュミスしたデータを含むデータブロックをREADしてその中の必要なデータをCPUに返すが、本実施の形態では、まず必要なデータをREADした後にキャッシュミスしたデータを含むデータブロックのREADを行う。 このため、本実施の形態によれば、キャッシュが発生してからCPUにデータを供給するまでの時間が従来に比べて短時間となり、CPUの処理性能を向上させることができる。
In a conventional cache memory, when a cache miss occurs, the block containing the cache missed data is simultaneously stored in the cache memory and the cache missed data is returned to the CPU at the same time. However, in this embodiment, a cache miss occurs. Then, after acquiring the data having a cache miss from the external memory and returning it to the CPU, the data block including the data having the cache miss is transferred to the internal memory by the DMA.
In other words, in a conventional cache memory, a data block including cache missed data is read and necessary data in the data block is returned to the CPU. In this embodiment, first, the necessary data is read and then the cache missed data is read. Read the data block that contains it. For this reason, according to the present embodiment, the time from when the cache is generated to when the data is supplied to the CPU is shorter than before, and the processing performance of the CPU can be improved.

さらに、複製データ領域207に複製があるデータをWRITEする場合は外部メモリ203と複製データ領域207の両方を更新することで外部メモリ203のデータは常に複製データ領域207と同じになっている。
そのため、CPU202やI/Oデバイス204が外部メモリ203のデータに対していつREADアクセスを行っても正しいデータにアクセスすることができる。
Furthermore, when data having a copy in the duplicate data area 207 is written, the data in the external memory 203 is always the same as the duplicate data area 207 by updating both the external memory 203 and the duplicate data area 207.
Therefore, correct data can be accessed whenever the CPU 202 or the I / O device 204 performs READ access to the data in the external memory 203.

外部メモリ203のデータの内部メモリ206の格納場所の決定方法に関しては明確にしなかったが、外部メモリ203のXX番地からXX+SIZE番地までのデータを内部メモリ206のYY番地からYY+SIZE番地に格納するといったように格納場所を固定してもよい。
格納場所を固定した場合、外部メモリ203のアドレスを内部メモリ206のアドレスに一意に変換できるため、図3の各ブロックの外部メモリアドレス301の要素はなくてもよい。
また、キャッシュメモリで利用されるダイレクトマップ方式のようにアドレスの一部をインデックスとして格納するブロックを決定してもよい。
Although the method for determining the storage location of the data in the external memory 203 in the internal memory 206 has not been clarified, the data from the address XX to the address XX + SIZE in the external memory 203 is stored from the YY address to the YY + SIZE address in the internal memory 206. The storage location may be fixed.
When the storage location is fixed, the address of the external memory 203 can be uniquely converted to the address of the internal memory 206, so the element of the external memory address 301 of each block in FIG.
Further, a block for storing a part of the address as an index may be determined as in the direct map method used in the cache memory.

本実施の形態ではCPU202やI/Oデバイス204が外部メモリ203のデータを書き換えた場合、外部メモリ203と内部メモリ206とのデータの整合性を保つことはできない。
しかし、CPU202やI/Oデバイス204が外部メモリ203のデータを書き換えない場合においては本実施の形態にて外部メモリ203へのアクセス高速化を実現することができる。
また、CPU202やI/Oデバイス204が外部メモリ203のデータを書き換える場合にいては、実施の形態2で説明する。
In this embodiment, when the CPU 202 or the I / O device 204 rewrites data in the external memory 203, data consistency between the external memory 203 and the internal memory 206 cannot be maintained.
However, when the CPU 202 or the I / O device 204 does not rewrite the data in the external memory 203, the access speed to the external memory 203 can be increased in this embodiment.
Further, the case where the CPU 202 or the I / O device 204 rewrites data in the external memory 203 will be described in the second embodiment.

本実施の形態では、外部メモリ203にREADアクセスした際に複製データ領域207に複製データがなければDMAを用いて外部メモリ203のデータを複製データ領域207に転送したが、データの読み出しが要求される前にあらかじめ複製データ領域207にデータを転送しておいてもよい。
つまり、外部メモリ203のサイズと同じサイズ(または外部メモリ203内のプログラムが使用している領域のサイズ)を内部メモリ206内に確保することで、外部メモリ203の全てのデータの複製を内部メモリ206に格納するようにしてもよい。
その場合、図4のステップS405、ステップS406の処理は不要になる。
In this embodiment, when there is no duplicate data in the duplicate data area 207 when READ access is made to the external memory 203, the data in the external memory 203 is transferred to the duplicate data area 207 using DMA. The data may be transferred to the duplicate data area 207 in advance.
That is, by ensuring in the internal memory 206 the same size as the size of the external memory 203 (or the size of the area used by the program in the external memory 203), all the data in the external memory 203 is duplicated. The data may be stored in 206.
In that case, the processing in steps S405 and S406 in FIG. 4 is not necessary.

実施の形態2.
図23は、実施の形態2におけるシステムの構成例を示す。
実施の形態1の図2と同じ構成部品に関しては同じ番号を振り、説明は省略する。
実施の形態2ではバスブリッジ回路211と外部メモリ203の間にメモリ制御装置701を備えている。
本実施の形態では、CPU201のメモリアクセス制御プログラム210が複製データ判定部及び第1のデータ処理部に相当し、メモリ制御装置701が第2のデータ処理部に相当する。
このため、本実施の形態では、CPU201及びメモリ制御装置701の組合せがメモリ制御システムに相当する。
Embodiment 2. FIG.
FIG. 23 shows a configuration example of the system in the second embodiment.
The same components as those in FIG. 2 of the first embodiment are assigned the same reference numerals and description thereof is omitted.
In the second embodiment, a memory control device 701 is provided between the bus bridge circuit 211 and the external memory 203.
In the present embodiment, the memory access control program 210 of the CPU 201 corresponds to the duplicate data determination unit and the first data processing unit, and the memory control device 701 corresponds to the second data processing unit.
For this reason, in this embodiment, the combination of the CPU 201 and the memory control device 701 corresponds to a memory control system.

本実施の形態では、CPU201で実行されている他のプログラム(不図示)により外部メモリ203に格納されているいずれかのデータの読み出しが要求された場合に、メモリアクセス制御プログラム210により、読み出し対象データの複製が内部メモリ206に格納されているか否かが判定され(複製データ判定部の動作)、読み出し対象データの複製が内部メモリ206に格納されていない場合に、読み出し対象データを外部メモリ203から読み出し、読み出した読み出し対象データをCPU201で実行されている他のプログラム(読み出しの要求元のプログラム)に供給する(第1のデータ処理部の動作)。
更に、メモリ制御装置701は、メモリアクセス制御プログラム210により読み出し対象データが外部メモリ203から読み出された後に、読み出し対象データを含むデータブロックを外部メモリから読み出し、読み出したデータブロックを内部メモリ206のデータ格納ブロックに格納する(第2のデータ処理部の動作)。
In the present embodiment, when reading of any data stored in the external memory 203 is requested by another program (not shown) executed by the CPU 201, the memory access control program 210 reads the data to be read. It is determined whether or not a copy of the data is stored in the internal memory 206 (operation of the replicated data determination unit). When a copy of the read target data is not stored in the internal memory 206, the read target data is stored in the external memory 203. The read target data is supplied to another program (a program that has requested reading) executed by the CPU 201 (operation of the first data processing unit).
Further, the memory control device 701 reads the data block including the read target data from the external memory after the read target data is read from the external memory 203 by the memory access control program 210, and reads the read data block in the internal memory 206. Store in the data storage block (operation of the second data processing unit).

また、本実施の形態では、メモリ制御装置701は、外部メモリ203から読み出したデータブロックを内部メモリ206内のいずれかのデータ格納ブロックに格納する際に、当該データ格納ブロックの有効/無効情報302の設定を参照して当該データ格納ブロックに既に他のデータブロックが格納されているか否かを判断し、有効/無効情報302が有効である場合(当該データ格納ブロックに既に他のデータブロックが格納されている場合)に、当該データ格納ブロックの有効/無効情報302の設定を無効(データブロックが格納されていないことを表す設定)に更新し、外部メモリ203から読み出したデータブロックを他のデータブロックに置き換えて格納し、当該データ格納ブロックの有効/無効情報302の設定を有効(データブロックが格納されていることを表す設定)に更新する。   In this embodiment, when the memory control device 701 stores the data block read from the external memory 203 in any data storage block in the internal memory 206, the valid / invalid information 302 of the data storage block is stored. , It is determined whether or not another data block is already stored in the data storage block, and if the valid / invalid information 302 is valid (the other data block is already stored in the data storage block) The data storage block valid / invalid information 302 is updated to invalid (setting indicating that no data block is stored), and the data block read from the external memory 203 is changed to other data. The data is stored in the block, and the setting of the validity / invalidity information 302 of the data storage block is valid It updates the setting) representing the the data block is stored.

図7は、図23に示したメモリ制御装置701の内部構成例を示す。
メモリ制御装置701は、バスI/F(Interface)702、DMAコントローラ703、READ監視回路704、データ転送回路705、アドレス変換回路706、複製情報管理回路707、WRITE監視回路708、データ無効化回路709を備えている。
FIG. 7 shows an internal configuration example of the memory control device 701 shown in FIG.
The memory control device 701 includes a bus I / F (Interface) 702, a DMA controller 703, a READ monitoring circuit 704, a data transfer circuit 705, an address conversion circuit 706, a replication information management circuit 707, a WRITE monitoring circuit 708, and a data invalidation circuit 709. It has.

バスI/F702は、バス205を経由してきた外部メモリ203へのアクセスを受信し、アドレス信号710、アクセス要求元を表すイニシエータ情報信号711、RW信号712を出力する。
また、DMAコントローラ703、データ転送回路705、データ無効化回路709から出力されたアドレス信号、データ信号、制御信号をもとにバス205または外部メモリ203のデータ転送を制御する。
The bus I / F 702 receives an access to the external memory 203 via the bus 205, and outputs an address signal 710, an initiator information signal 711 indicating an access request source, and an RW signal 712.
Further, data transfer of the bus 205 or the external memory 203 is controlled based on the address signal, data signal, and control signal output from the DMA controller 703, the data transfer circuit 705, and the data invalidation circuit 709.

DMAコントローラ703はデータ転送回路705から起動され、外部メモリ203のデータを複製データ領域207へ転送する。   The DMA controller 703 is activated from the data transfer circuit 705 and transfers data in the external memory 203 to the duplicate data area 207.

複製情報管理回路707は複製データ領域207に格納されている複製データの外部メモリ203のアドレスと有効情報を管理する。
複製情報管理回路707の構成を図8に示す。
複製情報管理回路707は入力された外部メモリアドレス信号718のデータを格納するアドレスレジスタ801、データ格納ブロックの情報を格納するメモリ802、出力する外部メモリアドレス信号のデータを作成するためのアドレスレジスタ803から構成される。
アドレスレジスタ801、803はそれぞれタグ部、インデックス部、オフセット部に分けることができる。
本実施の形態では複製データを格納する領域(データ格納ブロック)をキャッシュメモリの格納方式の一種であるダイレクトマップ方式で決定する。 ダイレクトマップ方式はアドレスの一部から複製データ(データブロック)を格納するデータ格納ブロックを決定する方式であり、本実施の形態ではアドレスレジスタ801のインデックス部によって複製データを格納するデータ格納ブロックを決定する。
そのため、メモリ802には、データ格納ブロックごとに、格納されている外部メモリ203のアドレスのタグ部とそのデータ格納ブロックが有効であるかを示す有効情報が格納されている。
メモリ802は制御信号720がREAD信号の場合、アドレスレジスタ801のインデックス部に対応するデータ格納ブロックのタグアドレスと有効情報を出力する。
出力されたタグアドレスはアドレスレジスタ803のタグ部に格納され、外部メモリアドレス信号721として出力される。有効情報は有効信号722として出力される。
制御信号720がWRITE信号の場合はアドレスレジスタ801のタグ部と入力された有効信号719がメモリ802に書き込まれる。
The duplicate information management circuit 707 manages the address and valid information of the duplicate data stored in the duplicate data area 207 in the external memory 203.
The configuration of the duplicate information management circuit 707 is shown in FIG.
The duplicate information management circuit 707 includes an address register 801 that stores data of the input external memory address signal 718, a memory 802 that stores data storage block information, and an address register 803 that generates data of the output external memory address signal. Consists of
The address registers 801 and 803 can be divided into a tag part, an index part, and an offset part, respectively.
In the present embodiment, an area (data storage block) for storing replicated data is determined by a direct map method, which is a kind of cache memory storage method. The direct map method is a method for determining a data storage block for storing replicated data (data block) from a part of an address. In this embodiment, the data storage block for storing replicated data is determined by the index part of the address register 801. To do.
Therefore, the memory 802 stores, for each data storage block, a tag portion of the address of the stored external memory 203 and valid information indicating whether the data storage block is valid.
When the control signal 720 is a READ signal, the memory 802 outputs the tag address and valid information of the data storage block corresponding to the index part of the address register 801.
The output tag address is stored in the tag portion of the address register 803 and output as an external memory address signal 721. Valid information is output as a valid signal 722.
When the control signal 720 is a WRITE signal, the tag portion of the address register 801 and the input valid signal 719 are written in the memory 802.

アドレス変換回路706は外部メモリ203のアドレスから、そのアドレスのデータの複製が格納されている可能性のある複製データ領域207のアドレスとその複製データ領域207に対するデータ格納ブロックの複製状態管理情報208のアドレスを出力する。   The address conversion circuit 706 reads from the address of the external memory 203 the address of the duplicate data area 207 where the duplicate of the data at that address may be stored and the copy status management information 208 of the data storage block for that duplicate data area 207. Output address.

アドレス変換回路706の構成を図9に示す。
アドレス変換回路706には外部メモリアドレス信号715のデータを格納するレジスタ901と乗算器902、903、加算器904、905、複製状態管理情報208と複製データ領域207のそれぞれのデータ格納ブロックのアドレス間隔が格納されているブロックサイズレジスタ906、907、複製状態管理情報と複製データ領域のそれぞれの先頭アドレスが格納されているベースレジスタ908、909がある。
複製状態管理情報アドレス信号717は、外部メモリアドレス信号715から入力されたアドレスのインデックス部からブロック番号を生成し、そのブロックの複製状態管理情報が格納されているアドレスを乗算器902、加算器904、ブロックサイズレジスタ906、ベースレジスタ908をもとに生成する。
内部メモリアドレス信号714に関しても、外部メモリアドレス信号715から入力されたアドレスのインデックス部からブロック番号を生成し、そのブロックのデータが格納されているアドレスからオフセット部だけ加算したアドレスを乗算器903、加算器905、ブロックサイズレジスタ907、ベースレジスタ909をもとに生成する。
The configuration of the address conversion circuit 706 is shown in FIG.
The address conversion circuit 706 has a register 901 for storing data of the external memory address signal 715, multipliers 902 and 903, adders 904 and 905, address intervals of the respective data storage blocks of the replication status management information 208 and the replication data area 207. Are stored in block size registers 906 and 907, and copy status management information and base registers 908 and 909 in which the respective head addresses of the copy data area are stored.
The replication status management information address signal 717 generates a block number from the index part of the address input from the external memory address signal 715, and uses the address where the replication status management information of the block is stored as a multiplier 902 and an adder 904. , And generated based on the block size register 906 and the base register 908.
As for the internal memory address signal 714, a block number is generated from the index part of the address inputted from the external memory address signal 715, and an address obtained by adding only the offset part from the address where the data of the block is stored is a multiplier 903, It is generated based on an adder 905, a block size register 907, and a base register 909.

READ監視回路704はバスI/F702から出力されたアドレス信号710、イニシエータ情報信号711、RW信号712をもとにCPU201から外部メモリ203へREADアクセスが発生した場合に(バスI/F702から出力された)アドレス信号713とイベント信号714を出力する。
READ監視回路704の内部構成を図10に示す。
READ監視回路704はイニシエータ情報を格納するレジスタ1001、READ信号を表すレジスタ1002、比較器1003、1004、AND回路1005から構成される。
イニシエータ情報レジスタ1001には、CPU201を示す情報が格納されており、比較器1003は入力されたイニシエータ情報信号711がイニシエータ情報レジスタ1001と一致すれば‘1’を出力する。
また、RW信号712とREAD信号レジスタ1002の内容が一致すれば比較器1004は‘1’を出力する。
したがって、イニシエータ情報信号711にCPU201を示す情報、RW信号712にREAD信号が入力されるとAND回路1005が‘1’になり、イベント信号714が‘1’(有効)になる。
バスI/F702から入力されたアドレス信号710はアドレス信号713としてそのまま出力される。
The READ monitoring circuit 704 outputs (output from the bus I / F 702) when a read access from the CPU 201 to the external memory 203 is generated based on the address signal 710, initiator information signal 711, and RW signal 712 output from the bus I / F 702. The address signal 713 and the event signal 714 are output.
The internal configuration of the READ monitoring circuit 704 is shown in FIG.
The READ monitoring circuit 704 includes a register 1001 that stores initiator information, a register 1002 that represents a READ signal, comparators 1003 and 1004, and an AND circuit 1005.
Information indicating the CPU 201 is stored in the initiator information register 1001, and the comparator 1003 outputs “1” if the input initiator information signal 711 matches the initiator information register 1001.
If the contents of the RW signal 712 and the READ signal register 1002 match, the comparator 1004 outputs “1”.
Therefore, when information indicating the CPU 201 is input to the initiator information signal 711 and the READ signal is input to the RW signal 712, the AND circuit 1005 becomes “1” and the event signal 714 becomes “1” (valid).
The address signal 710 input from the bus I / F 702 is output as it is as the address signal 713.

データ転送回路705はREAD監視回路704がイベント信号714を有効にすると、アドレス信号713で示すアドレスを含むブロックの外部メモリ203のデータを複製データ領域207に転送するようにDMAコントローラ703を制御する。
また、複製情報管理回路707の該当ブロックの有効状態を有効にする。データ転送回路705の詳細な動作の説明は後述する。
The data transfer circuit 705 controls the DMA controller 703 to transfer the data in the external memory 203 of the block including the address indicated by the address signal 713 to the duplicate data area 207 when the READ monitoring circuit 704 validates the event signal 714.
Also, the valid state of the corresponding block of the duplicate information management circuit 707 is validated. The detailed operation of the data transfer circuit 705 will be described later.

WRITE監視回路708はバスI/F702から出力されたアドレス信号710、イニシエータ情報信号711、RW信号712をもとに、CPU202またはI/Oデバイス204から外部メモリ203へWRITEアクセスが発生した場合に(バスI/F702から出力された)アドレス信号723とイベント信号724を出力する。
WRITE監視回路708の内部構成を図11に示す。
WRITE監視回路708はイニシエータ情報を格納するレジスタ1101、WRITE信号を表すレジスタ1102、比較器1103、1104、AND回路1105から構成される。
イニシエータ情報レジスタ1101には、CPU202またはI/Oデバイス204であることを示す情報が格納されており、比較器1103は入力されたイニシエータ情報信号711がイニシエータ情報レジスタ1101と一致すれば‘1’を出力する。また、RW信号712とWRITE信号レジスタ1102の内容が一致すれば比較器1104は‘1’を出力する。
したがって、イニシエータ情報信号711にCPU202またはI/Oデバイス204を示す情報、RW信号712にWRITE信号が入力されるとAND回路1105が‘1’になり、イベント信号724が‘1’(有効)になる。
バスI/F702から入力されたアドレス信号710はアドレス信号723としてそのまま出力される。
Based on the address signal 710, the initiator information signal 711, and the RW signal 712 output from the bus I / F 702, the WRITE monitoring circuit 708 receives a WRITE access from the CPU 202 or the I / O device 204 to the external memory 203 ( The address signal 723 (output from the bus I / F 702) and the event signal 724 are output.
An internal configuration of the WRITE monitoring circuit 708 is shown in FIG.
The WRITE monitoring circuit 708 includes a register 1101 that stores initiator information, a register 1102 that represents a WRITE signal, comparators 1103 and 1104, and an AND circuit 1105.
The initiator information register 1101 stores information indicating the CPU 202 or the I / O device 204, and the comparator 1103 sets “1” if the input initiator information signal 711 matches the initiator information register 1101. Output. If the contents of the RW signal 712 and the WRITE signal register 1102 match, the comparator 1104 outputs “1”.
Therefore, when information indicating the CPU 202 or the I / O device 204 is input to the initiator information signal 711 and the WRITE signal is input to the RW signal 712, the AND circuit 1105 becomes “1”, and the event signal 724 becomes “1” (valid). Become.
The address signal 710 input from the bus I / F 702 is output as it is as the address signal 723.

データ無効化回路709はイベント信号724が有効になると、アドレス信号723で指定したデータを含むブロックの複製データを無効化するように複製情報管理回路707を更新し、さらに複製状態管理情報208のデータを更新するようバスI/F702にアドレス信号723とデータ信号724と制御信号725を出力する。
データ無効化回路709の詳細な動作の説明は後述する。
When the event signal 724 becomes valid, the data invalidation circuit 709 updates the duplication information management circuit 707 so as to invalidate the duplication data of the block including the data designated by the address signal 723, and further the data of the duplication status management information 208 The address signal 723, the data signal 724, and the control signal 725 are output to the bus I / F 702 so as to update the data.
The detailed operation of the data invalidation circuit 709 will be described later.

図12に本実施の形態における内部メモリ206内の複製データ領域207と複製状態管理情報208のメモリ配置を示す。実施の形態1と同様、複製データ領域207はN個のデータ格納ブロックに分割されて格納される。
本実施の形態では各データ格納ブロックのデータ領域の後にそのデータ格納ブロックに格納されているデータの複製元のある外部メモリのアドレス1202と有効/無効情報1203が配置されている。
FIG. 12 shows the memory arrangement of the replication data area 207 and the replication status management information 208 in the internal memory 206 in the present embodiment. Similar to the first embodiment, the duplicate data area 207 is divided and stored in N data storage blocks.
In the present embodiment, an address 1202 and valid / invalid information 1203 of an external memory from which data stored in the data storage block is copied are arranged after the data area of each data storage block.

本構成における動作を説明する。
CPU201が外部メモリ203のデータをREADする時(動作1)、WRITEする時(動作2)、CPU202が外部メモリ203のデータをREADする時(動作3)、WRITEする時(動作4)の4つの場合の動作をそれぞれ説明する。
The operation in this configuration will be described.
When the CPU 201 reads the data in the external memory 203 (operation 1), WRITE (operation 2), the CPU 202 reads the data in the external memory 203 (operation 3), and when the WRITE is performed (operation 4). Each operation will be described.

(動作1)CPU201が外部メモリ203のデータをREADする時
CPU201が外部メモリ203へREADアクセスを行ったときのCPU201の動作を図13のフローチャートに示す。
図13のフローチャートは図4のフローチャートのステップS405、S406を除いたものと同一である。
図4と同様に、CPU201では、メモリアクセス制御プログラム210がREAD対象のデータの複製が内部メモリ206の複製データ領域207に格納されているかを判断し(S401)、アクセスするデータが複製データ領域207にある場合は、アドレス変換プログラム209が外部メモリ203のアドレスを内部メモリ206のアドレスに変換し(ステップS402)、メモリアクセス制御プログラム210が複製データ領域207にアクセスしてデータを取得する(ステップS403)。
ステップS403にてCPU201が複製データ領域207からデータを取得した時は、メモリ制御装置701は何も動作しない。
一方、アクセスするデータが複製データ領域207にない場合は、メモリアクセス制御プログラム210が外部メモリ203にアクセスしてREAD対象データを取得する(ステップS404)。
なお、本実施の形態では、メモリアクセス制御プログラム210は、外部メモリ203のデータブロックをDMAコントローラ703を用いて転送する動作(図4のS405)と、複製状態管理情報208を更新する動作(図4のS406)は行わない。
(Operation 1) When CPU 201 READs Data in External Memory 203 The operation of CPU 201 when CPU 201 performs READ access to external memory 203 is shown in the flowchart of FIG.
The flowchart of FIG. 13 is the same as that of FIG. 4 except for steps S405 and S406.
As in FIG. 4, in the CPU 201, the memory access control program 210 determines whether a copy of the data to be read is stored in the copy data area 207 of the internal memory 206 (S 401). If there is, the address conversion program 209 converts the address of the external memory 203 into the address of the internal memory 206 (step S402), and the memory access control program 210 accesses the duplicate data area 207 to acquire data (step S403). ).
When the CPU 201 acquires data from the duplicate data area 207 in step S403, the memory control device 701 does not operate.
On the other hand, if there is no data to be accessed in the replicated data area 207, the memory access control program 210 accesses the external memory 203 and acquires READ target data (step S404).
In this embodiment, the memory access control program 210 transfers the data block in the external memory 203 using the DMA controller 703 (S405 in FIG. 4) and updates the replication status management information 208 (FIG. Step S406) is not performed.

次に、ステップS404にてCPU201が外部メモリ203にREADアクセスした後のメモリ制御装置701の動作を図7を用いて説明する。   Next, the operation of the memory control device 701 after the CPU 201 performs READ access to the external memory 203 in step S404 will be described with reference to FIG.

CPU201が外部メモリ203にアクセスした際、バスI/F702はアドレス信号710にCPU201がアクセスした外部メモリ203のアドレス、イニシエータ情報信号711にCPU201を示す情報、RW信号712にREAD情報を出力する。
READ監視回路704はイニシエータ情報信号711がCPU201、RW信号712がREAD情報であるためイベント信号714を有効にする。
WRITE監視回路708はイベント信号724を有効にはしない。
When the CPU 201 accesses the external memory 203, the bus I / F 702 outputs the address signal 710 to the address of the external memory 203 accessed by the CPU 201, the initiator information signal 711 indicates information indicating the CPU 201, and the RW signal 712 outputs READ information.
The READ monitoring circuit 704 validates the event signal 714 because the initiator information signal 711 is the CPU 201 and the RW signal 712 is the READ information.
The WRITE monitoring circuit 708 does not enable the event signal 724.

イベント信号714が有効になったときのデータ転送回路705の動作を示すフローチャートを図14に示す。   FIG. 14 is a flowchart showing the operation of the data transfer circuit 705 when the event signal 714 becomes valid.

データ転送回路705は、イベント信号714が有効になると(ステップS1401)、外部メモリアドレス信号718にアドレス信号713の値、制御信号720にREAD信号を出力して複製情報管理回路707から外部メモリのアドレスが入るブロックの外部メモリアドレス信号721と有効信号722を取得する(ステップS1402)。
データ転送回路705は、複製情報管理回路707から出力された外部メモリアドレス信号721のアドレスとアドレス信号713のアドレスが同一であり、かつ、有効信号722が有効であったならば(ステップS1403)、CPU201からREADアクセスされたデータのアドレスはすでに複製データ領域207にあるため、何も行わずにステップS1401に戻り、次にイベント信号714が有効になるまで待つ。
CPU201が図13のフローチャートのステップS401にて複製データ領域207にデータがないのにも関わらず、ステップS1403でデータが複製データ領域207にあると判定される状況としては、直前にCPU201が外部メモリ203にREADアクセスしたときのデータ転送がまだ終わっていない場合などがある。
ステップS1403にて複製データ領域207にデータがないと判定された場合(外部メモリアドレス信号721のアドレスとアドレス信号713のアドレスが同一でない又は有効信号722が有効でない場合)は、データ転送回路705は、外部メモリアドレス信号715にアドレス信号713から入力されたアドレスを出力し、アドレス変換回路706からアドレス信号713に対応する内部メモリアドレスと複製状態管理情報208のアドレスを取得する(ステップS1404)。
When the event signal 714 becomes valid (step S1401), the data transfer circuit 705 outputs the value of the address signal 713 to the external memory address signal 718 and the READ signal to the control signal 720 to output the address of the external memory from the replication information management circuit 707. The external memory address signal 721 and the valid signal 722 of the block in which is entered are acquired (step S1402).
If the address of the external memory address signal 721 output from the replication information management circuit 707 and the address of the address signal 713 are the same and the valid signal 722 is valid (step S1403), the data transfer circuit 705 Since the address of the data read-read from the CPU 201 is already in the duplicate data area 207, nothing is done and the process returns to step S1401 and waits until the event signal 714 becomes valid next.
As a situation in which the CPU 201 determines that the data is in the duplicate data area 207 in step S1403 even though there is no data in the duplicate data area 207 in step S401 in the flowchart of FIG. In some cases, the data transfer at the time of READ access to 203 has not been completed.
If it is determined in step S1403 that there is no data in the duplicate data area 207 (when the address of the external memory address signal 721 and the address of the address signal 713 are not the same or the valid signal 722 is not valid), the data transfer circuit 705 The address input from the address signal 713 is output to the external memory address signal 715, and the internal memory address corresponding to the address signal 713 and the address of the replication status management information 208 are acquired from the address conversion circuit 706 (step S1404).

ステップS1405では、ステップS1402にて取得した有効信号722が有効であるかを見ることで、他の外部メモリのデータブロックがそのデータ格納ブロックに格納されているかを調べている。より具体的には、有効信号722が有効であって、外部メモリアドレス信号721のアドレスとアドレス信号713のアドレスが同一でない場合は、他の外部メモリのデータブロックが当該データ格納ブロックに格納されていると判断できる。
格納したいデータ格納ブロックに他のデータブロックが格納されていれば(S1405でYES)、そのデータブロックを無効にするようアドレス信号726に複製状態管理情報アドレス信号717、データ信号727に無効情報、制御信号728にWRITE信号を出力して複製状態管理情報208を無効にする(ステップS1406)。
その後、外部メモリ203のデータを複製データ領域207にWRITEコマンドで転送するようにDMAコントローラ703を設定してデータ転送を行い(ステップS1407)、複製状態管理情報208の該当ブロックのメモリアドレスにアドレス信号713のアドレスを書き込み(ステップS1408)、複製状態管理情報208の該当ブロックを有効にするようデータ転送を行う(ステップS1409)。
In step S1405, it is checked whether the data block of another external memory is stored in the data storage block by checking whether the valid signal 722 acquired in step S1402 is valid. More specifically, when the valid signal 722 is valid and the address of the external memory address signal 721 and the address of the address signal 713 are not the same, the data block of another external memory is stored in the data storage block. Can be judged.
If another data block is stored in the data storage block to be stored (YES in S1405), the replication status management information address signal 717 is set in the address signal 726 and the invalid information is controlled in the data signal 727 so as to invalidate the data block. A WRITE signal is output to the signal 728 to invalidate the replication status management information 208 (step S1406).
Thereafter, the DMA controller 703 is set so that the data in the external memory 203 is transferred to the duplicate data area 207 by the WRITE command and the data is transferred (step S1407), and the address signal is sent to the memory address of the corresponding block in the duplicate status management information 208 The address 713 is written (step S1408), and data transfer is performed to validate the corresponding block of the replication status management information 208 (step S1409).

次に、図14のステップS1405〜ステップS1409の具体例を内部メモリ206の内容の変遷とともに説明する。
本説明では、内部メモリ206の複製データ領域207内のデータ格納ブロックn(以下、ブロックnと表記)に外部メモリ203のアドレスAのデータを含むデータブロックが格納されている状況で、このブロックnに外部メモリ203のアドレスBのデータを含むデータブロックを格納するときの動作を説明する。
なお、以下では、アドレスAのデータを含むデータブロックをアドレスAのデータ、アドレスBのデータを含むデータブロックをアドレスBのデータと表記する。
Next, a specific example of steps S1405 to S1409 in FIG. 14 will be described along with changes in the contents of the internal memory 206.
In this description, in a situation where a data block including data at address A of the external memory 203 is stored in a data storage block n (hereinafter referred to as block n) in the duplicate data area 207 of the internal memory 206, this block n The operation when storing the data block including the data of the address B in the external memory 203 will be described.
In the following description, a data block including data at address A is referred to as data at address A, and a data block including data at address B is referred to as data at address B.

ステップS1405の時点では、内部メモリ206の当該ブロックnの内容は以下の通りになる。
[ブロックnのデータ1201][有効/無効情報1202][外部メモリのアドレス1203]
=[アドレスAのデータ][有効][A]
At the time of step S1405, the contents of the block n in the internal memory 206 are as follows.
[Block 120 Data 1201] [Valid / Invalid Information 1202] [External Memory Address 1203]
= [Data at address A] [valid] [A]

ステップS1405がYESとなり、ステップS1406において、当該ブロックnの有効/無効情報を無効にする。
[ブロックnのデータ1201][有効/無効情報1202][外部メモリのアドレス1203]
=[アドレスAのデータ][無効][A]
Step S1405 becomes YES, and in step S1406, the validity / invalidity information of the block n is invalidated.
[Block 120 Data 1201] [Valid / Invalid Information 1202] [External Memory Address 1203]
= [Data at address A] [Invalid] [A]

また、ステップS1407において、外部メモリ203のアドレスBのデータを含むデータブロックを当該ブロックnのデータ1201に転送する。
[ブロックnのデータ1201][有効/無効情報1202][外部メモリのアドレス1203]
=[アドレスBのデータ(転送中はアドレスAのデータも混在)][無効][A]
In step S1407, the data block including the data at the address B in the external memory 203 is transferred to the data 1201 in the block n.
[Block 120 Data 1201] [Valid / Invalid Information 1202] [External Memory Address 1203]
= [Data of address B (data of address A is mixed during transfer)] [Invalid] [A]

更に、ステップS1408において、当該ブロックnの外部メモリ203のアドレス1203をBに変更する。
[ブロックnのデータ1201][有効/無効情報1202][外部メモリのアドレス1203]
=[アドレスBのデータ][無効][B]
In step S1408, the address 1203 of the external memory 203 of the block n is changed to B.
[Block 120 Data 1201] [Valid / Invalid Information 1202] [External Memory Address 1203]
= [Data at address B] [Invalid] [B]

そして、ステップS1409において、当該ブロックnを有効にする。
[ブロックnのデータ1201][有効/無効情報1202][外部メモリのアドレス1203]
=[アドレスBのデータ][有効][B]
In step S1409, the block n is validated.
[Block 120 Data 1201] [Valid / Invalid Information 1202] [External Memory Address 1203]
= [Data at address B] [valid] [B]

なお、ステップS1406においてブロックnの有効/無効情報を無効にするのは、有効のままではデータ転送中にCPU201がブロックnのデータにアクセスしてしまうと正しいデータを得ることができないためである。
上記の例で、有効/無効情報を無効にしなかった場合、ステップS1407での内部メモリ206のブロックnの内容は以下の通りになる。
[ブロックnのデータ1201][有効/無効情報1202][外部メモリのアドレス1203]
=[アドレスBのデータ][有効][A]
このとき、CPU201がアドレスAのデータをREADすると図13のステップS401でブロックnの有効/無効情報が有効でかつアドレスがAになっていることから、ステップS403でブロックnのデータを取得する。しかし、実際はブロックnのデータにはアドレスBのデータが格納されているため、正しいデータを取得できない。
このようにステップS1407のデータ転送中にCPUからアクセスされないようにするために、ステップS1406でデータを無効にしている。
The reason why the validity / invalidity information of block n is invalidated in step S1406 is that correct data cannot be obtained if the CPU 201 accesses the data of block n during data transfer without modification.
In the above example, when the valid / invalid information is not invalidated, the contents of the block n of the internal memory 206 in step S1407 are as follows.
[Block 120 Data 1201] [Valid / Invalid Information 1202] [External Memory Address 1203]
= [Data at address B] [valid] [A]
At this time, when the CPU 201 reads the data of the address A, since the valid / invalid information of the block n is valid and the address is A in step S401 in FIG. 13, the data of the block n is acquired in step S403. However, since the data of the address B is actually stored in the data of the block n, correct data cannot be acquired.
Thus, in order to prevent access from the CPU during the data transfer in step S1407, the data is invalidated in step S1406.

また、本実施の形態では、図12のメモリ配置にあるように、各エントリのデータと複製状態管理情報の領域は連続している。そこで、ステップS1407、S1408、S1409は1回の転送にてデータを書き換えるようDMAコントローラ703を設定し、起動させる。   In this embodiment, as shown in the memory arrangement of FIG. 12, the data of each entry and the replication status management information area are continuous. Therefore, in steps S1407, S1408, and S1409, the DMA controller 703 is set and started so as to rewrite data in one transfer.

最後に、外部メモリアドレス信号718にアドレス信号713、有効信号719に有効情報、制御信号720にWRITE信号を出力して複製情報管理回路707を更新する(ステップS1410)。   Finally, the address signal 713 is output to the external memory address signal 718, the valid information is output to the valid signal 719, and the WRITE signal is output to the control signal 720 to update the copy information management circuit 707 (step S1410).

以上が、(動作1)における動作例である。   The above is an operation example in (Operation 1).

(動作2)CPU201が外部メモリ203にデータをWRITEする時
CPU201が外部メモリのデータをWRITEする時の動作は図5に示したフローチャートと同じである。
複製データ領域207にデータがある場合は複製データ領域207のデータと外部メモリ203の両方にデータを書き込み、複製データ領域207にデータがない場合は外部メモリ203にのみデータを書き込む。
(Operation 2) When CPU 201 Writes Data to External Memory 203 The operation when CPU 201 writes data in the external memory is the same as the flowchart shown in FIG.
When there is data in the duplicate data area 207, data is written to both the duplicate data area 207 and the external memory 203, and when there is no data in the duplicate data area 207, data is written only to the external memory 203.

(動作3)CPU202またはI/Oデバイス204が外部メモリ203のデータをREADする時
CPU202またはI/Oデバイス204は外部メモリ203へ直接READアクセスを行う。動作2でも示した通り、CPU201がデータを変更しても常に最新のデータが外部メモリ203に書き込まれているため、データの整合性は保たれている。
(Operation 3) When the CPU 202 or the I / O Device 204 Reads Data in the External Memory 203 The CPU 202 or the I / O device 204 directly performs READ access to the external memory 203. As shown in operation 2, even if the CPU 201 changes the data, the latest data is always written in the external memory 203, so the data consistency is maintained.

(動作4)CPU202またはI/Oデバイス204が外部メモリ203にデータをWRITEする時
ここではCPU202が外部メモリ203にデータをWRITEした時の動作を説明する。
I/Oデバイス204が外部メモリ203にデータをWRITEした時の動作も同じである。
(Operation 4) When CPU 202 or I / O Device 204 Writes Data to External Memory 203 Here, an operation when the CPU 202 writes data to the external memory 203 will be described.
The operation when the I / O device 204 writes data to the external memory 203 is the same.

CPU202が外部メモリ203へWRITEするとバスI/F702はアドレス信号710にCPU202がアクセスした外部メモリ203のアドレス、イニシエータ情報信号711にCPU202を示す情報、RW信号712にWRITE情報を出力する。
WRITE監視回路708はイニシエータ情報信号711がCPU202、RW信号712がWRITE情報であるためイベント信号724を有効にする。READ監視回路704はイベント信号714を有効にはしない。
When the CPU 202 WRITEs to the external memory 203, the bus I / F 702 outputs the address signal 710 to the address of the external memory 203 accessed by the CPU 202, information indicating the CPU 202 to the initiator information signal 711, and WRITE information to the RW signal 712.
The WRITE monitoring circuit 708 validates the event signal 724 because the initiator information signal 711 is the CPU 202 and the RW signal 712 is the WRITE information. The READ monitoring circuit 704 does not enable the event signal 714.

イベント信号724が有効になったときのデータ無効化回路709の動作を示すフローチャートを図15に示す。
図15のステップS1501〜S1504の動作は図14のステップS1401〜S1404と同じである。
ただし、データ無効化回路709がアドレス信号723で指定されたデータのエントリを無効化するため、ステップS1503で複製データ領域207にアドレス信号723で指定されたデータがある場合はステップS1504を実行し、データがない場合はステップS1501に戻る。
複製データ領域207にアドレス信号723で指定されたアドレスのデータがある場合は、アドレス信号729に複製状態管理情報アドレス信号717から入力されたアドレス、データ信号730に無効情報、制御信号725にWRITE信号を出力し、複製状態管理情報208のデータを無効化する(ステップS1505)。
また、外部メモリアドレス信号718にアドレス信号723、有効信号719に無効情報、制御信号720にWRITE信号を出力することで複製情報管理回路707を更新する(ステップ1506)。
FIG. 15 is a flowchart showing the operation of the data invalidation circuit 709 when the event signal 724 becomes valid.
The operations in steps S1501 to S1504 in FIG. 15 are the same as those in steps S1401 to S1404 in FIG.
However, since the data invalidation circuit 709 invalidates the entry of the data designated by the address signal 723, if there is data designated by the address signal 723 in the duplicated data area 207 in step S1503, step S1504 is executed. If there is no data, the process returns to step S1501.
When there is data at the address specified by the address signal 723 in the duplicate data area 207, the address input from the duplicate status management information address signal 717 is the address signal 729, invalid information is the data signal 730, and the WRITE signal is the control signal 725. Is output, and the data of the replication status management information 208 is invalidated (step S1505).
Further, the replication information management circuit 707 is updated by outputting the address signal 723 as the external memory address signal 718, the invalid information as the valid signal 719, and the WRITE signal as the control signal 720 (step 1506).

以上のように動作することで、CPU201は外部メモリ203のデータの複製を内部メモリ206内の複製データ領域207に保持することができ、CPU201から外部メモリ203へのアクセス時間を短縮することができる。   By operating as described above, the CPU 201 can hold a copy of the data in the external memory 203 in the copy data area 207 in the internal memory 206, and the access time from the CPU 201 to the external memory 203 can be shortened. .

なお、図14のステップS1407〜ステップS1409のデータの転送は外部メモリ203のデータから複製データ領域207へ書き込むWRITEコマンドで転送する。   Note that the data transfer in steps S1407 to S1409 in FIG. 14 is performed by a WRITE command for writing from the data in the external memory 203 to the duplicate data area 207.

また、本実施の形態ではCPU201から外部メモリ203へのREADアクセスを検知するとREAD監視回路704とデータ転送回路705により、外部メモリ203のデータを内部メモリ206内へ転送するため、CPU201が外部メモリ203から内部メモリ206へデータを転送する処理を行う必要がない。   In this embodiment, when the READ access from the CPU 201 to the external memory 203 is detected, the data in the external memory 203 is transferred into the internal memory 206 by the READ monitoring circuit 704 and the data transfer circuit 705. There is no need to transfer data from the memory to the internal memory 206.

また、CPU201は外部メモリ203のデータをWRITEした場合は常に外部メモリ203へも書き込むため、CPU202やI/Oデバイス204が外部メモリ203にREADアクセスしてもデータの整合性を保つことができる。   In addition, since the CPU 201 always writes data in the external memory 203 to the external memory 203, data consistency can be maintained even if the CPU 202 or the I / O device 204 performs READ access to the external memory 203.

さらに、WRITE監視回路708とデータ無効化回路709により、CPU202やI/Oデバイス204が外部メモリ203のデータを変更すると複製データ領域207のデータを無効化するよう複製状態管理情報208を書き換えるため、CPU201が古いデータにアクセスすることがなくなる。   Further, the WRITE monitoring circuit 708 and the data invalidation circuit 709 rewrite the replication status management information 208 so that the data in the replication data area 207 is invalidated when the CPU 202 or the I / O device 204 changes the data in the external memory 203. The CPU 201 does not access old data.

本実施の形態では、CPU202やI/Oデバイス204が外部メモリ203へデータをWRITEしたことをWRITE監視回路708が検知し、データ無効化回路709が複製状態管理情報208にデータを無効化するようにした。
CPU202やI/Oデバイス204が外部メモリ203にデータをWRITEしない場合は、WRITE監視回路708とデータ無効化回路709がなくてもよい。
さらに、CPU202やI/Oデバイス204が外部メモリ203のデータにREADもWRITEもしない場合は、図16のように、CPU201は複製データ領域207に外部メモリ203のデータがない場合にのみ外部メモリ203にデータを書き込み(ステップS501)、複製データ領域207に外部メモリ203のデータがある場合は複製データ領域207にのみ書き込むようにしてもよい(ステップS503、S504)。
この場合、DMAによって定期的に複製データ領域207のデータを外部メモリ203に書き込むことで外部メモリ203と複製データ領域207とのデータの同期化を行う。
この方法ではCPU201が外部メモリ203へWRITEする回数を削減することができ、バス205の負荷を低減することができる。
In this embodiment, the WRITE monitoring circuit 708 detects that the CPU 202 or the I / O device 204 has written data to the external memory 203, and the data invalidation circuit 709 invalidates the data in the replication status management information 208. I made it.
When the CPU 202 or the I / O device 204 does not write data to the external memory 203, the WRITE monitoring circuit 708 and the data invalidation circuit 709 may be omitted.
Further, when the CPU 202 or the I / O device 204 does not read or write data in the external memory 203, the CPU 201 can only read the external memory 203 when there is no data in the external memory 203 in the duplicate data area 207 as shown in FIG. (Step S501), and if there is data in the external memory 203 in the duplicate data area 207, the data may be written only in the duplicate data area 207 (steps S503 and S504).
In this case, the data of the external memory 203 and the replica data area 207 are synchronized by periodically writing the data of the replica data area 207 to the external memory 203 by DMA.
In this method, the number of times the CPU 201 performs WRITE to the external memory 203 can be reduced, and the load on the bus 205 can be reduced.

本実施の形態では複製データの各ブロックの末尾に有効無効情報を備える(図12)ことで、DMAで複製データと有効無効情報を1トランザクションで転送するようにしたが、実施の形態1のように、複製データ領域と有効無効情報を別のメモリ領域に配置してもよい(図3)。
その場合、図14のステップS1407のデータ転送とステップS1408、ステップS1409の複製状態管理情報208の2回の転送を行う。
In this embodiment, the valid / invalid information is provided at the end of each block of the duplicate data (FIG. 12), so that the duplicate data and valid / invalid information are transferred in one transaction by DMA, but as in the first embodiment. In addition, the duplicate data area and the valid / invalid information may be arranged in different memory areas (FIG. 3).
In that case, the data transfer in step S1407 and the transfer of the replication status management information 208 in steps S1408 and S1409 in FIG. 14 are performed twice.

本実施の形態では、複製データ領域207にデータを格納方法としてダイレクトマップ方式を用いたが、実施の形態1のように格納できる領域を固定していてもよい。   In the present embodiment, the direct map method is used as a method for storing data in the replicated data area 207. However, the area that can be stored may be fixed as in the first embodiment.

本実施の形態では、CPU202またはI/Oデバイス204が外部メモリ203にデータをWRITEした場合、データ無効化回路709が複製データ領域207のデータを無効化するよう複製状態管理情報208を更新していたが、データを無効化する代わりに変更されたデータを複製データ領域207に書き込むようにしてもよい。
データを無効化する場合は、無効化されたブロックのデータをCPU201が再びアクセスすると内部メモリ206にデータが存在しないので外部メモリ203にアクセスしてしまう。
しかし、CPU202またはI/Oデバイス204が変更したデータを書き込むようにすることでCPU201は複製データ領域207にアクセスしてデータを取得できるので、メモリアクセスによるCPUのストール時間を短くすることができる。
In this embodiment, when the CPU 202 or the I / O device 204 writes data to the external memory 203, the data invalidation circuit 709 updates the replication status management information 208 so as to invalidate the data in the replication data area 207. However, instead of invalidating the data, the changed data may be written in the duplicate data area 207.
In the case of invalidating the data, when the CPU 201 accesses the invalidated block data again, the data is not present in the internal memory 206 and thus the external memory 203 is accessed.
However, by writing the changed data in the CPU 202 or the I / O device 204, the CPU 201 can acquire the data by accessing the duplicate data area 207, so that the CPU stall time due to memory access can be shortened.

また、実施の形態1で図2に示した構成において、CPU201のメモリアクセス制御プログラム210が図14のステップS1405〜ステップS1409の動作を行うようにしてもよい。
つまり、メモリアクセス制御プログラム210は、図4のステップS404の実行後、外部メモリ203から読み出すデータブロックの格納先となるデータ格納ブロックに他のデータが格納されているか否かを有効/無効情報を参照して判断し(S1405)、他のデータが格納されている場合は、当該データ格納ブロックを無効にして(S1406)、外部メモリ203から読み出したデータブロックを当該データ格納ブロックに転送し(S1407)、外部メモリ203から読み出したデータブロックを他のデータに置き換えて当該データ格納ブロックに格納し(S1408)、当該データ格納ブロックを有効にする(S1409)。
Further, in the configuration shown in FIG. 2 in the first embodiment, the memory access control program 210 of the CPU 201 may perform the operations in steps S1405 to S1409 in FIG.
That is, the memory access control program 210 determines whether or not other data is stored in the data storage block that is the storage destination of the data block read from the external memory 203 after the execution of step S404 in FIG. When other data is stored, the data storage block is invalidated (S1406), and the data block read from the external memory 203 is transferred to the data storage block (S1407). The data block read from the external memory 203 is replaced with other data and stored in the data storage block (S1408), and the data storage block is validated (S1409).

実施の形態3.
本実施の形態に係る情報処理装置100の構成例は図23に示したものと同様である。
図17は本実施の形態に係るメモリ制御装置701の構成例を示す。
図17は図7の実施の形態2の構成から複製情報管理回路707を除いた構成と同じである。
Embodiment 3 FIG.
A configuration example of the information processing apparatus 100 according to the present embodiment is the same as that shown in FIG.
FIG. 17 shows a configuration example of the memory control device 701 according to this embodiment.
FIG. 17 is the same as the configuration of the second embodiment shown in FIG. 7 except for the duplicate information management circuit 707.

実施の形態3では、外部メモリ203のXX番地からXX+SIZE番地までのデータを内部メモリ206のYY番地からYY+SIZE番地に格納するといったように格納場所を固定する。
そのため、実施の形態2にあった複製情報管理回路707のようにどのブロックに外部メモリ203のどのデータが格納されているかの情報は必要ない。
また、CPU201が外部メモリ203にREADアクセスするのは、複製データ領域207にデータがない場合であるため、READ監視回路704からイベント信号714が出力されれば、データ転送回路705は外部メモリ203のデータを複製データ領域207に転送するようにすればよい。
また、CPU202やI/Oデバイス204が外部メモリ203にデータをWRITEし、イベント信号724が有効になった場合もデータ無効化回路709がアドレス信号723に対応する複製状態管理情報208の有効情報を無効化すればよい。
In the third embodiment, the storage location is fixed such that data from the address XX to the address XX + SIZE in the external memory 203 is stored from the YY address to the YY + SIZE address in the internal memory 206.
For this reason, the information regarding which data in the external memory 203 is stored in which block as in the duplicate information management circuit 707 according to the second embodiment is not necessary.
Since the CPU 201 performs READ access to the external memory 203 when there is no data in the duplicate data area 207, if the event signal 714 is output from the READ monitoring circuit 704, the data transfer circuit 705 stores the data in the external memory 203. The data may be transferred to the duplicate data area 207.
Further, even when the CPU 202 or the I / O device 204 writes data to the external memory 203 and the event signal 724 becomes valid, the data invalidation circuit 709 uses the valid information of the replication status management information 208 corresponding to the address signal 723. Just disable it.

実施の形態3では複製情報管理回路707がなく有効情報を管理しないため、CPU202やI/Oデバイス204が外部メモリ203の同一ブロックのデータに対して連続して何度もWRITEアクセスがあった場合、内部メモリ206の複製状態管理情報208を無効化するために内部メモリ206へのデータ転送が何度も発生する。つまり、CPU202やI/Oデバイス204が外部メモリ203にWRITEしたデータを含むデータブロックが内部メモリ206のいずれかのデータ格納ブロックに格納されており、当該データ格納ブロックに対応する外部メモリ203のデータブロックに対してCPU202やI/Oデバイス204が連続して何度もWRITEアクセスを行った場合は、WRITEアクセスがある度に、該当するデータ格納ブロックの有効/無効情報を無効にするためにデータ無効化回路709が内部メモリ206にアクセスする必要がある。
しかしながら、無効化のためのデータ転送回数を減らすため、データ無効化回路709は同じブロックに対するイベント信号724が一定時間内に複数回有効になっても2回目以降は無効化しないようにしてもよい。
このように同一のデータ格納ブロックに対する2回目以降の無効化の設定を省略することで、無効化する回数を削減することができ、バス205のトラフィックを削減することができる。
In the third embodiment, since there is no duplicate information management circuit 707 and valid information is not managed, the CPU 202 or the I / O device 204 continuously performs WRITE access to the same block data in the external memory 203 many times. In order to invalidate the replication status management information 208 in the internal memory 206, data transfer to the internal memory 206 occurs many times. That is, a data block including data written by the CPU 202 or the I / O device 204 to the external memory 203 is stored in any data storage block of the internal memory 206, and the data in the external memory 203 corresponding to the data storage block is stored. When the CPU 202 or the I / O device 204 performs continuous WRITE access to the block many times, each time the WRITE access is made, data for invalidating the validity / invalidity information of the corresponding data storage block The invalidation circuit 709 needs to access the internal memory 206.
However, in order to reduce the number of times of data transfer for invalidation, the data invalidation circuit 709 may not invalidate the second and subsequent events even if the event signal 724 for the same block becomes valid multiple times within a certain time. .
Thus, by omitting the second and subsequent invalidation settings for the same data storage block, the number of invalidations can be reduced, and traffic on the bus 205 can be reduced.

なお、本実施の形態では、CPU202やI/Oデバイス204が外部メモリ203へデータをWRITEしたことをWRITE監視回路708が検知し、データ無効化回路709が複製状態管理情報208のデータを無効化するようにしているが、CPU202やI/Oデバイス204が外部メモリ203のデータをWRITEすることがない場合は、WRITE監視回路708とデータ無効化回路709がなくてもよい。   In this embodiment, the WRITE monitoring circuit 708 detects that the CPU 202 or the I / O device 204 has written data to the external memory 203, and the data invalidation circuit 709 invalidates the data in the replication status management information 208. However, if the CPU 202 or the I / O device 204 does not write the data in the external memory 203, the WRITE monitoring circuit 708 and the data invalidation circuit 709 may be omitted.

実施の形態4.
図24は、実施の形態4に係る情報処理装置100の構成例を示す。
Embodiment 4 FIG.
FIG. 24 shows a configuration example of the information processing apparatus 100 according to the fourth embodiment.

実施の形態4では、CPU202に内部メモリ1801が接続されている。
内部メモリ1801は、CPU202に対して内部メモリ206と同様の機能を果たす。
つまり、内部メモリ1801はn個のデータ格納ブロックに区分され、各データ格納ブロックに外部メモリ203のデータをデータブロック単位で格納しており、CPU202は外部メモリ203の代わりに内部メモリ1801にアクセスすることによりデータ取得時間を短縮することができる。
なお、内部メモリ1801は、デバイス用内部メモリの例である。
In the fourth embodiment, an internal memory 1801 is connected to the CPU 202.
The internal memory 1801 performs the same function as the internal memory 206 for the CPU 202.
That is, the internal memory 1801 is divided into n data storage blocks, and the data of the external memory 203 is stored in each data storage block in units of data blocks. The CPU 202 accesses the internal memory 1801 instead of the external memory 203. As a result, the data acquisition time can be shortened.
The internal memory 1801 is an example of a device internal memory.

CPU202内部にはアドレス変換プログラム1802、メモリアクセス制御プログラム1803があり、内部メモリ1801には複製データ領域1804と複製状態管理情報1805が格納されており、CPU202の内部メモリ1801の複製データ領域1804にも外部メモリ203のデータを格納する。
複製データ領域1804と複製データ領域207、複製状態管理情報1805と複製状態管理情報208はそれぞれ同一の構成であり、アドレス変換プログラム1802とアドレス変換プログラム209の動作、メモリアクセス制御プログラム1803とメモリアクセス制御プログラム210の動作は同じである。
The CPU 202 includes an address conversion program 1802 and a memory access control program 1803. The internal memory 1801 stores a duplicate data area 1804 and duplicate status management information 1805. The duplicate data area 1804 of the internal memory 1801 of the CPU 202 is also stored. Data in the external memory 203 is stored.
The duplicate data area 1804 and the duplicate data area 207, the duplicate status management information 1805 and the duplicate status management information 208 have the same configuration, and the operations of the address translation program 1802 and the address translation program 209, the memory access control program 1803 and the memory access control. The operation of the program 210 is the same.

図18は、本実施の形態に係るメモリ制御装置701の構成例を示す。   FIG. 18 shows a configuration example of the memory control device 701 according to this embodiment.

本実施の形態では、メモリアクセス制御プログラム210は、外部メモリ203に格納されているいずれかのデータの読み出しが要求された場合に、読み出し対象データの複製が内部メモリ206に格納されているか否かを判定し、また、メモリアクセス制御プログラム1803は、外部メモリ203に格納されているいずれかのデータの読み出しが要求された場合に、読み出し対象データの複製が内部メモリ1801に格納されているか否かを判定する。
メモリ制御装置701は、読み出し対象データの複製が内部メモリ206に格納されていない場合及び読み出し対象データの複製が内部メモリ1801に格納されていない場合のいずれにおいても、読み出し対象データを含むデータブロックを外部メモリ203から読み出し、読み出したデータブロックを内部メモリ206及び内部メモリ1801の双方に格納する。
In the present embodiment, the memory access control program 210 determines whether or not a copy of the data to be read is stored in the internal memory 206 when reading of any data stored in the external memory 203 is requested. Further, the memory access control program 1803 determines whether or not a copy of the read target data is stored in the internal memory 1801 when reading of any data stored in the external memory 203 is requested. Determine.
The memory control device 701 stores the data block including the read target data in both cases where the copy of the read target data is not stored in the internal memory 206 and the copy of the read target data is not stored in the internal memory 1801. The data block read from the external memory 203 is stored in both the internal memory 206 and the internal memory 1801.

つまり、実施の形態2におけるREAD監視回路704は、CPU201からのREADアクセスを検知するとイベント信号714を有効にしたが、本実施の形態では、CPU201またはCPU202からのREADアクセスがあった場合、イベント信号714を有効にする。
データ転送回路705はイベント信号714が有効になると複製データ領域207と複製データ領域1804の両方に外部メモリ203のデータを転送し、複製状態管理情報208、複製状態管理情報1805を更新する。
That is, the READ monitoring circuit 704 in the second embodiment validates the event signal 714 when it detects the READ access from the CPU 201. However, in this embodiment, when there is a READ access from the CPU 201 or the CPU 202, the event signal Enable 714.
When the event signal 714 becomes valid, the data transfer circuit 705 transfers the data in the external memory 203 to both the duplicate data area 207 and the duplicate data area 1804 and updates the duplicate state management information 208 and the duplicate state management information 1805.

また、本実施の形態では、CPU202により外部メモリ203にデータの書き込みが行われた場合は、CPU201、CPU202両方の複製データ領域を無効化するようにする。また、CPU202またはI/Oデバイス204により外部メモリ203にデータの書き込みが行われた場合も、CPU201、CPU202両方のデータ格納ブロックの有効/無効情報を無効にする。   In this embodiment, when the CPU 202 writes data to the external memory 203, the duplicate data areas of both the CPU 201 and the CPU 202 are invalidated. Also, when data is written to the external memory 203 by the CPU 202 or the I / O device 204, the validity / invalidity information of the data storage blocks of both the CPU 201 and the CPU 202 is invalidated.

つまり、WRITE監視回路708は、CPU202またはI/Oデバイス204に加え、CPU201に関してもWRITEアクセスが発生するとイベント信号724を有効にする。
またデータ無効化回路709はイベント信号724が有効になると、複製状態管理情報208と複製状態管理情報1805のアドレス信号723で指定されたデータのエントリを無効化する。
In other words, the WRITE monitoring circuit 708 validates the event signal 724 when a WRITE access occurs for the CPU 201 in addition to the CPU 202 or the I / O device 204.
Further, when the event signal 724 becomes valid, the data invalidation circuit 709 invalidates the entry of data designated by the replication status management information 208 and the address signal 723 of the replication status management information 1805.

このように、本実施の形態によれば、複製データ領域207と複製データ領域1804で複製状態を同じにすると、複製情報管理回路707が管理する外部メモリアドレスと有効情報を一元に管理することができる。   As described above, according to the present embodiment, when the replication state is the same in the duplicate data area 207 and the duplicate data area 1804, the external memory address and valid information managed by the duplicate information management circuit 707 can be managed in a unified manner. it can.

また、上記の説明では、複製データ領域207、複製データ領域1804に格納されているデータの複製状態を共通で管理しているが、複製情報管理回路707を複数備え、複製状態を個別に管理すれば、CPU201とCPU202が外部メモリ203の異なる領域のデータにアクセスする場合、各CPUに必要なデータしか複製データ領域207、複製データ領域1804に格納されないため、内部メモリ206、内部メモリ1801を効率的に利用できる。
この場合、データ転送回路705はイベント信号714が有効になるとREADアクセスのあったCPUの複製データ領域にのみ外部メモリ203のデータを転送する。
つまり、メモリ制御装置701は、CPU201の読み出し対象データの複製がCPU201の内部メモリ206に格納されていない場合に、CPU201の読み出し対象データを含むデータブロックを外部メモリ203から読み出し、読み出したデータブロックをCPU201の内部メモリ206にのみ格納し、CPU202の読み出し対象データの複製がCPU202の内部メモリ1801に格納されていない場合に、CPU202の読み出し対象データを含むデータブロックを外部メモリ203から読み出し、読み出したデータブロックをCPU202の内部メモリ1801にのみ格納する。
In the above description, the replication status of the data stored in the replication data area 207 and the replication data area 1804 is managed in common, but a plurality of replication information management circuits 707 are provided to manage the replication status individually. For example, when the CPU 201 and the CPU 202 access data in different areas of the external memory 203, only the data necessary for each CPU is stored in the duplicate data area 207 and the duplicate data area 1804. Therefore, the internal memory 206 and the internal memory 1801 are efficiently used. Available to:
In this case, when the event signal 714 becomes valid, the data transfer circuit 705 transfers the data in the external memory 203 only to the duplicate data area of the CPU that has undergone READ access.
In other words, the memory control device 701 reads the data block including the data to be read by the CPU 201 from the external memory 203 when the copy of the data to be read by the CPU 201 is not stored in the internal memory 206 of the CPU 201, and reads the read data block. Data that is stored only in the internal memory 206 of the CPU 201 and is not read from the external memory 203 when a copy of the read target data of the CPU 202 is not stored in the internal memory 1801 of the CPU 202. The block is stored only in the internal memory 1801 of the CPU 202.

また、WRITEについては、CPU202により外部メモリ203にデータの書き込みが行われた場合は、実施の形態2と同様に、メモリ制御装置701は、CPU202によりデータ書き込みが行われた外部メモリ203のアドレスに対応するCPU201の内部メモリ206のデータ格納ブロックを抽出し、抽出したデータ格納ブロックにはデータブロックが格納されていないことを表す識別子を設定する(有効/無効情報を無効にする)。
一方、CPU201により外部メモリ203にデータの書き込みが行われた場合は、メモリ制御装置701は、CPU201によりデータ書き込みが行われた外部メモリ203上のアドレスに対応するCPU202の内部メモリ1801のデータ格納ブロックを抽出し、抽出したデータ格納ブロックにはデータブロックが格納されていないことを表す識別子を設定する(有効/無効情報を無効にする)。
As for WRITE, when data is written to the external memory 203 by the CPU 202, the memory control device 701 uses the address of the external memory 203 to which data is written by the CPU 202, as in the second embodiment. A corresponding data storage block of the internal memory 206 of the CPU 201 is extracted, and an identifier indicating that no data block is stored is set in the extracted data storage block (valid / invalid information is invalidated).
On the other hand, when data is written to the external memory 203 by the CPU 201, the memory control device 701 stores the data storage block of the internal memory 1801 of the CPU 202 corresponding to the address on the external memory 203 to which data is written by the CPU 201. And an identifier indicating that no data block is stored is set in the extracted data storage block (valid / invalid information is invalidated).

更に、データ無効化回路709はイベント信号724が有効になった場合に各複製データ領域207、複製データ領域1804に格納されているデータを無効化する代わりに変更されたデータをそれぞれの複製データ領域207、複製データ領域1804に書き込むようにしてもよい。
つまり、CPU202により外部メモリ203にデータの書き込みが行われた場合は、実施の形態2と同様に、メモリ制御装置701は、CPU202によりデータ書き込みが行われた外部メモリ203上のアドレスに対応するCPU201の内部メモリ206のデータ格納ブロックを抽出し、抽出したデータ格納ブロックにCPU202により外部メモリ203に書き込まれたデータの複製を格納し、CPU201により外部メモリ203にデータの書き込みが行われた場合は、メモリ制御装置701は、CPU201によりデータ書き込みが行われた外部メモリ203上のアドレスに対応するCPU202の内部メモリ1801のデータ格納ブロックを抽出し、抽出したデータ格納ブロックにCPU201により外部メモリ203に書き込まれたデータの複製を格納するようにしてもよい。
Further, when the event signal 724 becomes valid, the data invalidation circuit 709 replaces the data stored in the duplicate data area 207 and the duplicate data area 1804 with each duplicate data area instead of invalidating the data. 207, the data may be written in the duplicate data area 1804.
That is, when data is written to the external memory 203 by the CPU 202, as in the second embodiment, the memory control device 701 causes the CPU 201 corresponding to the address on the external memory 203 to which data is written by the CPU 202. When a data storage block of the internal memory 206 is extracted, a copy of the data written to the external memory 203 by the CPU 202 is stored in the extracted data storage block, and data is written to the external memory 203 by the CPU 201, The memory control device 701 extracts the data storage block of the internal memory 1801 of the CPU 202 corresponding to the address on the external memory 203 to which data has been written by the CPU 201, and writes the extracted data storage block to the external memory 203 by the CPU 201. It may be stored a copy of the data that was.

以上のように構成することで、CPU201だけでなく、CPU202にも外部メモリ203のデータを各CPUに接続している内部メモリ206、内部メモリ1801に格納することができ、CPU201、CPU202からの外部メモリ203のデータへのアクセス時間を短縮することができる。   With the above configuration, the data of the external memory 203 can be stored not only in the CPU 201 but also in the CPU 202 in the internal memory 206 and the internal memory 1801 connected to each CPU. The access time to the data in the memory 203 can be shortened.

実施の形態5.
実施の形態5の構成図は図2と同じである。内部メモリ206の内容の一部を図19に示す。
Embodiment 5 FIG.
The configuration diagram of the fifth embodiment is the same as FIG. A part of the contents of the internal memory 206 is shown in FIG.

内部メモリ206には、複製データ領域207と複製状態管理情報208が格納されている。
複製データ領域207はある一定のサイズのN個のデータ格納ブロック(303a、303b、303c)に分割されており、各データ格納ブロックのデータ303の直後に対応するデータ格納ブロックの複製状態管理情報208が格納されている。
本実施の形態では、各データ格納ブロックの複製状態管理情報208には外部メモリのアドレス301、有効/無効情報302に加えて複製データ領域207への外部メモリ203のデータの転送が完了しているか(データブロックの格納が完了しているか)を示す転送完了情報1901が追加されている点が実施の形態1と異なる。
転送完了情報1901はそのブロックのデータ303への外部メモリ203のデータの転送が完了しているかどうかを表す識別子であり、“完了”または“未完了”のいずれかの値をとる。
“完了”はそのデータ格納ブロックに外部メモリアドレス301で指定されたアドレスのデータブロックが全て格納されている状態を表しており、“未完了”は複製データ領域207の該当するデータ格納ブロックのデータ303に外部メモリ203のデータブロックが格納されていない状態を表している。
有効/無効情報302が“有効”で転送完了情報1901が“未完了”の場合はそのデータ格納ブロックにデータブロックを転送中であることを表す。
また、有効/無効情報302が“無効”の場合は転送完了情報1901は必ず“未完了”になっている。
The internal memory 206 stores a duplicate data area 207 and duplicate status management information 208.
The duplicate data area 207 is divided into N data storage blocks (303a, 303b, 303c) of a certain size, and the replication status management information 208 of the corresponding data storage block immediately after the data 303 of each data storage block. Is stored.
In this embodiment, whether or not the transfer of the data in the external memory 203 to the copy data area 207 is completed in addition to the address 301 and valid / invalid information 302 of the external memory in the copy status management information 208 of each data storage block. This is different from the first embodiment in that transfer completion information 1901 indicating that data block storage has been completed is added.
The transfer completion information 1901 is an identifier indicating whether or not the transfer of the data in the external memory 203 to the data 303 of the block has been completed, and takes a value of “completed” or “incomplete”.
“Complete” represents a state in which all data blocks at the address specified by the external memory address 301 are stored in the data storage block, and “incomplete” represents data in the corresponding data storage block in the duplicate data area 207. Reference numeral 303 denotes a state in which the data block of the external memory 203 is not stored.
When the valid / invalid information 302 is “valid” and the transfer completion information 1901 is “incomplete”, this indicates that a data block is being transferred to the data storage block.
When the valid / invalid information 302 is “invalid”, the transfer completion information 1901 is always “incomplete”.

CPU201は外部メモリ203のデータブロックを複製データ領域207に転送するようDMAコントローラ703を起動した時に転送完了情報1901を“未完了”とセットする。
そして複製データ領域207への外部メモリ203のデータブロックのDMA転送が完了するとDMAコントローラ703が転送完了情報1901を“完了”にセットする。
The CPU 201 sets the transfer completion information 1901 to “incomplete” when the DMA controller 703 is activated to transfer the data block in the external memory 203 to the duplicate data area 207.
When the DMA transfer of the data block in the external memory 203 to the duplicate data area 207 is completed, the DMA controller 703 sets the transfer completion information 1901 to “completed”.

図20はCPU201が外部メモリ203のデータをREADした時のフローチャートである。   FIG. 20 is a flowchart when the CPU 201 reads the data in the external memory 203.

まずステップS2001にて、メモリアクセス制御プログラム210が、READするデータが複製データ領域207にあり、かつそのデータが含まれているブロックへのデータ転送が完了しているかを調べる。
具体的には、READするデータを含むデータブロックのアドレスが外部メモリアドレス301と一致し、かつ、そのデータ格納ブロックの転送完了情報1901が“完了”になっているかを調べる。
READするデータを含むデータブロックのアドレスと外部メモリアドレス301が一致し、かつ、そのデータ格納ブロックの転送完了情報1901が“完了”であれば、そのデータ格納ブロックにREADしたいデータがあり、かつ外部メモリ203のデータの転送が完了しているので(転送完了情報1901が“完了”になるのは有効/無効情報302が有効である場合のみのため有効/無効情報302の情報を確認する必要はない)、メモリアクセス制御プログラム210は、外部メモリ203のアドレスをアドレス変換プログラム209にて複製データ領域207のアドレスに変換して複製データ領域207内のブロックのデータ303からデータを読んで返す(ステップS2002)。
First, in step S2001, the memory access control program 210 checks whether the data to be read exists in the duplicate data area 207 and the data transfer to the block including the data is completed.
Specifically, it is checked whether the address of the data block including the data to be read matches the external memory address 301 and the transfer completion information 1901 of the data storage block is “completed”.
If the address of the data block including the data to be read matches the external memory address 301 and the transfer completion information 1901 of the data storage block is “complete”, the data storage block has data to be read and the external Since the data transfer of the memory 203 has been completed (the transfer completion information 1901 becomes “completed” because the valid / invalid information 302 is valid only, it is necessary to check the valid / invalid information 302) The memory access control program 210 converts the address of the external memory 203 into the address of the duplicate data area 207 by the address translation program 209 and reads the data from the block data 303 in the duplicate data area 207 (step) S2002).

READするデータを含むデータブロックのアドレスと外部メモリアドレス301が一致し、かつ転送完了情報1901が“完了”になっているデータ格納ブロックがない場合(ステップS2001がNOの場合)は、メモリアクセス制御プログラム210は、READするデータを含むデータ格納ブロックが複製データ領域207にあるかを調べるためにREADするデータを含むデータブロックのアドレスが外部メモリアドレス301と一致し、かつ有効/無効情報302が有効であるデータ格納ブロックがあるかを調べる(ステップS2003)。
ステップS2003がYESの場合はそのデータブロックのDMA転送が完了していない状態であるのでステップS2001に戻り、DMA転送が完了するまでステップS2001とステップS2003の判定を続ける。
When there is no data storage block in which the address of the data block including the data to be read matches the external memory address 301 and the transfer completion information 1901 is “completed” (when step S2001 is NO), memory access control is performed. The program 210 checks whether the data storage block containing the data to be read exists in the duplicate data area 207, the address of the data block containing the data to be read matches the external memory address 301, and the valid / invalid information 302 is valid. It is checked whether there is a data storage block (step S2003).
If YES in step S2003, the DMA transfer of the data block has not been completed, so the process returns to step S2001, and the determinations in steps S2001 and S2003 are continued until the DMA transfer is completed.

ステップS2003がNOの場合は、複製データ領域207にREADするデータの複製がない状態であるため、メモリアクセス制御プログラム210は、外部メモリ203からREADしたいデータを取得する(ステップS2004)。
そしてREADするデータを含むデータブロックを複製データ領域207に格納するため、メモリアクセス制御プログラム210は、格納するデータ格納ブロックの外部メモリアドレス301を転送するデータブロックの外部メモリ203のアドレスに変更し、有効/無効情報302を有効、転送完了情報1901を“未完了”にして複製状態管理情報208を更新する(ステップS2005)。
そして、メモリアクセス制御プログラム210は、外部メモリ203のデータブロックを複製データ領域207のデータ格納ブロックに転送するように転送元アドレス、転送先アドレス、転送サイズをDMAコントローラ703に設定し、また転送完了後に該当するデータ格納ブロックの転送完了情報1901を“完了”にするよう転送完了情報1901のアドレスと書き込む値“完了”をDMAコントローラ703に設定し、DMAコントローラ703の起動を行う(ステップS2006)。
If NO in step S2003, the data to be read is not duplicated in the duplicate data area 207, so the memory access control program 210 obtains data to be read from the external memory 203 (step S2004).
In order to store the data block including the data to be read in the duplicate data area 207, the memory access control program 210 changes the external memory address 301 of the data storage block to be stored to the address of the external memory 203 of the data block to be transferred, The replication status management information 208 is updated by setting the valid / invalid information 302 to valid and the transfer completion information 1901 to “incomplete” (step S2005).
Then, the memory access control program 210 sets the transfer source address, transfer destination address, and transfer size in the DMA controller 703 so that the data block of the external memory 203 is transferred to the data storage block of the duplicate data area 207, and the transfer is completed The address of the transfer completion information 1901 and the value to be written “complete” are set in the DMA controller 703 so that the transfer completion information 1901 of the corresponding data storage block is set to “complete” later, and the DMA controller 703 is activated (step S2006).

外部メモリ203から複製データ領域207へのデータ転送はステップS2006のCPU201からの起動処理によってDMAコントローラ703が行う。
DMAコントローラ703はCPU201によって指定された転送元アドレス、転送先アドレス、転送サイズにしたがって外部メモリ203のデータを読み出して複製データ領域207へデータを書き込む。
DMAコントローラ703は転送が完了すると、CPU201によって指定された転送完了情報1901に“完了”を書き込む。
Data transfer from the external memory 203 to the duplicate data area 207 is performed by the DMA controller 703 by the activation process from the CPU 201 in step S2006.
The DMA controller 703 reads data in the external memory 203 according to the transfer source address, transfer destination address, and transfer size specified by the CPU 201 and writes the data in the duplicate data area 207.
When the transfer is completed, the DMA controller 703 writes “complete” in the transfer completion information 1901 specified by the CPU 201.

このように本実施の形態では、READ時の最初に転送完了情報1901と外部メモリアドレス301によって複製データ領域207にREADするデータがあり、かつ、DMA転送が完了していることを判定することで複製データ領域207にデータがある場合の処理を高速化している。   As described above, in this embodiment, it is determined that there is data to be read in the duplicate data area 207 by the transfer completion information 1901 and the external memory address 301 at the beginning of the READ and that the DMA transfer is completed. The processing when there is data in the duplicate data area 207 is speeded up.

また、各ブロックのデータ303と転送完了情報1901が連続領域となっているため、外部メモリ203から複製データ領域207へのデータ転送と、転送完了情報の書き込みを1トランザクションで行うことができるため、ブロックのデータ303と転送完了情報が連続していない場合よりも高速にデータを転送することができる。   Since the data 303 and transfer completion information 1901 of each block are continuous areas, data transfer from the external memory 203 to the duplicate data area 207 and writing of transfer completion information can be performed in one transaction. Data can be transferred at a higher speed than when the block data 303 and the transfer completion information are not continuous.

以上が、CPU201が外部メモリ203のデータをREADした時の動作である。   The above is the operation when the CPU 201 reads the data in the external memory 203.

CPU201から外部メモリ203のデータをWRITEした場合の動作は図21のようになる。   The operation when the data of the external memory 203 is written from the CPU 201 is as shown in FIG.

WRITE時は、メモリアクセス制御プログラム210は、まず外部メモリ203にデータを書き込み(ステップS2101)、次に書き込んだアドレスのデータの複製が複製データ領域207にあるかを調べるため、WRITEしたデータのアドレスを含むブロックのアドレスが外部メモリアドレス301と一致し、かつそのブロックの有効/無効情報302が有効であるブロックがあるかを調べる(ステップS2102)。
ステップS2102がNOの場合はWRITEしたデータの複製が複製データ領域207にないため、処理を終了する。
ステップS2102がYESの場合は、メモリアクセス制御プログラム210は、そのブロックの転送完了情報1901が“完了”になっているかを調べてDMA転送が完了しているかを確認する(ステップS2103)。
ステップS2103がNOの場合は、DMA転送が完了して転送完了情報1901が“完了”になるまでステップS2103の判定を続ける。
ステップS2103がYESになれば外部メモリ203のアドレスを複製データ領域207の該当するアドレスにアドレス変換プログラム209によって変換して、複製データ領域207の対応するブロックのデータ303にデータを書き込む(ステップS2104)。
At the time of WRITE, the memory access control program 210 first writes data to the external memory 203 (step S2101), and in order to check whether there is a copy of the data at the next written address in the duplicate data area 207, the address of the WRITE data It is checked whether there is a block in which the address of the block including the address matches the external memory address 301 and the valid / invalid information 302 of the block is valid (step S2102).
If NO in step S2102, the duplicated data area 207 does not contain a duplicate of the WRITE data, and the process ends.
If step S2102 is YES, the memory access control program 210 checks whether the transfer completion information 1901 of the block is “completed” and confirms whether the DMA transfer is completed (step S2103).
If step S2103 is NO, the determination in step S2103 is continued until the DMA transfer is completed and the transfer completion information 1901 becomes “completed”.
If step S2103 is YES, the address conversion program 209 converts the address of the external memory 203 into a corresponding address in the duplicate data area 207 and writes the data to the data 303 of the corresponding block in the duplicate data area 207 (step S2104). .

以上がCPU201が外部メモリ203のデータをWRITEした時の動作である。   The above is the operation when the CPU 201 writes the data in the external memory 203.

本実施の形態では、CPU201は外部メモリ203から複製データ領域207へデータを転送するDMAの起動を行った後、データ転送の完了を待たずに元の処理に戻ることができるため、CPU201の処理の効率を高くすることができる。   In the present embodiment, the CPU 201 can start the DMA for transferring data from the external memory 203 to the duplicate data area 207 and then return to the original processing without waiting for the completion of the data transfer. The efficiency of can be increased.

本実施の形態では、外部メモリ203のデータを複製データ領域207のどのブロックに格納するかについて規定していないが、実施の形態1と同様に外部メモリ203のXX番地からXX+SIZE−1番地までのデータを内部メモリ206のYY番地からYY+SIZE−1番地に格納するといったようにアドレスによって格納場所を固定してもよいし、キャッシュメモリで利用されるダイレクトマップ方式やセットアソシアティブ方式のようにアドレスの一部をインデックスとして格納するブロックを決定してもよい。
これらの格納方式ではアドレスによって格納されるブロックが1つ(セットアソシアティブ方式の場合はウェイの数)に絞られるため、図20のステップS2001、ステップS2003、図21のステップS2102、ステップS2103では全てのブロックの複製状態管理情報208を調べる必要がなく、外部メモリ203のアドレスによって決定された1つ(またはウェイの数)のブロックの複製状態管理情報208を調べるだけでよい。
In the present embodiment, it is not stipulated in which block of the duplicate data area 207 the data of the external memory 203 is stored. The storage location may be fixed by an address so that data is stored from the YY address of the internal memory 206 to the YY + SIZE-1 address. A block for storing a part as an index may be determined.
In these storage methods, the number of blocks stored by the address is limited to one (the number of ways in the case of the set associative method). Therefore, in steps S2001 and S2003 in FIG. 20, steps S2102 and S2103 in FIG. There is no need to check the copy status management information 208 of the block, and it is only necessary to check the copy status management information 208 of one block (or the number of ways) determined by the address of the external memory 203.

また複製データ領域207の大きさが外部メモリ203と同じ大きさである場合は、外部メモリ203に対応する複製データ領域207のアドレスは一意に変換できるため、複製状態管理情報208の外部メモリアドレス301は不要になる。
そのため、図20のステップS2001やステップS2003、図21のステップS2102やステップS2103ではそれぞれREADするアドレスに対応するブロックの転送完了情報1901または有効/無効情報302のみを参照すればよい。
If the size of the duplicate data area 207 is the same as that of the external memory 203, the address of the duplicate data area 207 corresponding to the external memory 203 can be uniquely converted. Is no longer needed.
Therefore, in steps S2001 and S2003 in FIG. 20, and in steps S2102 and S2103 in FIG. 21, only the transfer completion information 1901 or valid / invalid information 302 of the block corresponding to the address to be read may be referred to.

さらに、複製データ領域207の大きさが外部メモリ203と同じ大きさであり、システムの起動時に外部メモリ203のデータを複製データ領域207に転送しておく場合は必ず外部メモリ203のデータが複製データ領域207に存在することになるので複製状態管理情報208の有効/無効情報302も不要である。
このとき、図20のステップS2003ではREADするデータの複製が複製データ領域207にあると判定されるため、ステップS2004、ステップS2005、ステップS2006は実行されない。また、外部メモリ203から複製データ領域207へのデータ転送が完了してからアクセスする場合は転送完了情報1901も不要であり、ステップS2001がNOの場合は再びステップS2001を実行する。
Furthermore, if the size of the duplicate data area 207 is the same as that of the external memory 203 and the data in the external memory 203 is transferred to the duplicate data area 207 when the system is started, the data in the external memory 203 is always copied data. Since it exists in the area 207, the valid / invalid information 302 of the replication status management information 208 is also unnecessary.
At this time, since it is determined in step S2003 in FIG. 20 that the data to be read is duplicated in the duplicate data area 207, step S2004, step S2005, and step S2006 are not executed. Further, when accessing after the data transfer from the external memory 203 to the replicated data area 207 is completed, the transfer completion information 1901 is also unnecessary, and if step S2001 is NO, step S2001 is executed again.

また、本実施の形態では、実施の形態1の構成(メモリ制御装置701を含まない構成)において内部メモリ206に転送完了情報を設ける例について説明したが、実施の形態2〜4の構成(メモリ制御装置701を含む構成)でも内部メモリ206に転送完了情報を設け、上記と同様の処理を行うようにしてもよい。   In the present embodiment, the example in which transfer completion information is provided in the internal memory 206 in the configuration of the first embodiment (the configuration not including the memory control device 701) has been described. However, the configuration of the second to fourth embodiments (memory In the configuration including the control device 701, transfer completion information may be provided in the internal memory 206, and the same processing as described above may be performed.

また、本実施の形態では、外部メモリ203から複製データ領域207へデータを転送する処理をDMAコントローラ703を用いて行ったが、DMAコントローラ703を用いず、DMAコントローラ703の機能を、外部メモリ203から複製データ領域207へのデータ転送を行い、転送完了情報1901の更新を行う、CPU201またはCPU202のスレッドとして実現してもよい。
その場合は図22のようにCPU201またはCPU202には、外部メモリ203から内部メモリ206の複製データ領域207にデータを転送し、複製状態管理情報208の転送完了情報1901を“完了”にするデータ転送プログラム212が備わる。
図22の構成においては、メモリアクセス制御プログラム210とデータ転送プログラム212が第2のデータ処理部の役割を担う。
また、DMAコントローラ703を使わずにマルチコア構成の別のCPUコアに外部メモリ203から複製データ領域207への転送を行わせてもDMAコントローラ703と同じ効果がある。
なお、図22の構成は、実施の形態1にも適用することができる。
In this embodiment, the process of transferring data from the external memory 203 to the replicated data area 207 is performed using the DMA controller 703. However, the DMA controller 703 is not used, and the function of the DMA controller 703 is performed without using the DMA controller 703. It may be realized as a thread of the CPU 201 or the CPU 202 that performs data transfer from the copy data area 207 to the copy data area 207 and updates the transfer completion information 1901.
In this case, as shown in FIG. 22, the data is transferred from the external memory 203 to the duplicate data area 207 of the internal memory 206 and the transfer completion information 1901 of the duplicate status management information 208 is set to “completed”. A program 212 is provided.
In the configuration of FIG. 22, the memory access control program 210 and the data transfer program 212 serve as the second data processing unit.
Further, the same effect as the DMA controller 703 can be obtained by transferring another CPU core having a multi-core configuration from the external memory 203 to the duplicate data area 207 without using the DMA controller 703.
Note that the configuration of FIG. 22 can also be applied to the first embodiment.

最後に、実施の形態1〜5で説明したメモリ制御システムの概要を再度説明する。   Finally, the outline of the memory control system described in the first to fifth embodiments will be described again.

実施の形態1〜5では、
CPUとCPUから高速なシリアルバス経由でアクセスされる外部メモリと、CPUから高速なシリアルバスを経由せずに直接アクセスでき、さらに外部メモリのデータの一部または全部を複製として格納する内部メモリとを備えた情報処理装置において以下の手段または方式を備えたシステムを説明した。
(a)CPUが内部メモリに格納されている外部メモリのデータの複製状態を管理する複製状態管理手段
(b)外部メモリにアクセスするかわりにデータの複製が格納されている内部メモリにアクセスするため、外部メモリのアドレスを内部メモリのアドレスに変換するアドレス変換手段
(c)以下の特徴を持つメモリアクセス制御手段。
CPUが外部メモリのデータをREADする際に、内部メモリにデータの複製がある場合は内部メモリからデータを取得し、内部メモリに複製がない場合は外部メモリにアクセスしてデータを取得する。またCPUが外部メモリのデータをWRITEする際も、内部メモリにデータの複製がある場合は内部メモリと外部メモリの両方に書き込み、内部メモリに複製データがない場合は外部メモリにのみ書き込む。
In the first to fifth embodiments,
An external memory that is accessed from the CPU via a high-speed serial bus, and an internal memory that can be directly accessed from the CPU without passing through a high-speed serial bus, and further stores a part or all of the data in the external memory as a copy. A system provided with the following means or method in the information processing apparatus provided has been described.
(A) A replication status management means for the CPU to manage the replication status of the data in the external memory stored in the internal memory. (B) To access the internal memory in which the data replication is stored instead of accessing the external memory. Address conversion means for converting the address of the external memory into the address of the internal memory (c) Memory access control means having the following characteristics.
When the CPU reads the data in the external memory, the data is acquired from the internal memory if there is a copy of the data in the internal memory, and the data is acquired by accessing the external memory if there is no copy in the internal memory. When the CPU writes data in the external memory, the data is written in both the internal memory and the external memory if there is data replication in the internal memory, and only in the external memory if there is no duplicate data in the internal memory.

また、前記の(a)〜(c)の手段をプログラム化したシステムを説明した。   Further, a system in which the means (a) to (c) described above are programmed has been described.

また、CPUが外部メモリのデータにアクセスを開始する前にあらかじめ内部メモリにデータを格納しておくデータを転送する手段(d)を備えるシステムを説明した。   In addition, the system including the means (d) for transferring the data stored in the internal memory in advance before the CPU starts accessing the data in the external memory has been described.

また、メモリアクセス制御手段(c)は、内部メモリにデータの複製がない場合は、外部メモリにアクセスしてデータを取得し、その後、取得したデータを含むブロックのデータを内部メモリに格納するシステムを説明した。   Further, the memory access control means (c) is a system for accessing the external memory to acquire data when there is no data replication in the internal memory, and then storing the block data including the acquired data in the internal memory. Explained.

また、前記の(a)〜(c)に加え、以下の手段を備えたシステムを説明した。
(e)CPUから外部メモリにREADアクセスされたことを検知する検知手段
(f)前記検知手段(e)によってCPUから外部メモリへのREADアクセスを検知するとアクセスされたデータを含む周囲のデータと複製状態を内部メモリに転送する複製データ転送手段
(g)前記複製データ転送手段(f)によって内部メモリに外部メモリのデータの複製があるかを管理する複製情報管理手段
(h)前記複製データ転送手段(f)が内部メモリに外部メモリのデータを転送する際に転送先のアドレスを決定するアドレス変換手段。
Moreover, the system provided with the following means in addition to said (a)-(c) was demonstrated.
(E) Detection means for detecting that the CPU has made a READ access to the external memory (f) When the detection means (e) detects a READ access from the CPU to the external memory, the surrounding data including the accessed data and a copy Duplicate data transfer means for transferring the state to the internal memory (g) Duplicate information management means for managing whether there is a duplicate of data in the external memory in the internal memory by the duplicate data transfer means (f) (h) The duplicate data transfer means (F) Address conversion means for determining a transfer destination address when transferring data of the external memory to the internal memory.

また、前記複製データ転送手段(f)は、外部メモリから内部メモリへのデータの転送をWRITEのバースト転送で行うことを説明した。   Further, it has been described that the duplicate data transfer means (f) transfers data from the external memory to the internal memory by WRITE burst transfer.

また、前記複製データ転送手段(f)は、内部メモリへのデータの転送と情報更新を1トランザクションで行うことを説明した。   Further, it has been described that the duplicate data transfer means (f) performs data transfer to the internal memory and information update in one transaction.

前記メモリアクセス制御手段(c)は、CPUが外部メモリのデータをWRITEする際には内部メモリにそのデータの複製がある場合は内部メモリと外部メモリの両方には書き込まず、内部メモリにのみ書き込むことを説明した。
さらに、DMAを用いて定期的に内部メモリに格納されているデータを外部メモリに書き込むことで外部メモリと内部メモリとのデータの整合性を保つためのデータ同期化手段を持つことを説明した(データ同期化手段はソフトウェアのみで構成するときは定期的にDMAをたたくプログラムを示す。専用ハードウェアがある場合は定期的にDMAをたたく専用回路としてもよい)。
When the CPU WRITEs data in the external memory, the memory access control means (c) does not write to both the internal memory and the external memory, but only writes to the internal memory if there is a copy of the data in the internal memory. I explained that.
Furthermore, it has been explained that the data synchronization means for maintaining the data consistency between the external memory and the internal memory by periodically writing the data stored in the internal memory using the DMA into the external memory is explained ( The data synchronization means indicates a program that periodically hits the DMA when it is constituted only by software (if there is dedicated hardware, it may be a dedicated circuit that periodically hits the DMA).

また、以下の手段を備えたシステムを説明した。
(i)前記CPUとは異なるCPU(他CPU)やI/Oから外部メモリにデータを書き込まれたことを検知する検知手段
(j)前記(i)検知手段が他CPUやI/Oからの外部メモリへのデータ書き込みを検知すると内部メモリに格納されている複製データを無効化するよう前記(b)と(g)の情報を書き換えるデータ無効化手段。
Moreover, the system provided with the following means was demonstrated.
(I) Detection means for detecting that data has been written to an external memory from a CPU (other CPU) or I / O different from the CPU (j) The detection means (i) is detected from another CPU or I / O. Data invalidation means for rewriting the information in (b) and (g) so as to invalidate the duplicate data stored in the internal memory when data writing to the external memory is detected.

また、以下の手段を備えたシステムを説明した。
(i)前記CPUとは異なるCPU(他CPU)やI/Oから外部メモリにデータを書き込まれたことを検知する検知手段
(k)前記(i)検知手段が他CPUやI/Oからの外部メモリへのデータ書き込みを検知すると内部メモリに格納されている複製データを更新するデータ更新手段。
Moreover, the system provided with the following means was demonstrated.
(I) Detection means for detecting that data has been written to the external memory from a CPU (other CPU) or I / O different from the CPU (k) (i) The detection means is detected from another CPU or I / O Data update means for updating replicated data stored in the internal memory when data writing to the external memory is detected.

前記(a)〜(c)に加え、以下の手段を備えたシステムを説明した。
(e)CPUから外部メモリにREADアクセスされたことを検知する検知手段
(f)前記(e)検知手段によってCPUから外部メモリへのREADアクセスを検知するとアクセスされたデータを含む周囲のデータと複製状態を内部メモリに転送する複製データ転送手段
(h)前記(f)が内部メモリに外部メモリのデータを転送する際に転送先のアドレスを決定するアドレス変換手段。
The system provided with the following means in addition to the above (a) to (c) has been described.
(E) Detection means for detecting that the CPU has made a READ access to the external memory (f) When the (e) detection means detects a READ access from the CPU to the external memory, the surrounding data including the accessed data and a copy Replicated data transfer means for transferring the state to the internal memory (h) Address conversion means for determining the address of the transfer destination when the above (f) transfers the data of the external memory to the internal memory.

また、以下の(i),(j1)の手段を備えたシステムを説明した。
(i)前記CPUとは異なるCPU(他CPU)やI/Oから外部メモリにデータを書き込まれたことを検知する検知手段
(j1)前記(i)検知手段が他CPUやI/Oからの外部メモリへのデータ書き込みを検知すると内部メモリに格納されている複製データを無効化するよう複製情報を書き換えるデータ無効化手段。
Moreover, the system provided with the following means (i) and (j1) was demonstrated.
(I) Detection means for detecting that data has been written to an external memory from a CPU (other CPU) or I / O different from the CPU (j1) The detection means (i) is detected from another CPU or I / O. Data invalidation means for rewriting the duplicate information so as to invalidate the duplicate data stored in the internal memory when data writing to the external memory is detected.

また、前記(j1)データ無効化手段は、前記(i)検知手段により、他のCPUやI/Oが外部メモリのデータを書きかえたことを検知した際に、アクセスされたデータのアドレスを記憶しておき、内部メモリにある同じブロックのデータが一定時間内に何度も更新された場合は2回目以降の複製情報の書き換えを行わないことを説明した。   Further, the (j1) data invalidation means determines the address of the accessed data when the (i) detection means detects that another CPU or I / O has rewritten the data in the external memory. It has been described that when the data of the same block in the internal memory is updated many times within a predetermined time, the copy information is not rewritten after the second time.

また、複数のCPUと前記複数のCPUから高速なシリアルバス経由でREADアクセスされる外部メモリと、CPUから高速なシリアルバスを経由せずに直接アクセスでき、さらに外部メモリのデータの一部または全部を複製として格納する内部メモリとを備えた情報処理装置において、各CPU、内部メモリ内に前記(a)〜(c)を備えるシステムを説明した。   In addition, a plurality of CPUs, an external memory that is READ-accessed from the plurality of CPUs via a high-speed serial bus, and a CPU can be directly accessed without using a high-speed serial bus, and a part or all of data in the external memory can be accessed. In the information processing apparatus provided with the internal memory to be stored as a duplicate, the system including the CPUs (a) to (c) in the internal memory has been described.

また、以下の手段を備えたシステムを説明した。
(e1)各CPUから外部メモリにREADアクセスされたことを検知する検知手段
(f1)前記(e1)検知手段によってCPUから外部メモリへのREADアクセスを検知するとアクセスされたデータを含む周囲のデータと複製状態を全ての内部メモリに転送する複製データ転送手段
(g)内部メモリに外部メモリのデータの複製状態を管理するための複製情報管理手段
(h)前記(f1)が内部メモリに外部メモリのデータを転送する際に転送先のアドレスを決定するアドレス変換手段。
Moreover, the system provided with the following means was demonstrated.
(E1) Detection means for detecting that each CPU has made READ access to the external memory (f1) When the (e1) detection means detects READ access from the CPU to the external memory, surrounding data including the accessed data Replicated data transfer means for transferring the replication status to all internal memories (g) Replication information management means for managing the replication status of data in the external memory in the internal memory (h) The (f1) Address conversion means for determining a transfer destination address when transferring data.

また、前記(f1)の複製データ転送手段は、前記(e1)で検知されたCPUに直結している内部メモリにのみデータと複製状態を転送する手段であり、
前記(g)複製情報管理手段は内部メモリごとに複製状態を保持しておく手段であることを説明した。
The duplicate data transfer means (f1) is means for transferring data and a duplicate state only to an internal memory directly connected to the CPU detected in (e1).
It has been described that (g) the duplicate information management means is means for maintaining a duplicate state for each internal memory.

また、以下の手段を備えたシステムを説明した。
(i1)CPUやI/Oから外部メモリにデータを書き込まれたことを検知する検知手段(j3)前記(i1)検知手段が外部メモリへのデータ書き込みを検知すると内部メモリに格納されている複製データを無効化するよう複製状態の情報を書き換えるデータ無効化手段。
Moreover, the system provided with the following means was demonstrated.
(I1) Detection means for detecting that data has been written from the CPU or I / O to the external memory (j3) When the (i1) detection means detects data writing to the external memory, a copy stored in the internal memory Data invalidation means for rewriting the replication status information to invalidate data.

また、以下の手段を備えたシステムを説明した。
(i1)CPUやI/Oから外部メモリにデータを書き込まれたことを検知する検知手段(k1)前記(i1)検知手段が外部メモリへのデータ書き込みを検知すると内部メモリに格納されている複製データを更新するデータ更新手段。
Moreover, the system provided with the following means was demonstrated.
(I1) Detection means for detecting that data has been written from the CPU or I / O to the external memory (k1) When the detection means (i1) detects data writing to the external memory, a copy stored in the internal memory Data updating means for updating data.

また、CPUとCPUから高速なシリアルバス経由でアクセスされる外部メモリと、CPUから高速なシリアルバスを経由せずに直接アクセスでき、さらに外部メモリのデータの一部または全部を複製としてブロック単位で格納する内部メモリとを備えた情報処理装置において以下の手段または方式を備えたシステムを説明した。
(a1)各ブロックに格納されている外部メモリのアドレスとそのブロックが有効であるかどうかを示す有効/無効情報に加え、データの転送が完了しているかどうかを示す転送完了情報が備わっている複製状態管理手段
(b)CPUが外部メモリにアクセスする代わりにデータの複製が格納されている内部メモリにアクセスするための外部メモリのアドレスを内部メモリのアドレスに変換するアドレス変換手段
(c1)以下の動作を行う、外部メモリへのメモリアクセス制御手段
CPUから外部メモリのデータをREADする場合は複製管理手段(a1)を参照して内部メモリに外部メモリの複製データがあるか、データ転送が完了しているかを調べる。内部メモリにデータの複製があり、かつ、データ転送が完了している場合は内部メモリからデータを取得する。内部メモリにデータの複製があるが、データ転送が完了していない場合は転送が完了するまで待った後、内部メモリにアクセスしてデータを取得する。内部メモリにデータの複製がない場合は、外部メモリにアクセスしてデータを取得し、その後、取得したデータを含むブロックのデータを内部メモリに格納するよう起動処理を行った後、元の処理に戻る。
CPUから外部メモリのデータをWRITEする場合は、複製管理手段(a1)を参照して内部メモリに外部メモリの複製データがあるか、また、データ転送が完了しているかを調べ、内部メモリに複製があり、データ転送が完了している場合は外部メモリと内部メモリにデータを書き込む。内部メモリにデータの複製があるがデータ転送が完了していない場合は外部メモリにデータを書き込んだ後、データ転送が完了するまで待ってから内部メモリにデータを書き込む。また、内部メモリにデータの複製がない場合は外部メモリにのみデータを書き込む。
(l)CPUの起動処理によって外部メモリのデータを内部メモリへ転送し、転送完了情報を書き換える手段(DMAまたは転送を行うスレッド)。
In addition, the CPU and the external memory accessed from the CPU via the high-speed serial bus can be directly accessed from the CPU without going through the high-speed serial bus, and part or all of the data in the external memory is stored as a copy in block units In the information processing apparatus including the internal memory, the system including the following means or method has been described.
(A1) In addition to the address of the external memory stored in each block and valid / invalid information indicating whether the block is valid, transfer completion information indicating whether the data transfer is completed is provided. Replication state management means (b) Address conversion means (c1) and below for converting the address of the external memory for accessing the internal memory in which the copy of data is stored instead of the CPU accessing the external memory to the address of the internal memory Memory access control means for external memory that performs the above operation When reading external memory data from the CPU, refer to the replication management means (a1) to see if there is replicated data in the external memory in the internal memory or data transfer is complete Find out what you are doing. When there is a copy of data in the internal memory and data transfer is completed, the data is acquired from the internal memory. If there is a copy of data in the internal memory, but the data transfer is not completed, after waiting for the transfer to complete, the internal memory is accessed to acquire the data. If there is no data copy in the internal memory, access the external memory to acquire the data, and then perform a startup process to store the block data containing the acquired data in the internal memory, then return to the original process Return.
When WRITE the data in the external memory from the CPU, the replication management means (a1) is referenced to check whether the internal memory has the replicated data in the external memory and whether the data transfer has been completed. If the data transfer is complete, the data is written to the external memory and the internal memory. If there is data replication in the internal memory but the data transfer is not completed, the data is written in the external memory, and then the data is written in the internal memory after waiting until the data transfer is completed. If there is no data copy in the internal memory, the data is written only in the external memory.
(L) Means (DMA or thread for performing transfer) for transferring data in the external memory to the internal memory and rewriting the transfer completion information by the CPU activation process.

100 情報処理装置、201 CPU、202 CPU、203 外部メモリ、204 I/Oデバイス、205 バス、206 内部メモリ、207 複製データ領域、208 複製状態管理情報、209 アドレス変換プログラム、210 メモリアクセス制御プログラム、211 バスブリッジ回路、212 データ転送プログラム、701 メモリ制御装置、702 バスI/F、703 DMAコントローラ、704 READ監視回路、705 データ転送回路、706 アドレス変換回路、707 複製情報管理回路、708 WRITE監視回路、709 データ無効化回路、1801 内部メモリ、1802 アドレス変換プログラム、1803 メモリアクセス制御プログラム、1804 複製データ領域、1805 複製状態管理情報。   DESCRIPTION OF SYMBOLS 100 Information processing apparatus, 201 CPU, 202 CPU, 203 External memory, 204 I / O device, 205 Bus, 206 Internal memory, 207 Replicated data area, 208 Replicated status management information, 209 Address conversion program, 210 Memory access control program, 211 Bus Bridge Circuit, 212 Data Transfer Program, 701 Memory Control Device, 702 Bus I / F, 703 DMA Controller, 704 READ Monitoring Circuit, 705 Data Transfer Circuit, 706 Address Conversion Circuit, 707 Replication Information Management Circuit, 708 WRITE Monitoring Circuit 709 Data invalidation circuit, 1801 internal memory, 1802 address conversion program, 1803 memory access control program, 1804 replication data area, 1805 replication status management information

Claims (19)

CPU(Central Processing Unit)と、バスを介して前記CPUと接続される外部メモリと、前記バスを介さずに前記CPUと接続され、前記外部メモリに格納されているデータの少なくとも一部のデータの複製を所定サイズのデータブロック単位で格納する内部メモリとを備える情報処理装置に含まれ、
前記CPUにより前記外部メモリに格納されているいずれかのデータの読み出しが要求された場合に、読み出し対象データの複製が前記内部メモリに格納されているか否かを判定する複製データ判定部と、
前記読み出し対象データの複製が前記内部メモリに格納されていない場合に、前記読み出し対象データを前記外部メモリから読み出し、読み出した前記読み出し対象データを前記CPUに供給する第1のデータ処理部と、
前記読み出し対象データの複製が前記内部メモリに格納されていない場合に、前記第1のデータ処理部が前記読み出し対象データを前記CPUに供給した後に、前記読み出し対象データを含むデータブロックを前記外部メモリから読み出し、読み出したデータブロックを前記内部メモリに格納する第2のデータ処理部とを有することを特徴とするメモリ制御システム。
A CPU (Central Processing Unit), an external memory connected to the CPU via a bus, and at least a part of data stored in the external memory connected to the CPU without going through the bus Included in an information processing apparatus including an internal memory for storing a copy in units of data blocks of a predetermined size,
A duplicate data determination unit that determines whether a copy of the data to be read is stored in the internal memory when the CPU requests reading of any data stored in the external memory;
A first data processing unit that reads the read target data from the external memory and supplies the read read target data to the CPU when a copy of the read target data is not stored in the internal memory;
When a copy of the read target data is not stored in the internal memory, after the first data processing unit supplies the read target data to the CPU, a data block including the read target data is A memory control system comprising: a second data processing unit that reads data from a memory and stores the read data block in the internal memory.
前記メモリ制御システムは、
前記データブロックと同じサイズのデータ格納ブロックに区分され、1つのデータ格納ブロックに1つのデータブロックを格納する内部メモリを備える情報処理装置に含まれ、
前記第2のデータ処理部は、
前記外部メモリから読み出したデータブロックをいずれかのデータ格納ブロックに格納する際に、当該データ格納ブロックにデータブロックが格納されているか否かが表される有効/無効情報当該データ格納ブロックにデータブロックが格納されていることを表す設定することを特徴とする請求項1に記載のメモリ制御システム。
The memory control system includes:
The data block is divided into data storage blocks of the same size as the data block, and is included in an information processing apparatus including an internal memory that stores one data block in one data storage block,
The second data processing unit
When the data block read from the external memory is stored in any data storage block, valid / invalid information indicating whether the data block is stored in the data storage block is stored in the data storage block. the memory control system of claim 1, characterized in that the setting indicating that the data block is stored.
前記第2のデータ処理部は、
データブロックのデータ格納ブロックへの格納と、データ格納ブロックの有効/無効情報の設定を1トランザクションで行うことを特徴とする請求項2に記載のメモリ制御システム。
The second data processing unit
3. The memory control system according to claim 2, wherein storing the data block in the data storage block and setting valid / invalid information of the data storage block are performed in one transaction.
前記第2のデータ処理部は、
前記外部メモリからのデータブロックをいずれかのデータ格納ブロックに格納する際に、当該データ格納ブロックの有効/無効情報の設定を参照して当該データ格納ブロックに既に他のデータブロックが格納されているか否かを判断し、当該データ格納ブロックに既に他のデータブロックが格納されている場合に、当該データ格納ブロックの有効/無効情報の設定をデータブロックが格納されていないことを表す設定に更新し、前記外部メモリから読み出したデータブロックを前記他のデータブロックに置き換えて格納し、当該データ格納ブロックの有効/無効情報の設定をデータブロックが格納されていることを表す設定に更新することを特徴とする請求項2又は3に記載のメモリ制御システム。
The second data processing unit
When a data block from the external memory is stored in any data storage block, is another data block already stored in the data storage block with reference to the valid / invalid information setting of the data storage block? If another data block is already stored in the data storage block, the valid / invalid information setting of the data storage block is updated to a setting indicating that the data block is not stored. The data block read from the external memory is replaced with the other data block and stored, and the valid / invalid information setting of the data storage block is updated to a setting indicating that the data block is stored. The memory control system according to claim 2 or 3.
前記メモリ制御システムは、
前記データブロックと同じサイズのデータ格納ブロックに区分され、1つのデータ格納ブロックに1つのデータブロックを格納する内部メモリを備える情報処理装置に含まれ、
前記第2のデータ処理部は、
前記外部メモリからのデータブロックをいずれかのデータ格納ブロックに格納する際に、当該データ格納ブロックにデータブロックが格納されているか否かが表される有効/無効情報当該データ格納ブロックにデータブロックが格納されていることを表す設定するとともに、当該データ格納ブロックへのデータブロックの格納が完了しているか否かが表される転送完了情報を当該データ格納ブロックへのデータブロックの格納が未完了であることを表す設定し、前記外部メモリから読み出したデータブロックの格納が完了した際に、当該データ格納ブロックの転送完了情報の設定をデータブロックの格納が完了したことを表す設定に更新することを特徴とする請求項1〜4のいずれかに記載のメモリ制御システム。
The memory control system includes:
The data block is divided into data storage blocks of the same size as the data block, and is included in an information processing apparatus including an internal memory that stores one data block in one data storage block,
The second data processing unit
When the data block from the external memory is stored in any data storage block, valid / invalid information indicating whether the data block is stored in the data storage block is stored in the data storage block. while the setting indicating that the block is stored, storage of the data blocks of the transfer completion information whether stored data blocks to the data storage block has been completed is represented to the data storage block to set indicating that it is an incomplete, when the storage of the read data blocks from the external memory is completed, the setting indicating that the setting of the transfer completion information of the data storage block storing data blocks is completed The memory control system according to claim 1, wherein the memory control system is updated.
前記複製データ判定部は、
データ格納ブロックごとの有効/無効情報及び転送完了情報の設定を参照して、前記読み出し対象データを含むデータブロックが前記内部メモリに含まれるか否か及び前記読み出し対象データを含むデータブロックの格納が完了しているかを判定し、
前記読み出し対象データを含むデータブロックが前記内部メモリに含まれるが前記読み出し対象データを含むデータブロックの格納が未完了の場合は、前記読み出し対象データを含むデータブロックの格納が完了した時点で前記読み出し対象データを含むデータブロックを前記内部メモリから取得し、
前記読み出し対象データを含むデータブロックが前記内部メモリに含まれない場合は、前記第1のデータ処理部に処理を移行させることを特徴とする請求項5に記載のメモリ制御システム。
The duplicate data determination unit
With reference to the setting of valid / invalid information and transfer completion information for each data storage block, whether or not the data block including the read target data is included in the internal memory and storing of the data block including the read target data is determined. Determine if it ’s done,
When the data block including the read target data is included in the internal memory but the storage of the data block including the read target data is not completed, the reading is performed when the storage of the data block including the read target data is completed. Obtaining a data block including target data from the internal memory;
6. The memory control system according to claim 5, wherein when the data block including the read target data is not included in the internal memory, the processing is transferred to the first data processing unit.
前記第2のデータ処理部は、
前記外部メモリから読み出したデータブロックをいずれかのデータ格納ブロックに格納する際に、前記外部メモリから読み出したデータブロックに対応する前記外部メモリ上のアドレスを当該データ格納ブロックに対して設定し、
前記複製データ判定部は、
データ格納ブロックごとの有効/無効情報の設定及び前記外部メモリ上のアドレスの設定を参照して、前記読み出し対象データを含むデータブロックが前記内部メモリに含まれるか否かを判定し、前記読み出し対象データを含むデータブロックが前記内部メモリに含まれる場合は、前記読み出し対象データを含むデータブロックを前記内部メモリから取得し、前記読み出し対象データを含むデータブロックが前記内部メモリに含まれない場合は、前記第1のデータ処理部に処理を移行させることを特徴とする請求項2〜6のいずれかに記載のメモリ制御システム。
The second data processing unit
When storing a data block read from the external memory in any data storage block, an address on the external memory corresponding to the data block read from the external memory is set for the data storage block,
The duplicate data determination unit
With reference to the setting of valid / invalid information for each data storage block and the setting of the address on the external memory, it is determined whether or not the data block including the read target data is included in the internal memory, and the read target When a data block including data is included in the internal memory, a data block including the read target data is acquired from the internal memory, and when a data block including the read target data is not included in the internal memory, The memory control system according to claim 2, wherein the processing is transferred to the first data processing unit.
前記第2のデータ処理部は、
前記読み出し対象データを含むデータブロックをWRITEコマンドのバースト転送により前記内部メモリに転送して、前記読み出し対象データを含むデータブロックを前記内部メモリに格納することを特徴とする請求項1〜7のいずれかに記載のメモリ制御システム。
The second data processing unit
8. The data block including the read target data is transferred to the internal memory by burst transfer of a WRITE command, and the data block including the read target data is stored in the internal memory. A memory control system according to any one of the above.
前記メモリ制御システムは、
前記バスを介して前記外部メモリと接続される、前記CPU以外のCPUである他CPUと、前記バスを介さずに前記他CPUと接続され、前記外部メモリに格納されているデータの少なくとも一部のデータの複製を所定サイズのデータブロック単位で格納するデバイス用内部メモリとを備える情報処理装置に含まれ、
前記複製データ判定部は、
前記CPUにより前記外部メモリに格納されているいずれかのデータの読み出しが要求された場合に、前記CPUの読み出し対象データの複製が前記CPUの内部メモリに格納されているか否かを判定するとともに、前記他CPUにより前記外部メモリに格納されているいずれかのデータの読み出しが要求された場合に、前記他CPUの読み出し対象データの複製が前記デバイス用内部メモリに格納されているか否かを判定し、
前記第2のデータ処理部は、
前記CPUの読み出し対象データの複製が前記CPUの内部メモリに格納されていない場合及び前記他CPUの読み出し対象データの複製が前記デバイス用内部メモリに格納されていない場合のいずれにおいても、読み出し対象データを含むデータブロックを前記外部メモリから読み出し、読み出したデータブロックを前記CPUの内部メモリ及び前記デバイス用内部メモリの双方に格納することを特徴とする請求項1〜8のいずれかに記載のメモリ制御システム。
The memory control system includes:
At least a part of data stored in the external memory connected to the other CPU , not via the bus, and another CPU connected to the external memory via the bus Included in an information processing apparatus including an internal memory for a device that stores a copy of data in units of data blocks of a predetermined size,
The duplicate data determination unit
When reading of any data stored in the external memory is requested by the CPU, it is determined whether a copy of the data to be read by the CPU is stored in the internal memory of the CPU; if the reading of any of the data stored in the external memory is requested by the other CPU, it determines whether replication of the read target data of the other CPU is stored in the internal memory for the device ,
The second data processing unit
The read target data in both cases where a copy of the read target data of the CPU is not stored in the internal memory of the CPU and a copy of the read target data of the other CPU is not stored in the internal memory for the device 9. The memory control according to claim 1, wherein a data block including a data block is read from the external memory, and the read data block is stored in both the internal memory of the CPU and the internal memory for the device. system.
前記メモリ制御システムは、
前記バスを介して前記外部メモリと接続される、前記CPU以外のCPUである他CPUと、前記バスを介さずに前記他CPUと接続され、前記外部メモリに格納されているデータの少なくとも一部のデータの複製を所定サイズのデータブロック単位で格納するデバイス用内部メモリとを備える情報処理装置に含まれ、
前記複製データ判定部は、
前記CPUにより前記外部メモリに格納されているいずれかのデータの読み出しが要求された場合に、前記CPUの読み出し対象データの複製が前記CPUの内部メモリに格納されているか否かを判定するとともに、前記他CPUにより前記外部メモリに格納されているいずれかのデータの読み出しが要求された場合に、前記他CPUの読み出し対象データの複製が前記デバイス用内部メモリに格納されているか否かを判定し、
前記第2のデータ処理部は、
前記CPUの読み出し対象データの複製が前記CPUの内部メモリに格納されていない場合に、前記CPUの読み出し対象データを含むデータブロックを前記外部メモリから読み出し、読み出したデータブロックを前記CPUの内部メモリにのみ格納し、前記他CPUの読み出し対象データの複製が前記デバイス用内部メモリに格納されていない場合に、前記他CPUの読み出し対象データを含むデータブロックを前記外部メモリから読み出し、読み出したデータブロックを前記デバイス用内部メモリにのみ格納することを特徴とする請求項1〜9のいずれかに記載のメモリ制御システム。
The memory control system includes:
At least a part of data stored in the external memory connected to the other CPU , not via the bus, and another CPU connected to the external memory via the bus Included in an information processing apparatus including an internal memory for a device that stores a copy of data in units of data blocks of a predetermined size,
The duplicate data determination unit
When reading of any data stored in the external memory is requested by the CPU, it is determined whether a copy of the data to be read by the CPU is stored in the internal memory of the CPU; if the reading of any of the data stored in the external memory is requested by the other CPU, it determines whether replication of the read target data of the other CPU is stored in the internal memory for the device ,
The second data processing unit
When a copy of the read target data of the CPU is not stored in the internal memory of the CPU, a data block including the read target data of the CPU is read from the external memory, and the read data block is stored in the internal memory of the CPU. Only when a copy of the read target data of the other CPU is not stored in the internal memory for the device, the data block including the read target data of the other CPU is read from the external memory, and the read data block is The memory control system according to claim 1, wherein the memory control system is stored only in the internal memory for the device.
前記メモリ制御システムは、
前記CPUの内部メモリとして、前記データブロックと同じサイズのデータ格納ブロックに区分され1つのデータ格納ブロックに1つのデータブロックを格納するメモリを備え、更に、前記外部メモリにデータを書き込む、前記CPU以外のCPUである他CPUを備える情報処理装置に含まれ、
前記第2のデータ処理部は、
前記他CPUにより前記外部メモリにデータの書き込みが行われた場合に、前記他CPUによりデータ書き込みが行われた前記外部メモリ上のアドレスに対応する前記CPUの内部メモリのデータ格納ブロックを抽出し、抽出したデータ格納ブロックにデータブロックが格納されているか否かが表される有効/無効情報を、抽出したデータ格納ブロックにはデータブロックが格納されていないことを表すすることを特徴とする請求項1〜10のいずれかに記載のメモリ制御システム。
The memory control system includes:
As the internal memory of the CPU, a memory that is divided into data storage blocks of the same size as the data block and stores one data block in one data storage block, and further writes data to the external memory, other than the CPU Included in an information processing apparatus including another CPU ,
The second data processing unit
When data is written to the external memory by the other CPU, a data storage block in the internal memory of the CPU corresponding to the address on the external memory where the data is written by the other CPU is extracted. the valid / invalid information whether the extracted data storage block in the data block is stored is represented, in the extracted data storage blocks and characterized in that the setting indicating that the data block is not stored The memory control system according to claim 1.
前記第2のデータ処理部は、
前記他CPUにより前記外部メモリにデータの書き込みが行われた場合の有効/無効情報の設定を前記内部メモリにおいて行い、既に有効/無効情報の設定が行われているデータ格納ブロックに対応する前記外部メモリ上のアドレスへのデータの書き込みが前記他CPUにより再度行われた場合に、前記内部メモリへの再度の設定を省略することを特徴とする請求項11に記載のメモリ制御システム。
The second data processing unit
The valid / invalid information is set in the internal memory when data is written to the external memory by the other CPU , and the external corresponding to the data storage block for which valid / invalid information is already set is set. 12. The memory control system according to claim 11, wherein when data is written to an address on the memory again by the other CPU , the setting to the internal memory is omitted.
前記メモリ制御システムは、
前記バスを介さずに前記CPU以外のCPUである他CPUと接続され、前記外部メモリに格納されているデータの少なくとも一部のデータの複製を所定サイズのデータブロック単位で格納し、前記データブロックと同じサイズのデータ格納ブロックに区分され、1つのデータ格納ブロックに1つのデータブロックを格納するデバイス用内部メモリを備える情報処理装置に含まれ、
前記第2のデータ処理部は、
前記CPUにより前記外部メモリにデータの書き込みが行われた場合に、前記CPUによりデータ書き込みが行われた前記外部メモリ上のアドレスに対応する前記デバイス用内部メモリのデータ格納ブロックを抽出し、抽出したデータ格納ブロックにデータブロックが格納されているか否かが表される有効/無効情報を、抽出したデータ格納ブロックにはデータブロックが格納されていないことを表すすることを特徴とする請求項1〜12のいずれかに記載のメモリ制御システム。
The memory control system includes:
The data block is connected to another CPU , which is a CPU other than the CPU, without passing through the bus, and a copy of at least a part of the data stored in the external memory is stored in units of data blocks of a predetermined size. Is included in an information processing apparatus including an internal memory for a device that is divided into data storage blocks of the same size and stores one data block in one data storage block,
The second data processing unit
When data is written to the external memory by the CPU, the data storage block of the internal memory for the device corresponding to the address on the external memory where the data is written by the CPU is extracted and extracted. the valid / invalid information whether the data block in the data storage block is stored is represented, in the extracted data storage block is characterized in that the setting indicating that the data block is not stored claimed Item 13. A memory control system according to any one of Items 1 to 12.
前記メモリ制御システムは、
前記CPUの内部メモリとして、前記データブロックと同じサイズのデータ格納ブロックに区分され1つのデータ格納ブロックに1つのデータブロックを格納するメモリを備え、更に、前記外部メモリにデータを書き込む、前記CPU以外のCPUである他CPUを備える情報処理装置に含まれ、
前記第2のデータ処理部は、
前記他CPUにより前記外部メモリにデータの書き込みが行われた場合に、前記他CPUによりデータ書き込みが行われた前記外部メモリ上のアドレスに対応する前記CPUの内部メモリのデータ格納ブロックを抽出し、抽出したデータ格納ブロックに前記他CPUにより前記外部メモリに書き込まれたデータの複製を格納することを特徴とする請求項1〜13のいずれかに記載のメモリ制御システム。
The memory control system includes:
As the internal memory of the CPU, a memory that is divided into data storage blocks of the same size as the data block and stores one data block in one data storage block, and further writes data to the external memory, other than the CPU Included in an information processing apparatus including another CPU ,
The second data processing unit
When data is written to the external memory by the other CPU, a data storage block in the internal memory of the CPU corresponding to the address on the external memory where the data is written by the other CPU is extracted. 14. The memory control system according to claim 1, wherein a copy of data written to the external memory by the other CPU is stored in the extracted data storage block.
前記メモリ制御システムは、
前記バスを介さずに前記CPU以外のCPUである他CPUと接続され、前記外部メモリに格納されているデータの少なくとも一部のデータの複製を所定サイズのデータブロック単位で格納し、前記データブロックと同じサイズのデータ格納ブロックに区分され、1つのデータ格納ブロックに1つのデータブロックを格納するデバイス用内部メモリを備える情報処理装置に含まれ、
前記第2のデータ処理部は、
前記CPUにより前記外部メモリにデータの書き込みが行われた場合に、前記CPUによりデータ書き込みが行われた前記外部メモリ上のアドレスに対応する前記デバイス用内部メモリのデータ格納ブロックを抽出し、抽出したデータ格納ブロックに前記CPUにより前記外部メモリに書き込まれたデータの複製を格納することを特徴とする請求項1〜14のいずれかに記載のメモリ制御システム。
The memory control system includes:
The data block is connected to another CPU , which is a CPU other than the CPU, without passing through the bus, and a copy of at least a part of the data stored in the external memory is stored in units of data blocks of a predetermined size. Is included in an information processing apparatus including an internal memory for a device that is divided into data storage blocks of the same size and stores one data block in one data storage block,
The second data processing unit
When data is written to the external memory by the CPU, the data storage block of the internal memory for the device corresponding to the address on the external memory where the data is written by the CPU is extracted and extracted. 15. The memory control system according to claim 1, wherein a copy of data written to the external memory by the CPU is stored in a data storage block.
前記メモリ制御システムは、
前記外部メモリに格納されている全てのデータの複製が前記CPUの内部メモリに格納されている情報処理装置に含まれていることを特徴とする請求項1〜15のいずれかに記載のメモリ制御システム。
The memory control system includes:
The memory control according to claim 1, wherein a copy of all data stored in the external memory is included in an information processing device stored in an internal memory of the CPU. system.
前記複製データ判定部と、前記第1のデータ処理部と、前記第2のデータ処理部が、前記CPUにより実行されるプログラムであることを特徴とする請求項1〜16のいずれかに記載のメモリ制御システム。   The duplicate data determination unit, the first data processing unit, and the second data processing unit are programs executed by the CPU. Memory control system. 前記複製データ判定部と前記第1のデータ処理部が、前記CPUにより実行されるプログラムであり、
前記第2のデータ処理部が、前記CPUと前記外部メモリとの間に配置されたメモリ制御装置であることを特徴とする請求項1〜16のいずれかに記載のメモリ制御システム。
The duplicate data determination unit and the first data processing unit are programs executed by the CPU,
The memory control system according to any one of claims 1 to 16, wherein the second data processing unit is a memory control device disposed between the CPU and the external memory.
前記第1のデータ処理部は、The first data processing unit includes:
前記外部メモリから読み出した前記読み出し対象データを、前記内部メモリに格納することなく、前記CPUに供給することを特徴とする請求項1に記載のメモリ制御システム。The memory control system according to claim 1, wherein the read target data read from the external memory is supplied to the CPU without being stored in the internal memory.
JP2009218506A 2009-09-24 2009-09-24 Memory control system Expired - Fee Related JP5452148B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009218506A JP5452148B2 (en) 2009-09-24 2009-09-24 Memory control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009218506A JP5452148B2 (en) 2009-09-24 2009-09-24 Memory control system

Publications (2)

Publication Number Publication Date
JP2011070253A JP2011070253A (en) 2011-04-07
JP5452148B2 true JP5452148B2 (en) 2014-03-26

Family

ID=44015508

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009218506A Expired - Fee Related JP5452148B2 (en) 2009-09-24 2009-09-24 Memory control system

Country Status (1)

Country Link
JP (1) JP5452148B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7062280B2 (en) 2018-05-28 2022-05-06 株式会社Skb Sliding door device

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10466927B2 (en) 2016-02-17 2019-11-05 Honeywell International Inc. Replication of memory image for efficient simultaneous uses
JP7080698B2 (en) * 2018-03-30 2022-06-06 株式会社デンソー Information processing equipment

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04137052A (en) * 1990-09-28 1992-05-12 Fujitsu Ltd Cache memory control system
JPH0822414A (en) * 1994-07-06 1996-01-23 Hitachi Ltd Computer system
JPH09218823A (en) * 1996-02-08 1997-08-19 Hitachi Ltd Cache memory controller
JP3967921B2 (en) * 1999-11-16 2007-08-29 株式会社ルネサステクノロジ Data processing apparatus and data processing system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7062280B2 (en) 2018-05-28 2022-05-06 株式会社Skb Sliding door device

Also Published As

Publication number Publication date
JP2011070253A (en) 2011-04-07

Similar Documents

Publication Publication Date Title
CN108885583B (en) Cache memory access
US7613884B2 (en) Multiprocessor system and method ensuring coherency between a main memory and a cache memory
TWI522802B (en) Apparatus and method for ensuring data coherency within a cache memory hierarchy of a microprocessor
TW591384B (en) Method and system for speculatively invalidating lines in a cache
CN101097544B (en) Global overflow method for virtualized transactional memory
TWI391821B (en) Processor unit, data processing system and method for issuing a request on an interconnect fabric without reference to a lower level cache based upon a tagged cache state
US20230254907A1 (en) Pipelined read-modify-write operations in cache memory
US7340565B2 (en) Source request arbitration
TWI638311B (en) Data processing method and processor
US7549025B2 (en) Efficient marking of shared cache lines
US20110173400A1 (en) Buffer memory device, memory system, and data transfer method
JP5063104B2 (en) Loss of ownership of cache entry over time of entry
US20140115297A1 (en) Detection of conflicts between transactions and page shootdowns
US6560681B1 (en) Split sparse directory for a distributed shared memory multiprocessor system
US7472227B2 (en) Invalidating multiple address cache entries
JP2006134324A (en) Direct deposit using locking cache
WO1999035578A1 (en) Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency
JPH09237223A (en) Computer system using bus bridge
TWI428754B (en) System and method for implementing an enhanced hover state with active prefetches
US7024520B2 (en) System and method enabling efficient cache line reuse in a computer system
JP5452148B2 (en) Memory control system
JP4106664B2 (en) Memory controller in data processing system
US9015424B2 (en) Write transaction management within a memory interconnect
JP2007058349A (en) Cache system
JP3836836B2 (en) Incorrect cache line protection mechanism during memory duplication operations

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120201

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130423

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130516

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131227

R150 Certificate of patent or registration of utility model

Ref document number: 5452148

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees