JPH0793220A - Virtual memory managing system - Google Patents

Virtual memory managing system

Info

Publication number
JPH0793220A
JPH0793220A JP5255305A JP25530593A JPH0793220A JP H0793220 A JPH0793220 A JP H0793220A JP 5255305 A JP5255305 A JP 5255305A JP 25530593 A JP25530593 A JP 25530593A JP H0793220 A JPH0793220 A JP H0793220A
Authority
JP
Japan
Prior art keywords
data
shared
block
processor
memory
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
Application number
JP5255305A
Other languages
Japanese (ja)
Inventor
Takayuki Nakagawa
貴之 中川
Machiko Asaya
真知子 朝家
Toshiaki Tarui
俊明 垂井
Tokuyasu Imon
徳安 井門
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Agency of Industrial Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Agency of Industrial Science and Technology filed Critical Agency of Industrial Science and Technology
Priority to JP5255305A priority Critical patent/JPH0793220A/en
Publication of JPH0793220A publication Critical patent/JPH0793220A/en
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PURPOSE:To accelerate address translation processing at a shared bus coupled parallel computer system. CONSTITUTION:Inside a shared memory control circuit 12, an address translation circuit common for each PE is composed of a microcomputer 121 and a control memory 122. A cache 41 is accessed by a logical address designated by a memory access request issued from a processor 40 and when requested data are not held there, a data transfer request command containing the logical address designated by that access request is sent to a shared bus 2. When a block containing those data is held at the other PE, that block is transferred to the request source PE. When the block is held at no PE, the shared memory control circuit 12 converts this logical address to a physical address, reads out that block of a shared memory 1 and transfers it through the shared bus 2 to the request source PE.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は共有バス結合の並列計算
機システムにおける仮想記憶管理方式に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a virtual memory management system in a shared bus coupled parallel computer system.

【0002】[0002]

【従来の技術】従来、共有バス結合の並列計算機システ
ムにおける仮想記憶管理方式については”Symmetry Tec
hnical Summary”(米国Sequent社、マニュアル1003―4
7396―00、pp2.2〜2.5、1987年)において論じられてい
る。
2. Description of the Related Art Conventionally, "Symmetry Tec
hnical Summary ”(Sequent, USA, Manual 1003-4
7396-00, pp2.2-2.5, 1987).

【0003】上記従来技術では、共有メモリに共有バス
で結合された複数のプロセッサの各々にキャッシュメモ
リを設け、かつ、各プロセッサには、アドレス変換装置
を設け、プログラムから指定されたメモリオペランドに
対する論理アドレスをこのアドレス変換装置で対応する
物理アドレスに変換し、この物理アドレスでもってその
プロセッサ内のキャッシュをアクセスするようになって
いる。このメモリオペランドがキャッシュ内にないと、
共有バスにその物理アドレスを指定するデータ転送コマ
ンドを送出し、そのデータをキャッシュ内に保持する他
のプロセッサがあるときには、そのプロセッサがそのデ
ータを共有バスを介して要求元プロセッサに転送するよ
うになっている。
In the above-mentioned prior art, a cache memory is provided in each of a plurality of processors coupled to a shared memory by a shared bus, an address translation device is provided in each processor, and a logic for a memory operand specified by a program is provided. The address is translated into a corresponding physical address by this address translation device, and the cache in the processor is accessed with this physical address. If this memory operand is not in the cache,
Sends a data transfer command specifying its physical address to the shared bus, and if there is another processor holding that data in the cache, that processor transfers that data to the requesting processor via the shared bus. Has become.

【0004】このアドレス変換のために、各プロセッサ
は共有メモリに保持されているアドレス変換テーブルを
読み出し、自プロセッサ内で論理アドレスを物理アドレ
スに変換するとともに、この論理アドレスと変換後の物
理アドレスとの対をアドレス変換バッファに保持するよ
うになっている。後に同じ論理アドレスを物理アドレス
に変換するときには、この変換バッファを使用する。
For this address translation, each processor reads the address translation table held in the shared memory, translates the logical address into a physical address in its own processor, and the logical address and the translated physical address. Is stored in the address translation buffer. This translation buffer is used later when the same logical address is translated into a physical address.

【0005】このアドレス変換バッファに登録されてい
ない論理アドレスを物理アドレスに変換するために、そ
のプロセッサから共有メモリ1内のページテーブルをア
クセスした場合において、その論理アドレスに対応する
データが共有メモリに登録されていないことがあり得
る。このとき、そのプロセッサは、ページフォールト例
外を発生する。この信号を受けて共有メモリは、その論
理アドレスへの物理メモリの割り当てを行なうが、この
とき、いずれかの論理アドレスに既に割り当てられてい
た実メモリアドレスが割り当てを解放され、そのアドレ
スのデータが補助記憶にページアウトされる。したがっ
て、この論理アドレスと物理アドレスの対を無効にする
ために、そのプロセッサは、自己に含まれているアドレ
ス変換バッファを無効とするとともに、他の全てのプロ
セッサに、アドレス変換バッファの内容を無効化するこ
とを要求するコマンドを共有バスを介して転送するよう
になっている。
When the processor accesses the page table in the shared memory 1 to translate a logical address not registered in the address translation buffer into a physical address, the data corresponding to the logical address is stored in the shared memory. It may not be registered. At this time, the processor generates a page fault exception. In response to this signal, the shared memory allocates the physical memory to the logical address, but at this time, the allocation of the real memory address already allocated to one of the logical addresses is released, and the data of that address is saved. Paged out to auxiliary memory. Therefore, in order to invalidate this logical address / physical address pair, the processor invalidates the address translation buffer included in itself and invalidates the contents of the address translation buffer to all other processors. A command requesting conversion is transferred via the shared bus.

【0006】[0006]

【発明が解決しようとする課題】上記従来技術では、ペ
ージフォールとが発生した場合、全てのプロセッサのア
ドレス変換バッファ全体が無効にされるために、各プロ
セッサは、その後のアドレス変換に当たっては、その都
度、共有メモリをアクセスする必要が生じる。
In the above prior art, when a page fall occurs, the entire address translation buffer of all the processors is invalidated, so that each of the processors does not deal with the subsequent address translation. It is necessary to access the shared memory each time.

【0007】このアクセスは、共有バスを介して行なわ
れるために、この共有バスの使用権に関して競合がより
多く発生し、アドレス変換が遅くなる。
Since this access is performed via the shared bus, more contention occurs with respect to the right to use this shared bus, and the address translation becomes slower.

【0008】本発明は、上記の問題点を解決し、共有バ
ス結合の並列計算機システムにおいて、ページフォール
ト発生時にも高速な仮想記憶管理を実現することを目的
とする。
It is an object of the present invention to solve the above problems and realize high-speed virtual memory management even when a page fault occurs in a shared bus coupled parallel computer system.

【0009】[0009]

【問題を解決するための手段】上記目的を達成するため
に、本発明では、各プロセッサは、処理装置が発行する
メモリアクセス要求が指定される論理アドレスでアクセ
ス可能なキャッシュメモリを有し、該キャッシュメモリ
は、該アクセス要求で要求されたデータが該キャッシュ
メモリに保持されていないときには、共有バスにそのア
クセス要求で指定された論理アドレスを含む、データ転
送要求コマンドを送付する手段と、他のプロセッサから
その共有バスに送付されたデータ転送要求が指定する論
理アドレスのデータを含むデータブロックを当該プロセ
ッサのキャッシュメモリ内に保持されているか否かを検
出し、そのデータブロックが保持されている場合には、
そのデータブロックを該共有バスを介して要求元のプロ
セッサに転送する手段とを有し、共有メモリ制御回路
は、該共有バスを介して該複数のプロセッサのいずれか
から送付された論理アドレスを、共有メモリ内のアドレ
ス変換テーブルをアクセスして、対応する物理アドレス
に変換する手段と、該データ転送要求で指定された論理
アドレスのデータを含むデータブロックがいずれのプロ
セッサからも該バスに転送されないときに、その論理ア
ドレスに対して該変換手段で得られた物理アドレスに基
づいて、そのデータブロックを該共有メモリから読み出
し、そのデータブロックを要求元のプロセッサに該共有
バスを介して転送する手段とを有する。
In order to achieve the above object, according to the present invention, each processor has a cache memory accessible at a logical address specified by a memory access request issued by a processing device. The cache memory, when the data requested by the access request is not held in the cache memory, means for sending a data transfer request command including the logical address specified by the access request to the shared bus, and other means. If the data block containing the data of the logical address specified by the data transfer request sent from the processor to the shared bus is held in the cache memory of the processor, and the data block is held Has
And a means for transferring the data block to the requesting processor via the shared bus, wherein the shared memory control circuit, the shared memory control circuit, the logical address sent from any of the plurality of processors via the shared bus, A means for accessing the address conversion table in the shared memory and converting it to a corresponding physical address, and a data block including the data of the logical address specified by the data transfer request is not transferred to the bus from any processor. A means for reading the data block from the shared memory based on the physical address obtained by the converting means for the logical address, and transferring the data block to the requesting processor via the shared bus. Have.

【0010】[0010]

【作用】各プロセッサにはアドレス変換手段を設けない
で、共有メモリ制御回路に複数のプロセッサに共通のア
ドレス変換手段を設けたので、共有バスには、アドレス
変換のための情報を各プロセッサから共有メモリ制御回
路へあるいはその反対方向に転送する必要がなく、共有
バスでのこれらの情報の転送時における競合が軽減さ
れ、アドレス変換自体が高速化される。
Since each processor is not provided with the address translation means, but the shared memory control circuit is provided with the address translation means common to a plurality of processors, the shared bus shares information for address translation from each processor. There is no need to transfer to the memory control circuit or in the opposite direction, contention at the time of transfer of these information on the shared bus is reduced, and the address conversion itself is speeded up.

【0011】[0011]

【実施例】図1は、本発明による並列計算機システムの
構成図である。このシステムは、プロセッサPE0〜P
E2および共有メモリ1を共有バス2により接続されて
いるメモリ共有型マルチプロセッサである。共有メモリ
1は、共有メモリ制御回路12を介して共有バス2に接
続され、I/Oインタフェース回路13を介してディス
ク装置3に接続している。
1 is a block diagram of a parallel computer system according to the present invention. This system includes processors PE0 to PE
It is a memory sharing type multiprocessor in which E2 and the shared memory 1 are connected by a shared bus 2. The shared memory 1 is connected to the shared bus 2 via the shared memory control circuit 12, and is connected to the disk device 3 via the I / O interface circuit 13.

【0012】共有メモリ1には、各ページのデータ1
4、各ページデータに対するキー情報15のほか、ペー
ジテーブル11を有する。本実施例では4ワードで1ペ
ージが構成されるとする。各キー情報のうち、図にはペ
ージの置換に使用するチェインジビットCと参照ビット
Rとを示している。このうち、Cビットは、対応するペ
ージの内容が更新されたか否かを示し、Rビットは、対
応するページが参照されたか否かを示すそれ自体公知の
情報である。
The shared memory 1 has data 1 of each page.
4. It has a page table 11 in addition to key information 15 for each page data. In this embodiment, one page is composed of 4 words. Of each key information, the figure shows a change bit C and a reference bit R used for page replacement. Of these, the C bit indicates whether or not the content of the corresponding page has been updated, and the R bit is information known per se indicating whether or not the corresponding page has been referenced.

【0013】ページテーブル11には、各ページデータ
について、有効フラグ、論理アドレスと物理アドレス、
UIC(Unused Interval Counterー不参照間隔カウンタ
値)からなるページ情報を登録する。ここでUICは、対
応するページが最近に参照されてから現在までの系か時
間を示す、それ自体は公知の情報である。
The page table 11 has, for each page data, a valid flag, a logical address and a physical address,
Register page information consisting of UIC (Unused Interval Counter). Here, the UIC is information known per se, which indicates a system or time since the corresponding page was recently referred to the present time.

【0014】共有メモリ制御回路12は、マイコン12
1とこのマイコンを制御するマイクロプログラムを保持
する制御記憶122とを有する。このマイコン121
は、共有メモリ1のデータ14あるいはキー情報15を
アクセスするとともに、ページテーブル11をアクセス
する。とくに、このマイコンはアドレス変換回路を実現
する。すなわち、このページテーブルを参照して論理ア
ドレスを対応する物理アドレスに変換するとともに、こ
のような変換で得られた論理アドレスと物理アドレスの
変換対を保持するアドレス変換バッファ(図示せず)を
内蔵している。その詳細は後に説明する。
The shared memory control circuit 12 is a microcomputer 12
1 and a control memory 122 for holding a micro program for controlling this microcomputer. This microcomputer 121
Accesses the data 14 or the key information 15 in the shared memory 1 and the page table 11. In particular, this microcomputer realizes an address conversion circuit. That is, referring to this page table, a logical address is translated into a corresponding physical address, and an address translation buffer (not shown) holding a translation pair of the logical address and the physical address obtained by such translation is built-in. is doing. The details will be described later.

【0015】なお、共有メモリ制御回路12は、例えば
100万サイクル毎にページテーブルの有効ビットが1
の全エントリを調べ、Rビットが”0”のページについ
てUICに1だけ加算し、Rビットが”1”のページにつ
いてUICおよびRビットを0にリセットする。
The shared memory control circuit 12 sets the effective bit of the page table to 1 every one million cycles, for example.
Of all the entries, the UIC is incremented by 1 for the page whose R bit is "0", and the UIC and R bit are reset to 0 for the page whose R bit is "1".

【0016】各プロセッサにはCPU40と、キャッシ
ュ41、42または43を備える。各プロセッサにはア
ドレス変換回路を有しない。このため、CPU40から
のメモリアクセス用のアドレスとして、論理アドレスが
指定される。各キャッシュは、2ワードの大きさのキャ
ッシュブロックデータと、そのブロックデータに関する
有効フラグ、キャッシュ状態、論理アドレスからなるキ
ャッシュブロック情報を保持する。キャッシュ状態は、
そのブロックデータの有効フラグがオンの場合に、その
データがそのキャッシュに登録されてから更新されたか
否かを示す情報とそのデータが他のプロセッサのキャッ
シュにも保持されているか否か(すなわち、そのデータ
が他のプロセッサと共有されているか否か)を示す情報
とを保持する。
Each processor has a CPU 40 and a cache 41, 42 or 43. Each processor does not have an address conversion circuit. Therefore, a logical address is designated as an address for memory access from the CPU 40. Each cache holds cache block data having a size of 2 words and cache block information including a valid flag, a cache state, and a logical address for the block data. The cache status is
When the valid flag of the block data is on, information indicating whether or not the data is updated after being registered in the cache and whether or not the data is held in the cache of another processor (that is, Information indicating whether or not the data is shared with another processor).

【0017】以下、本実施例によるシステムの動作を説
明する。
The operation of the system according to this embodiment will be described below.

【0018】(1)データの読み出し (1a)いずれかのプロセッサ、例えば、PE1内のC
PU40がメモリデータの読み出し要求を発生し、その
要求で指定される論理アドレスのデータを含むブロック
がそのプロセッサのキャッシュ例えば41に存在すると
きには、そのブロックに対して要求されたデータを読み
出し、CPU40に転送して、その要求の処理を終了す
る。
(1) Data read (1a) Any processor, for example, C in PE1
When the PU 40 issues a memory data read request and the block containing the data of the logical address designated by the request exists in the cache of the processor, for example, 41, the requested data is read to the block and the CPU 40 is read. Transfer and terminate the processing of the request.

【0019】(1b)しかし、その要求されたデータを
含むブロックがそのキャッシュに存在しないときには、
そのプロセッサは、共有バス2に、その要求で指定され
た論理アドレスを含む、データ転送要求コマンドを送付
する。
(1b) However, when the block containing the requested data does not exist in the cache,
The processor sends to the shared bus 2 a data transfer request command including the logical address specified by the request.

【0020】このコマンドに応答して他のプロセッサ
は、各々、自己のキャッシュ内にこの論理アドレスのデ
ータを含むブロックが存在するか否かを判別し、あれ
ば、共有バス2を介してそのブロックを要求元のプロセ
ッサに転送する。この時、転送元のプロセッサは、その
キャッシュ内のそのデータブロックの状態を未変更、か
つ、共有状態に変更する。
In response to this command, each of the other processors determines whether or not there is a block containing the data of this logical address in its cache, and if there is, the block is shared via the shared bus 2. To the requesting processor. At this time, the transfer source processor changes the state of the data block in the cache to the unchanged state and the shared state.

