JPH08272681A - Microprocessor with cache reconstitutible at instruction level - Google Patents

Microprocessor with cache reconstitutible at instruction level

Info

Publication number
JPH08272681A
JPH08272681A JP8017299A JP1729996A JPH08272681A JP H08272681 A JPH08272681 A JP H08272681A JP 8017299 A JP8017299 A JP 8017299A JP 1729996 A JP1729996 A JP 1729996A JP H08272681 A JPH08272681 A JP H08272681A
Authority
JP
Japan
Prior art keywords
cache
data
instruction
microprocessor
operand
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP8017299A
Other languages
Japanese (ja)
Inventor
Vargade Argade Pramod
ヴァサント アーゲイド プラモッド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AT&T Corp
Original Assignee
AT&T Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by AT&T Corp filed Critical AT&T Corp
Publication of JPH08272681A publication Critical patent/JPH08272681A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array

Abstract

PROBLEM TO BE SOLVED: To provide a microprocessor which has reconstructible caches on an instruction level. SOLUTION: This microprocessor contains a product-sum operation unit (MAU) 305 to execute a high speed signal processing operation. When a product- sum operation (MAC) instruction is executed, 1st and 2nd caches 301 and 302 directly supply 1st and 2nd operands (x and y) to the MAU 305. When a normal instruction is executed, multiplexers 310 and 311 are included which select data from either the 1st or 2nd cache 301 or 302. Translation lookaside buffer is included which has a page entry table that contains an additional 'reconstruction' bit and a 'way' bit to control writing data to the caches. Thus, this microprocessor can use a conventional set associative (set association) cache to simultaneously access plural operands.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、増大したバンド幅
での演算に備える、セットアソシエイティブ(セット連
想付け)キャッシュを再構成する手段を有する、マイク
ロプロセッサーに関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a microprocessor having means for reconfiguring a set associative cache for operations with increased bandwidth.

【0002】[0002]

【従来の技術】多くの従来のマイクロプロセッサーは、
多重ポートを持つレジスタファイルを有しており、それ
故、各サイクル毎に、レジスタに含まれた2つのオペラ
ンドを実行ユニット(EU)に提供することが可能であ
る。レジスタファイルは、同じ集積回路上に、算術論理
(演算)ユニット(ALU)として含まれており、望み
のデータを提供する非常に速い手段である。例えば、図
1を参照するに、典型的な先行技術におけるマイクロプ
ロセッサー100は、第一のレジスタファイル102に
第一のアドレス(アドレス0)を、さらに、第二のレジ
スタファイル103に第二のアドレス(アドレス1)を
供給する命令レジスタ101を含んでいる。レジスタフ
ァイル102及び103は、例示的には、各32ビット
の32エントリを有している。第一のレジスタファイル
102は、第一のオペランドレジスタ104に第一のオ
ペランドを供給し、第二のレジスタファイル103は、
第二のオペランドレジスタ105に第二のオペランドを
供給している。レジスタ104及び105は、算術論理
(演算)ユニット(ALU)106に第一及び第二のオ
ペランドを供給しており、この算術論理(演算)ユニッ
ト(ALU)106は、例示的には、積和演算(MA
C)を含む様々な算術演算を実行しうる。その結果は、
結果レジスタ107に保存され、線108を経由して、
レジスタファイルに再び書き込まれうる。選択的な実施
例においては、2つのファイル102、103の代わり
に、単一のデュアル(二重)ポートレジスタファイル
(示されていない)が、用いられている。その場合に
は、2つの読み出しポートが、レジスタファイル内の、
いずれかの2つのエントリへの同時アクセスを許すこと
になる。
BACKGROUND OF THE INVENTION Many conventional microprocessors
It has a register file with multiple ports, so it is possible to provide the execution unit (EU) with the two operands contained in the register each cycle. The register file is contained on the same integrated circuit as an arithmetic logic unit (ALU) and is a very fast means of providing the desired data. For example, referring to FIG. 1, a typical prior art microprocessor 100 has a first address (address 0) in a first register file 102 and a second address in a second register file 103. It includes an instruction register 101 that supplies (address 1). The register files 102 and 103 illustratively have 32 entries of 32 bits each. The first register file 102 supplies the first operand to the first operand register 104, and the second register file 103
The second operand is supplied to the second operand register 105. The registers 104 and 105 supply the arithmetic logic (arithmetic) unit (ALU) 106 with the first and second operands, and the arithmetic logic (arithmetic) unit (ALU) 106 illustratively sums of products. Operation (MA
Various arithmetic operations may be performed, including C). The result is
Saved in result register 107, via line 108,
It can be written back to the register file. In an alternative embodiment, a single dual port register file (not shown) is used instead of the two files 102, 103. In that case, the two read ports are in the register file,
It will allow simultaneous access to any two entries.

【0003】[0003]

