JP2846697B2 - Cache memory controller - Google Patents

Cache memory controller

Info

Publication number
JP2846697B2
JP2846697B2 JP2033055A JP3305590A JP2846697B2 JP 2846697 B2 JP2846697 B2 JP 2846697B2 JP 2033055 A JP2033055 A JP 2033055A JP 3305590 A JP3305590 A JP 3305590A JP 2846697 B2 JP2846697 B2 JP 2846697B2
Authority
JP
Japan
Prior art keywords
identification number
tag
memory
process identification
data
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
Application number
JP2033055A
Other languages
Japanese (ja)
Other versions
JPH03235144A (en
Inventor
隆 大根田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sanyo Denki Co Ltd
Original Assignee
Sanyo Denki Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sanyo Denki Co Ltd filed Critical Sanyo Denki Co Ltd
Priority to JP2033055A priority Critical patent/JP2846697B2/en
Priority to EP91102021A priority patent/EP0442474B1/en
Priority to DE69126898T priority patent/DE69126898T2/en
Publication of JPH03235144A publication Critical patent/JPH03235144A/en
Application granted granted Critical
Publication of JP2846697B2 publication Critical patent/JP2846697B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】 (イ)産業上の利用分野 本発明は、主記憶のデータの一部のコピーを記憶し、
記憶データの仮想アドレスをタグ情報として記憶する仮
想アドレスキャッシュメモリに関する。
DETAILED DESCRIPTION OF THE INVENTION (a) Industrial application field The present invention stores a partial copy of data in main memory,
The present invention relates to a virtual address cache memory that stores a virtual address of stored data as tag information.

(ロ)従来の技術 「インターフェース1989年2月号P.263〜P.276」に開
示されているように、キャッシュメモリは大別して2つ
の方式に分けられ、1つは、仮想アドレスをベースとし
たタグ情報を記憶する仮想アドレスキャッシュ、他の1
つは、仮想アドレスをアドレス変換ユニット(MMUと言
う)で変換した物理アドレスを、タグ情報として記憶す
る物理アドレスキャッシュである。
(B) Conventional technology As disclosed in “Interface, February 1989, P.263 to P.276”, cache memories are roughly divided into two types. One is based on virtual addresses. Virtual address cache for storing tag information
One is a physical address cache that stores a physical address obtained by converting a virtual address by an address conversion unit (referred to as an MMU) as tag information.

仮想アドレスキャッシュは、プロセッサが出力する仮
想アドレスをそのまま用いてキャッシュをアクセスする
ので、アクセスを高速化できるという利点を有している
が、プロセッサが実行しようとするプロセスを切換え
る、所謂、コンテキストスイッチが起こる度に、キャッ
シュの内容をフラッシュしなければならないという欠点
がある。
The virtual address cache has an advantage that the access can be speeded up because the cache is accessed using the virtual address output from the processor as it is. However, a so-called context switch that switches the process to be executed by the processor is used. The disadvantage is that the contents of the cache must be flushed each time it occurs.

一方、物理アドレスキャッシュは、キャッシュと主記
憶との情報の一貫性が保たれるので、コンテキストスイ
ッチが起こる度にキャッシュの内容をフラッシュする必
要はないが、アクセスのために物理アドレスへの変換を
要するため、その変換時間の分だけキャッシュのアクセ
スが遅くなる。
On the other hand, the physical address cache does not need to flush the contents of the cache every time a context switch occurs because the information in the cache and the main memory are kept consistent. Therefore, access to the cache is delayed by the conversion time.

(ハ)発明が解決しようとする課題 従来の技術では、仮想アドレスキャッシュであっても
物理アドレスキャッシュであっても、利点を有するもの
の各々個有の欠点を有し、理想的なキャッシュメモリ制
御を実現できなかった。
(C) Problems to be Solved by the Invention According to the conventional technology, even if it is a virtual address cache or a physical address cache, it has advantages, but each has its own disadvantages, and ideal cache memory control is performed. Could not be realized.

そこで、本発明は、仮想アドレスキャッシュにおける
アクセスの高速化という利点を生かしつつ、キャッシュ
のフラッシュ回数を減少させ、キャッシュの内容を有効
に利用できるようにすることを目的とするものである。
SUMMARY OF THE INVENTION It is an object of the present invention to reduce the number of times of flushing a cache and make effective use of the contents of the cache while taking advantage of the advantage of speeding up access in a virtual address cache.

(ニ)課題を解決するための手段 本発明は、主記憶のデータの一部のコピーを記憶する
データメモリと、該データメモリに記憶したデータの仮
想アドレスの第1部分をタグ情報として記憶し、且つ、
データの有効性を示すバリッドビットを記憶したタグメ
モリより成り、プロセッサが出力する仮想アドレスの第
2部分をアドレスとして入力するキャッシュメモリの制
御装置において、複数のプロセスの中から選択した2m×
2n数(m,nは自然数)のプロセスに対して(m+n)ビ
ットのシリアルなプロセス識別番号を割り付け、前記プ
ロセッサが実行しようとするプロセスの前記プロセス識
別番号を発生するプロセス識別番号発生手段を設け、該
発生手段から発生するプロセス識別番号の前記mビット
部分を前記タグメモリのタグ情報として付加的に記憶
し、且つ、前記nビット部分を前記キャッシュメモリの
アドレスとして付加すると共に、前記プロセッサが出力
する仮想アドレスの第1部分及び前記発生手段から発生
するプロセス識別番号の前記mビット部分を、前記タグ
メモリのタグ情報と比較する比較手段を備えることによ
り、上記課題を解決するものである。
(D) Means for Solving the Problems According to the present invention, a data memory for storing a partial copy of data in a main memory, and a first part of a virtual address of the data stored in the data memory are stored as tag information. ,and,
Consists tag memory storing valid bit indicating the validity of the data, in the controller of the cache memory for inputting the second portion of the virtual address which the processor outputs as an address, 2 m × selected from a plurality of processes
2 n number (m, n are natural numbers) the process identification number generating means for allocating the (m + n) a serial process identification number of bits to process, generates the process identification number of the process that the processor attempts to execute the The m-bit part of the process identification number generated from the generating means is additionally stored as tag information of the tag memory, and the n-bit part is added as an address of the cache memory. The object is achieved by providing a comparison unit that compares a first part of a virtual address to be output and the m-bit part of a process identification number generated by the generation unit with tag information of the tag memory.

(ホ)作 用 本発明では、所定数のプロセスに割り付けられた(m
+n)ビットのプロセス識別番号のうちmビット部をタ
グメモリのタグ情報として付加し、nビット部分をキャ
ッシュメモリのアドレスとして付加しているので、キャ
ッシュメモリは2n数のエリアに分割され、各エリアが2m
数のプロセスより成るプロセスグループで利用されるこ
ととなる。依って、プロセス識別番号が割り付けられた
所定数のプロセス間であれば、コンテキストスイッチが
起こっても、キャッシュ内容をフラッシュ、即ち、無効
化する必要がなくなる。又、基本的には仮想アドレスキ
ャッシュを採用しているため、アクセスの高速性も損わ
れない。
(E) Operation In the present invention, (m
Since the m-bit part of the (+ n) -bit process identification number is added as tag information of the tag memory and the n-bit part is added as an address of the cache memory, the cache memory is divided into 2 n areas. Area 2 m
It will be used in a process group consisting of several processes. Therefore, even if a context switch occurs between the predetermined number of processes to which the process identification number is allocated, there is no need to flush the cache contents, that is, invalidate the cache contents. In addition, since a virtual address cache is basically employed, the high-speed access is not impaired.

更に、フラッシュの必要性が生じたときは、上記分割
エリアの1エリアのみをフラッシュして、他のエリアの
データを有効的に利用できる。
Further, when the necessity of the flash arises, only one of the divided areas is flashed, and the data of the other area can be used effectively.

(ヘ)実施例 第1図は、本発明の実施例としてのダイレクトマップ
ドキャッシュを示すブロック図であり、(1)は仮想ア
ドレスVAを出力するMPU、(2)はデータを記憶する主
記憶、(3)は仮想アドレスVAを物理アドレスRAに変換
するアドレス変換手段としてのMMU、(4)は主記憶の
データの一部のコピーを記憶するデータメモリ(5)と
タグメモリ(6)とより成るキャッシュメモリである。
(F) Embodiment FIG. 1 is a block diagram showing a direct mapped cache as an embodiment of the present invention, wherein (1) is an MPU for outputting a virtual address VA, and (2) is a main memory for storing data. , (3) an MMU as an address conversion means for converting a virtual address VA into a physical address RA, (4) a data memory (5) and a tag memory (6) for storing a partial copy of data in the main memory. A cache memory.

(7)はOSが複数のプロセスに割り付けたプロセスID
のうち、MPU(1)が実行しようとするプロセスIDがセ
ットされるレジスタAであって、本実施例ではOSが割り
付けられるプロセスIDを256通りとしているため、レジ
スタAは8ビットで構成されている。このレジスタAの
出力は、MMU(3)に入力されており、MMU(3)では実
行しようとするプロセスに応じて仮想アドレスVAを物理
アドレスRAに変換し、主記憶(2)にアドレスとして与
えている。尚、仮想アドレスVAのうちオフセット部分は
主記憶(2)の下位アドレスとしてそのまま与えられ
る。
(7) is the process ID assigned to multiple processes by the OS
Of these, the register A in which the process ID to be executed by the MPU (1) is set is set. In this embodiment, the process ID to which the OS is assigned is set to 256, so that the register A is composed of 8 bits. I have. The output of the register A is input to the MMU (3). The MMU (3) converts the virtual address VA into a physical address RA in accordance with a process to be executed, and gives it to the main memory (2) as an address. ing. The offset portion of the virtual address VA is given as it is as the lower address of the main memory (2).

又、本実施例では、OSにおいて、256通りのプロセスI
Dから任意の64個までのプロセスを選択し、各プロセス
にシリアルな6ビットのプロセス識別番号「000000」,
「00001」,……「111111」を割り付けており、その対
応を第4図に示すようにテーブル(8)に記憶してい
る。そして、MPU(1)が実行しようとするプロセスに
対応したプロセス識別番号を6ビットのレジスタB
(9)にセットするようにしている。
Also, in this embodiment, the OS uses 256 types of process I
Selects up to 64 arbitrary processes from D, and assigns a serial 6-bit process identification number "000000" to each process.
"00001",... "111111" are assigned, and the correspondence is stored in the table (8) as shown in FIG. Then, the process identification number corresponding to the process to be executed by the MPU (1) is stored in the 6-bit register B.
It is set to (9).

キャッシュメモリ(4)のデータメモリ(5)及びタ
グメモリ(6)には、第2図に示す仮想アドレスVA中の
インデックスフィールドが下位アドレスとして与えら
れ、レジスタB(9)の下位2ビットが上位アドレスと
して与えられる。又、タグメモリ(6)には仮想アドレ
スVA中のタグフィールドがタグ情報の下位ビットとして
記憶され、レジスタB(9)の上位4ビットがタグ情報
の上位ビットとして記憶される。このタグメモリ(6)
には、記憶したデータの有効性を示すバリッドビットV
も記憶されており、このバリッドビットをリセットする
ことにより、対応するキャッシュデータはフラッシュ、
即ち、無効化される。
The index field in the virtual address VA shown in FIG. 2 is given as a lower address to the data memory (5) and the tag memory (6) of the cache memory (4), and the lower two bits of the register B (9) are higher. Given as an address. In the tag memory (6), the tag field in the virtual address VA is stored as the lower bits of the tag information, and the upper 4 bits of the register B (9) are stored as the upper bits of the tag information. This tag memory (6)
Contains a valid bit V indicating the validity of the stored data.
By resetting this valid bit, the corresponding cache data is flushed,
That is, it is invalidated.

ところで、第1図において、(10)(11)(12)(1
3)はバスの接続を制御するバッファ、(14)はレジス
タBの上位4ビットの出力及びMPU(1)が出力する仮
想アドレスのタグフィールドをタグメモリ(6)から読
出したタグ情報と比較する比較器、(15)は比較器の出
力と読出したバリッドビットとの論理積をとるANDゲー
ト、(16)はANDゲートの出力に応じてバッファ(10)
(11)(12)(13)を制御すると共に、タグメモリ
(6)のバリッドビットをリセットするコントロールロ
ジック、(17)はバリッドビットをリセットするときの
みコントロールロジック(16)が発生するロジックアド
レスを選択するマルチプレクサMUX、(18)はスーパー
バイザーモードのときのみMPU(1)が出力する物理ア
ドレスを選択するMUXであり、主記憶(2)の特定領域
にはテーブル(8)を含むOSが常駐されており、OSはス
ーパーバイザーモードにおいてMPU(1)が出力する物
理アドレスにより直接アクセスされる。
By the way, in Fig. 1, (10) (11) (12) (1
3) is a buffer for controlling the bus connection, and (14) compares the upper 4 bits of the register B and the tag field of the virtual address output by the MPU (1) with the tag information read from the tag memory (6). A comparator, (15) an AND gate that takes the logical product of the output of the comparator and the read valid bit, (16) a buffer (10) according to the output of the AND gate
(11) Control logic that controls (12) and (13) and resets the valid bit of the tag memory (6), and (17) specifies the logic address generated by the control logic (16) only when the valid bit is reset. The multiplexer MUX to be selected (18) is a MUX to select a physical address output from the MPU (1) only in the supervisor mode, and an OS including the table (8) is resident in a specific area of the main memory (2). The OS is directly accessed by the physical address output from the MPU (1) in the supervisor mode.

以下、本実施例を更に詳しく説明する。 Hereinafter, the present embodiment will be described in more detail.

先ず、キャッシュメモリ(4)のアドレスには、上位
にレジスタBからのプロセス識別番号の下位2ビット
が、そして、下位に仮想アドレスVAのインデックスが与
えられているため、データメモリ(5)及びタグメモリ
(6)は、第3図に示すように、プロセス識別番号の下
位2ビットに対応した4つのエリア(5a)〜(5d)及び
(6a)〜(6d)に分割され、これら各エリア内において
インデックスでアドレス指定されるエントリーにデータ
及びタグ情報が記憶され、又、そのエントリーからデー
タ及びタグ情報が読出される。ここで、レジスタBは6
ビットでアドレスとして利用される2ビットを除いた残
りのビット数は4ビットであるので、各分割エリアに
は、24=16通りのプロセスに関するデータが記憶可能と
なり、これらプロセスの識別は、タグメモリ(6)内に
タグ情報として記憶したプロセス識別番号の上位4ビッ
ト部分で行われる。
First, in the address of the cache memory (4), the lower two bits of the process identification number from the register B are given in the upper part, and the index of the virtual address VA is given in the lower part. The memory (6) is divided into four areas (5a) to (5d) and (6a) to (6d) corresponding to the lower two bits of the process identification number, as shown in FIG. The data and tag information are stored in the entry addressed by the index, and the data and tag information are read from the entry. Here, register B is 6
Since the number of remaining bits excluding 2 bits used as an address is 4 bits, each divided area can store data relating to 2 4 = 16 processes. This is performed on the upper 4 bits of the process identification number stored as tag information in the memory (6).

例えば、第4図のようにプロセスIDに対してプロセス
識別番号が割り付けられているとき、プロセスID「41」
のプロセスをMPU(1)が実行しようとして、プロセスI
D「41」をレジスタAに、そして、プロセス識別番号「0
10001」をレジスタBにセットし、仮想アドレスVAを出
力すると、データメモリ(5)においては、分割エリア
(5b)のインデックスによりアドレス指定されたデータ
がバッファ(11)を介してMPU(1)に取込まれ、タグ
メモリ(6)においては、分割エリア(6b)のインデッ
クスによりアドレス指定されたタグ情報が読出され、比
較器(14)において、レジスタBの上位mビット部分及
MPU(1)が出力した仮想アドレスのタグフィールドと
比較される。
For example, when a process ID is assigned to a process ID as shown in FIG.
MPU (1) tries to execute the process
D “41” to register A, and process identification number “0”
When "10001" is set in the register B and the virtual address VA is output, in the data memory (5), the data addressed by the index of the divided area (5b) is transferred to the MPU (1) via the buffer (11). In the tag memory (6), the tag information addressed by the index of the divided area (6b) is read, and the comparator (14) reads the upper m-bit portion of the register B and the tag information.
This is compared with the tag field of the virtual address output from the MPU (1).

比較の結果、タグが一致し、そのバリッドビットが有
効であれば、キャッシュがヒットしたので、MPU(1)
は取り込んだデータを正しいと判断して利用する。ヒッ
トしなかったときは、MMU(3)で変換された物理アド
レスに基づき主記憶(2)から仮想アドレスに対応する
データがバッファ(10)を介してMPU(1)に読込まれ
る。又、このデータ及びレジスタBの上位mビット部分
とデータに対応する仮想アドレスのタグフィールドは、
データメモリ(5)及びタグメモリ(6)において、各
々、分割エリア(5b)及び(6b)のインデックスにより
アドレス指定されるエントリーに記憶される。このと
き、記憶したデータのバリッドビットがリセットされて
いればそれを有効化する。
As a result of the comparison, if the tag matches and the valid bit is valid, the cache has been hit and the MPU (1)
Determines that the captured data is correct and uses it. If no hit is found, data corresponding to the virtual address is read from the main memory (2) to the MPU (1) via the buffer (10) based on the physical address converted by the MMU (3). The tag field of the virtual address corresponding to the data and the upper m bits of the register B and the data is:
In the data memory (5) and the tag memory (6), they are stored in entries addressed by the indexes of the divided areas (5b) and (6b), respectively. At this time, if the valid bit of the stored data is reset, it is made valid.

このように、キャッシュメモリ(4)の各分割エリア
は、1グループが最大16通りのプロセスを含む、4つの
プロセスグループによって各々利用され、従って、これ
ら4つのプロセスグループに含まれる64のプロセス間で
コンテキストスイッチが起こったときは、キャッシュの
フラッシュを行う必要がない。
Thus, each divided area of the cache memory (4) is used by each of the four process groups, one group including up to 16 processes, and therefore, among the 64 processes included in these four process groups, When a context switch occurs, there is no need to flush the cache.

即ち、第5図に示すように、OSはコンテキストスイッ
チが起こると、次にMPU(1)が実行すべきプロセス
が、テーブル(8)に割り付けられているプロセスであ
るか検索し、テーブル(8)のプロセスであれば、キャ
ッシュをフラッシュすることなく、そのプロセスIDをレ
ジスタAに、そのプロセス識別番号をレジスタBにセッ
トする。
That is, as shown in FIG. 5, when a context switch occurs, the OS searches whether the process to be executed next by the MPU (1) is a process allocated to the table (8), and searches the table (8). ), The process ID is set in the register A and the process identification number is set in the register B without flushing the cache.

又、テーブル(8)に割り付けられていないプロセス
を実行すべきときは、キャッシュメモリ(4)の4つの
分割エリアのうちいずれか1つのエリアを全てフラッシ
ュする。具体的には、レジスタBにフラッシュしようと
するエリアに対応するプロセス識別番号の下位2ビット
をセットし、MPU(1)からコントロールロジック(1
6)にフラッシュの指示を与える。すると、コントロー
ルロジック(16)は、エリア全域をカバーするロジック
アドレスをタグメモリ(6)に順次出力すると共に、リ
セット信号を出力することにより、エリア内のバリッド
ビットを全てハード的にリセットしてフラッシュを行
う。
When a process not allocated to the table (8) is to be executed, any one of the four divided areas of the cache memory (4) is flushed. Specifically, the lower 2 bits of the process identification number corresponding to the area to be flushed are set in the register B, and the control logic (1) is set from the MPU (1).
6) Give flash instruction. Then, the control logic (16) sequentially outputs a logic address covering the entire area to the tag memory (6), and outputs a reset signal, thereby resetting all valid bits in the area in a hardware manner and flushing. I do.