【0021】一方、要求元のプロセッサは、共有バス2
を介して転送されたブロックを自己のキャッシュに登録
する。このとき、このブロックのキャッシュ内の状態を
共有状態にする。さらに、そのブロック内の、要求され
た論理アドレスのデータをCPUに転送する。
On the other hand, the requesting processor is the shared bus 2
Registers the block transferred via () in its own cache. At this time, the cache state of this block is set to the shared state. Further, the data of the requested logical address in the block is transferred to the CPU.

【0022】(1c)一方、いずれの他のプロセッサか
らもこのブロックがキャッシュ内になく、いずれのプロ
セッサからこのブロックの転送が行なえないときには、
共有メモリ制御回路12は、この転送要求コマンドが要
求するブロックを共有メモリ1から要求元プロセッサに
転送する。
(1c) On the other hand, when this block is not in the cache from any of the other processors and the transfer of this block cannot be performed from any of the processors,
The shared memory control circuit 12 transfers the block requested by the transfer request command from the shared memory 1 to the request source processor.

【0023】この転送に先立ち、この転送要求コマンド
が指定する論理アドレスを対応する論理アドレスに変換
する。その方法は以下のとおりである。
Prior to this transfer, the logical address designated by this transfer request command is converted into a corresponding logical address. The method is as follows.

【0024】すなわち、この論理アドレスを物理アドレ
スに変換するに当たり、共有メモリ制御回路12内に設
けたアドレス変換バッファ(図示せず)を参照し、この
論理アドレスと対応する物理アドレスの対がそこに登録
されていれば、その論理アドレスに対応する物理アドレ
スを読み出し、変換後のアドレスとして利用する。もし
その対がこのアドレス変換バッファに登録されていない
ときには、共有メモリのページテーブル11をアクセス
して、その論理アドレスと対応する物理アドレスの対を
読み出し、その読み出した物理アドレスを変換後のアド
レスとして利用する。さらに、この読み出した対をアド
レス変換バッファに登録する。
That is, in converting this logical address into a physical address, an address conversion buffer (not shown) provided in the shared memory control circuit 12 is referred to, and a pair of the physical address corresponding to this logical address is stored therein. If registered, the physical address corresponding to the logical address is read and used as the converted address. If the pair is not registered in this address translation buffer, the page table 11 of the shared memory is accessed, the pair of the physical address corresponding to the logical address is read, and the read physical address is set as the translated address. To use. Further, this read pair is registered in the address translation buffer.

【0025】共有メモリ制御回路12は、このようにし
て論理アドレスを物理アドレスに変換し、変換後の物理
アドレスでもって、その物理アドレスのデータを含むブ
ロックデータを共有メモリ1から読み出し、要求元のプ
ロセッサに転送する。さらに、共有メモリ1内の、この
ページに対する参照ビットRを1(参照状態)にする。
The shared memory control circuit 12 thus converts the logical address into a physical address, reads the block data including the data of the physical address from the shared memory 1 by using the converted physical address, and requests the block data of the request source. Transfer to processor. Further, the reference bit R for this page in the shared memory 1 is set to 1 (reference state).

【0026】なお、この物理アドレスのデータを含むペ
ージが共有メモリに存在しないこと(ページフォール
ト)が生じうるが、その場合の処理は後に説明する。
It is possible that a page containing the data of this physical address does not exist in the shared memory (page fault), but the processing in that case will be described later.

【0027】(2)データの書き込み (2a)いずれかのプロセッサ、例えば、PE1内のC
PU40がメモリデータの書き込み要求を発生したと
き、その要求で指定される論理アドレスのデータを含む
ブロックがそのプロセッサのキャッシュ例えば41に存
在する場合には、そのブロックに対してCPUから転送
されたデータを書き込む。
(2) Writing of data (2a) Either processor, for example, C in PE1
When the PU 40 issues a memory data write request, if the block containing the data of the logical address specified by the request exists in the cache of the processor, for example, 41, the data transferred from the CPU to the block. Write.

【0028】さらに、そのブロックの状態が共有状態で
あるときには、この論理アドレスを指定する無効化コマ
ンドを共有バス2に転送する。この時、他のプロセッサ
は、このコマンドに応答して、自己のキャッシュにこの
ブロックを保持しているか否かを判別し、このブロック
を保持していると判断した他のプロセッサは、そのキャ
ッシュのそのブロックを無効とする。
Further, when the state of the block is the shared state, the invalidation command designating this logical address is transferred to the shared bus 2. At this time, the other processor, in response to this command, determines whether or not it holds this block in its own cache, and the other processor that determines that it holds this block will Invalidate the block.

【0029】一方、共有メモリ制御回路12は、このコ
マンドに応答して、このブロックを含むページのCビッ
トを1(書き換え済み)状態に変更する。
On the other hand, in response to this command, the shared memory control circuit 12 changes the C bit of the page including this block to the 1 (rewritten) state.

【0030】書き込み要求を実行したプロセッサでは、
そのプロセッサ内のそのブロックを未変更、かつ、非共
有状態に変更する。
In the processor that has executed the write request,
Change the block in the processor to unmodified and unshared.

【0031】(2b)しかし、その書き込み要求された
データを含むブロックがその要求が発生したプロセッサ
内のキャッシュに存在しないときには、そのプロセッサ
は、共有バス2に、その要求で指定された論理アドレス
を含み、そのアドレスのデータの転送と、その転送後の
そのデータの無効化を要求するデータ転送要求コマンド
を送付する。
(2b) However, when the block containing the write-requested data does not exist in the cache in the processor in which the request was issued, the processor assigns the shared bus 2 the logical address specified by the request. A data transfer request command for requesting transfer of data at the address and invalidation of the data after the transfer is sent.

