JPS63238646A - マイクロプロセッサ - Google Patents
マイクロプロセッサInfo
- Publication number
- JPS63238646A JPS63238646A JP62285352A JP28535287A JPS63238646A JP S63238646 A JPS63238646 A JP S63238646A JP 62285352 A JP62285352 A JP 62285352A JP 28535287 A JP28535287 A JP 28535287A JP S63238646 A JPS63238646 A JP S63238646A
- Authority
- JP
- Japan
- Prior art keywords
- signal
- cache memory
- information
- data
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- 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
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、マイクロプロセッサに関し、特にキャッシュ
メモリをチップ上に載せるワンチップマイクロプロセッ
サの高速化に好適なキャッシュメモリに関する。
メモリをチップ上に載せるワンチップマイクロプロセッ
サの高速化に好適なキャッシュメモリに関する。
中央処理装置i!1(CPU)と主記憶装置との間に設
置される高速メモリとして、従来からキャッシュメモリ
が広く知られている。このキャッシュメモリは1通常、
主記憶装置に比べて小容量ではあるが、その高速性のた
め、コンピュータの高速化に役立っている。すなわち、
CPUがアクセスする頻度の高そうな情報を主記憶から
キャッシュメモリに移しておくことにより、CPUのメ
モリ・アクセス時間を短縮させている。
置される高速メモリとして、従来からキャッシュメモリ
が広く知られている。このキャッシュメモリは1通常、
主記憶装置に比べて小容量ではあるが、その高速性のた
め、コンピュータの高速化に役立っている。すなわち、
CPUがアクセスする頻度の高そうな情報を主記憶から
キャッシュメモリに移しておくことにより、CPUのメ
モリ・アクセス時間を短縮させている。
このキャッシュメモリ方式は、汎用コンピュータからミ
ニコンピユータまで、幅広く適用されている。例えば、
ザ・モトローラ・エムシー68020 IEEE
マイクロ 8月1984年 第101頁〜第118頁 (The Motorola MC68020I EE
EMicro August、 1984 pp、1
01〜l 18)に記載された32ビットマイクロプロ
セツサMC68020は、チップ上にキャッシュメモリ
を有している。このキャッシュメモリは1個のアドレス
記憶部に対して、32ビットデータが対応している。
ニコンピユータまで、幅広く適用されている。例えば、
ザ・モトローラ・エムシー68020 IEEE
マイクロ 8月1984年 第101頁〜第118頁 (The Motorola MC68020I EE
EMicro August、 1984 pp、1
01〜l 18)に記載された32ビットマイクロプロ
セツサMC68020は、チップ上にキャッシュメモリ
を有している。このキャッシュメモリは1個のアドレス
記憶部に対して、32ビットデータが対応している。
ところが上記従来技術では、32ビットデータをアクセ
スするたびにアドレスを検索してキャッシュメモリにヒ
ツトしているか否かを判定しなければならない。そのた
め、キャッシュメモリにヒツトせず外部のメモリにアク
セスを行う場合、上記のアドレス検索に要する時間がオ
ーバヘッドとなってしまうという問題があった。
スするたびにアドレスを検索してキャッシュメモリにヒ
ツトしているか否かを判定しなければならない。そのた
め、キャッシュメモリにヒツトせず外部のメモリにアク
セスを行う場合、上記のアドレス検索に要する時間がオ
ーバヘッドとなってしまうという問題があった。
キャッシュメモリについての他の従来技術としては、特
開昭61−214039号をあげることができる。上記
公報には、キャッシュメモリの1つの行を、連想部の1
つのアドレス情報と、外部データバス中を単位とした複
数ワードから成るデータ部から構成すること、およびデ
ータ部の各ワードごとにそのワードに記憶されたデータ
が有効か否かを示すフラグ(VALIDフラグ)を設け
ることが開示されている。1つのアドレス情報に対して
複数のワードから成るデータ部が対応するため、キャッ
シュメモリ中に占める記憶されるデータ1ワード当りの
連想部の面積を相対的に小さくでき、また、上記フラグ
を利用してミスヒツト時には該当するデータのみを書込
むとによってオーバーヘッドも増やさずにすむことが開
示されている。
開昭61−214039号をあげることができる。上記
公報には、キャッシュメモリの1つの行を、連想部の1
つのアドレス情報と、外部データバス中を単位とした複
数ワードから成るデータ部から構成すること、およびデ
ータ部の各ワードごとにそのワードに記憶されたデータ
が有効か否かを示すフラグ(VALIDフラグ)を設け
ることが開示されている。1つのアドレス情報に対して
複数のワードから成るデータ部が対応するため、キャッ
シュメモリ中に占める記憶されるデータ1ワード当りの
連想部の面積を相対的に小さくでき、また、上記フラグ
を利用してミスヒツト時には該当するデータのみを書込
むとによってオーバーヘッドも増やさずにすむことが開
示されている。
上記従来技術では、キャッシュ検索時のオーバーヘッド
について配慮されておらず、キャッシュメモリのアクセ
ス高速化のうえで問題点があった。
について配慮されておらず、キャッシュメモリのアクセ
ス高速化のうえで問題点があった。
本発明の目的は、命令のブリフェッチやスタック領域へ
退避しておいたレジスタの回復等の場合に起こるキャッ
シュメモリへのシーケンシャルなアクセスの際、連続し
たアドレスに対するキャッシュ検索に要するオーバヘッ
ドを削減可能な、キャッシュメモリ付のマイクロプロセ
ッサを提供することにある。
退避しておいたレジスタの回復等の場合に起こるキャッ
シュメモリへのシーケンシャルなアクセスの際、連続し
たアドレスに対するキャッシュ検索に要するオーバヘッ
ドを削減可能な、キャッシュメモリ付のマイクロプロセ
ッサを提供することにある。
上記目的を達成するため、本発明のキャッシュメモリ付
のマイクロプロセッサは次のような構成から成る。上記
マイクロプロセッサに内蔵される上記キャッシュメモリ
は、複数ビットからなるタグアドレスを有し、上記タグ
アドレスによってアドレスされる複数のデータエリアが
行方向および列方向にマトリクス状に構成され、上記タ
グアドレスの所定ビット情報を共通に利用して同一行の
複数のデータエリリアがアクセスされ、上記タグ、アド
レスの少なくとも残りの1ビットに従って上記同一行の
上記複数のデータエリアの1つが選択的に指定されるキ
ャッシュメモリであり、上記キャッシュメモリの動作を
制御するキャッシュメモリ制御回路をプロセッサ中に有
する。
のマイクロプロセッサは次のような構成から成る。上記
マイクロプロセッサに内蔵される上記キャッシュメモリ
は、複数ビットからなるタグアドレスを有し、上記タグ
アドレスによってアドレスされる複数のデータエリアが
行方向および列方向にマトリクス状に構成され、上記タ
グアドレスの所定ビット情報を共通に利用して同一行の
複数のデータエリリアがアクセスされ、上記タグ、アド
レスの少なくとも残りの1ビットに従って上記同一行の
上記複数のデータエリアの1つが選択的に指定されるキ
ャッシュメモリであり、上記キャッシュメモリの動作を
制御するキャッシュメモリ制御回路をプロセッサ中に有
する。
上記キャッシュメモリ中の上記複数のデータエリアは、
そのデータエリアに有効なデータが記憶されているか否
かを示すフラグを各データエリア毎に有し、上記キャッ
シュメモリ制御回路は、上記フラグを読出す手段とその
読出されたフラグの情報のうちの少なくとも一部を保持
する保持手段とを有する。
そのデータエリアに有効なデータが記憶されているか否
かを示すフラグを各データエリア毎に有し、上記キャッ
シュメモリ制御回路は、上記フラグを読出す手段とその
読出されたフラグの情報のうちの少なくとも一部を保持
する保持手段とを有する。
上記連続した複数のデータエリアをシーケンシャルにア
クセスする際、上記残りのビットの信号によって当該行
のうち最初に選択的に示めされるデータエリアの検索時
に、上記最初に示めされるデータエリア以外のデータエ
リアのフラグの情報を上記保持手段に保持し、上記残り
のビットの他の信号によってそれ以降に選択的に示めさ
れる当該行のデータエリアについては上記保持手段に保
持され・た上記フラグの情報によってキャッシュメモリ
のヒツト判定を行なう。
クセスする際、上記残りのビットの信号によって当該行
のうち最初に選択的に示めされるデータエリアの検索時
に、上記最初に示めされるデータエリア以外のデータエ
リアのフラグの情報を上記保持手段に保持し、上記残り
のビットの他の信号によってそれ以降に選択的に示めさ
れる当該行のデータエリアについては上記保持手段に保
持され・た上記フラグの情報によってキャッシュメモリ
のヒツト判定を行なう。
このように、最初にアクセスされるデータエリア以外の
データエリアの検索時には逐一キャッシュ検索を行なう
必要がなく、上記保持結果を用いて直ちにヒツト/ミス
ヒツトの判定ができるので。
データエリアの検索時には逐一キャッシュ検索を行なう
必要がなく、上記保持結果を用いて直ちにヒツト/ミス
ヒツトの判定ができるので。
上記キャッシュ検索に要するオーバヘッド時間を削減す
ることができる。
ることができる。
(実施例〕
第1図は、本発明の一実施例のマイクロプロセッサの栂
成因である。
成因である。
キャッシュメモリ1を内蔵するマイクロプロセッサ20
0は1例えば、メモリのデータをバイト単位にアドレッ
シング可能で32ビットのアドレス空間を有し、メモリ
との間では32ビットを基本単位(ワード)としてデー
タの転送を行うものとする。また、説明を簡単にするた
め、キャッシュメモリにはデータは保持せず、命令のみ
を保持するものとする。
0は1例えば、メモリのデータをバイト単位にアドレッ
シング可能で32ビットのアドレス空間を有し、メモリ
との間では32ビットを基本単位(ワード)としてデー
タの転送を行うものとする。また、説明を簡単にするた
め、キャッシュメモリにはデータは保持せず、命令のみ
を保持するものとする。
マイクロプロセッサ200は命令実行部201゜キャッ
シュメモリl、キャッシュメモリ制御回路202、およ
びキャッシュメモリ読出し・書込み制御回路100より
構成される。また、マイクロプロセッサ200は外部メ
モリ204と接続されており、マイクロプロセッサ20
0は外部メモリ中に格納されているプログラムやデータ
を用いて実行を進めていく。
シュメモリl、キャッシュメモリ制御回路202、およ
びキャッシュメモリ読出し・書込み制御回路100より
構成される。また、マイクロプロセッサ200は外部メ
モリ204と接続されており、マイクロプロセッサ20
0は外部メモリ中に格納されているプログラムやデータ
を用いて実行を進めていく。
まず、第2図を用いてキャッシュメモリの動作の概要を
説明する。第2図は、第1図におけるキャッシュメモリ
1の内部の概略を示す図である。
説明する。第2図は、第1図におけるキャッシュメモリ
1の内部の概略を示す図である。
連想部の1つのアドレス情報402に対して。
連続したワードアドレスを有する2つのデータエリア4
03a、403bが対応しており、これが1つの行を形
成する。この行が列方向に複数個積み重ねられ、マトリ
クス状のキャッシュメモリを形成している。
03a、403bが対応しており、これが1つの行を形
成する。この行が列方向に複数個積み重ねられ、マトリ
クス状のキャッシュメモリを形成している。
上記2つのデータエリアのうち左側の第1のデータエリ
ア403aには偶数ワードアドレスが、右側の第2のデ
ータエリア403bには奇数ワードアドレスが割当られ
ている。また両データエリアには有効なデータが記憶さ
れているか否かを示すVALIDフラグ403 a’
、 403 b’ が設けられている。
ア403aには偶数ワードアドレスが、右側の第2のデ
ータエリア403bには奇数ワードアドレスが割当られ
ている。また両データエリアには有効なデータが記憶さ
れているか否かを示すVALIDフラグ403 a’
、 403 b’ が設けられている。
本発明の特徴的な動作は、上記連続したデータエリアを
アクセスする場合になされる。すなわち、アドレス情報
によって上記第1のデータエリア403aを読み出す際
にそのエリアのフラグ403 a’ と共に第2のデー
タエリアのフラグ403b’も読み出して上記フラグ4
03b’の情報を保持手段に格納しておく、この第2の
データエリアは、シーケンシャルなアクセスの際に第1
のデータエリアに引続いてアクセスされる確率の高いデ
ータエリアである。続いて上記第2のデータエリア40
3bを読み出す際には、上記保持手段に格納されている
フラグ403 b’の情報を用いてキャッシュメモリの
ヒツト判定を行なう。
アクセスする場合になされる。すなわち、アドレス情報
によって上記第1のデータエリア403aを読み出す際
にそのエリアのフラグ403 a’ と共に第2のデー
タエリアのフラグ403b’も読み出して上記フラグ4
03b’の情報を保持手段に格納しておく、この第2の
データエリアは、シーケンシャルなアクセスの際に第1
のデータエリアに引続いてアクセスされる確率の高いデ
ータエリアである。続いて上記第2のデータエリア40
3bを読み出す際には、上記保持手段に格納されている
フラグ403 b’の情報を用いてキャッシュメモリの
ヒツト判定を行なう。
上記の動作により、第2のデータエリアの読出しの際に
は上記保持手段にすでに格納されているフラグ情報に基
いて直ちにキャッシュメモリのヒツト判定を行なうこと
ができるので、第2のデータエリアの読出しの際にあら
ためて第2のデータエリアのフラグを読出す場合に比べ
て、アクセス時間の短縮をはかることができる。上記保
持手段に格納されたフラグ情報に基いたヒツト判定につ
いては、後述のキャッシュメモリ制御回路のところで説
明する。
は上記保持手段にすでに格納されているフラグ情報に基
いて直ちにキャッシュメモリのヒツト判定を行なうこと
ができるので、第2のデータエリアの読出しの際にあら
ためて第2のデータエリアのフラグを読出す場合に比べ
て、アクセス時間の短縮をはかることができる。上記保
持手段に格納されたフラグ情報に基いたヒツト判定につ
いては、後述のキャッシュメモリ制御回路のところで説
明する。
以下、第1図の各構成要素の内部構成とその動作につい
て説明する。
て説明する。
まず、キャッシュメモリ1の構成を第3図を用いて説明
する。
する。
キャッシュメモリ1の主要部は連想メモリ2とRAM
3 a 、 3 bであり、先にFig、2を用いて説
明したように、連想メモリ2中の1つの連想アドレス情
報に対して、連続したワードアドレスを有する2つのデ
ータエリア(それぞれ3a、3bに格納)が対応する。
3 a 、 3 bであり、先にFig、2を用いて説
明したように、連想メモリ2中の1つの連想アドレス情
報に対して、連続したワードアドレスを有する2つのデ
ータエリア(それぞれ3a、3bに格納)が対応する。
ここでRAM 3 a 、 3 b中の各データエリア
にはフラグ部分(3a’。
にはフラグ部分(3a’。
3b′)が設けられている。また本実施例では連想メモ
リ2内にも、アドレスが有効な状態で格納されているこ
とを示すフラグ部分2′が設けられている。
リ2内にも、アドレスが有効な状態で格納されているこ
とを示すフラグ部分2′が設けられている。
キャッシュメモリ1には、32ビットのアドレス信号の
うち、命令フェッチアドレスとして上位29ビット(A
31〜A3)の信号12と、30ビット目(A2)の信
号11が入力される。信号11は命令アドレスが偶数か
奇数かを示す信号であって、0のとき偶数アドレス、■
のとき奇数アドレスであることを示す。また、命令入力
として32ビットの信号14が入力される。また、制御
信号として信号18,19,20,21.22が入力さ
れる。キャッシュメモリ1から読出された32ビットの
命令は信号13として出力される。
うち、命令フェッチアドレスとして上位29ビット(A
31〜A3)の信号12と、30ビット目(A2)の信
号11が入力される。信号11は命令アドレスが偶数か
奇数かを示す信号であって、0のとき偶数アドレス、■
のとき奇数アドレスであることを示す。また、命令入力
として32ビットの信号14が入力される。また、制御
信号として信号18,19,20,21.22が入力さ
れる。キャッシュメモリ1から読出された32ビットの
命令は信号13として出力される。
また、ヒツト/ミスヒツトに関する情報は、上記各デー
タエリアのフラグ部分3a’ 、3b’からの信号に基
いて生成されるVALIDフラグ信号15.16および
17としてそれぞれ出力される。
タエリアのフラグ部分3a’ 、3b’からの信号に基
いて生成されるVALIDフラグ信号15.16および
17としてそれぞれ出力される。
VALIDフラグ信号15は、キャッシュ検索の結果、
連想部2内に当該連想されるアドレス情報が含まれてい
ないときに出力される信号である。
連想部2内に当該連想されるアドレス情報が含まれてい
ないときに出力される信号である。
VALIDフラグ信号16は、アクセス中の命令アドレ
ス内に有効な命令が格納されているときに出力される信
号である。また、VALIDフラグ信号17は、アクセ
ス中の命令アドレスが偶数であるときに次にアクセスさ
れる確率の高い奇数の命令アドレスの命令がRAM36
内に有効な状態で存在している場合に出力される信号で
ある。
ス内に有効な命令が格納されているときに出力される信
号である。また、VALIDフラグ信号17は、アクセ
ス中の命令アドレスが偶数であるときに次にアクセスさ
れる確率の高い奇数の命令アドレスの命令がRAM36
内に有効な状態で存在している場合に出力される信号で
ある。
連想メモリ2には連想・書込み入力として上記信号12
が、VALIDフラグとして信号18が入力され、連想
結果のヒツト/ミスヒツトが信号33に、どの行にヒツ
トしたかが信号40に出力される。RAM3a、3bは
信号40によってアドレッシングされ、書込み入力とし
て信号14゜34.11が入力される。読出し出力は信
号31゜32.35,36である。RAM3aの入力信
号14に対応する出力は信号31.入力信号34に対応
する出力は信号35であり、RAM36の入力信号14
に対応する出力は信号32、入力信号11に対応する出
力は信号36である。セレクタ4に入力された信号31
,32は信号11によって選択され、信号11が0のと
きは信号31の値、1のときは信号32の値が信号13
に出力される。
が、VALIDフラグとして信号18が入力され、連想
結果のヒツト/ミスヒツトが信号33に、どの行にヒツ
トしたかが信号40に出力される。RAM3a、3bは
信号40によってアドレッシングされ、書込み入力とし
て信号14゜34.11が入力される。読出し出力は信
号31゜32.35,36である。RAM3aの入力信
号14に対応する出力は信号31.入力信号34に対応
する出力は信号35であり、RAM36の入力信号14
に対応する出力は信号32、入力信号11に対応する出
力は信号36である。セレクタ4に入力された信号31
,32は信号11によって選択され、信号11が0のと
きは信号31の値、1のときは信号32の値が信号13
に出力される。
信号19は連想メモリ2の書込み指示信号であり、信号
20は書込む行の指定信号である。信号21はRAFi
3aの書込み指示信号であり、信号22はRAM3bの
書込み指示信号である。
20は書込む行の指定信号である。信号21はRAFi
3aの書込み指示信号であり、信号22はRAM3bの
書込み指示信号である。
連想メモリ2は29ビットの連想情報と1ビットのVA
LIDフラグを記憶する。上記連想メモリの書込み指示
信号19の状態により、連想メモリ2は次のような動作
をする。まず、信号19が0”のときは、信号12と各
行に記憶されている連想情報とを比較する。その結果、
一致した行があり、かつその行のVALIDフラグ2′
が1の場合(すなわち当該アドレスが有効に存在してい
る場合)には信号33を“′1″にすると共に、信号4
0のその行に対応するラインを1′″にする。この信号
33からインバータ5を介して取出される”0” +7
)VALID7ラグ信号15は、連想部2内に連想され
る有効なアドレス情報が含まれていることを示す。次に
信号19が# I Hのときには、信号20によって指
定されるROWに連想情報として信号12の値とVAL
IDフラグとして信号18の値とを書込む。
LIDフラグを記憶する。上記連想メモリの書込み指示
信号19の状態により、連想メモリ2は次のような動作
をする。まず、信号19が0”のときは、信号12と各
行に記憶されている連想情報とを比較する。その結果、
一致した行があり、かつその行のVALIDフラグ2′
が1の場合(すなわち当該アドレスが有効に存在してい
る場合)には信号33を“′1″にすると共に、信号4
0のその行に対応するラインを1′″にする。この信号
33からインバータ5を介して取出される”0” +7
)VALID7ラグ信号15は、連想部2内に連想され
る有効なアドレス情報が含まれていることを示す。次に
信号19が# I Hのときには、信号20によって指
定されるROWに連想情報として信号12の値とVAL
IDフラグとして信号18の値とを書込む。
RAM3aとRAM3bはそれぞれ偶数ワードアドレス
、奇数ワードアドレスの命令を保持する。
、奇数ワードアドレスの命令を保持する。
キャッシュメモリ1は、この他に、インバータ5゜6、
ANDゲート7.8,9、ORゲート10からなる。
ANDゲート7.8,9、ORゲート10からなる。
このキャッシュメモリ1の読出し動作は、第1図中のキ
ャッシュメモリ読出し・書込み制御回路100の制御の
下、次のように行なわれる。このキャッシュメモリ読出
し・書込み制御回路の一例を第4図に示す。書込み信号
50をJ# OIIにし。
ャッシュメモリ読出し・書込み制御回路100の制御の
下、次のように行なわれる。このキャッシュメモリ読出
し・書込み制御回路の一例を第4図に示す。書込み信号
50をJ# OIIにし。
読出す命令のアドレスを前述の信号工1および信号12
として入力する。書込み信号50が′0′″なので、書
込み制御回路のANDゲート106゜107.108に
よって連想メモリ2、RAM 3 a 、 3 bに書
込みを指示する信号19゜21.22も“0″にされる
。連想メモリ2は信号19が0”なので、信号12によ
って連想を行い、結果が信号33および信号40に出力
される。
として入力する。書込み信号50が′0′″なので、書
込み制御回路のANDゲート106゜107.108に
よって連想メモリ2、RAM 3 a 、 3 bに書
込みを指示する信号19゜21.22も“0″にされる
。連想メモリ2は信号19が0”なので、信号12によ
って連想を行い、結果が信号33および信号40に出力
される。
本発明の特徴的な読出し動作はキャッシュメモリ制御回
路202により次のようにしてなされる。
路202により次のようにしてなされる。
第5図はこの命令キャッシュ制御回路202の構成例を
示したものである。命令キャッシュ制御回路202は命
令実行部201からの信号である分岐指示信号211ま
たはブリフェッチ指示信号212を受けて動作を開始す
る。分岐指示信号211はプログラムの流れにおいて分
岐が発生した場合に、ブリフェッチ指示信号212は分
岐が発生せずシーケンシャルにプログラムを実行する場
合に、各々命令実行部から命令キャッシュ制御回路に入
力される信号である。
示したものである。命令キャッシュ制御回路202は命
令実行部201からの信号である分岐指示信号211ま
たはブリフェッチ指示信号212を受けて動作を開始す
る。分岐指示信号211はプログラムの流れにおいて分
岐が発生した場合に、ブリフェッチ指示信号212は分
岐が発生せずシーケンシャルにプログラムを実行する場
合に、各々命令実行部から命令キャッシュ制御回路に入
力される信号である。
まず、命令実行部201が分岐指示の場合(信号211
がII 11yで212がn0u)、およびブリフェッ
チ指示でかつ命令アドレスが偶数である場合(信号21
1がII O#l、信号212が″1″。
がII 11yで212がn0u)、およびブリフェッ
チ指示でかつ命令アドレスが偶数である場合(信号21
1がII O#l、信号212が″1″。
信号11が110′1)には、インバータ222、AN
Dゲート223,224.およびORゲー1へ225に
より、ORゲート225の出力は′】′となる。このた
め、アクセス中の命令アドレス内に有効な命令が格納さ
れていることを示すVALIDフラグ信号16が1″′
であるとき(格納されているとき)はANDゲート23
1の出力が1”となって、キャッシュメモリアクセス指
示信号215がORゲート233を介して出力される。
Dゲート223,224.およびORゲー1へ225に
より、ORゲート225の出力は′】′となる。このた
め、アクセス中の命令アドレス内に有効な命令が格納さ
れていることを示すVALIDフラグ信号16が1″′
であるとき(格納されているとき)はANDゲート23
1の出力が1”となって、キャッシュメモリアクセス指
示信号215がORゲート233を介して出力される。
一方、VALIDフラグ信号がHOIIであるとき(格
納されていないとき)は、インバータ226.ANDゲ
ート228、およびORゲー1−230を介して外部メ
モリアクセス指示信号214が出力される。
納されていないとき)は、インバータ226.ANDゲ
ート228、およびORゲー1−230を介して外部メ
モリアクセス指示信号214が出力される。
このとき、ORゲート225の出力は、Dフリップフロ
ップ(D−FF)221のクロック入力CKにも入力さ
れる。このD−FFのD入力には、アクセス中の命令ア
ドレスが偶数アドレスであるときに次にアクセスされる
確率の高い奇数アドレ 。
ップ(D−FF)221のクロック入力CKにも入力さ
れる。このD−FFのD入力には、アクセス中の命令ア
ドレスが偶数アドレスであるときに次にアクセスされる
確率の高い奇数アドレ 。
スの命令がRAM3b中に有効な状態で存在しているこ
とを示すVALIDフラグ信号17が入力されている。
とを示すVALIDフラグ信号17が入力されている。
すなわち、偶数アドレスをアクセス中に、すでに奇数ア
ドレス側のデータの存在状況がVAL IDフラグ信号
17として D−FF221のD入力に加えられているのである。
ドレス側のデータの存在状況がVAL IDフラグ信号
17として D−FF221のD入力に加えられているのである。
命令実行部201がブリフェッチ指示でかつ命令アドレ
スが先の偶数の状態から奇数の状態となった場合(信号
211がJ Q 71.信号212が“1”、信号11
が711 ″)には、上記D−FF221を中心とした
命令キャッシュ制御回路202が本発明に特徴的な動作
をする。まず信号11が111 uになったことにより
、ORゲート225の働きによってD−FF221のク
ロック入力CKは10″になる。このクロック入力の変
化のタイミングでVALIDフラグ信号17の情報がD
−FFのQ出力に出力される。
スが先の偶数の状態から奇数の状態となった場合(信号
211がJ Q 71.信号212が“1”、信号11
が711 ″)には、上記D−FF221を中心とした
命令キャッシュ制御回路202が本発明に特徴的な動作
をする。まず信号11が111 uになったことにより
、ORゲート225の働きによってD−FF221のク
ロック入力CKは10″になる。このクロック入力の変
化のタイミングでVALIDフラグ信号17の情報がD
−FFのQ出力に出力される。
VALIDフラグ信号I7がl′″ (奇数アドレスに
命令が存在)ならばQ出力も“′1・′となって、AN
+’)ゲート232およびORゲート233を介してキ
ャッシュメモリアクセス指示信号215が出力される。
命令が存在)ならばQ出力も“′1・′となって、AN
+’)ゲート232およびORゲート233を介してキ
ャッシュメモリアクセス指示信号215が出力される。
一方VALIDフラグ信号17が”0” (奇数アド
レスに命令が存在しない)ならばQ出力も0′″となっ
て、インバータ227、ANDゲート229、およびO
Rゲート230を介して外部メモリアクセス指示信号2
14が出力される。
レスに命令が存在しない)ならばQ出力も0′″となっ
て、インバータ227、ANDゲート229、およびO
Rゲート230を介して外部メモリアクセス指示信号2
14が出力される。
以上の動作をフローチャートで示すと、第6図のように
なる。
なる。
命令実行部が分岐指示(信号211が“1′・)のとき
は処理302から開始し、命令ブリフェッチ指示(信号
212がzEn)のときは処理301から開始する。処
理301では命令アドレスが奇数あるいは偶数であるか
を検査し、偶数のとき処理302へ進み、奇数のとき処
理306へ進む。ここで命令アドレス(ワードアドレス
)が偶数であることは、連想部の1つのアドレス情報に
対する複数(ここでは2つのデータエリアのうちの最初
にアクセスされるデータエリアに対するアクセスである
ことを示す。逆に命令アドレスが奇数であることは、そ
れ以外のデータエリアに対するアクセスであることを示
す。次の処理302はキャッシュメモリlの連想動作、
すなわち通常のキャッシュ検索を示す。フローチャート
から理解されるように、この処理302は、(1)命令
実行部201が分岐指示信号211を出力している場合
と、(2)命令実行部201がブリフェッチ指示信号2
12を出力している場合であってかつ命令アドレスが偶
数である(すなわち最初にアクセスされるデータエリア
へのアクセスである)場合になされる。
は処理302から開始し、命令ブリフェッチ指示(信号
212がzEn)のときは処理301から開始する。処
理301では命令アドレスが奇数あるいは偶数であるか
を検査し、偶数のとき処理302へ進み、奇数のとき処
理306へ進む。ここで命令アドレス(ワードアドレス
)が偶数であることは、連想部の1つのアドレス情報に
対する複数(ここでは2つのデータエリアのうちの最初
にアクセスされるデータエリアに対するアクセスである
ことを示す。逆に命令アドレスが奇数であることは、そ
れ以外のデータエリアに対するアクセスであることを示
す。次の処理302はキャッシュメモリlの連想動作、
すなわち通常のキャッシュ検索を示す。フローチャート
から理解されるように、この処理302は、(1)命令
実行部201が分岐指示信号211を出力している場合
と、(2)命令実行部201がブリフェッチ指示信号2
12を出力している場合であってかつ命令アドレスが偶
数である(すなわち最初にアクセスされるデータエリア
へのアクセスである)場合になされる。
処理303ではVALIDフラグ16を用いて、アクセ
スすべき命令がキャッシュメモリl内に存在することが
確認できた時(ヒツト)、処理304へ進む。逆に、存
在しないとき(ミスヒツト)、処理305へ進む。処理
304ではキャッシュメモリ1より命令を読出し、信号
215をアサートしてトライステートバッファ203を
経由して読出し命令13をデータバス213へ出方する
。処理305では外部メモリアクセス指示信号214を
7サートして、外部メモリ204から命令を読出し、デ
ータバス213へ出力する。上記処理304,305で
データバス213へ出力された命令は命令実行部201
に受取られ実行される。
スすべき命令がキャッシュメモリl内に存在することが
確認できた時(ヒツト)、処理304へ進む。逆に、存
在しないとき(ミスヒツト)、処理305へ進む。処理
304ではキャッシュメモリ1より命令を読出し、信号
215をアサートしてトライステートバッファ203を
経由して読出し命令13をデータバス213へ出方する
。処理305では外部メモリアクセス指示信号214を
7サートして、外部メモリ204から命令を読出し、デ
ータバス213へ出力する。上記処理304,305で
データバス213へ出力された命令は命令実行部201
に受取られ実行される。
一部、処理301において命令アドレスが奇数である場
合には、処理306に進む。この処理306は本発明の
特徴部分であり、フローチャートから理解されるように
、命令実行部201がブリフェッチ指示信号212を出
力している場合であってかつ命令アドレスが奇数である
(すなわち最初にアクセスされるデータエリア)以外の
データエリアへのアクセスである)場合に行なわれる。
合には、処理306に進む。この処理306は本発明の
特徴部分であり、フローチャートから理解されるように
、命令実行部201がブリフェッチ指示信号212を出
力している場合であってかつ命令アドレスが奇数である
(すなわち最初にアクセスされるデータエリア)以外の
データエリアへのアクセスである)場合に行なわれる。
この処理306では上記VALIDフラグ17を用いて
、アクセスすべき命令がキャッシュメモリ1内に存在す
ることが確認できた時(ヒツト)、処理304へ進む。
、アクセスすべき命令がキャッシュメモリ1内に存在す
ることが確認できた時(ヒツト)、処理304へ進む。
逆に、存在しないとき(ミスヒツト)、処理305へ進
む。つまり、この処理306においては、通常のキャッ
シュ検索は行なわず、直前の偶数命令アドレス時の処理
302の際に検出され、保持されていたVALIDフラ
グ17の情報を用いて、ヒツト又はミスヒツトの判断を
行なう。
む。つまり、この処理306においては、通常のキャッ
シュ検索は行なわず、直前の偶数命令アドレス時の処理
302の際に検出され、保持されていたVALIDフラ
グ17の情報を用いて、ヒツト又はミスヒツトの判断を
行なう。
なお、以上説明した実施例では、命令ブリフェッチ時の
動作について説明したが、スタック領域に退避しておい
たレジスタの回復時にも本発明が適用できることは自明
であろう。
動作について説明したが、スタック領域に退避しておい
たレジスタの回復時にも本発明が適用できることは自明
であろう。
また、本実施例では、連想部に対応するRAMのワード
数(データエリア数)を2としたが、2のべき乗であれ
ば容易に拡張できることは自明であろう。
数(データエリア数)を2としたが、2のべき乗であれ
ば容易に拡張できることは自明であろう。
本発明によれば、命令のブリフェッチやスタック領域中
のレジスタ回復のようにシーケンシャルなアクセスを行
う場合、連続したアドレスに対する検索を同時に行い、
その結果を保持しておき、連続したアドレスに対するア
クセスを行うとき。
のレジスタ回復のようにシーケンシャルなアクセスを行
う場合、連続したアドレスに対する検索を同時に行い、
その結果を保持しておき、連続したアドレスに対するア
クセスを行うとき。
キャッシュの検索を行わず、上記の保持結果を用いてヒ
ツト判定を行い、ミスヒツトのとき直ちに外部メモリへ
アクセスを行うことにより、キャッシュ検索に要するオ
ーバヘッド時間を削減できるようになる。
ツト判定を行い、ミスヒツトのとき直ちに外部メモリへ
アクセスを行うことにより、キャッシュ検索に要するオ
ーバヘッド時間を削減できるようになる。
その結果、平均的なアクセス時間を短くすることができ
る。
る。
第1図は本発明の一実施例のマイクロプロセッサの構成
図、第2図は第1図中のキャッシュメモリの内部の概要
を示す図、第3図は第1図中のキャッシュメモリの内部
構成図、第4図は第1図中のキャッシュメモリ読出し・
書込み制御回路の内部構成図、第5図は第1図中のキャ
ッシュメモリ制御回路の一部の内部構成図、第6図は第
1図中のキャッシュメモリ制御回路の動作のフローチャ
ートである。 5、符号の説明 ■・・・キャッシュメモリ、2・・・連想メモリ、3a
、3b・・・RAM、100・・・キャッシュメモリ読
出し・書込み制御回路、200・・・マイクロプロセッ
サ、201・・・命令実行部、202・・・キャッシュ
メモリ制御回路、204・・・外部メモリ。
図、第2図は第1図中のキャッシュメモリの内部の概要
を示す図、第3図は第1図中のキャッシュメモリの内部
構成図、第4図は第1図中のキャッシュメモリ読出し・
書込み制御回路の内部構成図、第5図は第1図中のキャ
ッシュメモリ制御回路の一部の内部構成図、第6図は第
1図中のキャッシュメモリ制御回路の動作のフローチャ
ートである。 5、符号の説明 ■・・・キャッシュメモリ、2・・・連想メモリ、3a
、3b・・・RAM、100・・・キャッシュメモリ読
出し・書込み制御回路、200・・・マイクロプロセッ
サ、201・・・命令実行部、202・・・キャッシュ
メモリ制御回路、204・・・外部メモリ。
Claims (1)
- 【特許請求の範囲】 1、複数ビットからなるタグアドレス、 上記タグアドレスによってアドレスされる複数のデータ
エリアが行方向および列方向にマトリクス状に構成され
、上記タグアドレスの所定ビット情報を共通に利用して
同一行の複数のデータエリリアがアクセスされ、上記タ
グアドレスの少なくとも残りの1ビットに従って上記同
一行の上記複数のデータエリアの1つが選択的に指定さ
れるキャッシュメモリ、 上記キャッシュメモリまたは外部メモリに格納された情
報に基いて命令の実行を行なう命令実行部、 上記キャッシュメモリの動作を制御するキャッシュメモ
リ制御回路から成り、 上記キャッシュメモリ中の上記複数のデータエリアは、
そのデータエリアに有効なデータが記憶されているか否
かを示すフラグを各データエリア毎に有し、 上記キャッシュメモリ制御回路は、上記フラグを読出す
手段とその読出されたフラグの情報のうちの少なくとも
一部を保持する保持手段とを有し、 上記連続した複数のデータエリアをシーケンシャルにア
クセスする際、上記残りのビットの信号によって当該行
のうち最初に選択的に示めされるデータエリアの検索時
に、上記最初に示めされるデータエリア以外のデータエ
リアのフラグの情報を上記保持手段に保持し、上記残り
のビットの他の信号によってそれ以降に選択的に示めさ
れる当該行のデータエリアについては上記保持手段に保
持された上記フラグの情報によってキャッシュメモリの
ヒット判定を行なうことを特徴とするマイクロプロセッ
サ。 2、上記複数ビットからなるタグアドレスが32ビット
であり、そのうちの上位29ビットの情報を共通に利用
して上記複数のデータエリアがアクセスされ、30ビッ
ト目の情報を利用して上記複数のデータエリアが選択的
に示めされることを特徴とする特許請求の範囲第1項記
載のマイクロプロセッサ。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP27123586 | 1986-11-14 | ||
| JP61-271235 | 1986-11-14 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS63238646A true JPS63238646A (ja) | 1988-10-04 |
Family
ID=17497237
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP62285352A Pending JPS63238646A (ja) | 1986-11-14 | 1987-11-13 | マイクロプロセッサ |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US4942521A (ja) |
| EP (1) | EP0267628B1 (ja) |
| JP (1) | JPS63238646A (ja) |
| KR (1) | KR950006590B1 (ja) |
| DE (1) | DE3750175T2 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01199249A (ja) * | 1987-10-05 | 1989-08-10 | Motorola Inc | キヤツシユラインの全エントリの充填を選択的に試みるバスマスタ |
| JPH0527971A (ja) * | 1991-07-24 | 1993-02-05 | Nec Corp | 情報処理装置 |
Families Citing this family (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2200483B (en) * | 1987-01-22 | 1991-10-16 | Nat Semiconductor Corp | Memory referencing in a high performance microprocessor |
| US6092153A (en) * | 1988-11-14 | 2000-07-18 | Lass; Stanley Edwin | Subsettable top level cache |
| JPH04233642A (ja) * | 1990-07-27 | 1992-08-21 | Dell Usa Corp | キャッシュアクセスと並列的にメモリアクセスを行なうプロセッサ及びそれに用いられる方法 |
| WO1993017386A1 (fr) * | 1992-02-28 | 1993-09-02 | Oki Electric Industry Co., Ltd. | Antememoire |
| US5574877A (en) * | 1992-09-25 | 1996-11-12 | Silicon Graphics, Inc. | TLB with two physical pages per virtual tag |
| US5553270A (en) * | 1993-09-01 | 1996-09-03 | Digital Equipment Corporation | Apparatus for providing improved memory access in page mode access systems with pipelined cache access and main memory address replay |
| US5611073A (en) * | 1995-02-09 | 1997-03-11 | Delco Electronics Corp. | Method of ensuring parameter coherency in a multi-processor system |
| JP2710580B2 (ja) * | 1995-04-14 | 1998-02-10 | 甲府日本電気株式会社 | キャッシュメモリ装置 |
| US5860127A (en) * | 1995-06-01 | 1999-01-12 | Hitachi, Ltd. | Cache memory employing dynamically controlled data array start timing and a microcomputer using the same |
| WO2005122177A1 (ja) * | 2004-06-09 | 2005-12-22 | Matsushita Electric Industrial Co., Ltd. | 半導体集積回路 |
| DE602007012519D1 (de) * | 2007-04-05 | 2011-03-31 | St Microelectronics Res & Dev | Integrierte Schaltung mit beschränktem Datenzugang |
| CN104699627B (zh) * | 2013-12-06 | 2019-05-07 | 上海芯豪微电子有限公司 | 一种缓存系统和方法 |
| US12488530B2 (en) | 2022-03-18 | 2025-12-02 | Intel Corporation | Apparatus and method for acceleration data structure re-braiding with camera position |
| US12499606B2 (en) | 2022-03-18 | 2025-12-16 | Intel Corporation | Apparatus and method for accelerating BVH builds by merging bounding boxes |
| US12517735B2 (en) | 2022-03-18 | 2026-01-06 | Intel Corporation | Apparatus and method for scheduling inference tasks |
| US12561753B2 (en) * | 2022-03-18 | 2026-02-24 | Intel Corporation | Node prefetching in a wide BVH traversal with a stack |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS61214039A (ja) * | 1985-03-20 | 1986-09-22 | Hitachi Ltd | キヤツシユメモリ |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4445172A (en) * | 1980-12-31 | 1984-04-24 | Honeywell Information Systems Inc. | Data steering logic for the output of a cache memory having an odd/even bank structure |
| US4363095A (en) * | 1980-12-31 | 1982-12-07 | Honeywell Information Systems Inc. | Hit/miss logic for a cache memory |
| US4424561A (en) * | 1980-12-31 | 1984-01-03 | Honeywell Information Systems Inc. | Odd/even bank structure for a cache memory |
| US4670839A (en) * | 1982-09-27 | 1987-06-02 | Data General Corporation | Encachement apparatus using two caches each responsive to a key for simultaneously accessing and combining data therefrom |
| US4602368A (en) * | 1983-04-15 | 1986-07-22 | Honeywell Information Systems Inc. | Dual validity bit arrays |
| US4724518A (en) * | 1983-07-29 | 1988-02-09 | Hewlett-Packard Company | Odd/even storage in cache memory |
| US4586130A (en) * | 1983-10-03 | 1986-04-29 | Digital Equipment Corporation | Central processing unit for a digital computer |
| DE3650782T2 (de) * | 1985-02-22 | 2004-06-17 | Intergraph Hardware Technologies Co., Las Vegas | Anordnung von Cachespeicherverwaltungseinheiten |
| US4811209A (en) * | 1986-07-31 | 1989-03-07 | Hewlett-Packard Company | Cache memory with multiple valid bits for each data indication the validity within different contents |
-
1987
- 1987-11-12 KR KR1019870012732A patent/KR950006590B1/ko not_active Expired - Fee Related
- 1987-11-13 JP JP62285352A patent/JPS63238646A/ja active Pending
- 1987-11-13 EP EP87116817A patent/EP0267628B1/en not_active Expired - Lifetime
- 1987-11-13 DE DE3750175T patent/DE3750175T2/de not_active Expired - Fee Related
- 1987-11-13 US US07/119,919 patent/US4942521A/en not_active Expired - Lifetime
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS61214039A (ja) * | 1985-03-20 | 1986-09-22 | Hitachi Ltd | キヤツシユメモリ |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01199249A (ja) * | 1987-10-05 | 1989-08-10 | Motorola Inc | キヤツシユラインの全エントリの充填を選択的に試みるバスマスタ |
| JPH0527971A (ja) * | 1991-07-24 | 1993-02-05 | Nec Corp | 情報処理装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| KR950006590B1 (ko) | 1995-06-19 |
| EP0267628A2 (en) | 1988-05-18 |
| EP0267628A3 (en) | 1990-07-04 |
| DE3750175T2 (de) | 1994-10-13 |
| KR880006600A (ko) | 1988-07-23 |
| DE3750175D1 (de) | 1994-08-11 |
| US4942521A (en) | 1990-07-17 |
| EP0267628B1 (en) | 1994-07-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS63238646A (ja) | マイクロプロセッサ | |
| US4755936A (en) | Apparatus and method for providing a cache memory unit with a write operation utilizing two system clock cycles | |
| US6507897B2 (en) | Memory paging control apparatus | |
| US6219764B1 (en) | Memory paging control method | |
| JP3242161B2 (ja) | データプロセッサ | |
| KR960008320B1 (ko) | 어드레스 변환장치 및 어드레스 변환방법 | |
| JPH02308349A (ja) | バッファ記憶制御装置 | |
| JPS61214039A (ja) | キヤツシユメモリ | |
| EP0304587B1 (en) | Interruptible cache loading | |
| JP2636485B2 (ja) | キャッシュ記憶装置 | |
| JPS59112479A (ja) | キヤツシユメモリの高速アクセス方式 | |
| JPH05120133A (ja) | キヤツシユ装置 | |
| JPS61237145A (ja) | ストアバツフアの制御方式 | |
| JPH06168346A (ja) | 記憶装置の構成方式 | |
| JPH0468659B2 (ja) | ||
| JPS61271572A (ja) | キヤツシユメモリ | |
| JPH0282331A (ja) | キヤツシュメモリ制御方式 | |
| JPS6261134A (ja) | キヤツシユメモリ | |
| JPS6244838A (ja) | 命令取出装置 | |
| JPH0512124A (ja) | バツフア記憶制御方式 | |
| JPH0448263B2 (ja) | ||
| JPS6055454A (ja) | デ−タ転送制御方式 | |
| JPH1031622A (ja) | キャッシュメモリ装置 | |
| JPH0433059B2 (ja) | ||
| JPS60126749A (ja) | メモリ制御方式 |