【発明が解決しようとする課題】しかしながら、チップ
上のレジスタにないメモリに含まれている、2つのオペ
ランドを供給することが必要となる場合は、多くある。
その例としては、信号処理の基本的な原理の一つである
積和演算命令がある。2つのメモリオペランドは、利用
可能である場合には、典型的には、チップ上のデータキ
ャッシュに含まれているか、あるいは選択的には、マイ
クロプロセッサーチップへの外部キャッシュに含まれて
いる。いずれの場合においても、各サイクル毎に実行ユ
ニット(EU)へ2つのオペランドを供給するというこ
とは、データキャッシュをデュアル(二重)ポート化す
るということを意味しているのである。典型的な命令と
しては、MAC x,y,a0 というものがある。こ
こで、MACとは、積和演算という命令に対する簡略記
法であり、これにより特定される演算とは、a0=a0
+(x*y)となる。典型的には、xとyは、メモリ内
の特定のアレイに属しており、xは係数アレイに、yは
データアレイに位置し得よう。
However, there are many cases where it is necessary to supply two operands contained in a memory that is not in a register on the chip.
An example thereof is a product-sum operation instruction, which is one of the basic principles of signal processing. The two memory operands, if available, are typically contained in a data cache on chip or, optionally, in an external cache to the microprocessor chip. In either case, supplying two operands to the execution unit (EU) each cycle means dual porting the data cache. A typical instruction is MAC x, y, a0. Here, MAC is a shorthand notation for an instruction called multiply-add operation, and the operation specified by this is a0 = a0
It becomes + (x * y). Typically, x and y would belong to a particular array in memory, where x could be located in the coefficient array and y in the data array.

【0004】図2を参照するに、チップ上のメモリの2
つのバンクを有しているマイクロプロセッサー200の
例が示されている。命令レジスタ201は、キャッシュ
のバンク0(202)及びバンク1(203)に第一及
び第二のアドレス(アドレス0、アドレス1)を供給し
ており、ここで、例示的には、各バンクは、大きさとし
ては、1キロバイトとなることが考えられる。データ
は、書き込み線213を経由して、キャッシュに書き込
まれる。第一のオペランドは、バンク0(202)から
読み出され、マルチプレクサ204により選択される読
み出し出力である。それから、第一のオペランドは、オ
ペランドレジスタ1(205)へラッチ(一時保持)さ
れる。同様に、第二のオペランドは、バンク1(20
3)から読み出され、マルチプレクサ206により選択
される読み出し出力である。それから、第二のオペラン
ドは、オペランドレジスタ2(207)へラッチ(一時
保持)される。選択的には、オペランドは、マルチプレ
クサ204及び206によって、外部メモリバス212
から選択されうる。さらに、オペランドは、オペランド
レジスタからALU/MACユニット208へ供給さ
れ、そこで、これらのオペランドは共に乗算がなされ、
経路214を経由してアキュムレータ(累算器)ファイ
ルからアクセスがなされた前の結果に加算される。その
結果は、結果レジスタ209へ供給され、アキュムレー
タ(累算器)ファイル210に保存される。このような
技術は、従来のマイクロプロセッサーアーキテクチャー
において、積和演算機能を備えるものであるが、そのよ
うなアプローチには不利な点が存在している。例えば、
チップ上のメモリは、キャッシュとしてよりも、むしろ
RAMとして構成されていることから、選択されたアプ
リケーションのみが、それを利用できるに過ぎない。メ
モリの全てのデータアドレスは、アプリケーションプロ
グラムが開発された際に、決定されなくてはならない。
このようなことから、従来のマイクロプロセッサーアプ
リケーションでは、ここでのメモリのフレキシブルな利
用ができない。さらに加えて、異なった販売者によるア
プリケーションを動作させることも困難である。
Referring to FIG. 2, two of the memories on the chip
An example of a microprocessor 200 having two banks is shown. The instruction register 201 supplies the first and second addresses (address 0, address 1) to the bank 0 (202) and the bank 1 (203) of the cache, where each bank is, for example, The size may be 1 kilobyte. The data is written to the cache via the write line 213. The first operand is the read output read from bank 0 (202) and selected by multiplexer 204. Then, the first operand is latched (temporarily held) in the operand register 1 (205). Similarly, the second operand is bank 1 (20
3) The read output read from 3) and selected by the multiplexer 206. Then, the second operand is latched (temporarily held) in the operand register 2 (207). Optionally, the operands are sent by the multiplexers 204 and 206 to the external memory bus 212.
Can be selected from In addition, the operands are provided to the ALU / MAC unit 208 from the operand register, where the operands are multiplied together,
It is added to the previous result accessed from the accumulator file via path 214. The result is supplied to the result register 209 and stored in the accumulator file 210. Such a technique has a product-sum operation function in the conventional microprocessor architecture, but there is a disadvantage in such an approach. For example,
Since the memory on the chip is configured as RAM rather than cache, it is only available to selected applications. All data addresses in memory must be determined when the application program is developed.
As such, conventional microprocessor applications do not allow for flexible use of memory here. In addition, it is difficult to run applications from different vendors.