【0032】すなわち、このコマンドに応答して他のプ
ロセッサは、上記(1b)で説明したのと同じ動作をし
て、いずれかの他のプロセッサのキャッシュにそのデー
タを含むブロックが保持されているときには、そのプロ
セッサからそのブロックを要求元のプロセッサに転送す
るとともに、そのデータの転送後にそのデータを上記
(2a)で説明したののと同じように無効化する。
That is, in response to this command, the other processor performs the same operation as described in (1b) above, and the block containing the data is held in the cache of any of the other processors. Sometimes, the processor transfers the block to the requesting processor and, after the transfer of the data, invalidates the data in the same manner as described in (2a) above.

【0033】一方、要求元のプロセッサは、この転送さ
れたブロックを自己のキャッシュに登録する。このと
き、このブロックのキャッシュ内の状態を、変更済、か
つ、非共有状態にする。
On the other hand, the requesting processor registers the transferred block in its own cache. At this time, the state in the cache of this block is changed to the non-shared state.

【0034】(2c)一方、いずれの他のプロセッサの
キャッシュ内にもこのデータ転送要求コマンドで要求さ
れたデータを含むブロックがない場合、共有メモリ制御
回路12は、この転送要求コマンドが要求するブロック
を共有メモリ1から要求元プロセッサに転送する。その
方法は、上記(1c)で述べた方法と同じである。
(2c) On the other hand, if there is no block containing the data requested by this data transfer request command in the cache of any other processor, the shared memory control circuit 12 causes the block requested by this transfer request command. From the shared memory 1 to the request source processor. The method is the same as the method described in (1c) above.

【0035】しかる後に、要求元プロセッサは、書き込
み要求で指定されたデータをその転送されたブロックに
対して書き込みを行なう。ただし、上記(2a)の場合
と異なり、無効化コマンドの送出は行わない。
Thereafter, the request source processor writes the data designated by the write request into the transferred block. However, unlike the case of (2a) above, the invalidation command is not transmitted.

【0036】なお、この(2c)の場合にも、この物理
アドレスのデータを含むページが共有メモリに存在しな
いこと(ページフォールト)が生じうるが、その場合の
処理は後に説明する。
Even in the case of this (2c), the page including the data of this physical address may not exist in the shared memory (page fault), but the processing in that case will be described later.

【0037】(3)ページフォールト時の処理 図2は本発明による共有メモリ制御回路12によるブロ
ック転送動作の詳細フローである。
(3) Processing at the time of page fault FIG. 2 is a detailed flow of the block transfer operation by the shared memory control circuit 12 according to the present invention.

【0038】(3a)上記(1c)あるいは(2c)に
おいて、データ転送要求コマンドが共有バスに転送さ
れ、そのブロックがいずれの他のプロセッサ内のキャッ
シュにもない場合に、共有メモリ制御回路12は、デー
タ転送要求が要求するブロックを転送するに当たり、ま
ず、その要求が指定する論理アドレスのブロックが、共
有メモリ1内の物理アドレスを割り当てられているかを
判断する(ステップc1)。
(3a) In the above (1c) or (2c), when the data transfer request command is transferred to the shared bus and the block is not in the cache in any other processor, the shared memory control circuit 12 In transferring the block requested by the data transfer request, first, it is determined whether the block having the logical address specified by the request is assigned a physical address in the shared memory 1 (step c1).

【0039】このページフォールト判定c1では、当該
論理アドレスに対応するデータが共有メモリに存在する
か否かをページテーブル11の論理アドレスに対応する
有効フラグが、”1”(有効)であるかどうかにより判
定する。
In this page fault judgment c1, it is determined whether or not the data corresponding to the relevant logical address exists in the shared memory, and whether or not the valid flag corresponding to the logical address of the page table 11 is "1" (valid). Determined by

【0040】(3b)そのブロックが物理アドレスを割
り当てられている、すなわち、ページフォールトでない
と判断したとき、既に述べたようにしてそのブロックを
転送する(ステップc5)。
(3b) When it is determined that the block is assigned a physical address, that is, it is not a page fault, the block is transferred as described above (step c5).

【0041】(3c)しかし、その論理アドレスに物理
アドレスが割り当てられていないとき、すなわち、ペー
ジフォールトが発生したときには、共有メモリ制御回路
12は、置き換えページ選択処理c2において、置き換
えるページを一つ選択する。例えば、有効フラグが1の
ページでUICの値が最大のページを選択する。
(3c) However, when no physical address is assigned to the logical address, that is, when a page fault occurs, the shared memory control circuit 12 selects one page to be replaced in the replacement page selection processing c2. To do. For example, a page with a valid flag of 1 and a maximum UIC value is selected.

【0042】共有メモリ制御回路12は、さらに、選択
したページに含まれる複数のブロックの各々の書き戻し
を要求するスワップアウト要求コマンドを共有バス2を
介して各プロセッサに転送する。各プロセッサは、この
コマンドに応答して、そのコマンドが指定するブロック
を自己のプロセッサ内のキャッシュに保持しているか否
かを判断し、保持している場合には、そのブロックが書
き換え済みであるか否かをそのブロックのキャッシュ状
態を表す情報により判断し、書き換え済みであれば、そ
のブロックを共有バス2を介して共有メモリ1に書き戻
す。
The shared memory control circuit 12 further transfers a swap-out request command requesting write-back of each of a plurality of blocks included in the selected page to each processor via the shared bus 2. In response to this command, each processor determines whether or not the block designated by the command is held in the cache in its own processor, and if so, the block has been rewritten. Whether or not it is judged from the information indicating the cache state of the block, and if it has been rewritten, the block is written back to the shared memory 1 via the shared bus 2.

