CN1268695A - 用于改进超高速缓存性能的输入/输出页面删除确定 - Google Patents
用于改进超高速缓存性能的输入/输出页面删除确定 Download PDFInfo
- Publication number
- CN1268695A CN1268695A CN00104383A CN00104383A CN1268695A CN 1268695 A CN1268695 A CN 1268695A CN 00104383 A CN00104383 A CN 00104383A CN 00104383 A CN00104383 A CN 00104383A CN 1268695 A CN1268695 A CN 1268695A
- Authority
- CN
- China
- Prior art keywords
- cache
- page
- state
- dma
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003860 storage Methods 0.000 title claims description 49
- 238000000034 method Methods 0.000 claims description 69
- 239000000872 buffer Substances 0.000 claims description 25
- 230000004048 modification Effects 0.000 claims description 20
- 238000012986 modification Methods 0.000 claims description 20
- 239000012536 storage buffer Substances 0.000 claims description 12
- 238000012544 monitoring process Methods 0.000 claims description 5
- 230000007246 mechanism Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims 5
- 238000012806 monitoring device Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 45
- 230000008859 change Effects 0.000 description 9
- 230000006399 behavior Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013404 process transfer Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- 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
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0835—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
- G06F13/4226—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with asynchronous protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0024—Peripheral component interconnect [PCI]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
Abstract
定义一个具有大尺寸(例如,4K字节)但带有特殊的高速缓存行特征的专用“I/O”页面。对于DMA读,PCI主桥路可以按可高速缓存的读访问该I/O页面的第一高速缓存行,而其它的所有行是按不可高速缓存地访问的(带有不高速缓存意图的DMA读)。对于DMA写,PCI主桥路按可高速缓存地访问所有的高速缓存行。通过把第一行定义成是高速缓存的,为了在PCI主桥路中使整页数据无效只需由L1/L2超高速缓存在系统总线上使一条高速缓存行无效。
Description
本发明一般地涉及数据处理系统,尤其涉及从主存储器和一个或更多的超高速缓冲存储器预取数据的处理系统。更具体地,本发明涉及改进直接存储器存取及超高速缓冲存储器的性能改进。
在现代微处理器系统中,随着技术不断改进处理器周期时间不断减小。此外,抽象执行、更深的流水线、更多的执行元件等的设计技术持续改进处理系统的性能。由于处理器需要更迅速地从存储器得到数据和指令,性能的改进对系统的存储器接口加上更重的负担。为了提高处理系统的性能,经常使用超高速缓冲存储器系统。
技术上周知采用超高速缓存的处理系统。超高速缓存是速度很高的存储器部件,其通过在最短的等待时间量下可使处理器(“CPU”)得到现用的程序和数据以提高数据处理系统的速度。采用大的片上超高速缓存(L1超高速缓存)以帮助减小存储器等待时间,并且L1超高速缓存常常通过更大的片外超高速缓存(L2超高速缓存)扩大。超高速缓存充当超高速缓存行数据的存储区。超高速缓存典型地划分成“行”,每个行具有相关的“标记”和属性位组。超高速缓存的各行含有主存储器数据的拷贝。例如,在超高速缓存中“4K页面”的数据可定义成由32行来自存储器的数据所组成,其中每行具有128个字节。
超高速缓存系统背后的主要优点是在快速的超高速缓存中保持最频繁访问的指令和数据,从而整个处理系统的平均存储器存取时间接近超高速缓存的访问时间。尽管超高速缓存的尺寸只是主存储器的很小的一部分,由于程序的“访问点”特性,在快速超高速缓存中可成功地找到大部分的存储器请求。该特性把存储器访问限制在存储器的一些局部区域(在本例下,L1和L2)中。
超高速缓存的基本操作是周知的。当处理器需要访问存储器时,检查超高速缓存。若在超高速缓存中找到处理器寻址的字时,则从快速的超高速缓存读该字。若未在超高速缓存中找到处理器寻址的字,则访问主存储器以读该字。接着把含有该被访问的字的一个字块从主存储器转移到超高速缓存中。以这种方式,把附加的数据转移到超高速缓存中(预取),从而对存储器的此后访问有可能在快速的超高速缓存中找到所要的字。
经常实施预取技术以事先向片上L1超高速缓存提供存储器数据以减少等待时间。理想地,足够提前地预取数据和指令从而当处理器需要时L1超高速缓存中总存在所需指令和数据的拷贝。技术上对指令和/或数据的预取是周知的。
在需要高的I/O直接存储器存取(DMA)性能的系统(例如,图形系统)中,典型地可按如下管理送往I/O的系统存储器数据:
1)系统处理器通过一系列的对系统存储器空间中的一组4K字节(4K)页面缓冲器的存储而生成数据。这使得在L1/L2超高速缓存中把数据标成“修改过的”(在超高速缓存中有效,不对系统存储器回写)。
2)处理器启动I/O部件以执行对这些生成的4K页面的DMA“读”。
3)I/O部件进行一系列的对系统存储器的读入。
4)以I/O部件名义执行DMA操作的PCI主桥路预取并且高速缓存“共享”(在超高速缓存中有效,在系统存储器中有效)状态下的数据。当PCI主桥路读数据时L1/L2把各数据超高速缓存行从“修改过的”状态改变到“共享”状态(即,L1/L2介入并一起把数据直接提供给或“推到”可对该数据的存储器中)。
5)当DMA部件结束时,可重新使用4K缓冲器组(即,软件具有一组固定的通过其中流通数据的缓冲器)。
为了保持DMA I/O性能,PCI主桥路可包含它自己的超高速缓存,以用于预取/高速缓存共享状态下的数据。这允许把DMA数据移近数据使用者(例如,I/O部件)以使DMA“读”的性能最高。当PCI主桥路在系统总线上发布可高速缓存的读时,由于PCI主桥路执行可高速缓存的读使得L1/L2从“修改过的”状态变到“共享的”状态。当软件希望重新使用该4K页面的超高速缓存空间以存储新的DMA数据时,由于L1/L2超高速缓存中的每行已变成“共享”状态,该状态改变行为会产生性能上的损失。为了进行新的存储,L1/L2必须对每行执行一个系统总线命令以表明行已从“共享的”转到“修改过的”。必须对4K页面中的每个高速缓存行(共有32行)这样做,即使其旧数据没有用(PCI主桥路需要该数据现在是无效的指示)。在新的存储可被执行前必须在系统总线上完成这些附加的存储器相容性业务即这32个系统总线命令以改变所有这些超高速缓存行的状态,会明显地降低处理器性能。
已经显示,和“已修改过的”状态下相比,当L1/L2超高速缓存处于“共享的”状态下时处理器存储4K页面可能需要的时间要长4-5倍。这是因为需要附加的相容性业务以把每条高速缓存行的状态改变成“修改过的”。
从而需要提供一种提高直接存储器存取部件的速度和效率的方法和设备。还需要提供一种减少改变L1/L2超高速缓存中的数据页面的状态所需要的系统总线命令的数量的方法和设备。
从而本发明的一个目的是提供一种减少改变L1/L2超高速缓存中缓冲器的状态时所需要的系统总线命令的数量的方法和设备。
本发明的另一个目的是提供一种提高直接存储器存取部件的速度和效率的方法和设备。
本发明的再一个目的是提供一种允许超高速缓存用一次总线操作清除存储器缓冲器的方法和设备。
现说明如何达到上述目的。定义一个具有大尺寸(例如,4K字节)但带有特殊的高速缓存行特征的专用“I/O”页面。对于DMA读,PCI主桥路可以按可高速缓存的读来访问该I/O页面的第一高速缓存行,而其它的所有行是可按不可高速缓存地访问的(带有不高速缓存意图的DMA读)。对于DMA写,PCI主桥路按可高速缓存地访问所有的高速缓存行。PCI主桥路保持尺寸为该I/O页面的数据的高速缓存监听颗粒性,这意味着若主桥路检测到I/O页面内的任何高速缓存行上的存储型(无效型)系统总线操作,该页面内的已高速缓存的数据被转为无效(L1/L2继续把该页面中的所有高速缓存行对待成是可高速缓存的)。通过把第一行定义成是可高速缓存的,为了在PCI主桥路上使整页数据无效只需由L1/L2超高速缓存在系统总线上使一条高速缓存行无效。可以直接在L1/L2超高速缓存中无需系统总线操作下出现对该I/O页面中的其它高速缓存行的全部存储,因为这些行在L1/L2超高速缓存中保持着“修改过的”状态。
在下述详细书面说明中本发明的上述以及其它目的、特点和优点将变为清楚。
在附属权利要求书中叙述本发明的确信为新颖性的特性。然而,通过在连带附图下阅读下述对一个示范实施例的详细说明会最好地理解本发明本身以及优选的使用方式、它的其它目的及优点,附图中:
图1描述可在其中实现本发明的优选实施例的数据处理系统的高层方块图;
图2A是用于依据本发明的优选实施例使用专用DMA I/O页面的方法的高层流程图;
图2B描述用于依据本发明的优选实施例重新使用专用DMA I/O页面的方法的高层流程图;
图3是依据本发明的优选实施例的为执行处理器存储的L1/L2相关性处理的流程图;
图4是依据本发明的优选实施例的使用专用DMA I/O页面的方法的高层流程图,其中PCI主桥路可服务于DMA请求;以及
图5是依据本发明的优选实施例的使用专用DMA I/O页面的方法的一部分的高层流程图,其中PCI主桥路可监听系统总线相关性。
现参照附图,具体参照图1,其中描述依据本发明的一种优选实施例的多处理器数据处理系统。数据处理系统100是一个多处理机(SMP)系统102(只示出一个),其最好由可从纽约州Arwonk市的国际商用机器公司购得的PowerPCTM系列中的一种构成。尽管在该示范实施例中只描绘了一个处理器,业内人士会理解在依据本发明的多处理器数据处理系统中可采用更多的处理器。
处理器102包括层一(L1)超高速缓存104。为了使数据存取等待时间最小,可在数据处理系统100中实现附加的一层或多层超高速缓存,例如层二(L2)超高速缓存106。该较低的超高速缓存层L2用于对至L1超高速缓存的数据进行分级,并且通常具有逐级增大的存储能力但访问等待时间更长。例如,L1超高速缓存104具有32KB的存储容量和约为1-2个处理器周期的访问等待时间。L2超高速缓存106可具有512 KB的存储容量但访问等待时间为5个处理器周期。L2超高速缓存106充当处理器102和系统存储器110之间的中间存储,系统存储器110通常具有大得多的存储容量但可能具有大于50个处理器周期的访问等待时间。
数据处理系统100中所采用的超高速缓存体系中的层次和超高速缓配置都是可变的。L2超高速缓存106是连接在CPU 102和系统存储器110之间(通过系统总线112)的专用超高速缓存。业内人士可意识到对所描述的层次和配置可实现各种变更。
L2超高速缓存106通过系统总线112和系统存储器110连接。存储器控制器114和PCI主桥路108也和系统总线112连接。存储器控制器114调节对系统存储器110的存取。可以在系统存储器110中由DMA存储器124使用的缓冲器区(例如,DMA存储器124可以是系统存储器110的空间中的一组4K的页面缓冲器)内组织软件。PCI主桥路108把系统总线112连接到PCI总线116,PCI总线116提供对I/O部件的连接,I/O部件诸如是向显示器(未示出)提供连接的图形适配器、I/O部件118和120。系统总线112、PCI主桥路108和PCI总线116从而形成和附着部件连接的互连,技术上对该互连的备择实现是周知的。
输入/输出(I/O)子系统通常由I/O总线116,例如外围部件互连(PCI)总线,构成,若干I/O部件118、120以及PCI主桥路(PC IHB)108附着在该I/O总线116上。I/O总线116用于经过PCIHB 108把一个或多个I/O部件连接到系统总线112上并且允许I/O部件118、120经过PCIHB 108对/从系统存储器110传送命令和数据。
当处理器102希望访问I/O部件118、120时PCIHB 108可把处理器命令从系统总线112传送到I/O总线116。此外,PCIHB 108还可把I/O部件118、120启动的直接存储器存取(DMA)从I/O总线116传送到系统存储器110。对于DMA访问,PCIHB 108可预取并高速缓存数据以帮助改进DMA性能。在发布访问系统存储器110的系统总线命令上和在保持L1/L2超高速缓存104、106以及它自己的超高速缓存109之间的相关性上,PCIHB 108的行为非常类似于系统总线112上的处理器102。
I/O主部件是一个可在I/O总线116上启动经PCIHB 108数据从系统存储器110传送到某个别的位置(并且反向亦然)的DMA的部件。在该方块图中,I/O部件120代表一个能对和从系统存储器110传送数据的I/O主部件。这些类型的传输可在无须处理器102的干预下进行。
I/O部件118、120可包括常规的外围设备,其中包括诸如鼠标或轨迹球的图形指点器、显示器和指针,它们都可通过常规适配器和PCI总线116接口。非易失性存储器112可包括硬盘机并存储操作系统和别的用于控制系统100操作的软件,响应对系统100的通电它们被装入到易失性系统存储器110中。业内人士可意识到数据系统100可包括许多图1中未示出的其它部件,诸如串行和并行端口、对网络或各附属部件的连接等。这样的修改和变型在本发明的精神和范围之内。
在DMA缓冲器124内,例如可把数据存储到由32行数据每行为128字节组成的4K页面缓冲器130和132中。在L1/L2超高速缓存102、104可执行来自处理器102的对L1/L2超高速缓存中某处于共享状态下的行的存储前,需要一次独立的系统总线操作,以便通知其它超高速缓存使每个超高速缓存的拷贝无效。由于要对每条高速缓存行进行这样的操作并由于反复地清除一页面缓冲器以便为新数据准备空间的总线操作的次数,处理器速度放慢。本发明设置一个4K页面缓冲器(I/O),从而可以在一次总线操作下而不是32次总线操作下清除缓冲器。
传统的4K页面缓冲器由缓冲器130、132代表。来自本发明的4KI/O页面缓冲器由缓冲器134、136代表。缓冲器内的数据行用缓冲器内的框表示,并且框内的截面线表示共享状态。在缓冲器130中当完成DMA访问后所有的高速缓存行是共享的,这要求在清除该缓冲器之间对每条高速缓存行(32行)进行单独的系统总线操作。各缓冲器132高速缓存行示成是修改过的,这允许向缓冲器132写数据。根据本发明的要求,在完成DMA存取后,I/O缓冲器134的第一高速缓存行处于共享状态而其余的行处于修改过的状态。I/O缓冲器136中的所有高速缓存行处于修改过的状态。和把缓冲器的相关性状态转换成缓冲器132的相关性状态不同,把缓冲器134的相关性状态转换成缓冲器136的相关性状态只需要改变I/O缓冲器134中的第一行,便可允许向I/O缓冲器134存储数据。相对比,转换I/O页面缓冲器状态(只需改变一行)所需的时间大大短于清除传统缓冲器(为改变状态它需要改变32行)的时间。
参照图2A,其中示出依据本发明的一种优选实施例采用专用DMAI/O页面的方法的高层流程图。该过程开始于步骤202,它描述某个应用软件获取一个当前未使用的4K I/O页面以建立供PCI I/O部件以后读的数据。接着该过程进入步骤204,其中表示该应用软件实现一系列的对该4K I/O页面的存储,而且至少一次存储是对该4K I/O页面中的第一高速缓存行。该过程接着进入步骤206,其描述该应用软件启动某DMA部件以经过PCI主桥路执行该4K I/O页面的DMA读,其中至少一次读是对该4K I/O页面中的第一高速缓存行的。过程接着进入步骤208,其表示判定该应用软件是否具有还要发送的数据。若没有,结束该过程。若存在等发送的数据,该过程转而返回到步骤202,其中该应用软件获得一个未使用的4K I/O页面缓冲器。
现参照图2B,其描述依据本发明的一种优选实施例的重新使用专用DMA I/O页面的方法的高层流程图。该过程开始于步骤222,其描述判定某I/O部件是否已完成来自I/O页面缓冲器的DMA读。若没有,过程返回步骤222并重复该步骤。若I/O部件完成来自I/O页面缓冲器的DMA读,该过程转为进入步骤224,其表示软件把I/O页面缓冲器标记成“准备好由应用软件重新使用”。接着该过程返回步骤222并且判定某I/O部件是否完成对I/O页面缓冲器的DMA读。
参照图3,图中示出依据本发明的一种优选实施例的用于进行处理器存储的L1/L2相关性处理的高层流程图。该过程开始于步骤300,其描述开始该过程。过程接着进入步骤302,以判定处理器是否想执行存储操作。若不,过程返回步骤302并重复该步骤。若处理器试图执行存储操作,该过程转而进入步骤304,其说明在允许完成存储前L1/L2超高速缓存检查L1/L2超高速缓存的状态。然后过程进入步骤306,其中判定L1/L2高速缓存行状态是否是“无效的”。若高速缓存是“无效的”,过程进入步骤308,其中发出在系统总线上执行“带有修改意图的读”操作的指令以读取该速高速缓存行的拷贝并使该行为“修改过的”状态。然后过程进入步骤318,其表示在L1/L2超高速缓存中执行了处理器的存储指令。
回到步骤306,若L1/L2高速缓存行的状态不是“无效的”,该过程进入步骤310,以判定该L1/L2高速缓存行的状态是否为“共享的”。若该高速缓存行为“共享的”,过程进入步骤312,其中为了得到该行的所有权并把该行改变到“修改过的”状态在系统总线上执行“数据要求”操作。然后过程进入步骤318,其中在L1/L2高速缓存中执行器存储操作。若L1/L2高速缓存行的状态不是“共享的”,过程进入步骤314,以判定L1/L2高速缓存行的状态是否是“修改过的”。若该高速缓存行不是修改过的,则示出出错报文,因为只假定存在3种L1/L2高速缓存行状态。
回到步骤314,若L1/L2高速缓存行的状态是共享的,过程转而进入步骤318,其表示在L1/L2超高速缓存中执行了处理器存储。该过程接着转入步骤302,其表示处理器试图执行另一次存储。
参照图4,其示出PCI主桥路可依据本发明的一种优选实施例为DMA请求提供服务时使用专用的DMA I/O页面的方法的高层流程图。该过程开始于指定I/O页面缓冲器的步骤400。接着进入步骤402,以判定某I/O部件是否试图执行DMA读。若不是,过程返回步骤402,并重复直至确定出DMA读。若I/O部件试图执行DMA读,过程转而进入步骤404,其中PCI主桥路检查主桥路超高速缓存中的各行的状态。接着过程进入步骤406,以判定主桥路超高速缓存是否处于“无效”状态。若该超高速缓存处于“无效”状态,该过程进入步骤408,其中判定该对I/O页面的DMA读是读I/O页面的第一高速缓存行还是读常规的I/O缓冲器(非I/O页面)。若该读是读I/O页面的第一高速缓存行或是读常规I/O缓冲器中的任一高速缓存行,该过程进入步骤412,其中表示执行“读”系统总线操作以检索该行的共享拷贝。L1/L2超高速缓存被强制把该行的状态从“修改过的”改变到“共享的”。然后过程进入步骤418,其中描述PCI主桥路向该I/O部件发送DMA读。
返回到步骤408,若是对I/O页面的读但不是对该页面中的第一高速缓存行的读,过程转而进入步骤410,其中示出“带有超高速缓存意图的读”的系统总线操作以检索该行的共享拷贝并且L1/L2超高速缓存可把该高速缓存行保持在“修改过的”状态下。接着该过程进入步骤418,其中PCI主桥路向该I/O部件发送DMA读数据。
现回到步骤406,若PCI主桥路超高速缓存不处于“无效”状态,过程转而进入步骤414,以判定该L1/L2高速缓存行是否处于“共享”状态。若该高速缓存行不处于“共享”状态,过程进入步骤416,其中示出出错报文,因为假定只存在二种PCI主桥路高速缓存行状态。并回到步骤414,若该L1/L2高速缓存行处于共享状态,该过程进入步骤418,其中示出PCI主桥路向I/O部件发送DMA读数据。该过程在步骤402继续,其中示出某I/O部件试图执行对某I/O页面的DMA读。
为了管理“I/O页面”的相关性,在可使用4K“I/O页面”之前,PCI主桥路被触发以通过存储某4K“I/O页面”的第一高速缓存行使该I/O页面无效。在DMA读下,PCI主桥路把第一高速缓存行对待成是专用的,因为该第一行被设计成看起来是可对L1/L2高速缓存器高速缓存读的。L1/L2超高速缓存进行系统总线相关性访问,以表示处理器把第一高速缓存行从“共享的”改变到“修改过的”意图。PCI主桥路监听4K页面的颗粒性(尺寸),从而当出现对某4K页面的第一高速缓存行的存储时,PCI主桥路将使整页无效,避免了为使该4K页面中的每条高速缓存行无效所需的全部系统总线业务。
现参照图5,其描述依据本发明一种优选实施例的利用专用DMAI/O页面的方法中的使I/O页面无效部分的高层流程图,其中PCI主桥路可监听系统总线的相关性。该过程开始于步骤500,以便开始无效处理。过程接着进入步骤502,以判定L1/L2超高速缓存是否试图执行会改变被PCI主桥路标记成“共享的”的某被命中的4K I/O页面的某L1/L2高速缓存行的状态的系统总线操作。若不是,过程进入步骤504,其中PCI主桥中不采取任何动作。该过程在步骤502继续并且重复。回到步骤502,若L1/L2超高速缓存试图执行会改变某L1/L2高速缓存行状态的系统总线操作,该过程能转而进入步骤506,其中示出由于所涉及的页面被标记为“共享的”,PCI主桥路在PCI主桥路高速缓存器中使该4K页面(例如,I/O页面)的数据无效。
通过只把4K I/O页面中的第一高速缓存行定义成可高速缓存读的,当试图重新使用该4K缓冲器时L1超高速缓存会使除第一高速缓存行之外的所有行保持为“修改的”。当执行DMA时,只有第一行处于“共享的”。无论何时软件要重新使用某页面时它会存储该I/O页面中的第一高速缓存行,从而PCI主桥路会知道应使该页面无效。对某I/O页面的第一高速缓存行的DMA读或DMA写会使L1/L2把该第一高速缓存行从“修改过的”改变到“共享的”。
如本发明的优选实施例那样定义的该I/O页面在通过对旧的可重新使用的4K I/O页面存储而创造新的4K页面时大大改进了处理器的性能,因为对某4K页面第一高速缓存行的存储只需要单次系统总线事务处理就可把L1/L2从“共享的”状态转换到“修改过的”状态。I/O页面中的所有其它的高速缓存行在该L1/L2中保持“修改过的”状态,从而处理器对这些高速缓存行的存储可以直接在L1/L2超高速缓存中进行,不再需要系统总线相关性业务。
本发明可应用于其中由不同的装置访问存储器页面的系统。可以为在PCI主桥路中采用转换控制条目(TCE)表的系统设置本发明的另一种实施例。通常在PCI主桥路中设置一个TCE表,用于在设定的限值,例如四吉字节(GB),之上存取系统存储器。在这样的系统,TCE条目本身可充当触发机制以替代4K I/O页面中第一高速缓存行的使用。在这种情况下,PCI主桥路可按“不带高速缓存意图的读”执行所有的读(不再对待成专用的),并且每次要重新使用某页面时程序逻辑通过对已用于DMA读的TCE条目进行存储而使该页面的失效(即,如果用于取该数据的TCE已修改过的话PCI主桥路使某4K页面内它取过的数据无效)。在这种I/O页面实施例中,系统总线业务量大大减少。
重要的是要注意到,尽管本发明是在一个功能完整的部件的环境下说明的,业内人士明白本发明的机理和/或其中的方面是可以用各种形式下的指令的计算机的可用介质形式散发,并且和实际中实现这种散发所采用的信号传播介质的特定类型无关而被等同地应用本发明。计算机可用介质包括:非易失硬代码型介质如只读存储器(ROM)或可擦电子可编程只读存储器(EEPROM),可记录型介质如软盘、硬盘机和CD-ROM,以及传输型介质如数字和模拟通信链路。
虽然参照一种优选实施例具体地示出和说明本发明,业内人士理解,在不背离本发明的实质和范围下在形式上和细节上可对其做出各种改变。
Claims (21)
1.一种改进直接存储器存取和超高速缓存的性能的方法,包括步骤:
定义一个存储器缓冲器,其中所述存储器缓冲器内的第一高速缓存行是可按高速缓存读的;
还把所述存储器缓冲器内的其余高速缓存行定义为处于修改过的状态;并且
响应于所述超高速缓存试图把所述第一高速缓存行从共享状态改变到修改过的状态,使所述整个存储器缓冲器无效。
2.权利要求1的方法,还包括:
触发PCI主桥路以使所述存储器缓冲器无效。
3.权利要求2的方法,还包括:
对所述页面的所述第一高速缓存行执行存储操作。
4.权利要求1的方法,还包括:
监听系统存储器内的页面缓冲器。
5.权利要求4的方法,还包括:
若所述第一高速缓存行从所述共享状态改变到所述修改过的状态,使所述缓冲器内整页的数据无效。
6.一种改进直接存储器存取和超高速缓存的性能的设备,包括:
一个用于存储信息的超高速缓存;
用于执行高速缓存操作的控制逻辑电路;
用于定义一个存储器缓冲器的硬件,其中所述存储器缓冲器内的第一高速缓存行是可按高速缓存读的;以及
用于同时使所述存储器缓冲器内的所有高速缓存行无效而不需附加的系统总线命令的装置。
7.权利要求6的设备,还包括:
能保留存储器存储的逻辑装置。
8.权利要求6的设备,还包括:
附加的逻辑装置,用于进而把所述存储器缓冲器内的其余高速缓存行定义成处于修改过的状态。
9.权利要求6的设备,还包括:
逻辑电路,用于触发PCI主桥路以使所述存储器无效。
10.权利要求6的设备,还包括:
用于对所述页面的所述第一高速缓存行执行存储操作的装置。
11.权利要求6的设备,还包括:
监听装置,用于监听系统存储器中的页面缓冲器。
12.权利要求1的设备,其中用于同时使所述存储器缓冲器内的所有高速缓存行无效而不需附加的系统总线命令的装置还包括:
用于若所述第一高速缓存行从所述共享状态改变到所述修改过的状态则使所述存储器缓冲器内的整页数据无效的装置。
13.一种计算机程序产品,其具有计算机可读介质内的用于改进直接存储器访问和超高速缓存的性能的指令组,包括:
所述计算机可读介质内的用于定义一个页面缓冲器的指令组,其中所述页面缓冲器内的第一高速缓存行是可高速缓存读的。
所述计算机可读介质内的用于定义所述页面缓冲器内的其余高速缓存行处于修改过的状态的指令组;以及
响应于所述超高速缓存试图把所述第一高速缓存行从共享状态改变到修改过的状态,所述计算机可读介质内的用于使所述页面缓冲器的内容无效的指令组。
14.权利要求13的计算机程序产品,还包括:
所述计算机可读介质内的用于触发PCI主桥路以使所述页面缓冲器的内容无效的指令组。
15.权利要求14的计算机程序产品,还包括:
所述计算机可读介质内的用于对所述页面缓冲器的所述第一高速缓存行执行存储操作的指令组。
16.权利要求13的计算机程序产品,还包括:
所述计算机可读介质内的用于监听系统存储器内的所述页面缓冲器的指令组。
17.权利要求16的计算机程序产品,还包括:
所述计算机可读介质内的用于若所述第一高速缓存行从所述共享状态改变到所述修改过的状态则使所述缓冲器中整页的数据无效的指令组。
18.一种改进直接存储器存取和超高速缓存的性能的方法,包括以下步骤:
在用于超高速缓存的地址表内定义用于4K I/O页面的地址条目;
把所述条目用作为触发机制;
按“不带有高速缓存意图的读”执行对所述4K I/O页面的所有读;
把直接存储器存取的读存储到由所述条目所索引的某单元中;以及
使所述4K I/O页面内的所有数据无效。
19.权利要求18的方法,还包括:
判定是否要重新使用所述4KI/O页面。
20.权利要求17的方法,其中把所述DMA读存储到所述条目的步骤还包括:
触发主桥路以使所述4K I/O页面中的所有数据失效。
21.权利要求17的方法,还包括:
向所述4K页面写新数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/282,631 | 1999-03-31 | ||
US09/282,631 US6338119B1 (en) | 1999-03-31 | 1999-03-31 | Method and apparatus with page buffer and I/O page kill definition for improved DMA and L1/L2 cache performance |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1268695A true CN1268695A (zh) | 2000-10-04 |
CN1240000C CN1240000C (zh) | 2006-02-01 |
Family
ID=23082392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB001043838A Expired - Fee Related CN1240000C (zh) | 1999-03-31 | 2000-03-23 | 用于改进超高速缓存性能的输入/输出页面删除确定 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6338119B1 (zh) |
JP (1) | JP3893008B2 (zh) |
KR (1) | KR100353656B1 (zh) |
CN (1) | CN1240000C (zh) |
CA (1) | CA2298780A1 (zh) |
TW (1) | TW457433B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100555257C (zh) * | 2005-10-07 | 2009-10-28 | 国际商业机器公司 | 处理页面复制期间的dma操作的存储控制器和方法 |
CN108628766A (zh) * | 2017-03-23 | 2018-10-09 | 三星电子株式会社 | 非易失存储器、计算系统、及读取方法 |
CN111049566A (zh) * | 2019-11-20 | 2020-04-21 | 中国航空工业集团公司西安航空计算技术研究所 | 信息传递方法和机载lrm模块 |
WO2022048187A1 (zh) * | 2020-09-07 | 2022-03-10 | 华为技术有限公司 | 一种发送清除报文的方法及装置 |
CN117971728A (zh) * | 2024-03-29 | 2024-05-03 | 北京象帝先计算技术有限公司 | 缓存器及缓存控制方法、集成电路系统、电子组件及设备 |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7257158B1 (en) | 1998-05-18 | 2007-08-14 | Kendyl A. Román | System for transmitting video images over a computer network to a remote receiver |
US7233619B1 (en) | 1998-12-21 | 2007-06-19 | Roman Kendyl A | Variable general purpose compression for video images (ZLN) |
US8170095B2 (en) * | 1998-12-21 | 2012-05-01 | Zin Stai Pte. In, Llc | Faster image processing |
US7671864B2 (en) * | 2000-01-14 | 2010-03-02 | Roman Kendyl A | Faster image processing |
US20030005428A1 (en) * | 2001-05-26 | 2003-01-02 | Roman Kendyl A. | Global media exchange |
US8290034B2 (en) | 1998-12-21 | 2012-10-16 | Zin Stai Pte. In, Llc | Video transmission and display including bit-wise sub-sampling video compression |
US8068544B2 (en) | 1998-12-21 | 2011-11-29 | Zin Stai Pte. In, Llc | Compression with doppler enhancement |
US8416847B2 (en) * | 1998-12-21 | 2013-04-09 | Zin Stai Pte. In, Llc | Separate plane compression using plurality of compression methods including ZLN and ZLD methods |
US7016417B1 (en) | 1998-12-23 | 2006-03-21 | Kendyl A. Roman | General purpose compression for video images (RHN) |
US8004572B2 (en) * | 1999-05-17 | 2011-08-23 | Zin Stai Pte. In, Llc | System for transmitting a video stream over a computer network to a remote receiver |
US7191462B1 (en) | 1999-11-08 | 2007-03-13 | Kendyl A. Román | System for transmitting video images over a computer network to a remote receiver |
US6574682B1 (en) * | 1999-11-23 | 2003-06-03 | Zilog, Inc. | Data flow enhancement for processor architectures with cache |
US6728835B1 (en) * | 2000-08-30 | 2004-04-27 | Unisys Corporation | Leaky cache mechanism |
US6820161B1 (en) * | 2000-09-28 | 2004-11-16 | International Business Machines Corporation | Mechanism for allowing PCI-PCI bridges to cache data without any coherency side effects |
US6470429B1 (en) * | 2000-12-29 | 2002-10-22 | Compaq Information Technologies Group, L.P. | System for identifying memory requests as noncacheable or reduce cache coherence directory lookups and bus snoops |
US6463510B1 (en) * | 2000-12-29 | 2002-10-08 | Compaq Information Technologies Group, L.P. | Apparatus for identifying memory requests originating on remote I/O devices as noncacheable |
US6684297B2 (en) * | 2001-04-11 | 2004-01-27 | Sun Microsystems, Inc. | Reverse directory for facilitating accesses involving a lower-level cache |
US6701417B2 (en) * | 2001-04-11 | 2004-03-02 | Sun Microsystems, Inc. | Method and apparatus for supporting multiple cache line invalidations per cycle |
US6973528B2 (en) * | 2002-05-22 | 2005-12-06 | International Business Machines Corporation | Data caching on bridge following disconnect |
US20050038946A1 (en) * | 2003-08-12 | 2005-02-17 | Tadpole Computer, Inc. | System and method using a high speed interface in a system having co-processors |
EP1711896B1 (en) * | 2004-02-05 | 2015-11-18 | BlackBerry Limited | Memory controller interface |
US7765534B2 (en) | 2004-04-30 | 2010-07-27 | International Business Machines Corporation | Compiler with cache utilization optimizations |
US7484016B2 (en) * | 2004-06-30 | 2009-01-27 | Intel Corporation | Apparatus and method for high performance volatile disk drive memory access using an integrated DMA engine |
TWI243999B (en) * | 2004-08-17 | 2005-11-21 | Via Tech Inc | Apparatus and related method for maintaining read caching data of south bridge with north bridge |
US20060100997A1 (en) * | 2004-10-27 | 2006-05-11 | Wall Gary C | Data caching |
US20060179173A1 (en) * | 2005-02-02 | 2006-08-10 | Bockhaus John W | Method and system for cache utilization by prefetching for multiple DMA reads |
US7330940B2 (en) * | 2005-02-02 | 2008-02-12 | Hewlett-Packard Development Company, L.P. | Method and system for cache utilization by limiting prefetch requests |
US20060179174A1 (en) * | 2005-02-02 | 2006-08-10 | Bockhaus John W | Method and system for preventing cache lines from being flushed until data stored therein is used |
US7328310B2 (en) * | 2005-02-02 | 2008-02-05 | Hewlett-Packard Development Company, L.P. | Method and system for cache utilization by limiting number of pending cache line requests |
US20060184735A1 (en) * | 2005-02-15 | 2006-08-17 | Maxwell Technologies, Inc. | Methodology for effectively utilizing processor cache in an electronic system |
CN100541449C (zh) * | 2005-03-14 | 2009-09-16 | 松下电器产业株式会社 | 总线控制器 |
US7734842B2 (en) * | 2006-03-28 | 2010-06-08 | International Business Machines Corporation | Computer-implemented method, apparatus, and computer program product for managing DMA write page faults using a pool of substitute pages |
JP4785637B2 (ja) * | 2006-06-16 | 2011-10-05 | キヤノン株式会社 | データ転送装置及びその制御方法 |
US20090119460A1 (en) * | 2007-11-07 | 2009-05-07 | Infineon Technologies Ag | Storing Portions of a Data Transfer Descriptor in Cached and Uncached Address Space |
CN101600029B (zh) * | 2008-06-06 | 2013-05-08 | 博通集成电路(上海)有限公司 | 背景噪声降低系统及方法 |
US8806140B1 (en) * | 2009-12-16 | 2014-08-12 | Applied Micro Circuits Corporation | Dynamic memory module switching with read prefetch caching |
US20130262780A1 (en) * | 2012-03-30 | 2013-10-03 | Srilatha Manne | Apparatus and Method for Fast Cache Shutdown |
GB2529425A (en) * | 2014-08-19 | 2016-02-24 | Ibm | Data processing apparatus and method |
CN106484334A (zh) * | 2016-10-20 | 2017-03-08 | 郑州云海信息技术有限公司 | 一种释放预读资源的方法及装置 |
KR101951309B1 (ko) * | 2017-04-19 | 2019-04-29 | 서울시립대학교 산학협력단 | 데이터 처리 장치 및 데이터 처리 방법 |
US10599568B2 (en) * | 2018-04-09 | 2020-03-24 | Intel Corporation | Management of coherent links and multi-level memory |
US20240053891A1 (en) * | 2022-08-12 | 2024-02-15 | Advanced Micro Devices, Inc. | Chipset Attached Random Access Memory |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4885680A (en) * | 1986-07-25 | 1989-12-05 | International Business Machines Corporation | Method and apparatus for efficiently handling temporarily cacheable data |
JPH0612363A (ja) * | 1992-06-26 | 1994-01-21 | Toshiba Corp | メモリ制御装置およびマルチプロセッサシステム |
US5613153A (en) * | 1994-10-03 | 1997-03-18 | International Business Machines Corporation | Coherency and synchronization mechanisms for I/O channel controllers in a data processing system |
JP2852232B2 (ja) * | 1996-04-24 | 1999-01-27 | 新潟日本電気株式会社 | コンピュータ |
US5884100A (en) * | 1996-06-06 | 1999-03-16 | Sun Microsystems, Inc. | Low-latency, high-throughput, integrated cache coherent I/O system for a single-chip processor |
US5953538A (en) * | 1996-11-12 | 1999-09-14 | Digital Equipment Corporation | Method and apparatus providing DMA transfers between devices coupled to different host bus bridges |
US6128711A (en) * | 1996-11-12 | 2000-10-03 | Compaq Computer Corporation | Performance optimization and system bus duty cycle reduction by I/O bridge partial cache line writes |
DE69738902D1 (de) * | 1997-06-27 | 2008-09-25 | Bull Sa | Busschnittstellebrücke zwischen einem Systembus und Lokalbussen mit Lokaladressenübersetzung für mittels Adressenraum programmierbaren Systemraumzugriff |
JPH11272555A (ja) * | 1998-03-20 | 1999-10-08 | Fujitsu Ltd | キャッシュメモリ制御システム |
US6003106A (en) * | 1998-05-27 | 1999-12-14 | International Business Machines Corporation | DMA cache control logic |
-
1999
- 1999-03-31 US US09/282,631 patent/US6338119B1/en not_active Expired - Lifetime
-
2000
- 2000-02-16 CA CA002298780A patent/CA2298780A1/en not_active Abandoned
- 2000-02-29 TW TW089103444A patent/TW457433B/zh not_active IP Right Cessation
- 2000-03-08 KR KR1020000011581A patent/KR100353656B1/ko not_active IP Right Cessation
- 2000-03-23 CN CNB001043838A patent/CN1240000C/zh not_active Expired - Fee Related
- 2000-03-24 JP JP2000084906A patent/JP3893008B2/ja not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100555257C (zh) * | 2005-10-07 | 2009-10-28 | 国际商业机器公司 | 处理页面复制期间的dma操作的存储控制器和方法 |
CN108628766A (zh) * | 2017-03-23 | 2018-10-09 | 三星电子株式会社 | 非易失存储器、计算系统、及读取方法 |
CN108628766B (zh) * | 2017-03-23 | 2024-01-23 | 三星电子株式会社 | 非易失存储器、计算系统、及读取方法 |
CN111049566A (zh) * | 2019-11-20 | 2020-04-21 | 中国航空工业集团公司西安航空计算技术研究所 | 信息传递方法和机载lrm模块 |
CN111049566B (zh) * | 2019-11-20 | 2022-03-08 | 中国航空工业集团公司西安航空计算技术研究所 | 信息传递方法和机载lrm模块 |
WO2022048187A1 (zh) * | 2020-09-07 | 2022-03-10 | 华为技术有限公司 | 一种发送清除报文的方法及装置 |
CN117971728A (zh) * | 2024-03-29 | 2024-05-03 | 北京象帝先计算技术有限公司 | 缓存器及缓存控制方法、集成电路系统、电子组件及设备 |
Also Published As
Publication number | Publication date |
---|---|
KR20010006757A (ko) | 2001-01-26 |
CN1240000C (zh) | 2006-02-01 |
JP2000305842A (ja) | 2000-11-02 |
KR100353656B1 (ko) | 2002-09-19 |
TW457433B (en) | 2001-10-01 |
US6338119B1 (en) | 2002-01-08 |
CA2298780A1 (en) | 2000-09-30 |
JP3893008B2 (ja) | 2007-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1240000C (zh) | 用于改进超高速缓存性能的输入/输出页面删除确定 | |
CN102804152B (zh) | 对存储器层次结构中的闪存的高速缓存一致性支持 | |
CN1617113B (zh) | 分配虚拟内存的方法、存储控制器和计算机系统 | |
US7698508B2 (en) | System and method for reducing unnecessary cache operations | |
KR100318789B1 (ko) | 멀티프로세서 데이타 처리 시스템에서의 캐쉬를 관리하는시스템과 방법 | |
JP4316016B2 (ja) | 複数のシステムバスを有するコンピュータシステムにおいてメモリコヒーレンスを維持するためのシステムおよび方法 | |
US7310708B2 (en) | Cache system with groups of lines and with coherency for both single lines and groups of lines | |
JP3281893B2 (ja) | キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム | |
US8171223B2 (en) | Method and system to increase concurrency and control replication in a multi-core cache hierarchy | |
CN100573477C (zh) | 管理锁定的高速缓冲存储器中的组替换的系统和方法 | |
US6578111B1 (en) | Cache memory system and method for managing streaming-data | |
US9043558B2 (en) | Data bus efficiency via cache line usurpation | |
CN1369808A (zh) | 储存存储器型式数据的转译旁视缓冲器 | |
US6751705B1 (en) | Cache line converter | |
US8874853B2 (en) | Local and global memory request predictor | |
JPH07311713A (ja) | 階層キャッシュ・システム及びバッファリング・システム | |
US5809526A (en) | Data processing system and method for selective invalidation of outdated lines in a second level memory in response to a memory request initiated by a store operation | |
US6625694B2 (en) | System and method for allocating a directory entry for use in multiprocessor-node data processing systems | |
US20070038814A1 (en) | Systems and methods for selectively inclusive cache | |
CN101065735A (zh) | 本地存储器数据的一致性高速缓存 | |
CN113138851A (zh) | 一种缓存管理方法及装置 | |
KR100304318B1 (ko) | 프로세서버스에대한캐시조작의요구에기초해서명령을발행하는방법및장치 | |
JP3507314B2 (ja) | メモリコントローラおよびコンピュータシステム | |
CN115408310A (zh) | 微处理器及其处理零值数据的方法 | |
US7600079B2 (en) | Performing a memory write of a data unit without changing ownership of the data unit |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20060201 Termination date: 20120323 |