【0005】[0005]

【課題を解決するための手段】発明者は、nウエイ(形
式)の連想付けを持ったキャッシュを有するデータプロ
セッサー及びデータプロセッシングシステムを発明し
た。このキャッシュにおいて、第一のオペランド(x)
は、キャッシュの第一の部位に位置しており、第二のオ
ペランド(y)は、キャッシュの第二の部位に位置して
いる。キャッシュの第一及び第二の部位の出力(x,
y)は、例えば積和演算命令のような、所与の命令形式
が実行されるときには、例えば積和演算ユニットのよう
な、機能ユニットへ供給されている。マルチプレクサ
は、キャッシュの第一及び第二の部位の出力へと接続さ
れている。それ故に、当該キャッシュが、異なった形式
の命令を実行するために、従来のセットアソシエイティ
ブ(セット連想付け)キャッシュとしてアクセスされる
こととなるときは、いずれの部位からもオペランドを取
り出されることが可能である。キャッシュへの書き込み
を制御するために、変換索引バッファは、再構成領域を
有するページテーブルエントリを含みうるものであり、
選択的には、その他の制御方法が用いられ得る。
The inventor has invented a data processor and a data processing system having a cache with n ways (types) of association. In this cache, the first operand (x)
Is located in the first part of the cache and the second operand (y) is located in the second part of the cache. Output of the first and second parts of the cache (x,
y) is supplied to a functional unit such as a product-sum operation unit when a given instruction format such as a product-sum operation instruction is executed. The multiplexer is connected to the outputs of the first and second parts of the cache. Therefore, when the cache is to be accessed as a conventional set associative cache to execute different types of instructions, operands can be fetched from either site. It is possible. To control writing to the cache, the translation lookaside buffer may contain a page table entry with a reconstruction area,
Other control methods may optionally be used.

【0006】[0006]

【発明の実施の形態】本詳細な記述は、再構成されるこ
とが可能なセットアソシエイティブ(セット連想付け)
キャッシュを利用するマイクロプロセッサーに関するも
のである。高いデータバンド幅を必要とする命令が実行
されるときには、第一の配置においては、キャッシュは
一つのオペランドを、第二の配置においては、複数のオ
ペランド(x,y)を、同時に算術プロセッサーに供給
する。ここで用いられているように、「同時に」という
言葉は、(一つ以上の)クロックサイクルを含みうる、
同一のマシン上でのサイクルにおいて、ということを意
味するものである。そのような命令の例としては、積和
演算命令がある。このような手法で、高速な積和演算
が、例えば、汎用マイクロプロセッサーにおいて実施さ
れうる。キャッシュは、典型的には、nウエイ(形式)
のセットアソシエイティブ(セット連想付け)キャッシ
ュであり、本技術では、また、当該キャッシュが、複数
の直接マッピングがなされたキャッシュとして用いられ
ることを許すものである。nウエイ(形式)セットアソ
シエイティブ(セット連想付け)キャッシュから直接マ
ッピングがなされたキャッシュへの再構成及びその逆
は、各命令ベースで実行されうる。ここで用いられてい
るように、当該キャッシュ部位は、また、「キャッシュ
ウエイ0」、「キャッシュウエイ1」、あるいは、より
一般的には、nを正の整数として、「キャッシュウエイ
n」として呼称される。
Detailed Description This detailed description is reconfigurable set associative.
It relates to a microprocessor that uses a cache. When an instruction that requires a high data bandwidth is executed, in the first arrangement the cache will send one operand and in the second arrangement multiple operands (x, y) to the arithmetic processor at the same time. Supply. As used herein, the term "simultaneously" can include (one or more) clock cycles,
It means that in a cycle on the same machine. An example of such an instruction is a multiply-add operation instruction. In this way, fast multiply-accumulate operations can be implemented, for example, in a general purpose microprocessor. Caches are typically n ways (form)
Set associative cache, and the present technology also allows the cache to be used as a cache with a plurality of direct mappings. Reconfiguration from an n-way (formal) set associative cache to a directly mapped cache and vice versa can be performed on a per instruction basis. As used herein, the cache portion is also referred to as "cashway 0,""cashway1," or, more generally, "cashway n," where n is a positive integer. To be done.

