处理器系统及其数据操作方法

文档序号:6650475阅读:200来源:国知局
专利名称:处理器系统及其数据操作方法
技术领域
本发明涉及处理器技术,更具体地说,涉及一种处理器系统及其数据操作方法。
背景技术
在处理器与主存储器之间嵌入一个高速缓冲存储器(Cache),可以提高该处理器的处理能力,减少CPU对主存储器访问的等待时间。高速缓冲存储器与主存储器以块为单位进行数据交换。当CPU读取数据或者指令时,同时将读取到的数据或指令保存到一个高速缓冲存储器存储块中。根据程序的空间局部性和时间局部性,当CPU第二次需要读取相同或相近的数据时,可以从相应的高速缓冲存储器存储块中获得。因为高速缓冲存储器的速度远大于主存储器的速度,处理器系统整体性能就得到了很大的提高。
写缓存器(Write Buffer)由一些高速存储器构成,当CPU向主存储器执行写入操作时,先将数据写入到写缓存器中,由于写缓存器的访问速度很高,这种写入的速度也很高。然后写缓存器再在适当的时候以较低的速度将数据写入主存储器中相应的位置。
通常,使用高速缓冲存储器和写缓存器可以提高处理器的性能,但是由于高速缓冲存储器和写缓存器的使用可能会改变访问存储器的数量、类型和时间,因此这些技术的使用都必须遵从特定的限制条件。
普通的处理器中使用通用的高速缓冲存储器和写缓存结构,该结构符合通用的限制条件。Cache的使用限制条件为(1)读操作返回最后一次写入的内容,而且没有其他的副作用;(2)写操作除了影响目标单元的内容外,没有其他副作用;(3)对同一目标单元的两次连续读操作将得到相同的结果;
(4)对同一目标单元的两次连续写操作将把第二次写操作的值写入目标单元,第一次写操作无意义。
写缓存器的使用限制条件为(1)写操作延迟除了影响目标单元的内容外,没有其他副作用。
普通的处理器为了符合通用标准,保证在正常情况下使用安全、稳定,只将写缓存器作为数据写入主存储器的数据存放单元,虽然数据在写缓存器中保持有效,但是该数据没有被再次使用,这对系统的存储资源造成了浪费。
处理器在写缓存和读操作先读后写时会出现数据冲突。跟踪高速缓冲存储器的如下访问处理器执行第一条指令,向可缓存的R2地址写入数据R1,该数据R1写入写缓存器内;处理器执行第二条指令,从R2地址读取数据,若Cache发生读缺失,CPU直接读取主存储器。为了保证处理器不被停止,该读操作优于写操作立即执行,这时该读操作将主存储器内以前的错误值R3读入,导致R1和R3数据不相同。
W R1,[R2];R R3,[R2];解决这个问题的通用方法是在发生读缺失时,将读操作地址与写缓存器中的数据地址进行比较。如果写缓存器内没有相关的地址,读操作优先进行;如果出现地址冲突(即写缓存器内有相关的数据地址),则读操作等待,直到写缓存器清空,这便造成了CPU处理性能的下降。

