CN1031142A - 在处理各种地址故障中的高速暂存器的抗错能力 - Google Patents
在处理各种地址故障中的高速暂存器的抗错能力 Download PDFInfo
- Publication number
- CN1031142A CN1031142A CN88103177A CN88103177A CN1031142A CN 1031142 A CN1031142 A CN 1031142A CN 88103177 A CN88103177 A CN 88103177A CN 88103177 A CN88103177 A CN 88103177A CN 1031142 A CN1031142 A CN 1031142A
- Authority
- CN
- China
- Prior art keywords
- memory
- scratch pad
- signal
- address
- pad memory
- 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.)
- Withdrawn
Links
- 230000015654 memory Effects 0.000 title claims abstract description 397
- 238000012545 processing Methods 0.000 claims abstract description 31
- 238000003860 storage Methods 0.000 claims abstract description 31
- 230000007246 mechanism Effects 0.000 claims description 80
- 238000000034 method Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 12
- 230000033228 biological regulation Effects 0.000 claims description 5
- 230000000694 effects Effects 0.000 claims description 4
- 239000004615 ingredient Substances 0.000 claims description 3
- 238000011221 initial treatment Methods 0.000 claims description 3
- 238000000151 deposition Methods 0.000 claims description 2
- 150000001875 compounds Chemical class 0.000 claims 3
- 241001609213 Carassius carassius Species 0.000 claims 1
- 239000001888 Peptone Substances 0.000 claims 1
- 108010080698 Peptones Proteins 0.000 claims 1
- 239000002775 capsule Substances 0.000 claims 1
- 241001233037 catfish Species 0.000 claims 1
- 239000010985 leather Substances 0.000 claims 1
- 235000019319 peptone Nutrition 0.000 claims 1
- 230000009471 action Effects 0.000 abstract description 10
- 230000000875 corresponding effect Effects 0.000 description 10
- 101100017035 Arabidopsis thaliana HINT1 gene Proteins 0.000 description 9
- 101100438969 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) CDC26 gene Proteins 0.000 description 9
- 230000008859 change Effects 0.000 description 9
- 101100485276 Arabidopsis thaliana XPO1 gene Proteins 0.000 description 8
- 101100407739 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) PET18 gene Proteins 0.000 description 8
- BDEDPKFUFGCVCJ-UHFFFAOYSA-N 3,6-dihydroxy-8,8-dimethyl-1-oxo-3,4,7,9-tetrahydrocyclopenta[h]isochromene-5-carbaldehyde Chemical compound O=C1OC(O)CC(C(C=O)=C2O)=C1C1=C2CC(C)(C)C1 BDEDPKFUFGCVCJ-UHFFFAOYSA-N 0.000 description 7
- 101000915578 Homo sapiens Zinc finger HIT domain-containing protein 3 Proteins 0.000 description 7
- 102100028598 Zinc finger HIT domain-containing protein 3 Human genes 0.000 description 7
- 238000009826 distribution Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 208000011580 syndromic disease Diseases 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 101100285330 Arabidopsis thaliana HIT4 gene Proteins 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- GLUUGHFHXGJENI-UHFFFAOYSA-N Piperazine Chemical compound C1CNCCN1 GLUUGHFHXGJENI-UHFFFAOYSA-N 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 101100455985 Arabidopsis thaliana MAM3 gene Proteins 0.000 description 1
- 101001005668 Homo sapiens Mastermind-like protein 3 Proteins 0.000 description 1
- 101150108881 MAM1 gene Proteins 0.000 description 1
- 102100025129 Mastermind-like protein 1 Human genes 0.000 description 1
- 102100025134 Mastermind-like protein 3 Human genes 0.000 description 1
- 235000006508 Nelumbo nucifera Nutrition 0.000 description 1
- 240000002853 Nelumbo nucifera Species 0.000 description 1
- 241000237502 Ostreidae Species 0.000 description 1
- 108010076504 Protein Sorting Signals Proteins 0.000 description 1
- 241000220317 Rosa Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000010009 beating Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000007850 degeneration Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 244000144980 herd Species 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 210000004932 little finger Anatomy 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 235000020636 oyster Nutrition 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000002407 reforming Methods 0.000 description 1
- 230000003716 rejuvenation Effects 0.000 description 1
- 210000003625 skull Anatomy 0.000 description 1
- 125000006850 spacer group Chemical group 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0721—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
- G06F11/0724—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/0757—Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/141—Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
- Hardware Redundancy (AREA)
Abstract
由多级目录存贮器的缓冲存贮器管道段组成的
一个高速暂存器子系统,它被至少是一对独立操作的
中央处理器和一个先进先出(FIFO)设备所共享,它
们以紧耦合方式连接到公共系统总线。高速暂存器
子系统包括若干可编程控制电路,它们被用来接收代
表由高速暂存器子系统所执行的操作类型的信号。
这些信号逻辑地组合成输出信号,以指出当发现任何
一个地址故障或系统故障时要否刷新目存贮器的内
容,以便保证高速暂存器数据的一致性。
Description
本发明涉及高速暂存器系统,特别是由多个处理部件所共享的高速暂存器系统。
题为“多处理机所公用的管道式的高速暂存器”与本发明属同一领域的专利请求,它所提出的高速暂存器子系统有两个可供多个请求源共享的管道段,这些请求源包括若干独立操作的中央处理器。第一管道段做目录搜索和比较操作,而第二管道段执行从高速缓冲存贮器取出所要的数据並把它传送给请求源的操作。计时和控制装置与请求源连接並为每一处理器分配时间片,从而借助于管道段使各请求源的操作在时间上错开。于是各处理器的操作彼此独立而不会冲突。
当多个处理器共享一个高速暂存器或主存贮器时会产生一系列可能导致不合一的事件或操作。为了克服这个缺点,一种办法是使各处理器分享可利用的存贮空间並提供一种互锁机构,此机构用来防止一个处理器修改正在被另一处理器存取的信息。虽然这种解决办法对主存来说性能良好,但对高速暂存器而言,可能导致过多的数据替换或频繁的倒腾(thrashing),从而降低了高速暂存器的命中率。此外这种安排降低了每个处理器独立操作的能力。
为了克服这个问题,属于同一领域的题为“由两个处理器共享的合二而一的高速暂存器系统”的专利申请提出了另一种解决办法,它准许每个处理部件能够完全独立地操作,措施是:在缓冲存贮器(舞台)中包含有单独的登记替换情况的装置,並把可以利用的高速暂存器的总存贮空间的一半分配给替换装置使用,在一个处理器的每个目录分配周期内,核对已经分给另一个处理器的空间,看看是否有重复分配出现。对于重复分配的与较低优先权的处理器有关的那个单元的地址被存放到重复分配存贮器中,允许最早对它进行数据替换,从而保持独立操作的处理器之间数据的一致。
虽然上述安排防止了独立操作的处理部件之间数据的不一致性,但是在紧耦合的处理系统中,处理部件或数据处理部件公用一个公共的主存,在这种情况下,仍可能出现数据的不一致性。为了保持这种系统中数据的一致性,每个处理部件有一个相关联的高速暂存器和一个监听设备,此设备用于监督其它处理部件施加于公共系统总线的对存贮器的写操作。这就使得该处理部件能够随着其它处理部件对主存中的相应数据所作的改变来更新其高速暂存器中的内容,从而保证了高速暂存器的一致性。在更新过程中,有时会发生处理部件无法准确地更新高速暂存器的情形。例如,由监听设备收到的数据可能有错或者作用于总线的存贮写操作超时。后一种情况可以发生在包含有抗错(resiliency)特性的系统中,所谓抗错特性就是象George J.Barlow和James W.Keeley的专利申请中提到的那些。该申请的序号是06/623264,1984年6月21日归档並转让给本专利的同一个代理人。
通常,如果数据产生畸变,将会发现一个错误条件並使此数据报废。如果畸变了的数据交给了高速暂存器部件,由此产生的命中或者未命中的结果不伴随有可信任指示。例如,如果未命中是假的,它将导致重复分配,而一个虚假的命中可能去更新错误的处理部件的数据。在这个节骨眼上,无论采取什么动作都会使该高速暂存器的内容前后不一致。
上述说明对于每个处理器发出的内存写操作而言也是适用的,也就是说,如果那个处理器作用于系统总线的内存写操作有错,那么这个写操作将不会更新属于该处理机自己的高速暂存器中的内容,从而防止进一步引起破坏。但是这种办法也增加了潜在的不一致性。为了克服上述缺点,一种可能的解决办法是在整个系统中提供附加的检错和纠错能力,以便能够重新构造坏的或者畸变了的数据。但是,这种方法造价昂贵並且十分费时,以致于大大降低了高速暂存器的性能。而且,它还不能保证在有抗错特性的系统中各种特定条件下的一致性。
因此,本发明的基本目标是提供一种方法和装置,此方法和装置能够以高可靠的方式保持高速暂存器的一致性又不牺牲总体性能。
本发明的进一步的目标是保持紧耦合的抗错数据处理系统中的一致性。
在一个高速暂存器子系统的优先推荐的实例中实现了本发明的上述目标和优点。本例中这个高速暂存器子系统有供至少是一对独立操作的中央处理器和一个先进先出(FIFO)的设备共享的多级目录存贮器和一些缓冲存贮器的管道段,这个先进先出设备接到紧耦合的数据处理系统中的系统总线,该总线是由系统中的其它部件公用的。
高速暂存器的本实施例还包括许多可编程控制电路,这些电路接到系统总线以便经监听设备从该系统总线接收各种不同类型的总线操作信号和命令信号,这些信号规定了高速暂存器所要执行的各种操作和周期。这些信号的逻辑组合将产生一个输出信号,以指出当发现有一个地址错或系统错时要否刷新目录存贮器中的内容,在有些情况下,该输出信号与指示高速暂存器地址错的若干信号相组合,以说明请求输入源所提供的地址不可靠或目录地址有错。对不同类型的地址错误作不同的处理使刷新操作只有在地址故障将造成高速暂存器不一致的情况下才进行。如果象通常那样对两个不同类型的地址错误采取相同的动作的话,可以利用单错或复错信号。
上面得到信号与表示出现其它事件或命令的别的信号相互组合以产生一个目录复位信号。这个信号作用于多级目录存贮器的所有各级上,以便在需要时刷新其内容,从而保持高速暂存器的长期一致性。也就是说,在本发明所作的系统中,假定高速暂存器子系统在长时间内所能保持的数据和按照与它有关的中央处理器的命令经常进行刷新或清除所能保持的数据一样。
在最佳实施例中,刷新是指使得当前地址无效的所有存贮单元的目录内容清成零。对比整个存贮器用新数据来转存的做法,本发明所作的刷新是适度的。这种做法允许把一个不相容的条件转换为对高速暂存器的慢速重新加载过程(即产生一系列未命中操作),而同时还允许继续执行高速暂存器的操作,这就不要使高速暂存器旁路或使其退化,而且在可能唤醒必要的软件恢复程序来恢复高速暂存器的操作之前,在不致于显著地降低性能的情况下就能使操作继续。此外,在执行高速暂存器的操作时,本发明所用的方法还提供错误情况下的恢复能力。
本发明发现並利用了这样的事实:目录可以看作为紧耦合系统中的冗余部分。因而可以在某种情况下暂时地略为降低其效率,以便按保持高速暂存器的一致性。
在最佳实施例中,系统事件指的是在高速暂存器的任何操作周期使目录被刷新的事件,这包括系统总线超时条件,第三方总线周期错条件的FIFO溢出错。代表其它条件的信号可能以很高的概率导致高速暂存器的一致性,这些信号在需要时能够作为输入加到控制电路。可编程的逻辑阵列控制电路是这样编程的,使之滤掉刷新期间的那些周期和系统事件来保持一致性。此外该电路也为这种增加提供方便。
在某些情况下,能够以很高的故障恢复能力来处理几种错误条件而不必刷新其目录。这种条件之一是处理器从主存要到的数据含有主存贮器所告知的不可纠正的存贮错误的情形。如同题为“过程式存贮器中的读操作”的与本题有关的那个专利请求中所述,高速暂存器子系统在一个内存读请求的初始处理期间就为所要的数据预先分配一个目录存贮单元。本发明的这一个实施例准许在下半个处理周期内收到来自系统总线的不可纠正的主存数据时,解除前面已经分配好的目录单元。这个不可纠正的数据被送到发出请求的那个处理器进行错误分析,但是不存到高速暂存器中。用执行去分配的周期的办法,保证了高速暂存器的一致性。对于其它类型的存贮器响应,也可能实现类似的去分配周期的处理。
从下面的说明中,结合附随的图例,将会更好地理解代表本发明特点的一些新奇的特性以及本发明的进一步目标和优点。不难理解,每个图例只是供说明用的,而不是限定本发明的范围只如图所示那样。
图1是包含有本发明装置的一个系统方框图。
图2是遵照本发明建造起来的图1中的中央子系统之方框图。
图3是对图2中的管道段电路的详细说明。
图4是说明本发明装置之整体操作用的流程图。
图5a到5g是对图4所示的某些操作的更详细的说明。
图1展示了一个多处理器数据处理系统10,它包括许多子系统13到30,这些子系统共同连接到一个系统总线12。这些说明性的子系统包括一个系统管理设施(SMF)子系统13、若干中央处理子系统14到16、若干存贮子系统20到28和一个外围子系统30。每个存贮子系统包含有偶和奇存贮模块,如图1所示。在编号为4,432,055的美国专利中给出了这样一种安排的一个例子。
每个子系统均有一个接口区,这种接口区使与之相关联的那个系统部件或那些系统部件能够借助于系统总线12以异步方式向另一个部件或从另一部件发送或接收命令形式、中断形式、数据形式或回答/状态形式的请求。换句话说,假定每个接口区包含总线接口逻辑电路,就象编号为3,995,258题为“采用数据集成技术的数据处理系统”,由George J.Barlow发明的那个美国专利中所揭示的那些电路一样。
接在总线12最左边的SMF子系统13包括一个微处理器和一组集中式的资源,来自中央子系统14到16的命令可以经由总线12来使用这些资源。此外,SMF子系统13可以向任何一个中央子系统发出命令来协助维护功能的完成。关于进一步的信息,可参考题为“关于多处理机系统的系统管理装置”的那个专利申请。
每个中央处理子系统14~16的组织方式是相同的。图2是以方框图形式给出的中央子系统14的组织机构。子系统14包括一对中央处理器(CPU)子系统14-2和14-4,它们互相耦合,共享一个高速暂存器子系统14-6。高速暂存器子系统14-6通过先进先出(FIFO)子系统14-10接到系统总线12,FIFO子系统可以认为包括在接口区14-1中。
从图2中看出,两个CPU子系统14-2和14-4在结构上是相同的。也就是说,每个CPU子系统均有一个32位的中央处理器(CPU)(即CPU14-20和14-40)和一个虚存管理部件(VMMU)(即VMMU14-26和14-46),用于把CPU给出的虚地址翻译为高速暂存器子系统14-6用的物理地址,作为存贮请求之一部分。此外,每个CPU子系统还包括一个只读存贮器(ROS)和一个16位的ROS数据输出寄存器(RDR)(即ROS14-24、14-44和RDR14-25,14-45)。
在每个周期的开头,规定从每个ROS中读出一个16位的微指令並把它放到它的数据输出寄存器(RDR)之中,这个微指令字规定了本周期内(固件步/框)所要做的操作类型。每个CPU子系统的时钟电路(即电路14-22和14-42)在这儿所说的在高速暂存器子系统14-6的控制下为CPU子系统建立基本时序。每个CPU子系统中的各个元素可以用标准的集成电路芯片来制作。
从图2看出,高速暂存器子系统14-6由一个源地址生成部分和两个分开的管道段组成,每个管道段带有自己的译码和控制电路。源地址生成部分包括14-62和14-64两框,它们完成源地址选择和增量功能。第一管道段是地址管理段,包括由14-66到14-76这些框组成的目录电路,它们的排列如图所示。第一管道段完成如下功能:锁存所生成的源地址、搜索目录和命中比较。这个管道段的输出信息由目录级号和列地址两部分组成。第一管道段的操作受定时信号的控制,而定时信号是由14-60框所示的计时和控制电路产生的。
来自第一管道段的信息被直接送往第二管道段,从而下一个请求源可以使用第一管道段。第二管道段是数据处理段,它包括如图所示的14-80到14-96框组成的数据缓冲区和有关的存贮器电路。这一段所执行的功能是从缓冲存贮器14-88和14-90中存取所需要的数据,或者利用从FIFO子系统14-10中接收到的数据来替换/存贮数据。因此,第二管道段产生32位数据字送给某一个CPU子系统。第二管道段的操作也是由14-60框所示的定时和控制电路产生的定时信号控制。
第一和第二管道段中的各个不同的框均可用标准的集成电路片来制作,在由得克萨斯信器公司于1984年出版的“TTL数据手册,第三卷”和由先进的微器件公司于1983年出版的“先进微器件可编程阵列逻辑手册”这两本书中列举了标准的集成电路片。例如,14-62框的地址选择器电路是用74AS1823三态寄存器芯片以线或方式制作而成的,用来选择四个地址之一。14-92框的交换式多路转换器是用同一种芯片做成的。14-68和14-72这两框所示的锁存电路是用74AS843D型锁存器芯片制作成的。14-70这一框交换式多路转接器和数据寄存器电路采玫ヒ皇敝拥目杀喑陶罅新呒缬孟冉⑵骷局谱鞯牧悴考嗪盼狝MPA16R6B的电路片来制作的。
图3更详细地描绘了目录存贮器14-74和14-76,这些存贮器是用8位的位片式高速暂存器地址比较器电路制成的,这些电路的零件编号为TMS2150JL,由Texas仪器公司生产。地址和数据寄存器14-80到14-84和14-94到14-96都是用9位的接口触发器制成的,零件号为SN74AS823,也是Texas仪器公司制造。
图3还详细地描绘了缓冲器和有关的存贮器电路14-80和14-84,它们是用4K×4位存贮器芯片制成的,芯片的零件号为IMS1421,由1NMOS公司制造。地址增量电路,即14-64那一框,是用标准的ALU芯片制作的,零件号为74AS181A,也可以用可编程的阵列逻辑元素作地址增量电路,用的是可编程阵列逻辑元,零件号为Am PAL16L8B,由先进微器件公司制造。
在这里,我们再作一些细节性的描述,14-66和14-86两框所示的第一、二两级命令寄存器和译码电路是用时钟控制的可编程阵列逻辑单元制作的,所用的部件号分别是AmPAL16R4B和AmPAL16R8B,均由先进微器件公司供货。这些电路也用来产生所需要的选择信号和读写控制信号,如图2所示(即信号SWAPLT+00、SWAPRT+00、P0LDDT-0L、P1LDDT-OL、POLDDT-OR、P1LDDT-OR)。关于进一步的细节请参看附录中的等式说明。
从图2可以看出,高速暂存器子系统14-6由奇偶两部分组成,根据是奇存贮器地址还是偶地址,高速暂存器的奇偶两部分可以同时存取两个数据字。关于这种高速暂存器如何寻址的进一步信息请参看编号为4,378,591的美国专利,此专利转让给本文所指的同一代理人。
图2还用方框形式给出了FIFO子系统14-10,它包括FIFO控制和时钟电路框14-11,这些电路则与替换地址寄存器14-12和系统总线12相连接。FIFO子系统14-10通过系统总线12接收在任何两个子系统之间传送的所有信息。当此信息是要对主存中的数据进行更新的话,该信息就编码成指出这种更新或替换操作的形式。FIFO子系统还接收由高速暂存器子系统14-6送到系统总线12的存贮请求所产生的任何新数据。更新数据和新数据两者都作为请求存贮到子系统14-10中的缓冲存贮器中。最后,FIFO子系统14-10还存贮由其它子系统在坏的总线周期内送来的信息,以便使它起一个监听器的作用。也就是说,在传送信息的周期内,不管这个特定的总线周期是否被承认,都能把此信息作为内存写命令之一部分发送给存贮子系统之一,那么每当这种时候,FIFO子系统14-10将存贮这种信息供高速暂存器更新之用。如上所述,尽管收到了上述这样的信息,本发明所提供的装置仍保持着高速暂存器的一致性。
FIFO控制电路对每个请求进行译码並开始适当的操作周期,从而使地址、数据和命令作用到高速暂存器子系统14-6的不同部分,如图2所示。为了本发明的需要,FIFO子系统可以按常方式来设计並采取4,195,340号美国专利中所提供的FIFO电路形式,该专利转让给和本文所指的同一代理人。
对于图2中所示的每个子系统的基本的时序关系是由定时和控制电路框14-60来建立的。借助于这种控制,使CPU子系统14-2和14-4以及FIFO子系统14-10能够互不冲突地共享高速暂存器子系统14-6。在本文一开始提到的第一个有关的专利请求中详细地描述了14-60这一框的电路。摘要地说,这些电路是选择地址用的逻辑电路,它为有制约条件的地址选择器14-62产生控制信号以便选择子系统14-2、14-4和14-10之一作为请求地址源。
14-60这一框还包括管道时钟电路,它规定不同类型的高速暂存器周期,这些周期开始管道操作,然后根据不同的请求产生预定的一系列信号。也就是说,第一和第二个信号分别代表CPU0子系统14-2和CPU1子系统14-4请求高速暂存器服务,而其它信号则代表FIFO子系统14-10发出的请求高速暂存器服务的信号。
这些信号摘要说明如下:
1.CPU 读周期
CPU的读操作是在接口电路14-1中的CPU端口0不忙时由ROS14-24在第一时期片/间隙内发出要用高速暂存器的请求而开始的。CPU0提供的地址交给第一管道段並读出目录。当发现命中时,说明所要的数据存贮在数据缓冲器中,所以读此缓冲器並把此数据定时地送到CPU0的数据寄存器。当发现没有命中时,CPU0端口变忙,该请求就转向存贮器去取所要的数据。
2.CPU1读周期
CPU1读周期是在接口电路14-1中的CPU端口1不忙的时候由ROS14-44在第三时间片/间隙内向高速暂存器发出请求而开始的。
3.后半个总线周期
后半个总线周期是应FIFO子系统14-10发出第一种高速暂存器请求而引起的,目的是当FIFO子系统14-10已存贮有一个请求时把从主存或I/O设备中得到的数据在第一或第三时间片/间隔内送回到系统总线12。当FIFO子系统14-10把来自I/O设备的数据供给第一管道态时,数据的传送不改变任何存贮器的状态並定时地送到相应的CPU的数据寄存器。来自主存的数据被写到高速暂存器的数据缓冲器並定时地写入适当的CPU的数据寄存器。
4.内存写更新周期
内存写更新周期是应FIFO子系统14-10发出第二种高速暂存器请求而引起的,目的是当在第一或第三时间片/间隔内接受了要更新的数据而FIFO子系统14-10已存有一个请求的条件下更新从系统总线12收到的数据。FIFO子系统14-10把数据交给第一管道段,从而导致对目录存贮器的读操作。当发现命中时,此更新数据就被写入到缓冲存贮器。
5.FIFO分配周期
FIFO的分配周期是在CPU0或CPU1读周期得到了不命中的结果而引起的。此时CPU端口变忙並在此请求转给存贮器的条件下,形成取所要的数据之请求。当存贮器的读请求被接受时,关于CPU的这个读请求被送到FIFO子系统的寄存器,该子系统中的控制电路将发出一个关于FIFO操作周期的请求(即迫使信号CYFIFO=1),指明此请求类型和级号信息的信号作为输入作用于14-66框的命令寄存器和译码电路。这些信号包括FIMREF(存贮器引用)、 FIWRIT(存贮器读)和FIDT16-18/19-21(级号)。信号FIMREF和 FIWRIT起动一个FIFO分配周期(即FIALOCYC=1)。
6.总线上锁式的空周期
随着高速暂存器的命中而形成一个上锁式的内存读请求,这种情况下将产生一个总线上锁式的空周期,这个周期测试给定的存贮单元的上锁的情形。其用途是同步CPU子系统所作的这样一些操作:先读出该存贮单元的内容然后上锁並对此单元的内容执行所要的修改写操作。在访问这种共享的存贮区时,每个CPU子系统对存贮器发出一个上锁式的内存读请求来验证这个特定的单元是否尚未上锁。存贮器将产生一个回答以告知此单元是否上锁但不执行所请求的读操作(即空操作存贮周期)。在高速暂存器未被命中的情况下,上锁式空周期信号不发给存贮器,这在此内存单元以前没有上过锁的情况下还引起后半总线周期的操作。
还有一些系统事件可能引起管道工作並产生预定的信号序列。这些系统事件包括系统总线操作超时、坏的第三方总线周期和FIFO溢出条件,我们将详细地说明这些系统条件。
图3是按照本发明给出的偶奇两部分目录和缓冲存贮器的管道段的结构。从图3可以看出,4K×16位的目录存贮器14-74/76被分成相等大小的两部分。前4级0到3分配给CPU0,而后4级4到7分配给CPU1。
目录存贮器14-74/76按照高速暂存器的地址信号产生8位的输出信号(HIT0-7),这些信号作用于方框14-86所示的命中译码电路。此外目录存贮器比较电路还产生8位奇偶错信号(PE0-7),这些信号也作用于14-86框的命中译码电路。这些信号的状态表示在被访问和被比较的任何一个目录地址中是否有奇偶错。地址比较是相对于接收到的输入地址,包括寄存器14-68/72中的有效位内容(V)进行的。
当14-66框的电路把特定的允许写信号LVWR0到LVWR7之一强制为二进制0时,行地址信息,包括有效位信号的状态被写入到相应的级别。这时,目录存贮器14-74/76的内容能够被复位或清成零。复位操作是在接到所有复位(R)端点上的信号 PXDIRR被强制成二进制0时进行的。关于进一步的细节请参看附录中的等式说明。
命中译码电路那一框14-86包括命中译码电路框14-860和多重分配译码电路框14-864。在本发明的这个优先实施例中,用单独的PLA元件来制作14-860和14-864这两框的电路。图3给出了这种元件的某一些,在这里我们还将作进一步的解释。14-860和14-864这两个电路均含有带优先权的译码器电路,当存在一个以上命中输出时,该电路选取较高的优先级来操作。优先权是由级号值决定的,0级优先权最高,7级优先权最低。
命中译码电路14-860根据命中输出信号HIT0-7产生一个三位的命中数码,对应于信号HIT#0-2,与此同时还产生命中输出信号HIT用来通知命中条件的发生。此外,命中译码电路14-860还从14-744框所示的奇偶校验电路那里接收信号ODAPEA-2。用74AS280电路芯片制作成的奇偶校验电路响应来自目录地址寄存器14-68/72的地址信号而产生奇偶校错信号ODAPEA-2,它指出奇地址锁存器14-68从地址选择器14-62中接收到地址中的任何字节是否有奇偶错。不难想象,对于偶地址锁存器14-72将产生一组类似的信号。
命中译码电路14-860把带校验错的地址信号(例如ODAPEA-2)和目录地址错信号结合起来形成高速暂存器的出错信号CACERR。此信号有两个用途。第一,用于在由此而产生的后半周期的高速暂存器操作期间旁路这个高速暂存器。第二,用于禁止或封锁命中信号指示,从而使高速暂存器子系统转向从主存中去取所要的数据。
多重分配命中译码电路14-864依据从FIFO子系统14-10中收到的级别信号WRLφφ-φ2和命中信号HIT0-7进行工作,以便除了产生多重分配存贮器信号MAMV之外还产生一个两位代码MAM1-2,该代码指出发生多重分配命中的较低那个优先级。关于上述信号如何产生的详细说明请参看附录中的等式。
上面所说的一组命中输出信号作用于方框14-88/90所示的数据缓冲器和有关的存贮器电路。如图所示,这些电路包括缓冲器地址寄存器14-80/84和4K×16位的数据缓冲器14-88/90。
图3详细地展示了组成第一、二两级命令和译码电路(14-66和14-86框)的不同元件。按照本发明的做法,这些电路把经由FIFO子系统14-10得到的某些系统总线12上的信号组合在一起以代表预先确定的用来产生目录复位信号 DIRRES、刷新信号FLUSH和目录清除信号DIRCLR的条件。刷新信号FLUSH与定时信号PIPEOB+OB和高速暂存器错误信号CACERR在与非门NAND14-741中进行组合以产生目录刷新信号 DFLUSH。上述这三个信号在与门14-740上组合以产生一个目录信号 PXDIRR,这个信号作用于高速暂存器目录地址比较器电路14-74/76的目录复位端,以便清除或刷新其目录,此外,表示完成了刷新操作的信号 PXDIRR还用来建立高速暂存器的错误伴随式寄存器14-750中的刷新位的状态。如图所示,错误伴随式寄存器14-750还存贮表示出现了这里讨论过的属于CPU0操作中的事件和错误的信号。类似的寄存器机构也用于存贮属于CPU1的操作过程中的状态。
此外,方框14-66表示的电路还产生目录解配信号 DEALO,此信号作用于或门14-742的一个输入端,该或门的另一输入是与非门14-744产生的从寄存器14-68/72来的信号ACPURD。
更详细一点讲,14-66这一框电路包括一个D型触发器14-660,这个触发器的连接方式是这样的,使它能够利用定时信号TM10R3和清除总线信号CLRBUS总线操作超时状态。当从接口电路14-1中的操作超时电路之一中收到一个信号时,CLRBVS信号就出现。换句话说,接口电路14-1包括有针对CPU0和CPU1的1.2毫秒的操作超时电路。当系统总线处于超过1.2毫秒的等待态时,相应的超时电路就工作以迫使信号CLRBUS变为二进制1。触发器14-660因信号 BUSBST被强制为0而被复位。来自触发器14-660的输出信号OPTMOT作用于或非门14-662的输入端之一。
或非门14-662接收的第二个输入是来自FIFO子系统14-10的信号FIMBER,该信号表示出现了第三方总线错误条件。或非门14-662的第三个输入是来自子系统14-10的信号FIFREE,此信号表示FIFO溢出状态。或非门14-662产生一个目录清除信号DIRCLR,此信号借助于定时信号PIPEOA+OA被存放到寄存器14-68/72之中。
FIFO子系统14-10包括许多D型触发器那样的溢出检测电路,它们被连接成能用来检测溢出条件的出现时间,即当FIFO缓冲器电路不能接收来自系统总线的一个请求数据的时间。此外,FIFO子系统14-10还从接口电路14-1之回答电路中接收总线出错信号,此信号指出由另一子系统作用于系统总线12的且被指定子系统所受理的请求是否有正确的媾夹浴V嬖贔IFO子系统14-10中的任何这种请求伴随着信号FIMBER,此信号被置成二进制1以指出出现了错误条件。
接口电路为存贮在FIFO子系统14-10中的请求提供正确的奇偶性。这些电路是整个电路的组成部分,它使一个子系统在受理请求之前能够反复审查一下各个请求。虽然这些电路不属于本发明的范围,但在George J.Barlow和James.W.Keelex共同提出的专利申请中详细地描述了它们,该专利的题目是“具有故障恢复能力的总线系统”,专利号为623,264,1984年6月21日存档並委托给本文所指的同一代理人。因为各种子系统均可包括这种类型的电路使图1所示的系统对总线出错条件有故障恢复能力,因此当被受理的一个请求所指示的准则满足时,FIFO子系统14-10对这样的请求提供存贮手段。
此外,方框14-66还包括带有时钟的目录控制电路PLA单元14-664和14-666,每个单元从FIFO子系统14-10中接收不同的一组信号。电路14-664的作用是产生解除分配信号 DEALO和目录写信号 DIRWRE,以便象这里所述那样,把所访问的目录单元中有效位位置之内容写入到选中的级别中。如图所示,信号 DERWRE作用于3-8译码电路14-670中的一个使能输入端。信号ACPURD则与写脉冲定时信号WRTPLS一起被加到电路14-670的其它两个使能输入端。电路14-670对写替换信号WRL00-02进行译码,使信号LVWRO到LVWR7之一强制为二进制为零,因而规定了LVWRX变0的那个目录级要被写入。
电路14-666为CPU0的高速暂存器产生复位信号 POCACR。图中没有画出的一个类似的电路产生信号 PICACR。这些信号在与门14-668上组合以产生目录复位信号 DIRRES。信号 POCACR的 PICACR是应来自SMF13的中断写命令而产生的。该命令的操作码由信号FIAD19到FIAO22指出,其码值为9,信号 FOCMEN表示这是中断写命令。
此外,方框14-66还包括另外一种带有时钟脉冲的PLA元件14-672和14-674。电路14-672响应从FIFO系统14-10来的信号产生DIRALC到MSHBCL等信号作为输出,当高速暂存器地址错时,信号DIRALC到MSHBCL用于确定刷新操作期间高速暂存器的各种操作周期。类似地,PLA电路14-674响应图中所示的信号后产生CPUCYL信号,后者指出高速暂存器子系统14-6正在执行CPU操作周期。这个信号连同信号DIRALC到MSHBCL作为输入加到带有时钟的PLA元件14-866,14-866是第二级译码器电路14-86的组成部分。这个电路的输出是一个刷新信号FLUSH,它指示刷新操作在何时发生。
再进一步讲,图3还描述了另外一种安排,其中加进了用虚线表示的与非门14-741A。此间的命中译码电路14-860产生信号CACERR和CACERRA作为其输出,CACERR表示目录地址错,而CACERRA表示输入地址(调用者)错。
按照本发明的做法,PLA元件14-866是可编程的,使它能够输出第一、二两个刷新信号FLUSH和FLUSHA。每个刷新信号指出目录地址错或输入地址错时刷新操作的执行时间。如上所述,把地址故障分门别类的做法能够降低在某些种类的高速暂存器周期内刷目录的必要性。利用PLA元件,高速暂存器子系统14-6能够确定在什么样的事件和条件下应当采取刷新操作。为同上面详细解释过的那样,对不同类型的地址故障和错误采取相应的动作,这种做法使高速暂存器的一致性和性能得到了平衡。
参考图4、图5a和图5g所示的流程图,我们来说明图3所示的本发明装置的操作过程。本发明的高速暂存器子系统14-6对来自每一个处理部件CPUφ和CPU1的请求和来自FIFO子系统14-10的请求进行处理。如前面讲过那样,14-60框中包括的管道时钟电路定义不同类型的高速暂存器的工作周期,它们响应每一个请求而启动管道操作,从而产生一系列预定的信号。此外,如图3所示,信号FIFERR、FIMBER和OPTMOT也作为管道时钟电路的输入来启动高速暂存器的操作周期,以便保持此间所述的高速暂存器的一致性。
参考图4可以发现:由高速暂存器子系统14-6执行的各种操作或周期包括SMF/MRI中断操作、上锁用的空周期、更新周期、内存I/OSHBC周期、CPU读周期、目录分配周期、第三方总线错周期,操作超时周期和FIFO溢出错误周期。除SMF中断外,高速暂存器14-6子系统在此周期内所要执行的操作是检查出现了哪种类型的地址故障或错误。根据事件类型或发生地址故障时的周期类型,高速暂存器子系统14-6选择要做的动作,以便在某种程度上从已发现的地址故障中复原,以此来维持一致性和高性能。能够采取的动作有:在那个特定的操作周期内旁路这个高速暂存器和刷新这个高速暂存器的目录。刷新操作允许把新的数据慢慢地送入到高速暂存器的数据缓冲器14-88/90。
现在参照图4来叙述不同类型的周期/操作。称为SMF/MRI中断的第一个操作是由SMF13开始的,它在系统总线12上产生一个操作码等于“09”的命令。图3中的PLA电路14-666对此操作码进行译码后生成目录复位信号 DIRRES。图5a表示了这个处理序列。在由定时电路14-60产生的信号MCLOCK所定义的一个时钟周期内,以脉冲形式送出目录复位线信号 DIRRES。这使PXDIRR在刷新目录存贮器14-74/76之内容的同一时间间隔内强制为0。随着 PXDIRR变0,8级目录存贮器的每一级中的所有单元均被强制为0。同时 ,PXDIRR信号还用于把错误判别式寄存器14-750中的预先确定的位置成1。当此位置1时就表示发生了高速暂存器刷新操作。此后,这一位的状态由SMF13复位以防止将来混淆不清。在系统质量逻辑测试期间,响应SMF13发出的命令,高速暂存器子系统也要能够执行刷新操作。为了完整起见,在这种情况下也涉及上述SMF/MRI这种操作过程。
第二种操作称为CPU读,它是因CPU0或CPU1分别在第一时间间隔或第二时间间隔内发出高速暂存器请求而开始的。发出请求的CPU的请求地址通过地址选择器14-62送到目录地址锁存器14-68/14-72。在图3所示的定时信号PIPEOA+OA来到时,请求地址被送入第一管道段的锁存器。如上所述,确定CPU读操作的信号使14-60这一框管道开始电路产生一系列包括信号PIPEOA+OA在内的时序信号。同样的信号还使PLA电路14-674产生信号CPUCYL以回答PIPEOA+OA信号,如图3所示。信号CPUCYL作用于PLA电路14-866,14-866应这样来编程,使它能够确定发现有地址故障的那个动作(即信号CACERR=1)。
从图5b可以看出,在没有发现地址错/故障的情况下,高速暂存器子系统执行正常的CPU读操作周期。但当发现有地址故障时,高速暂存器子系统14-6並不做刷新操作而是在那个操作周期内绕开这个高速暂存器。也就是说,命中译码电路14-860生成的信号CACERR封锁了此次命中,原因是禁止了作用于CPU数据寄存器电路的取数据信号POLDDT-OL和POLDDT-OR的产生,所以由此次CPU请求的数据如同没有命中的效果一样自动地到主存中去取出。此外,信号CACERR还使接口电路14-1中的一个寄存器中的预定位的位置成1,以指示高速暂存器被旁路。这使在后半周期从主存中得到的数据只送给发出请求的CPU而不存入高速暂存器。信号CACERR还把错误伴随式寄存器14-750中的某一位置成1,到下一总线请求开始时,该CPU把CACERR置的错误伴随位清0以保证正确的操作。
上述动作还保证了高速暂存器的状态保持不变,因而保持了高速暂存器的一致性。目录错或请求者地址错这一事实使得到的命中不可依赖。因此可能存在会导致潜在的不一致性的重复分配。也就是说,同一个单元可能被分在两个不同的级别上。
目录存贮器14-74/14-76将改变到它的最近最少使用(LRU)电路被更新的程度,这没有关系,因为在目录地址有故障的情况下,这个错误将重复並且绕过高速暂存器子系统,以防止从内存中得到的数据被写入到高速暂存器子系统14-6。
第三种操作是目录分配周期,它是在请求的数据不在高速暂存器的数据缓冲器14-88/14-90中时才执行的。从图5c可以看出,在这个周期内,FIFO子系统14-10把来自CPU0或CPU1的读请求提供给高速暂存器子系统14-6并把高速暂存器的行地址写入到高速暂存器到地址所指定的单元中,这个单元位于分配给由来自译码电路14-670的允许写信号所规定的那个CPU的若干级目录存贮器之一中。因此,当所要的数据字在后半总线周期内送回时就产生高速暂存器的SHBC周期,在此周期内,所收到的存贮在数据寄存器14-82中的数据被写入到由高速暂存器列地址规定的那一级目录存贮器中的数据缓冲器14-88/14-90,並把命中级信号HIT#0-2送入缓冲器地址寄存器14-80/84之中。
在执行目录分配周期时,因为图3的布局中包含有一个与非门14-741A,这将提供另外一些优点,它使两种不同类型的错误得以区分(即目录地址错和输入地址错)。这种安排来自于这样的认识:目录地址错可能是固定的(即非临时性条件)。从图5c中看出,在这种情况下,如果输入地址有错,目录存贮器14-74/76就被刷新。换言之,与非门14-741A迫使信号 DFLUSH变0以回答CACERRA和FLUSHA这两个信号变1。在由加到与非门14-741上的定时信号PIPEOB+OB所确定的现行高速暂存器周期内,随着信号 PXOIRR变0,刷新操作就按上述方式进行。在刷新操作期间,目录存贮器14-74/76禁止产生因执行并行的目录周期而产生的任何命中输出信号。信号 PXDIRR也使错误伴随式寄存器14-750中的刷新位的值变1。
但是,如果仅仅发现目录地址有错(即信号CACERR=1),则不发生刷新操作(即信号FLUSH保持为0)並执行正常的分配周期。因为错误是固定的,所以在随后的分配周期内也会发现这个错误。因为这种地址故障如果是在目录分配周期内发现的话不会影响高速暂存器的一致性,所以不要做刷新操作。因此,尽管有这样的地址错误,高速暂存器子系统14-6仍维持着高水平的性能。
从图5c中可以看出,当通过测试或类似的手段证实这种类型的地址错误本质上是临时性的,我们就可对PLA电路14-866进行编程,使信号FLUSH在这种情况下变1,从而导致刷新操作。在这种情况下的操作步骤如前所述。
上面我们阐明了仅当发现地址故障或错误时所发生的刷新操作,这种错误会导致发现不了的双重分配周期,从而导致高速暂存器的不一致性。所以,我们采取了较严厉的措施,以刷新的形式来保证将来能可靠地操作。在这种情况下,目录存贮器在后半总线周期将不产生命中条件,从而数据就不会存入高速暂存器而送往发出请求的那个CPU。
第四种操作是上锁式空周期操作。从图5d所示的操作序列可以看出,如果在本周期内发现有地址故障或错误,就象目录分配周期所采用的方式一样,刷新目录存贮器14-74/76。也就是说,PLA电路14-866设计成使信号FLUSH变1,这个信号作用于与非门14-741,迫使信号 DFLUSH随信号CACERR变1而变0。在由信号PIPEOB+OB确定的现行高速存贮器的第二段间隔内也发生刷新操作。
在上述情形中,在前一半上锁用的空周期操作期间,当高速暂存器子系统发现一次命中时,请求地址还被送到存贮子系统20,以确定那个存贮单元是否上锁。当存贮器子系统20指出那个存贮单元未曾上锁时,它产一个认可信号。这个认可信号使从系统总线得到的並存放在FIFO子系统14-10中的地址再次作用于高速暂存器子系统14-10以便读出同一单元。首次发现命中时产生的那个信号被指定为总线上锁的空周期(FILKNC)。因为在本实施例中,CPUφ和CPU1没有能力在出现错误时重做这种操作,所以必须刷新这个目录而不是旁路这个高速暂存器的操作周期。不难理解,如果有了这样的复执能力,将不难按照这种情况重新对PLA电路14-866进行设计。
第五种操作是更新周期的操作。此时,FIFO子系统14-10把一个要求对系统总线12中得到的数据进行更新的请求交给高速暂存器子系统14-6。当命中时,此更新数据就被写入此高速暂存器的缓冲器中。图5e中围绕地址错测试框的粗实线表示在这个周期内也要执行象目录分配周期内要做的那样进行地址错测试。也就是说,如果发现有地址错,更新操作就不进行。在这里有可能产生双重分配。因为不知道更新地址是否在此高速暂存器的目录存贮器中,所以有必要刷新其内容以防不一致。也就是说,一个处理器可能已把新的信息写入主存而高速暂存器子系统14-6却因为地址错而不能更新其内容,而此内容本来是应该和主存中的改变相一致的。
因此,把电路14-866设计成这样:当PLA电路14-672使更新周期信号UPDCYL变1时,使信号FLUSHA随着变1。随着地址错信号CACERR被强制成1,信号 DFLUSH按照前面讲过的方式被强迫置0。从图5e中可以看出,刷新操作发生在信号PIPEOB+OB所确定的现行周期内。当更新周期出现在目录分配周期和后半总线周期之间时,在后半总线周期内送回的数据不存入高速暂存器(也就是说,目录被刷新一命中不产生)而送到发出请求的CPU。
但是,如果发现只是目录地址错(即信号CACERR=1),则不做刷新操作而执行正常的更新周期。因为此操作不影响高速暂存器的一致性,所以不必做刷新操作。在这里,高速暂存器子系统14-6仍能以很好的性能工作。
从图4可以看出,第六、七两个操作是后半个总线周期操作。此这期间把一个地址写入到目录存贮器14-74/76而不带任何错误。在这个操作的后半期间,同一单元再次被访问,以便把所要的数据写到预先分配好的单元。当在这个周期中发现有地址错时,高速暂存器子系统14-6不能正确地处理这个数据。因耍裀LA电路14-866设计成当出现地址错时(即CACERR=1)使信号FLUSH强制变1,从而开始刷新。
因为可能导致高速暂存器不一致的仅仅是后半个内存总线周期,所以PLA电路14-866被设计成只在内存的后半周期(即信号MSHBCL=1)时产生刷新操作。I/O和SMF的后半总线周期实际上旁路3高速暂存器子系统14-6。对PLA电路14-866的另一种编程方法是把存贮访问信号RPMREF作为输入加到PLA电路14-672。因此,PLA电路14-672迫使信号SHBCYL变1(表示这是后半总线周期),同时仅当信号RPMREF变1时(表示存贮器的后半总线周期)使信号FLUSH变1。
从图5f可以看出,刷新操作出现在由信号PIPEOB+OB确定的现行周期的后半段间隔内,命中译码电路14-865产生信号CACERR,它压制了命中指示电路,从而防止数据写入到数据缓冲器14-88/90而送往发出请求的那个CPU。
从图4得知,下面三个事件或操作对应于第三方总线错误、操作超时和FIFO溢出错。对于这些事件的操作序列示于图5g。第三方总线错指的是:当FIFO子系统14-10正在执行一个监听操作时发现由另一子系统送到系统总线12的那个请求的数据、地址或命令中有错误。因为该子系统要能复执这样的请求,所以接收部件通常不产生系统超时条件,以便使复执进行倒底。因此,FIFO子系统14-10不存贮这个请求。然而由于某种原因,接收部件承认此请求,那么FIFO子系统也就存贮此请求並把它提交给目录存贮器14-74/76。因为有错而没有办法标识要发生那种类型周期,所以高速暂存器子系统14-6只好执行一次刷新操作以保持高速暂存器的一致性。例如,此信息可能是要求高速暂存器子系统14-6执行一次暂存器更新的内存写操作。
信号FIMBER被强制为1,以告知有一个第三方总线错误。从图3可得知,这个信号用来使或非门14-662把目录清除信号DIRCLR强制为0,而DIRCLR信号又接着送入目录地址寄存器14-68/72中的某一位以响应信号PIPEOA+OA。这使与门14-740迫使信号 PXOIRR在一段时间内保持为0,这段时间是从对应于信号PIPEOA+OA的前沿的该目录周期之首开始,到下一个目录周期之首、寄存器14-68/72中变1的那一位复位到0为止。错误伴随式寄存器14-750的相应位也由信号 PXDIRR和FIMBER置1。
从图5g可以看出,在发生FIFO溢出错误时也采取类似的动作。在此情形下,总线操作周期造成信息、数据或命令的丢失。因为被丢失的周期或许就是要求高速暂存器子系统14-6执行高速暂存器更新的内存写操作,所以高速暂存器子系统14-6再次采取同样的刷新操作。从图3知道,代表FIFO溢出错误的信号FIERR变1时导致或非门14-662迫使清除目录信号DIRCLR变0。这使与门14-740迫使信号 PXDIRR变1,这个信号将象如前所述那样刷新目录存贮器14-74/76的内容。
引起刷新操作的最后一个事件是操作超时。这种情形是这样发生的:高速暂存器子系统14-6对存贮子系统20发出了一个内存读请求,内存子系统接收了这个请求但是没有后随的后半总线周期,这种缺少响应的情形导致了操作超时。因为高速暂存器子系统14-6留在中间状态,所以它在收到表示操作超时条件的信号CLRBUS时就开始刷新操作。从图3可以看出,信号CLRBUS使触发器14-660倒向1态。这就造成信号OPTMOT使或非门14-662产生输出,再使目录清除信号DIRCLR强制变0。同时,信号OPTMOT用来开始一个能够按上述方式执行刷新操作的高速暂存器工作周期。
上面已经表明了本发明之装置如何对所发现的各种类型的地址错误或系统事件作出响应,以保持高速暂存器的一致性又不牺牲其性能。通过按照正在执行的高速暂存器周期的类型对各种地址故障进行分类,能够采取相应的措施,以达到在一致性和性能两个方面均最满意的结果。
除了上述优点外,本实施例还提高了高速暂存器的抗错性能。因为从后半总线周期的处理过程来看,某些类型的条件被发现了。第一个这样的条件是由从FIFO子系统14-10那里收到的信号FIKEOL和FIRERR之一或两者指出的不可纠正的内存错。在此情况下,内存子系统20指出所要的数据含有一个不可纠正的错误。因为目录存贮器14-74/76中的那个单元已经预先被分配,所以希望采取某种措施,免得把错误的数据存入高速暂存器中而同时仍保持着一致性。PLA电路14-664在后半总线周期内利用对应于予分配单元地址的替换地址寄存器中的内容产生去分配信号 DEALO和目录写信号DIRWRE。这┬藕攀够蛎?4-742和译码器电路14-670产生必要的信号使目录存贮器14-74/76中的预先被分配的那个单元失效。也就是说,这些信号使予先分配了的目录存贮单元在用作去分配周期的后半个总线周期内被改写。因此,该数据不存入高速暂存器而只送往发出请求的CPU。
在总线锁住位被置1的后半总线周期内(即信号FIOCK=1)将执行和上述相同的去分配操作。这意味着予先分配的那个单元不在该存贮器子系统的组成部分中,而是与此系统相连的另一个系统(例如远地系统存贮器)的组成部分。因为这个单元不能被跟踪,所以PLA电路14-664和上述方式一样地操作,在后半总线周期使此单元失去联系(去除分配)。高速暂存器的状态仍然不受影响,此数据则被送给发出请求的CPU。
上述做法提供了附加的抗错特性,因为按照某些种类条件的功能可以使一个给定的目录单元解除分配。
显然,对于熟悉本行的人来说,不用背离本文所述的方法即可对本发明之优先推荐的实施例作出各种改变。例如,可以利用不同类型的可编程电路,存贮器电路等等。这种可编程电路也可以用来产生导致刷新的其它信号(如系统事件)。
附录
下面以布尔表达式的形式给出生成图2和图3所示之信号的等式:
注:打*的那些信号都与信号PIPEOB+OA同步。
7.HIT=(HIT0+HIT1+HIT2+HIT3+HIT4+HIT5+HIT6+HIT7). FLUSH.
8. HIT#0=HIT0+HIT1+HIT2+HIT3
9 .HIT#1=HIT0+HIT1+HIT4· HIT2· HIT3+HIT5· HIT2· HIT3·
10 .HIT#2=HIT0+HIT2·HIT1+HIT4· HIT3·HITl+HIT6· HIT5· HIT3·HITl.
11.MAMV=WRLOO·(HIT0+HIT1+HIT2+HIT3)+ WRL00·(HIT4+HIT5+HIT6+HIT7).
12.MAM1=WRL01·(HIT0+HIT1+HIT2+HIT3)+HIT6+HIT7.
13.MAM2=WRL02·(HIT0+HIT1+HIT2+HIT3)+HIT5+HIT7.
14.CACERR=PE0+PE1...PE7;
CACERRA=ODAPEA+ODAPEO...ODAPE2.
15.PTOSEL=TMlAD2· PTOBSY·PORD02
16.FIALOCYC=FIMREF· FIWRIT· FILKNC.
17.FIUPDATE=FIMREF·FIWRIT.
18.LVWRO=WRTPLS·( FIDT16· FIDT17· FIDTl8+ FIDT19· FIDT20· FIDT21)·FILOCYCL
19.LVWR7=WRTPLS·(FIDT16·FIDT17·FIDT18+FIDT19·FIDT20·FIDT21)·FIALOCYCL.
20.WRLOO-WRL02=FIDT16-18 or FIDT19-21.
21.DIRALC=FIMREF· FIWRIT· FILKNC.
22.LKNCYL=FILKNC.
23.UPDCYL=FIMREFF FIWRIT.
24.MSHBCL=RPMREF FISHBA.
25.CPUCYL=PTOSEL+PT1SEL.
29.DEALO= FIAD21· FIAD22·FILOCK·FISHBA·RPMREF+
FIAD21· FIAD22·FIREDL·FISHBA·RPMREE+
FIAD21·FIDBWD·FIAD22·FIREDR·FISHBA·
RPMREF+ FIAD21·FIADBWD·FILOCK·FISHBA·
RPMREF·
30.DIRWRE= FIAD22· FILKNC·FIREAD+FIDBWD·FIRESQ·
FILKNC·FIREAD+ FIAD21· FIAD22·FILOCK
FISHBA·RPMREF+FIAD21· FIAD22·FIREDL·
FISHBA·RPMREF+ FIAD21FIDBWD·FIAD22·
FIREDR·FISHBA·RPMREF+ FIAD21·FIDBWD·
FILOCK·FISHBA·RPMREF·
对等式中各项的说明
1.DBWDRD=由ROS数据位4=1且ROS数据位5=0所确定的双字读命令,此命令由译码电路框14-66产生,与信号PIPEOA+OA同步。
2.CPUNUM=由译码电路框14-66产生的与信号PIPEφA+φA同步的CPU代号(CPUφ或CPU1)信号。
3.CPUSYL=由14-66框电路产生的CPU周期信号,与信号PIPEφA+φA同步。
4.EVNHIT=与偶目录存贮器14-76相关连的命中译码电路14-680产生的HIT信号。
5.CMAD22=在选择器14-62输出端上产生的高速暂存器地址位22。
6.CMAD23=在选择器14-62输出端上产生的高速暂存器地址位23,由它说明应把数据字送入哪半个(左或右)数据寄存器14-94或14-96。
7.FIAD17=来自FIFO子系统14-10的FIFO地址位17。它规定哪个CPU来接收这个替换数据。
8.FIDBWD=来自FIFO子系统14-10的FIFO双字宽命令位,它指明什么时后送回的数据是双字。
9.FISHBA=来自FIFO子系统14-11的FIFO后半总线周期的认可信号,它表明FIFO子系统要一个高速暂存器周期来处理后半总线周期SHBC内从I/O设备或存贮器中收到的数据。
10.ODDHIT=与奇目录存贮器14-74有关的命中译码电路14-680产生的HIT信号。
11.RPMREF=由RAR提供的存贮器访问信号,它准许考察任何例外条件。
12.RPAD22=来自RAR14-12的替换地址位22。
13.FIDT16-18/19-21=由FIFO子系统14-10提供的确定高速暂存器级别的偶/奇数据位。
14.CYFIFO=由FIFO周期选择逻辑电路(即14-60框)在管道段空闲期间产生的一个周期信号。
15.FISHBC=来自FIFO子系统14-10的后半周总线周期信号。
16.WRTPRS=由14-60框电路产生的写脉冲信号,它是在时钟信号PIPEφA+φA和PIPEφA+φB之间或者是在时钟信号PIPEφB+φA和PIPEφB+φB之间的中途出现的。
17.FIMREF=来自FIFO子系统14-10的总线存贮器访问信号BSMREF。
18.FIWRIT=来自FIFO子系统14-10的总线存贮器写信号BSWRIT。
19.TM1AD2=分配给CPUφ的时间片。
20.PTOBSY=来自接口区14-1的指示CPUφ不忙的信号。
21.PORD02=ROS14-24之第2位的状态,当它为1时,指出CPUφ已请求一个操作周期。
22.FILKNC=来自FIFO子系统14-10的上锁用空周期信号BSLKNC,它通知存贮器在它测试/复位一个锁的状态后执行存贮器周期的时间。
23.FIAD21=来自FIFO子系统14-10的FIFO地址位21,它告诉准备旁路高速暂存器子系统。
24.FIAD22=来自FIFO子系统14-10的FIFO地址位22,它指出SHBC地址的奇偶性。
25.FIREAD=从FIFO子系统14-10中收到的BSWRIT中导出的读信号。
26.FIRESQ=来自FIFO子系统14-10的营救信号BSRESQ,它指出在什么时候可以发送一个双字来响应这个请求。
27.FIREDL=来自FIFO子系统14-10的左红灯信号BSRERL,它指出在一个双字的左字中有一不可纠正的错误。
28.FIREDR=来自FIFO子系统14-10的右红灯信号,它指出在一个双字的右字中有一不可纠正的错误。
29.FILOCK=来自FIFO子系统14-10的上锁信号BSLOCK,它指出存贮器上锁周期操作的时间。
虽然,我们按照上述条款和章程解释和说明本发明的最佳实施方案,但是正如附加的权利要求中列出的那样,不用脱离本发明之精神即可对本实施例作出某些改变,而且在某些情况下,可以利用本发明的一些特性对实例作出一些很方便的改变而不需用到其它一些特性。
Claims (21)
1、具有抗错性能的高速暂存器,在处理存贮器请求期间发现有不同类型的地址故障时能保持一致性,每个存贮请求有第一和第二两份地址,所说的高速暂存器包括:
·一个目录存贮器,它包括:
··一个用来接收请求的输入寄存器;
··一组分为若干级的存储器,每一级包括一组存贮单元相应地用来贮存所述的存贮请求的第一份地址,所述的目录存贮器中的每一组单元可被所述的第二份地址之一来存取;
··用来产生第一种错误信号以指出发现了第一种地址故障的机构;
·与上述输入寄存器相连的地址校验机构,此机构的用途是产生第二组地址错信号,用来指示发现了第二类地址故障;
·一个数据存贮器,它有和所述的目录存贮器一样多的级别和相应的存贮单元,数据存贮器中的各组单元可以被第二份地址所访问;
·与所述的目录存贮器连接並用来接收指示各种高速暂存器周期的信号的可编程控制电路机构,上述的高速暂存器周期是由高速暂存器在响应所述的请求时执行的,所说的可编程控制电路机构响应所说的信号而产生一个输出信号,此信号指出:按照所说的第一、二两类地址错误的特点,在哪些周期内要刷新所说的目录存贮器以保持高速暂存器的一致性,从而一面使高速暂存器继续操作一面随着正常的高速暂存器操作周期的继续进行慢慢地使数据存贮器重新复制。
2、权利要求1所说的高速暂存器,其中所述的存贮器进一步包括与目录存贮器和地址校验机构相连的命中译码电路机构,用来接收命中信号和第一、二两类地址错信号,所说的命中译码电路机构把第一、二类地址信号组合一起产生至少是一个复合的高速暂存器错误信号,以旁路因所述的存贮请求引起的在此之后的高速暂存器操作周期。
3、权利要求1所说的高速暂存器,其中所说的存贮器进一步包括用来接收和存贮信号的目录清除机构,这些信号代表在高速暂存器操作期间可能出现的一组不同的事件。
还包括一输出逻辑机构,该机构与所说的各级目录存贮器、可编程电路机构和目录清除机构相连,该输出逻辑机构要么响应来自目录清除机构的信号要么响应来自可编程控制电路机构的输出信号来刷新所说的目录存贮器,同时把每一级别存贮器中的存贮单元清0,从而使第一份地址作废。
4、权利要求3所述的高速暂存器,其中所说的一组事件包括操作超时、FIFO溢出周期和第三方总线错。
5、权利要求1所述的高速暂存器,其中所说的可编程控制电路包括:
·第一、二两个带有定时信号的可编程逻辑阵列(PLA)电路,第一个PLA电路用来接收代表不同类型的高速暂存器周期的信号並生成一组信号,这组信号指出由高速暂存器存贮器执行的高速暂存器周期类型;
所说的第二个PLA电路与第一个PLA电路配合,它产生一个输出信号用以指出当出现第一和第二类地址错时为了保持高速暂存器的一致性是否要刷新所说的目录存贮器。
6、权利要求5所述的高速暂存器,其中所说的不同类型的周期包括CPU读周期、目录分配周期、上锁用的空周期、更新周期和存贮器的后半总线周期。
7、权利要求1所说的高速暂存器,其中的存贮器进一步包括:
·与目录存贮器连接的去分配电路机构;
·与去分配电路机构连接的可编程控制电路机构,此机构用来接收指示不同类型的后半个总线操作周期和各种错误条件的信号,所说的可编程逻辑电路机构根据在予定类型的后半总线周期内发现的某些错误条件使所说的去分配电路机构把目录存贮器的存贮单元之一复位到无效状态,这项工作本来应该是在所说的后半总线周期内作为对所述的存贮请求进行初始化处理的一部分进行的,以便保持所述的高速暂存器的一致性。
8、一个多重处理系统,它包括被共同连到一个异步系统总线的若干处理子系统和一个主存,每一个处理子系统包括一个高速暂存器,供处理器高速地存取一致的主存数据以响应由所说的处理系统送到这个系统总线上的存贮器请求,每个存贮器请求包含由所述的处理子系统之一产生的属于高速暂存器暂存器地址的第一、二两份地址。所说的高速暂存器包括:
·第一段,这一段包括:
··用来接收每个请求的一个输入寄存器;
··由若干级别组成的一个目录存贮器,每一级别包含一组存贮单元,每个单元用来存贮一个存贮读请求的第一份地址,这个读请求是由与此有关的许多处理器之一产生的。目录存贮器级别中各组单元由所述的第二份地址来定义,所述的目录存贮器包括产生一组命中信号和第一组错误信号的机构,命中信号用来指示所存贮的第一份地址和该请求的第一份地址之间的比较相等,所说的错误信号指出发现了第一类地址故障。
··与所述的输入寄存器相连的地址校验机构,该机构用来产生第二组地址错信号,用以指明发现了第二类地址故障;
··与所说的目录存贮器连接的第一个可编程控制电路机构,用来接收表示不同类型高速暂存器周期的信号,这些周期由高速暂存器响应所说的请求而执行;
·第二段高速暂存器包括:
··由与所述的目录存贮器同样多的级别和存贮单元组成的一个数据存贮器,数据存贮器各个级别中的各组单元由所述的第二份地址之一来定义;
··与目录存贮器和第一个可编程电路机构连接的第二个可编程电路机构,此机构响应来自第一个可编程电路机构的信号以产生一组输出信号,这组输出信号指出:根据在第二段操作期间的第一、二两类的地址错信号特点,应当在什么样的周期去刷新所述的目录存贮器,以保持高速暂存器的一致性,使得一面使高速暂存器继续工作,一面在随后的正常周期内(此周期内,所说的机构产生比较不等的信号)慢慢地重新恢复所述的数据。
9、权利要求8所述的高速暂存器,其中所说的第二段进一步包括与目录存贮器和地址校验机构连接的命中译码电路机构,地址校验机构用来接收命中信号和第一、二类地址错信号,所说的命中译码电路机构把第一、二地址信号组合起来用以产生至少是一个复合的高速暂存器错误信号,用来旁路因所述的存贮请求引起的高速暂存器操作周期之后的周期。
10、权利要求8所述的高速暂存器,其中所说的第一段进一步包括目录清除机构,用以接收和存贮代表一组不同的系统事件的信号,这些事件可能在所述的高速暂存器的操作过程中发生;
还包括与所述的目录存贮器的每一级、与可编程电路机构和目录清除机构相连接的输出逻辑机构,该机构响应来自目录清除机构的信号或来自第二个可编程控制电路机构的输出信号来刷新目录存贮器,与此同时,把各个级别中的存贮单元复位,因而使所说的第一份地址失效。
11、权利要求10所述的高速暂存器,其中所说的一组事件包括操作超时、FIFO溢出周期和第三方总线错。
12、权利要求8所说的高速暂存器,其中所说的第一和第二可编程控制电路机构分别包括:
第一、二两个时钟同步的可编程逻辑阵列(PLA)电路,第一个PLA电路的用途是接收代表着不同类型高速暂存器周期和定时信号的那些信号,此定时信号规定第一段操作的时间间隔,所说的第一个PLA电路产生一组用以指示由所述的高速暂存器所执行的那个高速暂存器周期类型的信号;和
与第一个PLA电路连接的第二个PLA电路,用来接收确定有关第二阶段操作的随后的时间间隔长短的定时信号,这第二个PLA电路生成许多输出信号,用以指出当出现第一、二两类地址错信号时要否在随后的时间间隔内刷新这个目录存贮器,以便既保持高速暂存器的一致性又保持它的高性能。
13、权利要求12所说的高速暂存器,其中的不同类型的周期包括CPU读周期、目录分配周期、上锁用空周期、更新周期和存贮器的后半总线周期。
14、权利要求8所说的高速暂存器,其中所说的第一段进一步包括:
·与所述的目录存贮器相连的去分配电路机构和
·与去分配电路机构连接的第三个可编程控制电路机构,此机构用来接收代表不同类型的第二个总线操作周期的信号和表示出现了不同类型错误条件的信号,这第三个可编程控制电路机构根据在予定的那些后半总线周期内发现的某些错误条件,使去分配电路机构把目录存贮器之存贮单元之一恢复到无效状态,这项操作本来要作为对所述的存贮器请求进行初始处理之组成部分在后半总线周期内进行的,这样就保持了高速暂存器的一致性。
15、一个多重处理系统,它包括一组数荽碜酉低澈椭辽僖桓鲋鞔孀酉低常嵌急唤拥揭桓龉驳囊觳较低匙芟撸扛鍪荽碜酉低嘲ㄒ蛔榇聿考⒁桓鲇胨档南低匙芟呦嗔拥腇IFO缓冲器子系统和一个与所说的处理部件及FIFO缓冲器子系统连接的管道式的高速暂存器子系统,每个处理部件的作用是向所说的高速暂存器子系统产生要数据的存贮请求,FIFO子系统的作用是对高速暂存器子系统产生要替换和更新高速暂存器中之数据的请求,每个请求有一个地址,所说的高速暂存器子系统包括:
·用于在一个予定的时间片间隔内从所述的处理器子系统之一选择一个请求地址的输入选择机构;
·与所述的输入选择机构连接的第一个管道型的高速暂存器段,它又包括以下设施:
··用以接收所说请求的输入寄存器;
··由包含若干存贮单元的多级目录存贮器,每个存贮单元用来存贮内存读请求的第一份地址,内存读请求由与此有关的若干处理部件之一产生,所说的目录存贮器的各个级别中的一组单元由所说的第二份地址之一确定,所说的目录存贮器包括产生一组命中信号和第一组错误信号的机构,命中信号表示存放着的第一份地址与所说请求的第二份地址比较相等,上述的错误信号指示发现了第一种地址故障;
··与所述的输入寄存器相连的地址校验机构,此机构用于产生第二组地址错信号以指出发现了第二类地址故障;
··与所说的目录存贮器相连的第一个可编程控制电路机构,用以接收代表由高速暂存器为响应所说的请求而执行的各种高速暂存器周期的信号;
·第二高速暂存器管道段,它包括:
··由与所述的目录存贮器同样多的级别和存贮单元组成的一个数据存贮器,数据存贮器各个各别中的一组单元由所述的第二份地址之一来确定;
··与目录存贮器和第一个可编程电路机构连接的第二个可编程电路机构,此机构响应来自第一个可编程电路机构的信号以产生一组输出信号,这组输出信号指明:根据在第二段操作期间的第一、二两类地址错信号的特点,应当在哪个周期内去刷新所述的目录存贮器,以保持高速暂存器的一致性,使得一面使高速暂存器往下操作,一面在随后的正常周期内(在此周期内所说的机构产生比较不等的信号)慢慢地重新恢复所述的数据。
16、权利要求15所述的高速暂存器,其中所说的第二段进一步包括与目录存贮器和地址校验机构连接的命中译码电路机构,地址校验机构用来接收命中信号和第一、二类地址错信号,命中译码电路机构把第一、二两个地址信号进行组合以产生至少一个复合的高速暂存器出错信号,这个信号用来旁路因所述的存贮请求引起的高速暂存器操作周期之后的周期。
17、权利要求15所述的高速暂存器,其中所说的第一段进一步包括目录清除机构,用以接收和存贮代表一组不同的系统事件的信号,这些事件可能会在所说的高速暂存器的操作过程中发生;
还包括与所述的目录存贮器的每一级别、可编程电路机构和目录清除机构相连接的输出逻辑机构,该机构响应来自目录清除机构的信号或来自第二个可编程控制电路机构的输出信号来刷新目录存贮器,与此同时,把各个级别中的存贮单元复位,从而使所说的第一份地址作废。
18、权利要求17所述的高速暂存器,其中所说的一组事件包括操作超时、FIFO溢出周期和第三方总线错。
19、权利要求15所述的高速暂存器,其中所说的第一、二两个可编程控制电路机构分别包括:
·第一和第二用时钟同步的可编程逻辑阵列(PLA)电路,第一个PLA电路的用途是接收代表着不同类型高速暂存器周期的定时信号的那些信号,此定时信号规定第一段操作的时间片间隔,所说的谝桓鯬LA电路产生一组用以指示由所述的高速暂存器所执行的那个高速暂存器周期类型的信号;和
·与第一个PLA电路连接的第二个PLA电路,用来接收确定有关第二段操作的在此之后的时间片大小的定时信号。第二个PLA电路生成许多输出信号,用以指出当出现第一、二类地址错信号时要否在随后的时间片内刷新这个目录存贮器,以便既保持高速暂存器的一致性又保持其高性能。
20、权利要求19所述的高速暂存器,其中所说的不同类型的周期包括CPU读周期、目录分配周期、上锁用空周期、更新周期和存贮器的后半总线周期。
21、权利要求15所述的高速暂存器,其中所说的第一段进一步包括:
·与所述的目录存贮器相连的去分配电路机构和
·与去分配电路机构连接的第三个可编程控制电路机构,此机构用来接收代表不同类型的第二个总线操作周期的信号和表示出现了不同类型错误条件的信号,所说的第三个可编程控制电路机构根据在予定的那些后半总线周期内发现的某些错误条件,使去分配电路机构把目录存贮器之存贮单元之一恢复到无效状态,这项操作是在予定作为对所述的存贮器请求进行初始处理之一部分在后半总线周期内进行的,这就保持了高速暂存器的一致性。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/055,577 US4833601A (en) | 1987-05-28 | 1987-05-28 | Cache resiliency in processing a variety of address faults |
US055577 | 1987-05-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1031142A true CN1031142A (zh) | 1989-02-15 |
CN1012855B CN1012855B (zh) | 1991-06-12 |
Family
ID=21998780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN88103177A Expired CN1012855B (zh) | 1987-05-28 | 1988-05-28 | 在处理各种地址故障中的高速暂存器的抗错能力 |
Country Status (13)
Country | Link |
---|---|
US (1) | US4833601A (zh) |
EP (1) | EP0300166B1 (zh) |
JP (1) | JPS644847A (zh) |
KR (1) | KR920007276B1 (zh) |
CN (1) | CN1012855B (zh) |
AU (1) | AU608848B2 (zh) |
CA (1) | CA1311303C (zh) |
DE (1) | DE3854368T2 (zh) |
DK (1) | DK288488A (zh) |
ES (1) | ES2076149T3 (zh) |
FI (1) | FI882455A (zh) |
NO (1) | NO172267C (zh) |
YU (1) | YU103388A (zh) |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5123103A (en) * | 1986-10-17 | 1992-06-16 | Hitachi, Ltd. | Method and system of retrieving program specification and linking the specification by concept to retrieval request for reusing program parts |
US5029070A (en) * | 1988-08-25 | 1991-07-02 | Edge Computer Corporation | Coherent cache structures and methods |
US4928225A (en) * | 1988-08-25 | 1990-05-22 | Edgcore Technology, Inc. | Coherent cache structures and methods |
US5018063A (en) * | 1988-12-05 | 1991-05-21 | International Business Machines Corporation | Method for reducing cross-interrogate delays in a multiprocessor system |
US5537640A (en) * | 1988-12-30 | 1996-07-16 | Intel Corporation | Asynchronous modular bus architecture with cache consistency |
US6038641A (en) * | 1988-12-30 | 2000-03-14 | Packard Bell Nec | Two stage cache memory system and method |
US5095428A (en) * | 1989-01-04 | 1992-03-10 | Compaq Computer Corporation | Cache flush request circuit flushes the cache if input/output space write operation and circuit board response are occurring concurrently |
US4967414A (en) * | 1989-01-06 | 1990-10-30 | International Business Machines Corp. | LRU error detection using the collection of read and written LRU bits |
US5060136A (en) * | 1989-01-06 | 1991-10-22 | International Business Machines Corp. | Four-way associative cache with dlat and separately addressable arrays used for updating certain bits without reading them out first |
US5097532A (en) * | 1989-03-03 | 1992-03-17 | Compaq Computer Corporation | Circuit for enabling a cache using a flush input to circumvent a late noncachable address input |
US5060144A (en) * | 1989-03-16 | 1991-10-22 | Unisys Corporation | Locking control with validity status indication for a multi-host processor system that utilizes a record lock processor and a cache memory for each host processor |
US5241681A (en) * | 1989-11-03 | 1993-08-31 | Compaq Computer Corporation | Computer system having an internal cach microprocessor slowdown circuit providing an external address signal |
US5012408A (en) * | 1990-03-15 | 1991-04-30 | Digital Equipment Corporation | Memory array addressing system for computer systems with multiple memory arrays |
US5249284A (en) * | 1990-06-04 | 1993-09-28 | Ncr Corporation | Method and system for maintaining data coherency between main and cache memories |
EP0468831B1 (en) * | 1990-06-29 | 1997-10-15 | Digital Equipment Corporation | Bus protocol for write-back cache processor |
US5249283A (en) * | 1990-12-24 | 1993-09-28 | Ncr Corporation | Cache coherency method and apparatus for a multiple path interconnection network |
US5339322A (en) * | 1991-03-29 | 1994-08-16 | Sgs-Thomson Microelectronics, Inc. | Cache tag parity detect circuit |
US5371872A (en) * | 1991-10-28 | 1994-12-06 | International Business Machines Corporation | Method and apparatus for controlling operation of a cache memory during an interrupt |
US5331673A (en) * | 1992-03-30 | 1994-07-19 | International Business Machines Corporation | Integrity of data objects used to maintain state information for shared data at a local complex |
US5821940A (en) * | 1992-08-03 | 1998-10-13 | Ball Corporation | Computer graphics vertex index cache system for polygons |
US5355471A (en) * | 1992-08-14 | 1994-10-11 | Pyramid Technology Corporation | Multiprocessor cache coherency tester that exercises the coherency logic exhaustively and also detects errors in a processor using an automatic CPU sort |
JPH0756815A (ja) * | 1993-07-28 | 1995-03-03 | Internatl Business Mach Corp <Ibm> | キャッシュ動作方法及びキャッシュ |
EP0675436B1 (en) * | 1994-03-31 | 1999-10-27 | STMicroelectronics, Inc. | Recoverable set associative cache |
GB2302190B (en) * | 1994-05-09 | 1999-01-06 | Secr Defence | Data cache |
GB9409148D0 (en) * | 1994-05-09 | 1994-06-29 | Secr Defence | Data cache |
US5898856A (en) | 1995-09-15 | 1999-04-27 | Intel Corporation | Method and apparatus for automatically detecting a selected cache type |
US5893149A (en) * | 1996-07-01 | 1999-04-06 | Sun Microsystems, Inc. | Flushing of cache memory in a computer system |
US6532468B2 (en) * | 1997-12-25 | 2003-03-11 | Kawasaki Microelectronics, Inc. | Binary data search method for selecting from among candidate data, and apparatus therefor |
US6405322B1 (en) * | 1999-04-13 | 2002-06-11 | Hewlett-Packard Company | System and method for recovery from address errors |
US6618048B1 (en) | 1999-10-28 | 2003-09-09 | Nintendo Co., Ltd. | 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components |
US6622267B1 (en) * | 1999-12-08 | 2003-09-16 | Intel Corporation | Method and apparatus for detecting multi-hit errors in cache |
US7119813B1 (en) | 2000-06-02 | 2006-10-10 | Nintendo Co., Ltd. | Variable bit field encoding |
US7184059B1 (en) | 2000-08-23 | 2007-02-27 | Nintendo Co., Ltd. | Graphics system with copy out conversions between embedded frame buffer and main memory |
US6937245B1 (en) | 2000-08-23 | 2005-08-30 | Nintendo Co., Ltd. | Graphics system with embedded frame buffer having reconfigurable pixel formats |
US6980218B1 (en) | 2000-08-23 | 2005-12-27 | Nintendo Co., Ltd. | Method and apparatus for efficient generation of texture coordinate displacements for implementing emboss-style bump mapping in a graphics rendering system |
US7002591B1 (en) | 2000-08-23 | 2006-02-21 | Nintendo Co., Ltd. | Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system |
US6700586B1 (en) | 2000-08-23 | 2004-03-02 | Nintendo Co., Ltd. | Low cost graphics with stitching processing hardware support for skeletal animation |
US6811489B1 (en) | 2000-08-23 | 2004-11-02 | Nintendo Co., Ltd. | Controller interface for a graphics system |
US6867781B1 (en) | 2000-08-23 | 2005-03-15 | Nintendo Co., Ltd. | Graphics pipeline token synchronization |
US6707458B1 (en) | 2000-08-23 | 2004-03-16 | Nintendo Co., Ltd. | Method and apparatus for texture tiling in a graphics system |
US7538772B1 (en) | 2000-08-23 | 2009-05-26 | Nintendo Co., Ltd. | Graphics processing system with enhanced memory controller |
US7061502B1 (en) | 2000-08-23 | 2006-06-13 | Nintendo Co., Ltd. | Method and apparatus for providing logical combination of N alpha operations within a graphics system |
US7034828B1 (en) | 2000-08-23 | 2006-04-25 | Nintendo Co., Ltd. | Recirculating shade tree blender for a graphics system |
US6636214B1 (en) | 2000-08-23 | 2003-10-21 | Nintendo Co., Ltd. | Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode |
US7576748B2 (en) * | 2000-11-28 | 2009-08-18 | Nintendo Co. Ltd. | Graphics system with embedded frame butter having reconfigurable pixel formats |
US6825851B1 (en) | 2000-08-23 | 2004-11-30 | Nintendo Co., Ltd. | Method and apparatus for environment-mapped bump-mapping in a graphics system |
US6895520B1 (en) | 2001-03-02 | 2005-05-17 | Advanced Micro Devices, Inc. | Performance and power optimization via block oriented performance measurement and control |
US6898679B2 (en) * | 2001-09-28 | 2005-05-24 | Intel Corporation | Method and apparatus for reordering memory requests for page coherency |
US6901532B2 (en) * | 2002-03-28 | 2005-05-31 | Honeywell International Inc. | System and method for recovering from radiation induced memory errors |
US10866854B2 (en) | 2015-12-29 | 2020-12-15 | Arteris, Inc. | System and method for reducing ECC overhead and memory access bandwidth |
US10031834B2 (en) | 2016-08-31 | 2018-07-24 | Microsoft Technology Licensing, Llc | Cache-based tracing for time travel debugging and analysis |
US10877839B2 (en) | 2017-09-22 | 2020-12-29 | Arteris, Inc. | Recovery of a coherent system in the presence of an uncorrectable error |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3820078A (en) * | 1972-10-05 | 1974-06-25 | Honeywell Inf Systems | Multi-level storage system having a buffer store with variable mapping modes |
US3979726A (en) * | 1974-04-10 | 1976-09-07 | Honeywell Information Systems, Inc. | Apparatus for selectively clearing a cache store in a processor having segmentation and paging |
JPS5355917A (en) * | 1976-10-29 | 1978-05-20 | Nec Corp | Buffer memory unit |
US4084236A (en) * | 1977-02-18 | 1978-04-11 | Honeywell Information Systems Inc. | Error detection and correction capability for a memory system |
US4471429A (en) * | 1979-12-14 | 1984-09-11 | Honeywell Information Systems, Inc. | Apparatus for cache clearing |
US4322795A (en) * | 1980-01-24 | 1982-03-30 | Honeywell Information Systems Inc. | Cache memory utilizing selective clearing and least recently used updating |
US4464717A (en) * | 1982-03-31 | 1984-08-07 | Honeywell Information Systems Inc. | Multilevel cache system with graceful degradation capability |
US4667288A (en) * | 1983-06-30 | 1987-05-19 | Honeywell Information Systems Inc. | Enable/disable control checking apparatus |
US4562536A (en) * | 1983-06-30 | 1985-12-31 | Honeywell Information Systems Inc. | Directory test error mode control apparatus |
JPS60235262A (ja) * | 1984-05-09 | 1985-11-21 | Nec Corp | バツフアメモリ障害制御装置 |
US4695943A (en) * | 1984-09-27 | 1987-09-22 | Honeywell Information Systems Inc. | Multiprocessor shared pipeline cache memory with split cycle and concurrent utilization |
US4768148A (en) * | 1986-06-27 | 1988-08-30 | Honeywell Bull Inc. | Read in process memory apparatus |
-
1987
- 1987-05-28 US US07/055,577 patent/US4833601A/en not_active Expired - Lifetime
-
1988
- 1988-05-19 AU AU16417/88A patent/AU608848B2/en not_active Ceased
- 1988-05-25 FI FI882455A patent/FI882455A/fi not_active Application Discontinuation
- 1988-05-26 DK DK288488A patent/DK288488A/da not_active Application Discontinuation
- 1988-05-26 NO NO882316A patent/NO172267C/no unknown
- 1988-05-27 JP JP63130042A patent/JPS644847A/ja active Granted
- 1988-05-27 ES ES88108502T patent/ES2076149T3/es not_active Expired - Lifetime
- 1988-05-27 CA CA000568034A patent/CA1311303C/en not_active Expired - Lifetime
- 1988-05-27 EP EP88108502A patent/EP0300166B1/en not_active Expired - Lifetime
- 1988-05-27 YU YU01033/88A patent/YU103388A/xx unknown
- 1988-05-27 DE DE3854368T patent/DE3854368T2/de not_active Expired - Fee Related
- 1988-05-28 CN CN88103177A patent/CN1012855B/zh not_active Expired
- 1988-05-28 KR KR1019880006358A patent/KR920007276B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
AU1641788A (en) | 1988-12-01 |
KR880014474A (ko) | 1988-12-24 |
CN1012855B (zh) | 1991-06-12 |
EP0300166A2 (en) | 1989-01-25 |
DK288488A (da) | 1988-11-29 |
JPS644847A (en) | 1989-01-10 |
DK288488D0 (da) | 1988-05-26 |
AU608848B2 (en) | 1991-04-18 |
FI882455A0 (fi) | 1988-05-25 |
JPH0583935B2 (zh) | 1993-11-30 |
CA1311303C (en) | 1992-12-08 |
US4833601A (en) | 1989-05-23 |
NO172267B (no) | 1993-03-15 |
DE3854368D1 (de) | 1995-10-05 |
DE3854368T2 (de) | 1996-05-09 |
NO882316D0 (no) | 1988-05-26 |
YU103388A (en) | 1990-12-31 |
EP0300166A3 (en) | 1991-01-09 |
NO172267C (no) | 1993-06-23 |
NO882316L (no) | 1988-11-29 |
ES2076149T3 (es) | 1995-11-01 |
EP0300166B1 (en) | 1995-08-30 |
FI882455A (fi) | 1988-11-29 |
KR920007276B1 (ko) | 1992-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1031142A (zh) | 在处理各种地址故障中的高速暂存器的抗错能力 | |
US6463532B1 (en) | System and method for effectuating distributed consensus among members of a processor set in a multiprocessor computing system through the use of shared storage resources | |
CN1094526A (zh) | 用于在多条总线之间传送信息的系统和方法 | |
US6851074B2 (en) | System and method for recovering from memory failures in computer systems | |
US5761413A (en) | Fault containment system for multiprocessor with shared memory | |
US20060101062A1 (en) | Distributed system with asynchronous execution systems and methods | |
US20120246116A1 (en) | System and method for data replication between heterogeneous databases | |
CN1815475A (zh) | 备份生成装置和恢复处理装置 | |
JPH036742A (ja) | フオールト・トレラント・データ処理システム | |
CN1434941A (zh) | 纠正软错误的固件机制 | |
CN104040515A (zh) | 在逻辑驱动器模型下呈现直接存取的存储设备 | |
US20140368513A1 (en) | Software Only Intra-Compute Unit Redundant Multithreading for GPUs | |
CN101563674A (zh) | 对来自多处理器系统上的多线程程序的存储器访问进行管理的方法和系统 | |
US20090019451A1 (en) | Order-relation analyzing apparatus, method, and computer program product thereof | |
CN1975684A (zh) | 一种支持边服务边恢复的分布式实时数据库故障恢复方法 | |
US12117908B2 (en) | Restoring persistent application data from non-volatile memory after a system crash or system reboot | |
US20160210228A1 (en) | Asynchronous garbage collection in a distributed database system | |
Liu et al. | Multiscale U‐Net with Spatial Positional Attention for Retinal Vessel Segmentation | |
Creemers et al. | HEp-2 cell pattern segmentation for the support of autoimmune disease diagnosis | |
US8732142B2 (en) | Generation of suggestions to correct data race errors | |
US5909574A (en) | Computing system with exception handler and method of handling exceptions in a computing system | |
US20140156975A1 (en) | Redundant Threading for Improved Reliability | |
US20060253662A1 (en) | Retry cancellation mechanism to enhance system performance | |
CN1755660A (zh) | 冗余处理器中的诊断存储器转储方法 | |
US20210240547A1 (en) | Method, apparatus, and electronic device for improving cpu performance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C13 | Decision | ||
GR02 | Examined patent application | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |