JP5452148B2 - Memory control system - Google Patents
Memory control system Download PDFInfo
- 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
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".
しかし、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.
図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
The
The
The
An
That is, the
In this embodiment, in order to shorten the time for the
The
Further, the
図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
The
図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
The
The replication
The
The valid /
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
The
The memory
That is, in the memory
Furthermore, in the memory
Thus, in this embodiment, the
なお、以下では、「アドレス変換プログラム209が・・・する」や「メモリアクセス制御プログラム210が・・・する」といった記述を行うが、これらは、「アドレス変換プログラム209が実行され、アドレス変換プログラム209のプロセス又はタスクが・・・する」、「メモリアクセス制御プログラム210が実行され、メモリアクセス制御プログラム210のプロセス又はタスクが・・・する」という意味である。
In the following description, “
図4は、CPU201が外部メモリ203のデータをREADする時の動作を示したフローチャートである。
以下、図4の各ステップを説明する。
FIG. 4 is a flowchart showing an operation when the
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
If it is determined that the copy of the data is in the
On the other hand, if it is determined that there is no data replication in the
Further, the memory
Further, the memory
図5は、CPU201が外部メモリ203のデータをWRITEする時の動作を示したフローチャートである。
FIG. 5 is a flowchart showing an operation when the
まず、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
Thereafter, the memory
If there is data, the
図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
When the
The operation of the
このように、本実施の形態によれば、外部メモリ203のデータが内部メモリ206内の複製データ領域207にある場合は複製データ領域207からデータをREADする。内部メモリ206はCPU201とバス205を経由せず直接アクセスすることができるため、高速にデータを読み出すことができる。
Thus, according to the present embodiment, when the data in the
従来のキャッシュメモリではキャッシュミスが発生するとキャッシュミスをしたデータを含むブロックをキャッシュメモリに格納する動作と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
Therefore, correct data can be accessed whenever the
外部メモリ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
When the storage location is fixed, the address of the
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
However, when the
Further, the case where the
本実施の形態では、外部メモリ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
That is, by ensuring in the
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
In the present embodiment, the memory
For this reason, in this embodiment, the combination of the
本実施の形態では、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
Further, the
また、本実施の形態では、メモリ制御装置701は、外部メモリ203から読み出したデータブロックを内部メモリ206内のいずれかのデータ格納ブロックに格納する際に、当該データ格納ブロックの有効/無効情報302の設定を参照して当該データ格納ブロックに既に他のデータブロックが格納されているか否かを判断し、有効/無効情報302が有効である場合(当該データ格納ブロックに既に他のデータブロックが格納されている場合)に、当該データ格納ブロックの有効/無効情報302の設定を無効(データブロックが格納されていないことを表す設定)に更新し、外部メモリ203から読み出したデータブロックを他のデータブロックに置き換えて格納し、当該データ格納ブロックの有効/無効情報302の設定を有効(データブロックが格納されていることを表す設定)に更新する。
In this embodiment, when the
図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
The
バスI/F702は、バス205を経由してきた外部メモリ203へのアクセスを受信し、アドレス信号710、アクセス要求元を表すイニシエータ情報信号711、RW信号712を出力する。
また、DMAコントローラ703、データ転送回路705、データ無効化回路709から出力されたアドレス信号、データ信号、制御信号をもとにバス205または外部メモリ203のデータ転送を制御する。
The bus I /
Further, data transfer of the
DMAコントローラ703はデータ転送回路705から起動され、外部メモリ203のデータを複製データ領域207へ転送する。
The
複製情報管理回路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
The configuration of the duplicate
The duplicate
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
When the
The output tag address is stored in the tag portion of the address register 803 and output as an external
When the
アドレス変換回路706は外部メモリ203のアドレスから、そのアドレスのデータの複製が格納されている可能性のある複製データ領域207のアドレスとその複製データ領域207に対するデータ格納ブロックの複製状態管理情報208のアドレスを出力する。
The
アドレス変換回路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
The
The replication status management
As for the internal
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
The internal configuration of the
The
Information indicating the
If the contents of the RW signal 712 and the
Therefore, when information indicating the
The
データ転送回路705はREAD監視回路704がイベント信号714を有効にすると、アドレス信号713で示すアドレスを含むブロックの外部メモリ203のデータを複製データ領域207に転送するようにDMAコントローラ703を制御する。
また、複製情報管理回路707の該当ブロックの有効状態を有効にする。データ転送回路705の詳細な動作の説明は後述する。
The
Also, the valid state of the corresponding block of the duplicate
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
An internal configuration of the
The
The
Therefore, when information indicating the
The
データ無効化回路709はイベント信号724が有効になると、アドレス信号723で指定したデータを含むブロックの複製データを無効化するように複製情報管理回路707を更新し、さらに複製状態管理情報208のデータを更新するようバスI/F702にアドレス信号723とデータ信号724と制御信号725を出力する。
データ無効化回路709の詳細な動作の説明は後述する。
When the
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
In the present embodiment, an
本構成における動作を説明する。
CPU201が外部メモリ203のデータをREADする時(動作1)、WRITEする時(動作2)、CPU202が外部メモリ203のデータをREADする時(動作3)、WRITEする時(動作4)の4つの場合の動作をそれぞれ説明する。
The operation in this configuration will be described.
When the
(動作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
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
When the
On the other hand, if there is no data to be accessed in the replicated
In this embodiment, the memory
次に、ステップS404にてCPU201が外部メモリ203にREADアクセスした後のメモリ制御装置701の動作を図7を用いて説明する。
Next, the operation of the
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
The
The
イベント信号714が有効になったときのデータ転送回路705の動作を示すフローチャートを図14に示す。
FIG. 14 is a flowchart showing the operation of the
データ転送回路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
If the address of the external
As a situation in which the
If it is determined in step S1403 that there is no data in the duplicate data area 207 (when the address of the external
ステップ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
If another data block is stored in the data storage block to be stored (YES in S1405), the replication status management
Thereafter, the
次に、図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
In this description, in a situation where a data block including data at address A of the
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
[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
[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
[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
In the above example, when the valid / invalid information is not invalidated, the contents of the block n of the
[Block 120 Data 1201] [Valid / Invalid Information 1202] [External Memory Address 1203]
= [Data at address B] [valid] [A]
At this time, when the
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
最後に、外部メモリアドレス信号718にアドレス信号713、有効信号719に有効情報、制御信号720にWRITE信号を出力して複製情報管理回路707を更新する(ステップS1410)。
Finally, the
以上が、(動作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
When there is data in the
(動作3)CPU202またはI/Oデバイス204が外部メモリ203のデータをREADする時
CPU202またはI/Oデバイス204は外部メモリ203へ直接READアクセスを行う。動作2でも示した通り、CPU201がデータを変更しても常に最新のデータが外部メモリ203に書き込まれているため、データの整合性は保たれている。
(Operation 3) When the
(動作4)CPU202またはI/Oデバイス204が外部メモリ203にデータをWRITEする時
ここではCPU202が外部メモリ203にデータをWRITEした時の動作を説明する。
I/Oデバイス204が外部メモリ203にデータをWRITEした時の動作も同じである。
(Operation 4) When
The operation when the I /
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
The
イベント信号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
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
When there is data at the address specified by the
Further, the replication
以上のように動作することで、CPU201は外部メモリ203のデータの複製を内部メモリ206内の複製データ領域207に保持することができ、CPU201から外部メモリ203へのアクセス時間を短縮することができる。
By operating as described above, the
なお、図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
また、本実施の形態ではCPU201から外部メモリ203へのREADアクセスを検知するとREAD監視回路704とデータ転送回路705により、外部メモリ203のデータを内部メモリ206内へ転送するため、CPU201が外部メモリ203から内部メモリ206へデータを転送する処理を行う必要がない。
In this embodiment, when the READ access from the
また、CPU201は外部メモリ203のデータをWRITEした場合は常に外部メモリ203へも書き込むため、CPU202やI/Oデバイス204が外部メモリ203にREADアクセスしてもデータの整合性を保つことができる。
In addition, since the
さらに、WRITE監視回路708とデータ無効化回路709により、CPU202やI/Oデバイス204が外部メモリ203のデータを変更すると複製データ領域207のデータを無効化するよう複製状態管理情報208を書き換えるため、CPU201が古いデータにアクセスすることがなくなる。
Further, the
本実施の形態では、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
When the
Further, when the
In this case, the data of the
In this method, the number of times the
本実施の形態では複製データの各ブロックの末尾に有効無効情報を備える(図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
本実施の形態では、複製データ領域207にデータを格納方法としてダイレクトマップ方式を用いたが、実施の形態1のように格納できる領域を固定していてもよい。
In the present embodiment, the direct map method is used as a method for storing data in the replicated
本実施の形態では、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
In the case of invalidating the data, when the
However, by writing the changed data in the
また、実施の形態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
That is, the memory
実施の形態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
FIG. 17 is the same as the configuration of the second embodiment shown in FIG. 7 except for the duplicate
実施の形態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
For this reason, the information regarding which data in the
Since the
Further, even when the
実施の形態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
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
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
なお、本実施の形態では、CPU202やI/Oデバイス204が外部メモリ203へデータをWRITEしたことをWRITE監視回路708が検知し、データ無効化回路709が複製状態管理情報208のデータを無効化するようにしているが、CPU202やI/Oデバイス204が外部メモリ203のデータをWRITEすることがない場合は、WRITE監視回路708とデータ無効化回路709がなくてもよい。
In this embodiment, the
実施の形態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
The
That is, the
The
CPU202内部にはアドレス変換プログラム1802、メモリアクセス制御プログラム1803があり、内部メモリ1801には複製データ領域1804と複製状態管理情報1805が格納されており、CPU202の内部メモリ1801の複製データ領域1804にも外部メモリ203のデータを格納する。
複製データ領域1804と複製データ領域207、複製状態管理情報1805と複製状態管理情報208はそれぞれ同一の構成であり、アドレス変換プログラム1802とアドレス変換プログラム209の動作、メモリアクセス制御プログラム1803とメモリアクセス制御プログラム210の動作は同じである。
The
The
図18は、本実施の形態に係るメモリ制御装置701の構成例を示す。
FIG. 18 shows a configuration example of the
本実施の形態では、メモリアクセス制御プログラム210は、外部メモリ203に格納されているいずれかのデータの読み出しが要求された場合に、読み出し対象データの複製が内部メモリ206に格納されているか否かを判定し、また、メモリアクセス制御プログラム1803は、外部メモリ203に格納されているいずれかのデータの読み出しが要求された場合に、読み出し対象データの複製が内部メモリ1801に格納されているか否かを判定する。
メモリ制御装置701は、読み出し対象データの複製が内部メモリ206に格納されていない場合及び読み出し対象データの複製が内部メモリ1801に格納されていない場合のいずれにおいても、読み出し対象データを含むデータブロックを外部メモリ203から読み出し、読み出したデータブロックを内部メモリ206及び内部メモリ1801の双方に格納する。
In the present embodiment, the memory
The
つまり、実施の形態2におけるREAD監視回路704は、CPU201からのREADアクセスを検知するとイベント信号714を有効にしたが、本実施の形態では、CPU201またはCPU202からのREADアクセスがあった場合、イベント信号714を有効にする。
データ転送回路705はイベント信号714が有効になると複製データ領域207と複製データ領域1804の両方に外部メモリ203のデータを転送し、複製状態管理情報208、複製状態管理情報1805を更新する。
That is, the
When the
また、本実施の形態では、CPU202により外部メモリ203にデータの書き込みが行われた場合は、CPU201、CPU202両方の複製データ領域を無効化するようにする。また、CPU202またはI/Oデバイス204により外部メモリ203にデータの書き込みが行われた場合も、CPU201、CPU202両方のデータ格納ブロックの有効/無効情報を無効にする。
In this embodiment, when the
つまり、WRITE監視回路708は、CPU202またはI/Oデバイス204に加え、CPU201に関してもWRITEアクセスが発生するとイベント信号724を有効にする。
またデータ無効化回路709はイベント信号724が有効になると、複製状態管理情報208と複製状態管理情報1805のアドレス信号723で指定されたデータのエントリを無効化する。
In other words, the
Further, when the
このように、本実施の形態によれば、複製データ領域207と複製データ領域1804で複製状態を同じにすると、複製情報管理回路707が管理する外部メモリアドレスと有効情報を一元に管理することができる。
As described above, according to the present embodiment, when the replication state is the same in the
また、上記の説明では、複製データ領域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
In this case, when the
In other words, the
また、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
On the other hand, when data is written to the
更に、データ無効化回路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
That is, when data is written to the
以上のように構成することで、CPU201だけでなく、CPU202にも外部メモリ203のデータを各CPUに接続している内部メモリ206、内部メモリ1801に格納することができ、CPU201、CPU202からの外部メモリ203のデータへのアクセス時間を短縮することができる。
With the above configuration, the data of the
実施の形態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
内部メモリ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
The
In this embodiment, whether or not the transfer of the data in the
The transfer completion information 1901 is an identifier indicating whether or not the transfer of the data in the
“Complete” represents a state in which all data blocks at the address specified by the
When the valid /
When the valid /
CPU201は外部メモリ203のデータブロックを複製データ領域207に転送するようDMAコントローラ703を起動した時に転送完了情報1901を“未完了”とセットする。
そして複製データ領域207への外部メモリ203のデータブロックのDMA転送が完了するとDMAコントローラ703が転送完了情報1901を“完了”にセットする。
The
When the DMA transfer of the data block in the
図20はCPU201が外部メモリ203のデータをREADした時のフローチャートである。
FIG. 20 is a flowchart when the
まずステップ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
Specifically, it is checked whether the address of the data block including the data to be read matches the
If the address of the data block including the data to be read matches the
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
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
In order to store the data block including the data to be read in the
Then, the memory
外部メモリ203から複製データ領域207へのデータ転送はステップS2006のCPU201からの起動処理によってDMAコントローラ703が行う。
DMAコントローラ703はCPU201によって指定された転送元アドレス、転送先アドレス、転送サイズにしたがって外部メモリ203のデータを読み出して複製データ領域207へデータを書き込む。
DMAコントローラ703は転送が完了すると、CPU201によって指定された転送完了情報1901に“完了”を書き込む。
Data transfer from the
The
When the transfer is completed, the
このように本実施の形態では、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
また、各ブロックのデータ303と転送完了情報1901が連続領域となっているため、外部メモリ203から複製データ領域207へのデータ転送と、転送完了情報の書き込みを1トランザクションで行うことができるため、ブロックのデータ303と転送完了情報が連続していない場合よりも高速にデータを転送することができる。
Since the
以上が、CPU201が外部メモリ203のデータをREADした時の動作である。
The above is the operation when the
CPU201から外部メモリ203のデータをWRITEした場合の動作は図21のようになる。
The operation when the data of the
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
If NO in step S2102, the duplicated
If step S2102 is YES, the memory
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
以上がCPU201が外部メモリ203のデータをWRITEした時の動作である。
The above is the operation when the
本実施の形態では、CPU201は外部メモリ203から複製データ領域207へデータを転送するDMAの起動を行った後、データ転送の完了を待たずに元の処理に戻ることができるため、CPU201の処理の効率を高くすることができる。
In the present embodiment, the
本実施の形態では、外部メモリ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
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
また複製データ領域207の大きさが外部メモリ203と同じ大きさである場合は、外部メモリ203に対応する複製データ領域207のアドレスは一意に変換できるため、複製状態管理情報208の外部メモリアドレス301は不要になる。
そのため、図20のステップS2001やステップS2003、図21のステップS2102やステップS2103ではそれぞれREADするアドレスに対応するブロックの転送完了情報1901または有効/無効情報302のみを参照すればよい。
If the size of the
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 /
さらに、複製データ領域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
At this time, since it is determined in step S2003 in FIG. 20 that the data to be read is duplicated in the
また、本実施の形態では、実施の形態1の構成(メモリ制御装置701を含まない構成)において内部メモリ206に転送完了情報を設ける例について説明したが、実施の形態2〜4の構成(メモリ制御装置701を含む構成)でも内部メモリ206に転送完了情報を設け、上記と同様の処理を行うようにしてもよい。
In the present embodiment, the example in which transfer completion information is provided in the
また、本実施の形態では、外部メモリ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
In this case, as shown in FIG. 22, the data is transferred from the
In the configuration of FIG. 22, the memory
Further, the same effect as the
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により前記外部メモリに格納されているいずれかのデータの読み出しが要求された場合に、読み出し対象データの複製が前記内部メモリに格納されているか否かを判定する複製データ判定部と、
前記読み出し対象データの複製が前記内部メモリに格納されていない場合に、前記読み出し対象データを前記外部メモリから読み出し、読み出した前記読み出し対象データを前記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.
データブロックのデータ格納ブロックへの格納と、データ格納ブロックの有効/無効情報の設定を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又は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.
前記外部メモリから読み出したデータブロックをいずれかのデータ格納ブロックに格納する際に、前記外部メモリから読み出したデータブロックに対応する前記外部メモリ上のアドレスを当該データ格納ブロックに対して設定し、
前記複製データ判定部は、
データ格納ブロックごとの有効/無効情報の設定及び前記外部メモリ上のアドレスの設定を参照して、前記読み出し対象データを含むデータブロックが前記内部メモリに含まれるか否かを判定し、前記読み出し対象データを含むデータブロックが前記内部メモリに含まれる場合は、前記読み出し対象データを含むデータブロックを前記内部メモリから取得し、前記読み出し対象データを含むデータブロックが前記内部メモリに含まれない場合は、前記第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.
前記読み出し対象データを含むデータブロックを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.
前記他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.
前記第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.
前記外部メモリから読み出した前記読み出し対象データを、前記内部メモリに格納することなく、前記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.
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)
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)
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)
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 |
-
2009
- 2009-09-24 JP JP2009218506A patent/JP5452148B2/en not_active Expired - Fee Related
Cited By (1)
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 |