JPH04205535A - Copy on write system - Google Patents
Copy on write systemInfo
- Publication number
- JPH04205535A JPH04205535A JP2339964A JP33996490A JPH04205535A JP H04205535 A JPH04205535 A JP H04205535A JP 2339964 A JP2339964 A JP 2339964A JP 33996490 A JP33996490 A JP 33996490A JP H04205535 A JPH04205535 A JP H04205535A
- Authority
- JP
- Japan
- Prior art keywords
- address
- copy
- data
- page
- block
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims description 30
- 238000006073 displacement reaction Methods 0.000 claims description 8
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000000593 degrading effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012536 packaging technology Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
【発明の詳細な説明】
〔概要〕
共有領域のうちの変更があった領域のデータをコピーし
てライトするコピーオンライト方式に関し、
共有領域のうちの変更しようとするデータ領域について
キャンンユブロノク単位でコピーを行った後に書込み、
無駄なデータ転送を無くしてオーバヘッドを削減し、主
記憶の処理効率を向上させることを目的とし、
論理アドレスを物理アドレスに変換するためのページテ
ーブルのエントリに複写元物理ページアドレス、複写先
物理ページアドレス、およびキャッシュブロックの単位
にデータを変更したか否かを表すブロック変更情報を設
け、アクセス要求に対応して、アクセス要求のあった論
理アドレスに対応スるページテーブルのエントリのブロ
ック変更情報を参照し、当該アクセス要求のあったアド
レスを含むキャッシュブロックのデータが変更されてい
ると判明したときに当該エントリから取り出した複写先
物理ページアドレスおよびページ内変位からなる物理ア
ドレスにアクセスし、一方、変更されていないと判明か
つリード要求のときに当該エントリから取り出した複写
元物理ページアドレスおよびページ内変位からなる物理
アドレスからリードし、あるいは変更されていないと判
明かつライト要求のときに新しい複写先物理ページアド
レスを当該エントリに登録およびキャンシュブロックの
単位に複写を行って書き込むと共にブロック変更情報を
変更に設定するように構成する。[Detailed Description of the Invention] [Summary] Regarding the copy-on-write method of copying and writing data in a changed area of a shared area, there is a method of copying and writing data in a changed area of a shared area. Write after copying in units,
The purpose is to eliminate unnecessary data transfers, reduce overhead, and improve main memory processing efficiency.The page table entries for converting logical addresses to physical addresses include the copy source physical page address and the copy destination physical page. Addresses and block change information indicating whether data has been changed in units of cache blocks are provided, and in response to an access request, block change information of the page table entry corresponding to the logical address requested for access is provided. access the physical address consisting of the copy destination physical page address and intra-page displacement extracted from the entry when it is found that the data in the cache block including the address requested for access has been changed; Read from the physical address consisting of the copy source physical page address and intra-page displacement taken from the entry when it is found that it has not been changed and when a read request is made, or a new copy destination when it is found that it has not been changed and when it is a write request. The configuration is such that the physical page address is registered in the entry, copied and written in units of cache blocks, and block change information is set to change.
本発明は、共有領域のうちの変更があった領域のデータ
をコピーしてライトするコピーオンライト方式に関する
ものである。複数のプロセス間で共有なメモリ空間を設
定する手法は、プロセスが利用しているライブラリを共
有したり、同一のプロセスを複数個動かしたりした場合
、主記憶の節約になると共に、プログラムの主記憶への
ロードが不要となり有効な手法である。特に近年、半導
体技術や実装技術の進歩によってプロセッサが小さ(高
機能になっており、複数のマイクロプロセッサとメモリ
をハス結合したシステムがコストパフォーマンスの高さ
から注目されている。このようなシステムにおいて、有
効な並列処理を行うためにはメモリの共有を細かい単位
で行うことが望まれている。The present invention relates to a copy-on-write method for copying and writing data in a changed area of a shared area. The method of setting a shared memory space between multiple processes can save main memory when the libraries used by the processes are shared, or when multiple identical processes are running, and also saves the main memory of the program. This is an effective method as it eliminates the need to load In particular, in recent years, advances in semiconductor technology and packaging technology have made processors smaller (and more sophisticated), and systems that combine multiple microprocessors and memory in a hex are attracting attention due to their high cost performance.In such systems, In order to perform effective parallel processing, it is desirable to share memory in small units.
一般に、アドレス変換の機構は、第2図(イ)に示すよ
な構成であり、以下のように行っている。Generally, the address translation mechanism has a configuration as shown in FIG. 2(a), and is performed as follows.
アドレス変換対象の論理アドレスを物理アドレスに変換
するための最下位のテーブル(=ページテーブル)の個
々のエントリに主記憶のページ単位の物理アドレスを保
持する。アドレス変換機構は、論理アドレスを物理アド
レスに変換する際に、各プロセス毎に異なった最上位の
変換テーブル(セグメントテーブル)を数段辿ってペー
ジテーブルにまで辿りつくと、ページの物理アドレスを
取り出してこれに論理アドレスのページ内変位を付加し
て物理アドレスを求めると共に、ページに対するアクセ
スの保護などの情報を取り出す。アドレス変換機構は、
アクセス保護情報をもとにこれに違反するときは中央処
理装置に割込みを発生し、アクセスを禁止するようにし
ている。A physical address in page units of the main memory is held in each entry of the lowest table (=page table) for converting a logical address to be converted into a physical address. When converting a logical address to a physical address, the address translation mechanism traces the top level translation table (segment table), which is different for each process, several times until it reaches the page table, and then extracts the physical address of the page. Then, the physical address is obtained by adding the intra-page displacement of the logical address to this, and information such as protection of access to the page is extracted. The address translation mechanism is
Based on the access protection information, if the access protection information is violated, an interrupt is generated to the central processing unit and access is prohibited.
従来、複数のプロセスによるメモリの共有を実現するた
めに、アドレス変換機構を用いて変換テーブルやページ
テーブルのエントリに同一の物理アドレスを与え、複数
の論理アドレスから共有する主記憶の領域をアクセスす
るようにしていた。Conventionally, in order to share memory among multiple processes, an address translation mechanism was used to give the same physical address to entries in translation tables and page tables, and access the shared main memory area from multiple logical addresses. That's what I was doing.
そして、例えばプロセスを2つに分割した場合、一部の
共有データ領域を除いてデータ領域をプロセス固有のも
のにする必要があり、これを実現するためにプロセスの
分割を行った際にはデータ領域を共存としておき、デー
タ領域に対する書込みが発生したときに書込み要求のあ
ったページをコピーしてこれに書込みを行うようにして
いた。For example, if a process is divided into two, it is necessary to make the data area unique to the process except for some shared data areas. The areas were set to coexist, and when a write to the data area occurred, the page for which the write request was made was copied and written to it.
従って、書込みを行った領域の付近をその後、変更する
必要がない場合でも、ページ単位(一般に2〜4キロバ
イト)でコピーを行う必要があり、無駄なデータ転送を
行うこととなり、オーバヘッドが生してしまうという問
題があった。特に並列プロセッサをバス結合したシステ
ムは、バスの負荷が重くなりシステム性能を低下させて
しまうという問題がある。Therefore, even if there is no need to change the area near the written area, it is necessary to copy in page units (generally 2 to 4 kilobytes), resulting in unnecessary data transfer and overhead. There was a problem with this. In particular, a system in which parallel processors are connected to a bus has a problem in that the load on the bus becomes heavy, degrading system performance.
本発明は、共有領域のうちの変更しようとするデータ領
域についてキャッシュブロック単位でコピーを行った後
に書込み、無駄なデータ転送を無くしてオーバヘッドを
削減し、主記憶の処理効率を向上させることを目的とて
いる。The present invention aims to improve the processing efficiency of main memory by writing after copying the data area to be changed in the shared area in cache block units, eliminating unnecessary data transfers and reducing overhead. I'm taking it.
第1図を参照した課題を解決するための手段を説明する
。Means for solving the problem will be explained with reference to FIG.
第1図において、ページテーブル1は、論理アドレスを
物理アドレスに変換するための複写元物理ページアドレ
ス1−1、複写先物理ページアドレス1−2、およびキ
ャッシュブロック3の単位にデータを変更したか否かを
表すブロック変更情1#1−3などを格納するテーブル
である。In FIG. 1, page table 1 has data changed in units of copy source physical page address 1-1, copy destination physical page address 1-2, and cache block 3 for converting logical addresses into physical addresses. This table stores block change information 1#1-3 indicating whether or not the block is changed.
キャッシュプロ、り3は、キヤノンユメモリ3−2に格
納するデータの大きさ(ブロック)である。The cache program 3 is the size (block) of data stored in the Canon memory 3-2.
本発明は、第1図に示すように、アクセス要求に対応し
て、アクセス要求のあった論理アドレスに対応するペー
ジテーブル1のエントリのブロック変更情報1−3を参
照し、当該アクセス要求のあったアドレスを含むキャッ
シュブロック3のデータが変更されていると判明したと
きに当該エントリから取り出した複写先物理ページアド
レス1−2およびページ内変位からなる物理アドレスに
アクセスし、一方、変更されていないと判明かつリード
要求のときに当該エントリから取り出した複写元物理ペ
ージアドレス1−1およびページ内変位からなる物理ア
ドレスからリードし、あるいは変更されていないと判明
かつライト要求のときに新しい複写先物理ページアドレ
スを当該エントリに登録およびキャッシュブロック3の
単位に複写を行った後に書き込むと共にブロック変更情
報1−3を変更に設定するようにしている。また、変更
されていないと判明かつライト要求のときに新しい複写
先物理ページアドレスを当該エントリに登録およびキャ
ッシュのタグメモリ3−1の複写元物理アドレスを複写
先物理アドレスに書き換えるようにしている。As shown in FIG. 1, in response to an access request, the present invention refers to the block change information 1-3 of the entry in the page table 1 corresponding to the logical address to which the access request was made. When it is determined that the data in cache block 3 containing the address has been changed, accesses the physical address consisting of the copy destination physical page address 1-2 retrieved from the entry and the displacement within the page, while the physical address that has not been changed is accessed. Read from the physical address consisting of the copy source physical page address 1-1 and the displacement within the page retrieved from the entry at the time of a read request, or read from the new copy destination physical address when it is determined that it has not been changed and at the time of a write request. After the page address is registered in the entry and copied in units of cache blocks 3, it is written and the block change information 1-3 is set to change. Further, when it is determined that no change has been made and a write request is made, a new copy destination physical page address is registered in the entry and the copy source physical address in the tag memory 3-1 of the cache is rewritten to the copy destination physical address.
従って、共有領域のうちの変更しようとするデータ領域
についてキャンシュブロック3の単位でコピーを行った
後に書き込んだり、更にキャッシュのタグメモリ3−1
の複写元物理アドレスを複写先物理アドレスに書き換え
ることにより、無駄なデータ転送を無くしてオーバヘッ
ドを削減し主記憶の処理効率を向上させることが可能と
なる。Therefore, writing is performed after copying the data area to be changed in the shared area in units of cache blocks 3, and further writing is performed in the cache tag memory 3-1.
By rewriting the copy source physical address to the copy destination physical address, it is possible to eliminate unnecessary data transfer, reduce overhead, and improve the processing efficiency of the main memory.
〔実施例〕
次に、第1図から第4図を用いて本発明の実施例の構成
および動作を順次詳細に説明する。[Embodiment] Next, the configuration and operation of an embodiment of the present invention will be explained in detail using FIGS. 1 to 4.
第1図(イ)において、プロセスAは、主記憶2上のプ
ロセスAのデータ領域および共有領域をアクセスして処
理を行うプロセスである。In FIG. 1(a), process A is a process that accesses the data area and shared area of process A on the main memory 2 to perform processing.
プロセスA゛は、プロセスAの実行中に分割したプロセ
スであって、プロセスAのデータ領域を参照してもよい
が、変更する場合にはこのプロセスAのデータ領域のデ
ータをプロセスA°のデータ領域に複写した後に書き込
んだり、共有領域をアクセスして処理を行ったりするプ
ロセスである。Process A'' is a process that was split during the execution of process A, and may refer to the data area of process A. However, when changing the data area of process A, the data in the data area of process A is changed to the data of process A°. This is the process of writing after copying to an area, or accessing a shared area to perform processing.
この際、複写先のプロセスA°のデータ領域の物理ペー
ジアドレスをページテーブル1に登録すると共に、ブロ
ック変更情報1−3を変更(キャッシュブロック3の単
位毎に変更)に設定するようにしている。At this time, the physical page address of the data area of the copy destination process A° is registered in page table 1, and block change information 1-3 is set to change (change for each cache block 3). .
第1図(ロ)において、ページテーブル1は、第1図(
イ)ページテーブルの1つのエントリに格納する情報で
あって、複写元物理ページアドレス1−1、複写先物理
ページアドレス1−2、およびキャッシュブロック3の
単位にデータを変更したか否かを表すブロック変更情報
1−3などを格納するものである。ここで、ブロック変
更情報1−3は、例えば1ページを2キロハイド(21
五ハイド)とし、1キヤツシユブロツクを64ハイド
(2hバイト)とした場合、32ビ、、ト (=22”
−’=2’ =32)必要となる。In Figure 1 (B), page table 1 is shown in Figure 1 (B).
b) Information stored in one entry of the page table, which indicates whether data has been changed in units of copy source physical page address 1-1, copy destination physical page address 1-2, and cache block 3. It stores block change information 1-3 and the like. Here, for block change information 1-3, for example, one page is 2 kilohide (21
5 hides), and 1 cache block is 64 hides.
(2h bytes), 32 bits,, t (=22"
-'=2'=32) is required.
キャッシュブロック3は、キャッシュメモリ3−2に格
納するデータの大きさ(プロ、り)である。The cache block 3 is the size of data to be stored in the cache memory 3-2.
タグメモリ3−1は、キャッシュのキャッシュメモリ3
−2に格納したデータ(キャッシュブロック単位のデー
タ)の物理アドレスを登録するメモリである。このタグ
メモリ3−1を検索して該当するデータがキャッシュメ
モリ3−2に格納されているか否か(ヒツト/ミスヒツ
ト)を判定する。The tag memory 3-1 is the cache memory 3 of the cache.
This is a memory that registers the physical address of the data (data in cache block units) stored in -2. This tag memory 3-1 is searched to determine whether the corresponding data is stored in the cache memory 3-2 (hit/miss).
第2図は、本発明に係るアドレス変換機構説明図を示す
。FIG. 2 shows an explanatory diagram of an address translation mechanism according to the present invention.
第2図(イ)は、全体構成図を示す。FIG. 2(A) shows the overall configuration.
第2図(イ)において、変換テーブルエントリレジスタ
は、変換テーブルの先頭アドレスを設定するレジスタで
あって、例えば第1図(イ)プロセスAの空間に対応す
る変換テーブルあるいはプロセスA′の空間に対応する
変換テーブルの先頭アドレスを設定するレジスタである
。In FIG. 2(a), the translation table entry register is a register for setting the start address of the translation table, and for example, in the translation table corresponding to the space of process A in FIG. 1(a) or the space of process A'. This register sets the start address of the corresponding conversion table.
論理アドレスレジスタは、物理アドレスに変換しようと
する論理アドレスを格納するレジスタである。The logical address register is a register that stores a logical address to be converted into a physical address.
変換テーブルは、論理アドレスの上位ビットをもとに図
示ように辿って該当物理ページアドレスを格納したペー
ジテーブル1を見つけるためのテーブルである。The conversion table is a table for finding the page table 1 storing the corresponding physical page address by tracing as shown in the figure based on the upper bits of the logical address.
ページテーブル1は、第2図(ロ)に示すように、アク
セス保護情報(Read/Write/Excute/
Copy−Wr i te)、有効情報(主記憶上に存
在するかどうかの情報)、物理アドレス情報(複写元物
理ページアドレス1−1、複写先物理ページアドレス1
−2、ブロック変更情報1−3)を格納するものである
。As shown in FIG. 2 (b), page table 1 contains access protection information (Read/Write/Excute/
Copy-Write), valid information (information on whether it exists on main memory), physical address information (copy source physical page address 1-1, copy destination physical page address 1)
-2, block change information 1-3) is stored.
物理アドレスレジスタは、図示矢印のようにして論理ア
ドレスを変換した後の物理アドレスを格納するレジスタ
である。The physical address register is a register that stores a physical address after converting a logical address as shown by the arrow in the figure.
第2図(ロ)は、ページテーブル例を示す。ここで、ア
クセス保護情報として、Read、 Write、Ex
ecute 、 Copy−Writeの各ビットを持
ち、■のときに保護有り、0のときに保護無である。具
体的に説明すると、Readビットが1のときページア
ドレスの主記憶からリードを禁止する。−riteビッ
トが1のときページアドレスの主記憶へのライトを禁止
する。Execu teビットが1のときページアドレ
スの主記憶に格納されているプログラムの実行を禁止す
る0本実施例に係るCopy−Writeビー/ )が
1のとき第3図0でYESとなり、本実施例に係る第3
図[相]ないし[相]の処理によって、コピーオンライ
ト(ライトのときに複写元物理アドレスから複写先物理
アドレスに複写した後にデータを書き込む)などを行う
m Copy−Writeビットが0のとき第3図■で
Noとなり、Read/1llrite/Excute
ビットに従って処理する。FIG. 2(b) shows an example of a page table. Here, as access protection information, Read, Write, Ex
It has ecute and Copy-Write bits, and when it is ■, it is protected, and when it is 0, it is not protected. Specifically, when the Read bit is 1, reading from the main memory of the page address is prohibited. When the -rite bit is 1, writing of page addresses to main memory is prohibited. When the Execute bit is 1, the execution of the program stored in the main memory at the page address is prohibited.0 When the Copy-Write bit according to this embodiment is 1, the result is YES in FIG. 3rd related to
Copy-on-write (writing data after copying from the copy source physical address to the copy destination physical address during write) is performed by the processing in [phase] to [phase] in the figure. When the Copy-Write bit is 0, the If the result is No in Figure 3 ■, Read/1llrite/Excute
Process according to bits.
次に、第3図フローチャートに示す順序に従い、第1図
および第2図構成の動作を詳細に説明する。Next, the operations of the configurations in FIGS. 1 and 2 will be explained in detail in accordance with the order shown in the flowchart in FIG. 3.
第3図において、■は、Read/Write命令を受
領する。これは、ホスト(中央処理装置)から第2図ア
ドレス変換機構がRead/Wri te命令を受領す
る。In FIG. 3, ■ receives a Read/Write command. In this case, the address translation mechanism shown in FIG. 2 receives a Read/Write command from the host (central processing unit).
■は、論理アドレスに対応するページテーブル1のエン
トリのアクセス保護情報を取り出す。これは、■で受領
したRead/Wr i te命令で通知された論理ア
ドレスに対応するページテーブルを、第2図(イ)変換
テーブルを図示のように辿って該当するページテーブル
1のエントリから第2図(ロ)アクセス保護情報(Re
ad/Write/Execute/Copy−Wri
teビット)を取り出す。(2) retrieves the access protection information of the entry in page table 1 corresponding to the logical address. This is done by tracing the page table corresponding to the logical address notified by the Read/Write command received in ① from the corresponding page table 1 entry by tracing the conversion table in Figure 2 (B) as shown. Figure 2 (b) Access protection information (Re
ad/Write/Execute/Copy-Wri
te bit).
0は、■で取り出したcopy−threeビットが1
(本実施例に係るコピーオンライトを行う旨)か否かを
判別する。YESの場合には、[相]ないし■の処理に
よって、本実施例に係るコピーオンライトなどを行う、
NOの場合には、[相]でページテーブル1から取り出
したアクセス保護情報(Read/Write/Exe
cuteビット)に従って通常通り動作する。0 means that the copy-three bits extracted in ■ are 1.
(Copy-on-write according to this embodiment is performed) is determined. If YES, perform copy-on-write, etc. according to this embodiment by processing [phase] to ■.
If NO, access protection information (Read/Write/Execution) retrieved from page table 1 in [phase]
(cut bit).
即ちReadビット、Write ビット、Execu
te ビットの1のものについてその動作を禁止する。That is, Read bit, Write bit, Execute
If the te bit is 1, the operation is prohibited.
以下本実施例に係るコピーオンライトなどの処理につい
て詳細に説明する。Processing such as copy-on-write according to this embodiment will be described in detail below.
■は、ブロック変更情報の変更有りか否かを判別する。In step (2), it is determined whether or not the block change information has been changed.
これは、0でRead/Write命令で受領した論理
アドレスに対応するページテーブル1から取り出したブ
ロック変更情報1−3を参照し、Read/Write
Lようとするアドレスを含むキャッシュブロック3が変
更に設定されているか否か、即ち複写元物理ページの当
該キャッシュブロック3の内容が複写先物理ページに既
にコピー(複写)されているか否かを判別する。YES
の場合には、Read/Write L/ようとするキ
ャッシュブロックのデータが既に複写先物理ページにコ
ピーされているので、■で複写先物理アドレスへRea
d/Wr i te シ、終了する(END)、一方、
NOの場合には、Read/lIr1teLようとする
キャッシュブロックのデータが複写先物理ページにコピ
ーされていないので、[相]テReadあるいは−ri
teのいずれかを判別し、ReadのときにOで複写元
物理アドレスからRead シてホストに転送し、一方
、Writeのときに[相]ないし■の処理でコピーオ
ンライト(複写した後に書き込む)する。This refers to the block change information 1-3 taken out from page table 1 corresponding to the logical address received with the Read/Write command at 0, and executes the Read/Write command.
Determine whether the cache block 3 containing the address to be copied is set to change, that is, whether the contents of the cache block 3 of the copy source physical page have already been copied to the copy destination physical page. do. YES
In this case, the data of the cache block to be Read/Write L/ has already been copied to the copy destination physical page, so use ■ to read to the copy destination physical address.
d/Write, end (END), while
If NO, the data of the cache block to be read/lIr1teL has not been copied to the copy destination physical page, so [phase]
te, and when reading, use O to read from the physical address of the copy source and transfer it to the host, while when writing, copy-on-write (write after copying) with processing from [phase] to ■. do.
[相]は、新しく複写先物理アドレスを確保する(複写
元物理アドレスのデータを複写する複写先物理アドレス
を確保する)。[Phase] secures a new copy destination physical address (secures a copy destination physical address for copying the data of the copy source physical address).
@は、複写先物理アドレスを登録する([相]で新たに
確保した複写先物理アドレスのうちの複写先物理ページ
アドレスの部分を、第1図(ロ)複写先物理ページアド
レス1−2に登録スる)。@ registers the copy destination physical address (in the [phase], transfer the copy destination physical page address part of the copy destination physical address newly secured to the copy destination physical page address 1-2 in Figure 1 (b)). registration).
[相]は、キャッシュのタグメモリ3−1の複写元アド
レスを複写先アドレスに変更する(=キャシュブロック
3の単位の複写する)。これは、キャッシュメモリ3−
2に格納されている複写元のデータのアドレスをもつタ
グメモリ3−1の内容を複写先物理アドレスに変更して
実質的に複写したこととする。[Phase] changes the copy source address of the tag memory 3-1 of the cache to the copy destination address (=copy in units of cache blocks 3). This is cache memory 3-
It is assumed that the content of the tag memory 3-1 having the address of the copy source data stored in 2 is changed to the copy destination physical address and is essentially copied.
■は、複写先物理アドレスへ−riteする(キャッシ
ュブロック3の単位で−riteする)。これは、[相
]でタグメモリ3−1のアドレスを複写先物理アドレス
に変更して実質的に複写したと同等にし、スワンニアウ
ト時にキャッシュメモリ3−2から主記憶2の複写先ペ
ージアドレスにキャッシュブロック3の単位で書き込む
。(1) -writes to the copy destination physical address (-writes in units of cache block 3). This is done by changing the address of tag memory 3-1 to the copy destination physical address in [phase] to make it essentially equivalent to copying, and at the time of swanni-out, from the cache memory 3-2 to the copy destination page address of main memory 2. Write in units of cache block 3.
以上によって、ホストからのRead/Write命令
を受領したことに対応して、指示された論理アドレスに
対応するページテーブルlのエントリのCopy−Wr
iteビットが1のときであって、ブロック変更情報1
−3が変更のキャッシュブロック3のときに複写先物理
アドレスにRead/Wri te シ(第3図■)、
一方、ブロック変更情報1−3が変更でないキャッシュ
ブロックのときでReadのときに複写先物理アドレス
からリードしてホストに転送しく第3図0)、一方、W
riteのときに@ないし0によってコピーオンライト
することにより、キャッシュブロック3の単位で変更し
た部分のみ複写先物理アドレスに複写した後に書き込み
、残りの部分は共有し、不要なデータ転送を無くしてオ
ーバヘッドを削減することが可能となる。As described above, in response to receiving a Read/Write command from the host, Copy-Wr of the entry in page table l corresponding to the specified logical address is executed.
When the ite bit is 1, block change information 1
-3 is the modified cache block 3, Read/Write to the copy destination physical address (Fig. 3 ■),
On the other hand, when the block change information 1-3 is a cache block that has not been changed and it is Read, it is read from the copy destination physical address and transferred to the host (Fig. 3 0), on the other hand, W
By performing copy-on-write using @ or 0 when writing, only the changed part in each cache block 3 is copied to the copy destination physical address and then written, and the remaining part is shared, eliminating unnecessary data transfer and reducing overhead. It becomes possible to reduce the
第4図は、本発明の具体回路例を示す。FIG. 4 shows a specific circuit example of the present invention.
第4図において、アドレス変換機構4は、論理アドレス
を物理アドレスに変換する機構であって、論理アドレス
に対応する物理ページを登録するページテーブル1、論
理アドレスの上位アドレスから該当するページテーブル
1のエントリのアドレスに変換する上位アドレス変換部
5、論理アドレスから物理アドレスに変換制御を行うア
ドレス変換制御回路6、アドレス変換制御回路6からの
選択信号をもとに複写元物理アドレス(ページ)l−1
あるいは複写先物理アドレス(ページ)1−2のいずれ
かを選択するセレクタ7、このセレクタ7によって選択
された物理ページアドレスと論理アドレスのページ内変
位とからなる物理アドレスを保持する物理アドレスレジ
スタ8などから構成されるものである。In FIG. 4, the address conversion mechanism 4 is a mechanism that converts a logical address into a physical address, and includes a page table 1 that registers a physical page corresponding to a logical address, and a page table 1 that registers a physical page corresponding to a logical address. The upper address translation unit 5 converts into an entry address, the address translation control circuit 6 performs translation control from a logical address to a physical address, and the copy source physical address (page) l- is selected based on the selection signal from the address translation control circuit 6. 1
Alternatively, a selector 7 that selects one of the copy destination physical addresses (pages) 1-2, a physical address register 8 that holds a physical address consisting of the physical page address selected by this selector 7 and the displacement within the page of the logical address, etc. It consists of:
タグメモリ3−1は、キャッシュメモリ3−2に格納し
たキャッシュブロック3の単位のデータのアドレスを格
納するメモリである。The tag memory 3-1 is a memory that stores addresses of data in units of cache blocks 3 stored in the cache memory 3-2.
キャッシュ制御回路3−3は、タグメモリ3−1、キャ
ッシュメモリ3−2を制御するものであって、ここでは
物理アドレスレジスタ8から送出された複写元物理アド
レスについてタグメモリ3−1を検索して見つけて複写
先物理アドレスに変更したり (第3図[相])などす
るものである。The cache control circuit 3-3 controls the tag memory 3-1 and the cache memory 3-2, and here searches the tag memory 3-1 for the copy source physical address sent from the physical address register 8. , find it, and change it to the physical address of the copy destination (Figure 3 [phase]).
次に、第4図構成の動作を説明する。Next, the operation of the configuration shown in FIG. 4 will be explained.
(1) 中央処理装置9から与えられた論理アドレス
から対応するページテーブル1のエントリからアクセス
保護情報(Read/Write/Execute/C
opy−Write) 、ブロック変更情報1−3、複
写元物理アドレス、複写先物理アドレスを得る。Cop
y−Wri teビットが1のとき、本実施例に係る以
下の処理に進むa (1:opY−Writeビットが
Oのとき、通常の処理、即ち、アクセス保護情報(Re
ad/Write/Execute)に従って、アクセ
スする(第3図■N01o)。(1) Access protection information (Read/Write/Execute/C
opy-Write), obtain block change information 1-3, copy source physical address, and copy destination physical address. Cop
When the y-Write bit is 1, the process proceeds to the following according to the present embodiment.a (1: opWhen the Y-Write bit is 0, normal processing is performed, that is, the access protection information (Re
ad/Write/Execute) (Fig. 3 ■NO1o).
(2) アドレス変換制御回路6は、中央処理装置9
から与えられた論理アドレスから読み込むデータがペー
ジ内でいずれのキャッシュブロック3に存在するかを見
付だし、ブロック変更情報1−3から当該キャッシュブ
ロック3が変更“I”に設定されているか否かを調べ(
第3図O)、複写元物理アドレス1−1あるいは複写先
物理アドレス1−2のいずれを使うかを決定する。(2) The address conversion control circuit 6 is the central processing unit 9
Find out in which cache block 3 within the page the data to be read exists from the logical address given from , and check whether the cache block 3 is set to change "I" from the block change information 1-3. Check (
O) in FIG. 3, it is determined whether to use the copy source physical address 1-1 or the copy destination physical address 1-2.
(3) ブロック変更情報1−3が0 (キャノンニ
ブロック3が変更されていない)のキャッシュブロック
3に書込みを行う場合(第3図0YES、■No、[相
]−riteの場合)には、タグメモリ3−1に複写先
物理アドレスを設定し、キャッシュ制御回路3−3に複
写元物理アドレス11を渡してミスヒツトしたときに主
記憶2からスワップインし、一方、ヒツトしたときには
キャッシュメモリの該当するデータを転送する(第3図
[相])。(3) When writing to cache block 3 where block change information 1-3 is 0 (cannon block 3 has not been changed) (in the case of 0YES, ■No, [phase]-rite in Figure 3), , sets the copy destination physical address in the tag memory 3-1, passes the copy source physical address 11 to the cache control circuit 3-3, swaps in from the main memory 2 when there is a miss, and swaps in from the main memory 2 when there is a hit. Transfer the relevant data (Fig. 3 [phase]).
(41尚、ブロック変更情報1−3がOのキャッシュブ
ロック3からリードする場合(第3図0YES、[相]
NO1[相]Readの場合)には、複写元物理アドレ
スからリードする。また、ブロック変更情[1−3が1
のキャッシュブロック3をアクセスする場合(第3図■
YES、@IYEsの場合)には、複写先物理アドレス
からReadあるいは複写先物理アドレスへ針iteす
る。(41 Furthermore, when reading from cache block 3 whose block change information 1-3 is O (Fig. 3 0 YES, [phase]
In the case of NO1 [phase] Read), read from the copy source physical address. Also, block change information [1-3 is 1
When accessing cache block 3 (Figure 3)
If YES or @IYEs), read from the copy destination physical address or perform a needle ite to the copy destination physical address.
以上説明したように、本発明によれば、共有領域のうち
の変更しようとするデータ領域についてキャッシュブロ
ック3の単位でコピーを行った後に書き込んだり、更に
キャッシュのタグメモリ3−1の複写元物理アドレスを
複写先物理アドレスに書き換える構成を採用しているた
め、無駄なデータ転送を無くしてオーバヘッドを削減し
主記憶の処理効率を向上させることができる。これによ
り・
(11必要な部分のみの複写を行い、残りの部分を共有
するため、主記憶の記憶効率が向上する。As explained above, according to the present invention, the data area to be changed in the shared area is written after copying in units of the cache block 3, and furthermore, the data area to be changed in the shared area is written in the copy source physical area of the tag memory 3-1 of the cache. Since a configuration is adopted in which addresses are rewritten to copy destination physical addresses, it is possible to eliminate unnecessary data transfers, reduce overhead, and improve main memory processing efficiency. As a result, (11) only the necessary portion is copied and the remaining portion is shared, improving the storage efficiency of the main memory.
(2)共有の単位がキャッシュブロック(例えば64バ
イト)とページの大きさく例えば2キロバイト)に比較
して小さいため、無駄なデータ転送処理が不要となりシ
ステムの処理速度が向上する。(2) Since the unit of sharing is small compared to a cache block (for example, 64 bytes) and a page size (for example, 2 kilobytes), unnecessary data transfer processing is unnecessary and the processing speed of the system is improved.
(3)データの複写を実行するための特別な機構を用意
することなく、容易に実現できる。(3) It can be easily realized without preparing a special mechanism for copying data.
第1図は本発明の1実施例構成図
第2図は本発明に係るアドレス変換機構説明図第3図は
本発明の動作説明フローチャート第4図は本発明の具体
回路例
を示す。
図中、1:ページテーブル
1−1 :複写元物理ページアドレス
1−2=複写先物理ページアドレス
1−3=ブロツク変更情報
2:主記憶
3:キャッシュブロック
3−1:タグメモリ
3−2:キャッシュメモリ
3−3:キャッシュ制御回路
4ニアドレス変換機構
5:上位アドレス変換部
6:アドレス変換制御回路
9:中央処理装置FIG. 1 is a block diagram of one embodiment of the present invention. FIG. 2 is an explanatory diagram of an address translation mechanism according to the present invention. FIG. 3 is a flowchart for explaining the operation of the present invention. FIG. 4 shows an example of a specific circuit of the present invention. In the figure, 1: Page table 1-1: Copy source physical page address 1-2 = Copy destination physical page address 1-3 = Block change information 2: Main memory 3: Cache block 3-1: Tag memory 3-2: Cache memory 3-3: Cache control circuit 4 Near address translation mechanism 5: Upper address translation unit 6: Address translation control circuit 9: Central processing unit
Claims (2)
ピーしてライトするコピーオンライト方式において、 論理アドレスを物理アドレスに変換するためのページテ
ーブル(1)のエントリに複写元物理ページアドレス(
1−1)、複写先物理ページアドレス(1−2)、およ
びキャッシュブロック(3)の単位にデータを変更した
か否かを表すブロック変更情報(1−3)を設け、 アクセス要求に対応して、アクセス要求のあった論理ア
ドレスに対応するページテーブル(1)のエントリのブ
ロック変更情報(1−3)を参照し、当該アクセス要求
のあったアドレスを含むキャッシュブロック(3)のデ
ータが変更されていると判明したときに当該エントリか
ら取り出した複写先物理ページアドレス(1−1)およ
びページ内変位からなる物理アドレスにアクセスし、一
方、変更されていないと判明かつリード要求のときに当
該エントリから取り出した複写元物理ページアドレス(
1−1)およびページ内変位からなる物理アドレスから
リードし、あるいは変更されていないと判明かつライト
要求のときに新しい複写先物理ページアドレスを当該エ
ントリに登録およびキャッシュブロック(3)の単位に
複写を行った後に書き込むと共にブロック変更情報(1
−3)を変更に設定するように構成したことを特徴とす
るコピーオンライト方式。(1) In the copy-on-write method that copies and writes data in a shared area that has been changed, the source physical page address is entered in the page table (1) entry for converting a logical address to a physical address. (
1-1), copy destination physical page address (1-2), and block change information (1-3) indicating whether data has been changed in units of cache block (3), and respond to access requests. Then, refer to the block change information (1-3) of the entry in the page table (1) that corresponds to the logical address that received the access request, and change the data in the cache block (3) that includes the address that received the access request. accesses the physical address consisting of the copy destination physical page address (1-1) retrieved from the relevant entry and the displacement within the page when it is determined that the relevant entry has been The copy source physical page address extracted from the entry (
1-1) and the displacement within the page, or when it is determined that it has not been changed and a write request is made, register the new copy destination physical page address in the entry and copy it in units of cache block (3). After writing, block change information (1
-3) A copy-on-write method characterized in that it is configured to set change.
きに新しい複写先物理ページアドレスを当該エントリに
登録およびキャッシュのタグメモリ(3−1)の複写元
物理アドレスを複写先物理アドレスに変更するように構
成したことを特徴とする請求項第(1)項記載のコピー
オンライト方式。(2) If it is determined that the above change has not been made and a write request is made, register the new copy destination physical page address in the relevant entry and change the copy source physical address in the cache tag memory (3-1) to the copy destination physical address. A copy-on-write system according to claim 1, characterized in that the copy-on-write system is configured as follows.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2339964A JPH04205535A (en) | 1990-11-30 | 1990-11-30 | Copy on write system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2339964A JPH04205535A (en) | 1990-11-30 | 1990-11-30 | Copy on write system |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04205535A true JPH04205535A (en) | 1992-07-27 |
Family
ID=18332435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2339964A Pending JPH04205535A (en) | 1990-11-30 | 1990-11-30 | Copy on write system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH04205535A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07152641A (en) * | 1993-11-29 | 1995-06-16 | Fujitsu Ltd | Program cache device |
US6279079B1 (en) | 1999-06-04 | 2001-08-21 | Mitsubishi Denki Kabushiki Kaisha | Program execution system with efficient code duplication |
-
1990
- 1990-11-30 JP JP2339964A patent/JPH04205535A/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07152641A (en) * | 1993-11-29 | 1995-06-16 | Fujitsu Ltd | Program cache device |
US5619696A (en) * | 1993-11-29 | 1997-04-08 | Fujitsu Limited | Program cache apparatus which associates the physical address of a physical page with both the logical address in a program cache space and the logical address in a process space |
US6279079B1 (en) | 1999-06-04 | 2001-08-21 | Mitsubishi Denki Kabushiki Kaisha | Program execution system with efficient code duplication |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5379394A (en) | Microprocessor with two groups of internal buses | |
KR930004430B1 (en) | Apparatus for maintaining consistency in a multiprocessor computer system using caching | |
US5586283A (en) | Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer | |
US7472253B1 (en) | System and method for managing table lookaside buffer performance | |
JPH03142644A (en) | Cache memory control system | |
JPH0137773B2 (en) | ||
JPH0340046A (en) | Cache memory control system and information processor | |
JPH0551937B2 (en) | ||
EP0173909B1 (en) | Look-aside buffer least recently used marker controller | |
JPH0519176B2 (en) | ||
US5341485A (en) | Multiple virtual address translation per computer cycle | |
JPH0520197A (en) | Storage control system and microprocessor | |
JPH1091521A (en) | Duplex directory virtual cache and its control method | |
JPH04205535A (en) | Copy on write system | |
JPS63240653A (en) | Translation between memory management unit and virtual-real address | |
JPH035851A (en) | Buffer storage device | |
KR920005296B1 (en) | Information processing device | |
JPH06139147A (en) | Cache memory system | |
JPH02101552A (en) | Address conversion buffer processing system | |
JPS5922315B2 (en) | Buffer memory control method | |
JP2507785B2 (en) | Pageable entry invalidation device | |
JPS589452B2 (en) | Firmware broom | |
JPH01309153A (en) | Information processor | |
JPH0635801A (en) | Hierarchical memory control system | |
JPH01276348A (en) | Secondary cache memory system |