发明内容
本发明要解决的技术问题在于,针对上述现有技术的不足,提供一种处理器系统及其数据操作方法,通过扩大写缓存器的使用限制,采用读操作时对写缓存器内的相关地址回读的策略减少处理器的等待时间。
本发明解决其技术问题所采用的技术方案是提供一种处理器系统的数据操作方法,包括a、比较处理器读操作地址与写缓存器内的数据地址;b、写缓存器内有与所述读操作地址对应的数据地址时,处理器读取写缓存器内所述数据地址对应的最近一次写入的数据。
本发明所述的处理器系统的数据操作方法中,在所述步骤a之前,还包括c、判断所述读操作地址是否可高速缓存,如果所述读操作地址不可高速缓存,执行所述步骤a和b。
本发明所述的处理器系统的数据操作方法中,在所述步骤a之前,还包括d、如果所述读操作地址可高速缓存,进一步判断读所述高速缓冲存储器是否命中,如果读所述高速缓冲存储器未命中,执行所述步骤a和b。
本发明所述的处理器系统的数据操作方法中,如果读所述高速缓冲存储器命中,处理器读取所述高速缓冲存储器内命中的数据。
本发明所述的处理器系统的数据操作方法中,步骤c中判断所述读操作地址不可高速缓存时,进一步判断所述写缓存器是否为空,若所述写缓存器不为空,执行所述步骤a和b;若所述写缓存器为空,处理器读取主存储器内所述读操作地址对应的数据。
本发明所述的处理器系统的数据操作方法中,还包括写缓存器内没有与所述读操作地址对应的数据地址时,处理器读取主存储器内所述读操作地址对应的数据。
本发明还提供一种处理器系统,包括处理器以及位于处理器和主存储器之间的写缓存器,还包括控制逻辑模块,所述控制逻辑模块比较所述写缓存器内是否有与所述处理器的读操作地址对应的数据地址,并输出比较结果信息;所述处理器接收所述控制逻辑模块的比较结果信息,当所述比较结果信息表示写缓存器内有与所述处理器读操作地址对应的数据地址时,所述处理器将写缓存器内所述数据地址对应的最后一次写入的数据读回。
本发明所述的处理器系统中,还包括高速缓冲存储器,存储所述处理器从主存储器中读出的可高速缓存的数据;所述控制逻辑模块判断所述处理器的读操作地址是否可高速缓存以及所述高速缓冲存储器是否命中,在所述读操作地址不可高速缓存和/或所述高速缓冲存储器未命中时,执行所述处理器读操作地址与所述写缓存器内数据地址的比较。
本发明所述的处理器系统中,所述控制逻辑模块包括处理单元,对所述处理器读操作地址是否可高速缓存进行判断;以及高速缓冲控制逻辑单元,对所述高速缓冲存储器是否命中进行判断,并在所述读操作地址不可高速缓存和/或所述高速缓冲存储器未命中时,执行所述处理器读操作地址与所述写缓存器内数据地址的比较。
本发明所述的处理器系统中,所述处理器接收所述控制逻辑模块的比较结果信息,当所述比较结果信息表示写缓存器内没有与所述处理器读操作地址对应的数据地址时,所述处理器读取主存储器内所述读操作地址对应的数据。
本发明所述的处理器系统中,还包括复用器,对所述处理器和写缓存器的总线传输请求进行优先级判定,在请求冲突时寄存优先级较低的操作。
实施本发明的处理器系统及其数据操作方法,具有以下有益效果本发明的处理器系统扩大了写缓存器的使用限制,在几乎不增加任何硬件代价的情况下增加了读缺失但写缓存器命中以及不可高速缓存但写缓存器命中两种操作,直接从写缓存器内的相应地址回读,减少了等待写缓存器清空以及读操作总线延迟的时间,提高了处理器的处理能力;回读写缓存器的操作使得写缓存器部分实现了牺牲高速缓存的功能,这可以减少因有太多块映射到同一个地址而造成的一个块被放弃后又重新调用的冲突缺失,提高高速缓冲存储器的命中率。