【0007】図3を参照するに、本発明の例示的な実施
例が、キャッシュ部位301及び302を含んでいる、
2ウエイ(形式)セットアソシエイティブ(セット連想
付け)キャッシュについて示されている。キャッシュ部
位301及び302のデータ出力は、それぞれ、データ
線303及び304を経由して、積和演算ユニット(mul
tiply-accumulate unit,MAU)305に供給されている。
x及びyデータ入力に加えて、MAU305は、アキュ
ムレータ(累算器)ファイル312から線308を経由
する、アキュムレータ(累算器)入力を受け取る。MA
U305は、マルチプライヤ(乗算器)306及びアキ
ュムレータ(累算器)307を含んでおり、これらにつ
いては、本発明が関連する限りにおいて、当該技術にお
いて公知なものを含めて、様々な設計をもち得るもので
ある。動作中であり、積和演算命令が実行されていると
きには、マルチプレクサ310を経由してキャッシュ部
位301からアクセスがなされたオペランドx及び、マ
ルチプレクサ311を経由してキャッシュ部位302か
らアクセスがなされたオペランドyについて、積和演算
機能を実行するように、MAU305に命令が下され
る。しかしながら、当該キャッシュからの同時のオペラ
ンドを必要としない、もう一つの形の命令が実行されよ
うとしているときには、マルチプレクサ311は、望み
のデータを提供するため、キャッシュ部位301、キャ
ッシュ部位302、あるいは外部メモリバス312から
選択的に出力を選択する。
Referring to FIG. 3, an exemplary embodiment of the present invention includes cache sites 301 and 302,
A two-way (form) set associative cache is shown. The data output of the cache parts 301 and 302 is sent via the data lines 303 and 304, respectively, to the product-sum operation unit (mul).
tiply-accumulate unit (MAU) 305.
In addition to the x and y data inputs, MAU 305 receives an accumulator input from line 308 from accumulator file 312. MA
The U 305 includes a multiplier 306 and an accumulator 307, which have various designs, including those known in the art, as far as the invention is concerned. I will get it. When the operation is in progress and the multiply-accumulate operation instruction is being executed, the operand x accessed from the cache part 301 via the multiplexer 310 and the operand y accessed from the cache part 302 via the multiplexer 311. , The MAU 305 is instructed to perform the multiply-accumulate function. However, when another form of instruction is about to be executed that does not require simultaneous operands from the cache, the multiplexer 311 will provide the desired data to the cache location 301, cache location 302, or external location. The output is selectively selected from the memory bus 312.

【0008】例示的な実施例は、2ウエイ(形式)セッ
トアソシエイティブ(セット連想付け)キャッシュにつ
いてのものであるということに留意すべきである。しか
しながら、本発明は、nをあらゆる正の整数であるとし
て、あらゆるnウエイ(形式)セットアソシエイティブ
(セット連想付け)キャッシュについて実施されうるも
のである。次の議論においては、Nとは例示的に偶数
(さらに、例としては、n=2となっている。)である
が、選択的には、nは奇数となり得る。一般的に、この
点は、n入力(各キャッシュ部位からのものである。)
を有するマルチプレクサを用いて実現されうる。nが2
よりも大きい際には、2つのオペランドにアクセスする
ためのn通りの配置法は、特定の実施例により決定さ
れ、それらのいずれについても、本発明において用いら
れ得るものである。さらに、キャッシュが、従来のnウ
エイ(形式)セットアソシエイティブ(セット連想付
け)キャッシュとして構成されているときには、当該キ
ャッシュへの置き換えアルゴリズムは、本発明が関連す
る限りにおいては、あらゆる技術を用いて、実現されう
る。
It should be noted that the exemplary embodiment is for a two-way (form) set associative (set associative) cache. However, the present invention can be implemented for any n-way (formal) set-associative cache, where n is any positive integer. In the following discussion, N is illustratively even (and n = 2, by way of example), but alternatively n can be odd. Generally, this point is n inputs (from each cache site).
Can be implemented using a multiplexer having n is 2
When greater than, the n possible placement strategies for accessing the two operands are determined by the particular implementation, any of which may be used in the present invention. Furthermore, when the cache is configured as a conventional n-way (formal) set associative (set associative) cache, the replacement algorithm for that cache may use any technique as far as the invention is concerned. Can be realized.

【0009】当該技術において知られているように、メ
モリ管理ページテーブルは、仮想アドレスを物理的アド
レスへ変換し、さらにまた、キャッシュ操作を制御する
ために用いられている。ページテーブルは、変換索引バ
ッファ(translationlookaside buffer,TLB)内に保存さ
れており、これが、仮想メモリアドレスを物理的メモリ
アドレスへと変換する。また、TLBは、メモリページ
について、及び、与えられたページがキャッシュ可能で
あるかについての制御情報を備えている。図4を参照す
ると、例示的なページテーブルエントリは、領域41に
(ビットでは、12から31まで)物理的アドレスの
「タグ」を含んでいる。タグは、アドレスの最上位ビッ
トを表示しており、望みのアドレスが当該キャッシュ内
に位置しているかについて判断し、そのような場合に
は、キャッシュの「ヒット」は、図3におけるLHIT
320あるいはRHIT321により示されている。ア
ドレスの「インデックス」部位(示されていない。)
は、最下位ビットを表示しており、ポインタ(322、
323)を、当該技術においてよく知られた手法で、所
与のキャッシュ部位(それぞれ、301、302)の望
みの位置に向けるために用いられる。領域42は、例え
ば、未使用ビットを含みうるものであり、領域45は、
メモリページ内のデータが、例えば、書き込み可能、有
効、キャッシュ可能、あるいは、利用者がアクセス可能
かどうかを制御する「許諾」ビットを、典型的には含ん
でいる。本発明が関連する限りにおいては、これらの領
域は、あらゆる順序となり得るものである。図5を参照
すると、TLBは、仮想タグ501に沿い、物理的タグ
502及び制御ビット503として、例示的なページテ
ーブルエントリを含んでいる。このような手法では、ま
た、当該技術において知られている原理に従って、仮想
アドレスが物理的アドレスへと変換される。
As is known in the art, memory management page tables are used to translate virtual addresses into physical addresses and also to control cache operations. The page table is stored in a translation lookaside buffer (TLB), which translates virtual memory addresses into physical memory addresses. The TLB also contains control information about the memory page and whether a given page is cacheable. Referring to FIG. 4, an exemplary page table entry includes a physical address “tag” (in bits 12 to 31) in region 41. The tag indicates the most significant bit of the address and determines if the desired address is located in the cache, in which case the cache "hit" is the LHIT in FIG.
320 or RHIT 321. The "index" part of the address (not shown)
Indicates the least significant bit, and the pointer (322,
323) in a manner well known in the art to direct the desired location of a given cache site (301, 302, respectively). The area 42 can include, for example, unused bits, and the area 45 can include:
The data in a memory page typically includes a "grant" bit that controls whether it is writable, valid, cacheable, or accessible to the user, for example. As far as the invention is concerned, these areas can be in any order. Referring to FIG. 5, the TLB contains exemplary page table entries along with virtual tag 501 as physical tag 502 and control bits 503. Such an approach also translates virtual addresses into physical addresses in accordance with principles known in the art.

【0010】上で記述されたような、本発明の技術を実
施するために、(一つ以上の)付加的な制御ビットを、
メモリ管理ページテーブルに含ませ得る。例えば、領域
43は、さらに以下で記述されるように、データがキャ
ッシュ内にどのように書き込まれるべきかを示す、偶数
あるいは奇数の「ウエイ(way)」(形式)ビットを含み
うる。領域44は、「再構成」ビットを含み得る。再構
成ビットが0であるとき、当該キャッシュは、従来の2
ウエイ(形式)セットアソシエイティブ(セット連想付
け)キャッシュとして扱われることになる。すなわち、
データは、選ばれたキャッシュエントリ置き換えスキー
ムを用いることで、キャッシュウエイ301及びキャッ
シュウエイ302に書き込まれる。一方、再構成ビット
が1であるときには、2ウエイ(形式)セットアソシエ
イティブ(セット連想付け)キャッシュは、2つの直接
マッピングがなされたキャッシュとして扱われる。それ
から、領域43のウエイビットが0である場合には、デ
ータは、偶数ウエイ(形式)キャッシュ部位へ書き込ま
れるように向けられ、さらに選択的には、領域43のウ
エイビットが1である場合には、奇数ウエイ(形式)キ
ャッシュ部位へ書き込まれることとなる。MAUによ
り、積和演算あるいは、その他の特別な形式の命令を実
行するための、x及びyオペランドとして用いられるよ
うに、当該データは、このような手法で、適切なキャッ
シュ部位に配置される。オペレーティングシステム(O
S)の存在下では、ユーザープログラムが、特別なファ
ンクションコールを経由することで、当該OSに「再構
成ビット」及び「ウエイビット」を設定するように指示
しうるであろう。このような手法で、データプロセッサ
ー及びオペレーティングシステムを両方含むデータプロ
セッシングシステムは、本発明の技術を有効に利用しう
るのである。
In order to implement the techniques of the present invention, as described above, additional control bit (s) (s) may be added:
It may be included in the memory management page table. For example, region 43 may include even or odd "way" (form) bits that indicate how the data should be written into the cache, as described further below. Region 44 may include "reconstruction" bits. When the reconfiguration bit is 0, the cache has a conventional 2
It is treated as a way (form) set associative (set associative) cache. That is,
Data is written to cache way 301 and cache way 302 using the selected cache entry replacement scheme. On the other hand, when the reconfiguration bit is 1, the two-way (form) set associative cache is treated as two directly mapped caches. Then, if the way bit of area 43 is 0, the data is directed to be written to an even way (form) cache site, and optionally, if the way bit of area 43 is 1. Will be written to the odd way (form) cache site. The data is placed in the appropriate cache location in this manner for use by the MAU as x and y operands for executing multiply-add operations or other special types of instructions. Operating system (O
In the presence of S), the user program could instruct the OS to set the "reconfiguration bit" and the "way bit" by way of a special function call. In this manner, the data processing system including both the data processor and the operating system can effectively use the technique of the present invention.

