用于稀疏线写操作的装置和方法

文档序号:6560292阅读:177来源:国知局
专利名称:用于稀疏线写操作的装置和方法
技术领域
本发明涉及微处理器,具体涉及一种稀疏(sparse)线写操作的装置和方法,用于解决当连续的合并写(write-combined)的存储空间的稀疏部分被修改时向存储器写速度慢的问题。
背景技术
写合并和非临时存储操作不是保存在微处理器中,而是被写出到存储总线。在当今四倍频(quad-pumped)总线(如多数x86兼容处理器所示)中,到存储器的数据传输或者是基于高速缓存线(即,64字节的高速缓存线的8个四倍长字)执行的,或者是基于单独四倍长字(quadword)执行的。当传输整个高速缓存线时,需要两个时钟周期来传输这8个相关四倍长字,在每个总线时钟周期期间传输4个四倍长字,因此印证了“四倍频”的描述。在这种类型的传输期间,将整个64字节写到总线;并没有仅将高速缓存线的一部分写到存储器的机制。如果要仅将高速缓存线的一部分写到存储器,则必须采用允许传输单独四倍长字的不同类型的数据传输,并且作为总线协议的一部分,设置字节使能信号来指示传输的四倍长字内要被写到存储器的特定字节。单独的四倍长字传输占用一个总线时钟周期。这样,本领域允许或者在两个时钟周期中将64个连续字节写到存储器,或者在单个时钟周期中写入单个四倍长字。
回顾当今微处理器总线结构和相关协议,结合关于应用程序如何管理连续存储空间的观察,本发明人注意到如上面所提到的,与数据到存储总线的写相关的总线协议在连续存储空间内的稀疏数据已被修改并要被写到总线的时候是不利的。例如,在视频缓冲区内每隔一双字(四字节)地修改以改变某显示特性是很常见的。然而,常规的微处理器没有提供一种机制,能以除了字节粒度之外的任何粒度、逐四倍长字地选择要写到存储器的数据。因此,连续存储器的稀疏写到总线的方法和系统被建立起来,这种写限于单独的四倍长字传输。
由于与合并写(例如,写合并、非临时存储)相关的数据通常较大,因此不管总线是四倍频还是其他的,不充分利用数据总线的带宽是不利的。由于数据总线通常以比微处理器核心时钟慢很多倍的时钟速度工作,因此以最佳效率执行到存储器的合并写至关重要。因此希望能够将整个高速缓存线写到存储器,并且可以使能该高速缓存线中单独的双字。

发明内容
根据本发明的实施例的一种微处理器包括处理器逻辑电路和稀疏写逻辑电路。处理器逻辑电路声明(assert)地址信号和请求信号来提供高速缓存线存储器写操作的地址和请求。稀疏写逻辑电路使所述处理器逻辑电路在所述请求信号上指定稀疏合并写的存储器写操作,以及在所述地址信号上提供使能位。
在一个实施例中,所述处理器逻辑电路在所述地址和请求信号上声明第一部分来提供所述高速缓存线存储器写操作的所述地址和所述请求,并且在所述地址和请求信号上声明第二部分来指定所述稀疏合并写的存储器写操作并且提供使能位。稀疏写逻辑电路可以使所述处理器逻辑电路在所述第二部分期间在所述请求信号上提供稀疏写命令值和在地址信号上提供使能位。稀疏写逻辑电路可以使所述处理器逻辑电路用多个双字使能位替换所述第二部分的所述地址信号上的属性值和字节使能位。稀疏合并写的存储器写操作可以是用于写8个四倍长字的四倍频高速缓存线写操作。每个使能位可以标识所述8个四倍长字的相应双字。
根据本发明的一种处理器总线系统,包括耦接到处理器的处理器总线和总线代理。处理器总线包括地址信号、数据信号和请求信号。处理器控制地址信号和请求信号来请求稀疏合并写的存储器写操作以及多个使能位,并且控制所述数据信号来提供所述稀疏合并写的存储器写操作的数据。总线代理将所述数据的部分写到通过所述多个使能位选择的存储位置。
处理器可以分别在所述地址信号和所述请求信号上声明包含地址和存储器线写请求的第一部分,并且分别在所述地址信号和所述请求信号上声明包含稀疏合并写的存储器写操作和所述使能位的第二部分。所述稀疏合并写的存储器写操作请求可以是在所述请求信号上声明的稀疏写命令值。可以在所述地址信号的级联字段上声明所述使能位。所述稀疏合并写的存储器写操作可以是具有8个四倍长字(其中所述使能位是双字使能位)的四倍频高速缓存线写操作。所述总线代理可以根据所述双字使能位,将所述数据的所选双字写到所述存储位置中。
根据本发明的一种执行稀疏合并写的写操作的方法包括通过处理器提供存储器写操作的地址和请求;通过处理器指示存储器写操作是稀疏合并写的写操作;通过处理器声明稀疏合并写的写操作的多个使能信号;和通过处理器提供稀疏合并写的写操作的数据。
该方法可以包括通过处理器声明第一操作部分,第一操作部分提供地址并指示存储器写操作。该方法可以包括通过处理器声明包括稀疏线写命令的第二操作部分。该方法可以包括通过处理器声明具有使能位的第二操作部分。该方法可以包括提供8个四倍长字的高速缓存线以及声明双字使能位。该方法还可以包括通过总线代理接收存储器写操作的地址和请求,并且检测存储器写操作是稀疏合并写的写操作;通过总线代理接收使能信号;通过总线代理接收数据;和基于使能信号将数据的部分写到地址所指示的存储位置。数据可以是8个四倍长字的数据,其中使能位是双字使能位。