そして、1エリアのフラッシュの後、そのエリアに対
応する複数のプロセス識別番号のいずれかを新たに実行
しようとするプロセスIDに割り付け変更し、以下同様
に、レジスタA及びBへのセットを行う。
Then, after flushing one area, one of a plurality of process identification numbers corresponding to the area is assigned to a new process ID to be executed, and the registers A and B are similarly set.

上述の実施例においては、分割エリアの1つのエリア
を全てフラッシュするようにしたが、第6図に示す構成
を付加すれば、1エリア中の1つのプロセスに関するデ
ータのみをフラッシュすることができる。
In the above-described embodiment, the entire one of the divided areas is flushed. However, if the configuration shown in FIG. 6 is added, only the data relating to one process in one area can be flushed.

即ち、第6図において、(17)はレジスタBの上位m
ビットとタグメモリの上位mビットのタグ情報とを比較
する比較器、(18)は比較器(17)からの一致信号に応
じてリセット信号を発生する以外は、コントロールロジ
ック(16)と同一の機能を有するコントロールロジック
であり、あるプロセスに関するデータをフラッシュする
場合には、レジスタBにそのプロセスのプロセス識別番
号をセットする。このようにすれば、タグメモリ(6)
のレジスタBの下位2ビットで指定されるエリアの全エ
ントリーが、ロジックアドレスにより順次アドレス指定
されるが、プロセス識別番号のmビット部分が一致する
エントリーのバリッドビットのみがリセットされ、従っ
て、レジスタBにセットしたプロセスに関するデータの
みがフラッシュされることとなる。依って、他のプロセ
スに関するデータは有効的に利用できる。
That is, in FIG. 6, (17) is the upper m of the register B.
A comparator for comparing the bit with the tag information of the upper m bits of the tag memory. (18) is the same as the control logic (16) except that a reset signal is generated in response to a match signal from the comparator (17). This is a control logic having a function. When data related to a certain process is to be flushed, the process identification number of the process is set in the register B. By doing so, the tag memory (6)
All the entries in the area specified by the lower two bits of the register B are sequentially addressed by the logic address, but only the valid bits of the entry whose m-bit portion of the process identification number matches are reset. Only the data related to the process set in "1" is flushed. Therefore, data on other processes can be effectively used.