【0011】慣例としては、左側のオペランド(すなわ
ち、上の例ではx)は、ウエイ0からフェッチされ(取
り出され)、右側のオペランド(すなわち、上の例で
は、y)は、奇数のウエイからフェッチされる(取り出
される)。しかしながら、その他の慣例も可能である。
さらに、本発明と共に用いられるため、キャッシュ部位
へのデータの書き込みを制御する、さらにその他の技術
も考えられる。例えば、キャッシュをロードする命令
は、キャッシュのどの部位にデータが書き込まれるべき
であるかを、明確に特定し得る。これを実現するため
に、(一つ以上の)ウエイビット(313)が、図3の
命令レジスタ内に含ませ得る。その場合、メモリ管理ユ
ニット及びTLBは必要とならないかもしれない。ま
た、x及びyデータの配置は、偶数及び奇数ウエイのキ
ャッシュに分けられる必要はないが、何らかの勝手のよ
い手法で、キャッシュ内で配置されうる。つまりは、当
該技術分野の当業者にとっては明白であるように、機能
ユニットにより実行される様々な演算のために、キャッ
シュから同時に複数のオペランドがフェッチされうる
(取り出されうる)ということについては、留意された
い。
By convention, the left operand (ie x in the above example) is fetched (fetched) from way 0 and the right operand (ie y in the above example) is from an odd way. Fetched (retrieved). However, other conventions are possible.
Furthermore, since it is used with the present invention, another technique for controlling the writing of data to the cache part is also conceivable. For example, the instruction to load the cache may unambiguously specify where in the cache the data should be written. To accomplish this, way bit (s) (313) may be included in the instruction register of FIG. In that case, the memory management unit and TLB may not be needed. Also, the placement of x and y data need not be split into even and odd way caches, but can be placed within the cache in some convenient way. That is, as will be apparent to those skilled in the art, multiple operands can be fetched (fetched) from the cache at the same time for various operations performed by the functional units. Please note.

【0012】本発明のデータプロセッサーは、典型的な
場合は、従来「マイクロプロセッサー」として呼ばれて
いる形式のものであるが、さらにその他の目的及び形式
も考えられ得るものであり、それらも、ここで含まれる
ものである。例えば、MAC以外の命令のための、増強
された機能性を有するデジタル信号プロセッサーも、本
技術を有効に使用しうるものである。
The data processor of the present invention is typically of the type conventionally referred to as a "microprocessor", but it is contemplated that other purposes and types are contemplated and they are also It is included here. For example, digital signal processors with enhanced functionality for instructions other than MAC may also benefit from the present technology.

【0013】[0013]

【発明の効果】本発明によって、各命令ベースで、セッ
トアソシエイティブ(セット連想付け)キャッシュと直
接マッピングがなされたキャッシュ間での相互の再構成
がなされることが可能な、セットアソシエイティブ(セ
ット連想付け)キャッシュを利用するマイクロプロセッ
サーが実現された。これにより、マイクロプロセッサー
のアプリケーションにおいて、メモリのよりフレキシブ
ルな利用が可能となった。例えば、典型的な信号処理で
ある積和演算(MAC)について、高速な積和演算が、
例えば、汎用マイクロプロセッサーにおいて実施可能と
なる。
According to the present invention, set-associative (set-associative) caches and set-associative (set-associative) caches that can be mutually reconfigured on a per instruction basis can be mutually reconfigured. Associative) A microprocessor utilizing a cache was realized. This allows more flexible use of memory in microprocessor applications. For example, for the product-sum operation (MAC) which is a typical signal processing, a high-speed product-sum operation is
For example, it can be implemented in a general-purpose microprocessor.

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

【図1】図1は、オペランドを保存する2つのレジスタ
ファイルを有する、先行技術におけるマイクロプロセッ
サーを示している。
FIG. 1 shows a prior art microprocessor having two register files that store operands.

【図2】図2は、オペランドを保存する複数のバンクを
含むチップ上のランダムアクセスメモリ(RAM)を有
する、先行技術におけるマイクロプロセッサーを示して
いる。
FIG. 2 shows a prior art microprocessor having a random access memory (RAM) on a chip containing multiple banks for storing operands.

【図3】図3は、本発明に従った、マイクロプロセッサ
ーの例示的な実施例を示している。
FIG. 3 illustrates an exemplary embodiment of a microprocessor according to the present invention.

【図4】図4は、本発明に従った、例示的なページテー
ブルエントリを示している。
FIG. 4 illustrates an exemplary page table entry in accordance with the present invention.

【図5】図5は、本発明の実施に際して用いられ得る、
例示的な変換索引バッファを示している。
FIG. 5 may be used in the practice of the invention,
3 illustrates an exemplary translation index buffer.

【符号の説明】 100 先行技術によるマイクロプロセッサー 101 命令レジスタ 102 第一のレジスタファイル 103 第二のレジスタファイル 104 第一のオペランドレジスタ 105 第二のオペランドレジスタ 106 算術論理(演算)ユニット(ALU) 107 結果レジスタ 108 線 200 先行技術によるマイクロプロセッサー 201 命令レジスタ 202 (RAM)バンク0 203 (RAM)バンク1 204 マルチプレクサ 205 オペランドレジスタ1 206 マルチプレクサ 207 オペランドレジスタ2 208 ALU/MAC(算術論理/積和演算)ユニッ
ト 209 結果レジスタ 210 アキュムレータ(累算器)ファイル 211 オペランドアクセス制御ロジック 212 外部メモリバス 213 書き込み線 301 キャッシュウエイ0 302 キャッシュウエイ1 303、304 データ線 305 積和演算ユニット(MAU) 306 マルチプライヤ(乗算器) 307 アキュムレータ(累算器) 308 線 310、311 マルチプレクサ 312 外部メモリバス 313 制御ビット(ウエイビット) 314 命令レジスタ 316 マルチプレクサ 317、318 変換索引バッファ 319 マルチプレクサ 320 LHIT 321 RHIT 322、323 ポインタ 324 アクセス制御 325 第一の信号経路 327 第二の信号経路 41 物理的タグ 42 未使用(領域) 43 ウエイ(形式)ビット 44 再構成ビット 45 許諾ビット 500 変換索引バッファ 501 仮想タグ 502 物理的タグ 503 制御ビット
DESCRIPTION OF SYMBOLS Microprocessor according to the prior art 101 Instruction register 102 First register file 103 Second register file 104 First operand register 105 Second operand register 106 Arithmetic logic (arithmetic) unit (ALU) 107 Result Register 108 Line 200 Prior Art Microprocessor 201 Instruction Register 202 (RAM) Bank 0 203 (RAM) Bank 1 204 Multiplexer 205 Operand Register 1 206 Multiplexer 207 Operand Register 2 208 ALU / MAC (Arithmetic Logic / Sum of Sum) Unit 209 Result register 210 Accumulator (accumulator) file 211 Operand access control logic 212 External memory bus 213 Write line 30 Cash way 0 302 Cash way 1 303, 304 Data line 305 Multiply-accumulate unit (MAU) 306 Multiplier (multiplier) 307 Accumulator (accumulator) 308 Line 310, 311 Multiplexer 312 External memory bus 313 Control bit (way bit) ) 314 Instruction register 316 Multiplexer 317, 318 Conversion lookaside buffer 319 Multiplexer 320 LHIT 321 RHIT 322, 323 Pointer 324 Access control 325 First signal path 327 Second signal path 41 Physical tag 42 Unused (area) 43 way ( Format) Bit 44 Reconstruction Bit 45 Grant Bit 500 Translation Index Buffer 501 Virtual Tag 502 Physical Tag 503 Control Bit

Claims (6)

【特許請求の範囲】[Claims] 【請求項1】 命令レジスタ(314)と、 nを2以上の整数として、第一のキャッシュ部位(30
1)及び第二のキャッシュ部位(302)を含む、nウ
エイセットアソシエイティブ(セット連想付け)キャッ
シュと、 命令が実行されるときに、第一及び第二のオペランド
(x,y)について演算を行う機能ユニット(305)
と、 前記第一のオペランド(x)を前記機能ユニットへ供給
する、前記第一のキャッシュ部位からの第一の信号経路
(325)と、 特別な形式の命令が実行されるとき、前記第一のオペラ
ンドと同時に、前記第二のオペランド(y)を前記機能
ユニットへ供給する、前記第二のキャッシュ部位からの
第二の信号経路(327)と、 別の形式の命令が実行されるとき、前記第一及び前記第
二のいずれかのキャッシュ部位からデータを選択する、
マルチプレクサ(310、311)と、 を含むことを特徴とするデータプロセッサー。
1. An instruction register (314), wherein n is an integer of 2 or more, and a first cache part (30)
1) and a second cache part (302), an n-way set associative cache, and an operation on the first and second operands (x, y) when the instruction is executed. Functional unit to perform (305)
A first signal path (325) from the first cache site that supplies the first operand (x) to the functional unit; and when a special form of instruction is executed, the first signal path And a second signal path (327) from the second cache site that supplies the second operand (y) to the functional unit at the same time as the operand of Selecting data from either the first or the second cache part,
A data processor comprising: a multiplexer (310, 311).
【請求項2】 データがどのようにしてキャッシュに書
き込まれるかについて制御する、再構成領域(44)を
含むページテーブルエントリ(図4)を有する変換索引
バッファ(500)、 を含むことを特徴とする請求項1のデータプロセッサ
ー。
2. A translation lookaside buffer (500) having a page table entry (FIG. 4) containing a reconstruction area (44), which controls how data is written to the cache. The data processor of claim 1, wherein:
【請求項3】 前記ページテーブルエントリが、さら
に、 第一のデータのセットが、偶数ウエイの直接マッピング
がなされるキャッシュに書き込まれ、第二のデータのセ
ットが、奇数ウエイの直接マッピングがなされるキャッ
シュに書き込まれることを規定する、ウエイ領域(4
3)、 を含むことを特徴とする請求項2のデータプロセッサ
ー。
3. The page table entry is further written to a cache where a first set of data is direct mapped for even ways and a second set of data is direct mapped for odd ways. The way area (4
3) The data processor of claim 2, including:
【請求項4】 前記命令レジスタが、前記キャッシュ部
位へのデータ書き込みを制御する、制御ビット(31
3)、 を含むことを特徴とする請求項1のデータプロセッサ
ー。
4. The control bit (31), wherein the instruction register controls writing of data to the cache part.
3) The data processor of claim 1, including:
【請求項5】 前記特別な形式の命令が、積和演算命令
を含むことを特徴とする請求項1のデータプロセッサ
ー。
5. The data processor of claim 1, wherein the special form of instruction comprises a multiply-accumulate operation instruction.
【請求項6】 前記機能ユニットが、積和演算ユニット
であることを特徴とする請求項1のデータプロセッサ
ー。
6. The data processor of claim 1, wherein the functional unit is a product-sum operation unit.
JP8017299A 1995-02-03 1996-02-02 Microprocessor with cache reconstitutible at instruction level Pending JPH08272681A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US38303795A 1995-02-03 1995-02-03
US383037 1995-02-03

