JPH11282750A - Cache memory device and control method - Google Patents
Cache memory device and control methodInfo
- Publication number
- JPH11282750A JPH11282750A JP10079610A JP7961098A JPH11282750A JP H11282750 A JPH11282750 A JP H11282750A JP 10079610 A JP10079610 A JP 10079610A JP 7961098 A JP7961098 A JP 7961098A JP H11282750 A JPH11282750 A JP H11282750A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data
- attribute information
- write
- line
- 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.)
- Withdrawn
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、特に仮想記憶シス
テムを用いない計算機システムに好適な、キャッシュメ
モリ装置及び制御方法に関するものである。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a cache memory device and a control method particularly suitable for a computer system not using a virtual storage system.
【0002】[0002]
【従来の技術】一般に計算機システムにおいては、プロ
セッサ内のCPU(central processing unit)コア部か
ら発行される命令フェッチの要求、またはデータ・アク
セスの要求等を、CPUコア部以外の周辺部分がサービ
スすることにより処理が進められる。ここで、CPUコ
ア部以外の周辺部分には、命令やデータ等を格納するR
OM/RAM等のメモリ装置、メモリ装置とCPUコア
部とをインタフェースするバス・インタフェース部等が
含まれる。また、メモリ管理機構(MMU:memory mana
gement unit)や、キャッシュ・メモリが含まれる場合
もある。2. Description of the Related Art In general, in a computer system, a request for an instruction fetch or a request for data access issued from a CPU (central processing unit) core in a processor is serviced by peripheral parts other than the CPU core. The process is thereby advanced. Here, R, which stores instructions, data, and the like, are stored in peripheral portions other than the CPU core unit.
It includes a memory device such as an OM / RAM, a bus interface unit that interfaces the memory device with the CPU core unit, and the like. In addition, a memory management mechanism (MMU: memory mana
gement unit) or cache memory.
【0003】MMUは、仮想記憶システムを用いる計算
機システムにおいて用いられるメモリ管理機構である。
MMUは、CPUコアが命令フェッチ要求やデータ・ア
クセス要求を発行したときに、その対象である命令やデ
ータを指し示すために発行された論理的なアドレス(仮
想アドレス)を、その計算機システム上の命令やデータ
の実際の所在を示す物理アドレスに変換するものであ
る。このような仮想アドレスから物理アドレスへの変換
は、一般にアドレス変換テーブルと呼ばれる表を仮想ア
ドレスでひくことにより行われる。アドレス変換テーブ
ルの個々のエントリには、その仮想アドレスに対応する
物理アドレスの値はもちろんのこと、書き込み禁止、キ
ャッシング可/不可等の属性値が含まれることが多い。
そして、そのような計算機システムにおいては、仮想ア
ドレスから物理アドレスへのアドレス変換時に属性をチ
ェックすることが可能であり、このチェックに基づいて
不正な書き込みを防止したり、キャッシュ・メモリへの
格納を制御したりできる。The MMU is a memory management mechanism used in a computer system using a virtual storage system.
When the CPU core issues an instruction fetch request or a data access request, the MMU replaces the logical address (virtual address) issued to indicate the instruction or data to be processed with the instruction on the computer system. And a physical address indicating the actual location of the data. Such a conversion from a virtual address to a physical address is performed by drawing a table generally called an address conversion table with a virtual address. Each entry of the address translation table often includes not only the value of the physical address corresponding to the virtual address but also attribute values such as write-protection and caching enabled / disabled.
In such a computer system, attributes can be checked at the time of address conversion from a virtual address to a physical address. Based on this check, illegal writing can be prevented, and storage in a cache memory can be prevented. Control.
【0004】キャッシュ・メモリは、命令フェッチの要
求やデータ・アクセスの要求に対し、高速なサービスを
可能とするものである。キャッシュ・メモリはタグ・ア
レイ部とデータ・アレイ部とから成る。アクセス時、発
行されたアドレスと自身のタグ・アレイ部に格納された
アドレスとを比較し、それらが一致した場合(キャッシ
ュ・ヒット)、データ・アレイ部に格納された対応デー
タでそのアクセスに対して高速にサービスを行う。アド
レスの比較が一致しない場合(キャッシュ・ミス)、メ
モリ装置からアクセス対象のデータが含まれるデータ・
ブロックのロードを行う(キャッシュ・ミス処理)。そ
の際、タグ・アレイ部の対応エントリには、そのデータ
・ブロックのアドレスが格納される。[0004] The cache memory enables high-speed service for instruction fetch requests and data access requests. The cache memory includes a tag array section and a data array section. At the time of access, the issued address is compared with the address stored in its own tag array unit, and if they match (cache hit), the corresponding data stored in the data array unit is used for the access. Service at high speed. If the address comparisons do not match (cache miss), the data containing the data to be accessed from the memory device
Load the block (cache miss processing). At this time, the address of the data block is stored in the corresponding entry of the tag array section.
【0005】MMUが備えられ、仮想記憶システムを用
いる計算機システムの場合には、仮想アドレスから物理
アドレスへのアドレス変換時に当該アドレスのデータの
属性がチェックされる。従って、そのような計算機シス
テムがキャッシュ・メモリを備える場合には、アドレス
変換時に得られる属性を、不正なアクセスの防止等のた
めに用いるだけでなく、キャッシュの制御に用いること
もできる。例えば、アドレス変換テーブルの各エントリ
に、メモリ装置中にあるデータ本体の更新方法、ライト
・スルー/ライト・バックを指定できるようにすること
で、ライト・アクセス時のキャッシュ・メモリの振舞い
を細かく制御することが可能である。In the case of a computer system having an MMU and using a virtual storage system, the attribute of the data of the address is checked at the time of address conversion from a virtual address to a physical address. Therefore, when such a computer system includes a cache memory, the attribute obtained at the time of address translation can be used not only for preventing unauthorized access, but also for controlling the cache. For example, the behavior of the cache memory at the time of write access can be finely controlled by allowing each entry of the address translation table to specify a method of updating the data body in the memory device and a write-through / write-back. It is possible to
【0006】[0006]
【発明が解決しようとする課題】一方、小規模な計算機
システムや特殊用途の計算機システムの場合、仮想記憶
システムが用いられないことが多い。そのような計算機
システムの場合、アドレス変換そのものが不要となるの
で、アクセス毎の属性のチェック等も無い。従って、上
述のようなキャッシュ・メモリのデータ単位の細やかな
制御は難しい。このため、例えば、ディスプレイ装置の
表示データ等、ライト・アクセス時に即座にデータ本体
の更新が必須なデータが処理データに含まれる場合、
比較的大きな単位でデータ領域を分割し、かつその比較
的大きな領域単位でキャッシングを行う/行わないとい
う属性を静的に設定するようにし、更新の即時性が要求
される領域に対してはキャッシング不可と設定する、ま
たは、処理領域全体をライト・スルーと設定する、と
いった方法を採用するしか術がなく、キャッシュ・メモ
リ制御における高速性及び柔軟性が犠牲になっていた。On the other hand, in the case of a small-scale computer system or a special-purpose computer system, a virtual storage system is often not used. In the case of such a computer system, the address translation itself is not required, and there is no need to check the attributes for each access. Therefore, it is difficult to finely control the data unit of the cache memory as described above. For this reason, for example, when data that requires updating of the data body immediately upon write access, such as display data of a display device, is included in the processing data,
The data area is divided into relatively large units, and the attribute of performing / not performing caching is set statically in the relatively large area unit. Caching is performed for an area requiring immediate update. There is no other way than to adopt a method of setting it as impossible or setting the whole processing area as write-through, which sacrifices high speed and flexibility in cache memory control.
【0007】本発明は上記の課題に鑑みてなされたもの
であり、アドレス変換機能を持たないシステムにおいて
もキャッシュ・データの属性を細かい単位で設定可能と
し、高速かつ柔軟なキャッシュ・データ制御を可能とす
るキャッシュメモリ装置及びその制御方法を提供するこ
とを目的とする。SUMMARY OF THE INVENTION The present invention has been made in view of the above problems, and enables a high-speed and flexible cache data control even in a system without an address translation function by enabling the attribute of cache data to be set in small units. And a control method therefor.
【0008】また、本発明の他の目的は、キャッシュ・
メモリのタグ・アレイの各エントリに属性を格納するフ
ィールドを設け、この属性フィールドをキャッシュ・ミ
ス処理時に適切に設定することにより、仮想記憶システ
ムを用いない計算機システムであっても、キャッシュ・
メモリを細かい単位で制御可能とし、キャッシュシステ
ムの高速性及び柔軟性を維持することにある。[0008] Another object of the present invention is to provide a cache memory.
By providing a field for storing an attribute in each entry of the memory tag array and appropriately setting this attribute field at the time of cache miss processing, even if the computer system does not use a virtual storage system, the cache
An object of the present invention is to make the memory controllable in small units and maintain the high speed and flexibility of the cache system.
【0009】[0009]
【課題を解決するための手段】上記の目的を達成するた
めの本発明によるキャッシュメモリ装置は例えば以下の
ような構成を備える。すなわち、複数のキャッシュライ
ンを有するデータメモリと、前記複数のキャッシュライ
ンの各々に対応して、格納されているデータの属性情報
を格納するためのフィールドを有するフィールドメモリ
と、アクセスがキャッシュヒットした場合、キャッシュ
ヒットしたキャッシュラインに対応するフィールドから
得られる属性情報に基づいて当該アクセスに対応する処
理を行うキャッシュデータ処理手段と、アクセスがキャ
ッシュミスした場合、アクセス対象の原本データを前記
データメモリの選択されたキャッシュラインに格納し、
前記フィールドメモリの対応するフィールドに該原本デ
ータの属性情報を格納する格納手段とを備える。According to the present invention, there is provided a cache memory device having the following configuration. A data memory having a plurality of cache lines; a field memory having a field for storing attribute information of stored data corresponding to each of the plurality of cache lines; A cache data processing means for performing a process corresponding to the access based on attribute information obtained from a field corresponding to a cache line in which a cache hit has occurred, and selecting an original data to be accessed when the cache miss occurs in the data memory. Stored in the cache line
Storage means for storing attribute information of the original data in a corresponding field of the field memory.
【0010】また、本発明によれば、上記の目的を達成
するキャッシュメモリ制御方法が提供される。Further, according to the present invention, there is provided a cache memory control method which achieves the above object.
【0011】[0011]
【発明の実施の形態】以下、添付の図面を参照して本発
明の好適な実施形態を説明する。Preferred embodiments of the present invention will be described below with reference to the accompanying drawings.
【0012】図1A及び図1Bは本実施形態の計算機シ
ステムの構成を示すブロック図である。本計算機システ
ムは、プロセッサ・ユニット(10)、メイン・メモリ
・ユニット(11)、及びI/O(imput/output)ユニッ
ト(12)を、システム・コントロール・ライン(1
6)、システム・アドレス・ライン(17)、及びシス
テム・データ・ライン(18)からなるシステム・バス
で相互に接続する構成をとる。FIGS. 1A and 1B are block diagrams showing the configuration of a computer system according to this embodiment. In this computer system, a processor unit (10), a main memory unit (11), and an I / O (imput / output) unit (12) are connected to a system control line (1).
6), a system bus composed of a system address line (17) and a system data line (18).
【0013】I/Oユニット(12)には、ディスプレ
イ・デバイス(13)、ネットワーク(14)、ディス
ク・ドライブ(15)等の入出力機器が接続される。シ
ステム・コントロール・ライン(16)は各ユニット間
の制御/応答に用いられる信号線である。システム・コ
ントロール・ライン(16)の各信号線は以下の通りで
ある。The I / O unit (12) is connected to input / output devices such as a display device (13), a network (14), and a disk drive (15). The system control line (16) is a signal line used for control / response between units. The signal lines of the system control line (16) are as follows.
【0014】sclk(20)はシステム・バス・トランザ
クションの同期のためのクロック・ラインである。sts*
(21)はシステム・バス・マスタとなったユニットが
システム・バス・トランザクションを現在実行中である
ことを示す信号である。sr/w*(22)はシステム・バ
ス・トランザクションの方向(読出し/書込み)を示す
信号である。ssize1-0(23)はシステム・バス・トラ
ンザクションのターゲット・データ・サイズを示す2ビ
ットの信号である。sburst*(24)はシステム・バス
・トランザクションがキャッシュ・ミス処理、またはラ
イン・リプレースメント処理に係わるものである場合
に、ターゲット・ユニットに対してバースト・アクセス
を指示する信号である。sta*(25)はシステム・バス
・トランザクションのアクノリッジ信号であり、読出し
の場合はシステム・データ・ライン(18)上に有効デ
ータが出力されていることを示し、また書込みの場合は
システム・データ・ライン(18)上のデータを受け取
ったことを示す信号である。なお、システム・バスのプ
ロトコルについては後述する。Sclk (20) is a clock line for synchronizing system bus transactions. sts *
(21) is a signal indicating that the unit that has become the system bus master is currently executing the system bus transaction. sr / w * (22) is a signal indicating the direction (read / write) of the system bus transaction. ssize1-0 (23) is a 2-bit signal indicating the target data size of the system bus transaction. sburst * (24) is a signal for instructing the target unit to perform a burst access when the system bus transaction is related to a cache miss process or a line replacement process. sta * (25) is an acknowledge signal of a system bus transaction, which indicates that valid data is being output on the system data line (18) in the case of reading, and the system data in the case of writing. A signal indicating that data on line (18) has been received. The protocol of the system bus will be described later.
【0015】なお、システム・コントロール・ライン
(16)には、本システムが計算機システムとして動作
するために必要な制御/応答ラインがこの他にも備えら
れるが、ここでは本実施形態を説明する上で必要な信号
線のみを記してある。また、本システムのシステム・ア
ドレス・ライン(17)、及びシステム・データ・ライ
ン(18)は32ビット幅とするが、これは本発明を制
限するものではない。The system control line (16) is provided with other control / response lines necessary for the present system to operate as a computer system. Here, the present embodiment will be described. Shows only necessary signal lines. Also, the system address line (17) and system data line (18) of the present system are 32 bits wide, but this is not a limitation of the present invention.
【0016】プロセッサ・ユニット(10)の内部は、
CPUコア(100)、キャッシュ・メモリ(10
1)、及びバス・インタフェース・ユニット(102)
を、コントロール・ライン(103)、アドレス・ライ
ン(104)、及びデータ・ライン(105)からなる
プロセッサ内部バスで相互に接続する構成をとる。The interior of the processor unit (10)
CPU core (100), cache memory (10
1) and a bus interface unit (102)
Are connected to each other by a processor internal bus including a control line (103), an address line (104), and a data line (105).
【0017】コントロール・ライン(103)は、CP
Uコア(100)が処理を進める途上で命令フェッチ、
及びデータ・アクセスのために発行するプロセッサ内部
バス・トランザクションの制御/応答に用いられる信号
線である。コントロール・ライン(103)における各
信号は次の通りである。The control line (103) is a CP
Instruction fetch while U core (100) proceeds with processing,
And a signal line used for control / response of a processor internal bus transaction issued for data access. The signals on the control line (103) are as follows.
【0018】bclk(110)はプロセッサ内部トランザ
クションの同期のためのクロック・ラインである。ts*
(111)はプロセッサ内部バス・マスタがプロセッサ
内部バス・トランザクションを現在実行中であることを
示す信号である。r/w*(112)はプロセッサ内部バス
・トランザクションのターゲット・データ・サイズを示
す2ビットの信号である。ta*(114)はプロセッサ
内部バス・トランザクションのアクノリッジ信号であ
り、読出しの場合はデータ・ライン(105)上に有効
なデータが出力されていることを示し、また書込みの場
合はデータ・ライン(105)上のデータを受け取った
ことを示す信号である。tma*(115)はプロセッサ内
部バス・トランザクションのミス・アクノリッジ信号で
あり、キャッシュ・メモリ(101)におけるキャッシ
ュ・ミスの発生を示す信号である。tea*(116)はプ
ロセッサ内部バス・トランザクションのエラー・アクノ
リッジ信号であり、有効でないアドレスに対するトラン
ザクションの発行等のために、バス・インタフェース・
ユニット(102)がトランザクション・エラーの発生
を示す信号である。miss_op*(117)は、現在のプロ
セッサ内部バス・トランザクションがキャッシュ・ミス
処理に関わるものであることを示す信号である。mem_wr
ite*(118)は、現在のプロセッサ内部バス・トラン
ザクションをシステム・バス上のユニットにも反映させ
るよう、バス・インタフェース・ユニット(102)に
指示するための信号である。Bclk (110) is a clock line for synchronizing processor internal transactions. ts *
(111) is a signal indicating that the processor internal bus master is currently executing a processor internal bus transaction. r / w * (112) is a 2-bit signal indicating the target data size of the processor internal bus transaction. ta * (114) is an acknowledgment signal of a processor internal bus transaction, which indicates that valid data is being output on the data line (105) in the case of reading, and the data line (in the case of writing) 105) is a signal indicating that the above data has been received. tma * (115) is a miss acknowledgment signal of a processor internal bus transaction, and is a signal indicating the occurrence of a cache miss in the cache memory (101). tea * (116) is an error acknowledgment signal of a bus transaction inside the processor, and is used to issue a transaction to an invalid address.
Unit (102) is a signal indicating that a transaction error has occurred. miss_op * (117) is a signal indicating that the current processor internal bus transaction is related to cache miss processing. mem_wr
ite * (118) is a signal for instructing the bus interface unit (102) to reflect the current processor internal bus transaction to the unit on the system bus.
【0019】なお、プロセッサ内部バスのプロトコルに
ついては後述する。また、本システムのアドレス・ライ
ン(104)及びデータ・ライン(105)は32ビッ
ト幅とするが、これは本発明を制限するものではない。
また、プロセッサ・ユニット(10)には、割込み線や
割込み処理モジュール等、本システムが計算機システム
として動作する上で必要な信号線、及び処理モジュール
が含まれるが、ここでは本実施形態を説明する上で必要
な信号線、処理モジュールのみを記してある。The protocol of the processor internal bus will be described later. Also, the address lines (104) and data lines (105) of the present system are 32 bits wide, but this is not a limitation of the present invention.
The processor unit (10) includes signal lines and processing modules required for the present system to operate as a computer system, such as an interrupt line and an interrupt processing module, and the present embodiment will be described here. Only the necessary signal lines and processing modules are shown above.
【0020】キャッシュ・メモリ(101)は、キャッ
シュ・メモリ(101)を制御するキャッシュ・コント
ロール・ロジック(120)、タグ情報を格納するタグ
RAM(121)、タグ情報のアドレス・フィールドを
比較する比較器(122)、タグ情報の書込み時に用い
るバッファ(123)、データを格納するデータRAM
(124)、及びデータ・バッファ(125)からな
る。タグRAM(121)、バッファ(123)、及び
データRAM(124)は、キャッシュ・コントロール
・ロジック(120)からのram_ctrl信号線(130)
により制御される。ram_ctrl信号線(130)には以下
の信号が含まれる。すなわち、バッファ(123)のen
able信号(131)、タグRAM(121)のチップ選
択信号であるtrcs*信号(132)、出力制御信号であ
るtroe*信号(133)、書込み制御信号であるtrwe*信
号(134)、データRAM(124)のチップ選択信
号であるdata_cs*信号(135)、出力制御信号である
data_oe*信号(136)、書込み制御信号であるdata_w
e3*-0*信号(137)である。data_we3*-0*信号(13
7)は4ビットの信号であるが、各ビットは4byteのデ
ータの各バイトに対応するものである。The cache memory (101) includes a cache control logic (120) for controlling the cache memory (101), a tag RAM (121) for storing tag information, and a comparison for comparing an address field of the tag information. (122), buffer (123) used when writing tag information, data RAM for storing data
(124), and a data buffer (125). The tag RAM (121), the buffer (123), and the data RAM (124) are connected to the ram_ctrl signal line (130) from the cache control logic (120).
Is controlled by The ram_ctrl signal line (130) includes the following signals. That is, en of the buffer (123)
able signal (131), trcs * signal (132) as a chip selection signal of tag RAM (121), troe * signal (133) as an output control signal, trwe * signal (134) as a write control signal, data RAM The data_cs * signal (135), which is the chip selection signal of (124), and the output control signal
data_oe * signal (136), data_w which is a write control signal
e3 * -0 * signal (137). data_we3 * -0 * signal (13
7) is a 4-bit signal, where each bit corresponds to each byte of 4-byte data.
【0021】アドレスはcaddr31-2信号線(140)を
介して入力される。タグRAM121にはtaga14-0(1
42)として、アドレス・ライン(104)上のaddr31
-17部分15ビットが、比較器(122)及びバッファ
(123)には、アドレス・ライン(104)上のaddr
16-4部分13ビット(141)が、データRAM124
にはdataa16-0として、アドレス・ライン(104)上
のaddr31-17部分とaddr3-2部分をコンカチネート(連
結、concatenate)したアドレス17ビットが入力され
る。The address is input via a caddr31-2 signal line (140). The tag RAM 121 has taga14-0 (1
42) as addr31 on the address line (104)
-17 part 15 bits are provided to the comparator (122) and the buffer (123) by the addr on the address line (104).
13 bits (141) of the 16-4 portion are stored in the data RAM 124
As the dataa16-0, 17 bits of an address obtained by concatenating the addr31-17 part and the addr3-2 part on the address line (104) are input.
【0022】タグRAM121においてはtagd15-0(1
50)が入出力される。tagd15-0(150)は13ビッ
トのタグ・アドレス・フィールド(151)と3ビット
のライン・ステータス(152)に分かれ、タグ・アド
レス・フィールド(151)は比較器(122)及びバ
ッファ(123)に接続され、ライン・ステータス(1
52)はキャッシュ・コントロール・ロジック(12
0)に接続される。In the tag RAM 121, tagd15-0 (1
50) is input and output. tagd15-0 (150) is divided into a 13-bit tag address field (151) and a 3-bit line status (152), and the tag address field (151) is a comparator (122) and a buffer (123). Connected to the line status (1
52) is the cache control logic (12)
0).
【0023】比較器(122)は、タグRAM(12
1)から出力されるタグ・アドレス・フィールド(15
1)とキャッシュ・コントロール・ロジックから出力さ
れるアドレス(141)とを比較し、その結果をcmp_ma
tch*信号(153)でキャッシュ・コントロール・ロジ
ック(120)へ知らせる。buff_ctrl信号(161)
はデータ・バッファ(125)のenable信号であり、デ
ータRAM(124)からデータ・ライン(105)へ
のデータ出力時にはbuff_roe*信号(162)をアサー
トし、cdata31-0信号線(160)上のデータをデータ
・ライン(105)上に出力し、またデータRAM(1
05)上のデータをcdata31-0信号線(160)上に出
力する。なお、キャッシュ・コントロール・ロジック
(120)はデータ・ポート(164)を有しており、
データ・ライン(105)のdata7-0が接続される。The comparator (122) has a tag RAM (12)
The tag address field (15) output from 1)
1) is compared with the address (141) output from the cache control logic, and the result is compared with cmp_ma
The cache control logic (120) is notified by the tch * signal (153). buff_ctrl signal (161)
Is an enable signal for the data buffer (125), asserts the buff_roe * signal (162) when data is output from the data RAM (124) to the data line (105), and outputs the signal on the cdata31-0 signal line (160). Data is output on the data line (105) and the data RAM (1
05) Output the data on the cdata31-0 signal line (160). The cache control logic (120) has a data port (164).
Data7-0 of the data line (105) is connected.
【0024】図2はアドレス・ライン(104)上に出
力されるアドレスaddr31-0のフィールド構成を示した図
である。キャッシュ・メモリ(101)においては、ad
dr31-17の部分(ライン選択フィールド)がキャッシュ
・ラインの選択に用いられ、addr16-4の部分(タグ・フ
ィールド)が比較器(122)での比較に用いられ、ad
dr3-0(イントラブロック・フィールド)の部分がキャ
ッシュ・ラインに格納されるデータ・ブロックの何れの
部分に対するアクセスであるかを示すブロック内アドレ
スとして扱われる。FIG. 2 is a diagram showing the field structure of the address addr31-0 output on the address line (104). In the cache memory (101), ad
The part of dr31-17 (line selection field) is used for selecting a cache line, the part of addr16-4 (tag field) is used for comparison in the comparator (122), and
The part of dr3-0 (intra block field) is treated as an address in the block indicating which part of the data block stored in the cache line is accessed.
【0025】図3はキャッシュ・メモリ(101)の論
理的構成を示す図である。タグRAM(150)には、
そのキャッシュ・ラインが有効であるか否かを示すvフ
ラグ、そのキャッシュ・ライン上に格納されているデー
タ・ブロックをどの時点で更新するかを示すuフラグ、
そのキャッシュ・ライン上に格納されているデータ・ブ
ロックの内容がその原本の内容と異なっているか否かを
示すmフラグ、及びアドレスaddr16-4部分に相当するタ
グ・フィールドが、キャッシュ・ライン#0〜#327
67までの32kエントリ分格納される。またデータR
AM(124)には、各キャッシュ・ラインに16B
(バイト)のデータがそれぞれ格納されることを示して
いる。なお、本計算機システムのキャッシュ・メモリ
(101)は、32kエントリのダイレクト・マップ方
式、容量512kバイト(16バイト×32kエント
リ)の構成をとるが、この構成は本発明を制限するもの
ではない。FIG. 3 is a diagram showing a logical configuration of the cache memory (101). In the tag RAM (150),
A v flag indicating whether the cache line is valid, a u flag indicating when to update a data block stored on the cache line,
The m flag indicating whether or not the content of the data block stored on the cache line is different from the content of the original, and the tag field corresponding to the address addr16-4 are included in the cache line # 0. ~ # 327
Up to 67 32k entries are stored. Data R
AM (124) has 16B for each cache line
(Byte) data is stored. The cache memory (101) of the computer system has a 32k entry direct map system and a capacity of 512k bytes (16 bytes x 32k entries), but this structure does not limit the present invention.
【0026】以下、本システムの動作を説明する。図4
はCPUコアが命令フェッチ、またはデータ・アクセス
のためにプロセッサ内部バス・トランザクションを発行
した際の、キャッシュ・コントロール・ロジックによる
処理を示すフローチャートである。プロセッサ内部バス
・トランザクションが発行されると、キャッシュ・コン
トロール・ロジック(120)はアドレスをデコードす
ることで、キャッシュ・メモリ(101)を介するべき
トランザクションか否かを判断する(ステップS20
1)。ここでキャッシュ・メモリ(101)を介すべき
でないトランザクションとは、キャッシュ・コントロー
ル・ロジック(120)の内部をターゲットとするトラ
ンザクションである(後述)。そのようなトランザクシ
ョンの場合には、対応するアクセス動作を執り行い(ス
テップS202)、本処理を終了する。Hereinafter, the operation of the present system will be described. FIG.
5 is a flowchart showing processing by the cache control logic when the CPU core issues a processor internal bus transaction for instruction fetch or data access. When the processor internal bus transaction is issued, the cache control logic (120) decodes the address to determine whether or not the transaction should be passed through the cache memory (101) (step S20).
1). Here, the transaction that should not be passed through the cache memory (101) is a transaction that targets the inside of the cache control logic (120) (described later). In the case of such a transaction, a corresponding access operation is performed (step S202), and this processing ends.
【0027】一方、当該トランザクションが、キャッシ
ュ・メモリ(101)を介するべきトランザクションで
ある場合は、キャッシュ・アクセス動作が行われる(ス
テップS204)。ここで、キャッシュ・ミスが生じた
場合は、ステップS205からステップS206へ進
み、当該トランザクションを一旦ターミネートし(ステ
ップS206)、キャッシュ・ミス処理を行う(ステッ
プS207)。キャッシュミス処理については図5のフ
ローチャートを参照して後述する。On the other hand, if the transaction is a transaction to be performed via the cache memory (101), a cache access operation is performed (step S204). If a cache miss has occurred, the process proceeds from step S205 to step S206, where the transaction is temporarily terminated (step S206), and a cache miss process is performed (step S207). The cache miss processing will be described later with reference to the flowchart of FIG.
【0028】また、当該キャッシュ・アクセスがヒット
した場合は、ステップS205からステップS209へ
進み、当該アクセスが読出か書込かを判定する。当該ア
クセスが読出であれば、ステップS210へ進み、デー
タRAM124よりデータを読み出す。また、当該アク
セスが書込であれば、ステップS212へ進み、当該ア
クセスで指定されたデータブロックの書込み方式がライ
ト・スルーかライト・バックかを判定する(タグRAM
121に格納されたフラグ「u」によって判定され
る)。そして、ライト・スルーであれば、ステップS2
13へ進み、データRAM124とメイン・メモリ・ユ
ニット11の両方へのデータの書込みを行う。また、書
込み方式がライト・バックであった場合は、データRA
M124のみへデータの書込みを行う。If the cache access hits, the flow advances from step S205 to step S209 to determine whether the access is read or write. If the access is read, the process proceeds to step S210, and data is read from the data RAM 124. If the access is a write, the process proceeds to step S212, and it is determined whether the write method of the data block specified by the access is write-through or write-back (tag RAM).
Judgment is made by the flag “u” stored in 121). If it is write-through, step S2
Then, the process proceeds to step 13 to write data to both the data RAM 124 and the main memory unit 11. If the write method is write-back, the data RA
Write data only to M124.
【0029】次に、ステップS207におけるキャッシ
ュミス処理について説明する。図5は、キャッシュミス
発生時の処理手順を説明するフローチャートである。Next, the cache miss processing in step S207 will be described. FIG. 5 is a flowchart illustrating a processing procedure when a cache miss occurs.
【0030】本例ではダイレクト・マップ方式を採用し
ているので、キャッシュ・ミスが生じるとどのキャッシ
ュ・ラインにデータを格納するかが一意に決定される。
他のフル・アソシアティブ方式等の場合は、LRU法等
によってデータを格納するキャッシュラインが決定され
ることになる。In this example, since the direct map method is employed, when a cache miss occurs, it is uniquely determined which cache line stores the data.
In the case of another full associative method or the like, a cache line for storing data is determined by the LRU method or the like.
【0031】さて、キャッシュ・ミスが発生すると、新
たなデータの格納先となるキャッシュ・ラインが空か否
かの判断が行われる(ステップS301)。このキャッ
シュ・ラインが空であった場合、CPUコア(100)
はキャッシュ・メモリ(101)中に格納する新たなデ
ータ・ブロックの属性をキャッシュ・コントロール・ロ
ジック(120)に知らせる(ステップS302)。そ
して、当該データ・ブロックを読み出すためのプロセッ
サ内部バス・トランザクションを発行する(ステップS
303)。When a cache miss occurs, it is determined whether or not a cache line for storing new data is empty (step S301). If this cache line is empty, the CPU core (100)
Notifies the cache control logic (120) of the attribute of the new data block to be stored in the cache memory (101) (step S302). Then, a processor internal bus transaction for reading the data block is issued (step S).
303).
【0032】バス・インタフェース・ユニット(10
2)はこれを仲介する形でシステム・バス・トランザク
ションをシステム・バス上に発行し、メイン・メモリ・
ユニット(11)からデータ・ブロックを読出す。キャ
ッシュ・メモリ(101)はプロセッサ内部バスから1
6B(バイト)分のデータを4BずつデータRAM(1
24)中に格納し(ステップS304〜ステップS30
7)、キャッシュ・ミス処理を完了する。The bus interface unit (10
2) issues a system bus transaction on the system bus in the form of an intermediary, and the main memory
Read a data block from unit (11). The cache memory (101) is connected to the processor internal bus 1
6B (byte) data is stored in the data RAM (1
24) (Steps S304 to S30)
7), complete the cache miss process.
【0033】図6はキャッシュ・ミス発生時のプロセッ
サ内部バス、及びシステム・バス上の各信号のタイミン
グを示すタイミングチャートである。トランザクション
400がキャッシュ・ミスを生じさせたトランザクショ
ンである。キャッシュ・メモリtma*信号(115)をア
サートし、トランザクション400をターミネートして
いる。トランザクション401は、CPUコア(10
0)がキャッシュ・ミスに応じて、キャッシュ・メモリ
(101)中に新たに格納するデータ・ブロックの属性
を知るためのリード・トランザクションであり、これは
キャッシュ・ヒットし、キャッシュ・メモリ(101)
がta*信号(114)をアサートし、CPUコアに属性
をサービスしている。この属性データには、当該データ
・ブロックに対するライト・トランザクションが行われ
た場合の書込み方式(ライト・スルー/ライト・バッ
ク)が含まれる。なお、このトランザクション401に
おいてキャッシュ・ミスが生じた場合、ここで述べてい
る処理が同様に行われた後、トランザクション400の
キャッシュ・ミスに対する処理動作が執り行われる。FIG. 6 is a timing chart showing the timing of each signal on the processor internal bus and the system bus when a cache miss occurs. Transaction 400 is the transaction that caused the cache miss. The cache memory tma * signal (115) is asserted, terminating transaction 400. The transaction 401 is executed by the CPU core (10
0) is a read transaction for knowing the attribute of a data block newly stored in the cache memory (101) in response to a cache miss, which results in a cache hit and the cache memory (101).
Asserts the ta * signal (114) to service attributes to the CPU core. The attribute data includes a write method (write-through / write-back) when a write transaction is performed on the data block. When a cache miss occurs in the transaction 401, the processing described here is performed in the same manner, and then the processing operation for the cache miss of the transaction 400 is performed.
【0034】トランザクション402は、トランザクシ
ョン401で得られた当該データ・ブロックの属性情報
を、CPUコア(100)がキャッシュ・コントロール
・ロジック(120)に伝えるためのトランザクション
である。このトランザクションはキャッシュ・メモリ
(101)を介さないトランザクションであるとキャッ
シュ・コントロール・ロジック(120)が判断するた
め、キャッシュ・メモリ(101)内部ではタグRAM
(121)やデータRAM(124)へのアクセス動作
は行われない。なお、属性情報は連続する16B毎にメ
モリ中に記憶されていてもよいが、大量のメモリ容量が
必要になってしまうので、あるアドレスからあるアドレ
スまでのデータ属性はこうであるというようなテーブル
的なものを用いるのが好ましい。また、一般的に小規模
なシステムでは、例えば、アドレスの上位4ビットの値
が0であればROM、1であればRAM、2であればV
RAM、3であればシリアル・ラインという具合に、ア
ドレスの上位数ビットでモジュールが区分されることが
多い。そこで、属性テーブルのベース・アドレスに、モ
ジュールを識別するアドレス上位数ビットとをコンカチ
ネートしたアドレスでアクセスすると、欲しいデータ属
性が得られるという具合に構成することができる。The transaction 402 is a transaction for the CPU core (100) to transmit the attribute information of the data block obtained in the transaction 401 to the cache control logic (120). Since the cache control logic (120) determines that this transaction is a transaction that does not pass through the cache memory (101), the tag RAM inside the cache memory (101)
(121) and the operation of accessing the data RAM (124) are not performed. Note that the attribute information may be stored in the memory for each successive 16B, but a large amount of memory capacity is required, so that the data attribute from a certain address to a certain address is as follows. It is preferable to use a typical one. In general, in a small-scale system, for example, if the value of the upper 4 bits of the address is 0, the ROM is 1, if the value of the upper 4 bits is the RAM, and if the value of the upper 4 bits is 2, the V is
In the case of the RAM 3, the module is often divided by the upper few bits of the address, such as a serial line. Therefore, by accessing the base address of the attribute table with an address obtained by concatenating the upper few bits of the address for identifying the module, a desired data attribute can be obtained.
【0035】トランザクション403はメイン・メモリ
・ユニット(11)から当該データ・ブロックを読出す
ためのトランザクションである。miss_op*信号(11
7)がアサートされているため、キャッシュ・メモリ
(101)は通常の内部アクセス動作(CPUコア(1
00)に対するサービス・アクセス動作)は行わない。
バス・インタフェース・ユニット(102)は、miss_o
p*信号(117)がアサートされていることに基づき、
トランザクション403を仲介し、システム・バス上に
トランザクション404を発行する。トランザクション
404においては、sburst*信号(24)がアサートさ
れる。The transaction 403 is a transaction for reading the data block from the main memory unit (11). miss_op * signal (11
Since (7) is asserted, the cache memory (101) performs a normal internal access operation (CPU core (1)
00) is not performed.
The bus interface unit (102) has miss_o
Based on the p * signal (117) being asserted,
It mediates transaction 403 and issues transaction 404 on the system bus. In transaction 404, the sburst * signal (24) is asserted.
【0036】メイン・メモリ・ユニット(11)は、4
Bのデータを4回、計16Bのデータをバス・インタフ
ェース・ユニット(102)にサービスする。システム
・バス上ではsclk信号(20)に同期してデータが転送
される。バス・インタフェース・ユニット(102)
は、システム・バスからデータが4Bずつサービスされ
る度に、bclk信号(110)に同期させた形で、ta*信
号(114)をアサートするとともに、データ・ライン
(105)上にデータを出力する。キャッシュ・メモリ
(101)はデータ・ライン(105)上に出力された
データを自身の対応するキャッシュ・ライン中に取り込
む。The main memory unit (11) has 4
B data is serviced four times, for a total of 16 B data to the bus interface unit (102). Data is transferred on the system bus in synchronization with the sclk signal (20). Bus interface unit (102)
Asserts the ta * signal (114) and outputs the data on the data line (105) in synchronism with the bclk signal (110) each time 4B of data is serviced from the system bus. I do. The cache memory (101) takes the data output on the data line (105) into its corresponding cache line.
【0037】図7はキャッシュ・ミス発生時の、キャッ
シュ・メモリ(101)内部の信号のタイミングを表す
タイミングチャートである。なお、図7の信号400〜
403は図6のそれらと同じ信号を表している。FIG. 7 is a timing chart showing the timing of signals inside the cache memory (101) when a cache miss occurs. The signals 400 to 400 in FIG.
403 represents the same signals as those of FIG.
【0038】トランザクション400が発行されると、
キャッシュ・コントロール・ロジック(120)は、tr
a14-0(142)にaddr31-17を出力し、trcs*信号(1
32)とtroe*信号(133)をアサートし、タグRA
M(121)をリード・アクセスする。また、比較器に
接続されている信号線141にaddr16-4を出力する。ま
たこれと同時に、dataa16-0(143)にaddr31-17とad
dr3-2をコンカチネートしたアドレスを出力し、data_cs
*信号(135)とdata_oe*信号(136)をアサート
し、データRAM(124)をリード・アクセスしてお
く。タグRAM(121)からは対応するキャッシュ・
ラインに格納されているタグ情報がtagd15-0(150)
上に出力される。When transaction 400 is issued,
The cache control logic (120) is tr
addr31-17 is output to a14-0 (142), and the trcs * signal (1
32) and the troe * signal (133) are asserted, and the tag RA
M (121) is read-accessed. Further, addr16-4 is output to the signal line 141 connected to the comparator. At the same time, addr31-17 and ad are added to dataa16-0 (143).
Outputs the address where dr3-2 is concatenated, data_cs
The * signal (135) and the data_oe * signal (136) are asserted, and the data RAM (124) is read-accessed. From the tag RAM (121), the corresponding cache
The tag information stored in the line is tagd15-0 (150)
Output above.
【0039】このうちタグ・アドレス・フィールド(1
51)は比較器(122)上で比較され、またライン・
ステータス(152)はキャッシュ・コントロール・ロ
ジック(120)に伝えられる。このとき、比較器(1
22)の比較結果であるcmp_match*信号(153)がア
サートされない場合、またはライン・ステータス(15
2)のvフラグがセットされていない場合がキャッシュ
・ミスである。The tag address field (1
51) are compared on a comparator (122) and
The status (152) is communicated to the cache control logic (120). At this time, the comparator (1
If the cmp_match * signal (153), which is the comparison result of 22), is not asserted, or if the line status (15
A case where the v flag is not set in 2) is a cache miss.
【0040】図7の場合、cmp_match*信号がアサートさ
れておらず、キャッシュ・ミスが生じている。このため
キャッシュ・コントロール・ロジック(120)は、tm
a*信号(115)をアサートし、トランザクション40
0をターミネートするとともに、CPUコア(100)
に対してキャッシュ・ミスの発生を知らせている。In the case of FIG. 7, the cmp_match * signal is not asserted, and a cache miss has occurred. Therefore, the cache control logic (120) uses tm
Assert the a * signal (115), transaction 40
Terminate 0 and CPU core (100)
Is notified of the occurrence of a cache miss.
【0041】キャッシュ・ミスの発生を検出したCPU
コア(100)は、属性情報を得るためにトランザクシ
ョン401を発行する。トランザクション401に対し
てもトランザクション400のときと同様にタグRAM
(121)及びデータRAM(124)に対するアクセ
ス動作が行われる。本例では、今回は比較器(122)
の比較結果cmp_match*信号(153)がアサートされ、
キャッシュ・ヒットしている。キャッシュ・コントロー
ル・ロジック(120)はbuff_ctrl信号(161)の
うちのbiff_roe*信号(162)をアサートすること
で、データをデータ・ライン(105)上に出力し、ta
*信号(114)をアサートすることで、CPUコアに
対してデータをサービスしている。CPU detecting occurrence of cache miss
The core (100) issues a transaction 401 to obtain attribute information. The tag RAM is used for the transaction 401 in the same manner as the transaction 400.
(121) and an access operation to the data RAM (124) are performed. In this example, this time the comparator (122)
The comparison result cmp_match * signal (153) is asserted,
There is a cache hit. The cache control logic (120) outputs data on the data line (105) by asserting the biff_roe * signal (162) of the buff_ctrl signal (161).
* Data is being serviced to the CPU core by asserting the signal (114).
【0042】トランザクション402に対しては、キャ
ッシュ・コントロール・ロジック(120)がキャッシ
ュ・メモリ(101)を介さないトランザクションと判
断したため、キャッシュ・メモリ(101)内部ではタ
グRAM(121)やデータRAM(124)へのアク
セス動作は行われず、キャッシュ・コントロール・ロジ
ック(120)が自身の内部に、属性情報をCPUコア
から受け取り、ta*信号(114)をアサートすること
でトランザクションをターミネートしている。トランザ
クション403に対しては、miss_op*信号(117)が
アサートされているため、キャッシュ・コントロール・
ロジック(120)はキャッシュ・ミスを生じたデータ
・ブロックの読出しのためのトランザクションであるこ
とを検知する。そして、trcs*信号(132)、及びdat
a_cs*信号(135)をアサートし、トランザクション
402によって得られた当該データ・ブロックの属性情
報をライン・ステータス信号線(152)に出力し、ad
dr16-4をアドレス・ライン141に出力する。そして、
バッファ123のenable信号(131)をアサートする
ことでtagd15-0信号線(150)上にタグ情報を出力し
ておき、またbuff_woe*信号(163)をアサートする
ことでデータ・ライン(105)とcdata32-0信号線
(160)を繋げ、バス・インタフェース・ユニット
(102)がトランザクション403をターミネートす
るのを待つ。For the transaction 402, the cache control logic (120) determines that the transaction does not pass through the cache memory (101), so that the tag RAM (121) and the data RAM (121) are stored inside the cache memory (101). No access operation to the cache control logic (124) is performed, and the cache control logic (120) receives the attribute information from the CPU core and terminates the transaction by asserting the ta * signal (114). Since the miss_op * signal (117) is asserted for the transaction 403, the cache control
Logic (120) detects that the transaction is for reading a data block in which a cache miss has occurred. And the trcs * signal (132) and dat
a_cs * signal (135) is asserted, and the attribute information of the data block obtained by the transaction 402 is output to the line status signal line (152).
Outputs dr16-4 to address line 141. And
The tag information is output on the tagd15-0 signal line (150) by asserting the enable signal (131) of the buffer 123, and the data line (105) is asserted by asserting the buffer_woe * signal (163). Connect the cdata32-0 signal line (160) and wait for the bus interface unit (102) to terminate transaction 403.
【0043】バス・インタフェース・ユニット(10
2)がデータを4Bずつデータ・ライン(105)上に
順次出力し、ta*信号(114)をアサートすると、キ
ャッシュ・コントロール・ロジック(120)はdata_w
e3*-0*信号(137)にLパルスを出力する(data_we3
*-0*信号(137)をアサート後にネゲートする)こと
で、データを順次データRAM(124)の該当するラ
イン上に格納する。The bus interface unit (10
2) sequentially outputs data on the data line (105) by 4B and asserts the ta * signal (114), and the cache control logic (120) executes data_w
Output L pulse to e3 * -0 * signal (137) (data_we3
By asserting the * -0 * signal (137) and then negating), the data is sequentially stored on the corresponding line of the data RAM (124).
【0044】なお最初の4Bデータを取り込む時に、tr
we*信号(134)にLパルスを出力し、タグRAM
(121)の当該ライン上にタグ情報を格納する。バス
・インタフェース・ユニット(102)からのta*信号
(114)のアサートを待って格納するのは、トランザ
クション400及び403が有効でないアドレスに対す
るトランザクションである可能性があるからである。そ
のような場合、バス・インタフェース・ユニット(10
2)はta*信号(114)をアサートせずにtea*信号
(116)をアサートすることで、当該トランザクショ
ンをエラー・ターミネートし、キャッシュ・コントロー
ル・ロジック(120)は新しいデータ・ブロックの格
納処理を取り止める。CPUコア(100)はアボート
処理を行う(図5のステップS304、S305)。When fetching the first 4B data, tr
L pulse is output to we * signal (134) and tag RAM
(121) Tag information is stored on the line. Waiting and storing the assertion of the ta * signal (114) from the bus interface unit (102) is because the transactions 400 and 403 may be transactions for addresses that are not valid. In such a case, the bus interface unit (10
2) asserts the tea * signal (116) without asserting the ta * signal (114), thereby terminating the transaction in error, and the cache control logic (120) stores the new data block. Cancel. The CPU core (100) performs an abort process (steps S304 and S305 in FIG. 5).
【0045】図5のキャッシュ・ミスが生じた際のフロ
ーに話を戻す。ステップS301において、当該キャッ
シュ・ラインが空ではなかった場合にはステップS30
2以降の処理に入る前に、データの一貫性を保持するた
めに、ステップS309、S310の処理が実行され
る。Returning to the flow when a cache miss has occurred in FIG. If the cache line is not empty in step S301, step S30
Before entering the processing of the second and subsequent steps, the processing of steps S309 and S310 is executed in order to maintain data consistency.
【0046】まず、ステップS309において、そのキ
ャッシュ・ライン上に格納されているデータ・ブロック
の内容がその原本の内容と異なっているかどうかを判定
する。データ・ブロックの内容がその原本の内容と異な
っている場合、原本の内容を更新する必要がある。この
ような状況は、そのデータ・ブロックのタグ情報中のu
フラグがライト・バック・モードであり、そのデータ・
ブロックに対する書き込みがあった場合に生じる。ま
た、当該キャッシュ・ライン上に格納されているデータ
・ブロックのデータが原本の内容と異なっているか否か
は、タグ情報中のmフラグをチェックすれば判定でき
る。First, in step S309, it is determined whether or not the content of the data block stored on the cache line is different from the content of the original. If the contents of the data block are different from the contents of the original, the contents of the original need to be updated. Such a situation is caused by the u in the tag information of the data block.
The flag is in write-back mode and its data
Occurs when data is written to a block. Whether or not the data of the data block stored on the cache line is different from the original content can be determined by checking the m flag in the tag information.
【0047】従って、当該キャッシュ・ライン上のデー
タ・ブロックがライト・スルー方式でキャッシュされて
いる(この場合、原本の内容とキャッシュ・ライン上の
データ・ブロックの内容は一致する)か、原本内容から
変化していないかのいずれかの状態であれば、ステップ
S309からステップS302に進む。また、その原本
の内容と異なっていた場合はステップS310に進み、
原本の更新動作が執り行われる。Therefore, the data block on the cache line is cached by the write-through method (in this case, the content of the original and the content of the data block on the cache line match) or the content of the original If the state has not changed, the process proceeds from step S309 to step S302. If the content is different from the original, the process proceeds to step S310.
An update operation of the original is performed.
【0048】図8は、キャッシュ・ミス発生時にキャッ
シュ・ラインのデータのライトバックが必要となった場
合のプロセッサ内部バス、及びシステム・バスの信号線
の状態遷移を示すタイミングチャートである。FIG. 8 is a timing chart showing a state transition of the signal lines of the processor internal bus and the system bus when data write back of the cache line is required when a cache miss occurs.
【0049】図8において、トランザクション500が
キャッシュ・ミスを生じさせたトランザクションであ
り、動作は前述のトランザクション400に対するもの
と同様である。異なるのは、キャッシュ・コントロール
・ロジック(120)が、キャッシュ・ミスの発生を通
知するtma*信号(115)のアサートと同時に、mem_wr
ite*信号(118)をアサートしていることである。tm
a*信号(115)及びmem_write*信号(118)の同時
アサーションを検出したCPUコア(100)は、プロ
セッサ内部バスの使用権をキャッシュ・メモリ(10
1)に譲る。In FIG. 8, transaction 500 is a transaction that caused a cache miss, and the operation is the same as that for transaction 400 described above. The difference is that the cache control logic (120) asserts the tma * signal (115) indicating that a cache miss has occurred, and
asserting the ite * signal (118). tm
Upon detecting the simultaneous assertion of the a * signal (115) and the mem_write * signal (118), the CPU core (100) sets the right to use the processor internal bus to the cache memory (10).
Yield to 1).
【0050】キャッシュ・コントロール・ロジック(1
20)は、miss_op*信号(117)とmem_write*信号
(118)をアサートした形で書込みトランザクション
501を発行する。miss_op*信号(117)がアサート
されていることにより、バス・インタフェース・ユニッ
ト(102)は16Bアクセスであることを検知し、1
6Bのデータを4Bずつ順次データ・ライン(105)
から受け取り、トランザクション501をターミネート
する。トランザクション501がターミネートされる
と、キャッシュ・コントロール・ロジック(120)
は、mem_write*信号(118)をネゲートし、プロセッ
サ内部バスの使用権をCPUコア(110)に戻す。The cache control logic (1
20) issues a write transaction 501 in the form of asserting the miss_op * signal (117) and the mem_write * signal (118). Since the miss_op * signal (117) is asserted, the bus interface unit (102) detects that the access is 16B, and
6B data sequentially 4B data lines (105)
And terminates the transaction 501. When the transaction 501 is terminated, the cache control logic (120)
Negates the mem_write * signal (118) and returns the right to use the processor internal bus to the CPU core (110).
【0051】一方、システム・バス上では、トランザク
ション501に応じて、バス・インターフェース・ユニ
ット(102)がトランザクション505を発行し、そ
のターミネートによって当該データ・ブロック原本の更
新動作が完了する。以下、トランザクション502、5
03、504、及び506が発行されるが、これらにつ
いては各々前出のトランザクション401、402、4
03、及び404と同様な動作が執り行われ、キャッシ
ュ・ミス処理が完了する。On the other hand, on the system bus, the bus interface unit (102) issues the transaction 505 in response to the transaction 501, and the termination operation completes the update operation of the original data block. Hereinafter, transactions 502 and 5
03, 504, and 506 are issued, respectively, for transactions 401, 402, 4
Operations similar to those in steps 03 and 404 are performed, and the cache miss process is completed.
【0052】以上のようにして、キャッシュ・メモリ
(101)中の各キャッシュ・ラインには、データ・ブ
ロック及びそのタグ情報が格納される。As described above, each cache line in the cache memory (101) stores a data block and its tag information.
【0053】図9に、タグ情報中のuフラグがライト・
バック・モードを示し、mフラグが原本の内容と異なっ
ていないことを示しているデータ・ブロックに対するラ
イト・ヒット時の動作を示す。タグRAM(121)に
リード・アクセスし、キャッシュ・ヒットを検出したキ
ャッシュ・コントロール・ロジック(120)は、data
_we3*-0*信号(137)をアサートし、タグRAM(1
21)中の当該データ・ブロックへの書込みを行う。更
にこの場合、タグRAM(121)へのリード・アクセ
スの後、タグRAM(121)へライト・アクセスし、
タグRAM(121)中のキャッシュ・ヒットしたデー
タ・ブロックのタグ情報中のmフラグを、原本の内容と
異なっていることを示すように更新している。FIG. 9 shows that the u flag in the tag information is
The back mode indicates the operation at the time of a write hit to a data block indicating that the m flag is not different from the original content. The cache control logic (120) that has read-accessed the tag RAM (121) and detected the cache hit,
_we3 * -0 * signal (137) is asserted and the tag RAM (1
21) is written to the data block. Further, in this case, after read access to the tag RAM (121), write access to the tag RAM (121) is performed,
The m flag in the tag information of the cache-hit data block in the tag RAM (121) is updated so as to indicate that it is different from the original.
【0054】また図10に、タグ情報中のuフラグがラ
イト・スルー・モードであるデータ・ブロックに対する
ライト・ヒット時の動作を示す。キャッシュ・コントロ
ール・ロジック(120)がデータRAM(124)中
の当該データ・ブロックへの書込みを行う点はライトバ
ック・モードの場合と同じである。ただし、この場合、
自身でta*信号(114)のアサートは行わず、mem_wri
te*信号(118)をアサートすることで、バス・イン
タフェース・ユニット(102)に、データ・ブロック
原本への書込み動作を促している。バス・インタフェー
ス・ユニット(102)は、データ・ライン(105)
上からデータを取り込み、ta*信号(114)をアサー
トすることで、トランザクション601をターミネート
する。引き続き、バス・インタフェース・ユニット(1
02)は、システム・バス上にトランザクション601
を発行し、データ・ブロック原本への書込み動作を行っ
ている。FIG. 10 shows an operation at the time of a write hit to a data block in which the u flag in the tag information is in the write-through mode. The point that the cache control logic (120) writes to the data block in the data RAM (124) is the same as in the write-back mode. However, in this case,
The self-assertion of the ta * signal (114) is not performed.
Asserting the te * signal (118) urges the bus interface unit (102) to perform a write operation on the original data block. The bus interface unit (102) includes a data line (105)
The transaction 601 is terminated by fetching data from above and asserting the ta * signal (114). Continue with the bus interface unit (1
02) is a transaction 601 on the system bus.
Is issued to perform a write operation to the original data block.
【0055】以上説明したように、本実施形態によれ
ば、メモリ管理機構(MMU)がハードウェア的に備え
られていないプロセッサ・ユニットを用いる計算機シス
テム、または仮想記憶システムを用いない計算機におい
て、システム性能の向上を図ることができる。すなわ
ち、従来、ディスプレイ装置の表示データ等、ライト・
アクセス時にデータ更新の即時性が必要なデータが処理
データ中に含まれる場合、仮想記憶システムを持たない
計算機システムでは、キャッシュ・メモリ中に格納する
データ全てをライトスルー・モードで扱うか、または比
較的大きな単位で分割された領域毎にキャッシング可/
負荷を静的に設定して動作させるしかなかった。これに
対して、本実施形態によれば、キャッシュ・ミスが発生
した際に行うミス処理の途上でキャッシング属性をキャ
ッシュ・ラインのタグ情報中に登録するように構成した
ことによって、キャッシュ・ライン中に格納されるデー
タ・ブロックのサイズ単位で細かくキャッシング属性を
管理することが可能となり、システム性能の向上が図ら
れる。As described above, according to the present embodiment, in a computer system using a processor unit having no memory management unit (MMU) in hardware or a computer not using a virtual storage system, Performance can be improved. That is, conventionally, light data such as display data of a display device is used.
When data requiring immediate data update during access is included in the processing data, in a computer system without a virtual storage system, all data stored in the cache memory is handled in the write-through mode or compared. Can be cached for each area divided into large units /
The only option was to set the load statically and run. On the other hand, according to the present embodiment, the cache attribute is registered in the tag information of the cache line in the course of the miss processing performed when a cache miss occurs. , It is possible to finely manage the caching attribute in units of the size of the data blocks stored in the data block, thereby improving the system performance.
【0056】なお、本発明は、複数の機器(例えばホス
トコンピュータ,インタフェイス機器,リーダ,プリン
タなど)から構成されるシステムに適用しても、一つの
機器からなる装置(例えば、複写機,ファクシミリ装置
など)に適用してもよい。The present invention can be applied to a system including a plurality of devices (for example, a host computer, an interface device, a reader, a printer, etc.), but can be applied to a single device (for example, a copier, a facsimile). Device).
【0057】また、本発明の目的は、前述した実施形態
の機能を実現するソフトウェアのプログラムコードを記
録した記憶媒体を、システムあるいは装置に供給し、そ
のシステムあるいは装置のコンピュータ(またはCPU
やMPU)が記憶媒体に格納されたプログラムコードを
読出し実行することによっても、達成されることは言う
までもない。An object of the present invention is to provide a storage medium storing a program code of software for realizing the functions of the above-described embodiments to a system or apparatus, and to provide a computer (or CPU) of the system or apparatus.
And MPU) read and execute the program code stored in the storage medium.
【0058】この場合、記憶媒体から読出されたプログ
ラムコード自体が前述した実施形態の機能を実現するこ
とになり、そのプログラムコードを記憶した記憶媒体は
本発明を構成することになる。In this case, the program code itself read from the storage medium realizes the functions of the above-described embodiment, and the storage medium storing the program code constitutes the present invention.
【0059】プログラムコードを供給するための記憶媒
体としては、例えば、フロッピディスク,ハードディス
ク,光ディスク,光磁気ディスク,CD−ROM,CD
−R,磁気テープ,不揮発性のメモリカード,ROMな
どを用いることができる。As a storage medium for supplying the program code, for example, a floppy disk, hard disk, optical disk, magneto-optical disk, CD-ROM, CD
-R, a magnetic tape, a nonvolatile memory card, a ROM, or the like can be used.
【0060】また、コンピュータが読出したプログラム
コードを実行することにより、前述した実施形態の機能
が実現されるだけでなく、そのプログラムコードの指示
に基づき、コンピュータ上で稼働しているOS(オペレ
ーティングシステム)などが実際の処理の一部または全
部を行い、その処理によって前述した実施形態の機能が
実現される場合も含まれることは言うまでもない。When the computer executes the readout program code, not only the functions of the above-described embodiment are realized, but also the OS (Operating System) running on the computer based on the instruction of the program code. ) May perform some or all of the actual processing, and the processing may realize the functions of the above-described embodiments.
【0061】さらに、記憶媒体から読出されたプログラ
ムコードが、コンピュータに挿入された機能拡張ボード
やコンピュータに接続された機能拡張ユニットに備わる
メモリに書込まれた後、そのプログラムコードの指示に
基づき、その機能拡張ボードや機能拡張ユニットに備わ
るCPUなどが実際の処理の一部または全部を行い、そ
の処理によって前述した実施形態の機能が実現される場
合も含まれることは言うまでもない。Further, after the program code read from the storage medium is written into a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer, based on the instructions of the program code, It goes without saying that the CPU included in the function expansion board or the function expansion unit performs part or all of the actual processing, and the processing realizes the functions of the above-described embodiments.
【0062】[0062]
【発明の効果】以上説明したように、本発明によれば、
アドレス変換機能を持たないシステムにおいてもキャッ
シュ・データの属性を細かい単位で設定可能となり、高
速かつ柔軟なキャッシュ・データ制御が可能となる。As described above, according to the present invention,
Even in a system having no address translation function, the attribute of cache data can be set in small units, and high-speed and flexible cache data control can be performed.
【0063】また、本発明によれば、キャッシュ・メモ
リのタグ・アレイの各エントリに属性を格納するフィー
ルドを設け、この属性フィールドをキャッシュ・ミス処
理時に適切に設定するので、仮想記憶システムを用いな
い計算機システムであっても、キャッシュ・メモリを細
かい単位で制御可能となり、キャッシュシステムの高速
性及び柔軟性が維持できる。According to the present invention, a field for storing an attribute is provided in each entry of the tag array of the cache memory, and this attribute field is appropriately set at the time of cache miss processing. Even if the computer system does not have a cache memory, the cache memory can be controlled in small units, and the high speed and flexibility of the cache system can be maintained.
【0064】[0064]
【図1A】本実施形態の計算機システムの構成を示すブ
ロック図である。FIG. 1A is a block diagram illustrating a configuration of a computer system according to the present embodiment.
【図1B】本実施形態の計算機システムの構成を示すブ
ロック図である。FIG. 1B is a block diagram illustrating a configuration of a computer system according to the present embodiment.
【図2】アドレス・ライン(104)上に出力されるア
ドレスaddr31-0のフィールド構成を示した図である。FIG. 2 is a diagram showing a field configuration of an address addr31-0 output on an address line (104).
【図3】キャッシュ・メモリ(101)の論理的構成を
示す図である。FIG. 3 is a diagram showing a logical configuration of a cache memory (101).
【図4】CPUコアが命令フェッチ、またはデータ・ア
クセスのためにプロセッサ内部バス・トランザクション
を発行した際の、キャッシュ・コントロール・ロジック
による処理を示すフローチャートである。FIG. 4 is a flowchart showing processing by the cache control logic when the CPU core issues a processor internal bus transaction for instruction fetch or data access.
【図5】キャッシュミス発生時の処理手順を説明するフ
ローチャートである。FIG. 5 is a flowchart illustrating a processing procedure when a cache miss occurs.
【図6】キャッシュ・ミス発生時のプロセッサ内部バ
ス、及びシステム・バス上の各信号のタイミングを示す
タイミングチャートである。FIG. 6 is a timing chart showing timings of signals on a processor internal bus and a system bus when a cache miss occurs.
【図7】キャッシュ・ミス発生時の、キャッシュ・メモ
リ内部の信号のタイミングを表すタイミングチャートで
ある。FIG. 7 is a timing chart showing the timing of signals inside the cache memory when a cache miss occurs.
【図8】キャッシュ・ミス発生時にキャッシュ・ライン
のライトバックが必要となった場合のプロセッサ内部バ
ス、及びシステム・バスの信号線の状態遷移を示すタイ
ミングチャートである。FIG. 8 is a timing chart showing a state transition of signal lines of a processor internal bus and a system bus when a write back of a cache line is required when a cache miss occurs.
【図9】タグ情報中のuフラグがライト・バック・モー
ドを示し、mフラグが原本の内容と異なっていないこと
を示しているデータ・ブロックに対するライト・ヒット
時の動作を示すタイミングチャートである。FIG. 9 is a timing chart showing an operation at the time of a write hit to a data block in which the u flag in the tag information indicates the write-back mode and the m flag indicates that the content is not different from the original content. .
【図10】タグ情報中のuフラグがライト・スルー・モ
ードであるデータ・ブロックに対するライト・ヒット時
の動作を示すタイミングチャートである。FIG. 10 is a timing chart showing an operation at the time of a write hit for a data block in which the u flag in the tag information is in the write-through mode.
Claims (16)
メモリと、 前記複数のキャッシュラインの各々に対応して、格納さ
れているデータの属性情報を格納するためのフィールド
を有するフィールドメモリと、 アクセスがキャッシュヒットした場合、キャッシュヒッ
トしたキャッシュラインに対応するフィールドから得ら
れる属性情報に基づいて当該アクセスに対応する処理を
行うキャッシュデータ処理手段と、 アクセスがキャッシュミスした場合、アクセス対象の原
本データを前記データメモリの選択されたキャッシュラ
インに格納し、前記フィールドメモリの対応するフィー
ルドに該原本データの属性情報を格納する格納手段とを
備えることを特徴とするキャッシュメモリ装置。1. A data memory having a plurality of cache lines; a field memory having a field for storing attribute information of stored data corresponding to each of the plurality of cache lines; A cache data processing means for performing a process corresponding to the access based on attribute information obtained from a field corresponding to a cache line in which a cache hit has occurred; and Storage means for storing the attribute information of the original data in a corresponding field of the field memory in a selected cache line of the memory.
むことを特徴とする請求項1に記載のキャッシュメモリ
装置。2. The cache memory device according to claim 1, wherein the attribute information includes a data update method.
て、ライト・バック方式か、ライト・スルー方式のいず
れかを示すことを特徴とする請求項2に記載のキャッシ
ュメモリ装置。3. The cache memory device according to claim 2, wherein said attribute information indicates one of a write-back method and a write-through method as a data update method.
属性情報がライト・スルーを示すキャッシュラインに対
して書き込みが発生した場合、該キャッシュラインへの
データ書込みを行うとともに、対応する原本データの更
新を行うことを特徴とする請求項3に記載のキャッシュ
メモリ装置。4. The cache data processing means, when a write occurs to a cache line whose attribute information indicates write-through, writes the data to the cache line and updates the corresponding original data. The cache memory device according to claim 3, wherein the cache memory device performs the operation.
インに格納されているデータがキャッシュヒットによっ
て更新されたか否かを示す情報を含むことを特徴とする
請求項1に記載のキャッシュメモリ装置。5. The cache memory device according to claim 1, wherein the attribute information includes information indicating whether data stored in a corresponding cache line has been updated by a cache hit.
インに格納されているデータが有効であるか無効である
かを示す情報を含むことを特徴とする請求項1に記載の
キャッシュメモリ装置。6. The cache memory device according to claim 1, wherein the attribute information includes information indicating whether data stored in a corresponding cache line is valid or invalid.
納すべきキャッシュラインにキャッシュデータが存在す
る場合、当該キャッシュラインに対応する属性情報に基
づいて該キャッシュデータの書戻しを実行することを特
徴とする請求項1に記載のキャッシュメモリ装置。7. The storage means, when cache data exists in a cache line in which new original data is to be stored, executing write-back of the cache data based on attribute information corresponding to the cache line. The cache memory device according to claim 1, wherein:
前記データメモリに対応するタグデータの一部を構成す
ることを特徴とする請求項1に記載のキャッシュメモリ
装置。8. A field for storing the attribute information,
2. The cache memory device according to claim 1, wherein a part of the tag data corresponding to the data memory is configured.
メモリと、該複数のキャッシュラインの各々に対応し
て、格納されているデータの属性情報を格納するための
フィールドを有するフィールドメモリとを備えたキャッ
シュメモリ装置の制御方法であって、 アクセスがキャッシュヒットした場合、キャッシュヒッ
トしたキャッシュラインに対応するフィールドから得ら
れる属性情報に基づいて当該アクセスに対応する処理を
行うキャッシュデータ処理工程と、 アクセスがキャッシュミスした場合、アクセス対象の原
本データを前記データメモリの選択されたキャッシュラ
インに格納し、前記フィールドメモリの対応するフィー
ルドに該原本データの属性情報を格納する格納工程とを
備えることを特徴とするキャッシュメモリ制御方法。9. A cache comprising: a data memory having a plurality of cache lines; and a field memory having a field for storing attribute information of stored data corresponding to each of the plurality of cache lines. A method of controlling a memory device, comprising: a cache data processing step of performing a process corresponding to an access based on attribute information obtained from a field corresponding to a cache line having a cache hit when the access is a cache hit; Storing the original data to be accessed in the selected cache line of the data memory in the case of a mistake, and storing attribute information of the original data in a corresponding field of the field memory. Cache memory control method.
含むことを特徴とする請求項9に記載のキャッシュメモ
リ制御方法。10. The cache memory control method according to claim 9, wherein the attribute information includes a data update method.
して、ライト・バック方式か、ライト・スルー方式のい
ずれかを示すことを特徴とする請求項10に記載のキャ
ッシュメモリ制御方法。11. The cache memory control method according to claim 10, wherein said attribute information indicates one of a write-back method and a write-through method as a data update method.
て、前記属性情報がライト・スルーを示すキャッシュラ
インに対して書き込みが発生した場合、該キャッシュラ
インへのデータ書込みが行われるとともに、対応する原
本データの更新が行われることを特徴とする請求項11
に記載のキャッシュメモリ制御方法。12. In the cache data processing step, when a write occurs to a cache line in which the attribute information indicates write-through, data is written to the cache line and the corresponding original data is updated. 12. The method according to claim 11, wherein
3. The cache memory control method according to 1.
ラインに格納されているデータがキャッシュヒットによ
って更新されたか否かを示す情報を含むことを特徴とす
る請求項9に記載のキャッシュメモリ制御方法。13. The cache memory control method according to claim 9, wherein said attribute information includes information indicating whether data stored in a corresponding cache line has been updated by a cache hit.
ラインに格納されているデータが有効であるか無効であ
るかを示す情報を含むことを特徴とする請求項9に記載
のキャッシュメモリ制御方法。14. The cache memory control method according to claim 9, wherein said attribute information includes information indicating whether data stored in a corresponding cache line is valid or invalid.
ータを格納すべきキャッシュラインにキャッシュデータ
が存在する場合、当該キャッシュラインに対応する属性
情報に基づいて該キャッシュデータの書戻しが実行され
ることを特徴とする請求項9に記載のキャッシュメモリ
制御方法。15. In the storing step, when cache data exists in a cache line in which new original data is to be stored, write-back of the cache data is executed based on attribute information corresponding to the cache line. 10. The cache memory control method according to claim 9, wherein:
が、前記データメモリに対応するタグデータの一部を構
成することを特徴とする請求項9に記載のキャッシュメ
モリ制御方法。16. The cache memory control method according to claim 9, wherein the field for storing the attribute information forms a part of the tag data corresponding to the data memory.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10079610A JPH11282750A (en) | 1998-03-26 | 1998-03-26 | Cache memory device and control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10079610A JPH11282750A (en) | 1998-03-26 | 1998-03-26 | Cache memory device and control method |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH11282750A true JPH11282750A (en) | 1999-10-15 |
Family
ID=13694813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10079610A Withdrawn JPH11282750A (en) | 1998-03-26 | 1998-03-26 | Cache memory device and control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH11282750A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2782015A1 (en) | 2013-03-22 | 2014-09-24 | Fujitsu Limited | Processor, information processing apparatus, and method for controlling cache write-back |
-
1998
- 1998-03-26 JP JP10079610A patent/JPH11282750A/en not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2782015A1 (en) | 2013-03-22 | 2014-09-24 | Fujitsu Limited | Processor, information processing apparatus, and method for controlling cache write-back |
US9323674B2 (en) | 2013-03-22 | 2016-04-26 | Fujitsu Limited | Processor, information processing apparatus, and control method of processor |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5644788A (en) | Burst transfers using an ascending or descending only burst ordering | |
US5642494A (en) | Cache memory with reduced request-blocking | |
US6434639B1 (en) | System for combining requests associated with one or more memory locations that are collectively associated with a single cache line to furnish a single memory operation | |
US6366984B1 (en) | Write combining buffer that supports snoop request | |
EP0405882B1 (en) | Move 16 block move and coprocessor interface instruction | |
JP3016575B2 (en) | Multiple cache memory access methods | |
JP3987577B2 (en) | Method and apparatus for caching system management mode information along with other information | |
US5163142A (en) | Efficient cache write technique through deferred tag modification | |
US5561783A (en) | Dynamic cache coherency method and apparatus using both write-back and write-through operations | |
JPH06318177A (en) | Method, device and computer system for reducing cache mistake penalty | |
JPH06243039A (en) | Method for operating order in cache memory system and microprocessor unit | |
US5408636A (en) | System for flushing first and second caches upon detection of a write operation to write protected areas | |
US5974497A (en) | Computer with cache-line buffers for storing prefetched data for a misaligned memory access | |
EP0835490B1 (en) | Write cache for write performance improvement | |
US5920891A (en) | Architecture and method for controlling a cache memory | |
EP1746497B1 (en) | Apparatus and method for sparse line write transactions | |
US6976130B2 (en) | Cache controller unit architecture and applied method | |
JPH04336641A (en) | Data cache and method for use in processing system | |
US5950227A (en) | CPU write-back cache coherency mechanism that transfers data from a cache memory to a main memory after access of the main memory by an alternative bus master | |
US7543113B2 (en) | Cache memory system and method capable of adaptively accommodating various memory line sizes | |
JPH11282750A (en) | Cache memory device and control method | |
US5781916A (en) | Cache control circuitry and method therefor | |
US20020169930A1 (en) | Memory access control system, method thereof and host bridge | |
US7035981B1 (en) | Asynchronous input/output cache having reduced latency | |
JPH0784879A (en) | Cache memory device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20050607 |