JP3199773B2 - Memory access method - Google Patents
Memory access methodInfo
- Publication number
- JP3199773B2 JP3199773B2 JP15182091A JP15182091A JP3199773B2 JP 3199773 B2 JP3199773 B2 JP 3199773B2 JP 15182091 A JP15182091 A JP 15182091A JP 15182091 A JP15182091 A JP 15182091A JP 3199773 B2 JP3199773 B2 JP 3199773B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- address
- memory
- information
- 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.)
- Expired - Fee Related
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
【0001】[0001]
【産業上の利用分野】この発明は、メモリアクセスの高
速化のためにキャッシュメモリを持つ情報処理装置に係
り、特にメモリアクセス要求に対してキャッシュミスが
発生した場合に好適なメモリアクセス方式に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an information processing apparatus having a cache memory for speeding up memory access, and more particularly to a memory access method suitable when a cache miss occurs in response to a memory access request.
【0002】[0002]
【従来の技術】従来、キャッシュメモリを内蔵するキャ
ッシュ機構を備えた情報処理装置は図3に示すように構
成されるのが一般的であった。2. Description of the Related Art Conventionally, an information processing apparatus provided with a cache mechanism having a built-in cache memory has generally been configured as shown in FIG.
【0003】図3において、1はCPUの命令解読部、
2は命令解読部1の命令解読結果をもとに命令を実行す
るCPUの命令実行部である。3は主メモリ、4は主メ
モリ3に対するアクセスを制御するメモリコントロー
ラ、5は主メモリ3の一部のデータ(命令/データ)の
写しが置かれるキャッシュメモリ6を内蔵するキャッシ
ュ機構である。7はメモリアドレスの転送に供されるア
ドレスバス(ADDR)、8は命令(INST)並びに
データ(DATA)の転送に供されるデータバス(IN
ST/DATA)である。このアドレスバス7およびデ
ータバス8はシステムバスの一部を構成している。な
お、システムバスの制御バスは省略されている。In FIG. 3, reference numeral 1 denotes a command decoding unit of a CPU;
Reference numeral 2 denotes an instruction execution unit of the CPU that executes an instruction based on the instruction decoding result of the instruction decoding unit 1. 3 is a main memory, 4 is a memory controller for controlling access to the main memory 3, and 5 is a cache mechanism incorporating a cache memory 6 in which a copy of a part of data (instruction / data) of the main memory 3 is stored. 7 is an address bus (ADDR) used for transferring memory addresses, and 8 is a data bus (IN) used for transferring instructions (INST) and data (DATA).
ST / DATA). The address bus 7 and the data bus 8 constitute a part of a system bus. The control bus of the system bus is omitted.
【0004】以上の図3の構成におけるメモリアクセス
時の動作を図4のタイミングチャートを参照して説明す
る。まず、命令実行部2が主メモリ3のA1 番地の命令
I1 をアクセスするために、サイクルT1 においてアド
レスバス7にアドレスA1 を送出したものとする。も
し、A1 番地の命令I1 がキャッシュ機構5のキャッシ
ュメモリ6中に存在するならば、キャッシュ機構5にお
いてキャッシュヒットが検出され、その命令I1 が、図
3の経路R1 で示されるように、キャッシュメモリ6か
らデータバス8上に読出されて命令解読部1に転送され
る。このように、キャッシュヒットの場合には、メモリ
アクセスは1サイクルで完了する。The operation at the time of memory access in the configuration of FIG. 3 will be described with reference to a timing chart of FIG. First, it is assumed that the instruction execution unit 2 sends the address A1 to the address bus 7 in the cycle T1 in order to access the instruction I1 at the address A1 of the main memory 3. If the instruction I1 at the address A1 exists in the cache memory 6 of the cache mechanism 5, a cache hit is detected in the cache mechanism 5, and the instruction I1 is transferred to the cache memory 5 as shown by the path R1 in FIG. 6 is read onto the data bus 8 and transferred to the instruction decoding unit 1. Thus, in the case of a cache hit, memory access is completed in one cycle.
【0005】次に、命令実行部2がA21番地の命令I21
を参照するために、サイクルT2 においてアドレスバス
7にアドレスA21を送出したものとする。もし、A21番
地の命令(I21)がキャッシュメモリ6中に存在しない
ならば、キャッシュ機構5においてキャッシュミスが検
出され、それを通知する信号(ミスヒット信号)MIS
Sと、CPUの実行動作(図3では、命令解読部1およ
び命令実行部2の動作)を中断させる信号(ホールド信
号)HOLDとがキャッシュ機構5(内の図示せぬキャ
ッシュコントローラ)から出力される。[0005] Next, the instruction execution unit 2 receives the instruction I21 at address A21.
It is assumed that the address A21 has been sent to the address bus 7 in the cycle T2 in order to refer to FIG. If the instruction (I21) at the address A21 does not exist in the cache memory 6, a cache miss is detected in the cache mechanism 5, and a signal (miss hit signal) MIS notifying the cache miss is detected.
S and a signal (hold signal) HOLD for interrupting the execution operation of the CPU (the operation of the instruction decoding unit 1 and the instruction execution unit 2 in FIG. 3) are output from the cache mechanism 5 (a cache controller (not shown) therein). You.
【0006】メモリコントローラ4は、サイクルT2 に
おいてキャッシュ機構5から信号MISSが出力される
と、次のサイクルT3 から例えばサイクルT7 までの5
サイクルで、A21番地の命令I21を含む1ブロック(キ
ャッシュブロック)を、図3の経路R2 で示されるよう
に、主メモリ3からキャッシュ機構5内のキャッシュメ
モリ6にデータバス8を介して転送するためのブロック
転送(バースト転送)制御を行う。ここでは図4に示す
ように、要求先のA21番地の命令I21を先頭とする4命
令、即ちA21番地〜A24番地の命令I21〜I24が1ブロ
ックとして転送されたものとする。[0006] When the signal MISS is output from the cache mechanism 5 in the cycle T2, the memory controller 4 changes the signal from the next cycle T3 to, for example, the cycle T7.
In a cycle, one block (cache block) including the instruction I21 at the address A21 is transferred from the main memory 3 to the cache memory 6 in the cache mechanism 5 via the data bus 8, as shown by a path R2 in FIG. Block transfer (burst transfer) control is performed. Here, as shown in FIG. 4, it is assumed that four instructions starting with the instruction I21 at address A21 of the request destination, that is, instructions I21 to I24 at addresses A21 to A24 are transferred as one block.
【0007】以上のようにして主メモリ3からキャッシ
ュ機構5に転送された1ブロックは、同キャッシュ機構
5(内のキャッシュコントローラ)によりキャッシュメ
モリ6に書込まれる。One block transferred from the main memory 3 to the cache mechanism 5 as described above is written into the cache memory 6 by the cache mechanism 5 (the cache controller therein).
【0008】キャッシュ機構5は、サイクルT7 におい
てキャッシュメモリ6への1ブロック書込み(キャッシ
ュフィル)を終了すると、次のサイクルT8 で以下に述
べるキャッシュリード動作を行う。即ちキャッシュ機構
5は、キャッシュメモリ6からA21番地の内容(ここで
は命令I21)を読出し、図3の経路R3 で示されるよう
に、データバス8を介して命令解読部1(データの場合
には命令実行部2)に転送するキャッシュリード動作を
行い、信号HOLDを解除する。このように、キャッシ
ュヒットの場合には、メモリアクセスには多くのサイク
ル(図4の例ではT2 〜T8 の7サイクル)を要する。When one block write (cache fill) to the cache memory 6 is completed in the cycle T7, the cache mechanism 5 performs the following cache read operation in the next cycle T8. That is, the cache mechanism 5 reads the contents of the address A21 (in this case, the instruction I21) from the cache memory 6, and as shown by the path R3 in FIG. 3, the instruction decoding unit 1 (in the case of data, A cache read operation for transferring to the instruction execution unit 2) is performed, and the signal HOLD is released. Thus, in the case of a cache hit, many cycles are required for memory access (7 cycles T2 to T8 in the example of FIG. 4).
【0009】[0009]
【発明が解決しようとする課題】上記したように従来
は、キャッシュミスが発生すると、信号HOLDが出力
されてCPUの動作が中断され、この中断期間中に、ア
クセス要求されたアドレスの情報を含む1キャッシュブ
ロックを主メモリからキャッシュメモリに転送してキャ
ッシュメモリに書込む動作(キャッシュフィル動作)が
行われ、この動作が全て完了するのを待ってキャッシュ
リードが行われて要求された情報がデータバス上に取出
されると共に信号HOLDが解除されるようになってい
た。As described above, conventionally, when a cache miss occurs, a signal HOLD is output and the operation of the CPU is interrupted. During this interruption period, information of the address requested to be accessed is included. An operation of transferring one cache block from the main memory to the cache memory and writing the data into the cache memory (cache fill operation) is performed. After all the operations are completed, the cache read is performed and the requested information is stored in the data. The signal HOLD is released while being taken out on the bus.
【0010】このため従来は、キャッシュミス発生時に
は、メモリアクセス速度が低下すると共にCPUの中断
時間が著しく長くなり、高速処理が行えないという問題
があった。For this reason, conventionally, when a cache miss has occurred, there has been a problem that the memory access speed is reduced and the interruption time of the CPU becomes extremely long, so that high-speed processing cannot be performed.
【0011】この発明は上記事情に鑑みてなされたもの
でその目的は、キャッシュミス発生時におけるメモリア
クセス速度の低下を極力抑えると共にCPUの中断時間
を短縮することができ、もってメモリアクセスを伴う処
理の高速化が図れるメモリアクセス方式を提供すること
にある。SUMMARY OF THE INVENTION The present invention has been made in view of the above circumstances, and has as its object to minimize a decrease in the memory access speed when a cache miss occurs and to reduce the interruption time of the CPU, thereby enabling processing involving memory access. It is an object of the present invention to provide a memory access method that can speed up the operation.
【0012】[0012]
【課題を解決するための手段】この発明は、CPUから
のメモリアクセス要求に対してキャッシュ機構において
キャッシュミスが検出されてCPUの実行が中断され、
主メモリからキャッシュ機構内のキャッシュメモリへの
ブロック転送が行われた場合に、そのブロック情報のう
ちの要求先アドレスの次のアドレス以降の各情報を順次
取込んで格納するためのリードバッファ機構と、上記要
求先アドレスの情報が転送された時点でCPUの実行中
断を解除する解除手段とを設け、ブロック転送の期間に
おけるメモリアクセス要求に対して該当するアドレスの
情報がリードバッファ機構内に存在する場合に、その情
報をCPUの命令解読部または命令実行部に送出するよ
うにしたことを特徴とするものである。According to the present invention, a cache miss is detected in a cache mechanism in response to a memory access request from a CPU, and execution of the CPU is interrupted.
When a block transfer from the main memory to the cache memory in the cache mechanism is performed, a read buffer mechanism for sequentially fetching and storing each piece of information after the address following the requested address in the block information and Release means for releasing the interruption of execution of the CPU when the information of the requested address is transferred, and the information of the address corresponding to the memory access request during the block transfer exists in the read buffer mechanism. In this case, the information is sent to an instruction decoding unit or an instruction execution unit of the CPU.
【0013】[0013]
【作用】上記の構成において、CPUからメモリアクセ
ス要求されたアドレスの情報がキャッシュ機構内のキャ
ッシュメモリに存在しないキャッシュミスが発生する
と、キャッシュ機構から信号MISSと信号HOLDが
出力され、主メモリからキャッシュメモリへのブロック
転送が開始されると共に、CPUの実行が中断される。In the above configuration, when a cache miss occurs in which the address information requested by the CPU for memory access does not exist in the cache memory in the cache mechanism, the cache mechanism outputs the signal MISS and the signal HOLD, and the main memory caches the signal MISS. At the same time as the block transfer to the memory is started, the execution of the CPU is interrupted.
【0014】さて、解除手段は、例えばキャッシュ機構
に設けられており、主メモリからキャッシュメモリへの
データバスを介して行われるブロック転送において、C
PUから要求されたアドレスの情報がデータバス上に送
出された時点で、信号HOLDを解除し、CPUの実行
を再開させる。これによりCPUは、要求した情報が転
送された時点で、それを取込んで処理を行うことがで
き、従来のようにブロック転送が終了してキャッシュリ
ードが行われて初めて処理を再開する方式に比べて高速
処理が可能となる。The release means is provided in, for example, a cache mechanism. In the block transfer performed from the main memory to the cache memory via the data bus, the release means is provided.
When the information of the address requested by the PU is transmitted onto the data bus, the signal HOLD is released, and the execution of the CPU is resumed. This allows the CPU to retrieve and process the requested information at the time it is transferred, and to resume processing only after the block transfer is completed and the cache read is performed as in the conventional method. High-speed processing becomes possible.
【0015】一方、ブロック転送される情報のうちの要
求先アドレスの次のアドレス以降の各情報はリードバッ
ファ機構にも取込まれて格納される。そして、ブロック
転送の期間におけるメモリアクセス要求に対して該当す
るアドレスの情報がリードバッファ機構内に存在する場
合には、その情報がCPUに送出される。このため、ブ
ロック転送終了前に処理を再開してメモリアクセスを要
求した場合、シーケンシャルなアクセスであれば、目的
情報はリードバッファ機構内に存在することから、直ち
にCPUに送られ、一層の高速処理が可能となる。On the other hand, the information following the address following the request destination address of the information transferred in the block is also taken in and stored in the read buffer mechanism. If the information of the address corresponding to the memory access request during the block transfer exists in the read buffer mechanism, the information is sent to the CPU. For this reason, if the memory access is requested by resuming the processing before the end of the block transfer and the access is sequential, the target information is immediately sent to the CPU because the target information exists in the read buffer mechanism, and the higher speed processing is performed. Becomes possible.
【0016】[0016]
【実施例】図1はこの発明を適用するキャッシュ機構を
備えた情報処理装置の一実施例を示すブロック構成図で
ある。なお、図3と同一部分には同一符号を付して説明
を省略する。FIG. 1 is a block diagram showing an embodiment of an information processing apparatus having a cache mechanism to which the present invention is applied. The same parts as those in FIG. 3 are denoted by the same reference numerals, and description thereof will be omitted.
【0017】図1において、15は主メモリ3の一部の
データ(命令/データ)の写しが置かれるキャッシュメ
モリ16を内蔵するキャッシュ機構である。このキャッ
シュ機構15(内の図示せぬキャッシュコントローラ)
は、キャッシュミス発生時に行われるブロック転送にお
いて、(キャッシュミスとなった)要求先アドレスのメ
モリ情報(命令またはデータ)が転送されるサイクルを
検出して信号HOLDを一時解除するようになってい
る。この点で、ブロック転送に伴うキャッシュフィル動
作が終了するまで信号HOLDを出力し続ける図3のキ
ャッシュ機構5とは異なることに注意されたい。In FIG. 1, reference numeral 15 denotes a cache mechanism having a built-in cache memory 16 in which a copy of a part of data (instruction / data) of the main memory 3 is stored. The cache mechanism 15 (a cache controller (not shown) therein)
In a block transfer performed when a cache miss occurs, a cycle in which memory information (instruction or data) of a requested address (in which a cache miss occurs) is detected and a signal HOLD is temporarily released. . It should be noted that this is different from the cache mechanism 5 of FIG. 3 in which the signal HOLD is output until the cache fill operation associated with the block transfer ends.
【0018】20は主メモリ3からキャッシュ機構15
に転送されるブロック情報のうちの例えば要求先アドレ
スの次のアドレス以降の各情報を順に取込んで格納する
ためのリードバッファ機構である。Reference numeral 20 denotes a cache mechanism 15 from the main memory 3.
This is a read buffer mechanism for sequentially taking in and storing, for example, each piece of information after the address next to the request destination address among the block information transferred to the.
【0019】リードバッファ機構20は、取込んだブロ
ック情報を格納するためのバッファ21と、同バッファ
21に対するリード/ライト制御を行うバッファコント
ローラ(BCNT)22とを持つ。The read buffer mechanism 20 has a buffer 21 for storing the fetched block information, and a buffer controller (BCNT) 22 for performing read / write control on the buffer 21.
【0020】バッファコントローラ22は、ブロック転
送の開始を示すブロックリード(BRD)信号をキャッ
シュ機構15から受けると、要求先アドレスのメモリ情
報が転送されるサイクルを検出し、その次のサイクルか
らブロック転送の最終サイクルまでの各サイクルで転送
されるメモリ情報をバッファ21に書込むようになって
いる。またバッファコントローラ22は、ブロック転送
の期間におけるメモリアクセス要求を監視し、その要求
アドレスのメモリ情報がバッファ21に存在する場合に
は、同情報を次に述べる専用バス23に取出すようにな
っている。When the buffer controller 22 receives a block read (BRD) signal indicating the start of block transfer from the cache mechanism 15, the buffer controller 22 detects a cycle in which memory information of the requested address is transferred, and starts block transfer from the next cycle. The memory information transferred in each cycle up to the last cycle is written in the buffer 21. Further, the buffer controller 22 monitors a memory access request during the block transfer, and when the memory information of the requested address exists in the buffer 21, the buffer controller 22 extracts the information to the dedicated bus 23 described below. .
【0021】23はバッファ21から読出される命令
(INST)またはデータ(DATA)の転送に供され
る専用バス(INST/DATA2)、24は専用バス
23上の命令またはデータバス8上の命令を命令解読部
1に選択出力するためのマルチプレクサ(MPX)、2
5は専用バス23上のデータまたはデータバス8上のデ
ータを命令実行部2に選択出力するためのマルチプレク
サ(MPX)である。マルチプレクサ24,25がデー
タバス8または専用バス23のいずれの側を選択するか
はバッファコントローラ22によって指定される。Reference numeral 23 denotes a dedicated bus (INST / DATA2) for transferring an instruction (INST) or data (DATA) read from the buffer 21, and 24 denotes an instruction on the dedicated bus 23 or an instruction on the data bus 8. A multiplexer (MPX) for selectively outputting to the instruction decoding unit 1;
Reference numeral 5 denotes a multiplexer (MPX) for selectively outputting data on the dedicated bus 23 or data on the data bus 8 to the instruction execution unit 2. Whether the multiplexers 24 and 25 select the data bus 8 or the dedicated bus 23 is specified by the buffer controller 22.
【0022】次に、図1の構成の動作を、図2のタイミ
ングチャートを適宜参照して説明する。まず、命令実行
部2が主メモリ3のA1 番地の命令I1をアクセスする
ために、サイクルT1 においてアドレスバス(ADD
R)7にアドレスA1 を送出したものとする(1stアク
セス)。このアドレスA1 は、メモリコントローラ4、
キャッシュ機構15およびリードバッファ機構20内に
一時保持される。Next, the operation of the configuration of FIG. 1 will be described with reference to the timing chart of FIG. First, in order to access the instruction I1 at the address A1 of the main memory 3, the instruction execution unit 2 accesses the address bus (ADD) in the cycle T1.
R) It is assumed that the address A1 has been sent to 7 (1st access). This address A1 is stored in the memory controller 4,
It is temporarily held in the cache mechanism 15 and the read buffer mechanism 20.
【0023】もし、命令実行部2からアドレスバス7に
送出されたA1 番地の命令I1 がキャッシュ機構15の
キャッシュメモリ16中に存在するならば、キャッシュ
機構15においてキャッシュヒットが検出される。この
場合、その命令I1 が、図1の経路R11で示されるよう
に、キャッシュメモリ16からデータバス(INST/
DATA)8上に読出される。If the instruction I1 at address A1 sent from the instruction execution unit 2 to the address bus 7 exists in the cache memory 16 of the cache unit 15, the cache unit 15 detects a cache hit. In this case, the instruction I1 is transferred from the cache memory 16 to the data bus (INST / INST) as shown by the path R11 in FIG.
DATA) 8.
【0024】データバス8上の情報(ここでは命令I1
)はマルチプレクサ24,25に導かれる。マルチプ
レクサ24,25はリードバッファ機構20内のバッフ
ァコントローラ22により制御され、通常状態において
は上記データバス8上の情報を選択するようになってい
る。またマルチプレクサ24の出力は命令アクセス(命
令フェッチ)の場合にイネーブルとなり、マルチプレク
サ25の出力はデータアクセス(オペランドフェッチ)
の場合にイネーブルとなる。このマルチプレクサ24,
25の出力イネーブル状態の切替えは、命令アクセスか
データアクセスかに応じて周知の技術により簡単に行え
るものである。Information on the data bus 8 (here, the instruction I1
) Is led to the multiplexers 24 and 25. The multiplexers 24 and 25 are controlled by a buffer controller 22 in the read buffer mechanism 20, and select information on the data bus 8 in a normal state. The output of the multiplexer 24 is enabled in the case of instruction access (instruction fetch), and the output of the multiplexer 25 is data access (operand fetch).
Is enabled in the case of. This multiplexer 24,
Switching of the output enable state of 25 can be easily performed by a well-known technique according to instruction access or data access.
【0025】以上により、キャッシュ機構15のキャッ
シュメモリ16からデータバス8上に読出された命令I
1 は、マルチプレクサ24によって命令解読部1に選択
出力され、命令解読に供される。このようにキャッシュ
ヒットの場合には、メモリアクセスは1サイクルで完了
する。As described above, the instruction I read from the cache memory 16 of the cache mechanism 15 onto the data bus 8
1 is selectively output to the instruction decoding unit 1 by the multiplexer 24 and is provided for instruction decoding. Thus, in the case of a cache hit, the memory access is completed in one cycle.
【0026】次に、命令実行部2がA21番地の命令I21
を参照するために、サイクルT2 においてアドレスバス
7にアドレスA21を送出したものとする(2ndアクセ
ス)。このアドレスA21は、メモリコントローラ4、キ
ャッシュ機構15およびリードバッファ機構20内に一
時保持される。Next, the instruction execution unit 2 executes the instruction I21 at the address A21.
It is assumed that the address A21 has been sent to the address bus 7 in the cycle T2 in order to refer to (2nd access). This address A21 is temporarily held in the memory controller 4, the cache mechanism 15, and the read buffer mechanism 20.
【0027】もし、命令実行部2からアドレスバス7に
送出されたA21番地の命令I21がキャッシュメモリ16
中に存在しないならば、キャッシュ機構15においてキ
ャッシュミスが検出され、それを通知する信号MISS
と、CPUの実行動作(図1では、命令解読部1および
命令実行部2の動作)を中断させる信号HOLDとが
(キャッシュ機構15内の図示せぬキャッシュコントロ
ーラにより)出力される。If the instruction I21 at address A21 sent from the instruction execution unit 2 to the address bus 7 is
If the cache miss is not present, a cache miss is detected in the cache mechanism 15 and a signal MISS for notifying it is notified.
And a signal HOLD for interrupting the execution operation of the CPU (the operation of the instruction decoding unit 1 and the instruction execution unit 2 in FIG. 1) is output (by a cache controller (not shown) in the cache mechanism 15).
【0028】メモリコントローラ4は、サイクルT2 に
おいてキャッシュ機構15から信号MISSが出力され
ると、次のサイクルT3 から例えばサイクルT7 までの
5サイクルで、A21番地の命令I21を含む1ブロック
(キャッシュブロック)を、図1の経路R12で示される
ように、主メモリ3からキャッシュ機構5内のキャッシ
ュメモリ6にデータバス8を介して転送するためのブロ
ック転送(バースト転送)制御を行う。この制御によ
り、図2に示すように、要求先のA21番地の命令I21を
先頭とする4命令、即ちA21番地〜A24番地の命令I21
〜I24が1ブロックとして、サイクルT4 からサイクル
T7 において順次転送されたものとする。When the signal MISS is output from the cache mechanism 15 in the cycle T2, the memory controller 4 executes one block (cache block) including the instruction I21 at address A21 in five cycles from the next cycle T3 to, for example, cycle T7. Is transferred from the main memory 3 to the cache memory 6 in the cache mechanism 5 via the data bus 8 (burst transfer), as shown by the path R12 in FIG. By this control, as shown in FIG. 2, four instructions starting with the instruction I21 at address A21 of the request destination, that is, instructions I21 at addresses A21 to A24.
II24 as one block are sequentially transferred from cycle T4 to cycle T7.
【0029】さてキャッシュ機構15(内のキャッシュ
コントローラ)は、メモリコントローラ4の制御により
ブロック転送が開始されると、その旨を信号BRDによ
りリードバッファ機構20内のバッファコントローラ2
2に通知すると共に、要求先アドレスA21の情報(命令
I21)が主メモリ3からデータバス8に送出されるメモ
リサイクル(ここでは、サイクルT4 〜T8のうちの先
頭サイクル)を検出するための動作を開始する。このメ
モリサイクルがブロック転送における何番目のメモリサ
イクルであるかは、要求アドレスA21の下位ビットであ
るブロック内オフセットにより示される。したがって、
ブロック転送期間におけるメモリサイクルをカウントす
ることにより、要求先アドレスA21の情報が送出される
メモリサイクルを検出することができる。When the block transfer is started under the control of the memory controller 4, the cache mechanism 15 (the cache controller therein) notifies the buffer controller 2 in the read buffer mechanism 20 of the fact by the signal BRD.
And an operation for detecting a memory cycle (here, the first cycle of the cycles T4 to T8) in which the information (instruction I21) of the request destination address A21 is sent from the main memory 3 to the data bus 8. To start. The order of the memory cycle in the block transfer is indicated by the in-block offset which is the lower bit of the request address A21. Therefore,
By counting the memory cycles in the block transfer period, it is possible to detect the memory cycle in which the information of the request destination address A21 is transmitted.
【0030】キャッシュ機構15(内のキャッシュコン
トローラ)は、メモリコントローラ4の制御によりブロ
ック転送が開始され、主メモリ3からデータバス8にメ
モリ情報(ここではA21番地〜A24番地の命令I21〜I
24)が順に読出されると、その情報をキャッシュメモリ
16に書込む。またキャッシュ機構15(内のキャッシ
ュコントローラ)は、ブロック転送の過程で要求先アド
レスA21の情報(命令I21)がデータバス8に送出され
るメモリサイクル(T4 )を検出すると、図2に示すよ
うに信号HOLDを解除する。これによりCPUの実行
動作が再開する。The cache mechanism 15 (internal cache controller) starts block transfer under the control of the memory controller 4, and transfers memory information (here, instructions I21 to I21 at addresses A21 to A24) from the main memory 3 to the data bus 8.
When 24) are sequentially read, the information is written into the cache memory 16. When the cache mechanism 15 (the cache controller therein) detects a memory cycle (T4) in which the information (instruction I21) of the request destination address A21 is sent to the data bus 8 in the course of the block transfer, as shown in FIG. The signal HOLD is released. Thereby, the execution operation of the CPU is restarted.
【0031】さて、サイクルT4 において主メモリ3か
らデータバス8に読出された要求先アドレスA21の命令
I21は、上記したようにキャッシュ機構15に転送され
(てキャッシュメモリ16に書込まれ)る他、マルチプ
レクサ24を介して命令解読部1に転送される(図1経
路R13)。このとき信号HOLDが解除されているた
め、CPUの命令解読部1は、マルチプレクサ24を介
して転送された要求先アドレスA21の命令I21を入力し
(1stリード)、同命令I21の解読を行う。また命令実
行部2も命令実行を再開する。ここでは命令実行部2
は、次のA22番地の命令I22をアクセスするために、サ
イクルT5 においてアドレスバス7にアドレスA22を送
出したものとする(3rdアクセス)。The instruction I21 of the request destination address A21 read from the main memory 3 to the data bus 8 in the cycle T4 is transferred to the cache mechanism 15 (written to the cache memory 16) as described above. Are transferred to the instruction decoding unit 1 via the multiplexer 24 (path R13 in FIG. 1). At this time, since the signal HOLD is released, the instruction decoding unit 1 of the CPU inputs the instruction I21 of the request destination address A21 transferred via the multiplexer 24 (1st read), and decodes the instruction I21. The instruction execution unit 2 also restarts the instruction execution. Here, the instruction execution unit 2
Is assumed to have transmitted the address A22 to the address bus 7 in cycle T5 in order to access the next instruction I22 at address A22 (3rd access).
【0032】一方リードバッファ機構20内のバッファ
コントローラ22は、キャッシュ機構15からの信号B
RDによりブロック転送開始が通知されると、キャッシ
ュ機構15と同様に、要求先アドレスA21の情報(命令
I21)が主メモリ3からデータバス8に送出されるメモ
リサイクル(サイクルT4)を検出するための動作を開
始する。On the other hand, the buffer controller 22 in the read buffer mechanism 20 receives the signal B from the cache mechanism 15
When the start of the block transfer is notified by the RD, the information (instruction I21) of the request destination address A21 is detected in the same manner as the cache mechanism 15 to detect a memory cycle (cycle T4) in which the main memory 3 is sent to the data bus 8. Start operation.
【0033】そしてバッファコントローラ22は、要求
先アドレスA21の情報(命令I21)がデータバス8に送
出されるメモリサイクル(ここでは、先頭のメモリサイ
クルであるT4 )を検出すると、次のサイクル(T5 )
からブロック転送の最終サイクル(T7 )までは、デー
タバス8を介して転送される情報、即ちブロック情報の
うちの残りの情報(ここではA22番地〜A24番地の命令
I22〜I24)を、順にバッファ21に書込む(図1経路
R14)。このように本実施例では、要求先アドレスA21
の命令I21より後の命令I22〜I24については、バッフ
ァ21にも書込まれる。When the buffer controller 22 detects a memory cycle in which the information (instruction I21) of the request destination address A21 (instruction I21) is sent to the data bus 8 (here, T4 which is the first memory cycle), the next cycle (T5) )
From the block transfer to the final cycle (T7) of block transfer, the information transferred via the data bus 8, that is, the remaining information of the block information (here, the instructions I22 to I24 at addresses A22 to A24) are sequentially buffered. 21 (path R14 in FIG. 1). As described above, in the present embodiment, the request destination address A21
The instructions I22 to I24 after the instruction I21 are also written in the buffer 21.
【0034】さて、上記したようにサイクルT4 におい
て信号HOLDが解除され、次のサイクルT5 におい
て、命令実行部2からアドレスバス7上にA22番地の命
令I22をアクセスするためのアドレスA22が送出さ
れると、キャッシュ機構15ではそのアドレスA22のメ
モリ情報が存在するか否かがチェックされる。このサイ
クルT5 ではアドレスA22のメモリ情報(命令I22)は
転送中であり、キャッシュ機構15のキャッシュメモリ
16には未だ存在しない。したがってキャッシュミスと
なり、図4に示すようにサイクルT5 において信号HO
LDが出力される。但し、信号MISSはキャッシュフ
ィル動作中であることから出力されない。As described above, the signal HOLD is released in the cycle T4, and in the next cycle T5, the address A22 for accessing the instruction I22 at the address A22 is transmitted from the instruction execution unit 2 to the address bus 7 on the address bus 7. Then, the cache mechanism 15 checks whether or not the memory information of the address A22 exists. In this cycle T5, the memory information (instruction I22) of the address A22 is being transferred, and does not yet exist in the cache memory 16 of the cache mechanism 15. Therefore, a cache miss occurs, and as shown in FIG.
LD is output. However, the signal MISS is not output because the cache fill operation is being performed.
【0035】またブロック転送の期間には、リードバッ
ファ機構20でも、アドレスバス7に出されたアドレス
(A22)のメモリ情報が同バッファ機構20内に存在す
るか否かがチェックされる。アドレスバス7にアドレス
A22が出されたサイクルT5では、このアドレスA22の
メモリ情報(命令I22)は上記したように転送中であ
り、したがってリードバッファ機構20(のバッファ2
1)内には存在しないことが検出される。During the block transfer, the read buffer mechanism 20 also checks whether or not the memory information of the address (A22) output to the address bus 7 exists in the buffer mechanism 20. In the cycle T5 in which the address A22 is output to the address bus 7, the memory information (instruction I22) of the address A22 is being transferred as described above, and therefore, the buffer 2 (of the read buffer mechanism 20)
It is detected that it does not exist in 1).
【0036】次のサイクルT6 では、アドレスA22のメ
モリ情報(命令I22)はバッファ21(およびキャッシ
ュメモリ16)に存在する。そこでバッファコントロー
ラ22は、サイクルT5 において命令実行部2により要
求されたアドレスA22の命令I22を、サイクルT6 にお
いて図1の経路R15で示されるようにバッファ21から
専用バス(INST/DATA2)23に読出す(2nd
リード)。このときバッファコントローラ22は、マル
チプレクサ24(25)が専用バス23側を選択するよ
うに切替える。これにより、専用バス23に読出された
命令I22はマルチプレクサ24を介して命令解読部1に
転送される。In the next cycle T6, the memory information (instruction I22) of the address A22 exists in the buffer 21 (and the cache memory 16). Therefore, the buffer controller 22 reads the instruction I22 of the address A22 requested by the instruction execution unit 2 in the cycle T5 from the buffer 21 to the dedicated bus (INST / DATA2) 23 in the cycle T6 as shown by the path R15 in FIG. Out (2nd
Lead). At this time, the buffer controller 22 switches so that the multiplexer 24 (25) selects the dedicated bus 23 side. As a result, the instruction I22 read out to the dedicated bus 23 is transferred to the instruction decoding unit 1 via the multiplexer 24.
【0037】またバッファコントローラ22は、要求さ
れたアドレスの情報がバッファ21に存在したことをキ
ャッシュ機構15(内のキャッシュコントローラ)に通
知するために信号(レディ信号)RDYを出力する。The buffer controller 22 outputs a signal (ready signal) RDY to notify the cache mechanism 15 (the cache controller therein) that the information of the requested address is present in the buffer 21.
【0038】キャッシュ機構15は、バッファコントロ
ーラ22からのRDY信号に応じ、図2に示すようにサ
イクルT6 において信号HOLDを解除する。これによ
り次のサイクルT7 において、命令実行部2からアドレ
スバス7上に更に次のA23番地の命令I23をアクセスす
るためのアドレスA23が送出されたものとする(4thア
クセス)。In response to the RDY signal from the buffer controller 22, the cache mechanism 15 releases the signal HOLD in the cycle T6 as shown in FIG. Thus, in the next cycle T7, it is assumed that the address A23 for accessing the instruction I23 at the next address A23 is transmitted from the instruction execution unit 2 onto the address bus 7 (4th access).
【0039】この場合、アドレスA23の命令I23はバッ
ファ21に存在することから、バッファコントローラ2
2は、そのアドレスA23の命令I23をバッファ21から
専用バス23に読出す(3rdリード)。この専用バス2
3に読出された命令I23は、マルチプレクサ24を介し
て命令解読部1に転送される。In this case, since the instruction I23 at the address A23 exists in the buffer 21, the buffer controller 2
2 reads the instruction I23 at the address A23 from the buffer 21 to the dedicated bus 23 (3rd read). This dedicated bus 2
The instruction I23 read out by No. 3 is transferred to the instruction decoding unit 1 via the multiplexer 24.
【0040】同様に、サイクルT8 において、命令実行
部2からアドレスバス7上に、更に次のA24番地の命令
I24をアクセスするためのアドレスA24が送出されると
(5thアクセス)、その命令I24はバッファ21に存在
することから、同バッファ21から専用バス23に読出
され(4thリード)、マルチプレクサ24を介して命令
解読部1に転送される。Similarly, in the cycle T8, when an address A24 for accessing the next instruction I24 at the address A24 is transmitted from the instruction execution unit 2 onto the address bus 7 (5th access), the instruction I24 is Since it exists in the buffer 21, it is read from the buffer 21 to the dedicated bus 23 (4th read) and transferred to the instruction decoding unit 1 via the multiplexer 24.
【0041】以上は、シーケンシャルアクセスの場合で
あるが、ランダムアクセスの場合には次のようになる。
即ち、キャッシュミス発生に伴うブロック転送中におい
て前記したように信号HOLDが解除され、これにより
命令実行部2からランダムなメモリアクセス要求が出さ
れた場合には、その要求先のアドレスのメモリ情報は転
送中のブロック情報に含まれていないことから、ブロッ
ク転送が完了してもリードバッファ機構20からは信号
RDYが出力されることはない。この場合、その要求先
アドレスの命令を含む新たな1ブロックの転送がキャッ
シュ機構15からメモリコントローラ4に要求される。
以下の動作は、前記と同様である。The above is the case of the sequential access, but the case of the random access is as follows.
That is, when the signal HOLD is released as described above during the block transfer due to the occurrence of the cache miss and a random memory access request is issued from the instruction execution unit 2, the memory information of the address of the request destination is Since the block information is not included in the block information being transferred, the signal RDY is not output from the read buffer mechanism 20 even when the block transfer is completed. In this case, the cache mechanism 15 requests the memory controller 4 to transfer a new block including the instruction at the requested address.
The following operation is the same as described above.
【0042】[0042]
【発明の効果】以上詳述したようにこの発明によれば、
キャッシュミス発生に伴って主メモリからキャッシュ機
構へのブロック転送が行われる場合に、要求先アドレス
の情報がキャッシュ機構に送られた時点でCPUの処理
を再開させてその情報を取込ませ、残りの転送情報につ
いてはキャッシュ機構の他にリードバッファ機構にも格
納し、ブロック転送の期間において新たに要求されたア
ドレスの情報がリードバッファ機構に存在するならば、
その情報をリードバッファ機構から読出してCPUに送
る構成としたので、キャッシュミス発生時におけるメモ
リアクセス速度の低下を極力抑えると共にCPUの中断
時間を短縮することができ、メモリアクセスを伴う処理
の高速化を図ることができる。As described in detail above, according to the present invention,
When a block transfer is performed from the main memory to the cache mechanism due to the occurrence of a cache miss, the CPU restarts the processing when the information of the requested address is sent to the cache mechanism, and fetches the information. Is stored in the read buffer mechanism in addition to the cache mechanism, and if information of a newly requested address exists in the read buffer mechanism during the block transfer,
Since the information is read from the read buffer mechanism and sent to the CPU, a decrease in the memory access speed in the event of a cache miss can be suppressed as much as possible, and the interruption time of the CPU can be shortened. Can be achieved.
【図1】この発明を適用するキャッシュ機構を備えた情
報処理装置の一実施例を示すブロック構成図。FIG. 1 is a block diagram showing an embodiment of an information processing apparatus having a cache mechanism to which the present invention is applied.
【図2】同実施例の動作を説明するためのタイミングチ
ャート。FIG. 2 is a timing chart for explaining the operation of the embodiment.
【図3】従来例を示すブロック構成図。FIG. 3 is a block diagram showing a conventional example.
【図4】同従来例の動作を説明するためのタイミングチ
ャート。FIG. 4 is a timing chart for explaining the operation of the conventional example.
1…命令解読部、2…命令実行部、3…主メモリ、4…
メモリコントローラ、7…アドレスバス(ADDR)、
8…データバス(INST/DATA)、15…キャッ
シュ機構、16…キャッシュメモリ、20…リードバッ
ファ機構、21…バッファ、22…バッファコントロー
ラ(BCNT)、23…専用バス(INST/DATA
2)、24,25…マルチプレクサ(MPX)。DESCRIPTION OF SYMBOLS 1 ... Instruction decoding part, 2 ... Instruction execution part, 3 ... Main memory, 4 ...
Memory controller, 7 ... address bus (ADDR),
8 data bus (INST / DATA), 15 cache mechanism, 16 cache memory, 20 read buffer mechanism, 21 buffer, 22 buffer controller (BCNT), 23 dedicated bus (INST / DATA)
2), 24, 25... Multiplexer (MPX).
Claims (1)
シュメモリを内蔵し、CPUからのメモリアクセス要求
に対してキャッシュミスを検出した際には、キャッシュ
ミス信号及び上記CPUの実行を中断させる信号を出力
するキャッシュ機構と、上記キャッシュミス信号に応じ、上記主メモリから上記
キャッシュメモリに要求先アドレスの情報を含む1ブロ
ックをブロック先頭から順に転送するブロック転送の制
御を行う制御手段と、 上記制御手段によるブロック転送制御により上記主メモ
リから上記キャッシュメモリにブロック転送される情報
のうち、 要求先アドレスの次のアドレス以降の各情報を
順に取込んで格納するためのリードバッファ機構であっ
て、ブロック転送の期間におけるメモリアクセス要求に
対して該当するアドレスの情報が同バッファ機構内に存
在する場合に、その情報を上記CPUに送出するリード
バッファ機構と、 上記要求先アドレスの情報が転送された時点で上記CP
Uの実行中断を解除する解除手段とを具備することを特
徴とするメモリアクセス方式。1. A cache memory in which a copy of a part of a main memory is stored, and a memory access request from a CPU is provided.
When a cache miss is detected for
A cache mechanism for outputting a miss signal and a signal for interrupting the execution of the CPU ;
One block containing the information of the request destination address in the cache memory
Block transfer system that transfers blocks in order from the top of the block.
And the main memo by the block transfer control by the control means.
Information that is block-transferred from the
A read buffer mechanism for sequentially fetching and storing each piece of information after the address following the requested address.
Memory access request during the block transfer
The information of the corresponding address exists in the buffer mechanism.
A read buffer mechanism for transmitting the information to the CPU when the information is present, and the CP when the information of the requested address is transferred.
A memory access method comprising: a release unit that releases the suspension of execution of U.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15182091A JP3199773B2 (en) | 1991-06-24 | 1991-06-24 | Memory access method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15182091A JP3199773B2 (en) | 1991-06-24 | 1991-06-24 | Memory access method |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH052533A JPH052533A (en) | 1993-01-08 |
JP3199773B2 true JP3199773B2 (en) | 2001-08-20 |
Family
ID=15527032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP15182091A Expired - Fee Related JP3199773B2 (en) | 1991-06-24 | 1991-06-24 | Memory access method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3199773B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07105098A (en) * | 1993-10-07 | 1995-04-21 | Nec Corp | Replace device of instruction cache |
CN101957588B (en) * | 2010-09-17 | 2016-08-03 | 浙江理工大学 | Case clock |
-
1991
- 1991-06-24 JP JP15182091A patent/JP3199773B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH052533A (en) | 1993-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA1310430C (en) | Hot standby memory copy system | |
JP3289661B2 (en) | Cache memory system | |
JPH06236343A (en) | Method for asynchronous read/write of data with reference to memory and direct memory access controller for it | |
JPH0337744A (en) | Data processor | |
JPH06243039A (en) | Method for operating order in cache memory system and microprocessor unit | |
US6247101B1 (en) | Tagged access synchronous bus architecture | |
JPH06309230A (en) | Bus snooping method | |
US20110022802A1 (en) | Controlling data accesses to hierarchical data stores to retain access order | |
JP3199773B2 (en) | Memory access method | |
EP0968470B1 (en) | Extra register minimizes cpu idle cycles during cache refill | |
TWI229290B (en) | Storage structure and the method capable of storing and forwarding instructions and data | |
JP3296240B2 (en) | Bus connection device | |
JPH08328959A (en) | Disk cache controller | |
JP2690691B2 (en) | Arithmetic processing device having write-back cache memory | |
JP2002342162A (en) | Method for controlling memory access and host bridge | |
JP3093446B2 (en) | Information processing device | |
JP2557857B2 (en) | Cache storage | |
JPH1055303A (en) | Memory system | |
JPH01230152A (en) | Cache memory | |
JPH04137148A (en) | Write reject controller | |
JPH0594407A (en) | Bus control system | |
JP2001344152A (en) | Cash memory device | |
JPH02259945A (en) | Storing processing system | |
JPS58115680A (en) | Information processor | |
JP2006139646A (en) | Data transfer device and data transfer method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |