JPS5894182A - Buffer memory managing system - Google Patents
Buffer memory managing systemInfo
- Publication number
- JPS5894182A JPS5894182A JP56191564A JP19156481A JPS5894182A JP S5894182 A JPS5894182 A JP S5894182A JP 56191564 A JP56191564 A JP 56191564A JP 19156481 A JP19156481 A JP 19156481A JP S5894182 A JPS5894182 A JP S5894182A
- Authority
- JP
- Japan
- Prior art keywords
- page
- data
- buffer memory
- flag
- frame
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
【発明の詳細な説明】
この発明はスコープ規制を考慮することによシヒット率
の向上を図ったバッファメモリの管理方式に関する。DETAILED DESCRIPTION OF THE INVENTION The present invention relates to a buffer memory management method that aims to improve the hit rate by taking scope regulations into consideration.
主記憶装置に比べて高速動作を行なう演算装置を効率よ
く運用するために、両者の間に高速の記憶装置(バッフ
ァメモリ)を設けることが通常行なわれている。プログ
ラム実行中に演算装置から要求されたデータがバッファ
メモリに存在しない場合、そのデータが主記憶装置から
バッファメモリに転送されるまでの間演算装置は待たさ
れることになシ、バッファメモリの高速性が有効に利用
されない。従って参照された主記憶装置のデータがバッ
ファメモリに存在する確率(ヒツト率)をいかに向上さ
せるかがバッファメモリ制御方式における主要な技術的
課題である。In order to efficiently operate an arithmetic unit that operates at a higher speed than a main memory, a high-speed memory (buffer memory) is usually provided between the two. If the data requested by the arithmetic unit during program execution does not exist in the buffer memory, the arithmetic unit will not have to wait until the data is transferred from the main memory to the buffer memory. is not used effectively. Therefore, the main technical issue in the buffer memory control system is how to improve the probability (hit rate) that referenced data in the main memory exists in the buffer memory.
従来の一般的なバッファメモリ制御方式においては、第
1図に示すように主記憶装置5とバッファメモリ2が同
一サイズのページに分割されておシ、バッファメモリ2
の各ページに対応してそのページが空きか否かを示す空
きページフラグ9、空きでないページ内に格納されてい
るデータの主記憶装置内アドレス10及びページ入替え
管理情報11を保持するバッファメモリ管理装置4が設
置されている。空きページフラグ9は「空き」に初期化
され、その後主記憶装置3からデータバス6を介してデ
ータを格納すると、このデータ格納ページに対し「空き
でない」ことを示すフラグが設定される。演算装f1が
アドレスバス7及びデータ転送制御バス13を介してデ
ータを要求した場合において要求されたデータがバッフ
ァメモリ2に存在すれば、そのデータはバッフアメそり
制御ハス12上の指令に基いてバッファメモリ2からデ
ータバス5を介して演算装置1に転送される。In the conventional general buffer memory control method, the main memory 5 and the buffer memory 2 are divided into pages of the same size, as shown in FIG.
A buffer memory management system that holds an empty page flag 9 corresponding to each page and indicating whether or not that page is empty, an address 10 in the main storage device of data stored in a page that is not empty, and page replacement management information 11. A device 4 is installed. The free page flag 9 is initialized to "free", and when data is subsequently stored from the main storage device 3 via the data bus 6, a flag indicating "not free" is set for this data storage page. When the arithmetic unit f1 requests data via the address bus 7 and the data transfer control bus 13, if the requested data exists in the buffer memory 2, the data is transferred to the buffer based on the command on the buffer memory control bus 12. The data is transferred from the memory 2 to the arithmetic unit 1 via the data bus 5.
一方演算装置1から要求されたデータがバッファメモリ
2になければ、メモリ制御バス14に基いてアドレδ、
8上で指定されたその要求データを含むページが主記憶
装置3からデータバス6を介してバッファメモリ2の空
きページに転送され、引続いてパックアメモリ制御バス
12上の指令に基いてデータバス5を介して演算装置1
に転送される。バッファメモリ2に空きページが存在し
なくなったときには、ページ入替え管理情報11に基い
て空きでないページのいずれかを選択してこのページの
データをバッファメモリ2から掃き出し、要求されてい
るデータを主記憶装置5からこのページに読込むことが
必要になる。On the other hand, if the data requested by the arithmetic unit 1 is not in the buffer memory 2, the address δ,
The page containing the requested data specified on 8 is transferred from the main memory 3 via the data bus 6 to an empty page in the buffer memory 2, and then the data is transferred based on the command on the pack memory control bus 12. Computing device 1 via bus 5
will be forwarded to. When there are no free pages in the buffer memory 2, one of the pages that is not free is selected based on the page replacement management information 11, the data of this page is flushed from the buffer memory 2, and the requested data is transferred to the main memory. It is necessary to read this page from the device 5.
このように、空きページがなくなったバッファメモリに
対しページの入替えを管理するための従来方式として、
バッファメモリに格納されたページの順序をページ入替
え管理情報としてバッファメモリ管理装置に保持し、こ
の情報に基いて最先の格納ページを掃出すFIFO(F
、1rpt In First 0ut)方式や、演算
装置が参照した時刻をページ入替え管理情報として保持
し、この情報に基いて最後に参照された時刻が最先であ
るページを掃出すLRU(Leapt RaeaStl
y Upad)方式等があるが、前述したヒツト率はこ
れらのページ入替え管理方式に依存している。In this way, as a conventional method for managing page replacement for buffer memory that has no free pages,
The order of pages stored in the buffer memory is held in the buffer memory management device as page replacement management information, and a FIFO (F
, 1rpt In First 0ut) method, and the LRU (Leap RaeaStl) method, which retains the time referenced by the computing device as page replacement management information and purges the page whose last reference time is the earliest based on this information.
y Upad) method, etc., but the hit rate mentioned above depends on these page replacement management methods.
とζろで、演算装置で実行されるプログラムを記述する
丸めに近年高級言語が普及し、データが以下説明するよ
うな「スコープ規制」をもっことが一般的になっている
。高級言語で記述されたプログラムは一般に第2図に例
示するようなネスティング(nazti弗1> され
丸棒構造を有し′、各々の枠はそれを囲んでいる枠の数
([レキシカル・レベルJ (laaeieal je
wel) と呼ばれる。)で特徴付けられる。第2図
の例ではA−Gの各枠のレキシカル・レベルは、枠Aで
は0、枠B、D及びFでは1、枠C,E及びGでは2で
ある。これらの枠は宣言文(データの生成)及び実行文
(データの参照、レキシカル・レベルの変更)から構成
される。ある枠で宣言されたデータはその枠内てのみ有
効であり、tたある枠の実行文で参照できるデータはそ
の枠を囲む枠内で宣言されたものに限られる。すなわち
第2図の例では、枠Cの実行文で参照できるデータは枠
A、E及びCのそれぞれで宣言され九データa、b及び
Cだけであシ、枠Bの実行文で参照できるデータは枠A
及びBのそれぞれで宣言されたデータa及びbだけであ
シ、枠Aの実行文で参照できるデータはαだけである。In recent years, high-level languages have become popular for writing programs to be executed on arithmetic devices, and it has become more common for data to have ``scope restrictions'' as described below. A program written in a high-level language generally has a nested round bar structure as shown in Figure 2, and each frame has the number of surrounding frames ([lexical level (laaeiel je
It is called ``wel''. ) is characterized by In the example of FIG. 2, the lexical level of each frame A to G is 0 for frame A, 1 for frames B, D, and F, and 2 for frames C, E, and G. These frames consist of declarative statements (data generation) and executable statements (data references, lexical level changes). Data declared in a certain frame is valid only within that frame, and data that can be referenced by an executable statement in a certain frame is limited to data declared within the frame surrounding that frame. In other words, in the example shown in Figure 2, the data that can be referenced by the executable statement in frame C is declared in each of frames A, E, and C, and only the nine data a, b, and C are the data that can be referenced by the executable statement in frame B. is frame A
and B, respectively, and the only data that can be referenced by the executable statement in frame A is α.
このようにある枠内の実行文で参照できるデータの範囲
を制限することをスコープ(Ie#Pa)規制と称して
いる。This restriction of the range of data that can be referenced by an executable statement within a certain frame is called scope (Ie#Pa) regulation.
しかしながら、従来のページ入替え管理方式は上述した
スコープ規制と全く独立に行なわれておシ、これがヒツ
ト率を低下させる原因となっている。例えば第2図にお
いて実行が枠りから枠Cに移る場合、データdはもはや
無効であるにも拘らずLRU方式では他のページに比べ
て最吃長くバッファメモリ内に残存することになり、こ
れがヒツト率を低下させる原因となる。However, the conventional page replacement management method is performed completely independently of the above-mentioned scope regulation, which causes a decrease in the hit rate. For example, when execution moves from frame to frame C in Figure 2, data d remains in the buffer memory for the longest time compared to other pages in the LRU method, even though it is no longer valid. This causes the hit rate to decrease.
本発明は上述した従来の問題点に鑑みてなされたもので
ib、その目的とするところは、スコープ規制を考慮し
てページの入替えを管理することによシヒット率の向上
を図ったバッファメモリ管理方式を提供することにある
。The present invention has been made in view of the above-mentioned conventional problems, and its purpose is to manage buffer memory to improve the hit rate by managing page replacement in consideration of scope regulations. The goal is to provide a method.
本発明の詳細な説明する前に、まずレキシカルレベルを
変更する実行文について説明する。これには次のような
4つのタイプがある。Before explaining the present invention in detail, first, an executable statement for changing the lexical level will be explained. There are four types of this:
タイプル
キシカル・レベルの値を1だけ増加させる実行文であシ
、例えばPL/IのDO文がこれに該当する。第2図の
例では枠Aから枠Bへの変更や枠Bから枠Cへの変更が
これに該当するが、これに伴いスコープ規制に基いて無
効となるデータは存在しない。This is an executable statement that increases the value of the lexical level by 1, such as the PL/I DO statement. In the example of FIG. 2, this applies to changes from frame A to frame B and from frame B to frame C, but there is no data that becomes invalid based on scope regulations.
タイプ2
レキシカル・レベルの値を1だけ減少させる実行文であ
シ、タイプ1の実行文と対にして使用される。例えばP
L/IのDO文に対応するEND文がこれに該当する。Type 2 is an executable statement that decreases the value of the lexical level by 1, and is used in combination with a type 1 executable statement. For example, P
This corresponds to the END statement corresponding to the L/I DO statement.
第2図の例では枠Bから枠Aへの変更や枠Cから枠Bへ
の変更がこれに該当し、変更前の枠内で宣言されていた
データはスコープ規制に基き無効となる。In the example of FIG. 2, this applies to changes from frame B to frame A and from frame C to frame B, and the data declared within the frame before the change becomes invalid based on scope regulations.
タイプ3
レキシカル・レベルの値を(現在の値+1)以下の指定
された値に変更する実行文であシ、例えばPL/IのC
ALL文がこれに該当する。第2図の例では枠Cから枠
りへの変更や、枠Eから枠Fへの変更がこれに該当し、
変更後のレキシカル・レベルの値(この例では1)以上
のレキシカル・レベルをもっていた既存のデータ(この
例ではデータC9#及びg)がスコープ規制によシ無効
となる。Type 3 An executable statement that changes the value of the lexical level to a specified value less than or equal to (current value + 1), such as C in PL/I.
This applies to the ALL statement. In the example in Figure 2, this applies to changing from frame C to frame and from frame E to frame F.
Existing data (data C9# and g in this example) that had a lexical level equal to or higher than the changed lexical level value (1 in this example) is invalidated due to scope regulation.
タイプ4
タイプ3の実行文で変更されたレキシカル・レベルを復
元する実行文でアシ、タイプ3の実行文と対にして使用
される。例えばpyrORETURN文がこれに該当し
、第2図の例では枠りから枠Cへの変更や枠Fから枠E
への変更がこれに該当する。Type 4 An executable statement that restores the lexical level changed by a type 3 executable statement, and is used in pair with a type 3 executable statement. For example, the pyrORETURN statement corresponds to this, and in the example in Figure 2, changing from frame to frame C or from frame F to frame E
This applies to changes to.
この実行文によシ、復元前のレキシカル・レベルで宣言
されていたデータ(この例ではデータdやf)がすべて
無効−となシ、一方タイブ3の実行文によって無効とな
っていたデータ(この例ではデータCや−)が再び有効
となる。This executable statement invalidates all the data declared at the lexical level before restoration (in this example, data d and f), while the data that was invalidated by the type 3 executable statement ( In this example, data C and -) become valid again.
第3図は本・発明の一実施例に使用するバッファメモリ
・システムの構成の一例を示すブロック図であシ、41
は演算装置、42−はバッファメモリ、45は主記憶装
置、44はバックアメモリ管理装置、45及び46はデ
ータバス、47.48及び51は制御バス、49.58
はアドレスバスである。ノ(ラフアメモリ管理装置44
内には従来方式と同様の空きページフラグ52、主記憶
装置内アドレス55及びベージ入替え管理情報54に加
えて、そのページ内に格納されているデータが宣言され
たレキシカル・レベル55及びスコープ規制に基き決定
されたデータ有効/無効フラグ56の格納領域が)(ラ
フアメモリ42内のページ対応に設けられておシ、また
演算装置41とバッファメモリ管理装置440間にレキ
シカル・レベル情報バス50が設けられている。なおペ
ージ゛入替え管理情報54は、前述したFIFO方式や
LRU方式等任意の公知方式に基く情報であってよい。FIG. 3 is a block diagram showing an example of the configuration of a buffer memory system used in an embodiment of the present invention.
is an arithmetic unit, 42- is a buffer memory, 45 is a main storage device, 44 is a backup memory management device, 45 and 46 are data buses, 47.48 and 51 are control buses, 49.58
is the address bus. (Rahua memory management device 44
In addition to the empty page flag 52, main memory address 55, and page replacement management information 54, which are the same as in the conventional method, there is also a lexical level 55 at which the data stored in that page is declared and a scope regulation. A storage area for the data valid/invalid flag 56 determined based on the data valid/invalid flag 56 is provided corresponding to each page in the rough memory 42, and a lexical level information bus 50 is provided between the arithmetic unit 41 and the buffer memory management device 440. Note that the page replacement management information 54 may be information based on any known method such as the FIFO method or LRU method described above.
また空きページフラグはすべて「空き」に初期設定され
ている。In addition, all free page flags are initially set to "free".
まず演算装置41がレキシカル・レベルを変更する前述
した4つのタイプの実行文を実行する場合の動作につい
て説明する。First, the operation when the arithmetic unit 41 executes the above-mentioned four types of executable statements that change the lexical level will be described.
演算装置41が前述したタイプ1の実行文を実行する場
合にはバッファメモリ42中のデータのうちスコープ規
制に基熟無効になるデータが存在しないから、空きペー
ジ72グ52及びデータ有効/無効フラグ56は一切変
更されない。レキシカル・レベルの変更を伴わない実行
文が実行される場合もこれと同じである。When the arithmetic unit 41 executes the above-mentioned type 1 executable statement, there is no data in the buffer memory 42 that becomes invalid based on the scope regulation, so the empty page 72 and the data valid/invalid flag are 56 is not changed at all. The same is true when an executable statement that does not involve changing the lexical level is executed.
演算装置41が前述したタイ゛プ2の実行文を実行する
場合、演算装置41は制御バス48を介してタイプ2の
実行文を実行中であること及びレキシカル・レベル情報
バス50を介してバッファメモリ42内のデータを無効
にすべきレキシカル・レベル111をパックアメモリ管
理装置44に転送する。これを受けたバッファメモリ管
理装置44は、空きページフラグ52が「空きでない」
ことを表示しかつデータ有効/無効フラグが「有効」で
あることを表示しているすべてのページについてそのレ
キシカル・レベルと指定値■1を比較し、一致したすべ
てのページに対し空きページ7ラグ52を「空き」に変
更する。第2図の例では、枠Cを枠Bに変更する実行文
の場合、111として演算装[41から2の値が転送さ
れ、レキシカル・レベルが2である枠C内のデータCを
有するページが「空き」に変更される。なおレキシカル
・レベルが2である他の枠E及びG内のデーター及びg
はプログ2ムの一般的性質上枠Cから枠Bへの変更の前
に既に無効にされてしまっているか又は掃き出されてし
まっている。When the arithmetic unit 41 executes the above-mentioned type 2 executable statement, the arithmetic unit 41 indicates that it is executing the type 2 executable statement via the control bus 48 and that it is in the process of executing the type 2 executable statement via the lexical level information bus 50. The lexical level 111 whose data in the memory 42 is to be invalidated is transferred to the pack memory management device 44. Upon receiving this, the buffer memory management device 44 determines that the free page flag 52 is "not free".
Compare the lexical level of all pages whose data valid/invalid flag is “valid” with the specified value ■1, and set the free page 7 lag to all matching pages. 52 is changed to "vacant". In the example in Figure 2, in the case of an executable statement that changes frame C to frame B, a value of 2 is transferred from the arithmetic unit [41] as 111, and the page containing data C in frame C whose lexical level is 2 is is changed to "vacant". In addition, data in other frames E and G whose lexical level is 2 and g
has already been invalidated or swept out before the change from frame C to frame B due to the general nature of the program.
演算装置41がタイプ5の実行文を実行する場合、演算
装置41は制御バス48を介してタイプ3の実行文を実
行中でおること及びレキシカル・レベル情報バス50を
介して無効にすべきデータのレキシカル・レベルの最小
値1112をバッファメモリ管理装置44に転送する。When the arithmetic unit 41 executes a type 5 executable statement, the arithmetic unit 41 indicates via the control bus 48 that it is executing a type 3 executable statement and via the lexical level information bus 50 the data to be invalidated. The minimum value 1112 of the lexical level of is transferred to the buffer memory management device 44.
これを受けたバッファメモリ管理装置44は、空きペー
ジフラグ52が「空きでない」ことを表示しかつレキシ
カル・レベル55が指定値11112に等しいか又はこ
れよシ大きな値を有するすべてのページに対しデータ有
効/無効フラグを「無効」に設定する。第2図の例では
、枠Cを枠りに変更するタイプ3の実行文の場合、11
112として演算装置41からパツ7アメル・レベルが
2である枠C内のデータCを有するページに対しデータ
有効/無効フラグが「無効」に設定される。なおタイプ
2の実行文の場合と同様に、レキシカル・レベルが2で
ある他の枠内のデーター及びgはプ゛ログ2ムの一般的
性質上、上述し丸棒Cから枠りへの変更の前に既に無効
又は掃き出されてしまっている。Upon receiving this, the buffer memory management device 44 displays that the free page flag 52 is "not free" and the lexical level 55 is equal to or larger than the specified value 11112, and the buffer memory management device 44 sends data to all pages whose free page flag 52 is "not free" and whose lexical level 55 is equal to or larger than the specified value 11112. Set the valid/invalid flag to “invalid”. In the example in Figure 2, in the case of a type 3 executable statement that changes frame C to a frame, 11
At step 112, the data valid/invalid flag is set to "invalid" by the arithmetic unit 41 for the page having the data C in the frame C whose Pat7Amel level is 2. As in the case of type 2 executable statements, the data in other frames whose lexical level is 2 and g are changed from round bar C to frame due to the general nature of the program 2 system. It has already been invalidated or swept away before.
演算装置41がタイプ4の実行文を実行する場合、演算
装置41は制御バス48を介してタイプ4の実行文を実
行中であること及びレキシヵル・レベル情報バス50を
介して無効にすべきデータのレキシカル・レベルItB
をバッフアメ%lJ’!理装置44に転送する。これを
受けたバッファメモリ管理装置44は、空きページフラ
グ52に「空きでない」が表示されかつデータ有効/無
効フラグ56に「有効」が表示されているすべてのペー
ジについてそのレキシカル・レベル55と指定値ft1
t5を比較し、一致したすべてのページに対し空きペー
ジ7ジグ52を「空き」に設定する。第2図の例では、
枠りを枠Cに変更するタイプ4の実行文の場合、演算装
置41から4415として1の値が転送され、この値に
等しいレキシカルレベルを有する枠り内のデータd、を
有するページが「空き」に変更される。なおタイプ2の
実行文の場合と同様に、レキシカル・レベルが1”t’
lる他の枠内のデータb及びfはプログラムの一般的性
質上、上記枠りから枠Cへの変更の前に既に無効にされ
ているか又は掃き出されてしまっている。When the arithmetic unit 41 executes a type 4 executable statement, the arithmetic unit 41 indicates via the control bus 48 that it is executing a type 4 executable statement and via the lexical level information bus 50 the data to be invalidated. The lexical level ItB of
Buff candy%lJ'! The data is transferred to the management device 44. Upon receiving this, the buffer memory management device 44 designates the lexical level 55 for all pages for which "not free" is displayed in the free page flag 52 and "valid" is displayed in the data valid/invalid flag 56. value ft1
t5 is compared, and the empty page 7 jig 52 is set to "empty" for all matching pages. In the example in Figure 2,
In the case of a type 4 executable statement that changes the frame to frame C, a value of 1 is transferred from the arithmetic unit 41 as 4415, and the page containing data d in the frame with a lexical level equal to this value is marked as "free". ' will be changed to '. Note that, as in the case of type 2 executable statements, the lexical level is 1"t'
Due to the general nature of the program, the data b and f in the other frames have already been invalidated or swept out before the change from the above frame to frame C.
次に演算装置41がデータを参照する実行文を実行する
場合の動作について説明する。Next, the operation when the arithmetic unit 41 executes an executable statement that refers to data will be described.
演算装置41がデータを読込む実行文を実行する場合、
演算装置41は制御バス48を介してデータ読込み中で
あること、アドレスバス49ヲ介してデータのアドレス
adr1及びレキシカル・レベル情報ハス50を介して
データのレキシカル・レベル■4を転送する。これを営
けたパンツアメそり管理装置44は、空きページフラグ
52が「空きでない」旨を表示しているすべてのページ
について、その主記憶装置内アドレス55と指定された
データのアドレスαdr1を比較する。この比軟結果の
一致によシ演算装置41から要求されたデータがバッフ
ァメモリ42中に存在することが判明すれば、制御バス
47を介してバッファメモリ42を制御しここから演算
装置41に要求データを転送させ、演算装置41から受
信し保持していたレキシカル・レベルを消去する。When the arithmetic unit 41 executes an executable statement that reads data,
The arithmetic unit 41 transfers the information that data is being read via the control bus 48, the data address adr1 via the address bus 49, and the lexical level 4 of the data via the lexical level information hash 50. The pants management device 44 that has managed this compares the address 55 in the main storage device with the address αdr1 of the designated data for all pages whose empty page flag 52 indicates "not empty." If it is found that the data requested from the arithmetic unit 41 exists in the buffer memory 42 based on the coincidence of the comparative results, the buffer memory 42 is controlled via the control bus 47 and the data requested from the arithmetic unit 41 is requested from there. The data is transferred and the lexical level received and held from the arithmetic unit 41 is erased.
一方、演算装置41から要求されたデータがバックアメ
モリ42中にないことが判明した場合、バッファメモリ
管理装置44は、要求データが含まれているページを主
記憶装置45がら新たに読込むために、まずこれを読込
むべきバッファメモリ420ページを次のような優先順
位に従って選択する。まず空きページ72グ52に「空
き」が表示されているページを探し、存在すればこれを
選択する。「空き」のページが存在しないときは、デー
タ有効/無効7ラグ56に「無効」が表示されているペ
ージを探し、存在すればこれを選択する。「無効」のペ
ージも存在しないときは、LRU方式等任意の従来方式
に従って構成されているぺ−ジ入替え管理情報54に基
いて新たな読込みを行うべきページを選択する。On the other hand, if it is found that the data requested by the arithmetic device 41 is not in the backup memory 42, the buffer memory management device 44 first reads the page containing the requested data from the main storage device 45. The buffer memory 420 page to be read is selected according to the following priority order. First, search for a page with "Empty" displayed on the empty page 72g 52, and if it exists, select it. If an "empty" page does not exist, a page with "invalid" displayed in the data valid/invalid 7 lag 56 is searched for, and if it exists, it is selected. When there is no "invalid" page, a page to be newly read is selected based on page replacement management information 54 configured according to any conventional method such as the LRU method.
このようにしてページを選択したのち、ノくラフアメモ
リ管理装[44はアドレスバス58および一制御バス4
7及び51を介してそれぞれバックアメモリ42及び主
記憶装置43を制御し、要求されたデータが含まれてい
るページを主記憶装置45からデータバス46を介して
バックアメモリ42の上記選択されたページに転送させ
る。次いでバッファメモリ管理装[44は、バッファメ
モリ 42内に転送されたページに対して空きページフ
ラグ52を「空きでない」に設定し、主記憶装置内アド
レス53に上記転送されたページの主記憶装置内アドレ
スを設定し、レキシカル・レベル55に上記H4を設定
しかつデータ有効/無効フラグ56を「有効」に設定す
る。最後にバッファメモリ管理装置44は、要求された
データをデータノくス45を介して演算装置41に転送
させる。After selecting the page in this way, the memory management unit 44 is connected to the address bus 58 and the control bus 4.
The backup memory 42 and the main memory 43 are controlled via the data buses 7 and 51, respectively, and the page containing the requested data is transferred from the main memory 45 to the selected page of the backup memory 42 via the data bus 46. transfer to. Next, the buffer memory management unit [44] sets the free page flag 52 to "not free" for the page transferred into the buffer memory 42, and sets the main memory address 53 of the transferred page to the main memory address 53. The internal address is set, the lexical level 55 is set to H4, and the data valid/invalid flag 56 is set to "valid". Finally, the buffer memory management device 44 causes the requested data to be transferred to the arithmetic device 41 via the data node 45.
次に演算装置41がデータを書込む実行文を実行する場
合の動作について説明する。Next, the operation when the arithmetic unit 41 executes an executable statement for writing data will be described.
演算装置41がデータを書込む実行文を実行する場合、
演算装置41 はデータバス45を介してバッファメモ
リ45にデータを転送し、同時に制御バス48及びアド
レスバス4t?を介してそれぞれデータ書込み中でおる
ことを示す情報及びデータのアドレスadr2をバック
アメモリ管理装置44に転送する。これを受けたバック
アメモリ管理装置44は、空きページフラグ52に「空
きでない」旨が表示されているすべてのページについて
、その主記憶装置内アドレス55と上記アドレスαdr
2を比較する。この比較結果の一致によシ上記ベージが
バッファメモリ42中にあることが判明した場合にだけ
、バッファメモリ管理装置は制御バス47を介してバッ
ファメモリ42を制御し上記データを上記ページに書込
ませる。When the arithmetic unit 41 executes an executable statement to write data,
The arithmetic unit 41 transfers data to the buffer memory 45 via the data bus 45, and simultaneously transfers data to the control bus 48 and address bus 4t? The information indicating that data is being written and the address adr2 of the data are transferred to the backup memory management device 44 via the memory management device 44, respectively. Upon receiving this, the backup memory management device 44 checks the address 55 in the main storage device and the address αdr of all pages whose free page flag 52 indicates "not free".
Compare 2. Only when it is determined that the page is present in the buffer memory 42 based on a match between the comparison results, the buffer memory management device controls the buffer memory 42 via the control bus 47 to write the data to the page. Let it happen.
次にバックアメモリ管理装置44は、上記バッフアメそ
り上の書込みの有無を問わず、アドレス・バス58およ
び制御バス47及び51を介してバッファメモリ42及
び主記憶装置43のそれぞれを制御して書込むべきデー
タをデータバス46を介して転送し、そのデータを主記
憶装置46のアドレスadr2に書込ませる。このよう
に本実施例におけるデータ書込み動作は従来例とほぼ同
様である。Next, the backup memory management device 44 controls each of the buffer memory 42 and main storage device 43 to write via the address bus 58 and control buses 47 and 51, regardless of whether or not there is writing on the buffer memory. The data to be stored is transferred via the data bus 46, and the data is written to the address adr2 of the main storage device 46. In this way, the data write operation in this embodiment is almost the same as in the conventional example.
上述の実施例においては、スコープ規制によって無効に
なったデータをすべて一律にバックアメモリから掃き出
してしまうのではなく、タイプ3の実行文によって無効
となったデータについては引続くタイプ4の実行文によ
シ再び有効となシ使用される可能性を考慮して、データ
有効/無効フラグを無効に設定し、演算装置がデータを
要求したときには上記「無効」のフラグを有するデータ
をも探索の対象としている。このような構成によシヒッ
ト率の向上が期待できるが、掃き出すページを選択する
ためのオーバーヘッドが増加するという不利もある。In the above embodiment, instead of flushing out all data invalidated due to scope regulation from the backup memory, data invalidated by a type 3 executable statement is written to a subsequent type 4 executable statement. Considering the possibility that the data will be used again, the data valid/invalid flag is set to invalid, and when the arithmetic unit requests data, the data with the above-mentioned "invalid" flag is also searched. It is said that Although such a configuration can be expected to improve the hit rate, it also has the disadvantage of increasing overhead for selecting pages to be flushed out.
9このようなオーバヘッドを減少させるという立場から
祉第6図示のシステムにおいてデータ有効/無効フラグ
を一切除去してしまい、タイプ6の実行文によシ無効と
なったで−タについてもタイプ2の実行文によシ無効と
なったデータと同様に、バックアメモリから一律に掃き
出してしまう構成とすることもできる。勿論この構成に
おいては、空きページフラグに「空きでない」旨が表示
されているページだけがバックアメモリ内の存否が探索
される対象となる。9. From the standpoint of reducing such overhead, we have completely removed the data valid/invalid flag in the system shown in Figure 6, and the type 2 executable statement has become invalid for the type 6 executable statement. Similarly to data that has become invalid due to an executable statement, it is also possible to have a configuration in which all data is flushed out from the backup memory. Of course, in this configuration, only pages for which "not free" is displayed in the free page flag are searched for presence or absence in the backup memory.
あるいはまた、上記両方式の折衷案として、第3図示の
構成においてバッファメモリ管理装置44内に1ビツト
の選択フラグを格納しておく領域57を設け、この選択
フラグがzl”である場合にはデータ有効/無効フラグ
を利用する動作を行なわせ一方この選択フラグがIO″
である場合にはデータ有効/無効フラグを無視した動作
を行わせる構成とすることもできる。この構成によれば
、演算装置が実行するプログラムの動特性に応じて臨機
応変に選択フラグを変更することによシ、ヒツト率とオ
ーバヘッドとの調和を取ることができるという・利点が
ある。Alternatively, as a compromise between the above two methods, an area 57 for storing a 1-bit selection flag is provided in the buffer memory management device 44 in the configuration shown in FIG. Perform an operation using the data valid/invalid flag, while this selection flag is IO''
In this case, the configuration may be such that an operation is performed that ignores the data valid/invalid flag. This configuration has the advantage that it is possible to balance the hit rate and overhead by flexibly changing the selection flag according to the dynamic characteristics of the program executed by the arithmetic unit.
さらにまた、タイプ4の実行文において枠りを枠Cに変
更する場合(第2図)、再び有効となるべき枠B内のデ
ータbも無効又は掃き出されるという問題もあるので、
例えばタイプ4の実行文についてはタイプ3の実行文に
よって無効となったデータを再び有効にする構成、すな
わちタイプ3の実行によシスコープ規制に基き無効とな
るページについて、タイプ3の実行文の順序を記憶して
おき、タイプ4の実行文において、最も新しく実行した
タイプ5の実行文で無効となったデータを再び有効にす
る構成とすることもできる。Furthermore, when changing the frame to frame C in a type 4 executable statement (Figure 2), there is also the problem that data b in frame B, which should become valid again, is also invalidated or wiped out.
For example, for type 4 executable statements, the configuration re-enables data invalidated by type 3 executable statements, that is, for pages that become invalid due to type 3 execution based on Sysscope regulations, the order of type 3 executable statements It is also possible to have a configuration in which data that has been invalidated by the most recently executed type 5 executable statement in the type 4 executable statement is made valid again.
以上詳細に説明したように、本発明はスコープ規制に基
き無効となるページの一部又は全部に対して空きページ
フラグを「空き」に変更し、バッファメモリから掃き出
すページを選択する際にはまず最初に空きページフラグ
に基いて、最後に従来公知の適宜なページ入替え管理情
報に基いてこれを行う構成であるから、従来方式に比べ
てヒツト率が向上しバッファメモリの有用性倉一段と高
めることができる。As explained in detail above, the present invention changes the free page flag to "free" for some or all of the pages that are invalidated based on scope regulations, and when selecting pages to be flushed from the buffer memory, first Since this is first performed based on the free page flag and finally based on conventionally known appropriate page replacement management information, the hit rate is improved compared to the conventional method, and the usability of the buffer memory is further increased. I can do it.
第1図は従来方式が適用されるシステムのブロック図、
第2図はスコープ規制を説明するための概念図、第3図
は本発明方式の一実施例を適用するシステムのブロック
図。
41−・・演算装置、42 ・・・バッファメモリ、4
5・・・主記憶装置、 44・・・バックアメモリ管理
装置、45゜46・・・データバス、47,48.51
−・・制御バス、49.58・・・アドレスバス、50
−・・レキシカル・レベル情報バス、52・・・空きペ
ージフラグ、55・・・主記憶装置内アドレス、54・
・・ページ入替え管理情報、55・・・レキシカル・レ
ベル、56・・・データ有効/m 効7ラグ、57・・
・選択フラグ。
特許出願人 富士電機製造株式会社外1名代理人弁理士
玉蟲久五部外5名
第1図
第2Wi
第3図Figure 1 is a block diagram of a system to which the conventional method is applied.
FIG. 2 is a conceptual diagram for explaining scope regulation, and FIG. 3 is a block diagram of a system to which an embodiment of the present invention is applied. 41-...Arithmetic unit, 42...Buffer memory, 4
5... Main storage device, 44... Backup memory management device, 45° 46... Data bus, 47, 48.51
-...Control bus, 49.58...Address bus, 50
- Lexical level information bus, 52... Empty page flag, 55... Address in main memory, 54...
...Page replacement management information, 55...Lexical level, 56...Data valid/m effect 7 lag, 57...
- Selection flag. Patent applicant: 1 person outside of Fuji Electric Manufacturing Co., Ltd. Representative: 5 people outside of the office
Claims (1)
グ、主記憶装置内アドレス、レキシカル・レベル及び適
宜なページ入替え管理情報を含むバックアメモリ管理情
報をバッファメモリ管理装置内に格納し、演算装置はレ
キシカル・レベルを変更する実行文を実行するに際しこ
の実行文の種類及びレキシカル・レベルをバッファメモ
リ管理装置に転送し、これを受けたバッファメモリ管理
装置はスコープ規制に基き無効となるページの一部又は
全部に対して空きページフラグを「空き」に変更し、演
算装置がデータ読込みの実行文を実行する場合において
このデータを含むページがバックアメモリ内に存在しな
いときは、バッファメモリ管理装置はまず最初に空きペ
ージフラグに基いて、最後に前記適宜なページ入替”え
管理情報に基いてページ入替えを行うべきバッファメモ
リ内のページを選択することを特徴とするバッファメモ
リ管理方式。1. Backup memory management information including free page flags, addresses in the main memory, lexical levels, and appropriate page replacement management information is stored in the buffer memory management device for each page in the buffer memory, and the arithmetic unit stores the lexical When executing an executable statement that changes the level, the type and lexical level of this executable statement are transferred to the buffer memory management device, and the buffer memory management device that receives this transfers some or all of the pages that are invalidated based on scope regulations. When the free page flag is changed to "free" and the arithmetic unit executes an executable statement to read data, if the page containing this data does not exist in the backup memory, the buffer memory management unit first A buffer memory management method characterized in that, based on an empty page flag, a page in the buffer memory is finally selected for page replacement based on the appropriate page replacement management information.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP56191564A JPS5894182A (en) | 1981-11-28 | 1981-11-28 | Buffer memory managing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP56191564A JPS5894182A (en) | 1981-11-28 | 1981-11-28 | Buffer memory managing system |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS5894182A true JPS5894182A (en) | 1983-06-04 |
JPS612979B2 JPS612979B2 (en) | 1986-01-29 |
Family
ID=16276763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP56191564A Granted JPS5894182A (en) | 1981-11-28 | 1981-11-28 | Buffer memory managing system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS5894182A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6316351A (en) * | 1986-07-08 | 1988-01-23 | Nec Corp | Replacement system |
-
1981
- 1981-11-28 JP JP56191564A patent/JPS5894182A/en active Granted
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6316351A (en) * | 1986-07-08 | 1988-01-23 | Nec Corp | Replacement system |
Also Published As
Publication number | Publication date |
---|---|
JPS612979B2 (en) | 1986-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3281893B2 (en) | Method and system for implementing a cache coherency mechanism utilized within a cache memory hierarchy | |
US6581142B1 (en) | Computer program product and method for partial paging and eviction of microprocessor instructions in an embedded computer | |
US6131145A (en) | Information processing unit and method for controlling a hierarchical cache utilizing indicator bits to control content of prefetching operations | |
US20080235477A1 (en) | Coherent data mover | |
US5893148A (en) | System and method for allocating cache memory storage space | |
JPH09259033A (en) | Buffer write method | |
JPH11143775A (en) | Cache memory system | |
CN113826085A (en) | Write streaming in a processor | |
US20120226832A1 (en) | Data transfer device, ft server and data transfer method | |
KR100443320B1 (en) | Reclaim space reserve for a compressed memory system | |
GB2271653A (en) | Multi-level cache system | |
EP0173909A2 (en) | Look-aside buffer least recently used marker controller | |
EP1103898A2 (en) | Microprocessor and memory | |
US6829693B2 (en) | Auxiliary storage slot scavenger | |
JPS5894182A (en) | Buffer memory managing system | |
JPS5848289A (en) | Buffer memory controlling system | |
JPS6336538B2 (en) | ||
JP2000047942A (en) | Device and method for controlling cache memory | |
JPS644214B2 (en) | ||
JPH01251248A (en) | Cache control system for stack data structure | |
JP3161422B2 (en) | Microcomputer | |
JPH01173240A (en) | Buffer memory management system | |
JPH02253358A (en) | Cache memory | |
JPH04123151A (en) | System bus | |
JPS62197843A (en) | File access system |