通过下面的描述和附图,本发明的好处、特征和优点将变得更好理解,其中图1是常规微处理器接口系统的简化方框图;图2是参照图1的常规微处理器接口系统描述的执行读操作R1以及随后三个写操作W1、W2和W3的信号交互的时序图;图3是说明如果在写周期的“B”请求部分期间通过请求(REQ)总线指定单个四倍长字时地址(ADDR)总线的地址信号的信号定义的图表;图4是根据本发明实施例实现的微处理器接口系统的简化方框图;图5是说明根据本发明实施例在请求周期的“B”部分期间REQ总线的所选请求信号的示例性编码的表的图;和图6是示出当REQ总线的信号指示稀疏合并写的写操作时、在稀疏合并写的请求周期的“B”部分期间ADDR总线的所选地址信号的信号定义的图表。
具体实施例方式
提供下面的描述来使本领域技术人员能在特定应用及其要求的上下文中制作和使用所提供的本发明。然而,对优选实施例的各种修改对于本领域技术人员将是清楚的,并且这里定义的普遍原理可以应用到其他实施例。因此,本发明并不意图限于这里显示和描述的具体实施例,而是要符合与这里公开的原理和新特征一致的最宽范围。
本申请的发明人认识到没有充分利用微处理器的处理器总线带宽是不利的。他进一步注意到由于处理器总线通常以比微处理器核心时钟慢很多倍的时钟速度工作,因此以最佳效率执行到存储器的合并写至关重要。发明人特别认识到,在连续存储空间内的稀疏数据已被修改并且要被写到总线时,与向总线写数据相关的常规总线协议是不利的。他因此开发了稀疏合并写的写属性,其中整个64字节高速缓存线被写到存储器,并且以类似于当前在单独四倍长字(8字节或64位)写中指定字节使能的方式指示使能位,这将在下面参照图1-6进一步描述。
图1是常规微处理器接口系统100的简化方框图。微处理器接口系统100包括微处理器101和与存储总线105相接的总线代理103。总线代理103代表本领域技术人员公知的任何不同类型的总线代理,如存储控制器、主机/PCI(外设部件互连)桥等。处理器总线105包括执行数据操作的信号,包括双向地址总线ADDR、双向数据总线DATA和多个控制信号。在所示实施例中,ADDR总线具有ADDR[35:0]所示的36个信号,而DATA总线具有DATA[63:0]所示的64个信号,尽管应当理解,取决于具体配置和架构,地址和数据总线可以具有任何适合数量的信号。如果例如传输的粒度是四倍长字,则本领域技术人员将明白只需要ADDR[35:3]。控制信号包括总线时钟信号BCLK;双向地址选通信号ADS(指示ADDR总线上的地址的有效性);双向请求总线REQ[4:0],用于指定所请求的操作的类型(例如,存储器代码读、存储器数据读、存储器线写(8个四倍长字)、带有字节使能的存储器四倍长字写);双向数据总线占用信号DBSY(由在DATA总线上提供数据的实体声明);数据准备就绪信号DRDY(由在DATA总线上传输数据的所有时钟周期期间提供数据的任一设备声明);和响应总线RS,用于提供正在DATA总线上完成的操作响应的类型(例如,无数据、正常数据、隐式写回)。在所示实施例中,RS总线具有RS[2:0]所示的3个信号,而REQ总线具有REQ[4:0]所示的5个信号。
实际上当今所有微处理器提供的存储总线105的信号有细微的差异。一些处理器在同一信号组上复用地址和数据并由此提供控制信号来指示是否存在数据或地址。其他微处理器利用不同的地址或数据总线宽度或(又称为)控制信号。不管具体处理器配置的细节如何,实际上所有处理器提供与总线代理通信的信号,来指示请求哪种类型的操作、该操作的参数以及发送或接收数据。
图2是参照常规微处理器接口系统100描述的执行读操作R1以及随后三个写操作W1、W2和W3的信号交互的时序图。如图所示,相对时间画出了BCLK、ADS、DBSY、DRDY信号以及ADDR、REQ、RS和DATA总线。对每个操作,微处理器101在ADDR总线上提供地址,并且总线代理103一旦检测到ADS信号就锁存地址。为了清楚起见,示出的控制信号被声明为逻辑低电平,但本领域技术人员明白也可以由逻辑高电平指示该声明。结合多个参考文献描述这里在x86兼容的微处理器中列出的这些操作和相应信号的工作,包括Tom Shanley的书“Pentium Pro and Pentium II System Architecture2nd Edition”,将其并入这里作为参考。
在时序图的顶部与周期号一起示出了BCLK时钟信号的周期,并且针对相应周期号描述信号状态的转变定时。在周期1、3、5和7期间,微处理器101连同ADDR上的地址声明ADS(即,操作请求“A”和“B”部分),来请求读操作R1和随后的三个写操作W1-W3。为了说明简便起见,忽略延迟,并且应当理解实际信号转变在紧接着所示信号转变后的周期中发生。例如,在BLCK信号的上升沿(时钟周期2和3之间)处出现的、启动所示W1写操作的ADS信号的下降沿实际上在相对短的延迟之后在时钟周期3期间出现。多个写操作,如W1-W3,通常是对到合并写的缓冲器的存储器等的写执行的。
在地址总线ADDR和请求总线REQ上在一个时钟周期中提供与这些请求中的每一个请求相关的参数。如图所示,每个操作的“A”请求部分对ADDR总线表示为“AA”,对REQ总线表示为“RA”,而每个操作的“B”请求部分对ADDR总线表示为“AB”,对REQ总线表示为“RB”。因此,对每个读或写操作,ADDR总线显示“AA/AB”,而REQ总线显示“RA/RB”。在周期的“A”部分期间,ADDR总线包含操作的地址,而REQ总线包含操作请求的类型(例如,存储器代码读、存储器数据读、存储器写)。在周期的“B”部分,请求总线REQ在读和写操作的情况下,提供诸如8个四倍长字或单个四倍长字的操作长度。如果在周期的“B”部分期间REQ指定单个四倍长字,则根据图3所示的表300解译ADDR总线的“B”部分,其中地址信号ADDR[31:24]指定传输的属性(例如,无法缓存、合并写、直写等),并且其中地址信号ADDR[15:8]指定字节使能,其指示单独四倍长字中要写到存储器的特定字节。
因此,在周期1期间,ADDR和REQ总线指定高速缓存线读R1。在周期4和5期间传输与读操作R1相关的数据。在周期3期间,通过ADDR和REQ总线请求高速缓存线写操作W1,并且在周期7和8期间写出相关高速缓存线。在周期5期间,通过ADDR和REQ总线指定单独四倍长字写操作W2,并且在周期10期间写相关的四倍长字。如果与写传输W2相关联的修改的数据是稀疏修改缓冲区的部分,则在周期7期间,ADDR和REQ总线包含用于将该稀疏修改缓冲区的下一四倍长字写到存储器的参数。
图2和图3说明了通过单独四倍长字传输来传输连续存储器的稀疏修改的区域是低效的。并且如上面提到的,常规微处理器不提供以字节粒度之外的任何粒度、逐四倍长字地将数据的所选部分写到存储器的机制。因为与合并写的存储缓冲器相关的数据通常较大,因此不充分利用数据总线带宽是不利的。并且由于数据总线通常以比微处理器核心时钟慢很多倍的时钟速度工作,因此以最佳效率执行到存储器的合并写至关重要。因此希望能够将整个高速缓存线写到存储器,并且可以使能该高速缓存线中单独的双字。
根据本发明的实施例的系统和方法提供称为稀疏合并写的写操作的新型属性,它被指定为对现有x86总线协议的改进。在根据本发明一个实施例的稀疏合并写操作中,整个64位高速缓存线被写到存储器,并且在请求周期的“B”部分期间以类似于当前在单独四倍长字写中指定字节使能的方式指示双字使能位。
图4是根据本发明实施例实现的微处理器接口系统400的简化方框图。微处理器接口系统400包括微处理器401和与存储总线405相接的总线代理403。存储总线405的信号基本上与微处理器接口系统100的相同,并且以基本类似的方式工作,除了ADDR和REQ总线的值在请求周期的“B”部分期间被修改以提供稀疏合并写的写以外,这将在下面进一步描述。微处理器401包括处理器逻辑电路407和稀疏写逻辑电路409。处理器逻辑电路407基本上与微处理器101内的处理器逻辑电路(未示出)类似,用于连接ADDR、DATA和REQ总线和其他控制信号以及执行微处理器功能。稀疏写逻辑电路409显示为内部耦接到处理器逻辑电路407的单独实体。在替代实施例中,稀疏写逻辑电路409并入处理器逻辑电路407中。在一个实施例中,稀疏写逻辑电路409是存储器逻辑电路(未示出)的部分。逻辑电路409是否为稀疏写逻辑电路取决于与存储总线405的传输所用的存储器的区域是否是稀疏的。如果这些区域是稀疏的,则安排并执行稀疏写操作来提供数据的高效传输。总线代理403包括稀疏逻辑电路411,用于修改总线代理403的功能以使能到存储器的稀疏写操作。特别地,稀疏逻辑电路411使总线代理403能检测、译码和执行微处理器401在存储总线405上提供的稀疏写操作。稀疏逻辑电路411使总线代理403能写每个稀疏写操作的数据的所选双字,它们是由稀疏写操作的请求部分中提供的双字使能位确定的。
图5是说明根据本发明实施例在请求周期的“B”部分期间请求信号REQ[4:0]的示例性编码的表500的图。因此,对二进制值00b(其中附加的小写字母“b”表示二进制信号)的编码位4:3指示稀疏合并写的存储器写操作。
图6是示出当REQ[4:0]信号指示表500中所示的稀疏合并写的写操作时、在稀疏合并写的请求周期的“B”部分期间地址信号ADDR[35:0]的信号定义的表600的图。延迟ID和扩展功能信号与当前在x86处理器中提供的一样。然而,ADDR[31:241和ADDR[15:8]信号不再分别指示属性和字节使能。相反,当REQ总线指示稀疏合并写的写操作时,将这两个字段级联来形成双字使能字段DE[15:0],其各个位指示相关高速缓存线内要写到存储器的特定双字。对于稀疏写命令,用双字使能位来替换ADDR总线的属性值和字节使能位。每个双字使能位对应于写操作的8个四倍长字中的一个双字。在一个实施例中,例如,DE字段的每个双字使能位被声明为逻辑“1”,以指定稀疏合并写的写操作的8个四倍长字数据中的相应双字要被写到存储器中的相应双字,而逻辑“0”指示存储总线405上的相应双字要被忽略,从而存储器中的相应双字保持不变。这样,可以在单个稀疏合并写的写操作中修改任何所选的双字组合,例如在视频缓冲区的64字节部分中每隔一个双字。
尽管参照其特定优选版本相当详细地描述了本发明,但其他版本和变型也是可以构思出的。例如,可以修改地址、数据和/或请求总线的特定大小。使能位可以对应于双字以外的数据大小。可以采用反逻辑。最后,本领域技术人员将明白,它们可以使用所公开的概念和特定实施例作为基础,在不背离由所附权利要求定义的本发明宗旨和范围的前提下设计或修改实现与本发明相同目的的其他结构。
权利要求
1.一种微处理器,包括处理器逻辑电路,其声明地址信号和请求信号来提供高速缓存线存储器写操作的地址和请求;和稀疏写逻辑电路,其耦接到所述处理器逻辑电路,用于使所述处理器逻辑电路在所述请求信号上指定稀疏合并写的存储器写操作,以及在所述地址信号上提供相应的多个使能位。
2.如权利要求1所述的微处理器,其中,所述处理器逻辑电路在所述地址信号和所述请求信号上声明第一部分来提供所述高速缓存线存储器写操作的所述地址和所述请求,并且在所述地址信号和所述请求信号上声明第二部分来指定所述稀疏合并写的存储器写操作并且提供所述多个使能位。
3.如权利要求2所述的微处理器,其中,所述稀疏写逻辑电路使所述处理器逻辑电路执行如下之一在所述第二部分期间在所述请求信号上提供稀疏写命令值;在所述第二部分期间在所述地址信号上提供所述多个使能位;用多个双字使能位替换所述第二部分的所述地址信号上的属性值和字节使能位。
4.如权利要求1所述的微处理器,其中,所述稀疏合并写的存储器写操作包括用于写8个四倍长字的四倍频高速缓存线写操作。
5.如权利要求4所述的微处理器,其中,所述多个使能位中的每一个标识所述8个四倍长字的相应双字。
6.一种处理器总线系统,包括处理器总线,其包括地址信号、数据信号和请求信号;处理器,其耦接到所述处理器总线,用于控制所述地址信号和所述请求信号来请求稀疏合并写的存储器写操作以及提供多个使能位,并且控制所述数据信号来提供所述稀疏合并写的存储器写操作的数据;和总线代理,其耦接到所述处理器总线,用于将所述数据的部分写到通过所述多个使能位选择的存储位置。
7.如权利要求6所述的处理器总线系统,其中,所述处理器分别在所述地址信号和所述请求信号上声明包含地址和存储器线写请求的第一部分,并且分别在所述地址信号和所述请求信号上声明包含稀疏合并写的存储器写操作和所述多个使能位的第二部分。
8.如权利要求7所述的处理器总线系统,其中,所述稀疏合并写的存储器写操作请求包括在所述请求信号上声明的稀疏写命令值。
9.如权利要求7所述的处理器总线系统,其中,在所述地址信号的级联字段中声明所述多个使能位。
10.如权利要求6所述的处理器总线系统,其中,所述稀疏合并写的存储器写操作包括具有8个四倍长字的四倍频高速缓存线写操作,并且其中所述多个使能位包括双字使能位。
11.如权利要求10所述的处理器总线系统,其中,所述总线代理根据所述多个双字使能位,将所述数据的所选双字写到所述存储位置。
12.一种执行稀疏合并写的写操作的方法,包括通过处理器提供存储器写操作的地址和请求;通过处理器指示存储器写操作是稀疏合并写的写操作;通过处理器声明稀疏合并写的写操作的多个使能信号;和通过处理器提供稀疏合并写的写操作的数据。
13.如权利要求12所述的方法,其中,所述提供存储器写操作的地址和请求的步骤包括通过处理器声明第一操作部分,第一操作部分提供地址并指示存储器写操作。
14.如权利要求13所述的方法,其中,所述指示存储器写操作是稀疏合并写的写操作的步骤包括通过处理器声明包括稀疏线写命令的第二操作部分。
15.如权利要求14所述的方法,其中,所述声明稀疏合并写的写操作的多个使能信号的步骤包括通过处理器声明具有多个使能位的第二操作部分。
16.如权利要求12所述的方法,其中,所述提供稀疏合并写的写操作的数据的步骤包括提供8个四倍长字的高速缓存线。
17.如权利要求16所述的方法,其中,所述声明稀疏合并写的写操作的多个使能信号的步骤包括声明多个双字使能位。
18.如权利要求12所述的方法,还包括通过总线代理接收存储器写操作的地址和请求,并且检测存储器写操作是稀疏合并写的写操作;通过总线代理接收多个使能信号;通过总线代理接收数据;和基于多个使能信号将数据的部分写到地址所指示的存储位置。
全文摘要
一种微处理器包括处理器逻辑电路和稀疏写逻辑电路。处理器逻辑电路声明地址和请求信号来提供高速缓存线存储器写操作的地址和请求。稀疏写逻辑电路使处理器逻辑电路修改写请求的第二部分以指定稀疏写命令值以及提供相应的使能位。稀疏合并写的存储器写操作可以是用来写8个四倍长字的四倍频高速缓存线写操作,其中每个使能位标识相应的双字。执行稀疏合并写的写操作的方法包括提供存储器写操作的地址和请求;指示存储器写操作是稀疏合并写的写操作;对稀疏合并写的写操作声明使能信号;以及提供稀疏合并写的写操作的数据。
文档编号G06F13/16GK1881191SQ20061010594
公开日2006年12月20日 申请日期2006年7月19日 优先权日2005年7月19日
发明者达赖厄斯·D·嘉斯金斯 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1