JPH0255814B2 - - Google Patents
Info
- Publication number
- JPH0255814B2 JPH0255814B2 JP56071468A JP7146881A JPH0255814B2 JP H0255814 B2 JPH0255814 B2 JP H0255814B2 JP 56071468 A JP56071468 A JP 56071468A JP 7146881 A JP7146881 A JP 7146881A JP H0255814 B2 JPH0255814 B2 JP H0255814B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data
- store
- memory
- transfer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
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)
Description
本発明は、キヤツシユメモリを有する情報処理
装置におけるキヤツシユストア方式に関し、特に
ストアワツプ方式を採用している場合のキヤツシ
ユミスヒツト時におけるキヤツシユメモリへのス
トア方式に関する。
従来、キヤツシユメモリを備えて主記憶装置の
情報のうち使用度の高い部分をブロツク単位でキ
ヤツシユメモリに蓄えておいて処理の迅速化を図
る情報処理装置では、ストア要求時にキヤツシユ
ミスヒツト(キヤツシユに登録されていないこ
と)が検出されると、キヤツシユへの登録はせず
に主記憶装置へのみストアする方式がある。この
ような従来の方式は、新しいデータがキヤツシユ
に登録されないため、ストアデータに対する後続
の参照時にキヤツシユミスヒツトとなり、キヤツ
シユのヒツト率が低下するという欠点がある。ま
た、キヤツシユにのみストアさせておき、そのブ
ロツクがキヤツシユから消去されるときに初めて
主記憶装置の更新を行うメモリスワツプ方式(情
報処理Vo1.21No.4pp336参照)も知られているが、
この場合は、ストア要求時にキヤツシユミスヒツ
トが検出されると、主記憶装置からストアアドレ
スを含むブロツクをキヤツシユへ一旦読出した後
該キヤツシユのブロツクにストアするようにして
いる。このため、主記憶装置からキヤツシユへの
ブロツク転送が必要であるから、その間キヤツシ
ユへのアクセスは大幅に制限されるという欠点が
ある。特に、ストア要求が連続するような場合は
性能低下が著しい。
本発明の目的は、上述の従来の欠点を解決し、
大容量キヤツシユ(例えば主記憶容量の1/10程度
の容量)を有するような装置で、大量のデータを
連続するような場合(例えばムーブ・ロング命
令)においても充分使用することができ、キヤツ
シユミスヒツト時における主記憶装置からの転送
を最小限にしてキヤツシユへのストアを行うよう
にして所要時間を短縮したキヤツシユストア方式
を提供することにある。なお、本方式はメモリス
ワツプ方式によるものであるからキヤツシユヒツ
ト率が低下することはない。
本発明は、共用主記憶装置のデータの一部をブ
ロツク単位に保持するキヤツシユメモリをそれぞ
れ有する複数の情報処理装置におけるキヤツシユ
ミスヒツト時に、前記複数の情報処理装置の内の
ある情報処理装置のキヤツシユメモリへ前記共用
主記憶装置の連続するアドレスのデータを転送し
てストアするキヤツシユストア方式において、ス
トア要求の開始アドレスおよび終了アドレスを含
む二つのブロツクデータを転送しこの二つのブロ
ツクデータにはさまれた中間のブロツクデータの
全部または一部の転送を省略することを特徴とす
る。
次に、本発明について、図面を参照して詳細に
説明する。
図は本発明の一実施例を示すブロツク図であ
る。すなわち、ストア要求元(例えば演算制御部
等)とのインタフエース1〜4および主記憶装置
とのインタフエース5〜9を有する。ストア要求
元からは、インタフエース1を介して要求コード
が入力され、同時にインタフエース2にストア開
始アドレスが入力される。またインタフエース3
には書込バイトの位置指定を伴つた要求コード1
つ当り1ワード(8バイト)のデータが入力し書
込データバツフア70に蓄積される。インタフエ
ース1から入力した要求コードはバツフアレジス
タ20を介して要求コードレジスタ30に保持さ
れる。本実施例においては、主記憶装置からの転
送をできるだけ少なくするために、要求コード中
に、キヤツシユミスヒツトでもキヤツシユメモリ
への書込みを行うことを示すキヤツシユストアフ
ラグビツトCSFと、一連のストア動作の開始を示
すストア開始フラグビツトSSFおよびストア終了
を示すストア終了フラグビツトSEFを含んでい
る。
また、インタフエース2から入力した開始アド
レス(論理アドレス)は、要求アドレスレジスタ
21に保持された後アドレス変換バツフア22に
よつて物理アドレスに変換されて、要求アドレス
レジスタ31に保持される。
転送回数判定回路40は、前記要求コードレジ
スタ30のうちストア開始フラグビツトSSFおよ
び要求アドレスレジスタ31のブロツク内ワード
アドレス(本実施例ではキヤツシユのブロツクサ
イズを32バイトとしているのでアドレスの下位5
ビツトのうち上位2ビツト)を参照して転送回数
を定める。転送を1回に8バイトずつ行なう場合
は、ブロツク内ワードアドレスと転送回数の関係
は第1表に示すようになる。
The present invention relates to a cache store method in an information processing apparatus having a cache memory, and particularly to a store method in the cache memory when a cache miss occurs when a store swap method is adopted. Conventionally, information processing devices equipped with a cache memory store frequently used portions of information in the main memory in the cache memory in blocks to speed up processing. If it is detected that the information is not registered in the cache, there is a method in which the information is stored only in the main memory without being registered in the cache. This conventional method has the disadvantage that new data is not registered in the cache, resulting in a cache miss when the stored data is subsequently referenced, reducing the cache hit rate. Also known is a memory swap method (see Information Processing Vol. 1.21 No. 4pp336) in which a block is stored only in the cache and the main memory is updated only when the block is deleted from the cache.
In this case, when a cache miss is detected at the time of a store request, a block containing the store address is read out from the main memory to the cache and then stored in the block of the cache. This requires a block transfer from the main memory to the cache, which has the disadvantage that access to the cache is severely restricted during that time. Particularly, when store requests are made consecutively, the performance deteriorates significantly. The purpose of the present invention is to solve the above-mentioned conventional drawbacks and
A device with a large capacity cache (for example, about 1/10 of the main memory capacity), which can be used satisfactorily even when a large amount of data is to be stored continuously (for example, a move long instruction). To provide a cache store method that reduces the required time by minimizing transfer from a main storage device when a mishit occurs and storing to a cache. Note that since this method is based on a memory swap method, the cache rate does not decrease. The present invention provides a system that, when a cache mishit occurs in a plurality of information processing apparatuses each having a cache memory for holding a portion of data in a shared main storage device in block units, an information processing apparatus among the plurality of information processing apparatuses In the cache store method, in which data at consecutive addresses in the shared main storage device is transferred and stored in the cache memory of It is characterized by omitting the transfer of all or part of the intermediate block data sandwiched between the blocks. Next, the present invention will be explained in detail with reference to the drawings. The figure is a block diagram showing one embodiment of the present invention. That is, it has interfaces 1 to 4 with a store request source (for example, an arithmetic control unit, etc.) and interfaces 5 to 9 with a main storage device. A request code is input from the store requester through the interface 1, and at the same time, a store start address is input into the interface 2. Also interface 3
request code 1 with the location of the write byte
One word (8 bytes) of data is input per write data buffer 70 and stored in the write data buffer 70. The request code input from the interface 1 is held in the request code register 30 via the buffer register 20. In this embodiment, in order to minimize the number of transfers from the main memory, the request code includes a cache store flag bit CSF indicating that even a cache miss will cause a write to the cache memory, and a series of cache store flag bits CSF. It includes a store start flag bit SSF indicating the start of a store operation and a store end flag bit SEF indicating the end of the store. Further, the start address (logical address) input from the interface 2 is held in the request address register 21 and then converted into a physical address by the address conversion buffer 22 and held in the request address register 31. The transfer count determination circuit 40 determines the store start flag bit SSF of the request code register 30 and the word address within the block of the request address register 31 (in this embodiment, the block size of the cache is 32 bytes, so the lower 5 of the address)
The number of transfers is determined by referring to the upper two bits. When transferring 8 bytes at a time, the relationship between the intra-block word address and the number of transfers is as shown in Table 1.
【表】
該転送回数は、ブロツク転送制御41に与えら
れ、保持される。一方、ブロツク転送制御41
は、キヤツシユストアフラグビツトCSFおよびス
トア開始フラグSSFが共に“1”であり、かつ、
キヤツシユデイレクトリ50の出力と要求アドレ
スレジスタ31の出力とが比較回路51で比較さ
れミスヒツトが検出されて制御線503が“1”
にセツトされたときは、インタフエース7を介し
て主記憶装置にブロツク転送を要求する。このと
き、ブロツク転送アドレスは、要求アドレスレジ
スタ31から、インタフエース8および9を介し
て主記憶装置へ送られる。主記憶装置からの読出
しデータ(ブロツクの最初から8バイトずつ)
は、インタフエース6を介して選択回路71に入
力させる。また、リプライ信号は、インタフエー
ス5を介して前記ブロツク転送制御41に入力さ
せる。ブロツク転送制御41は、リプライ信号の
回数をカウントし、前記転送回数判定回路40か
ら与えられた転送回数と比較し、一枚の有無をキ
ヤツシユメモリ書込制御80に報告する。キヤツ
シユメモリ書込制御80は、リプライ信号の回数
が転送指示回数と一致するまでは、インタフエー
ス6からのリプライデータ(8バイト)をキヤツ
シユメモリ60へ書込むように選択回路71を制
御する。そして、リプライ信号の回数が転送指向
回数と一致したとき、すなわち最終の転送時にお
いては、前記書込データバツフア70のデータ
と、主記憶装置からのリプライデータとを書込バ
イト位置指定70−1の各指示ビツトに対応させ
てキヤツシユメモリ60へ書込むように選択回路
71を制御する。選択回路71によるキヤツシユ
メモリへの書込データの選択は、第2表に示すよ
うになる。[Table] The number of transfers is given to the block transfer control 41 and held. On the other hand, the block transfer control 41
The cache store flag bit CSF and the store start flag SSF are both “1”, and
The comparator circuit 51 compares the output of the cache directory 50 and the output of the request address register 31, detects a mishit, and sets the control line 503 to "1".
When set to , a block transfer is requested to the main storage device via the interface 7. At this time, the block transfer address is sent from the request address register 31 to the main memory via interfaces 8 and 9. Data read from main memory (8 bytes each from the beginning of the block)
is input to the selection circuit 71 via the interface 6. Further, the reply signal is inputted to the block transfer control 41 via the interface 5. The block transfer control 41 counts the number of reply signals, compares it with the number of transfers given from the transfer count determination circuit 40, and reports the presence or absence of one sheet to the cache memory write control 80. The cache memory write control 80 controls the selection circuit 71 to write the reply data (8 bytes) from the interface 6 to the cache memory 60 until the number of reply signals matches the number of transfer instructions. . When the number of reply signals matches the number of transfer directions, that is, at the time of final transfer, the data in the write data buffer 70 and the reply data from the main storage device are transferred to the write byte position designation 70-1. The selection circuit 71 is controlled to write into the cache memory 60 in correspondence with each instruction bit. The selection of data to be written into the cache memory by the selection circuit 71 is as shown in Table 2.
【表】
すなわち、ストア開始のアドレスを含むブロツ
クの最初から1ワード(8バイト)ずつ主記憶装
置から転送されてキヤツシユメモリ60に書込ま
れ、最後の転送時には書込バイト位置指定に対応
して第2表に示すように転送データ又は書込デー
タバツフア70からのデータが書込まれる。
次に、要求元からの要求コードのキヤツシユス
トアフラグビツトCSFが“1”であり、他のフラ
グビツトが“0”である要求コードが(前述のス
トア開始フラグビツトSSFが“1”である要求コ
ードに続いて)入力して来ると、該要求コードは
レジスタ30にストアされ、要求アドレスが要求
アドレスレジスタ31へセツトされる。このと
き、ブロツク転送制御41は、キヤツシユミスヒ
ツトであつても転送要求を出さない。そして、メ
モリ書込制御80に、制御線403によつて書込
データバツフア70からの書込みデータを選択回
路71で選択してキヤツシユメモリ60へ書込む
ことを通知する。従つて、一連のストア動作のう
ち、最初と最後を除く(途中の)要求に対して
は、キヤツシユミスヒツトであつても、キヤツシ
ユヒツトであつても同一の動作を行なうことにな
る。
そして、最後に、一連のストア連続要求のうち
最後の要求コードが、要求コードレジスタ30に
セツトされると、該要求コードのキヤツシユスト
アフラグビツトCSFは“1”であり、ストア終了
フラグビツトSEFが“1”であることから、転送
回数判定回路40は、要求アドレスレジスタ31
のブロツク内ワードアドレス(下位5ビツトのう
ち上位2ビツト)を参照して下記第3表により転
送回数を決定する。[Table] In other words, one word (8 bytes) from the beginning of the block including the store start address is transferred from the main memory and written to the cache memory 60, and at the final transfer, the data is transferred in response to the write byte position specification. Transfer data or data from the write data buffer 70 is written as shown in Table 2. Next, the request code in which the cache store flag bit CSF of the request code from the request source is "1" and the other flag bits are "0" (the above-mentioned request code in which the store start flag bit SSF is "1") is ), the request code is stored in register 30 and the request address is set in request address register 31. At this time, the block transfer control 41 does not issue a transfer request even if there is a cache miss. Then, the memory write control 80 is notified through the control line 403 that the selection circuit 71 selects the write data from the write data buffer 70 and writes it into the cache memory 60. Therefore, for requests other than the first and last (in the middle) of a series of store operations, the same operation is performed whether the request is a cache miss or a cache hit. Finally, when the last request code of the series of consecutive store requests is set in the request code register 30, the cache store flag bit CSF of the request code is "1", and the store end flag bit SEF is set to "1". Since it is “1”, the transfer count determination circuit 40 determines that the request address register 31
The number of transfers is determined by referring to the word address within the block (upper 2 bits of the lower 5 bits) according to Table 3 below.
【表】
該転送回数は、転送制御41に与えられ保持さ
れるが、要求コードレジスタ30のうちキヤツシ
ユストアフラグビツトCSFおよびストア終了フラ
グビツトSEFが共に“1”であり、かつ、キヤツ
シユデイレクトリ50の出力と要求アドレスレジ
スタ31の出力とが比較判定回路51によりミス
ヒツトが検出された場合に限り有効となる。転送
制御41が上記有効性を判別し、有効のときは、
インタフエース7を介して主記憶装置へ転送要求
を出す。このとき、要求アドレスは、要求アドレ
スレジスタ31からインタフエース8,9を介し
て主記憶装置へ送られている。主記憶装置から
は、該アドレスを含むブロツク内ワード(8バイ
ト)がリプライデータとしてインタフエース6を
介して選択回路71に送られ、次々と1ワードず
つ転送される。また、リプライ信号は、インタフ
エース5を介して転送制御41に入力される。転
送制御41は、保持している転送指示回数と、リ
プライ信号の回数とを比較する。最初のリプライ
信号であれば、キヤツシユメモリ書込制御80に
その旨報告し、キヤツシユメモリ書込制御80
は、選択回路71を制御して、要求元からの書込
みデータを保持する書込みデータバツフア70の
データWを書込バイト位置指定70−1に従つて
選択してキヤツシユメモリ60に書込ませ、他の
部分へは主記憶装置からの転送データMを選択し
て書込ませる。書込バイト位置指定(8ビツト)
と選択回路71の出力(8バイト)との関係は下
記第4表の通りである。[Table] The number of transfers is given to the transfer control 41 and held, but if the cache store flag bit CSF and the store end flag bit SEF of the request code register 30 are both "1", and the cache directory 50 The output of the request address register 31 becomes valid only when a mishit is detected by the comparison/determination circuit 51. The transfer control 41 determines the validity, and when it is valid,
A transfer request is issued to the main storage device via the interface 7. At this time, the requested address is sent from the requested address register 31 to the main storage device via the interfaces 8 and 9. From the main memory, the words (8 bytes) in the block containing the address are sent as reply data to the selection circuit 71 via the interface 6, and are transferred word by word one after another. Further, the reply signal is input to the transfer control 41 via the interface 5. The transfer control 41 compares the number of transfer instructions held and the number of reply signals. If it is the first reply signal, it is reported to the cache memory write control 80, and the cache memory write control 80
controls the selection circuit 71 to select the data W in the write data buffer 70 holding the write data from the request source according to the write byte position designation 70-1 and write it into the cache memory 60; Transfer data M from the main storage device is selected and written into the section. Write byte position specification (8 bits)
The relationship between and the output (8 bytes) of the selection circuit 71 is shown in Table 4 below.
【表】【table】
Claims (1)
位に保持するキヤツシユメモリをそれぞれ有する
複数の情報処理装置におけるキヤツシユミスヒツ
ト時に、前記複数の情報処理装置の内のある情報
処理装置のキヤツシユメモリへ前記共用主記憶装
置の連続するアドレスのデータを転送してストア
するキヤツシユストア方式において、ストア要求
の開始アドレスおよび終了アドレスを含む二つの
ブロツクデータを転送しこの二つのブロツクデー
タにはさまれた中間のブロツクデータの全部また
は一部の転送を省略することを特徴とするキヤツ
シユストア方式。1. When a cache mishit occurs in a plurality of information processing apparatuses each having a cache memory for holding a portion of data in a shared main memory in units of blocks, the cache of one of the plurality of information processing apparatuses is In the cache store method, which transfers and stores data at consecutive addresses in the shared main storage device to memory, two blocks of data including the start address and end address of the store request are transferred, and the block data sandwiched between these two blocks of data is transferred. A cache storage method characterized by omitting the transfer of all or part of intermediate block data.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP56071468A JPS57189385A (en) | 1981-05-14 | 1981-05-14 | Cashe storage system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP56071468A JPS57189385A (en) | 1981-05-14 | 1981-05-14 | Cashe storage system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS57189385A JPS57189385A (en) | 1982-11-20 |
| JPH0255814B2 true JPH0255814B2 (en) | 1990-11-28 |
Family
ID=13461454
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP56071468A Granted JPS57189385A (en) | 1981-05-14 | 1981-05-14 | Cashe storage system |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS57189385A (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0926912A (en) * | 1995-07-07 | 1997-01-28 | Nec Corp | Storage processing system for cache memory |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS53148344A (en) * | 1977-05-31 | 1978-12-23 | Fujitsu Ltd | Data storage system to buffer memory unit |
| JPS5475231A (en) * | 1977-11-29 | 1979-06-15 | Fujitsu Ltd | Buffer memory control system |
-
1981
- 1981-05-14 JP JP56071468A patent/JPS57189385A/en active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS57189385A (en) | 1982-11-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CA1176382A (en) | Method and system for handling sequential data in a hierarchical store | |
| JP2571342B2 (en) | System and method for storing data in cache memory | |
| EP0288649B1 (en) | Memory control subsystem | |
| EP0106212B1 (en) | Roll mode for cached data storage | |
| US4853846A (en) | Bus expander with logic for virtualizing single cache control into dual channels with separate directories and prefetch for different processors | |
| CA1290073C (en) | Move-out queue buffer | |
| JPS624745B2 (en) | ||
| JPS5821353B2 (en) | Channel-to-memory writing device | |
| US5446844A (en) | Peripheral memory interface controller as a cache for a large data processing system | |
| WO2001029674A1 (en) | Multi-processor system and method of accessing data therein | |
| JPH04336641A (en) | Data cache and method for use in processing system | |
| JPH0255814B2 (en) | ||
| JPH044617B2 (en) | ||
| JP2852232B2 (en) | Computer | |
| JP2703255B2 (en) | Cache memory writing device | |
| EP0567708A1 (en) | Apparatus for optimizing cache memory invalidation | |
| JP2972451B2 (en) | Cache memory control method by hardware control software | |
| JPH07152650A (en) | Cache control unit | |
| JP2636746B2 (en) | Input/Output Cache | |
| JPH0363741A (en) | disk cache device | |
| JPH0344753A (en) | Data transfer system | |
| JPH03225541A (en) | Cache memory device | |
| JPH01276349A (en) | Disk cache system | |
| JPH0148571B2 (en) | ||
| JPS62274349A (en) | Data processing system |