【0043】共有メモリ制御回路12は、このようにし
て書き戻されたブロックが一つでもあれば、その選択さ
れたページのCビットを1に変更する。
If there is even one block written back in this way, the shared memory control circuit 12 changes the C bit of the selected page to 1.

【0044】(3d)共有メモリ制御回路12は、処理
c3を実行する。すなわち、この選択されたページのC
ビットが1となった場合には、このページをディスク装
置3にI/Oインタフェース回路13を介してページア
ウトする。このCビットの値が”0”の場合は、このペ
ージアウトは行なわない。
(3d) The shared memory control circuit 12 executes the process c3. That is, C of this selected page
When the bit becomes 1, this page is paged out to the disk device 3 via the I / O interface circuit 13. When the value of this C bit is "0", this page out is not performed.

【0045】その後、共有メモリ制御回路12は、デー
タ転送要求で指定されたブロックに物理アドレスを割り
当て、ディスク装置3から共有メモリ1のその物理アド
レスの位置にそのブロックを転送する。
After that, the shared memory control circuit 12 allocates a physical address to the block designated by the data transfer request, and transfers the block from the disk device 3 to the position of the physical address in the shared memory 1.

【0046】(3e)共有メモリ制御回路12は、処理
c4で、ページテーブルを更新する。すなわち、データ
転送要求コマンドが指定した論理アドレス、それに割り
当てた物理アドレスと、有効フラグを”1”(有効)に
セットする。置換されたページに関するエントリの有効
フラグは”0”(無効)にリセットする。
(3e) The shared memory control circuit 12 updates the page table in process c4. That is, the logical address designated by the data transfer request command, the physical address assigned to it, and the valid flag are set to "1" (valid). The valid flag of the entry relating to the replaced page is reset to "0" (invalid).

【0047】併せて、共有メモリ制御回路12は、その
内部に含まれたアドレス変換バッファ内の、置換された
ページに関するエントリを無効化し、かつ、データ転送
要求された論理アドレスとそのアドレスに割り当てられ
た物理アドレスとの対を登録する。
At the same time, the shared memory control circuit 12 invalidates the entry relating to the replaced page in the address translation buffer contained therein, and is assigned to the logical address requested for data transfer and the address. Register the pair with the registered physical address.

【0048】(3f)共有メモリ制御回路12は、こう
してページインされたページのうち、データ転送要求コ
マンドが指定した論理アドレスのデータを含むブロック
を、すでに(1c)あるいは(2c)で説明したように
して、要求元プロセッサに転送する。
(3f) The shared memory control circuit 12 selects the block containing the data of the logical address designated by the data transfer request command among the pages paged in as described above in (1c) or (2c). And transfer to the requesting processor.

【0049】以上のごとく、本実施例では、各プロセッ
サにより転送要求されたブロックが複数のプロセッサで
保持されていないために、そのブロックを共有メモリ1
から読み出すときに限って共有メモリ1内のRビットの
書き換えを行なうことにより、このRビットの書き換え
の頻度を少なくしている。
As described above, in this embodiment, since the block requested to be transferred by each processor is not held by a plurality of processors, the block is shared by the shared memory 1.
By rewriting the R bit in the shared memory 1 only when reading from, the frequency of rewriting the R bit is reduced.

【0050】同様に、本実施例では、各プロセッサによ
り発行されたデータ無効化コマンドでいずれかのプロセ
ッサ内のブロックの無効を要求されたとき、および、共
有メモリに書き換え済みのブロックを共有メモリに書き
戻し時に限って、それらのブロックを含むページに対す
る共有メモリ1内のCビットの書き換えを行なうことに
より、このCビットの書き換えの頻度を少なくしてい
る。
Similarly, in this embodiment, when a block in one of the processors is requested to be invalidated by a data invalidation command issued by each processor, and when the block rewritten in the shared memory is set in the shared memory. By rewriting the C bit in the shared memory 1 for the page including these blocks only at the time of writing back, the frequency of rewriting the C bit is reduced.

【0051】以上から明らかなごとく、本実施例では、
論理アドレスから物理アドレスへの変換は、各プロセッ
サで行なわず、共有メモリ制御回路12で行ない、アド
レス変換変換バッファも各プロセッサに個別に設けず、
共有メモリ制御回路12に各プロセッサに共通に設け
る。
As is clear from the above, in the present embodiment,
The conversion from the logical address to the physical address is not performed by each processor, is performed by the shared memory control circuit 12, and the address translation conversion buffer is not separately provided for each processor.
The shared memory control circuit 12 is provided commonly to each processor.

【0052】この結果、各プロセッサと共有メモリ制御
回路との間では、共有メモリ内のページテーブルの内容
を転送する必要がなくなり、共有バスの競合によるアド
レス変換の遅延を防止できる。
As a result, it is not necessary to transfer the contents of the page table in the shared memory between each processor and the shared memory control circuit, and delay of address translation due to contention of the shared bus can be prevented.

【0053】さらに、従来各プロセッサに設けていた場
合に生じる、ページフォールト発生時の、各プロセッサ
内のアドレス変換バッファのパージを行なう必要がな
く、従来生じていた、そのパージのための共有バスの使
用の競合に起因する遅延が減少する。
Furthermore, it is not necessary to purge the address translation buffer in each processor when a page fault occurs, which occurs when each processor is provided in the related art. Delays due to contention for use are reduced.