图1是本发明一个实施例的处理器系统的结构框图;图2是本发明一个实施例中采用写回策略的处理器系统读操作流程图;图3是本发明一个实施例中采用写通策略的处理器系统读操作流程图;图4是本发明处理器系统数据操作方法中写缓存器的数据存取示意图。
具体实施例方式
以下将结合附图及实施例对本发明作进一步详细说明本发明处理器系统的数据操作方法,在处理器读操作地址不可高速缓存和/或读高速缓冲存储器未命中(即缺失)时,将所述读操作地址与写缓存器内的数据地址进行比较。如果写缓存器内没有相对应的数据地址,执行正常的处理器读操作,读取主存储器内对应的数据;如果写缓存器内有对应的数据地址,则处理器读取写缓存器中与该数据地址对应的最近一次写入的数据。
图1是本发明一个实施例的处理器系统的结构框图。如图1所示,该处理器系统包括有处理器101、处理逻辑单元(PU)102、高速缓存控制逻辑单元103、高速缓冲存储器104、写缓存器105、复用器(MUX)106和封装器(Wrapper)107。处理器101通过系统总线108对主存储器进行存取。处理器101可以是中央处理器(CPU)或者一般的微处理器、数字信号处理器等。高速缓冲存储器104位于处理器101与外部主存储器之间,存储处理器从主存储器中读出的可高速缓存的数据,为处理器提供数据的高速存取。写缓存器105位于处理器101与主存储器之间,主要存储处理器101的可缓存写数据,并在总线108空闲时再将数据写入主存储器内。处理逻辑单元102为组合逻辑,在处理器有效操作的一个周期内返回该操作地址是否可高速缓存、是否可缓存以及该操作地址是否被保护。高速缓存控制逻辑单元103用来处理所有处理器101的操作请求。高速缓存控制逻辑单元103执行高速缓冲存储器104是否命中的判断,并在读操作时判断写缓存器105内是否有与该读操作地址对应的数据地址,然后向处理器101返回相关的判断信息。处理逻辑单元102和高速缓存控制逻辑单元103可以单独存在,也可以合并为一个控制逻辑模块。读操作地址不可高速缓存和/或读高速缓冲存储器缺失时,如果写缓存器105内有对应该读操作地址的数据地址,则写缓存器105内相应地数据被直接读回给处理器101,以减少处理器101的等待周期。MUX 106对高速缓存控制逻辑单元103和写缓存器105的总线传输请求进行优先级判定,在数据请求冲突时寄存优先级比较低的操作。封装器107为处理器外嵌模块,用以桥接处理器总线和系统总线108。MUX 106和封装器107为现有技术,因而在此不作详细描述。
本发明采用写缓存器回读策略的处理器系统读操作流程如图2和图3所示。图2是高速缓冲存储器采用写回策略时的处理器系统读操作流程图。如图2所示,CPU发出读操作指令(步骤201)后,步骤202中,PU将进行操作地址判定,以确定CPU读操作地址是否可缓存、是否可高速缓存或者该地址是否被保护。如果该地址被保护,PU将返回错误信息(步骤203)。CPU读操作时,不管PU判定该操作地址是否可缓存,CPU都会忽略该判定结果,因为是否可缓存对于CPU读操作来说没有任何意义。
步骤204中,如果CPU读操作不可高速缓存,高速缓存控制逻辑将判断写缓存器是否为空(步骤205)。如果写缓存器为空,说明写缓存器内所有的写数据都已经写入主存储器,主存储器内的数据为最新状态,步骤208中,AHB总线执行读操作,从主存储器内读取该操作地址对应的数据提供给CPU,完成此次CPU读操作(步骤218)。步骤205中,如果判定写缓存器不为空,高速缓存控制逻辑将处理器读操作地址与写缓存器内的数据地址进行比较(步骤206),如果写缓存器内存在与该读操作地址对应的数据地址(即命中),CPU直接从写缓存器中读回该地址对应的数据(步骤207);如果写缓存器内没有与该读操作地址对应的数据地址(即未命中),则AHB接口执行主存储器读操作,将主存储器内对应的数据提供给CPU,然后,此次读操作完成(218)。
如果PU判定CPU读操作为可高速缓存的读操作,步骤209中,高速缓存控制逻辑进行高速缓冲存储器命中判定(即将读操作地址与高速缓冲存储器内的标签进行比较)。如果读高速缓冲存储器命中,即该读操作地址与高速缓冲存储器内的某个标签相匹配,步骤217中,直接读取高速缓冲存储器,对应的命中数据块被读出并提供给CPU,此次读操作完成。
如果读高速缓冲存储器缺失,步骤210中,高速缓存控制逻辑将比较读操作地址与写缓存器内的数据地址。如果写缓存器内有与该读操作地址对应的数据地址,步骤216中,CPU将直接从写缓存器中读取该地址对应的数据,完成此次读操作(步骤218)。如果写缓存器内没有与该读操作地址对应的数据地址,CPU将直接读取主存储器,高速缓冲存储器内将执行正常替换操作。步骤211中,高速缓存控制逻辑将判断高速缓冲存储器内将被替换的数据块是否是脏块。如果不是脏块,则丢弃被替换的数据块,步骤212中,高速缓存控制逻辑驱动AHB总线从主存储器内连续读取CPU读操作地址对应的数据块,并将其写回高速缓冲存储器内确定被替换的数据块内。如果是脏块,步骤213中,高速缓存控制逻辑将进一步判断写缓存器是否为空(步骤213),如果写缓存器为空,则将被替换的脏块写入写缓存器内(步骤215),否则先等待写缓存器清空(步骤214)后再将脏块写入写缓存器,然后执行步骤212,驱动AHB总线从主存储器内连续读取CPU读操作地址对应的数据块,并将其写回高速缓冲存储器内确定被替换的数据块内,完成此次读操作(步骤218)。
本发明处理器系统的数据操作方法中,写缓存器回读策略仅应用于读操作中,因而处理器系统的写操作流程与现有的写操作方法完全一样,对于不可高速缓存(不可Cache)不可缓存的写操作,处理器直接读取主存储器,对于可缓存的写操作,处理器将数据写入写缓存器内,对于可Cache的写操作,高速缓冲存储器命中时直接写入高速缓冲存储器内,高速缓冲存储器缺失时,驱动AHB总线将对应数据块从主存储器内读回高速缓冲存储器。
本发明处理器系统的数据操作方法中,写操作时不检查写缓存器内是否有与处理器写操作地址对应的数据地址,而直接将数据写入写缓存器,因此多个相同地址的数据可能同时存在于写缓存器内并且均有效,如图4所示。如果读高速缓冲存储器缺失或者读操作不可高速缓存时检测到写缓存器内有与读操作地址对应的数据地址,可能对应该数据地址存在多个数据,这时,在CPU回读写缓存器时只读取写缓存器内对应该操作地址的最近一次写入的(即最新的)数据。如图4中,写缓存器内存在与读操作地址“A=1”相对应的三个数据地址“A=1”,且该数据地址各自对应的数据不同,这时只将最近一次写入地址“A=1”的数据“D=1”读出给CPU,这样便可以避免写缓存和读操作的先读后写可能会出现的数据冲突。
此外,本发明处理器系统的数据操作方法也适用于高速缓冲存储器采用写通策略的处理器系统。图3所示为采用写通策略的处理器系统读操作流程图。如图3所示,CPU发出读操作指令(步骤301)后,步骤302中,PU将进行操作地址判定,以确定CPU读操作地址是否可缓存、是否可高速缓存或者该地址是否被保护。如果该地址被保护,PU将返回错误信息(步骤303)。CPU读操作时,不管PU判定该操作地址是否可缓存,CPU都会忽略该判定结果,因为是否可缓存对于CPU读操作来说没有任何意义。
步骤304中,如果CPU读操作不可高速缓存,高速缓存控制逻辑将判断写缓存器是否为空(步骤305)。如果写缓存器为空,步骤308中,AHB总线执行读操作,从主存储器内读取该操作地址对应的数据提供给CPU,完成此次CPU读操作(步骤315)。步骤305中,如果判定写缓存器不为空,高速缓存控制逻辑将处理器读操作地址与写缓存器内的数据地址进行比较(步骤306),如果写缓存器内存在与该读操作地址对应的数据地址,CPU直接从写缓存器中读回该地址对应的最近一次写入的数据(步骤307);如果写缓存器内没有与该读操作地址对应的数据地址,则AHB接口执行主存储器读操作,将主存储器内对应的数据提供给CPU,然后,此次读操作完成(315)。
如果PU判定CPU读操作为可高速缓存的读操作,步骤309中,高速缓存控制逻辑进行高速缓冲存储器命中判定。如果读高速缓冲存储器命中,步骤314中,直接读取高速缓冲存储器,对应的命中数据块被读出并提供给CPU,此次读操作完成。如果读高速缓冲存储器缺失,步骤310中,高速缓存控制逻辑将比较读操作地址与写缓存器内的数据地址。如果写缓存器内有与该读操作地址对应的数据地址,步骤313中,CPU将直接从写缓存器中读取该地址对应的最近一次写入的数据,完成此次读操作(步骤315)。如果写缓存器内没有与该读操作地址对应的数据地址,CPU将直接读取主存储器,步骤311中,高速缓冲存储器执行正常替换,然后步骤312中,AHB总线执行读操作,从主存储器内读取该操作地址对应的数据,并写回至高速缓冲存储器内。此次读操作即完成(步骤315)。
采用本发明的处理器系统数据操作方法后,CPU的不同读操作请求及其对应的等待周期如下表-1所示