以上の説明においては、実行しようとするプロセスの
プロセスID及びプロセス識別番号を各々セットする独立
したレジスタA及びBを有する例であったが、レジスタ
Aの所定のビット出力をプロセス識別番号として用い、
レジスタBをAで兼用することもできる。例えば、レジ
スタAの下位6ビットの出力を、レジスタBの出力の代
わりに用いるのである。この場合、例えば、プロセス識
別番号「000000」には、プロセスID0,64,128,192のうち
のいずれか1つのプロセスIDを割り付けなければならな
いように、プロセス識別番号に対して任意のプロセスID
を割り付けることができないという制御が加えられ、こ
のために、前述の実施例と比べれば自由度は減るが、回
路構成は簡略化される。
In the above description, the example has the independent registers A and B for setting the process ID and the process identification number of the process to be executed, however, a predetermined bit output of the register A is used as the process identification number,
The register B can be shared by the register A. For example, the output of the lower 6 bits of the register A is used instead of the output of the register B. In this case, for example, any one of the process IDs 0, 64, 128, and 192 must be assigned to the process identification number “000000”.
Cannot be assigned. Therefore, the degree of freedom is reduced as compared with the above-described embodiment, but the circuit configuration is simplified.

又、本発明は、上述のダイレクトマップドキャッシュ
だけでなく、nウェイセットアソシエイティブキャッシ
ュにも適用できることは言うまでもない。
Further, it goes without saying that the present invention can be applied not only to the above-described direct mapped cache but also to an n-way set associative cache.

(ト)発明の効果 本発明に依れば、仮想アドレスキャッシュを基本とし
てアクセスの高速化を保ちながら、コンテキストスイッ
チによるキャッシュ内容のフラッシュ回数を減少させる
ことができる。又、プロセスに関連してキャッシュ内容
のフラッシュを部分的に行えるので、キャッシュ内容の
有効利用を計ることができる。
(G) Effects of the Invention According to the present invention, it is possible to reduce the number of times the cache contents are flushed by the context switch while maintaining high-speed access based on the virtual address cache. Also, since the cache contents can be partially flushed in relation to the process, the cache contents can be effectively used.

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

第1図は本発明の実施例の構成を示すブロック図、第2
図は仮想アドレスのフィールド内容を示す図、第3図は
キャッシュメモリとプロセス識別番号との関係を示す
図、第4図はプロセスIDとプロセス識別番号との対応テ
ーブルを示す図、第5図は実施例におけるOSの処理内容
を示すフローチャート、第6図は他の実施例の要部を示
すブロック図である。 (1)……MPU、(2)……主記憶、(3)……MMU、
(4)……キャッシュメモリ、(5)……データメモ
リ、(6)……タグメモリ、(7)……レジスタA、
(8)……テーブル、(9)……レジスタB、(14)
(17)……比較器、(16)(18)……コントロールロジ
ック。
FIG. 1 is a block diagram showing the configuration of an embodiment of the present invention.
FIG. 3 is a diagram showing field contents of a virtual address, FIG. 3 is a diagram showing a relationship between a cache memory and a process identification number, FIG. 4 is a diagram showing a correspondence table between a process ID and a process identification number, and FIG. FIG. 6 is a block diagram showing a main part of another embodiment. (1) MPU, (2) Main memory, (3) MMU,
(4): Cache memory, (5): Data memory, (6): Tag memory, (7): Register A,
(8) ... table, (9) ... register B, (14)
(17) Comparator, (16) (18) Control logic.

