CN1049750C - 共用超高速缓冲存贮器子系统的计算机索引存贮器装置 - Google Patents
共用超高速缓冲存贮器子系统的计算机索引存贮器装置 Download PDFInfo
- Publication number
- CN1049750C CN1049750C CN94109021A CN94109021A CN1049750C CN 1049750 C CN1049750 C CN 1049750C CN 94109021 A CN94109021 A CN 94109021A CN 94109021 A CN94109021 A CN 94109021A CN 1049750 C CN1049750 C CN 1049750C
- Authority
- CN
- China
- Prior art keywords
- cache memory
- computer system
- processor
- subsystem
- cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 230000015654 memory Effects 0.000 title claims abstract description 65
- 230000008859 change Effects 0.000 claims abstract description 5
- 230000006870 function Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000001693 membrane extraction with a sorbent interface Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
一种计算机系统共用超高速缓冲存储器子系统的索引存储装置,该装置包括具有多条数据线的多个索引地址位,具有多个数据线位置的一变更位;以及具有多个数据线位置的多个处理器状态位。该共用超高速缓冲存储器子系统的索引存储装置中的多个处理器状态位可储存于处理器的超高速缓冲存储器中各条数据线的询问状态,分别记录计算机系统中每个处理器的超高速缓冲存储询问写入命中状态,以便局部减免询问周期的进行,从而整体提高系统的效率。
Description
本发明是关于计算机系统的超高速缓冲存储器子系统,特定而言,本发明是关于可具备多路处理器的计算机系统的超高速缓冲存储器子系统的索引存储结构,更特定而言,本发明是关于具备多路处理器且共用次级超高速缓冲存储器子系统的计算机系统的超高速缓冲存储器子系统的索引存储结构。
随着微处理器(microprocessor)技术的快速进步,以微处理器为基础的计算机系统,也随之拥有同样快速进步的各式各样的应用功能。另一方面,微处理器虽然功能快速地进步,但其价格不但没有随着功能的进步而等比地提高,反而显现出逐步减低的价格/功能比。典型的一个例子是由美国的苹果计算机公司(Apple Computers,Inc),万国商业机器公司(International BusineseMachines Corporation)与摩托罗拉半导体公司(Motorola Semicoductor)所共同推出的“威力计算机”微处理器(“PowerPC”processor),在功能上与英特尔公司(Intel Corpration)的“奔腾”微处理器(“Pentium”processor)约属同一等级,但价格却便宜了约一半。
作为多数计算机系统的中央处理单元(CPU,central processing unit)和微处理器,由于这种功能进步而价格下滑的趋势,已在计算机系统的设计与使用上带来一些显著而重要的改变。其中一种明显的趋势是,虽然微处理器的功能越来越强大,但对某些诸如工程计算等的用途而言,其计算的能力仍不尽理想。不过,由于上述的价格便宜的因素,一种增加计算机系统的运算能力的办法即增加计算机系统中微处理器的数量,即所谓的多路处理器计算机系统(multiprocessor computer system),正在使用。
另一方面,现今微处理器的技术,虽然在合理价格的范围之内的确是进步神速,但计算机系统之中与微处理器具有同等重要性的另一种关键性元件,亦即半导体存储器,其情况却并非如此。目前在合理价格的范围内适用的半导体存储器基本上有两种,即动态随机存取存储器(DRAM,dynamicrandom access memory)与静态随机存取存储器(SRAM,static random accessmemory)。DRAM具有相当大的单位存储容量,但其存取速度,与现今的高性能微处理器比较起来,却显得令人无法忍受的慢。典型的高性能微处理器若要将DRAM作为操作用存储体,便可能仅发挥不超过其百分之二十的功能,其余的时间皆须等待慢速的DRAM的响应。在另一方面,SRAM虽然具有较高的存取速度,但仍无法完全与现今最快的微处理器相匹配,而且其单位存储容量与DRAM比较起来亦是小了很多。
由于前述存储器技术现况的关系,现今的高性能微处理器皆采用了所谓超高速缓冲存储(cache memory)的设计结构,直接地将小量但速度快得足以与微处理器本身完全匹配的超高速缓冲存储器,称为主超速缓冲存储器(primary cache),制作于微处理器内部。
不但如此,良好的计算机系统设计也将超高速缓冲存储器的结构设置于微处理器与计算机系统的较慢但便宜而大量的DRAM主存储器之间,称为次级超高速缓冲存储器(secondary cache),以便将计算机系统的整体存储器存取速度提高至最快可能速度(约在主超高速缓冲存储器速度的七至九成,视超高速缓冲存储器的设计结构与容量而定)。
对于采用现代高性能微处理器作为CPU多路处理器计算机系统而言,所应用的每一个微处理器本身即可以拥有其内部的主超高速缓冲存储器,所以,为了节省成本,这个多路微处理器系通常只使用一组级超高速缓冲存储器子系统。
在应用了主、次两级超高速缓冲存储器的计算机系统之中,其硬件结构设计上极为重要的一个要点是必须能够维持由微处理器内部的高速存储所构成的主超高速缓冲存储器,由SRAM所构成的次级超高速缓冲存储器,以及由DRAM所构成的系统主存储器之间的数据相容性,称为超高速缓冲存储一致性,或超高速缓冲存储相容性(cache coherency或cache consistency)。为了要维持超高速缓冲存储的相容性,具有多重处理器的计算机系统中的每一个微处理器都需要能够在必要的时机进行一些较为繁复费时的超高速缓冲存储相容性检查的动作。
以采用了Intel Pentium微处理器为主处理器的多路处理器计算机系统为例,一旦有总线上的主处理器(bus master)占用了系统的资源之后,便必须立即检查在该总线主处理器所存取的存储地址是否也存在于系统的主Pentium处理器之中,若有的话,该数据的状态如何,在该总线主处理器使用过该存储地址之后的该数据的状态又应如何,等等。这种计算机系统对其超高速缓冲存储相容性的处理可以依照所谓的MESI协定(MESI protocol,Modified/Exclusive/Shared/Invalid protocol),利用进行微处理器的询问周期(inquire cycle或snoop cycle)来处理。由于这种微处理器所进行的询问周期需花费相当多的CPU时间,并且会占用计算机系统中的总线时间,因此计算机系统如何设计,以便将进行这种询问动作的机会减至最低,已经成为设计高性能计算机系统的一个重要主题。
因此,本发明的目的是在于提供一种共用超高速缓冲存储器子系统的多路处理器索引存储(tag RAM)结构,可以适用于计算机系统的多路处理器环境,针对不同的处理器记录反应个别数据线与特定处理器之间的关系。
本发明共用超高速缓冲存储器子系统的计算机索引存储器结构的组成为:该装置装设在一包括有内部超高速缓冲存储的一主处理器,系统主存储器,以及一个设置于该主处理器与该系统主存储器之间的次级超高速缓冲存储器的计算机系统内,该共用超高速缓冲存储子系统的索引存储装置包括有:
具有多条数据线的多个索引地址位;
具有多个数据线位置的一个变更位;与
具有多个数据线位置的多个处理器状态位;
该多个处理器状态位可记录储存于处理器的超高速缓冲存储器中各条数据线的询问状态。
本发明的其它目的与特点将结合附图在后面予以详细说明。
附图简要说明:
图1为一示意图,显示常用技术中所采用的典型索引存储的结构;与
图2为一示意图,显示依据本发明的共用的超高速缓冲存储器子系统的多路处理器计算机系统索引存储(tag RAM)结构。
首先参考图1,其中所显示的是常用技术中计算机系统所采用的典型索引存储器结构。以直接映射的超高速缓冲存储子系统(direct-mapped cachememory subsystem)为例,总共n条数据线的超高速缓冲数据存储器30中的每一条数据线31、32、33、……等存储位置,其中n为正整数,在超高速缓冲索引存储器40之中,皆各有一个对应的索引存储41、42、43、……位置。在另一方面,超高速缓冲索引存储40则总共包括有一个适当数量的索引地址(tag address)位tag[MSB]61,tag[MSB-1]62,……TAG[LSB)m-1,,其中m为正整数。典型的直接映射超高速缓冲存储子系统可能会包含有8位的索引地址。除了此8位的索引地址之外,具有数据回写(write back)能力的超高速缓冲存储控制系统也会使用一个额外的变更位(dirty bit或alteredbit)51来记录已经经过计算机系统的CPU所修改过的超高速缓冲存储内容,以便在该超高速缓冲存储位置要被覆盖掉之前,先行写回系统的主存储器之中。
前述的常用技术超高速缓冲索引存储器系统,当其计算机系统之中,有设置于总线上的主处理器存在时,无法针对每一个不同的处理器来记录某一特定数据线与该特定处理器之间的关系。此时,参考图2,本发明扩充了常用的超高速缓冲索引存储结构,除了原有的超高速缓冲数据存储器30之外,并在原有的超高速缓冲存储索引地址位40以及变更位51之外,更加上了计算机系统之中与所有处理器的数量相同的处理器相关对应的状态位70,包括了P(m-1)CIN 71、P(m-2)CIN 72、……及P0CIN 79等m个位元,,其中m为正整数。在这种结构之中,每个处理器状态位71、72、……等,都是被用来储存计算机系统之中的每个处理器CPU(m-1)81、CPU(m-2)82、……以及CPU0 89等m个处理器在各该条数据线上的数据状态,其中m为正整数。
在图2中的超高速缓冲存储结构之中,整个的超高速缓冲存储子系统容纳了多路处理器计算机系统的m个处理器的n条超高速缓冲存取数据线的共用超高速缓冲存储器(shared cache memory),其中n为正整数。其中的P(m-1)CIN 71、P(m-2)CIN 72、……以及P0CIN 79等m个位元部分的动作在后面详细说明。计算机系统在启动时,假定是以CPU0来启动整个系统,则包含了本发明的超高速缓冲索引存储结构的扩充部分会被初始化为如下的状态:
[P(m-1)CIN、……P1CIN、P0CIN]=[0、……0、1]
若CPU1进行数据读取的动作,并且达到读取命中(read hit),则[P(m-1)CIN、……P1CIN、P0CIN]=[0、……1、1]
若所达到的状态是询问写入命中(snoop write hit)的话,则便将所有位清除为零
[P(m-1)CIN、……P1CIN、P0CIN]=[0、……0、0]
利用这种演算法则(algorithm),本发明在检查到有一个PxCIN为0时,即可以确定该第x个CPUx中不包括有此条超高速缓冲存储数据线,在进行询问周期时即可避开此CPUx,节省询问周期所须占用的时间,进而增加系统的效率。
因此,本发明利用扩充的超高速缓冲索引存储结构,分别地记录计算机系统之中每一个处理器的超高速缓冲存储询问写入命中状态,便可以在部分的状况之中减免询问周期的进行,由于询问周期的进行需要花费相对较多的CPU时钟周期,因此,询问周期的减少即意味着系统效率的整体提高。
本发明上述的具体实例仅作为对本发明技术细节的说明,不应狭窄地把本发明理解为限定在这些具体实例内,例如,在计算机系统共用超高速缓冲存储器子系统的索引存储装置中,设置在该计算机系统的总线上的总线主处理器可以不只一个,该计算机系统包括的次级超高速缓冲存储器子系统也可以不只一组,另外该总线主处理器可以包含有内部超高速缓冲存储器,也可以不包含内部超高速缓冲存储器等等。因此,在不脱离本发明的精神和权利要求范围的情况下,可以对本发明作出许多改进。
Claims (5)
1.一种计算机系统共用超高速缓冲存储子系统的索引存储装置,该装置装设在一包括有内部超高速缓冲存储的一主处理器,系统主存储器,以及一个设置于该主处理器与该系统主存储器之间的次级超高速缓冲存储器的计算机系统内,该共用超高速缓冲存储子系统的索引存储装置包括:
具有多条数据线的多个索引地址位;
具有多个数据线位置的一个变更位;
其特征在于,该共用超高速缓冲存储子系统的索引存储装置还包括
具有多个数据线位置的多个处理器状态位,用于记录储存于处理器的超高速缓冲存储器中各条数据线的询问状态。
2.如权利要求1所述的计算机系统共用超高速缓冲存储器子系统的索引存储装置,其中该计算机系统还包括有设置在该计算机系统的总线上的多个总线主处理器。
3.如权利要求2所述的计算机系统共用超高速缓冲存储器子系统的索引存储装置,其中该计算机系统还包括有多于一组的次级超高速缓冲存储器子系统。
4.如权利要求2所述的计算机系统共用超高速缓冲存储器子系统的索引存储装置,其中该总线主处理器包含有内部超高速缓冲存储器。
5.如权利要求2所述的计算机系统共用超高速缓冲存储器子系统的索引存储装置,其中该总线主处理器不包含内部超高速缓冲存储器。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN94109021A CN1049750C (zh) | 1994-07-28 | 1994-07-28 | 共用超高速缓冲存贮器子系统的计算机索引存贮器装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN94109021A CN1049750C (zh) | 1994-07-28 | 1994-07-28 | 共用超高速缓冲存贮器子系统的计算机索引存贮器装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN1115893A CN1115893A (zh) | 1996-01-31 |
| CN1049750C true CN1049750C (zh) | 2000-02-23 |
Family
ID=5033732
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN94109021A Expired - Lifetime CN1049750C (zh) | 1994-07-28 | 1994-07-28 | 共用超高速缓冲存贮器子系统的计算机索引存贮器装置 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN1049750C (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12008041B2 (en) | 2021-09-15 | 2024-06-11 | International Business Machines Corporation | Shared cache for multiple index services in nonrelational databases |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0210384A1 (en) * | 1985-06-28 | 1987-02-04 | Hewlett-Packard Company | Cache memory consistency control with explicit software instructions |
| DE4037332A1 (de) * | 1990-11-23 | 1992-05-27 | Siemens Nixdorf Inf Syst | Verfahren zur ueberwachung der datenkonsistenz in einem datenverarbeitungssystem und datenverarbeitungssystem zur durchfuehrung des verfahrens |
-
1994
- 1994-07-28 CN CN94109021A patent/CN1049750C/zh not_active Expired - Lifetime
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0210384A1 (en) * | 1985-06-28 | 1987-02-04 | Hewlett-Packard Company | Cache memory consistency control with explicit software instructions |
| DE4037332A1 (de) * | 1990-11-23 | 1992-05-27 | Siemens Nixdorf Inf Syst | Verfahren zur ueberwachung der datenkonsistenz in einem datenverarbeitungssystem und datenverarbeitungssystem zur durchfuehrung des verfahrens |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12008041B2 (en) | 2021-09-15 | 2024-06-11 | International Business Machines Corporation | Shared cache for multiple index services in nonrelational databases |
Also Published As
| Publication number | Publication date |
|---|---|
| CN1115893A (zh) | 1996-01-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5671391A (en) | Coherent copyback protocol for multi-level cache memory systems | |
| JP3067112B2 (ja) | 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法 | |
| JP3737834B2 (ja) | 2重化キャッシュ・スヌープ機構 | |
| US6018791A (en) | Apparatus and method of maintaining cache coherency in a multi-processor computer system with global and local recently read states | |
| JP3269967B2 (ja) | キャッシュコヒーレンシ制御方法、および、これを用いたマルチプロセッサシステム | |
| US7266647B2 (en) | List based method and apparatus for selective and rapid cache flushes | |
| US20100321397A1 (en) | Shared Virtual Memory Between A Host And Discrete Graphics Device In A Computing System | |
| JPH06110781A (ja) | キャッシュメモリ装置 | |
| US6574710B1 (en) | Computer cache system with deferred invalidation | |
| US5713004A (en) | Cache control for use in a multiprocessor to prevent data from ping-ponging between caches | |
| US6237064B1 (en) | Cache memory with reduced latency | |
| JPWO2017209883A5 (zh) | ||
| US6360301B1 (en) | Coherency protocol for computer cache | |
| US5893147A (en) | Method and apparatus for distinguishing system memory data from alternative memory data in a shared cache memory | |
| US5809537A (en) | Method and system for simultaneous processing of snoop and cache operations | |
| US5161219A (en) | Computer system with input/output cache | |
| EP0436305A2 (en) | System and method for efficiently supporting access to I/O devices through large direct-mapped data caches | |
| US5694575A (en) | Direct I/O control system with processor, main memory, and cache employing data consistency retaining scheme | |
| JP4577729B2 (ja) | ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法 | |
| CN1049750C (zh) | 共用超高速缓冲存贮器子系统的计算机索引存贮器装置 | |
| KR19980081314A (ko) | 프로세서 버스로의 캐쉬 연산의 요구-기반 발생 방법 및 장치 | |
| GB2307319A (en) | Dual-directory virtual cache | |
| US6105112A (en) | Dynamic folding of cache operations for multiple coherency-size systems | |
| US20210232501A1 (en) | Using a bloom filter to reduce the number of memory addressees tracked by a coherence directory | |
| JPH0383150A (ja) | アドレス変換機構付キャッシュ装置の制御方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| C06 | Publication | ||
| PB01 | Publication | ||
| C14 | Grant of patent or utility model | ||
| GR01 | Patent grant | ||
| C17 | Cessation of patent right | ||
| CX01 | Expiry of patent term |
Expiration termination date: 20140728 Granted publication date: 20000223 |