【0054】結局、本実施例では、アドレス変換あるい
はそれに関連して共有バスを使用する必要がなくなる。
After all, in the present embodiment, there is no need to use the shared bus in relation to the address conversion or related thereto.

【0055】なお、上記(1b)あるいは(2b)の場
合のように、いずれかのプロセッサからデータ転送要求
コマンドが発行され、要求されたデータを含むブロック
がいずれかのプロセッサから要求元に転送された場合に
おいても、共有メモリ制御回路12に共有メモリ1の当
該ブロックを含むページが無効か否かを判断させること
により、仮想記憶制御の誤りを検出するように本実施例
を変形することも可能である。
As in the case of (1b) or (2b) above, a data transfer request command is issued from either processor, and the block containing the requested data is transferred from any processor to the request source. Also in this case, the present embodiment can be modified so that the virtual memory control error is detected by causing the shared memory control circuit 12 to determine whether or not the page including the block of the shared memory 1 is invalid. Is.

【0056】[0056]

【発明の効果】本発明によれば、各プロセッサにはアド
レス変換手段を設けないで、共有メモリ制御回路に複数
のプロセッサに共通のアドレス変換回路を設けたので、
共有バスには、アドレス変換のための情報を各プロセッ
サから共有メモリ制御回路へあるいはその反対方向に転
送する必要がなく、共有バスでのこれらの情報の転送時
おける競合が軽減され、アドレス変換自体が高速化され
る。
According to the present invention, the address conversion means is not provided in each processor, but the shared memory control circuit is provided with the address conversion circuit common to a plurality of processors.
The shared bus does not need to transfer information for address translation from each processor to the shared memory control circuit or vice versa, which reduces contention during the transfer of such information on the shared bus, and the address translation itself. Will be faster.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明による並列計算機システムの一実施例の
構成図である。
FIG. 1 is a configuration diagram of an embodiment of a parallel computer system according to the present invention.

【図2】図1の装置の共有メモリ制御回路により実行さ
れる、ページフォールト発生時の制御のフローチャート
である。
FIG. 2 is a flowchart of control executed by a shared memory control circuit of the apparatus of FIG. 1 when a page fault occurs.

【符号の説明】[Explanation of symbols]

1...共有メモリ、 2..共有バス。 1 ... shared memory, 2..shared bus.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 井門 徳安 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor Tokuyasu Imon Tokuyasu 1-280, Higashi Koigokubo, Kokubunji City, Tokyo Inside the Central Research Laboratory, Hitachi, Ltd.

Claims (2)

【特許請求の範囲】[Claims] 【請求項1】共有バスに結合された複数のプロセッサ
と、該複数のプロセッサに共有される共有メモリと、該
共有バスに接続され、該共有メモリへのアクセスを制御
する共有メモリ制御回路とを有し、 各プロセッサは、 処理装置と、その処理装置が発行するメモリアクセス要
求が指定される論理アドレスでアクセス可能なキャッシ
ュメモリとを有し、 該キャッシュメモリは、 該アクセス要求で要求されたデータが該キャッシュメモ
リに保持されていないときには、該共有バスにそのアク
セス要求で指定された論理アドレスを含む、データ転送
要求コマンドを送付する手段と、 他のプロセッサからその共有バスに送付されたデータ転
送要求が指定する論理アドレスのデータを含むデータブ
ロックを当該プロセッサのキャッシュメモリ内に保持さ
れているか否かを検出し、そのデータブロックが保持さ
れている場合には、そのデータブロックを該共有バスを
介して要求元のプロセッサに転送する手段とを有し、 該共有メモリ制御回路は、 該共有バスを介して該複数のプロセッサのいずれかから
送付された論理アドレスを、該共有メモリ内のアドレス
変換テーブルをアクセスして、対応する物理アドレスに
変換する手段と、 該データ転送要求で指定された論理アドレスのデータを
含むデータブロックがいずれのプロセッサからも該バス
に転送されないときに、その論理アドレスに対して該変
換手段で得られた物理アドレスに基づいて、そのデータ
ブロックを該共有メモリから読み出し、そのデータブロ
ックを要求元のプロセッサに該共有バスを介して転送す
る手段とを有する仮想記憶管理方式。
1. A plurality of processors coupled to a shared bus, a shared memory shared by the plurality of processors, and a shared memory control circuit connected to the shared bus and controlling access to the shared memory. Each processor has a processor and a cache memory accessible at a logical address specified by a memory access request issued by the processor, and the cache memory stores the data requested by the access request. Is stored in the cache memory, means for sending a data transfer request command containing the logical address specified by the access request to the shared bus, and data transfer sent from the other processor to the shared bus. A data block containing the data of the logical address specified by the request is stored in the cache memory of the processor. The shared memory control circuit, the shared memory control circuit includes a means for detecting whether the data block is held, and transferring the data block to the requesting processor via the shared bus when the data block is held. A means for converting a logical address sent from any of the plurality of processors via the shared bus into a corresponding physical address by accessing an address conversion table in the shared memory; When a data block including data of a designated logical address is not transferred to the bus from any processor, the data block is shared based on the physical address obtained by the conversion means for the logical address. Virtual memory having means for reading from the memory and transferring the data block to the requesting processor via the shared bus Management method.
【請求項2】該共有メモリ制御回路は、 該データ転送要求で指定された論理アドレスのデータを
含むページデータが該共有メモリに記憶されていないと
きに、該共有メモリに保持されたいずれかのページデー
タを、ページアウトのために選択する手段と、 選択されたページデータに属する複数のブロックを該共
有メモリに書き戻すことを該複数のプロセッサに要求す
る手段とを有し、 各プロセッサのキャッシュメモリは、該書き戻し要求さ
れたデータブロックをそのキャッシュメモリに保持し、
かつ、そのデータブロックが書き換え済みであるかを判
別し、該キャッシュメモリに保持された書き換え済みの
ブロックを該共有バスを介して該共有メモリに書き戻す
手段を有し、 該共有メモリ制御回路は、 該複数のプロセッサから書き換え済みのブロックが少な
くとも一つ該共有メモリに書き戻されたときに、該選択
されたページデータを該共有メモリ制御回路に接続され
た補助記憶装置にページアウトする手段と、 該データ転送要求で指定された論理アドレスのデータを
含むページデータを該補助記憶装置から該共有メモリに
ページインする手段と、 ページインされたページデータのうち、その論理アドレ
スで指定されたデータを含むブロックを、該要求元のプ
ロセッサに該共有バスを介して転送する手段とを有する
請求項1記載の仮想記憶管理方式。
2. The shared memory control circuit, when any page data including data of a logical address designated by the data transfer request is not stored in the shared memory, holds the shared memory. A cache of each processor, comprising means for selecting page data for page out, and means for requesting the plurality of processors to write back a plurality of blocks belonging to the selected page data to the shared memory. The memory holds the write-back requested data block in its cache memory,
Further, the shared memory control circuit has means for determining whether the data block has been rewritten, and writing back the rewritten block held in the cache memory to the shared memory via the shared bus. Means for page-out of the selected page data to an auxiliary storage device connected to the shared memory control circuit when at least one rewritten block is written back to the shared memory from the plurality of processors, Means for page-in of page data including data of a logical address designated by the data transfer request from the auxiliary storage device into the shared memory, and data designated by the logical address of the page-in page data And a means for transferring a block including the block to the requesting processor via the shared bus. Memory management method.
JP5255305A 1993-09-20 1993-09-20 Virtual memory managing system Pending JPH0793220A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5255305A JPH0793220A (en) 1993-09-20 1993-09-20 Virtual memory managing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5255305A JPH0793220A (en) 1993-09-20 1993-09-20 Virtual memory managing system

Publications (1)

Publication Number Publication Date
JPH0793220A true JPH0793220A (en) 1995-04-07

Family

ID=17276934

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5255305A Pending JPH0793220A (en) 1993-09-20 1993-09-20 Virtual memory managing system

Country Status (1)

Country Link
JP (1) JPH0793220A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016517992A (en) * 2013-05-06 2016-06-20 クゥアルコム・インコーポレイテッドQualcomm Incorporated Multi-core page table set for attribute fields

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5864689A (en) * 1981-10-14 1983-04-18 Hitachi Ltd Data processor
JPS58205973A (en) * 1982-05-25 1983-12-01 Toshiba Corp Address conversion system
JPH04347750A (en) * 1991-05-24 1992-12-02 Fujitsu Ltd Control system for parallel cache memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5864689A (en) * 1981-10-14 1983-04-18 Hitachi Ltd Data processor
JPS58205973A (en) * 1982-05-25 1983-12-01 Toshiba Corp Address conversion system
JPH04347750A (en) * 1991-05-24 1992-12-02 Fujitsu Ltd Control system for parallel cache memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016517992A (en) * 2013-05-06 2016-06-20 クゥアルコム・インコーポレイテッドQualcomm Incorporated Multi-core page table set for attribute fields

Similar Documents

Publication Publication Date Title
US6295582B1 (en) System and method for managing data in an asynchronous I/O cache memory to maintain a predetermined amount of storage space that is readily available
JP2662603B2 (en) Method and apparatus for filtering invalidation requests
US8417913B2 (en) Superpage coalescing which supports read/write access to a new virtual superpage mapping during copying of physical pages
US7698508B2 (en) System and method for reducing unnecessary cache operations
US6795897B2 (en) Selective memory controller access path for directory caching
US5897664A (en) Multiprocessor system having mapping table in each node to map global physical addresses to local physical addresses of page copies
JP3102495B2 (en) Virtual memory management method
US6633967B1 (en) Coherent translation look-aside buffer
JP3281893B2 (en) Method and system for implementing a cache coherency mechanism utilized within a cache memory hierarchy
US8037281B2 (en) Miss-under-miss processing and cache flushing
JP3264319B2 (en) Bus bridge
US7496730B2 (en) System and method for reducing the number of translation buffer invalidates an operating system needs to issue
JP2000250812A (en) Memory cache system and managing method therefor
KR20010101694A (en) Techniques for improving memory access in a virtual memory system
US7197605B2 (en) Allocating cache lines
US20060123197A1 (en) System, method and computer program product for application-level cache-mapping awareness and reallocation
US20070101067A1 (en) System and method for contention-based cache performance optimization
US7117312B1 (en) Mechanism and method employing a plurality of hash functions for cache snoop filtering
US5293622A (en) Computer system with input/output cache
JP3295436B2 (en) Microprocessor cache consistency
KR100322223B1 (en) Memory controller with oueue and snoop tables
US6785759B1 (en) System and method for sharing I/O address translation caching across multiple host bridges
US20050091459A1 (en) Flexible mechanism for enforcing coherency among caching structures
JPH1091521A (en) Duplex directory virtual cache and its control method
JP3626609B2 (en) Multiprocessor system