Claims (1)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】複数のプロセスの中から選択した2m×2n
(m,nは自然数)のプロセスに対して(m+n)ビット
のシリアルなプロセス識別番号を割り付け、プロセッサ
が実行しようとするプロセスの前記プロセス識別番号を
発生するプロセス識別番号発生手段と、 主記憶データの一部のコピーを記憶し、前記プロセッサ
が出力する仮想アドレスのインデックスフィールド及び
前記プロセス識別番号発生手段が発生する前記プロセス
識別番号のnビット部分をアドレスとして入力するデー
タメモリと、 前記データメモリに記憶したデータの仮想アドレスのタ
グフィールド及び前記記憶したデータを用いるプロセス
の前記プロセス識別番号のmビット部分からなるタグ情
報を記憶するとともに前記記憶したデータの有効性を示
すバリッドビットを記憶し、前記プロセッサが出力する
仮想アドレスのインデックスフィールド及び前記プロセ
ス識別番号発生手段が発生する前記プロセス識別番号の
前記nビット部分をアドレスとして入力するタグメモリ
と、 前記プロセッサが出力する仮想アドレスのタグフィール
ド及び前記プロセス識別番号発生手段が発生する前記プ
ロセス識別番号の前記mビット部分を前記タグメモリの
前記タグ情報と比較する比較手段を備えたことを特徴と
するキャッシュメモリ制御装置。
1. A (m + n) -bit serial process identification number is assigned to 2 m × 2 n processes (m and n are natural numbers) selected from a plurality of processes, and the processor intends to execute the process. A process identification number generating means for generating the process identification number of a process; a virtual address index field output by the processor for storing a partial copy of main storage data; and the process generating the process identification number generating means. A data memory for inputting an n-bit part of an identification number as an address; a tag field of a virtual address tag field of data stored in the data memory; and a tag information comprising an m-bit part of the process identification number of a process using the stored data. Storing a valid bit indicating the validity of the stored data. A tag memory for inputting, as an address, an index field of a virtual address output by the processor and the n-bit portion of the process identification number generated by the process identification number generating means; and a tag of a virtual address output by the processor. A cache memory control device, comprising: comparison means for comparing a field and the m-bit portion of the process identification number generated by the process identification number generation means with the tag information of the tag memory.
JP2033055A 1990-02-13 1990-02-13 Cache memory controller Expired - Lifetime JP2846697B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2033055A JP2846697B2 (en) 1990-02-13 1990-02-13 Cache memory controller
EP91102021A EP0442474B1 (en) 1990-02-13 1991-02-13 Apparatus and method for controlling cache memory
DE69126898T DE69126898T2 (en) 1990-02-13 1991-02-13 Device and method for controlling a cache memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2033055A JP2846697B2 (en) 1990-02-13 1990-02-13 Cache memory controller