Publications (1)

Publication Number Publication Date
JPH08272681A true JPH08272681A (en) 1996-10-18

Family

ID=23511440

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8017299A Pending JPH08272681A (en) 1995-02-03 1996-02-02 Microprocessor with cache reconstitutible at instruction level

Country Status (3)

Country Link
JP (1) JPH08272681A (en)
KR (1) KR960032182A (en)
TW (1) TW297111B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002025447A3 (en) * 2000-09-22 2002-11-28 Intel Corp Cache dynamically configured for simultaneous accesses by multiple computing engines

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002025447A3 (en) * 2000-09-22 2002-11-28 Intel Corp Cache dynamically configured for simultaneous accesses by multiple computing engines
GB2383868A (en) * 2000-09-22 2003-07-09 Intel Corp Cache dynamically configured for simultaneous accesses by multiple computing engines
US6665775B1 (en) 2000-09-22 2003-12-16 Intel Corporation Cache dynamically configured for simultaneous accesses by multiple computing engines
GB2383868B (en) * 2000-09-22 2005-02-02 Intel Corp Cache dynamically configured for simultaneous accesses by multiple computing engines

Also Published As

Publication number Publication date
TW297111B (en) 1997-02-01
KR960032182A (en) 1996-09-17

Similar Documents

Publication Publication Date Title
EP0734553B1 (en) Split level cache
US6223255B1 (en) Microprocessor with an instruction level reconfigurable n-way cache
AU654204B2 (en) Translation buffer for virtual machines with address space match
US5471628A (en) Multi-function permutation switch for rotating and manipulating an order of bits of an input data byte in either cyclic or non-cyclic mode
US5854913A (en) Microprocessor with an architecture mode control capable of supporting extensions of two distinct instruction-set architectures
US5966734A (en) Resizable and relocatable memory scratch pad as a cache slice
US5781924A (en) Computer caching methods and apparatus
US5475827A (en) Dynamic look-aside table for multiple size pages
US5867724A (en) Integrated routing and shifting circuit and method of operation
US7203800B2 (en) Narrow/wide cache
JP3669555B2 (en) Improved cache directory addressing method and apparatus for variable cache size
US5937178A (en) Register file for registers with multiple addressable sizes using read-modify-write for register file update
US6446181B1 (en) System having a configurable cache/SRAM memory
US6606684B1 (en) Multi-tiered memory bank having different data buffer sizes with a programmable bank select
US6351797B1 (en) Translation look-aside buffer for storing region configuration bits and method of operation
US5946718A (en) Shadow translation look-aside buffer and method of operation
JPH06236353A (en) Method and system for increase of parallelism of system memory of multiprocessor computer system
US6301647B1 (en) Real mode translation look-aside buffer and method of operation
US5905999A (en) Cache sub-array arbitration
JP3618868B2 (en) Method and system for efficient memory management in a data processing system utilizing a dual mode conversion index buffer
Margulis i860 microprocessor internal architecture
KR20010049340A (en) System and method for invalidating an entry in a translation unit
JPH08272681A (en) Microprocessor with cache reconstitutible at instruction level
JP2004152291A (en) Method, system, computer usable medium, and cache line selector for accessing cache line
Hunter Introduction to the Clipper architecture

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050511

A131 Notification of reasons for refusal

Effective date: 20050726

Free format text: JAPANESE INTERMEDIATE CODE: A131

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050913

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060221

A521 Written amendment

Effective date: 20060419

Free format text: JAPANESE INTERMEDIATE CODE: A523

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Effective date: 20060424

Free format text: JAPANESE INTERMEDIATE CODE: A911

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20060915

A521 Written amendment

Effective date: 20080710

Free format text: JAPANESE INTERMEDIATE CODE: A523