JPH0594305A - Cache memory device - Google Patents
Cache memory deviceInfo
- Publication number
- JPH0594305A JPH0594305A JP3181392A JP3181392A JPH0594305A JP H0594305 A JPH0594305 A JP H0594305A JP 3181392 A JP3181392 A JP 3181392A JP 3181392 A JP3181392 A JP 3181392A JP H0594305 A JPH0594305 A JP H0594305A
- Authority
- JP
- Japan
- Prior art keywords
- address
- instruction
- addresses
- data
- access request
- 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.)
- Granted
Links
Landscapes
- Advance Control (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明は、命令列とデータとの双
方が格納されるキャッシュメモリ装置に関するものであ
る。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a cache memory device in which both an instruction string and data are stored.
【0002】[0002]
【従来の技術】コンピュータシステムにおいて、命令フ
ェッチのためのアクセスとデータアクセスとの高速化を
目的としてキャッシュメモリ装置が使用される。2. Description of the Related Art In a computer system, a cache memory device is used for the purpose of speeding up access for instruction fetch and data access.
【0003】ある種のキャッシュメモリ装置は、プロセ
ッサにより実行されるべき命令列が格納された命令キャ
ッシュとして使用されるだけでなく、データの格納のた
めのデータキャッシュとしても使用される。このタイプ
のキャッシュメモリ装置は、アプリケーションプログラ
ムに応じて命令列とデータとの間で容量配分の最適化が
図れる利点があるものの、従来はシングルポートメモリ
アレイで構成されていたので、命令フェッチのためのア
クセス要求とデータアクセス要求とを同時には処理する
ことができない構成であった。A certain type of cache memory device is used not only as an instruction cache in which an instruction string to be executed by a processor is stored, but also as a data cache for storing data. Although this type of cache memory device has the advantage of optimizing the capacity distribution between the instruction sequence and the data according to the application program, it is conventionally configured with a single-port memory array, so that it can be used for instruction fetching. The access request and the data access request cannot be processed at the same time.
【0004】また、命令キャッシュとデータキャッシュ
とを分離したタイプのキャッシュメモリ装置も使用に供
されている。このタイプのキャッシュメモリ装置は、命
令フェッチのためのアクセス要求とデータアクセス要求
とを同時に処理できる利点があるものの、従来は命令キ
ャッシュとデータキャッシュとの各々がシングルポート
メモリアレイで構成されていたので、命令フェッチのた
めの複数のアクセス要求を同時には処理することができ
ず、また複数のデータアクセス要求を同時には処理する
ことができない構成であった。Further, a cache memory device of a type in which an instruction cache and a data cache are separated is also used. Although this type of cache memory device has the advantage of being able to process access requests and data access requests for instruction fetches at the same time, conventionally, each of the instruction cache and data cache was composed of a single port memory array. In this configuration, a plurality of access requests for fetching instructions cannot be processed at the same time, and a plurality of data access requests cannot be processed at the same time.
【0005】さて、マイクロプロセッサを用いたコンピ
ュータシステムにおいて、命令を実行するためのマイク
ロプロセッサに命令縮小型コンピュータ(RISC)の
アーキテクチャが採用される場合がある。以下、この種
のマイクロプロセッサをRISCマイクロプロセッサと
いう。RISCマイクロプロセッサの命令セットは基本
的に1サイクルで実行できる命令に限定されており、該
マイクロプロセッサは1サイクル毎に次々と命令を実行
していく。しかも、メモリアクセス命令は、例えばロー
ド命令とストア命令との2種類に限られている。In a computer system using a microprocessor, an instruction reduction type computer (RISC) architecture may be adopted as a microprocessor for executing instructions. Hereinafter, this type of microprocessor is referred to as a RISC microprocessor. The instruction set of the RISC microprocessor is basically limited to instructions that can be executed in one cycle, and the microprocessor executes instructions one after another every cycle. Moreover, memory access instructions are limited to two types, for example, load instructions and store instructions.
【0006】RISCマイクロプロセッサとキャッシュ
メモリ装置とが内部バスを介して接続された構成を有す
るプロセッサユニットでは、RISCマイクロプロセッ
サからキャッシュメモリ装置へ、命令フェッチのために
プログラムカウンタのインクリメントにより順次生成さ
れる命令アドレスと、ロード命令及びストア命令に基づ
いてデータアクセスのために生成されるデータアドレス
とが各々アクセス要求アドレスとして与えられることと
なる。更に、命令実行シーケンスの変更を要求する命令
すなわち無条件分岐命令、条件分岐命令等のシーケンス
変更命令を該マイクロプロセッサが実行する際には、分
岐先の命令フェッチのための分岐先アドレスが他のアク
セス要求アドレスとしてキャッシュメモリ装置に与えら
れる。In a processor unit having a structure in which a RISC microprocessor and a cache memory device are connected via an internal bus, the RISC microprocessor is sequentially generated from the cache memory device by incrementing a program counter for fetching an instruction. The instruction address and the data address generated for data access based on the load instruction and the store instruction are given as access request addresses, respectively. Furthermore, when the microprocessor executes an instruction requesting a change in the instruction execution sequence, that is, a sequence change instruction such as an unconditional branch instruction or a conditional branch instruction, the branch destination address for fetching the instruction of the branch destination is not It is given to the cache memory device as an access request address.
【0007】一方、共通のシステムバス(外部バス)に
複数のプロセッサユニットを接続してなるマルチプロセ
ッサ構成のコンピュータシステムでは、各プロセッサユ
ニットにバス監視装置を設けることが一般的になってい
る。例えば、あるプロセッサユニット内のキャッシュメ
モリ装置のデータが一部書き換えられた場合、キャッシ
ュプロトコルの定義に従ってデータの整合性すなわちコ
ヒーレンシーを維持するように、他のプロセッサユニッ
ト内のキャッシュメモリ装置の同一アドレスのデータを
無効化する必要がある。外部バスに接続された共通の外
部メモリ装置のデータが一部書き換えられた場合も、同
様の操作を施す必要がある。そこで、各バス監視装置
は、外部バスから供給された物理アドレスのデータをキ
ャッシュメモリ装置が保持しているかどうかを調べるの
である。つまり、キャッシュメモリ装置へは、バス監視
装置からデータの整合性を管理するための物理アドレス
が更に他のアクセス要求アドレスとして与えられる。な
お、マルチプロセッサ構成におけるキャッシュメモリ装
置のコヒーレンシーについては、J.Archibald and J.L.
Baer:“Cache Coherence Protocols :Evaluation Usi
nga MultiprocessorSimulation Model”(ACM Trans. o
n Computer Systems,Vol.4,No.4,Nov.1986,pp.273-29
8)等に詳細な記述がある。On the other hand, in a computer system having a multiprocessor structure in which a plurality of processor units are connected to a common system bus (external bus), it is general to provide a bus monitoring device in each processor unit. For example, when a part of the data in the cache memory device in one processor unit is rewritten, the same address of the cache memory device in another processor unit may be stored in order to maintain the data consistency, that is, coherency according to the definition of the cache protocol. You need to invalidate the data. The same operation needs to be performed when a part of the data in the common external memory device connected to the external bus is rewritten. Therefore, each bus monitoring device checks whether or not the cache memory device holds the data of the physical address supplied from the external bus. In other words, the physical address for managing data consistency is given to the cache memory device as another access request address from the bus monitoring device. For the coherency of cache memory devices in multiprocessor configurations, see J. Archibald and JL
Baer: “Cache Coherence Protocols: Evaluation Usi
nga Multiprocessor Simulation Model ”(ACM Trans. o
n Computer Systems, Vol.4, No.4, Nov.1986, pp.273-29
8) etc. have detailed description.
【0008】[0008]
【発明が解決しようとする課題】上記命令アドレス、分
岐先アドレス、データアドレス及び物理アドレスの各々
に係るアクセス要求は、互いに独立に生起する。したが
って、最大4種類のアクセス要求が同時に生起する可能
性がある。The access requests for each of the instruction address, branch destination address, data address and physical address occur independently of each other. Therefore, up to four types of access requests may occur at the same time.
【0009】ところが、前記のとおり命令キャッシュと
データキャッシュとを分離しないタイプの従来のキャッ
シュメモリ装置は、命令フェッチのためのアクセス要求
(命令アドレス及び分岐先アドレスに係るアクセス要
求)とデータアクセス要求(データアドレス及び物理ア
ドレスに係るアクセス要求)とを同時には処理できない
構成であったので、両者が同時に生起した場合には一方
のアクセス要求を優先的に処理することとなる。したが
って、例えば命令フェッチのためのアクセスを優先させ
る場合には、データアクセス要求が処理待ち状態となっ
てペナルティが発生する。However, in the conventional cache memory device of the type in which the instruction cache and the data cache are not separated as described above, the access request for instruction fetch (the access request relating to the instruction address and the branch destination address) and the data access request ( Since the access request relating to the data address and the physical address) cannot be processed at the same time, when both of them occur at the same time, one access request is preferentially processed. Therefore, for example, when prioritizing access for instruction fetch, a data access request is placed in a processing wait state and a penalty occurs.
【0010】また、命令キャッシュとデータキャッシュ
とを分離したタイプの従来のキャッシュメモリ装置は、
特にマルチプロセッサ構成をサポートするRISCマイ
クロプロセッサに適用される場合、例えば条件分岐命令
の実行やメモリアクセス命令の実行に際し、次のような
問題があった。A conventional cache memory device of a type in which an instruction cache and a data cache are separated is
Especially when applied to a RISC microprocessor that supports a multiprocessor configuration, the following problems occur, for example, when executing a conditional branch instruction or a memory access instruction.
【0011】まず、RISCマイクロプロセッサがある
命令の実行と並行して条件分岐命令の条件の成立・不成
立の判断をしている間にキャッシュメモリ装置が該プロ
セッサからの命令アドレスに係るアクセス要求を処理す
る構成を採用すれば、分岐条件不成立の場合に次に実行
すべき命令がプログラムカウンタに従って予めフェッチ
されるので、分岐条件の不成立が判明した時点で該プロ
セッサは次の命令を直ちに実行することができる。とこ
ろが、従来のキャッシュメモリ装置は、命令アドレスに
係るアクセス要求と分岐先アドレスに係るアクセス要求
とを同時には処理できない構成であったので、前記分岐
条件の成立・不成立の判断と命令アドレスに係るアクセ
ス要求の処理とが完了した後でなければ分岐先の命令を
フェッチすることができない。つまり、分岐先の命令フ
ェッチのためのアクセスについてペナルティが発生する
のである。First, while the RISC microprocessor determines whether a condition of a conditional branch instruction is satisfied or not in parallel with execution of an instruction, the cache memory device processes an access request relating to an instruction address from the processor. If the configuration is adopted, the instruction to be executed next when the branch condition is not satisfied is fetched in advance according to the program counter. Therefore, when the branch condition is not satisfied, the processor can immediately execute the next instruction. it can. However, the conventional cache memory device has a configuration in which an access request related to an instruction address and an access request related to a branch destination address cannot be processed at the same time. The instruction at the branch destination can be fetched only after the processing of the request is completed. That is, there is a penalty for access for fetching the instruction at the branch destination.
【0012】また、同命令キャッシュとデータキャッシ
ュとを分離したタイプの従来のキャッシュメモリ装置
は、ロード命令及びストア命令に基づくデータアドレス
に係るアクセス要求とデータの整合性を管理するための
物理アドレスに係るアクセス要求とを同時には処理でき
ない構成であったので、両者が同時に生起した場合には
一方のアクセス要求を優先的に処理することとなる。し
たがって、例えば物理アドレスに係るアクセスを優先さ
せる場合には、データアドレスに係るアクセス要求が処
理待ち状態となってペナルティが発生する。In the conventional cache memory device of the type in which the instruction cache and the data cache are separated from each other, an access request relating to a data address based on a load instruction and a store instruction and a physical address for managing data consistency are used. Since the access request and the access request cannot be processed at the same time, when both of them occur at the same time, one of the access requests is preferentially processed. Therefore, for example, when prioritizing the access related to the physical address, the access request related to the data address is placed in the processing waiting state and a penalty occurs.
【0013】本発明の目的は、命令キャッシュとデータ
キャッシュとを分離しないタイプのキャッシュメモリ装
置において、命令フェッチのための複数のアクセス要求
と複数のデータアクセス要求との中から任意に選択され
た少なくとも2つのアクセス要求を同時に処理できるよ
うにすることにあり、特にRISCマイクロプロセッサ
を含んだマルチプロセッサ構成のプロセッサユニットの
各々に好適に使用されるアクセス効率の良いキャッシュ
メモリ装置を提供することにある。An object of the present invention is, in a cache memory device of a type that does not separate an instruction cache and a data cache, at least arbitrarily selected from a plurality of access requests for instruction fetch and a plurality of data access requests. It is to be able to process two access requests at the same time, and in particular to provide a cache memory device of good access efficiency which is preferably used for each processor unit of a multiprocessor configuration including a RISC microprocessor.
【0014】[0014]
【課題を解決するための手段】上記の目的を達成するた
めに、本発明は、命令キャッシュとデータキャッシュと
を分離しないタイプのキャッシュメモリ装置に互いに独
立した2つのポートを有するデュアルポートメモリアレ
イを導入し、命令フェッチのための2つのアクセス要求
の同時処理、命令フェッチのためのアクセス要求とデー
タアクセス要求との同時処理、及び、2つのデータアク
セス要求の同時処理をいずれも可能にしたものである。To achieve the above object, the present invention provides a dual port memory array having two independent ports in a cache memory device of a type that does not separate an instruction cache and a data cache. Introduced to enable simultaneous processing of two access requests for instruction fetch, simultaneous processing of access request and data access request for instruction fetch, and simultaneous processing of two data access requests. is there.
【0015】具体的には、請求項1の発明は、命令フェ
ッチのためのアクセスに使用されるべき複数のアドレス
とデータアクセスに使用されるべき複数のアドレスとか
らなるアドレス群の中の1つ又は複数のアドレスがアク
セス要求アドレスとして与えられるキャッシュメモリ装
置において、複数のアクセス要求アドレスが同時に与え
られた場合には該与えられた複数のアクセス要求アドレ
スの中から各々1つのアドレスを選択するための複数の
アドレス選択手段と、命令列とデータとが格納されかつ
前記複数のアドレス選択手段で各々選択されたアドレス
によりそれぞれ独立にアクセスされる記憶手段とを備え
た構成を採用したものである。Specifically, the invention of claim 1 is one of an address group consisting of a plurality of addresses to be used for access for instruction fetch and a plurality of addresses to be used for data access. Alternatively, in a cache memory device to which a plurality of addresses are given as access request addresses, when a plurality of access request addresses are given at the same time, one address is selected from the plurality of given access request addresses. The present invention employs a configuration including a plurality of address selection means and a storage means for storing an instruction string and data and independently accessed by the addresses selected by the plurality of address selection means.
【0016】請求項2の発明は、RISCマイクロプロ
セッサを含んだマルチプロセッサ構成のプロセッサユニ
ットへの対応を可能にしたものであって、命令フェッチ
のためにプログラムカウンタのインクリメントにより順
次生成される第1のアドレスとしての命令アドレスと、
命令実行シーケンスの変更を要求するシーケンス変更命
令に基づいて分岐先の命令フェッチのために生成される
第2のアドレスとしての分岐先アドレスと、メモリアク
セス命令に基づいてデータアクセスのために生成される
第3のアドレスとしてのデータアドレスと、他のメモリ
装置との間のデータの整合性を管理するための第4のア
ドレスとしてのデータアクセス用の物理アドレスとの4
種類のアドレスからなるアドレス群に属する1つ又は複
数のアドレスがアクセス要求アドレスとして与えられる
キャッシュメモリ装置において、次のような制御装置
と、第1及び第2のアドレス選択器と、記憶装置とを備
えた構成を採用したものである。すなわち、制御装置
は、複数のアクセス要求アドレスが同時に与えられた場
合には、該与えられた複数のアクセス要求アドレスの中
から2つのアドレスを各々第1及び第2の被選択アドレ
スとして指定するものである。また、第1のアドレス選
択器は、前記制御装置により第1の被選択アドレスとし
て指定されたアドレスを前記与えられた複数のアクセス
要求アドレスの中から選択し、かつ該選択したアドレス
を出力するものである。第2のアドレス選択器は、前記
制御装置により第2の被選択アドレスとして指定された
アドレスを前記与えられた複数のアクセス要求アドレス
の中から選択し、かつ該選択したアドレスを出力するも
のである。そして、記憶装置は、命令列とデータとが格
納され、かつ前記第1及び第2のアドレス選択器から各
々出力されたアドレスによりそれぞれ独立にアクセスさ
れるものである。A second aspect of the present invention makes it possible to deal with a processor unit having a multiprocessor structure including a RISC microprocessor, and is sequentially generated by incrementing a program counter for fetching an instruction. Instruction address as the address of
A branch destination address as a second address generated for a branch destination instruction fetch based on a sequence modification instruction requesting a modification of an instruction execution sequence, and a data access based on a memory access instruction. A data address as a third address and a physical address for data access as a fourth address for managing the consistency of data with other memory devices.
In a cache memory device to which one or more addresses belonging to an address group consisting of different types of addresses are given as access request addresses, the following control device, first and second address selectors, and a storage device are provided. It adopts the configuration provided. That is, when a plurality of access request addresses are given at the same time, the control device designates two addresses among the given plurality of access request addresses as the first and second selected addresses, respectively. Is. The first address selector selects an address designated by the control device as a first selected address from the plurality of given access request addresses, and outputs the selected address. Is. The second address selector selects an address designated by the control device as a second selected address from the plurality of given access request addresses, and outputs the selected address. .. The storage device stores the instruction sequence and the data, and is independently accessed by the addresses output from the first and second address selectors.
【0017】また、請求項3の発明では、前記制御装置
は、前記与えられた複数のアクセス要求アドレスのう
ち、前記第1〜第3の3種類のアドレスの中から1つの
アドレスを前記第1の被選択アドレスとして指定し、か
つ前記第2〜第4の3種類のアドレスの中から他の1つ
のアドレスを前記第2の被選択アドレスとして指定する
こととした。According to a third aspect of the invention, the control device sets one of the first to third types of addresses among the plurality of given access request addresses to the first address. And the other one of the second to fourth types of addresses is designated as the second selected address.
【0018】請求項4の発明では、前記制御装置は、3
つ以上のアクセス要求アドレスが同時に与えられた場合
には、前記第3及び第4のアドレスに比べて前記第1及
び第2のアドレスを優先させ、かつ前記第3のアドレス
に比べて前記第4のアドレスを優先させるという優先ル
ールに従って前記第1及び第2の被選択アドレスの指定
を行い、かつ前記与えられた3つ以上のアクセス要求ア
ドレスのうち前記第1及び第2の被選択アドレスとして
指定されたアドレス以外のアドレスを処理待ち状態とす
ることとした。In the invention of claim 4, the control device is
When one or more access request addresses are given at the same time, the first and second addresses are given priority over the third and fourth addresses, and the fourth address is given as compared with the third address. The first and second selected addresses are designated according to a priority rule of giving priority to each address, and designated as the first and second selected addresses of the given three or more access request addresses. Addresses other than the specified address are placed in the processing waiting state.
【0019】また、請求項5の発明では、前記制御装置
は、前記処理待ち状態のアクセス要求アドレスに加えて
2つ以上のアクセス要求アドレスが同時に与えられた場
合には、前記第1及び第2の被選択アドレスの指定に際
し、前記処理待ち状態のアクセス要求アドレスを最優先
とすることとした。Further, in the invention of claim 5, the control device, when two or more access request addresses are simultaneously given in addition to the access request addresses in the processing waiting state, the first and second When designating the selected address, the access request address in the processing waiting state is given the highest priority.
【0020】請求項6の発明では、前記記憶装置は、次
のような第1及び第2のデュアルポートメモリアレイ
と、第1及び第2の比較器とを備えることとした。すな
わち、第1のデュアルポートメモリアレイは、互いに独
立した第1及び第2のポートを有し、かつ前記第1のア
ドレス選択器から出力されたアドレスのうちの特定の部
分により前記第1のポートから第1のタグアドレスが読
み出され、かつ前記第2のアドレス選択器から出力され
たアドレスのうちの特定の部分により前記第2のポート
から第2のタグアドレスが読み出されるものである。ま
た、第1の比較器は、前記第1のアドレス選択器から出
力されたアドレスのうちの他の特定の部分と前記第1の
デュアルポートメモリアレイの第1のポートから読み出
された第1のタグアドレスとが一致した場合には第1の
ヒット信号を出力するものである。第2の比較器は、前
記第2のアドレス選択器から出力されたアドレスのうち
の他の特定の部分と前記第1のデュアルポートメモリア
レイの第2のポートから読み出された第2のタグアドレ
スとが一致した場合には第2のヒット信号を出力するも
のである。そして、第2のデュアルポートメモリアレイ
は、命令列とデータとが格納され、かつ互いに独立した
第1及び第2のメモリポートを有し、かつ前記第1の比
較器から第1のヒット信号が出力された場合には前記第
1のアドレス選択器から出力されたアドレスにより前記
第1のメモリポートを通してアクセスされ、かつ前記第
2の比較器から第2のヒット信号が出力された場合には
前記第2のアドレス選択器から出力されたアドレスによ
り前記第2のメモリポートを通してアクセスされるもの
である。According to a sixth aspect of the present invention, the storage device includes the following first and second dual port memory arrays and first and second comparators. That is, the first dual-port memory array has first and second ports that are independent of each other, and the first port is determined by a specific portion of the address output from the first address selector. From the second address selector, and the second tag address is read from the second port by a specific part of the address output from the second address selector. The first comparator is configured to read another specific portion of the address output from the first address selector and a first port read from the first port of the first dual port memory array. The first hit signal is output when the tag address of No. 1 matches. The second comparator is configured to read another specific portion of the address output from the second address selector and a second tag read from the second port of the first dual-port memory array. When the addresses match, the second hit signal is output. The second dual-port memory array has a first and second memory ports that store an instruction string and data and are independent of each other, and receives a first hit signal from the first comparator. When output, the address output from the first address selector is used to access through the first memory port, and when the second comparator outputs a second hit signal, The address output from the second address selector is accessed through the second memory port.
【0021】また、請求項7の発明では、前記記憶装置
は、前記第1のアドレスによりアクセスされる毎に前記
格納された命令列のうちの連続した少なくとも2つの命
令が一度にフェッチされることとした。According to the invention of claim 7, in the storage device, at least two consecutive instructions of the stored instruction sequence are fetched at one time each time the storage device is accessed by the first address. And
【0022】[0022]
【作用】請求項1の発明によれば、複数のアドレス選択
手段により命令フェッチのためのアドレスとデータアク
セスのための他のアドレスとが選択される場合だけでな
く、同アドレス選択手段により命令フェッチのための複
数のアドレスが選択される場合や、データアクセスのた
めの複数のアドレスが選択される場合もある。命令列と
データとの双方が格納された記憶手段は、これら各々の
場合に応じて、各アドレス選択手段で選択されたアドレ
スによりそれぞれ独立にアクセスされる。つまり、命令
キャッシュとデータキャッシュとを分離しない構成であ
りながら、命令フェッチのための複数のアクセス要求の
同時処理、命令フェッチのためのアクセス要求とデータ
アクセス要求との同時処理、及び、複数のデータアクセ
ス要求の同時処理がいずれも可能である。According to the first aspect of the present invention, not only the case where an address for instruction fetch and another address for data access are selected by a plurality of address selecting means, but also the instruction fetching by the same address selecting means. In some cases, a plurality of addresses for data access may be selected, and in some cases a plurality of addresses for data access may be selected. The storage means in which both the instruction string and the data are stored are independently accessed by the address selected by each address selection means in each case. That is, although the instruction cache and the data cache are not separated, simultaneous processing of a plurality of access requests for instruction fetch, simultaneous processing of an access request and a data access request for instruction fetch, and a plurality of data Both simultaneous access requests can be processed.
【0023】次に、請求項2の発明によれば、やはり命
令キャッシュとデータキャッシュとを分離しない構成で
ありながら、命令フェッチのためのアクセス要求(命令
アドレス又は分岐先アドレスに係るアクセス要求)とデ
ータアクセス要求(データアドレス又は物理アドレスに
係るアクセス要求)とを同時に処理できるだけでなく、
命令フェッチのための2つのアクセス要求(命令アドレ
ス及び分岐先アドレスに係るアクセス要求)の同時処理
や、2つのデータアクセス要求(データアドレス及び物
理アドレスに係るアクセス要求)の同時処理が可能であ
る。しかも、制御装置によって第1及び第2の被選択ア
ドレスとして指定される2つのアドレスの組み合わせの
中には、RISCマイクロプロセッサを含んだマルチプ
ロセッサ構成のプロセッサユニットへの対応にとって必
要なアドレスの組み合わせ、すなわち(1) 命令アドレス
と分岐先アドレス、(2) 命令アドレスとデータアドレ
ス、(3) 命令アドレスと物理アドレス、(4) 分岐先アド
レスとデータアドレス、(5)分岐先アドレスと物理アド
レス、及び、(6) データアドレスと物理アドレスの6種
類の組み合わせが全て含まれている。また、1サイクル
に複数の命令を同時に実行できるスーパースケーラ型の
アーキテクチャを採用したマイクロプロセッサへの対応
の場合に必要となる他のアドレスの組み合わせ、例えば
2つのデータアドレスの組み合わせも許容される。Next, according to the second aspect of the present invention, although the instruction cache and the data cache are not separated, an access request for instruction fetch (access request relating to an instruction address or a branch destination address) and Not only can data access requests (access requests relating to data addresses or physical addresses) be processed simultaneously,
Simultaneous processing of two access requests (access requests relating to an instruction address and branch destination address) and two data access requests (access requests relating to data address and physical address) for instruction fetch are possible. Moreover, among the two address combinations designated as the first and second selected addresses by the control device, the combination of addresses necessary for handling the processor unit of the multiprocessor configuration including the RISC microprocessor, That is, (1) instruction address and branch destination address, (2) instruction address and data address, (3) instruction address and physical address, (4) branch destination address and data address, (5) branch destination address and physical address, and (6) All six combinations of data address and physical address are included. Further, other address combinations necessary for supporting a microprocessor adopting a superscalar type architecture capable of simultaneously executing a plurality of instructions in one cycle, for example, a combination of two data addresses are allowed.
【0024】また、請求項3の発明によれば、制御装置
による第1及び第2の被選択アドレスの指定の範囲が制
限されているにもかかわらず、該制限を設けない場合と
同様に、RISCマイクロプロセッサを含んだマルチプ
ロセッサ構成のプロセッサユニットへの対応にとって必
要な前記6種類のアドレスの組み合わせはいずれも許容
される。また、スーパースケーラ型のアーキテクチャを
採用したマイクロプロセッサへの対応にとって必要な2
つのデータアドレス等の組み合わせも許容される。Further, according to the invention of claim 3, although the range of designation of the first and second selected addresses by the control device is limited, as in the case where the limitation is not provided, Any combination of the above-mentioned 6 types of addresses necessary for supporting a processor unit having a multiprocessor structure including a RISC microprocessor is allowed. In addition, it is necessary to support microprocessors that use a superscalar architecture.
A combination of two data addresses is also allowed.
【0025】また、請求項4の発明によれば、例えば第
1〜第4のアドレスの各々に係る4つのアクセス要求が
同時に与えられた場合、データアドレス(第3アドレ
ス)及び物理アドレス(第4のアドレス)に係るデータ
アクセス要求に比べて、命令アドレス(第1アドレス)
及び分岐先アドレス(第2のアドレス)に係る命令フェ
ッチのためのアクセス要求が優先的に処理される。ま
た、同じデータアクセス要求の中でもデータアドレス
(第3アドレス)に係るアクセス要求に比べて物理アド
レス(第4のアドレス)に係るアクセス要求が優先的に
処理される。Further, according to the invention of claim 4, when, for example, four access requests for each of the first to fourth addresses are simultaneously given, a data address (third address) and a physical address (fourth address) are given. Instruction address (first address) compared to the data access request relating to
And the access request for the instruction fetch related to the branch destination address (second address) is preferentially processed. Further, among the same data access requests, the access request relating to the physical address (fourth address) is preferentially processed as compared with the access request relating to the data address (third address).
【0026】また、請求項5の発明によれば、例えば3
つのアクセス要求が同時に与えられた場合、該3つのア
クセス要求のうちの処理待ち状態とされた1つのアクセ
ス要求は次の機会には必ず処理される。また、4つのア
クセス要求が同時に与えられた場合でも、該4つのアク
セス要求のうちの処理待ち状態とされた2つのアクセス
要求は次の機会には必ず処理される。Further, according to the invention of claim 5, for example, 3
When three access requests are given at the same time, one access request among the three access requests in the processing waiting state is always processed at the next opportunity. Further, even when four access requests are given at the same time, the two access requests in the process waiting state out of the four access requests are always processed at the next opportunity.
【0027】請求項6の発明によれば、命令列とデータ
との双方が第2のデュアルポートメモリアレイに格納さ
れ、該第2のデュアルポートメモリアレイのエントリの
タグアドレスが第1のデュアルポートメモリアレイに格
納される。そして、第1のアドレス選択器から出力され
たアドレスは、ヒットしたか否かが第1のデュアルポー
トメモリアレイと第1の比較器とにより調べられ、ヒッ
トした場合には第2のデュアルポートメモリアレイへの
アクセスに使用される。これと並行して、第2のアドレ
ス選択器から出力されたアドレスは、ヒットしたか否か
が第1のデュアルポートメモリアレイと第2の比較器と
により調べられ、ヒットした場合には同じく第2のデュ
アルポートメモリアレイへのアクセスに使用される。According to the invention of claim 6, both the instruction sequence and the data are stored in the second dual port memory array, and the tag address of the entry of the second dual port memory array is the first dual port memory array. Stored in memory array. Then, the address output from the first address selector is checked by the first dual-port memory array and the first comparator whether or not there is a hit, and if it is hit, the second dual-port memory is found. Used to access the array. In parallel with this, the address output from the second address selector is checked by the first dual-port memory array and the second comparator whether or not there is a hit. Used to access two dual port memory arrays.
【0028】また、請求項7の発明によれば、命令列の
うちの連続した少なくとも2つの命令が記憶装置から一
度にフェッチされる。したがって、第1のアドレスに係
るアクセス頻度が低減する一方、第2〜第4のアドレス
に係るアクセス要求が即時に処理される可能性が増大す
る。According to the invention of claim 7, at least two consecutive instructions in the instruction sequence are fetched from the storage device at one time. Therefore, while the access frequency for the first address is reduced, the possibility that the access request for the second to fourth addresses is immediately processed increases.
【0029】[0029]
【実施例】以下、本発明の実施例を図面に基づいて説明
する。Embodiments of the present invention will be described below with reference to the drawings.
【0030】図1は、RISCマイクロプロセッサを含
んだマルチプロセッサ構成のプロセッサユニットに適し
た本発明の一実施例に係るキャッシュメモリ装置の構成
を示すブロック図である。同図に示すキャッシュメモリ
装置へは、4つのアドレスIA,BA,DA,PAのう
ちの1つ又は複数のアドレスがアクセス要求アドレスと
して与えられる。第1のアクセス要求信号IAGととも
に与えられる第1のアドレスIAは、命令フェッチのた
めにプログラムカウンタのインクリメントにより順次生
成される命令アドレスである。第2のアクセス要求信号
BAGとともに与えられる第2のアドレスBAは、無条
件分岐命令、条件分岐命令等のシーケンス変更命令に基
づいて分岐先の命令フェッチのために生成される分岐先
アドレスである。第3のアクセス要求信号DAGととも
に与えられる第3のアドレスDAは、メモリアクセス命
令に基づいてデータアクセスのために生成されるデータ
アドレスである。そして、第4のアクセス要求信号PA
Gとともに与えられる第4のアドレスPAは、他のメモ
リ装置との間のデータの整合性を管理するためのデータ
アクセス用の物理アドレスである。FIG. 1 is a block diagram showing a structure of a cache memory device according to an embodiment of the present invention, which is suitable for a processor unit having a multiprocessor structure including a RISC microprocessor. To the cache memory device shown in the figure, one or a plurality of four addresses IA, BA, DA and PA are given as access request addresses. The first address IA given together with the first access request signal IAG is an instruction address sequentially generated by incrementing the program counter for instruction fetch. The second address BA given together with the second access request signal BAG is a branch destination address generated for fetching a branch destination instruction based on a sequence change instruction such as an unconditional branch instruction or a conditional branch instruction. The third address DA given together with the third access request signal DAG is a data address generated for data access based on the memory access instruction. Then, the fourth access request signal PA
The fourth address PA given together with G is a physical address for data access for managing the consistency of data with other memory devices.
【0031】図1中の20は、表1及び表2に示すよう
に、入力信号としての第1〜第4のアクセス要求信号I
AG,BAG,DAG,PAGの状態の組み合わせに応
じて第1及び第2の指定信号S1,S2を出力するため
の一種のステートマシンとしての制御装置である。第1
の指定信号S1は、アクセス要求アドレスとしての第1
〜第4のアドレスIA,BA,DA,PAの中から1つ
のアドレスを第1の被選択アドレスとして指定するため
の信号である。また、第2の指定信号S2は、同じくア
クセス要求アドレスとしての第1〜第4のアドレスI
A,BA,DA,PAの中から他のアドレスを第2の被
選択アドレスとして指定するための信号である。ただ
し、表1,2に示した第1及び第2の指定信号S1,S
2による被選択アドレスの指定は、互いの間で交換可能
である。図1中のS0は、両指定を伝達するために制御
装置20から出力される他の信号である。Reference numeral 20 in FIG. 1 indicates, as shown in Tables 1 and 2, first to fourth access request signals I as input signals.
It is a control device as a kind of state machine for outputting the first and second designation signals S1 and S2 in accordance with the combination of the states of AG, BAG, DAG and PAG. First
Of the first designation signal S1 as the access request address.
Is a signal for designating one address from the fourth addresses IA, BA, DA, PA as the first selected address. Further, the second designation signal S2 is the same as the first to fourth addresses I as access request addresses.
This is a signal for designating another address from among A, BA, DA, and PA as the second selected address. However, the first and second designation signals S1 and S shown in Tables 1 and 2
The designation of the selected address by 2 is exchangeable between each other. S0 in FIG. 1 is another signal output from the control device 20 for transmitting both designations.
【0032】[0032]
【表1】 [Table 1]
【0033】[0033]
【表2】 [Table 2]
【0034】制御装置20は、表2に示すように3つ以
上のアクセス要求信号が同時に与えられた場合には、第
3及び第4のアドレスDA,PAに比べて第1及び第2
のアドレスIA,BAを優先させ、かつ第3のアドレス
DAに比べて第4のアドレスPAを優先させるという優
先ルールに従って第1及び第2の指定信号S1,S2を
出力する。この際、指定を受けなかったアクセス要求ア
ドレスは、例えば表2中の番号19の行に示す物理アド
レス(第4のアドレス)PAのように処理待ち状態とさ
れる。表2では、このようにして処理待ち状態とされた
アドレスに係るアクセス要求信号は、論理値“1”に記
号“*”を付した表示となっている。制御装置20は、
処理待ち状態のアクセス要求信号に加えて2つ以上のア
クセス要求信号が同時に与えられた場合(例えば表2中
の番号22の行)には、第1及び第2の被選択アドレス
の指定に際し、該処理待ち状態のアクセス要求信号に係
るアドレスを最優先とする。When three or more access request signals are simultaneously given as shown in Table 2, the controller 20 compares the first and second addresses DA and PA with each other.
The first and second designation signals S1 and S2 are output in accordance with the priority rule that the addresses IA and BA of 1) are prioritized and the fourth address PA is prioritized over the third address DA. At this time, the access request address that has not been designated is put in a processing waiting state like the physical address (fourth address) PA shown in the row of number 19 in Table 2, for example. In Table 2, the access request signal relating to the address that has been put in the process waiting state in this way is displayed by adding the symbol “*” to the logical value “1”. The control device 20 is
When two or more access request signals are simultaneously given in addition to the access request signal in the processing waiting state (for example, row 22 in Table 2), when designating the first and second selected addresses, The address related to the access request signal in the processing waiting state has the highest priority.
【0035】図1中の10は、第1の指定信号S1によ
り第1の被選択アドレスとして指定されたアドレスを前
記第1〜第4のアドレスIA,BA,DA,PAの中か
ら選択し、かつ該選択したアドレスを第1の選択アドレ
スSA1として出力するための第1のアドレス選択器で
ある。12は、第2の指定信号S2により第2の被選択
アドレスとして指定されたアドレスを同じく前記第1〜
第4のアドレスIA,BA,DA,PAの中から選択
し、かつ該選択したアドレスを第2の選択アドレスSA
2として出力するための第2のアドレス選択器である。Reference numeral 10 in FIG. 1 selects an address designated as the first selected address by the first designation signal S1 from the first to fourth addresses IA, BA, DA, PA, A first address selector for outputting the selected address as a first selected address SA1. 12 designates the address designated as the second selected address by the second designation signal S2 similarly to the first to
The fourth address IA, BA, DA, PA is selected, and the selected address is the second selected address SA.
A second address selector for outputting as 2.
【0036】メモリ部分は、第1及び第2の選択アドレ
スSA1,SA2によりそれぞれ独立にアクセスされ得
るように、第1及び第2のデュアルポートメモリアレイ
14,24、第1及び第2の比較器16,18、ヒット
信号生成器22、並びに、読み出し/書き込み回路26
で構成されている。The memory portion is provided with first and second dual-port memory arrays 14, 24, first and second comparators so that they can be independently accessed by the first and second selection addresses SA1, SA2. 16, 18, hit signal generator 22, and read / write circuit 26
It is composed of.
【0037】このうち、第1のデュアルポートメモリア
レイ14は、各々第1及び第2のアドレスデコーダ14
a,14bを有しかつ互いに独立した2つのポートを備
え、第1の選択アドレスSA1の下位ビットにより第1
のタグアドレスTA1が読み出され、かつこれと並行し
て第2の選択アドレスSA2の下位ビットにより第2の
タグアドレスTA2が読み出されるものである。第1の
比較器16は、第1の選択アドレスSA1の上位ビット
と第1のタグアドレスTA1とを比較し、両者が一致し
た場合には第1のヒット信号H1を出力するものであ
る。第2の比較器18は、これと並行して第2の選択ア
ドレスSA2の上位ビットと第2のタグアドレスTA2
とを比較し、両者が一致した場合には第2のヒット信号
H2を出力するものである。Of these, the first dual-port memory array 14 includes the first and second address decoders 14 respectively.
a and 14b, each of which has two ports independent of each other, and has a first bit according to the lower bit of the first selection address SA1.
Tag address TA1 is read out, and in parallel with this, the second tag address TA2 is read by the lower bits of the second selection address SA2. The first comparator 16 compares the high-order bit of the first selection address SA1 and the first tag address TA1 and outputs the first hit signal H1 if they match. In parallel with this, the second comparator 18 outputs the upper bits of the second selection address SA2 and the second tag address TA2.
Are compared with each other, and if they match, the second hit signal H2 is output.
【0038】ヒット信号生成器22は、第1のヒット信
号H1の入力を受けた場合には第1の制御信号EN1を
出力し、かつ第2のヒット信号H2の入力を受けた場合
には第2の制御信号EN2を出力するとともに、制御装
置20との間の交信を行いながらヒットアドレスに応じ
て命令キャッシュヒットIH、分岐先ヒットBH、デー
タキャッシュヒットDH及びバス監視ヒットPHの各キ
ャッシュヒット信号を生成するものである。The hit signal generator 22 outputs the first control signal EN1 when it receives the input of the first hit signal H1 and outputs the first control signal EN1 when it receives the input of the second hit signal H2. 2 control signal EN2 and each cache hit signal of instruction cache hit IH, branch destination hit BH, data cache hit DH and bus monitoring hit PH according to the hit address while communicating with control device 20. Is generated.
【0039】第2のデュアルポートメモリアレイ24
は、各々第1及び第2のアドレスデコーダ24a,24
bを有しかつ互いに独立した2つのメモリポートを備
え、命令列とデータとの双方が格納されるものである。
そして、読み出し/書き込み回路26は、ヒット信号生
成器22からの第1及び第2の制御信号EN1,EN2
を受け取って、第2のデュアルポートメモリアレイ24
への並行アクセスを実行するものである。つまり、第2
のデュアルポートメモリアレイ24は、第1の比較器1
6によって第1の選択アドレスSA1のヒットが検出さ
れた場合には該第1の選択アドレスSA1によりアクセ
スされ、かつこれと並行して第2の比較器18によって
第2の選択アドレスSA2のヒットが検出された場合に
は該第2の選択アドレスSA2によりアクセスされるも
のである。Second dual port memory array 24
Are the first and second address decoders 24a and 24, respectively.
It is provided with two memory ports which have b and are independent of each other, and store both an instruction sequence and data.
Then, the read / write circuit 26 receives the first and second control signals EN1 and EN2 from the hit signal generator 22.
To receive a second dual port memory array 24
To perform concurrent access to. That is, the second
Of the dual port memory array 24 of the first comparator 1
When the hit of the first selection address SA1 is detected by 6, the access is made by the first selection address SA1 and, in parallel with this, the hit of the second selection address SA2 is made by the second comparator 18. When detected, it is accessed by the second selection address SA2.
【0040】第1のデュアルポートメモリアレイ14に
は、第2のデュアルポートメモリアレイ24のエントリ
のタグアドレス等の情報が格納される。そして、第1の
アドレス選択器10からの第1の選択アドレスSA1
は、第1のデュアルポートメモリアレイ14からの第1
のタグアドレスTA1に基づいて、ヒットしたか否かが
第1の比較器16により調べられ、ヒットした場合には
第2のデュアルポートメモリアレイ24へのアクセスに
使用される。これと並行して、第2のアドレス選択器1
2からの第2の選択アドレスSA2は、第1のデュアル
ポートメモリアレイ14からの第2のタグアドレスTA
2に基づいて、ヒットしたか否かが第2の比較器18に
より調べられ、ヒットした場合には同じく第2のデュア
ルポートメモリアレイ24へのアクセスに使用される。
しかも、ヒット信号生成器22からは、ヒットアドレス
に応じたキャッシュヒット信号IH,BH,DH,PH
が出力されるのである。The first dual-port memory array 14 stores information such as the tag address of the entry of the second dual-port memory array 24. Then, the first selected address SA1 from the first address selector 10
Is the first from the first dual-port memory array 14.
Whether or not there is a hit is checked by the first comparator 16 on the basis of the tag address TA1 of the above, and when it is hit, it is used to access the second dual port memory array 24. In parallel with this, the second address selector 1
The second selection address SA2 from 2 is the second tag address TA from the first dual port memory array 14.
On the basis of 2, whether or not there is a hit is checked by the second comparator 18, and if there is a hit, it is also used for accessing the second dual port memory array 24.
Moreover, the hit signal generator 22 outputs the cache hit signals IH, BH, DH, PH according to the hit address.
Is output.
【0041】さて、図2に示すように、以上の構成を有
するキャッシュメモリ装置30は、例えばRISCマイ
クロプロセッサ34を備えたプロセッサユニット32に
内蔵される。キャッシュメモリ装置30とRISCマイ
クロプロセッサ34とは各々内部バス40に接続されて
おり、該内部バス40はバス制御装置38を介してシス
テムバス(外部バス)42に接続されている。RISC
マイクロプロセッサ34は、前記命令アドレス(第1の
アドレス)IA、分岐先アドレス(第2のアドレス)B
A及びデータアドレス(第3のアドレス)DAを第1〜
第3のアクセス要求信号IAG,BAG,DAGととも
にキャッシュメモリ装置30へ与えるための3つのアド
レス生成器2,4,6を備えている。このプロセッサユ
ニット32にはシステムバス42からのアドレスを受け
取るバス監視装置36が更に設けられており、該バス監
視装置36は、前記物理アドレス(第4のアドレス)P
Aを第4のアクセス要求信号PAGとともにキャッシュ
メモリ装置30へ与えるためのアドレス付与器8を備え
ている。Now, as shown in FIG. 2, the cache memory device 30 having the above configuration is built in a processor unit 32 having a RISC microprocessor 34, for example. The cache memory device 30 and the RISC microprocessor 34 are each connected to an internal bus 40, and the internal bus 40 is connected to a system bus (external bus) 42 via a bus control device 38. RISC
The microprocessor 34 uses the instruction address (first address) IA and the branch destination address (second address) B.
A and the data address (third address) DA are the first to
It is provided with three address generators 2, 4 and 6 for applying to the cache memory device 30 together with the third access request signals IAG, BAG and DAG. The processor unit 32 is further provided with a bus monitoring device 36 for receiving an address from the system bus 42, and the bus monitoring device 36 has the physical address (fourth address) P.
An address assignor 8 is provided for applying A to the cache memory device 30 together with the fourth access request signal PAG.
【0042】図3に示すように、以上の構成を有するプ
ロセッサユニット32は、システムバス42を介して、
同様の構成を有する他のプロセッサユニット44や共通
の外部メモリ装置(図示せず)等に接続される。このよ
うなマルチプロセッサ構成のコンピュータシステムで
は、例えばあるプロセッサユニット44内のキャッシュ
メモリ装置のデータが一部書き換えられた場合、他のプ
ロセッサユニット32内のキャッシュメモリ装置30
(図2参照)の同一アドレスのデータを無効化する必要
がある。そこで、該プロセッサユニット32内に設けら
れたバス監視装置36は、システムバス42から供給さ
れた物理アドレスPAのデータをキャッシュメモリ装置
30が保持しているかどうかを調べるのである。As shown in FIG. 3, the processor unit 32 having the above configuration is connected via the system bus 42.
It is connected to another processor unit 44 having a similar configuration, a common external memory device (not shown), or the like. In the computer system having such a multi-processor configuration, for example, when data in a cache memory device in a certain processor unit 44 is partially rewritten, the cache memory device 30 in another processor unit 32 is rewritten.
It is necessary to invalidate the data of the same address (see FIG. 2). Therefore, the bus monitoring device 36 provided in the processor unit 32 checks whether or not the cache memory device 30 holds the data of the physical address PA supplied from the system bus 42.
【0043】以下、図4〜図7を参照しながら、図1の
構成を有するキャッシュメモリ装置30の動作を説明す
る。ただし、説明の便宜上、次の諸点を前提として説明
を進める。すなわち、キャッシュメモリ装置30に格納
された命令列を構成する各命令は、4バイトの固定長で
ある。該命令列は、RISCマイクロプロセッサ34か
らの命令アドレス(第1のアドレス)IAにより一度に
2命令づつフェッチされる。また、RISCマイクロプ
ロセッサ34は、1サイクル毎に1つの命令を実行する
ものとする。The operation of the cache memory device 30 having the configuration of FIG. 1 will be described below with reference to FIGS. However, for convenience of description, the description will proceed on the premise of the following points. That is, each instruction forming the instruction sequence stored in the cache memory device 30 has a fixed length of 4 bytes. The instruction string is fetched two instructions at a time by the instruction address (first address) IA from the RISC microprocessor 34. Further, the RISC microprocessor 34 executes one instruction every cycle.
【0044】図4は、命令アドレス(第1のアドレス)
IAに係るアクセス要求と分岐先アドレス(第2のアド
レス)BAに係るアクセス要求との同時生起の例(サイ
クルt3)を示すタイミングチャート図である。FIG. 4 shows the instruction address (first address).
It is a timing chart figure which shows the example (cycle t3) of the simultaneous occurrence of the access request which concerns on IA and the branch destination address (2nd address) BA.
【0045】同図中のサイクルt1では、RISCマイ
クロプロセッサ34中のプログラムカウンタのインクリ
メントにより生成された命令アドレス(第1のアドレ
ス)IA=(n)が、第1のアクセス要求信号IAGと
ともにキャッシュメモリ装置30に与えられている。こ
れを受けた制御装置20は、表1中の番号2の行に示す
ように、第1の指定信号S1を出力することによって該
命令アドレスIAを第1の被選択アドレスとして指定す
る。第1のアドレス選択器10は、該命令アドレスIA
を第1の選択アドレスSA1として出力する。この第1
の選択アドレスSA1によって、第2のデュアルポート
メモリ24から条件分岐命令とロード命令との2命令が
一度にフェッチされたものとする。In cycle t1 in the figure, the instruction address (first address) IA = (n) generated by the increment of the program counter in the RISC microprocessor 34 is cached together with the first access request signal IAG. Provided to the device 30. Receiving this, the control device 20 designates the instruction address IA as the first selected address by outputting the first designation signal S1 as shown in the row of No. 2 in Table 1. The first address selector 10 determines the instruction address IA
Is output as the first selection address SA1. This first
It is assumed that two instructions, a conditional branch instruction and a load instruction, are fetched at once from the second dual port memory 24 by the selection address SA1.
【0046】サイクルt2では、サイクルt1でフェッ
チされた2命令のうちの条件分岐命令がRISCマイク
ロプロセッサ34により実行される。At cycle t2, the RISC microprocessor 34 executes the conditional branch instruction of the two instructions fetched at cycle t1.
【0047】サイクルt3では、サイクルt1でフェッ
チされた2命令のうちのロード命令の実行と並行して条
件分岐命令の条件の成立・不成立の判断がRISCマイ
クロプロセッサ34によって行われている間に、キャッ
シュメモリ装置30へは該RISCマイクロプロセッサ
34からプログラムカウンタのインクリメントにより生
成された命令アドレス(第1のアドレス)IA=(n+
8)と、条件分岐命令に基づいて計算された分岐先アド
レス(第2のアドレス)BA=(m)とが、第1及び第
2のアクセス要求信号IAG,BAGとともに同時に与
えられる。これを受けた制御装置20は、表1中の番号
6の行に示すように、第1の指定信号S1を出力するこ
とによって該命令アドレスIAを第1の被選択アドレス
として指定するとともに、第2の指定信号S2を出力す
ることによって該分岐先アドレスBAを第2の被選択ア
ドレスとして指定する。第1のアドレス選択器10は該
命令アドレスIAを第1の選択アドレスSA1として出
力する一方、第2のアドレス選択器12は該分岐先アド
レスBAを第2の選択アドレスSA2として出力する。
つまり、第2のデュアルポートメモリ24からは、条件
分岐命令の条件不成立の場合に次に実行すべき2命令
と、条件成立の場合に次に実行すべき2命令との双方が
同時にフェッチされる。この結果、RISCマイクロプ
ロセッサ34は、フェッチした2アドレスの命令のうち
のいずれのアドレスの命令を次に実行すべきかを分岐条
件の成立の如何に応じて選択し、該選択した命令を次サ
イクルt4で直ちに実行できる。In the cycle t3, while the RISC microprocessor 34 determines whether or not the condition of the conditional branch instruction is satisfied in parallel with the execution of the load instruction of the two instructions fetched in the cycle t1, An instruction address (first address) IA = (n +) generated by the RISC microprocessor 34 by incrementing the program counter is applied to the cache memory device 30.
8) and the branch destination address (second address) BA = (m) calculated based on the conditional branch instruction are simultaneously given together with the first and second access request signals IAG and BAG. Receiving this, the control device 20 designates the instruction address IA as the first selected address by outputting the first designation signal S1 as shown in the row of No. 6 in Table 1, and By outputting the designation signal S2 of 2, the branch destination address BA is designated as the second selected address. The first address selector 10 outputs the instruction address IA as the first selection address SA1, while the second address selector 12 outputs the branch destination address BA as the second selection address SA2.
That is, both the two instructions to be executed next when the condition of the conditional branch instruction is not satisfied and the two instructions to be executed next when the condition is satisfied are simultaneously fetched from the second dual port memory 24. .. As a result, the RISC microprocessor 34 selects which one of the fetched two-address instructions should be executed next, depending on whether the branch condition is satisfied, and selects the selected instruction in the next cycle t4. You can do it immediately with.
【0048】この例では分岐条件が成立し、サイクルt
4では分岐先アドレスBA=(m)によりフェッチされ
た2命令のうちの1番目の命令がRISCマイクロプロ
セッサ34によって選択・実行されたものとする。この
ように分岐条件が成立した場合には、RISCマイクロ
プロセッサ34中のプログラムカウンタは、(n+8)
から(m)に変更される。また、同サイクルt4では、
サイクルt3のロード命令に基づくデータアドレス(第
3のアドレス)DA=(da)が、第3のアクセス要求
信号DAGとともにRISCマイクロプロセッサ34か
らキャッシュメモリ装置30に与えられる。この結果、
表1中の番号4の行に示す制御装置20の機能に基づい
て該データアドレスDAが第1の選択アドレスSA1と
して選択され、第2のデュアルポートメモリ24から所
望のデータが読み出される。In this example, the branch condition is satisfied, and the cycle t
In 4, it is assumed that the first instruction of the two instructions fetched by the branch destination address BA = (m) is selected and executed by the RISC microprocessor 34. When the branch condition is satisfied in this way, the program counter in the RISC microprocessor 34 is (n + 8).
To (m). In the same cycle t4,
The data address (third address) DA = (da) based on the load instruction in the cycle t3 is supplied from the RISC microprocessor 34 to the cache memory device 30 together with the third access request signal DAG. As a result,
The data address DA is selected as the first selection address SA1 based on the function of the control device 20 shown in the row of No. 4 in Table 1, and desired data is read from the second dual port memory 24.
【0049】サイクルt5では、分岐先アドレスBA=
(m)によりフェッチされた2命令のうちの2番目の命
令がRISCマイクロプロセッサ34によって実行され
るとともに、プログラムカウンタのインクリメントによ
り生成された命令アドレス(第1のアドレス)IA=
(m+8)が、第1のアクセス要求信号IAGとともに
キャッシュメモリ装置30に与えられる。この結果、該
命令アドレスIAが第1の選択アドレスSA1として選
択され、第2のデュアルポートメモリ24から次の2命
令がフェッチされる。そして、サイクルt6では、サイ
クルt5でフェッチされた2命令のうちの1番目の命令
が実行されることになる。At cycle t5, the branch destination address BA =
The second instruction of the two instructions fetched by (m) is executed by the RISC microprocessor 34, and the instruction address (first address) IA = generated by incrementing the program counter
(M + 8) is provided to cache memory device 30 together with the first access request signal IAG. As a result, the instruction address IA is selected as the first selection address SA1 and the next two instructions are fetched from the second dual port memory 24. Then, in cycle t6, the first instruction of the two instructions fetched in cycle t5 is executed.
【0050】以上のとおり、本実施例によれば、条件分
岐命令の条件不成立の場合に次に実行すべき命令と条件
成立の場合に次に実行すべき命令との同時フェッチが可
能であるので、RISCマイクロプロセッサ34は、条
件不成立の場合はもちろん、図4に例示した条件成立の
場合でも1サイクル毎に次々と命令を実行できる。な
お、以上の説明では条件分岐命令の条件が成立したもの
としているので、該条件分岐命令とともにフェッチされ
たロード命令の実行結果、すなわちサイクルt4におい
て読み出されたデータは、RISCマイクロプロセッサ
34側で無効化される。As described above, according to this embodiment, it is possible to simultaneously fetch the instruction to be executed next when the condition of the conditional branch instruction is not satisfied and the instruction to be executed next when the condition is satisfied. The RISC microprocessor 34 can execute instructions one cycle after another, not only when the condition is not satisfied but also when the condition illustrated in FIG. 4 is satisfied. Since the condition of the conditional branch instruction is satisfied in the above description, the execution result of the load instruction fetched together with the conditional branch instruction, that is, the data read in the cycle t4, is read by the RISC microprocessor 34 side. It is invalidated.
【0051】図5は、(1) 命令アドレス(第1のアドレ
ス)IAに係るアクセス要求と物理アドレス(第4のア
ドレス)PAに係るアクセス要求との同時生起の例(サ
イクルt1)と、(2) 命令アドレス(第1のアドレス)
IAに係るアクセス要求とデータアドレス(第3のアド
レス)DAに係るアクセス要求との同時生起の例(サイ
クルt3及びt5)とを示すタイミングチャート図であ
る。FIG. 5 shows (1) an example (cycle t1) of simultaneous occurrence of an access request related to the instruction address (first address) IA and an access request related to the physical address (fourth address) PA, and ( 2) Instruction address (first address)
It is a timing chart figure which shows the example (cycle t3 and t5) of the simultaneous occurrence of the access request which concerns on IA and the access request which concerns on data address (3rd address) DA.
【0052】サイクルt1では、RISCマイクロプロ
セッサ34によってロード命令が実行されている間に、
プログラムカウンタのインクリメントにより生成された
命令アドレス(第1のアドレス)IA=(n)が、該R
ISCマイクロプロセッサ34から第1のアクセス要求
信号IAGとともにキャッシュメモリ装置30に与えら
れる。これと同時に、データの整合性を管理するための
物理アドレス(第4のアドレス)PA=(pa)が、バ
ス監視装置36から第4のアクセス要求信号PAGとと
もに同キャッシュメモリ装置30に与えられたものとす
る。この結果、表1中の番号8の行に示す制御装置20
の機能によって、該命令アドレスIA及び物理アドレス
PAが第1及び第2の選択アドレスSA1,SA2とし
て選択される。つまり、次に実行すべき2命令が第2の
デュアルポートメモリ24からフェッチされるのと並行
して、該物理アドレスPAのデータをキャッシュメモリ
装置30が保持しているかどうかが調べられることとな
る。この例では、該命令アドレスIA=(n)によっ
て、ロード命令とストア命令との2命令がフェッチされ
たものとする。In cycle t1, while the load instruction is being executed by the RISC microprocessor 34,
The instruction address (first address) IA = (n) generated by incrementing the program counter is the R
It is supplied from the ISC microprocessor 34 to the cache memory device 30 together with the first access request signal IAG. At the same time, the physical address (fourth address) PA = (pa) for managing the data consistency is given from the bus monitoring device 36 to the cache memory device 30 together with the fourth access request signal PAG. I shall. As a result, the controller 20 shown in the row of No. 8 in Table 1
With the function of, the instruction address IA and the physical address PA are selected as the first and second selection addresses SA1 and SA2. That is, while the two instructions to be executed next are fetched from the second dual port memory 24, it is checked whether or not the cache memory device 30 holds the data of the physical address PA. .. In this example, it is assumed that two instructions, a load instruction and a store instruction, have been fetched by the instruction address IA = (n).
【0053】サイクルt2では、サイクルt1でフェッ
チされた2命令のうちのロード命令がRISCマイクロ
プロセッサ34により実行される一方、サイクルt1の
ロード命令に基づくデータアドレス(第3のアドレス)
DA=(da0)が、第3のアクセス要求信号DAGと
ともにRISCマイクロプロセッサ34からキャッシュ
メモリ装置30に与えられる。この結果、表1中の番号
4の行に示す制御装置20の機能により該データアドレ
スDAが第1の選択アドレスSA1として選択され、第
2のデュアルポートメモリ24から所望のデータが読み
出される。In the cycle t2, the load instruction of the two instructions fetched in the cycle t1 is executed by the RISC microprocessor 34, while the data address (third address) based on the load instruction in the cycle t1.
DA = (da0) is supplied from the RISC microprocessor 34 to the cache memory device 30 together with the third access request signal DAG. As a result, the data address DA is selected as the first selection address SA1 by the function of the control device 20 shown in the row of No. 4 in Table 1, and the desired data is read from the second dual port memory 24.
【0054】サイクルt3では、サイクルt1でフェッ
チされた2命令のうちのストア命令の実行と並行して、
RISCマイクロプロセッサ34からキャッシュメモリ
装置30へ、プログラムカウンタのインクリメントによ
り生成された命令アドレス(第1のアドレス)IA=
(n+8)と、サイクルt2のロード命令に基づくデー
タアドレス(第3のアドレス)DA=(da1)とが、
第1及び第3のアクセス要求信号IAG,DAGととも
に同時に与えられる。この結果、表1中の番号7の行に
示す制御装置20の機能によって、該命令アドレスIA
及びデータアドレスDAが第1及び第2の選択アドレス
SA1,SA2として選択される。つまり、第2のデュ
アルポートメモリ24からは、次に実行すべき2命令と
所望のデータとが同時に読み出されることとなる。この
例では、命令アドレスIA=(n+8)によって、2つ
のストア命令がフェッチされたものとする。At cycle t3, in parallel with the execution of the store instruction of the two instructions fetched at cycle t1,
An instruction address (first address) IA = generated by incrementing the program counter from the RISC microprocessor 34 to the cache memory device 30.
(N + 8) and the data address (third address) DA = (da1) based on the load instruction of the cycle t2,
It is given simultaneously with the first and third access request signals IAG, DAG. As a result, the instruction address IA is changed by the function of the control device 20 shown in the row of No. 7 in Table 1.
And the data address DA are selected as the first and second selection addresses SA1 and SA2. That is, the next two instructions to be executed and the desired data are simultaneously read from the second dual port memory 24. In this example, it is assumed that two store instructions are fetched by the instruction address IA = (n + 8).
【0055】サイクルt4では、サイクルt3でフェッ
チされた2命令のうちの第1のストア命令がRISCマ
イクロプロセッサ34により実行されると同時に、サイ
クルt3のストア命令に基づくデータアドレス(第3の
アドレス)DA=(da2)が、第3のアクセス要求信
号DAGとともにRISCマイクロプロセッサ34から
キャッシュメモリ装置30に与えられる。この結果、該
データアドレスDAが第1の選択アドレスSA1として
選択され、第2のデュアルポートメモリ24へ所定のデ
ータが書き込まれる。In the cycle t4, the first store instruction of the two instructions fetched in the cycle t3 is executed by the RISC microprocessor 34, and at the same time, the data address (third address) based on the store instruction of the cycle t3. DA = (da2) is supplied from the RISC microprocessor 34 to the cache memory device 30 together with the third access request signal DAG. As a result, the data address DA is selected as the first selection address SA1 and predetermined data is written in the second dual port memory 24.
【0056】サイクルt5では、サイクルt3でフェッ
チされた2命令のうちの第2のストア命令の実行と並行
して、RISCマイクロプロセッサ34からキャッシュ
メモリ装置30へ、命令アドレス(第1のアドレス)I
A=(n+16)と、サイクルt4のストア命令に基づ
くデータアドレス(第3のアドレス)DA=(da3)
とが、第1及び第3のアクセス要求信号IAG,DAG
とともに同時に与えられる。この結果、該命令アドレス
IA及びデータアドレスDAが第1及び第2の選択アド
レスSA1,SA2として選択され、次に実行すべき2
命令が第2のデュアルポートメモリ24からフェッチさ
れると同時に、同第2のデュアルポートメモリ24へ所
定のデータが書き込まれる。In cycle t5, in parallel with the execution of the second store instruction of the two instructions fetched in cycle t3, the instruction address (first address) I is transferred from the RISC microprocessor 34 to the cache memory device 30.
A = (n + 16) and a data address (third address) DA = (da3) based on the store instruction in cycle t4
And the first and third access request signals IAG, DAG
Given at the same time. As a result, the instruction address IA and the data address DA are selected as the first and second selection addresses SA1 and SA2, and 2 to be executed next.
At the same time that the instruction is fetched from the second dual port memory 24, predetermined data is written to the second dual port memory 24.
【0057】サイクルt6では、サイクルt5のストア
命令に基づくデータアドレス(第3のアドレス)DA=
(da4)が、第3のアクセス要求信号DAGとともに
RISCマイクロプロセッサ34からキャッシュメモリ
装置30に与えられる。この結果、該データアドレスD
Aが第1の選択アドレスSA1として選択され、第2の
デュアルポートメモリ24へ所定のデータが書き込まれ
る。In cycle t6, the data address (third address) DA = based on the store instruction in cycle t5
(Da4) is supplied from the RISC microprocessor 34 to the cache memory device 30 together with the third access request signal DAG. As a result, the data address D
A is selected as the first selection address SA1, and predetermined data is written in the second dual port memory 24.
【0058】以上のとおり、本実施例によれば、命令ア
ドレスIAに係るアクセス要求とマルチプロセッサ構成
への対応のための物理アドレスPAに係るアクセス要求
との同時処理が可能であって、従来と比べてペナルティ
が抑制される。また、命令アドレスIAに係るアクセス
要求とデータアドレスDAに係るアクセス要求との同時
処理が可能であるので、RISCマイクロプロセッサ3
4が連続したメモリアクセス命令(ロード命令及びスト
ア命令)を実行する場合でも、キャッシュメモリ装置3
0がヒットするかぎりペナルティなしの命令フェッチ及
びデータアクセスを実現できる。As described above, according to the present embodiment, it is possible to simultaneously process the access request for the instruction address IA and the access request for the physical address PA for coping with the multiprocessor configuration. Penalty is suppressed in comparison. Further, since the access request for the instruction address IA and the access request for the data address DA can be simultaneously processed, the RISC microprocessor 3
Cache memory device 3 even when 4 execute consecutive memory access instructions (load instruction and store instruction)
As long as 0 hits, instruction fetch and data access without penalty can be realized.
【0059】図6は、(1) 分岐先アドレス(第2のアド
レス)BAに係るアクセス要求と物理アドレス(第4の
アドレス)PAに係るアクセス要求との同時生起の例
(サイクルt2)と、(2) 命令アドレス(第1のアドレ
ス)IAに係るアクセス要求とデータアドレス(第3の
アドレス)DAに係るアクセス要求との同時生起の例
(サイクルt5)と、(3) データアドレス(第3のアド
レス)DAに係るアクセス要求と物理アドレス(第4の
アドレス)PAに係るアクセス要求との同時生起の例
(サイクルt6)とを示すタイミングチャート図であ
る。FIG. 6 shows (1) an example (cycle t2) of simultaneous occurrence of an access request for a branch destination address (second address) BA and an access request for a physical address (fourth address) PA, and (2) Example of simultaneous occurrence of access request relating to instruction address (first address) IA and access request relating to data address (third address) DA (cycle t5), and (3) data address (third address) FIG. 9 is a timing chart showing an example (cycle t6) of simultaneous occurrence of an access request related to the address DA) and an access request related to the physical address (fourth address) PA.
【0060】サイクルt1では、RISCマイクロプロ
セッサ34によって条件分岐命令が実行されている間
に、プログラムカウンタのインクリメントにより生成さ
れた命令アドレス(第1のアドレス)IA=(n)が、
該RISCマイクロプロセッサ34から第1のアクセス
要求信号IAGとともにキャッシュメモリ装置30に与
えられたものとする。これにより、該命令アドレスIA
が第1の選択アドレスSA1として選択され、第2のデ
ュアルポートメモリ24から2命令がフェッチされる。In the cycle t1, while the conditional branch instruction is being executed by the RISC microprocessor 34, the instruction address (first address) IA = (n) generated by the increment of the program counter becomes
It is assumed that the RISC microprocessor 34 supplies the cache memory device 30 with the first access request signal IAG. As a result, the instruction address IA
Is selected as the first selection address SA1 and two instructions are fetched from the second dual port memory 24.
【0061】サイクルt2では、サイクルt1でフェッ
チされた2命令のうちの1番目の命令の実行と並行して
サイクルt1の条件分岐命令の条件の成立・不成立の判
断がRISCマイクロプロセッサ34によって行われて
いる間に、該条件分岐命令に基づいて計算された分岐先
アドレス(第2のアドレス)BA=(m)が、該RIS
Cマイクロプロセッサ34から第2のアクセス要求信号
BAGとともにキャッシュメモリ装置30に与えられ
る。これと同時に、データの整合性を管理するための物
理アドレス(第4のアドレス)PA=(pa0)が、バ
ス監視装置36から第4のアクセス要求信号PAGとと
もに同キャッシュメモリ装置30に与えられたものとす
る。この結果、表1中の番号10の行に示す制御装置2
0の機能によって、該分岐先アドレスBA及び物理アド
レスPAが第1及び第2の選択アドレスSA1,SA2
として選択される。つまり、分岐条件成立の場合に次に
実行すべき1命令が第2のデュアルポートメモリ24か
らフェッチされるのと並行して、該物理アドレスPAの
データをキャッシュメモリ装置30が保持しているかど
うかが調べられる。しかも、分岐条件不成立の場合に次
に実行すべき命令はサイクルt1において既にフェッチ
されているので、RISCマイクロプロセッサ34は、
フェッチした2アドレスの命令のうちのいずれのアドレ
スの命令を次に実行すべきかを分岐条件の成立の如何に
応じて選択し、該選択した命令を次サイクルt3で直ち
に実行できる。In cycle t2, the RISC microprocessor 34 determines whether or not the condition of the conditional branch instruction of cycle t1 is satisfied in parallel with the execution of the first instruction of the two instructions fetched in cycle t1. In the meantime, the branch destination address (second address) BA = (m) calculated based on the conditional branch instruction is
It is supplied from the C microprocessor 34 to the cache memory device 30 together with the second access request signal BAG. At the same time, the physical address (fourth address) PA = (pa0) for managing the data consistency is given from the bus monitoring device 36 to the cache memory device 30 together with the fourth access request signal PAG. I shall. As a result, the controller 2 shown in the row of No. 10 in Table 1
With the function of 0, the branch destination address BA and the physical address PA become the first and second selection addresses SA1 and SA2.
Is selected as. That is, whether or not the cache memory device 30 holds the data of the physical address PA in parallel with the fact that the next instruction to be executed is fetched from the second dual port memory 24 when the branch condition is satisfied. Can be examined. Moreover, since the instruction to be executed next when the branch condition is not satisfied has already been fetched in cycle t1, the RISC microprocessor 34
Which of the fetched two-address instructions should be executed next is selected depending on whether the branch condition is satisfied, and the selected instruction can be immediately executed in the next cycle t3.
【0062】この例では、分岐先アドレスBA=(m)
によってロード命令がフェッチされ、かつ分岐条件が成
立した結果、サイクルt3ではロード命令がRISCマ
イクロプロセッサ34によって選択・実行されるものと
する。また、このように分岐条件が成立した場合には、
RISCマイクロプロセッサ34中のプログラムカウン
タは、(n)から(m)に変更されたうえでインクリメ
ントされる。したがって、サイクルt3において該RI
SCマイクロプロセッサ34から第1のアクセス要求信
号IAGとともにキャッシュメモリ装置30に与えられ
る命令アドレス(第1のアドレス)IAは、(m+4)
となる。この結果、該命令アドレスIA=(m+4)が
第1の選択アドレスSA1として選択される。この第1
の選択アドレスSA1によって、第2のデュアルポート
メモリ24から2つのロード命令がフェッチされたもの
とする。In this example, the branch destination address BA = (m)
As a result of the load instruction being fetched by and the branch condition being satisfied, the load instruction is selected and executed by the RISC microprocessor 34 in cycle t3. If the branch condition is satisfied in this way,
The program counter in the RISC microprocessor 34 is changed from (n) to (m) and then incremented. Therefore, in cycle t3, the RI
The instruction address (first address) IA given from the SC microprocessor 34 to the cache memory device 30 together with the first access request signal IAG is (m + 4).
Becomes As a result, the instruction address IA = (m + 4) is selected as the first selection address SA1. This first
It is assumed that two load instructions have been fetched from the second dual port memory 24 by the selection address SA1.
【0063】サイクルt4では、サイクルt3でフェッ
チされた2命令のうちの第1のロード命令の実行と並行
して、RISCマイクロプロセッサ34からキャッシュ
メモリ装置30へ、サイクルt3のロード命令に基づく
データアドレス(第3のアドレス)DA=(da0)が
第3のアクセス要求信号DAGとともに与えられる。こ
の結果、該データアドレスDAが第1の選択アドレスS
A1として選択され、第2のデュアルポートメモリ24
から所望のデータが読み出される。At cycle t4, in parallel with the execution of the first load instruction of the two instructions fetched at cycle t3, the RISC microprocessor 34 transfers the data address based on the load instruction at cycle t3 to the cache memory device 30. (Third address) DA = (da0) is given together with the third access request signal DAG. As a result, the data address DA is the first selected address S
The second dual port memory 24 selected as A1
The desired data is read from.
【0064】サイクルt5では、サイクルt3でフェッ
チされた2命令のうちの第2のロード命令の実行と並行
して、RISCマイクロプロセッサ34からキャッシュ
メモリ装置30へ、プログラムカウンタのインクリメン
トにより生成された命令アドレス(第1のアドレス)I
A=(n+12)と、サイクルt4のロード命令に基づ
くデータアドレス(第3のアドレス)DA=(da1)
とが、第1及び第3のアクセス要求信号IAG,DAG
とともに同時に与えられる。この結果、表1中の番号7
の行に示す制御装置20の機能によって、該命令アドレ
スIA及びデータアドレスDAが第1及び第2の選択ア
ドレスSA1,SA2として選択される。つまり、第2
のデュアルポートメモリ24からは、次に実行すべき2
命令と所望のデータとが同時に読み出される。At cycle t5, in parallel with the execution of the second load instruction of the two instructions fetched at cycle t3, the instruction generated by the increment of the program counter from the RISC microprocessor 34 to the cache memory device 30. Address (first address) I
A = (n + 12) and a data address (third address) DA = (da1) based on the load instruction of cycle t4
And the first and third access request signals IAG, DAG
Given at the same time. As a result, the number 7 in Table 1
The instruction address IA and the data address DA are selected as the first and second selection addresses SA1 and SA2 by the function of the control device 20 shown in the row. That is, the second
2 to be executed next from the dual port memory 24
The instruction and the desired data are read simultaneously.
【0065】サイクルt6では、サイクルt5でフェッ
チされた2命令のうちの1番目の命令の実行と並行し
て、サイクルt5のロード命令に基づくデータアドレス
(第3のアドレス)DA=(da2)が、RISCマイ
クロプロセッサ34から第3のアクセス要求信号BAG
とともにキャッシュメモリ装置30に与えられる。これ
と同時に、データの整合性を管理するための物理アドレ
ス(第4のアドレス)PA=(pa1)が、バス監視装
置36から第4のアクセス要求信号PAGとともに同キ
ャッシュメモリ装置30に与えられたものとする。この
場合、表1中の番号11の行に示す制御装置20の機能
によって、該データアドレスDA及び物理アドレスPA
が第1及び第2の選択信号SA1,SA2として選択さ
れる。つまり、所望のデータが第2のデュアルポートメ
モリ24から読み出されるのと並行して、該物理アドレ
スPAのデータをキャッシュメモリ装置30が保持して
いるかどうかが調べられることとなる。At cycle t6, in parallel with the execution of the first instruction of the two instructions fetched at cycle t5, the data address (third address) DA = (da2) based on the load instruction at cycle t5 is given. , RISC microprocessor 34 sends third access request signal BAG
It is also given to the cache memory device 30. At the same time, the physical address (fourth address) PA = (pa1) for managing the data consistency is given from the bus monitoring device 36 to the cache memory device 30 together with the fourth access request signal PAG. I shall. In this case, by the function of the control device 20 shown in the row of No. 11 in Table 1, the data address DA and the physical address PA
Are selected as the first and second selection signals SA1 and SA2. That is, it is possible to check whether or not the cache memory device 30 holds the data of the physical address PA while the desired data is read from the second dual port memory 24.
【0066】以上のとおり、本実施例によれば、分岐先
アドレスBAに係るアクセス要求と物理アドレスPAに
係るアクセス要求との同時処理、及び、データアドレス
DAに係るアクセス要求と物理アドレスPAに係るアク
セス要求との同時処理が可能であって、従来と比べてペ
ナルティが抑制される。なお、図6に関する以上の説明
では条件分岐命令の条件が成立したものとしているの
で、サイクルt2の命令実行結果は、RISCマイクロ
プロセッサ34内で無効化される。As described above, according to this embodiment, the simultaneous processing of the access request for the branch destination address BA and the access request for the physical address PA, and the access request for the data address DA and the physical address PA are performed. Simultaneous processing with the access request is possible, and the penalty is suppressed as compared with the conventional case. Since the condition of the conditional branch instruction is satisfied in the above description with reference to FIG. 6, the instruction execution result of cycle t2 is invalidated in the RISC microprocessor 34.
【0067】図7は、(1) 命令アドレス(第1のアドレ
ス)IA、分岐先アドレス(第2のアドレス)BA及び
物理アドレス(第4のアドレス)PAの各アドレスに係
る3つのアクセス要求の同時生起の例(サイクルt3)
と、(2) 処理待ち状態とされた物理アドレス(第4のア
ドレス)PAに係るアクセス要求に加えて命令アドレス
(第1のアドレス)IA及びデータアドレス(第3のア
ドレス)の各々に係る2つのアクセス要求が同時に生起
した場合の例(サイクルt4)とを示すタイミングチャ
ート図である。更に同図には、(3) 分岐先アドレス(第
2のアドレス)BAに係るアクセス要求とデータアドレ
ス(第3のアドレス)DAに係るアクセス要求とが同時
に与えられた例(サイクルt5)と、(4) 命令アドレス
(第1のアドレス)IAに係るアクセス要求とデータア
ドレス(第3のアドレス)DAに係るアクセス要求との
同時生起の例(サイクルt6)とが示されている。FIG. 7 shows (1) three access requests for each of the instruction address (first address) IA, the branch destination address (second address) BA, and the physical address (fourth address) PA. Example of simultaneous occurrence (cycle t3)
(2) In addition to the access request relating to the physical address (fourth address) PA which has been placed in the processing waiting state, 2 relating to each of the instruction address (first address) IA and data address (third address) It is a timing chart figure which shows the example (cycle t4) in case two access requests generate simultaneously. Further, in the figure, (3) an example (cycle t5) in which an access request related to a branch destination address (second address) BA and an access request related to a data address (third address) DA are simultaneously given, (4) An example of simultaneous occurrence (cycle t6) of an access request related to the instruction address (first address) IA and an access request related to the data address (third address) DA is shown.
【0068】サイクルt1では、RISCマイクロプロ
セッサ34によってロード命令が実行されている間に、
プログラムカウンタのインクリメントにより生成された
命令アドレス(第1のアドレス)IA=(n)が、該R
ISCマイクロプロセッサ34から第1のアクセス要求
信号IAGとともにキャッシュメモリ装置30に与えら
れたものとする。この結果、該命令アドレスIAが第1
の選択アドレスSA1として選択され、第2のデュアル
ポートメモリ24から2命令がフェッチされる。この
際、条件分岐命令とロード命令とがフェッチされたもの
とする。In cycle t1, while the load instruction is being executed by the RISC microprocessor 34,
The instruction address (first address) IA = (n) generated by incrementing the program counter is the R
It is assumed that the cache memory device 30 is supplied from the ISC microprocessor 34 together with the first access request signal IAG. As a result, the instruction address IA is the first
, And two instructions are fetched from the second dual port memory 24. At this time, it is assumed that the conditional branch instruction and the load instruction are fetched.
【0069】サイクルt2では、サイクルt1でフェッ
チされた2命令のうちの条件分岐命令がRISCマイク
ロプロセッサ34により実行される一方、サイクルt1
のロード命令に基づくデータアドレス(第3のアドレ
ス)DA=(da0)が、第3のアクセス要求信号DA
GとともにRISCマイクロプロセッサ34からキャッ
シュメモリ装置30に与えられる。この結果、該データ
アドレスDAが第1の選択アドレスSA1として選択さ
れ、第2のデュアルポートメモリ24から所望のデータ
が読み出される。In the cycle t2, the conditional branch instruction of the two instructions fetched in the cycle t1 is executed by the RISC microprocessor 34, while the conditional branch instruction is executed in the cycle t1.
Data address (third address) DA = (da0) based on the load instruction of the third access request signal DA
It is supplied to the cache memory device 30 from the RISC microprocessor 34 together with G. As a result, the data address DA is selected as the first selection address SA1, and desired data is read from the second dual port memory 24.
【0070】サイクルt3では、サイクルt1でフェッ
チされた2命令のうちのロード命令の実行と並行してサ
イクルt2の条件分岐命令の条件の成立・不成立の判断
がRISCマイクロプロセッサ34によって行われてい
る間に、プログラムカウンタのインクリメントにより生
成された命令アドレス(第1のアドレス)IA=(n+
8)と該条件分岐命令に基づいて計算された分岐先アド
レス(第2のアドレス)BA=(m0)とが、RISC
マイクロプロセッサ34から第1及び第2のアクセス要
求信号IAG,BAGとともにキャッシュメモリ装置3
0に与えられる。これと同時に、データの整合性を管理
するための物理アドレス(第4のアドレス)PA=(p
a)が、バス監視装置36から第4のアクセス要求信号
PAGとともに同キャッシュメモリ装置30に与えられ
たものとする。この場合、表2中の番号19の行に示す
制御装置20の機能によって、該命令アドレスIA及び
分岐先アドレスBAが第1及び第2の選択アドレスSA
1,SA2として選択されるとともに、該物理アドレス
PAが処理待ち状態とされる。つまり、第2のデュアル
ポートメモリ24からは、条件分岐命令の条件不成立の
場合に次に実行すべき2命令と、条件成立の場合に次に
実行すべき1命令との双方が同時にフェッチされること
となる。この結果、RISCマイクロプロセッサ34
は、フェッチした2アドレスの命令のうちのいずれのア
ドレスの命令を次に実行すべきかを分岐条件の成立の如
何に応じて選択し、該選択した命令を次サイクルt4で
直ちに実行できる。At cycle t3, the RISC microprocessor 34 determines whether or not the condition of the conditional branch instruction at cycle t2 is satisfied in parallel with the execution of the load instruction of the two instructions fetched at cycle t1. In the meantime, the instruction address (first address) IA = (n +) generated by incrementing the program counter
8) and the branch destination address (second address) BA = (m0) calculated based on the conditional branch instruction are RISC.
The cache memory device 3 together with the first and second access request signals IAG and BAG from the microprocessor 34.
Given to 0. At the same time, a physical address (fourth address) PA = (p for managing data consistency)
It is assumed that a) is given from the bus monitoring device 36 to the cache memory device 30 together with the fourth access request signal PAG. In this case, the instruction address IA and the branch destination address BA are set to the first and second selection addresses SA by the function of the control device 20 shown in the row of number 19 in Table 2.
1 and SA2, the physical address PA is placed in a processing waiting state. That is, both the two instructions to be executed next when the condition of the conditional branch instruction is not satisfied and the one instruction to be executed next when the condition is satisfied are simultaneously fetched from the second dual port memory 24. It will be. As a result, the RISC microprocessor 34
Can select which of the fetched two-address instructions should be executed next, depending on whether the branch condition is satisfied, and the selected instruction can be executed immediately in the next cycle t4.
【0071】この例では、分岐先アドレスBA=(m
0)によってサイクルt3で他の条件分岐命令がフェッ
チされ、かつサイクルt2の条件分岐命令の条件が成立
した結果、サイクルt4ではサイクルt3でフェッチさ
れた条件分岐命令がRISCマイクロプロセッサ34に
よって選択・実行されるものとする。また、このように
分岐条件が成立した場合には、RISCマイクロプロセ
ッサ34中のプログラムカウンタは、(n+8)から
(m0)に変更されたうえでインクリメントされる。し
たがって、サイクルt4において該RISCマイクロプ
ロセッサ34から第1のアクセス要求信号IAGととも
にキャッシュメモリ装置30に与えられる命令アドレス
(第1のアドレス)IAは、(m0+4)となる。つま
り、サイクルt4では、サイクルt3で処理待ち状態と
された物理アドレス(第4のアドレス)PA=(pa)
がバス監視装置36から第4のアクセス要求信号PAG
とともにキャッシュメモリ装置30に与えられるのに加
えて、RISCマイクロプロセッサ34から同キャッシ
ュメモリ装置30へ、命令アドレス(第1のアドレス)
IA=(m0+4)とサイクルt3のロード命令に基づ
くデータアドレス(第3のアドレス)DA=(da1)
とが、第1及び第3のアクセス要求信号IAG,DAG
とともに同時に与えられる。この場合、表2中の番号2
2の行に示す制御装置20の機能によって、該命令アド
レスIA及び物理アドレスPAが第1及び第2の選択ア
ドレスSA1,SA2として選択されるとともに、該デ
ータアドレスDAが処理待ち状態とされる。つまり、次
に実行すべき2命令が第2のデュアルポートメモリ24
からフェッチされるのと並行して、該物理アドレスPA
のデータをキャッシュメモリ装置30が保持しているか
どうかが調べられる。この例では、命令アドレスIA=
(m0+4)によって、ロード命令と他の命令との2命
令がフェッチされたものとする。In this example, the branch destination address BA = (m
0), another conditional branch instruction is fetched at cycle t3, and the condition of the conditional branch instruction at cycle t2 is satisfied. As a result, the conditional branch instruction fetched at cycle t3 is selected and executed by the RISC microprocessor 34 at cycle t4. Shall be done. When the branch condition is satisfied, the program counter in the RISC microprocessor 34 is changed from (n + 8) to (m0) and then incremented. Therefore, in cycle t4, the instruction address (first address) IA given from the RISC microprocessor 34 to the cache memory device 30 together with the first access request signal IAG becomes (m0 + 4). That is, in cycle t4, the physical address (fourth address) PA = (pa) that has been put in the processing wait state in cycle t3.
From the bus monitor 36 to the fourth access request signal PAG
In addition to being supplied to the cache memory device 30 together with, the instruction address (first address) from the RISC microprocessor 34 to the same cache memory device 30.
Data address (third address) DA = (da1) based on IA = (m0 + 4) and the load instruction at cycle t3
And the first and third access request signals IAG, DAG
Given at the same time. In this case, the number 2 in Table 2
The instruction address IA and the physical address PA are selected as the first and second selection addresses SA1 and SA2 by the function of the control device 20 shown in the second row, and the data address DA is put in the processing waiting state. That is, the next two instructions to be executed are the second dual port memory 24.
From the physical address PA in parallel with being fetched from
It is checked whether or not the cache memory device 30 holds this data. In this example, the instruction address IA =
It is assumed that two instructions, a load instruction and another instruction, have been fetched by (m0 + 4).
【0072】サイクルt5では、サイクルt4でフェッ
チされた2命令のうちのロード命令の実行と並行してサ
イクルt4の条件分岐命令の条件の成立・不成立の判断
がRISCマイクロプロセッサ34によって行われてい
る間に、キャッシュメモリ装置30へは該RISCマイ
クロプロセッサ34から、サイクルt4の条件分岐命令
に基づいて計算された分岐先アドレス(第2のアドレ
ス)BA=(m1)と、サイクルt4で処理待ち状態と
されたデータアドレス(第3のアドレス)DA=(da
1)とが、第2及び第3のアクセス要求信号BAG,D
AGとともに与えられる。この結果、表1中の番号9の
行に示す制御装置20の機能によって、該分岐先アドレ
スBA及びデータアドレスDAが第1及び第2の選択ア
ドレスSA1,SA2として選択される。つまり、第2
のデュアルポートメモリ24からは、分岐条件成立の場
合に次に実行すべき2命令がフェッチされると同時に、
所望のデータが読み出される。しかも、分岐条件不成立
の場合に次に実行すべき命令はサイクルt4において既
にフェッチされているので、RISCマイクロプロセッ
サ34は、フェッチした2アドレスの命令のうちのいず
れのアドレスの命令を次に実行すべきかを分岐条件の成
立の如何に応じて選択し、該選択した命令を次サイクル
t6で直ちに実行できる。At cycle t5, the RISC microprocessor 34 determines whether or not the condition of the conditional branch instruction at cycle t4 is satisfied in parallel with the execution of the load instruction of the two instructions fetched at cycle t4. In the meantime, to the cache memory device 30, from the RISC microprocessor 34, the branch destination address (second address) BA = (m1) calculated based on the conditional branch instruction at the cycle t4, and the processing wait state at the cycle t4. Data address (third address) DA = (da
1) is the second and third access request signals BAG, D
Given with AG. As a result, the branch destination address BA and the data address DA are selected as the first and second selection addresses SA1 and SA2 by the function of the control device 20 shown in the row of number 9 in Table 1. That is, the second
When the branch condition is satisfied, the next two instructions to be executed are fetched from the dual port memory 24 of
The desired data is read. Moreover, since the instruction to be executed next when the branch condition is not satisfied has already been fetched in cycle t4, the RISC microprocessor 34 must execute whichever instruction of the fetched two-address instructions next. The key can be selected according to whether the branch condition is satisfied, and the selected instruction can be immediately executed in the next cycle t6.
【0073】この例ではサイクルt4の条件分岐命令の
条件が成立せず、サイクルt6では、サイクルt4でフ
ェッチされた2命令のうちの2番目の命令がRISCマ
イクロプロセッサ34によって選択・実行されるものと
する。この場合、同サイクルt6では、RISCマイク
ロプロセッサ34からキャッシュメモリ装置30へ、プ
ログラムカウンタのインクリメントにより生成された命
令アドレス(第1のアドレス)IA=(m0+12)
と、サイクルt5のロード命令に基づくデータアドレス
(第3のアドレス)DA=(da2)とが、第1及び第
3のアクセス要求信号IAG,DAGとともに同時に与
えられる。この結果、表1中の番号7の行に示す制御装
置20の機能によって、該命令アドレスIA及びデータ
アドレスDAが第1及び第2の選択アドレスSA1,S
A2として選択される。つまり、第2のデュアルポート
メモリ24からは、次に実行すべき2命令と所望のデー
タとが同時に読み出されることとなる。In this example, the condition of the conditional branch instruction in cycle t4 is not satisfied, and in cycle t6, the second instruction of the two instructions fetched in cycle t4 is selected and executed by the RISC microprocessor 34. And In this case, at the same cycle t6, the RISC microprocessor 34 transfers to the cache memory device 30 the instruction address (first address) IA = (m0 + 12) generated by incrementing the program counter.
And a data address (third address) DA = (da2) based on the load instruction in cycle t5 are simultaneously given together with the first and third access request signals IAG, DAG. As a result, the instruction address IA and the data address DA are changed to the first and second selection addresses SA1 and S1 by the function of the control device 20 shown in the row of No. 7 in Table 1.
Selected as A2. That is, the next two instructions to be executed and the desired data are simultaneously read from the second dual port memory 24.
【0074】以上のとおり、本実施例によれば、物理ア
ドレスPAに係るデータアクセス要求に比べて命令フェ
ッチのための命令アドレスIA及び分岐先アドレスBA
に係るアクセス要求が優先的に処理されるので、RIS
Cマイクロプロセッサ34への1サイクル毎の命令供給
がデータアクセスによって阻害されることがない。ま
た、あるサイクルで処理待ち状態とされたアクセス要求
が次サイクルで優先的に処理されるので、該アクセス要
求について2サイクル以上のペナルティが生じることは
ない。また、分岐先アドレスBAに係るアクセス要求と
データアドレスDAに係るアクセス要求との同時処理も
可能である。なお、図7に関する以上の説明ではサイク
ルt2の条件分岐命令の条件が成立したものとしている
ので、サイクルt3のロード命令の実行結果、すなわち
サイクルt5において読み出されたデータは、RISC
マイクロプロセッサ34側で無効化される。As described above, according to this embodiment, the instruction address IA and the branch destination address BA for instruction fetch are compared with the data access request relating to the physical address PA.
Access requests related to
The instruction supply to the C microprocessor 34 in each cycle is not disturbed by the data access. Further, since the access request in the processing waiting state in a certain cycle is preferentially processed in the next cycle, a penalty of two cycles or more does not occur for the access request. Further, it is possible to simultaneously process an access request for the branch destination address BA and an access request for the data address DA. Since the condition of the conditional branch instruction of cycle t2 is satisfied in the above description with reference to FIG. 7, the execution result of the load instruction of cycle t3, that is, the data read in cycle t5 is the RISC.
It is invalidated on the microprocessor 34 side.
【0075】以上、2つのアクセス要求の同時処理につ
いて、図4〜図7を参照しながら、6種類のアドレスの
組み合わせ、すなわち、(1) 命令アドレスIAと分岐先
アドレスBA、(2) 命令アドレスIAとデータアドレス
DA、(3) 命令アドレスIAと物理アドレスPA、(4)
分岐先アドレスBAとデータアドレスDA、(5) 分岐先
アドレスBAと物理アドレスPA、及び、(6) データア
ドレスDAと物理アドレスPAの各組み合わせの場合を
説明してきた。RISCマイクロプロセッサ34が1サ
イクル毎に1つの命令を実行する場合には、実際に生じ
る組み合わせはこれら6種類に限られている。ところ
が、RISCマイクロプロセッサ34のアーキテクチャ
として1サイクルに複数の命令を同時に実行できるスー
パースケーラ型のアーキテクチャを採用する場合を考え
ると、例えば2つのメモリアクセス命令が同時に実行さ
れる場合には、キャッシュメモリ装置30において2つ
のデータアドレスDAに係るアクセス要求の同時処理が
必要となる。このためには、制御装置20は、重複した
第3のアクセス要求信号DAGが同時に与えられた場合
には、第1の指定信号S1でデータアドレス(第3のア
ドレス)DAを指定し、かつ第2の指定信号S2で他の
データアドレス(第3のアドレス)DAを指定すること
とする。更に、キャッシュメモリ装置30に格納された
命令列がRISCマイクロプロセッサ34からの命令ア
ドレス(第1のアドレス)IAにより一度に4命令づつ
フェッチされることとすれば、該命令アドレスIAに係
るアクセス頻度が低減し、キャッシュメモリ装置30が
ヒットするかぎりペナルティなしの命令フェッチ及びデ
ータアクセスを実現できる。Regarding the simultaneous processing of two access requests, referring to FIGS. 4 to 7, a combination of 6 types of addresses, that is, (1) instruction address IA and branch destination address BA, (2) instruction address IA and data address DA, (3) Instruction address IA and physical address PA, (4)
The case of each combination of the branch destination address BA and the data address DA, (5) the branch destination address BA and the physical address PA, and (6) the data address DA and the physical address PA has been described. When the RISC microprocessor 34 executes one instruction per cycle, the combinations that actually occur are limited to these six types. However, considering the case where a superscalar type architecture capable of simultaneously executing a plurality of instructions in one cycle is adopted as the architecture of the RISC microprocessor 34, for example, when two memory access instructions are simultaneously executed, a cache memory device is used. Simultaneous processing of access requests for two data addresses DA is required at 30. For this purpose, the control device 20 designates the data address (third address) DA by the first designation signal S1 when the duplicated third access request signals DAG are given at the same time, and Another data address (third address) DA is designated by the second designation signal S2. Further, assuming that the instruction sequence stored in the cache memory device 30 is fetched by the instruction address (first address) IA from the RISC microprocessor 34 four instructions at a time, the access frequency related to the instruction address IA. Therefore, as long as the cache memory device 30 is hit, instruction fetch and data access without penalty can be realized.
【0076】また、3つのアクセス要求が同時に与えら
れる場合について、図7を参照しながら、(1) 命令アド
レスIA、分岐先アドレスBA及び物理アドレスPA、
並びに、(2) 命令アドレスIA、データアドレスDA及
び物理アドレスPAの各組み合わせを説明した。3つ以
上のアクセス要求が同時に与えられる場合のアドレスの
組み合わせとしては、この他に、(3) 命令アドレスI
A、分岐先アドレスBA及びデータアドレスDA、(4)
分岐先アドレスBA、データアドレスDA及び物理アド
レスPA、並びに、(5) 命令アドレスIA、分岐先アド
レスBA、データアドレスDA及び物理アドレスPAの
3種類の組み合わせが考えられる。ただし、これら3種
類の組み合わせは、RISCマイクロプロセッサ34に
スーパースケーラ型のアーキテクチャを採用する場合に
限って生じ得るものである。本実施例のキャッシュメモ
リ装置30は、表2中の番号12〜15、24〜27及
び28〜38の行に各々示すように、これらの組み合わ
せにも対応可能である。Regarding the case where three access requests are simultaneously given, referring to FIG. 7, (1) instruction address IA, branch destination address BA and physical address PA,
Also, (2) each combination of the instruction address IA, the data address DA and the physical address PA has been described. In addition to this, as a combination of addresses when three or more access requests are simultaneously given, (3) Instruction address I
A, branch destination address BA and data address DA, (4)
There are three possible combinations of branch destination address BA, data address DA and physical address PA, and (5) instruction address IA, branch destination address BA, data address DA and physical address PA. However, these three kinds of combinations can occur only when the RISC microprocessor 34 adopts the superscaler type architecture. The cache memory device 30 of the present embodiment is also compatible with these combinations as shown in the rows of numbers 12 to 15, 24 to 27 and 28 to 38 in Table 2.
【0077】さて、第1〜第4のアドレスIA,BA,
DA,PAの各々に係るアクセス要求は、互いに独立に
生起する。したがって、前記のとおり最大4つのアクセ
ス要求が同時に生起する可能性がある。ところが、平均
的なアクセス頻度は次に説明するように1サイクルあた
り2回を下回るので、本実施例のように2つのアクセス
要求を同時に処理できるようにするのが合理的である。Now, the first to fourth addresses IA, BA,
Access requests for DA and PA occur independently of each other. Therefore, as described above, a maximum of four access requests can occur simultaneously. However, since the average access frequency is less than twice per cycle as described below, it is rational to allow two access requests to be processed simultaneously as in the present embodiment.
【0078】RISCマイクロプロセッサ34は1サイ
クル毎に次々と命令を実行していくものであるから、元
来キャッシュメモリ装置から1サイクル毎に1命令を供
給していく必要がある。しかしながら、本実施例のよう
にキャッシュメモリ装置30から一度に2命令がフェッ
チされる構成を採用すれば、1サイクルにつき1回のア
クセス頻度を100%とすると、命令アドレス(第1の
アドレス)IAに係るアクセスの頻度は50%(2サイ
クルに1回の頻度)となる。また、無条件分岐命令、条
件分岐命令等のシーケンス変更命令の使用頻度は15%
程度である。一方、RISCマイクロプロセッサ34の
メモリアクセス命令はロード命令とストア命令との2種
類に限られており、これらの命令の使用頻度は25%程
度である。つまり、分岐先アドレス(第2のアドレス)
BA及びデータアドレス(第3のアドレス)DAに係る
アクセス頻度は、各々15%及び25%と見積ることが
できる。また、バス監視装置36によるキャッシュメモ
リ装置30へのアクセスは1サイクルに1回を越えるこ
とはないので、物理アドレス(第4のアドレス)PAに
係るアクセス頻度は最大100%である。以上の第1〜
第4のアドレスの各々に係るアクセス頻度を合計する
と、最大190%程度となる。ただし、キャッシュメモ
リ装置30の1ブロックを例えば4ラインで構成した場
合にはバス監視装置36によるアクセスの最大頻度は4
サイクルに1回(20〜30%程度のアクセス頻度)と
なるので、実質的にはアクセス頻度の合計は最大110
〜120%程度であると考えられる。したがって、本実
施例のように、2つのアクセス要求を同時に処理できれ
ば十分であることが判る。しかも、本実施例によれば、
処理待ち状態のアクセス要求が最優先で処理されるの
で、4つのアクセス要求が同時に与えられた場合でも、
該4つのアクセス要求のうちの処理待ち状態とされた2
つのアクセス要求は次のサイクルで必ず処理される。し
たがって、ペナルティの発生を常に1サイクルに抑える
ことができる。Since the RISC microprocessor 34 executes instructions one after another in each cycle, it is originally necessary to supply one instruction from each cycle from the cache memory device. However, if the configuration in which two instructions are fetched from the cache memory device 30 at a time is adopted as in the present embodiment, if the access frequency per cycle is 100%, then the instruction address (first address) IA The frequency of access related to is 50% (frequency of once every two cycles). Also, the frequency of use of sequence change instructions such as unconditional branch instructions and conditional branch instructions is 15%.
It is a degree. On the other hand, the memory access instructions of the RISC microprocessor 34 are limited to two types, load instructions and store instructions, and the frequency of use of these instructions is about 25%. That is, the branch destination address (second address)
The access frequencies of the BA and the data address (third address) DA can be estimated to be 15% and 25%, respectively. Further, since the access to the cache memory device 30 by the bus monitoring device 36 does not exceed once per cycle, the access frequency of the physical address (fourth address) PA is 100% at maximum. First to above
The total access frequency for each of the fourth addresses is about 190% at maximum. However, when one block of the cache memory device 30 is composed of, for example, four lines, the maximum frequency of access by the bus monitoring device 36 is four.
Since it is once in a cycle (access frequency of about 20 to 30%), the total access frequency is practically 110 at maximum.
It is considered to be about 120%. Therefore, it can be understood that it is sufficient to process two access requests at the same time as in the present embodiment. Moreover, according to this embodiment,
Since the access request in the processing waiting state is processed with the highest priority, even if four access requests are given at the same time,
2 of the four access requests that have been placed in the processing waiting state
One access request is always processed in the next cycle. Therefore, the occurrence of the penalty can always be suppressed to one cycle.
【0079】なお、データアドレス(第3のアドレス)
DA及び物理アドレス(第4のアドレス)PAに比べて
命令アドレス(第1のアドレス)IA及び分岐先アドレ
ス(第2のアドレス)BAを優先させ、かつデータアド
レスDAに比べて物理アドレスPAを優先させるという
前記の優先ルールは、コンピュータシステムの構成に応
じて適宜変更することができる。The data address (third address)
The instruction address (first address) IA and the branch destination address (second address) BA are given priority over the DA and physical address (fourth address) PA, and the physical address PA is given priority over the data address DA. The above-mentioned priority rule of being allowed can be appropriately changed according to the configuration of the computer system.
【0080】図8は、本発明の他の実施例に係るキャッ
シュメモリ装置の構成を示すブロック図である。本実施
例では、制御装置20は、表3及び表4に示すように、
アクセス要求アドレスとしての第1〜第3のアドレスI
A,BA,DAの中から1つのアドレスを第1の被選択
アドレスとして指定(第1の指定信号S1)し、かつア
クセス要求アドレスとしての第2〜第4のアドレスB
A,DA,PAの中から他のアドレスを第2の被選択ア
ドレスとして指定(第2の指定信号S2)する。これに
対応して、第1のアドレス選択器10には命令アドレス
IA、分岐先アドレスBA及びデータアドレスDAのみ
が、第2のアドレス選択器12には分岐先アドレスB
A、データアドレスDA及び物理アドレスPAのみが各
々入力される。他の構成は、図1の場合と同様である。FIG. 8 is a block diagram showing the structure of a cache memory device according to another embodiment of the present invention. In the present embodiment, the control device 20 is, as shown in Table 3 and Table 4,
First to third addresses I as access request addresses
One address from A, BA, DA is designated as the first selected address (first designation signal S1), and second to fourth addresses B as access request addresses are designated.
Another address is designated as the second selected address from A, DA, and PA (second designation signal S2). Correspondingly, only the instruction address IA, the branch destination address BA and the data address DA are stored in the first address selector 10, and the branch destination address B is stored in the second address selector 12.
Only A, data address DA and physical address PA are input. Other configurations are similar to those in the case of FIG.
【0081】[0081]
【表3】 [Table 3]
【0082】[0082]
【表4】 [Table 4]
【0083】本実施例によれば、制御装置20は、被選
択アドレスの指定の範囲に制限が設けられているにもか
かわらず、第1及び第2の被選択アドレスとして、(1)
命令アドレスIAと分岐先アドレスBA、(2) 命令アド
レスIAとデータアドレスDA、(3) 命令アドレスIA
と物理アドレスPA、(4) 分岐先アドレスBAとデータ
アドレスDA、(5) 分岐先アドレスBAと物理アドレス
PA、及び、(6) データアドレスDAと物理アドレスP
Aの6種類全ての組み合わせを指定することができる。
RISCマイクロプロセッサ34にスーパースケーラ型
のアーキテクチャを採用する場合への対応として、2つ
のデータアドレスDA,DAを指定することも可能であ
る。また、3つのアクセス要求が同時に与えられる場合
でも、図1の実施例の場合と同様の動作が可能である。
つまり、本実施例によれば、図1に示す実施例の場合と
同等の効果を得ながら、ハードウェア構成を簡略化する
ことができる。According to the present embodiment, the control device 20 sets (1) as the first and second selected addresses even though the range of designation of the selected address is limited.
Instruction address IA and branch destination address BA, (2) Instruction address IA and data address DA, (3) Instruction address IA
And a physical address PA, (4) a branch destination address BA and a data address DA, (5) a branch destination address BA and a physical address PA, and (6) a data address DA and a physical address P.
All six combinations of A can be specified.
Two data addresses DA, DA can be designated as a measure for adopting a superscalar type architecture for the RISC microprocessor 34. Even when three access requests are simultaneously given, the same operation as in the embodiment of FIG. 1 can be performed.
That is, according to the present embodiment, it is possible to simplify the hardware configuration while obtaining the same effect as that of the embodiment shown in FIG.
【0084】[0084]
【発明の効果】以上説明してきたとおり、請求項1の発
明によれば、与えられた複数のアクセス要求アドレスの
中から各々1つのアドレスを選択するための複数のアド
レス選択手段と、命令列とデータとが格納されかつ前記
複数のアドレス選択手段で各々選択されたアドレスによ
りそれぞれ独立にアクセスされる記憶手段とを備えた構
成を採用したので、命令フェッチのための複数のアクセ
ス要求と複数のデータアクセス要求との中から任意に選
択された少なくとも2つのアクセス要求の同時処理が可
能となる。しかも、命令キャッシュとデータキャッシュ
とを分離しない構成を採用したので、アプリケーション
プログラムに応じて命令列とデータとの間でメモリ容量
配分の最適化が図れる利点がある。As described above, according to the invention of claim 1, a plurality of address selecting means for selecting one address from a plurality of given access request addresses, and an instruction sequence. Since the data storage means and the storage means that are independently accessed by the addresses respectively selected by the plurality of address selection means are adopted, a plurality of access requests for instruction fetch and a plurality of data are fetched. It is possible to simultaneously process at least two access requests arbitrarily selected from the access requests. Moreover, since the configuration in which the instruction cache and the data cache are not separated is adopted, there is an advantage that the memory capacity distribution between the instruction string and the data can be optimized according to the application program.
【0085】次に、請求項2の発明によれば、プログラ
ムカウンタのインクリメントに基づく命令アドレス(第
1のアドレス)と、シーケンス変更命令に基づく分岐先
アドレス(第2のアドレス)と、メモリアクセス命令に
基づくデータアドレス(第3のアドレス)と、マルチプ
ロセッサ構成の場合のデータの整合性を管理するための
物理アドレス(第4のアドレス)との4種類のアドレス
からなるアドレス群に属する2つのアドレスの各々に係
るアクセス要求がそれぞれ独立に処理される構成を採用
したので、命令キャッシュとデータキャッシュとを分離
しない構成でありながら命令フェッチのためのアクセス
要求(命令アドレス又は分岐先アドレスに係るアクセス
要求)とデータアクセス要求(データアドレス又は物理
アドレスに係るアクセス要求)とを同時に処理できるだ
けでなく、従来は命令キャッシュとデータキャッシュと
を分離したタイプのキャッシュメモリ装置でも実現でき
なかった命令アドレスに係るアクセス要求と分岐先アド
レスに係るアクセス要求との同時処理や、データアドレ
スに係るアクセス要求と物理アドレスに係るアクセス要
求との同時処理が可能となり、ペナルティの発生が抑制
される。Next, according to the invention of claim 2, an instruction address (first address) based on the increment of the program counter, a branch destination address (second address) based on the sequence change instruction, and a memory access instruction. Two addresses belonging to an address group consisting of four types of addresses: a data address based on (3rd address) and a physical address (4th address) for managing data consistency in the case of a multiprocessor configuration. Since the access request related to each of the above is independently processed, the access request for the instruction fetch (the access request related to the instruction address or the branch destination address is made even though the instruction cache and the data cache are not separated from each other. ) And a data access request (data address or physical address Access request) and simultaneous processing of an access request related to an instruction address and an access request related to a branch destination address, which could not be realized by a cache memory device of a type that separates an instruction cache and a data cache. Alternatively, it is possible to simultaneously process an access request related to a data address and an access request related to a physical address, and the occurrence of a penalty is suppressed.
【0086】特に、命令アドレス及び分岐先アドレスの
各々に係る2つのアクセス要求を同時に処理できるの
で、条件分岐命令の条件不成立の場合に次に実行すべき
命令と条件成立の場合に次に実行すべき命令との同時フ
ェッチが可能となる。つまり、例えばRISCマイクロ
プロセッサは、分岐条件の成立又は不成立が判明した時
点で直ちに次の命令を選択・実行することができ、該分
岐条件の成立の如何にかかわらず1サイクル毎に次々と
命令を実行できることとなる。また、命令アドレスに係
るアクセス要求とデータアドレスに係るアクセス要求と
の同時処理が可能であるので、例えばRISCマイクロ
プロセッサが連続したメモリアクセス命令を実行する場
合でも、当該キャッシュメモリ装置がヒットするかぎり
ペナルティなしの命令フェッチ及びデータアクセスを実
現できる。更に、データの整合性を管理するための物理
アドレスを受け入れるので、マルチプロセッサ構成への
対応も可能である。つまり、請求項2の発明によれば、
RISCマイクロプロセッサを含んだマルチプロセッサ
構成のプロセッサユニットの各々に好適に使用されるア
クセス効率の良いキャッシュメモリ装置が実現でき、コ
ンピュータシステム全体の性能の向上に大きく貢献する
ことができる。また、例えばデータアドレスに係る2つ
のアクセス要求(2つのメモリアクセス命令の各々に基
づいた2つのデータアクセス要求)の同時処理も可能で
あるので、1サイクルに複数の命令を同時に実行できる
スーパースケーラ型のアーキテクチャを採用したマイク
ロプロセッサへの対応も可能である。In particular, since two access requests for each of the instruction address and the branch destination address can be processed at the same time, the instruction to be executed next when the condition of the conditional branch instruction is not satisfied and the next execution when the condition is satisfied. It is possible to fetch at the same time as the instruction to be executed. That is, for example, the RISC microprocessor can immediately select and execute the next instruction at the time when it is determined that the branch condition is satisfied or not satisfied, and the instruction is sequentially executed every cycle regardless of whether the branch condition is satisfied. It can be done. Further, since it is possible to simultaneously process the access request related to the instruction address and the access request related to the data address, even when the RISC microprocessor executes consecutive memory access instructions, for example, the penalty is as long as the cache memory device hits. It is possible to realize the instruction fetch and the data access without the instruction. Furthermore, since a physical address for managing data consistency is accepted, it is possible to support a multiprocessor configuration. That is, according to the invention of claim 2,
It is possible to realize a cache memory device having a good access efficiency, which is preferably used for each processor unit of a multiprocessor structure including a RISC microprocessor, and can greatly contribute to the improvement of the performance of the entire computer system. Further, for example, two access requests relating to a data address (two data access requests based on each of two memory access instructions) can be simultaneously processed, so that a superscaler type capable of simultaneously executing a plurality of instructions in one cycle It is also possible to support a microprocessor adopting the architecture of.
【0087】また、請求項3の発明によれば、命令アド
レス、分岐先アドレス及びデータアドレスの3種類のア
ドレス(第1〜第3のアドレス)の中から1つのアドレ
スを指定し、かつ分岐先アドレス、データアドレス及び
物理アドレスの3種類のアドレス(第2〜第4のアドレ
ス)の中から他の1つのアドレスを指定する制御装置の
構成を採用したので、制御装置による指定の範囲に制限
を設けない場合と同等の効果を得ながらハードウェア構
成を簡略化することができる。According to the third aspect of the invention, one address is designated from the three types of addresses (first to third addresses) of the instruction address, the branch destination address and the data address, and the branch destination is specified. Since the configuration of the control device for designating another one address from the three types of addresses (the second address to the fourth address) of the address, the data address and the physical address is adopted, the range specified by the control device is restricted. It is possible to simplify the hardware configuration while obtaining the same effect as in the case where no hardware is provided.
【0088】また、請求項4の発明によれば、データア
クセス要求(第3及び第4のアドレスに係るアクセス要
求)に比べて命令フェッチのためのアクセス要求(第1
及び第2のアドレスに係るアクセス要求)を優先させる
構成を採用したので、例えば第1〜第4のアドレスの各
々に係る4つのアクセス要求が同時に与えられた場合で
も、命令フェッチのためのアクセス要求に関するペナル
ティの発生を防止することができる。つまり、例えばR
ISCマイクロプロセッサへの1サイクル毎の命令供給
がデータアクセスによって阻害されることがない。ま
た、2種類のデータアクセス要求のうちデータアドレス
(第3のアドレス)に係るアクセス要求に比べて物理ア
ドレス(第4のアドレス)に係るアクセス要求を優先さ
せる構成を採用したので、矛盾データの保持防止のため
の操作の早期実施が可能となる。According to the invention of claim 4, the access request for the instruction fetch (the first request) is compared with the data access request (the access request relating to the third and fourth addresses).
And the access request relating to the second address), the access request for fetching the instruction even when four access requests relating to each of the first to fourth addresses are simultaneously given. It is possible to prevent the occurrence of a penalty related to. That is, for example, R
Instruction supply to the ISC microprocessor every cycle is not hindered by data access. In addition, since the access request relating to the physical address (fourth address) is prioritized over the access request relating to the data address (third address) of the two types of data access requests, the inconsistent data is retained. The operation for prevention can be performed early.
【0089】また、請求項5の発明によれば、例えば同
時に与えられた3つ又は4つのアクセス要求のうちの処
理待ち状態とされたアクセス要求が次の機会には必ず処
理されるように、処理待ち状態のアクセス要求を最優先
とする構成を採用したので、第1〜第4の4種類のアド
レスのうちのいずれのアドレスに係るアクセス要求につ
いてもペナルティを最小に抑えることができる。Further, according to the invention of claim 5, for example, an access request in a processing waiting state out of three or four access requests given at the same time is always processed at the next opportunity, Since the configuration in which the access request in the processing waiting state has the highest priority is adopted, the penalty can be minimized with respect to the access request relating to any one of the first to fourth types of addresses.
【0090】請求項6の発明によれば、2つのポートを
通して独立にアクセスされ得るタグアドレス格納用の第
1のデュアルポートメモリアレイと、2つのメモリポー
トを通して独立にアクセスされ得る命令列・データ格納
用の第2のデュアルポートメモリアレイと、第1及び第
2のアドレス選択器からそれぞれ出力されたアドレスの
各々がヒットしたか否かを個別に調べるための互いに独
立した第1及び第2の比較器とを備えた記憶装置の構成
を採用したので、命令キャッシュとデータキャッシュと
を分離しない構成でありながら命令とデータとを同時に
アクセスできるだけでなく、2命令の同時アクセスや2
データの同時アクセスが可能となる。しかも、アプリケ
ーションプログラムに応じて命令列とデータとの間で容
量配分の最適化が図れる。According to the invention of claim 6, a first dual-port memory array for storing tag addresses which can be independently accessed through two ports, and an instruction string / data storage which can be independently accessed through two memory ports. Second dual-port memory array for memory and independent first and second comparisons for individually checking whether each of the addresses output from the first and second address selectors is hit Since the configuration of the storage device including the memory device is adopted, the instruction cache and the data cache can be simultaneously accessed while the instruction cache and the data cache are not separated.
Data can be accessed simultaneously. Moreover, it is possible to optimize the capacity distribution between the instruction sequence and the data according to the application program.
【0091】また、請求項7の発明によれば、命令アド
レス(第1のアドレス)によりアクセスされる毎に命令
列のうちの連続した少なくとも2つの命令が一度にフェ
ッチされる構成を採用したので、第2〜第4のアドレス
に係るアクセス要求が即時に処理される可能性が増大
し、ペナルティの発生が抑制される。Further, according to the invention of claim 7, at least two consecutive instructions of the instruction sequence are fetched at one time each time the instruction address (first address) is accessed. , The possibility that the access request for the second to fourth addresses is immediately processed is increased, and the occurrence of penalty is suppressed.
【図1】本発明の実施例に係るキャッシュメモリ装置の
構成を示すブロック図である。FIG. 1 is a block diagram showing a configuration of a cache memory device according to an embodiment of the present invention.
【図2】図1のキャッシュメモリ装置を内蔵したプロセ
ッサユニットの例を示すブロック図である。FIG. 2 is a block diagram showing an example of a processor unit that incorporates the cache memory device of FIG.
【図3】複数個の図2のプロセッサユニットを共通のシ
ステムバスに接続してなるマルチプロセッサ構成のコン
ピュータシステムの例を示すブロック図である。FIG. 3 is a block diagram showing an example of a computer system having a multiprocessor configuration in which a plurality of processor units shown in FIG. 2 are connected to a common system bus.
【図4】図1のキャッシュメモリ装置の動作を示すタイ
ミングチャート図である。FIG. 4 is a timing chart showing the operation of the cache memory device of FIG.
【図5】同キャッシュメモリ装置の動作を示す他のタイ
ミングチャート図である。FIG. 5 is another timing chart showing the operation of the cache memory device.
【図6】同キャッシュメモリ装置の動作を示す更に他の
タイミングチャート図である。FIG. 6 is still another timing chart showing the operation of the cache memory device.
【図7】同キャッシュメモリ装置の動作を示す更に他の
タイミングチャート図である。FIG. 7 is still another timing chart showing the operation of the cache memory device.
【図8】本発明の他の実施例に係るキャッシュメモリ装
置の構成を示すブロック図である。FIG. 8 is a block diagram showing a configuration of a cache memory device according to another embodiment of the present invention.
10 第1のアドレス選択器 12 第2のアドレス選択器 14 第1のデュアルポートメモリアレイ 16 第1の比較器 18 第2の比較器 20 制御装置 22 ヒット信号生成器 24 第2のデュアルポートメモリアレイ 26 読み出し/書き込み回路 30 キャッシュメモリ装置 32,44 プロセッサユニット 34 RISCマイクロプロセッサ 36 バス監視装置 38 バス制御装置 40 内部バス 42 システムバス(外部バス) IA 命令アドレス(第1のアドレス) BA 分岐先アドレス(第2のアドレス) DA データアドレス(第3のアドレス) PA 物理アドレス(第4のアドレス) IAG 第1のアクセス要求信号 BAG 第2のアクセス要求信号 DAG 第3のアクセス要求信号 PAG 第4のアクセス要求信号 S1,S2 第1及び第2の指定信号 SA1,SA2 第1及び第2の選択アドレス TA1,TA2 第1及び第2のタグアドレス H1,H2 第1及び第2のヒット信号 DESCRIPTION OF SYMBOLS 10 1st address selector 12 2nd address selector 14 1st dual port memory array 16 1st comparator 18 2nd comparator 20 Controller 22 Hit signal generator 24 2nd dual port memory array 26 read / write circuit 30 cache memory device 32,44 processor unit 34 RISC microprocessor 36 bus monitoring device 38 bus control device 40 internal bus 42 system bus (external bus) IA instruction address (first address) BA branch destination address ( Second address) DA data address (third address) PA physical address (fourth address) IAG first access request signal BAG second access request signal DAG third access request signal PAG fourth access request Signals S1, S2 first and Second designation signal SA1, SA2 First and second selection address TA1, TA2 First and second tag address H1, H2 First and second hit signal
Claims (7)
れるべき複数のアドレスとデータアクセスに使用される
べき複数のアドレスとからなるアドレス群の中の1つ又
は複数のアドレスがアクセス要求アドレスとして与えら
れるキャッシュメモリ装置であって、 複数のアクセス要求アドレスが同時に与えられた場合に
は、該与えられた複数のアクセス要求アドレスの中から
各々1つのアドレスを選択するための複数のアドレス選
択手段と、 命令列とデータとが格納され、かつ前記複数のアドレス
選択手段で各々選択されたアドレスによりそれぞれ独立
にアクセスされる記憶手段とを備えたことを特徴とする
キャッシュメモリ装置。1. An access request address is one or more addresses in an address group consisting of a plurality of addresses to be used for access for instruction fetch and a plurality of addresses to be used for data access. And a plurality of access request addresses are simultaneously given, the plurality of address selecting means for selecting one address from the given plurality of access request addresses, respectively. A cache memory device comprising: a storage unit that stores an instruction sequence and data, and that is independently accessed by the addresses selected by the plurality of address selection units.
タのインクリメントにより順次生成される第1のアドレ
スとしての命令アドレスと、命令実行シーケンスの変更
を要求するシーケンス変更命令に基づいて分岐先の命令
フェッチのために生成される第2のアドレスとしての分
岐先アドレスと、メモリアクセス命令に基づいてデータ
アクセスのために生成される第3のアドレスとしてのデ
ータアドレスと、他のメモリ装置との間のデータの整合
性を管理するための第4のアドレスとしてのデータアク
セス用の物理アドレスとの4種類のアドレスからなるア
ドレス群に属する1つ又は複数のアドレスがアクセス要
求アドレスとして与えられるキャッシュメモリ装置であ
って、 複数のアクセス要求アドレスが同時に与えられた場合に
は該与えられた複数のアクセス要求アドレスの中から2
つのアドレスを各々第1及び第2の被選択アドレスとし
て指定するための制御装置と、 前記制御装置により第1の被選択アドレスとして指定さ
れたアドレスを前記与えられた複数のアクセス要求アド
レスの中から選択し、かつ該選択したアドレスを出力す
るための第1のアドレス選択器と、 前記制御装置により第2の被選択アドレスとして指定さ
れたアドレスを前記与えられた複数のアクセス要求アド
レスの中から選択し、かつ該選択したアドレスを出力す
るための第2のアドレス選択器と、 命令列とデータとが格納され、かつ前記第1及び第2の
アドレス選択器から各々出力されたアドレスによりそれ
ぞれ独立にアクセスされる記憶装置とを備えたことを特
徴とするキャッシュメモリ装置。2. A branch destination instruction fetch based on an instruction address as a first address sequentially generated by incrementing a program counter for instruction fetch and a sequence change instruction requesting a change in instruction execution sequence. A branch destination address generated as a second address, a data address as a third address generated for data access based on a memory access instruction, and data matching with another memory device. A cache memory device in which one or more addresses belonging to an address group consisting of four types of addresses including a physical address for data access as a fourth address for managing the property are given as access request addresses, If multiple access request addresses are given at the same time, 2 from among a plurality of access requests address
A controller for designating two addresses as first and second selected addresses respectively, and an address designated as the first selected address by the controller from among the plurality of access request addresses given. A first address selector for selecting and outputting the selected address, and an address designated by the control device as a second selected address from the plurality of given access request addresses And a second address selector for outputting the selected address, an instruction sequence and data are stored, and the addresses output from the first and second address selectors are independent of each other. A cache memory device comprising a storage device to be accessed.
おいて、 前記制御装置は、前記与えられた複数のアクセス要求ア
ドレスのうち、前記第1〜第3の3種類のアドレスの中
から1つのアドレスを前記第1の被選択アドレスとして
指定し、かつ前記第2〜第4の3種類のアドレスの中か
ら他の1つのアドレスを前記第2の被選択アドレスとし
て指定することを特徴とするキャッシュメモリ装置。3. The cache memory device according to claim 2, wherein the control device selects one address from the first to third types of addresses among the plurality of given access request addresses. A cache memory device characterized by being designated as the first selected address and one of the second to fourth types of addresses being designated as the second selected address. ..
リ装置において、 前記制御装置は、3つ以上のアクセス要求アドレスが同
時に与えられた場合には、前記第3及び第4のアドレス
に比べて前記第1及び第2のアドレスを優先させ、かつ
前記第3のアドレスに比べて前記第4のアドレスを優先
させるという優先ルールに従って前記第1及び第2の被
選択アドレスの指定を行い、かつ前記与えられた3つ以
上のアクセス要求アドレスのうち前記第1及び第2の被
選択アドレスとして指定されたアドレス以外のアドレス
を処理待ち状態とすることを特徴とするキャッシュメモ
リ装置。4. The cache memory device according to claim 2, wherein, when three or more access request addresses are given at the same time, the control device compares the addresses with the third and fourth addresses. The first and second selected addresses are designated according to a priority rule in which the first and second addresses are prioritized and the fourth address is prioritized over the third address, and A cache memory device, characterized in that an address other than the addresses designated as the first and second selected addresses among three or more given access request addresses is put into a processing wait state.
において、 前記制御装置は、前記処理待ち状態のアクセス要求アド
レスに加えて2つ以上のアクセス要求アドレスが同時に
与えられた場合には、前記第1及び第2の被選択アドレ
スの指定に際し、前記処理待ち状態のアクセス要求アド
レスを最優先とすることを特徴とするキャッシュメモリ
装置。5. The cache memory device according to claim 4, wherein the control device, when two or more access request addresses are simultaneously given in addition to the access request address in the processing waiting state, A cache memory device, characterized in that when designating the first and second selected addresses, the access request address in the processing waiting state is given the highest priority.
リ装置において、 前記記憶装置は、 互いに独立した第1及び第2のポートを有し、かつ前記
第1のアドレス選択器から出力されたアドレスのうちの
特定の部分により前記第1のポートから第1のタグアド
レスが読み出され、かつ前記第2のアドレス選択器から
出力されたアドレスのうちの特定の部分により前記第2
のポートから第2のタグアドレスが読み出される第1の
デュアルポートメモリアレイと、 前記第1のアドレス選択器から出力されたアドレスのう
ちの他の特定の部分と前記第1のデュアルポートメモリ
アレイの第1のポートから読み出された第1のタグアド
レスとが一致した場合には第1のヒット信号を出力する
ための第1の比較器と、 前記第2のアドレス選択器から出力されたアドレスのう
ちの他の特定の部分と前記第1のデュアルポートメモリ
アレイの第2のポートから読み出された第2のタグアド
レスとが一致した場合には第2のヒット信号を出力する
ための第2の比較器と、 命令列とデータとが格納され、かつ互いに独立した第1
及び第2のメモリポートを有し、かつ前記第1の比較器
から第1のヒット信号が出力された場合には前記第1の
アドレス選択器から出力されたアドレスにより前記第1
のメモリポートを通してアクセスされ、かつ前記第2の
比較器から第2のヒット信号が出力された場合には前記
第2のアドレス選択器から出力されたアドレスにより前
記第2のメモリポートを通してアクセスされる第2のデ
ュアルポートメモリアレイとを備えたことを特徴とする
キャッシュメモリ装置。6. The cache memory device according to claim 2, wherein the storage device has first and second ports independent of each other, and an address output from the first address selector. The first tag address is read from the first port by a specific part of the second port and the second tag is read by the specific part of the address output from the second address selector.
A first dual-port memory array in which a second tag address is read from a port of the first dual-port memory array, another specific portion of the address output from the first address selector, and the first dual-port memory array. A first comparator for outputting a first hit signal when the first tag address read from the first port matches, and an address output from the second address selector A second hit signal for outputting a second hit signal when another specific part of the first dual port memory array and the second tag address read from the second port of the first dual port memory array match. A second comparator, a first sequencer that stores an instruction sequence and data and is independent of each other;
And a second memory port, and when the first hit signal is output from the first comparator, the first address selector outputs the first address according to the address output from the first address selector.
Is accessed through the second memory port, and when the second hit signal is output from the second comparator, the address output from the second address selector is used to access through the second memory port. A cache memory device comprising a second dual port memory array.
リ装置において、 前記記憶装置は、前記第1のアドレスによりアクセスさ
れる毎に前記格納された命令列のうちの連続した少なく
とも2つの命令が一度にフェッチされることを特徴とす
るキャッシュメモリ装置。7. The cache memory device according to claim 2, wherein the storage device stores at least two consecutive instructions of the stored instruction sequence every time the storage device is accessed by the first address. A cache memory device that is fetched at one time.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP04031813A JP3102594B2 (en) | 1991-02-19 | 1992-02-19 | Cache memory device |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3-24690 | 1991-02-19 | ||
JP2469091 | 1991-02-19 | ||
JP04031813A JP3102594B2 (en) | 1991-02-19 | 1992-02-19 | Cache memory device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0594305A true JPH0594305A (en) | 1993-04-16 |
JP3102594B2 JP3102594B2 (en) | 2000-10-23 |
Family
ID=26362247
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP04031813A Expired - Fee Related JP3102594B2 (en) | 1991-02-19 | 1992-02-19 | Cache memory device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3102594B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080209188A1 (en) * | 2007-02-22 | 2008-08-28 | Samsung Electronics Co. Ltd. | Processor and method of performing speculative load operations of the processor |
JP2009527809A (en) * | 2006-02-16 | 2009-07-30 | ブイエヌエス ポートフォリオ リミテッド ライアビリティ カンパニー | Executing instructions directly from the input source |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63191253A (en) * | 1986-10-17 | 1988-08-08 | アムダール コーポレーション | Preference assigner for cache memory |
JPS63223846A (en) * | 1987-03-12 | 1988-09-19 | Matsushita Electric Ind Co Ltd | Cache memory |
JPS63240651A (en) * | 1987-03-28 | 1988-10-06 | Nec Corp | Cache memory |
JPH02176839A (en) * | 1988-12-27 | 1990-07-10 | Toshiba Corp | Information processor |
JPH02289013A (en) * | 1989-02-03 | 1990-11-29 | Digital Equip Corp <Dec> | Method and equipment for order and quening of plural memory requests |
JPH0333932A (en) * | 1989-06-29 | 1991-02-14 | Nec Corp | Condition branch accelerating system |
-
1992
- 1992-02-19 JP JP04031813A patent/JP3102594B2/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63191253A (en) * | 1986-10-17 | 1988-08-08 | アムダール コーポレーション | Preference assigner for cache memory |
JPS63223846A (en) * | 1987-03-12 | 1988-09-19 | Matsushita Electric Ind Co Ltd | Cache memory |
JPS63240651A (en) * | 1987-03-28 | 1988-10-06 | Nec Corp | Cache memory |
JPH02176839A (en) * | 1988-12-27 | 1990-07-10 | Toshiba Corp | Information processor |
JPH02289013A (en) * | 1989-02-03 | 1990-11-29 | Digital Equip Corp <Dec> | Method and equipment for order and quening of plural memory requests |
JPH0333932A (en) * | 1989-06-29 | 1991-02-14 | Nec Corp | Condition branch accelerating system |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009527809A (en) * | 2006-02-16 | 2009-07-30 | ブイエヌエス ポートフォリオ リミテッド ライアビリティ カンパニー | Executing instructions directly from the input source |
US20080209188A1 (en) * | 2007-02-22 | 2008-08-28 | Samsung Electronics Co. Ltd. | Processor and method of performing speculative load operations of the processor |
US8443174B2 (en) * | 2007-02-22 | 2013-05-14 | Samsung Electronics Co., Ltd. | Processor and method of performing speculative load operations of the processor |
Also Published As
Publication number | Publication date |
---|---|
JP3102594B2 (en) | 2000-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6401192B1 (en) | Apparatus for software initiated prefetch and method therefor | |
US5450564A (en) | Method and apparatus for cache memory access with separate fetch and store queues | |
US5091851A (en) | Fast multiple-word accesses from a multi-way set-associative cache memory | |
US6732247B2 (en) | Multi-ported memory having pipelined data banks | |
EP1047989B1 (en) | Digital signal processor having data alignment buffer for performing unaligned data accesses | |
US5822772A (en) | Memory controller and method of memory access sequence recordering that eliminates page miss and row miss penalties | |
JP2822588B2 (en) | Cache memory device | |
US5434989A (en) | Cache memory for efficient access with address selectors | |
US20200004549A1 (en) | Multi-threaded instruction buffer design | |
US7073026B2 (en) | Microprocessor including cache memory supporting multiple accesses per cycle | |
US5809274A (en) | Purge control for ON-chip cache memory | |
KR100613923B1 (en) | Context pipelines | |
JPS62262160A (en) | Writing buffer unit | |
EP0881575A1 (en) | Multiport memory and data processor making access to it | |
US5860101A (en) | Scalable symmetric multiprocessor data-processing system with data allocation among private caches and segments of system memory | |
US6101589A (en) | High performance shared cache | |
JP3498673B2 (en) | Storage device | |
US6751700B2 (en) | Date processor and storage system including a set associative cache with memory aliasing | |
US7039762B2 (en) | Parallel cache interleave accesses with address-sliced directories | |
JPH1055311A (en) | Interleave type cache | |
JPH07121437A (en) | Computer system | |
WO2006030382A2 (en) | System and method for fetching information in response to hazard indication information | |
JP3102594B2 (en) | Cache memory device | |
US7346746B2 (en) | High performance architecture with shared memory | |
US20030188105A1 (en) | Management of caches in a data processing apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19960213 |
|
LAPS | Cancellation because of no payment of annual fees |