Publications (2)

Publication Number Publication Date
JPH03235144A JPH03235144A (en) 1991-10-21
JP2846697B2 true JP2846697B2 (en) 1999-01-13

Family

ID=12376077

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2033055A Expired - Lifetime JP2846697B2 (en) 1990-02-13 1990-02-13 Cache memory controller

Country Status (1)

Country Link
JP (1) JP2846697B2 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11259362A (en) * 1998-03-13 1999-09-24 Nec Corp Method and device for controlling cache memory
JP4226816B2 (en) 2001-09-28 2009-02-18 株式会社東芝 Microprocessor
JP4664586B2 (en) * 2002-11-11 2011-04-06 パナソニック株式会社 Cache control device, cache control method, and computer system
DE602004029870D1 (en) * 2003-03-06 2010-12-16 Nxp Bv DATA PROCESSING SYSTEM WITH A CACHE OPTIMIZED FOR PROCESSING DATA FLOW APPLICATIONS
JP4753549B2 (en) * 2004-05-31 2011-08-24 パナソニック株式会社 Cache memory and system
US20070266199A1 (en) * 2004-09-07 2007-11-15 Freescale Semiconductor, Inc. Virtual Address Cache and Method for Sharing Data Stored in a Virtual Address Cache
WO2008155849A1 (en) * 2007-06-20 2008-12-24 Fujitsu Limited Processor, tlb control method, tlb control program, and information processor
JP4643702B2 (en) * 2008-10-27 2011-03-02 株式会社東芝 Microprocessor
CN111984197B (en) * 2020-08-24 2023-12-15 许昌学院 Computer cache allocation method