表-1CPU不同读操作的等待周期其中,1+为判定高速缓冲存储器是否命中的判定周期以及写缓存器中是否有对应地址的判定周期,N为AHB总线单次操作消耗的周期数,S为AHB总线连续操作中一次读写消耗的周期数,L为等待写缓存器清空所需的平均时间(该操作发生的概率假设为b%,该概率较低)。
由上表可知,本发明的处理器系统数据操作方法在几乎不增加硬件代价的情况下增加了第四种操作,避免了读缺失且有写缓存器地址相对应时需要等待写缓存器清空的周期和该读操作的总线操作周期,比较第四种操作和第五种操作可以看出,本方法节省了L*(b%)+N+7*S个时钟周期的等待。
此外,本发明的处理器系统数据操作方法在几乎不增加硬件代价的情况下增加了第六种操作。对于不可Cache可写缓存的读操作,写缓存器内有对应的数据地址时,本发明减少了等待写缓存器清空的周期L以及读操作总线延迟的N个周期,使处理器的性能得到明显提升。
使用本发明的处理器系统数据操作方法,在读操作时应用写缓存器回读策略,读取读操作地址对应的写缓存器内的数据为最后一次写入该地址的数据,且该地址的读操作不会在总线上产生实际动作。这样的话,如果仅遵循现有的写缓存器使用限制条件,可能会造成某些错误。例如,I/O端口的数据读写共用一个地址,写发送的数据,读收到的数据,这时读操作读取最后一次写入的数据时可能会造成错误。又例如,某些中断寄存器的读清操作中,数据读取后就自动清零,而写缓存器回读时读操作实际不会在总线上产生,因而会产生错误。因此,本发明处理器系统的数据操作方法需要对写缓存器的使用限制条件进行扩大,本发明的写缓存器使用限制条件为(1)写操作延迟除了影响目标单元的内容外,没有其他副作用。写入写缓存器后,CPU的写操作已经收到完成的信息,但该操作实际没有完成,而是在若干时间后才完成。这样便至少造成两个系统误差,一个是目标单元产生误差,即外设目标单元没有能够即时获得数据,二是CPU以为写操作状态为完成,但实际系统中写操作状态为未完成。第一个误差通常是无法避免的,而第二个误差在某些地址上对系统没有影响(例如,外设访问时),在某些时候会对系统产生影响(例如,清零中断),因而在使用写缓存器时必须设置可写缓存的地址为对系统不会产生影响的地址。
(2)读操作返回最后一次写入的内容,而且没有其他副作用。采用写缓存器回读策略,读操作实际没有在系统上真实执行,这便会产生系统误差。这种误差在某些地址上不会影响系统的状态,因而该地址读入的数据确实就是最后一次写出的数据。但是在某些地址上读入的数据并不是最后写入的数据,而可能是以前写入的数据或者是完全无关的数据,这便会影响系统的状态,因而这样的地址就必须设置为不可写缓存的地址。
(3)读操作不会使目标单元产生操作。与第(2)条限制一样,采用写缓存器回读策略时,在总线上没有实际的读操作产生。但某些地址的读操作实际上是期望外设产生某些操作的,例如读清中断、读清数据段等操作地址,由于总线上没有读操作产生,外设的操作也不会产生,这时系统便会出错。因此,必须设置这些需要产生某种操作的地址为不可写缓存的地址。
权利要求
1.一种处理器系统的数据操作方法,其特征在于,包括a、比较处理器读操作地址与写缓存器内的数据地址;b、写缓存器内有与所述读操作地址对应的数据地址时,处理器读取写缓存器内所述数据地址对应的最近一次写入的数据。
2.根据权利要求1所述的处理器系统的数据操作方法,其特征在于,在所述步骤a之前,还包括c、判断所述读操作地址是否可高速缓存,如果所述读操作地址不可高速缓存,执行所述步骤a和b。
3.根据权利要求2所述的处理器系统的数据操作方法,其特征在于,在所述步骤a之前,还包括d、如果所述读操作地址可高速缓存,进一步判断读所述高速缓冲存储器是否命中,如果读所述高速缓冲存储器未命中,执行所述步骤a和b。
4.根据权利要求3所述的处理器系统的数据操作方法,其特征在于,如果读所述高速缓冲存储器命中,处理器读取所述高速缓冲存储器内命中的数据。
5.根据权利要求2所述的处理器系统的数据操作方法,其特征在于,步骤c中判断所述读操作地址不可高速缓存时,进一步判断所述写缓存器是否为空,若所述写缓存器不为空,执行所述步骤a和b;若所述写缓存器为空,处理器读取主存储器内所述读操作地址对应的数据。
6.根据权利要求1所述的处理器系统的数据操作方法,其特征在于,还包括写缓存器内没有与所述读操作地址对应的数据地址时,处理器读取主存储器内所述读操作地址对应的数据。
7.一种处理器系统,包括处理器以及位于处理器和主存储器之间的写缓存器,其特征在于,还包括控制逻辑模块,所述控制逻辑模块比较所述写缓存器内是否有与所述处理器的读操作地址对应的数据地址,并输出比较结果信息;所述处理器接收所述控制逻辑模块的比较结果信息,当所述比较结果信息表示写缓存器内有与所述处理器读操作地址对应的数据地址时,所述处理器将写缓存器内所述数据地址对应的最后一次写入的数据读回。
8.根据权利要求7所述的处理器系统,其特征在于,还包括高速缓冲存储器,存储所述处理器从主存储器中读出的可高速缓存的数据;所述控制逻辑模块判断所述处理器的读操作地址是否可高速缓存以及所述高速缓冲存储器是否命中,在所述读操作地址不可高速缓存和/或所述高速缓冲存储器未命中时,执行所述处理器读操作地址与所述写缓存器内数据地址的比较。
9.根据权利要求8所述的处理器系统,其特征在于,所述控制逻辑模块包括处理逻辑单元,对所述处理器读操作地址是否可高速缓存进行判断;以及高速缓冲控制逻辑单元,对所述高速缓冲存储器是否命中进行判断,并在所述读操作地址不可高速缓存和/或所述高速缓冲存储器未命中时,执行所述处理器读操作地址与所述写缓存器内数据地址的比较。
10.根据权利要求7所述的处理器系统,其特征在于,所述处理器接收所述控制逻辑模块的比较结果信息,当所述比较结果信息表示写缓存器内没有与所述处理器读操作地址对应的数据地址时,所述处理器读取主存储器内所述读操作地址对应的数据。
11.根据权利要求7所述的处理器系统,其特征在于,还包括复用器,对所述控制逻辑模块和写缓存器的总线传输请求进行优先级判定,在请求冲突时寄存优先级较低的操作。
全文摘要
本发明公开了一种处理器系统及其数据操作方法,所述方法包括比较处理器读操作地址与写缓存器内的数据地址;写缓存器内有与所述读操作地址对应的数据地址时,处理器读取写缓存器内所述数据地址对应的最近一次写入的数据。本发明的处理器系统扩大了写缓存器的使用限制,在几乎不增加任何硬件代价的情况下增加了读缺失但写缓存器命中以及不可高速缓存但写缓存器命中两种操作,直接从写缓存器内的相应地址回读数据,减少了等待写缓存器清空以及读操作总线延迟的时间,提高了处理器的处理能力。
文档编号G06F12/08GK1851673SQ20051012081
公开日2006年10月25日 申请日期2005年12月13日 优先权日2005年12月13日
发明者董杰明, 夏晶 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1