Also Published As

Publication number Publication date
JPH03235144A (en) 1991-10-21

Similar Documents

Publication Publication Date Title
KR920005280B1 (en) High speed cache system
US5586283A (en) Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer
US5230045A (en) Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus
US5412787A (en) Two-level TLB having the second level TLB implemented in cache tag RAMs
JP3666689B2 (en) Virtual address translation method
JPH03142644A (en) Cache memory control system
JPH10177520A (en) Data processor and data processing system
US6493812B1 (en) Apparatus and method for virtual address aliasing and multiple page size support in a computer system having a prevalidated cache
JPH04320553A (en) Address converting mechanism
JP2001184263A (en) Device for invalidating and removing old cache line
JP2005538465A (en) Conversion index buffer with partial tags hashed based on page size index
JPH08227380A (en) Data-processing system
US5132927A (en) System for cache space allocation using selective addressing
JP2846697B2 (en) Cache memory controller
KR100606873B1 (en) Status bits for cache memory
US20050027960A1 (en) Translation look-aside buffer sharing among logical partitions
JP2930071B2 (en) Information processing device and processor
US5276829A (en) Data processing system including cache memory for rapidly converting a logical address into a physical address using shared memory flag
US6385696B1 (en) Embedded cache with way size bigger than page size
JP3210637B2 (en) Method and system for accessing a cache memory in a data processing system
JPH0519176B2 (en)
JPH07281948A (en) Memory controller
EP0442474A2 (en) Apparatus and method for controlling cache memory
JPH03235143A (en) Cache memory controller
JPS623354A (en) Cache memory access system