CN100419715C - 嵌入式处理器系统及其数据操作方法 - Google Patents

嵌入式处理器系统及其数据操作方法 Download PDF

Info

Publication number
CN100419715C
CN100419715C CNB2005101018520A CN200510101852A CN100419715C CN 100419715 C CN100419715 C CN 100419715C CN B2005101018520 A CNB2005101018520 A CN B2005101018520A CN 200510101852 A CN200510101852 A CN 200510101852A CN 100419715 C CN100419715 C CN 100419715C
Authority
CN
China
Prior art keywords
write
buffer
data
replacement
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.)
Active
Application number
CNB2005101018520A
Other languages
English (en)
Other versions
CN1851677A (zh
Inventor
董杰明
夏晶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB2005101018520A priority Critical patent/CN100419715C/zh
Publication of CN1851677A publication Critical patent/CN1851677A/zh
Application granted granted Critical
Publication of CN100419715C publication Critical patent/CN100419715C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种嵌入式处理器系统及其数据操作方法。所述嵌入式处理器系统包括:处理器,执行指令和读写操作;高速缓冲存储器,连接在处理器和主存储器之间,为处理器提供高速数据存取;通用写缓存器,连接在处理器与主存储器之间,存储处理器中可缓存的写数据;替换写缓存器,连接在高速缓冲存储器与主存储器之间,存储高速缓冲存储器内被替换的脏数据并在命中后与高速缓冲存储器进行数据替换。本发明在嵌入式处理器系统内采用分离写缓存实现牺牲高速缓存的功能,提高cache命中率,从而提高处理器的读写能力。

Description

嵌入式处理器系统及其数据操作方法
技术领域
本发明涉及数字处理系统,更具体地说,涉及一种嵌入式处理器系统及其数据操作方法。
背景技术
现有的嵌入式处理器系统中,当CPU进行向主存储器的写入操作时,先将数据写入到写缓存器(Buffer)中,由于写缓存器访问速度很高,因而可以提高CPU的写入速度。写缓存器在适当的时候再以较低的速度将数据写入主存储器的相应位置。
此外,还可在嵌入式处理器系统的处理器与主存储器之间嵌入一个高速缓冲存储器(Cache),例如冯·诺依曼结构的高速缓冲存储器,如图1所示,可以提高该处理器的处理能力,进一步减少CPU对主存储器访问的等待时间,减少处理器外设功耗,使处理器能够在单周期内完成大多数数据和指令的读写。
高速缓冲存储器相对于主存储器比较小,位于处理器和操作速度比较低的主存储器之间,其内保存的是目前处理器正在使用的主存储器的副本。高速缓冲存储器与主存储器之间以块为单位进行数据交换。当CPU读取数据或指令时,同时将读取到的数据或指令保存到高速缓冲存储器中。根据程序的空间局部性和时间局部性,当CPU第二次需要读取相同或近似的数据时,可以从相应地高速缓存存储块中获得数据。因为高速缓冲存储器的速度远大于主存储器的速度,因而系统整体性能得到了很大的提高。
处理器系统常用的高速缓冲存储器主要有哈佛结构的高速缓冲存储器和冯·诺依曼结构的高速缓冲存储器两种。哈佛结构的高速缓冲存储器使指令和数据的存放分离,包括指令高速缓存和数据高速缓存两部分,因而指令的替换不会造成将要读写的数据被丢弃的情况,即不会发生指令和数据之间的冲突缺失。冯·诺依曼结构的高速缓冲存储器中,指令预取和数据读写在同一个高速缓存内完成,通常由只有一个存储器接口的处理器所使用。与哈佛结构的高速缓冲存储器相比,冯·诺依曼结构的高速缓冲存储器更容易造成数据和指令的冲突缺失。
现有技术中的通用处理器(例如,个人电脑与工作站使用的处理器)使用哈佛结构的高速缓冲存储器,并使用单一写缓存器和专用的牺牲高速缓存(Victim Cache)结构。如图2所示,在高速缓存发生缺失要访问下层的主存储器之前,检查该牺牲高速缓存,如果找到需要的数据,则将该牺牲高速缓存的数据块与高速缓冲存储器的数据块替换。该处理器中,可缓存的写数据和写回法中脏块的写出都使用同一个写缓存器,因而写缓存器通常大于或等于高速缓冲存储器的数据块的大小,而且替换的存储块写入写缓存器时需要等待写缓存器清空。极端的情况下,写缓存器存满且有较多的非连续性操作时,则等待写缓存器清空的时间可能会非常长,而且在这个等待周期中CPU流水线将被停顿,这造成了CPU性能的下降。这种设计虽然能够有效的减少冲突缺失,但是对功耗和面积的考虑较少,不适用于嵌入式系统,在嵌入式设计中使用一个块长度以上的写缓存和独立的1-5路的牺牲高速缓存都将消耗较大的面积和功率。
Cadence公司推出的处理器系统实现了统一写缓存结构。该处理器系统采用指令和数据统一的冯·诺依曼结构高速缓冲存储器,4路级联,块长度为4,写缓存器的长度为8,并采用写回法读写策略以及LRU(最近最少使用)替换算法。该处理器中,写缓存器长度大于块长度,可以减少数据替换及数据写出时的等待,但这造成了芯片面积的浪费,而且当读缺失发生时,需要等待写缓存器清空的时间会很长,这将造成CPU在读缺失时长时间停顿流水线。该处理器没有使用牺牲高速缓存,如果有较多的数据和指令块被映射到同一组中时,某一个块被丢弃后可能又会被重新调用,这时将造成冲突缺失,从而降低高速缓冲存储器的命中率。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述不足,提供一种嵌入式处理器系统及其数据操作方法,在所述嵌入式处理器系统内采用分离写缓存实现牺牲高速缓存的功能,从而提高处理器的读写能力和命中率。
为解决上述技术问题,本发明所采用的技术方案是:提供一种嵌入式处理器系统的数据操作方法,包括:
在处理器读/写操作地址可高速缓存时,比较处理器读/写操作地址与高速缓冲存储器内的标签,并比较所述处理器读/写操作地址与替换写缓存器内的地址;
所述替换写缓存器命中时,用替换写缓存器内命中的数据块替换高速缓冲存储器内的数据块。
在本发明所述的方法中,所述用替换写缓存器内命中的数据块替换高速缓冲存储器内的数据块包括:
在所述替换写缓存器的传输状态位表示所述替换写缓存器的总线操作还未开始或已经结束时,将所述替换写缓存器内命中的数据块写入所述高速缓冲存储器。
本发明所述的方法还包括:所述高速缓冲存储器命中时,处理器直接读/写高速缓冲存储器内命中的数据块。
本发明所述的方法还包括:所述高速缓冲存储器和所述替换写缓存器均未命中时,处理器直接读写主存储器内所述处理器读/写操作地址对应的数据,并将所述数据写入高速缓冲存储器内。
本发明所述的方法还包括:所述处理器读操作地址不可高速缓存时,判断用于缓存所述处理器待写入主存储器的数据的通用写缓存器是否为空,并在通用写缓存器为空时直接从主存储器读取所述处理器读操作地址对应的数据。
本发明所述的方法还包括:所述处理器写操作地址不可高速缓存时,直接将数据写入用于缓存所述处理器待写入主存储器的数据的通用写缓存器,由所
述通用写缓存器在总线空闲时再写入主存储器。
在本发明所述的方法中,高速缓冲存储器内将被替换的数据块为脏块时,将所述将被替换的数据块写入替换写缓存器内,由替换写缓存器在总线空闲时再写入主存储器;高速缓冲存储器内将被替换的数据块为干净块时,将其直接丢弃。
在本发明所述的方法中,所述高速缓冲存储器内被替换的数据块采用LRU算法、随机算法、FIFO算法、轮循算法或伪LRU算法确定。
本发明还提供一种嵌入式处理器系统,包括:
处理器,执行指令和读写操作;
高速缓冲存储器,连接在处理器和主存储器之间,为处理器提供高速数据存取;
通用写缓存器,连接在处理器与主存储器之间,存储处理器中可缓存的写数据,并在总线空闲时将缓存的数据写入主存储器;
替换写缓存器,连接在高速缓冲存储器与主存储器之间,存储高速缓冲存储器内被替换出来的脏数据以在总线空闲时写入主存储器,所述替换写缓存器命中时用命中的数据块与高速缓冲存储器进行数据替换。
本发明所述的嵌入式处理器系统还包括高速缓存控制逻辑,控制处理器的操作请求,比较处理器读/写操作地址与高速缓冲存储器内的标签,并比较所述处理器读/写操作地址与替换写缓存器内的地址。
本发明所述的嵌入式处理器系统中,所述替换写缓存器设有传输状态位以表示替换写缓存器的总线操作状态;所述高速缓存控制逻辑在所述替换写缓存器的传输状态位表示所述替换写缓存器的总线操作还未开始或已经结束时,将所述替换写缓存器内命中的数据块写入所述高速缓冲存储器。
本发明所述的嵌入式处理器系统还包括复用器,对高速缓存控制逻辑、通用写缓存器和替换写缓存器的总线传输请求进行优先级判定。所述优先级为:任何操作后续的连续操作优先级最高,其次是高速缓冲存储器读写操作,再其次是通用写缓存器写操作,最后是替换写缓存器写操作。
在本发明所述的嵌入式处理器系统中,所述处理器还包括处理逻辑单元,用于判定处理器读/写操作地址是否可高速缓存或可缓存。
在本发明所述的嵌入式处理器系统中,所述通用写缓存器的长度为4字。
在本发明所述的嵌入式处理器系统中,所述替换写缓存器的长度与所述高速缓冲存储器数据块的长度相同。
在本发明所述的嵌入式处理器系统中,所述替换写缓存器的传输状态位为“0”时表示所述替换写缓存器的总线写操作还未开始或已经结束,所述传输状态位为“1”时表示所述替换写缓存器的总线写操作正在进行中。
实施本发明的嵌入式处理系统以及嵌入式处理器系统的数据操作方法,具有以下有益效果:
1、减少了不可高速缓存(不可Cache)的读操作的等待时间;
2、增加了两种操作:高速缓存缺失替换写缓存命中且替换为脏的操作和高速缓存缺失替换写缓存命中且替换不为脏的操作,从而提高了高速缓冲存储器的命中率;
3、本发明使用专用的替换写缓存器,从而减少了高速缓存与替换写缓存均缺失且替换为脏时的等待周期。
附图说明
图1是现有技术中一种嵌入式处理器系统的结构框图;
图2是现有技术中使用牺牲高速缓存的嵌入式处理器系统的结构示意图;
图3是本发明嵌入式处理器系统的结构框图;
图4是本发明嵌入式处理器系统的一个实施例的结构框图;
图5是现有技术中单一写缓存的结构示意图;
图6是本发明嵌入式处理器系统中分离写缓存的结构示意图;
图7是本发明嵌入式处理器系统的读操作流程图;
图8是本发明嵌入式处理器系统的写操作流程图;
图9是本发明一个实施例中MUX的典型时序图。
具体实施方式
以下将结合附图及实施例对本发明作进一步地说明:
在具有高速缓冲存储器(Cache)的嵌入式处理器系统内,当CPU发出读指令时,高速缓冲存储器的控制逻辑即进行地址比较,以决定所要读取的数据地址是否存在于高速缓冲存储器中。若存在于高速缓冲存储器中,则直接从高速缓冲存储器内读取数据,此事件即被称为读取成功(命中)。反之,若不存在于高速缓冲存储器中,则从系统主存储器中取回数据至高速缓冲存储器,并同时提供该数据给CPU,此事件即被称为读取失败(缺失)。另外,当CPU发出写指令时,高速缓冲存储器的控制逻辑即进行地址比较,以决定所要写入的数据地址是否存在于高速缓冲存储器中。若存在于高速缓冲存储器中,则将数据写入高速缓冲存储器内,此事件即称为写入成功(命中)。反之,若不存在于高速缓冲存储器中,则将数据通过写缓存器写入系统主存储器中,此事件即称为写入失败(缺失)。在采用写回策略的高速缓冲存储器内,被写入数据的存储块的状态会被设定成与主存储器不一致,即脏块(Dirty);与主存储器一致的数据块则设定为干净块(Clean)。
采用写回策略的高速缓冲存储器内,发生访问缺失时,脏的数据块将被替换,一般都是将脏的数据复制到写缓存器后就去读主存储器,这样可以使CPU的读操作提前于写操作进行,减少了读操作的等待时间。但是,脏块写入写缓存器需要停顿CPU,等待写缓存器清空。为了防止这种情况发生,本发明的嵌入式处理器系统将写缓存器分离为通用写缓存器和替换写缓存器两个。如图3所示,本发明的嵌入式处理器系统主要包括处理器302、高速缓冲存储器304、通用写缓存器306、替换写缓存器308。处理器302通过系统总线310对主存储器312进行存取。处理器302可以是中央处理器(CPU)或者一般的微处理器、数字信号处理器等。高速缓冲存储器304连接在处理器302和主存储器312之间,替换写缓存器308作为高速缓冲存储器304的替换路径位于高速缓冲存储器304与主存储器312之间。通用写缓存器306连接在处理器302与主存储器312之间,存储处理器302的可缓存写数据。高速缓冲存储器304内设有一个标签目录表,记录高速缓冲存储器304内的数据块与主存储器数据块的映射关系。处理器302读写操作时,对于可cache的操作地址,不仅比较所述处理器302的操作地址与高速缓冲存储器304内的标签(Tag),还将所述操作地址与替换写缓存器308内的地址进行比较;如果与替换写缓存器308内地址相同(即命中),则用替换写缓存器308内命中的数据块替换高速缓冲存储器304内的数据块。如果高速缓冲存储器304内将被替换的数据块为脏块,则将所述将被替换的数据块写入替换写缓存器308内,由替换写缓存器308在总线310空闲时再写入主存储器312。如果高速缓冲存储器304内将被替换的数据块为干净块,则将其直接丢弃。替换完成后,处理器302的读写操作将以命中方式在高速缓冲存储器304内完成。
图4是本发明嵌入式处理器系统一个实施例的结构框图。如图4所示,该嵌入式处理器系统包括有CPU 402、高速缓冲存储器404、通用写缓存器406、替换写缓存器408,还包括有处理逻辑单元(PU)401、高速缓存控制逻辑403、复用器(MUX)405、封装器(Wrapper)407。PU 401为组合逻辑,在CPU有效操作的一个周期内返回该操作是否可高速缓存、是否可缓存以及该操作地址是否被保护。高速缓存控制逻辑403用来处理所有CPU操作请求。高速缓存控制逻辑403执行CPU操作地址与高速缓冲存储器404内标签的比较,并执行该操作地址与替换写缓存器408内地址的比较,然后返回高速缓冲存储器404和/或替换写缓存器406命中和/或未命中的信息。如图4所示,通用写缓存器406存储CPU可缓存的写数据,替换写缓存器408存储高速缓冲存储器404被替换的脏数据,在总线410空闲时再由二者将数据写入主存储器内。这样的话,高速缓存控制逻辑403、通用写缓存器406和替换写缓存器408三者都可能产生传输请求,而数据到AHB总线410的通路只有一条,因而本发明的嵌入式处理器系统内还包括MUX 405,对高速缓存控制逻辑403、通用写缓存器406和替换写缓存器408的总线传输请求进行优先级判定,在数据请求冲突时寄存优先级比较低的操作。封装器407为CPU外嵌模块,用以桥接处理器总线和AHB总线410,其为现有技术,因而在此不作详细描述。
一般来说,通用写缓存器406的长度为4字即可满足系统性能的要求,替换写缓存器408的长度与高速缓冲存储器404数据块的长度相同。若高速缓冲存储器404的块长度为8字时,本发明将现有的8字单一写缓存(如图5所示)分离为一个4字的通用写缓存器406和一个8字的专用替换写缓存器408,如图6所示。原8字单一写缓存需要8个32位的地址寄存器(A-register)和8个32位的数据寄存器(D-register)。本发明的分离写缓存结构中,4字通用写缓存器406需要4个32位的地址寄存器和4个32位的数据寄存器,因而高速缓冲存储器404排出的数据块为连续数据,替换写缓存器408只需要1个32位地址寄存器和8个32位数据寄存器。这样的话,本发明实际增加的寄存器为1个32位寄存器。如果高速缓冲存储器404的长度大于8,本发明的分离写缓存结构还会减少需要的寄存器的数量。例如,若高速缓冲存储器404的块长度为16字时,单一写缓存需要16个32位的地址寄存器和16个32位的数据寄存器,而本发明的分离写缓存结构中,4字的通用写缓存器需要4个32位的地址寄存器和4个32位的数据寄存器,16字的替换写缓存器只需要1个32位地址寄存器和16个32位数据寄存器,这样的话,便可减少7个寄存器。此外,如图6所示,本发明在替换写缓存器408中还设有传输状态位(B),该传输状态位可以用1位来表示,当传输状态位为“0”时表示替换写缓存器408的总线写操作还未开始或已经结束,当传输状态位为“1”时表示替换写缓存器408的总线写操作正在进行中。
以下将结合图7和图8详细介绍本发明嵌入式处理器系统的操作流程。图7是本发明嵌入式处理器系统的读操作流程图。如图7所示,CPU发出读操作指令(步骤701)后,步骤702中,PU将进行操作地址判定,以确定CPU读操作地址是否可缓存、是否可Cache以及该地址是否被保护。如果该地址被保护,PU将返回错误信息(步骤703)。CPU读操作时,不管PU判定该操作地址是否可缓存,CPU都会忽略该判定结果,因为是否可缓存对于CPU读操作来说没有任何意义。
步骤705中,如果CPU读操作不可Cache,CPU将直接从主存储器读取该读操作地址对应的数据。为了避免写缓存和读操作的先读后写所产生的数据冲突,即读操作优于写操作进行,而该操作地址对应的数据还未从写缓存写入主存储器内,控制逻辑将判断通用写缓存器是否为空(步骤706)。若通用写缓存器不为空,则停顿CPU,等待清空通用写缓存器(步骤708),然后执行步骤707。若通用写缓存器为空,则直接执行步骤707,AHB总线接口执行读操作,从主存储器内读取该操作地址对应的数据提供给CPU,完成此次CPU读操作(步骤717)。
如果PU判定CPU读操作为可Cache的读操作,步骤709中,高速缓存控制逻辑将CPU读操作地址与高速缓冲存储器内的标签进行比较。如果该操作地址与高速缓冲存储器内的某个标签相匹配,即高速缓冲存储器命中,对应的数据被读出并提供给CPU,该读操作完成。
此外,步骤714中,高速缓存控制逻辑将CPU读操作地址与替换写缓存器内的地址进行比较。如果该操作地址与替换写缓存器内的某个地址相同,即替换写缓存器命中,步骤715中,替换写缓存器与高速缓冲存储器之间进行数据块替换。此时,如果替换写缓存器的传输状态位为“1”,需要等待替换写缓存器的总线写操作完成并将传输状态位置“0”。如果替换写缓存器的传输状态位为“0”,则替换写缓存器内命中的数据块将被重新写入高速缓冲存储器内,而高速缓冲存储器内对应的被替换的数据块如果干净则直接舍去,如果为脏块,则写入替换写缓存器内,由替换写缓存器在总线空闲时再写入主存储器。。替换完成后,步骤716中,CPU以命中方式在高速缓冲存储器内读取操作地址对应的数据,然后,此次CPU读操作完成(步骤717)。
对于可Cache的读操作,如果高速缓冲存储器和替换写缓存器均未命中,CPU将直接读取主存储器,高速缓冲存储器内将进行正常替换。首先,步骤710中,高速缓冲控制逻辑将判定高速缓冲存储器内将被替换的数据块是否是脏块。如果是脏块,步骤712中,该脏块将在替换写缓存器传输状态位为“0”时被写入替换写缓存器内,由替换写缓存器在总线空闲时再写入主存储器。如果不是脏块,步骤711中,高速缓冲控制逻辑将在通用写缓存器为空的情况下驱动AHB总线接口从主存储器内连续读取CPU操作地址对应的数据块,如果通用写缓存器不为空,则先等待通用写缓存器清空。然后步骤713中,将该读操作地址对应的数据写回高速缓冲存储器内确定被替换的数据块内,然后CPU在高速缓冲存储器内读取所述数据,完成此次读操作(步骤717)。
图8是本发明嵌入式处理器系统的写操作流程图。如图8所示,CPU发出写操作指令(步骤801)后,步骤802中,PU将进行操作地址判定,以确定CPU读操作地址是否可缓存、是否可Cache以及该地址是否被保护。如果该地址被保护,PU将返回错误信息(步骤803)。
步骤804中,如果该写操作地址不可缓存(必然也不可Cache),CPU通过ABH总线接口直接将数据写入主存储器内该操作地址对应的位置(步骤805),然后完成此次写操作(步骤818)。
如果PU判定写操作地址可缓存(但是该操作地址不可Cache),则执行写缓存操作。步骤807中,先确定通用写缓存器是否已满。如果通用写缓存器已满,步骤808中,停顿CPU,等待通用写缓存器内的数据写入主存储器内,腾出空位,然后执行步骤809。如果通用写缓存器内有空位,步骤809中,CPU直接将写数据写入通用写缓存器,由通用写缓存器在总线空闲时再写入主存储器。至此,此次CPU写操作正确完成(步骤818)。
步骤806中,如果PU判定CPU写操作地址可Cache,那么,高速缓存控制逻辑将CPU写操作地址与高速缓冲存储器内的标签进行比较(步骤810)。如果该写操作地址与高速缓冲存储器内的某个标签相匹配,即高速缓冲存储器命中,CPU将写数据写入高速缓冲存储器内命中的数据块。如果此时高速缓冲存储器内该命中的数据块为脏块,则先将该脏块写入替换写缓存器内,然后再将CPU写数据写入该数据块,完成此次写操作。
此外,步骤815中,高速缓存控制逻辑将CPU写操作地址与替换写缓存器内的地址进行比较。如果该写操作地址与替换写缓存器内的某个地址相同,即替换写缓存器命中,步骤816中,替换写缓存器与高速缓冲存储器之间进行数据块替换。此时,如果替换写缓存器的传输状态位为“1”,需要等待替换写缓存器的总线写操作完成并将传输状态位置“0”。如果替换写缓存器的传输状态位为“0”,则替换写缓存器内命中的数据块将被重新写入高速缓冲存储器内,而高速缓冲存储器内对应的被替换的数据块如果干净则直接舍去,如果为脏块,则写入替换写缓存器内,由替换写缓存器在总线空闲时再写入主存储器。。替换完成后,步骤817中,CPU以命中方式将写数据写入高速缓冲存储器内然后,此次CPU写操作完成(步骤818)。
对于可Cache的写操作,如果高速缓冲存储器和替换写缓存器均未命中,CPU将直接将数据写入通用写缓存器,如果通用写缓存器已满,则先等待通用写缓存器腾出空位。同时,高速缓冲存储器内进行正常替换操作:
步骤811中,高速缓冲控制逻辑将判定高速缓冲存储器内将被替换的数据块是否是脏块。如果是脏块,步骤812中,该脏块将在替换写缓存器传输状态位为“0”时被写入替换写缓存器内,由替换写缓存器在总线空闲时再写入主存储器。如果不是脏块,步骤813中,高速缓冲控制逻辑驱动AHB总线接口从主存储器内连续读取CPU写操作地址对应的数据块,然后步骤814中,读出的数据块写入高速缓冲存储器内,然后此次CPU写操作正确完成(步骤818)。
上述CPU读写操作过程中,高速缓冲存储器内被替换的数据块可以采用最近最少使用(LRU)算法来确定,当然,本发明并不仅限于此,本发明还可以采用先进先(FIFO)算法、随机算法、轮循算法、伪LRU算法等其他现有的替换算法。
上述的CPU读写操作过程中,为保证连续操作的完整,MUX对高速缓冲存储器产生的读写操作、通用写缓存器写操作和替换写缓存器写操作进行优先级判定,各操作的优先级为:任何操作后续的连续操作优先级最高,其次是高速缓冲存储器产生的读写操作,再其次是通用写缓存器写操作,最后是替换写缓存器写操作。替换写缓存器如果命中,其中的数据将会被重新读回高速缓冲存储器中,这时替换写缓存器内的数据是否已经写入主存储器都不会产生错误,但是,如果数据已经写入主存储器,其写入主存储器的操作相当于无用的总线写操作,浪费了总线带宽。故而设定替换写缓存器写操作的优先级最低,这样可以尽量推迟替换写缓存器在AHB总线的写操作,减少带宽浪费。
上述三种优先级的操作在无冲突的情况下,谁先发出操作谁有效,MUX拉低通用写缓存器、替换写缓存器和高速缓冲存储器的READY信号,直到操作完成。
上述三种操作如果发生冲突,MUX先将通用写缓存器、替换写缓存器和高速缓冲存储器三方的READY信号同时拉低,然后根据优先级对其中一方的操作进行处理,同时使用寄存器将优先级低的操作寄存。处理完成后,将被处理一方的READY信号置高一个时钟周期,以通知该方操作已经完成,同时检测该方是否还有后续操作。如果该方没有后续操作,则处理寄存的优先级较低的操作;如果该方还有后续操作,则再将该后续操作与寄存在寄存器内的其他操作进行优先级判定,执行优先级高的操作,寄存优先级低的操作。MUX内的典型时序图如图9所示。
本发明所述的嵌入式处理器系统内,CPU的不同操作请求及其对应的等待周期如下表-1所示:
  编号   CPU操作请求  CPU等待周期
  1   读写命中  0
  2   不可Cache读操作,  1+N+T
  3   不可Cache 且不可缓存写操作  1+N
  4   不可Cache但可缓存写操作  1+W*(a%)
  5   读写操作缺失但替换写缓存命中且替换为脏  1+L*(b%)+2
  6   读写操作缺失但替换写缓存命中且替换不为脏  1+L*(b%)+1
  7   读写操作缺失且替换写缓存缺失且替换为脏  1+N+7*S+L*(b%)
  8   读写操作缺失且替换写缓存缺失且替换不为脏  1+N+7*S
表-1CPU不同操作的等待周期
其中,1+为判定高速缓冲存储器是否命中的判定周期,T为等待通用写缓存器清空的时间,W为通用写缓存器满时需要等待通用写缓存器腾出一个数据空间的时间(该操作发生的概率假设为a%,该概率较低),N为总线单次操作消耗的周期数,S为总线连续操作中一次读写消耗的周期数,L为等待替换写缓存器清空所需的平均时间(该操作发生的概率假设为b%,该概率极低)。
由上表可知,本发明的嵌入式处理器系统减少了不可Cache读操作的等待时间。不可Cache的读操作需要等待写缓存器清空后才可以进行。现有技术采用单一写缓存器结构时,需要等待写缓存器内可缓存(可Buffer)的数据和替换数据都写出后才能执行该读操作,而本发明采用的分离写缓存器结构,只需等待通用写缓存器内可缓存的数据清空即可,不需要等待替换数据的清空。
此外,本发明的嵌入式处理器系统增加了两种操作:高速缓存缺失替换写缓存命中且替换为脏的操作和高速缓存缺失替换写缓存命中且替换不为脏的操作。这两种操作可以有效的减少因指令和数据中有太多块被映射到同一个地址而造成该块被丢弃后重新调用所引起的冲突缺失,提高了高速缓冲存储器的命中率。
本发明的嵌入式处理器系统使用专用的替换写缓存器,从而减少了高速缓存与替换写缓存均缺失且替换为脏时的等待周期。本发明将替换数据直接写入替换写缓存器,而现有处理器中该操作的等待周期还需要加上等待写缓存器清空的时间。
以上结合附图介绍的本发明具体实施例中,高速缓冲存储器采用指令和数据统一存放的冯·诺依曼结构高速缓冲存储器,但是本发明并不仅限于此,根据本发明上述揭示的内容,本领域的技术人员可知,本发明亦适用于指令与数据分离存放的哈佛结构高速缓冲存储器。

Claims (15)

1. 一种嵌入式处理器系统的数据操作方法,其特征在于,包括:
在处理器读/写操作地址可高速缓存时,比较处理器读/写操作地址与高速缓冲存储器内的标签,并比较所述处理器读/写操作地址与替换写缓存器内的地址;
所述替换写缓存器命中时,用替换写缓存器内命中的数据块替换高速缓冲存储器内的数据块。
2. 根据权利要求1所述的嵌入式处理器系统的数据操作方法,其特征在于,所述用替换写缓存器内命中的数据块替换高速缓冲存储器内的数据块包括:
在所述替换写缓存器的传输状态位表示所述替换写缓存器的总线操作还未开始或已经结束时,将所述替换写缓存器内命中的数据块写入所述高速缓冲存储器。
3. 根据权利要求1所述的嵌入式处理器系统的数据操作方法,其特征在于,所述方法还包括:
所述高速缓冲存储器命中时,处理器直接读/写高速缓冲存储器内命中的数据块。
4. 根据权利要求1所述的嵌入式处理器系统的数据操作方法,其特征在于,所述方法还包括:
所述高速缓冲存储器和所述替换写缓存器均未命中时,处理器直接读写主存储器内所述处理器读/写操作地址对应的数据,并将所述数据写入高速缓冲存储器内。
5. 根据权利要求1所述的嵌入式处理器系统的数据操作方法,其特征在于,所述方法还包括:
所述处理器读操作地址不可高速缓存时,判断用于缓存所述处理器待写入主存储器的数据的通用写缓存器是否为空,并在通用写缓存器为空时直接从主存储器读取所述处理器读操作地址对应的数据。
6. 根据权利要求1所述的嵌入式处理器系统的数据操作方法,其特征在于,所述方法还包括:
所述处理器写操作地址不可高速缓存时,直接将数据写入用于缓存所述处理器待写入主存储器的数据的通用写缓存器,由所述通用写缓存器在总线空闲时再写入主存储器。
7. 根据权利要求1至6中任一项所述的嵌入式处理器系统的数据操作方法,其特征在于,高速缓冲存储器内将被替换的数据块为脏块时,将所述将被替换的数据块写入替换写缓存器内,由替换写缓存器在总线空闲时再写入主存储器;高速缓冲存储器内将被替换的数据块为干净块时,将其直接丢弃。
8. 根据权利要求7所述的嵌入式处理器系统的数据操作方法,其特征在于,高速缓冲存储器内被替换的数据块采用LRU算法、随机算法、FIFO算法、轮循算法或伪LRU算法确定。
9. 一种嵌入式处理器系统,其特征在于,包括:
处理器,执行指令和读写操作;
高速缓冲存储器,连接在处理器和主存储器之间,为处理器提供高速数据存取;
通用写缓存器,连接在处理器与主存储器之间,存储处理器中可缓存的写数据,并在总线空闲时将缓存的数据写入主存储器;
替换写缓存器,连接在高速缓冲存储器与主存储器之间,存储高速缓冲存储器内被替换出来的脏数据以在总线空闲时写入主存储器,所述替换写缓存器命中时用命中的数据块与高速缓冲存储器进行数据替换。
10. 根据权利要求9所述的嵌入式处理器系统,其特征在于,还包括高速缓存控制逻辑,控制处理器的操作请求,比较处理器读/写操作地址与高速缓冲存储器内的标签,并比较所述处理器读/写操作地址与替换写缓存器内的地址。
11. 根据权利要求10所述的嵌入式处理器系统,其特征在于,所述替换写缓存器设有传输状态位以表示替换写缓存器的总线操作状态;所述高速缓存控制逻辑在所述替换写缓存器的传输状态位表示所述替换写缓存器的总线操作还未开始或已经结束时,将所述替换写缓存器内命中的数据块写入所述高速缓冲存储器。
12. 根据权利要求11所述的嵌入式处理器系统,其特征在于,所述传输状态位为“0”时表示所述替换写缓存器的总线写操作还未开始或已经结束,所述传输状态位为“1”时表示所述替换写缓存器的总线写操作正在进行中。
13. 根据权利要求10所述的嵌入式处理器系统,其特征在于,还包括复用器,对高速缓存控制逻辑、通用写缓存器和替换写缓存器的总线传输请求进行优先级判定。
14. 根据权利要求13所述的嵌入式处理器系统,其特征在于,所述优先级为:任何操作后续的连续操作优先级最高,其次是高速缓冲存储器产生的读写操作,再其次是通用写缓存器写操作,最后是替换写缓存器写操作。
15. 根据权利要求9所述的嵌入式处理器系统,其特征在于,所述处理器还包括处理逻辑单元,用于判定处理器读/写操作地址是否可高速缓存或可缓存。
CNB2005101018520A 2005-11-25 2005-11-25 嵌入式处理器系统及其数据操作方法 Active CN100419715C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005101018520A CN100419715C (zh) 2005-11-25 2005-11-25 嵌入式处理器系统及其数据操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005101018520A CN100419715C (zh) 2005-11-25 2005-11-25 嵌入式处理器系统及其数据操作方法

Publications (2)

Publication Number Publication Date
CN1851677A CN1851677A (zh) 2006-10-25
CN100419715C true CN100419715C (zh) 2008-09-17

Family

ID=37133156

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005101018520A Active CN100419715C (zh) 2005-11-25 2005-11-25 嵌入式处理器系统及其数据操作方法

Country Status (1)

Country Link
CN (1) CN100419715C (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102103549A (zh) * 2009-12-18 2011-06-22 上海华虹集成电路有限责任公司 一种缓存替换方法
CN102725752B (zh) * 2011-10-20 2014-07-16 华为技术有限公司 处理脏数据的方法及装置
CN103548005B (zh) * 2011-12-13 2016-03-30 华为技术有限公司 替换缓存对象的方法和装置
US8793442B2 (en) * 2012-02-08 2014-07-29 International Business Machines Corporation Forward progress mechanism for stores in the presence of load contention in a system favoring loads
CN102646071B (zh) * 2012-02-17 2014-07-30 中国科学院微电子研究所 单周期执行高速缓存写命中操作的装置及方法
WO2013148872A1 (en) * 2012-03-28 2013-10-03 Huawei Technologies Co., Ltd. Concurrently accessed set associative overflow cache
US10156887B2 (en) * 2016-09-29 2018-12-18 Qualcomm Incorporated Cache memory clock generation circuits for reducing power consumption and read errors in cache memory
CN108132758A (zh) * 2018-01-10 2018-06-08 湖南国科微电子股份有限公司 一种Buffer管理方法、系统及其应用
CN108874517B (zh) * 2018-04-19 2021-11-02 华侨大学 固定优先级待机备用系统利用率划分能耗优化方法
CN112612727B (zh) * 2020-12-08 2023-07-07 成都海光微电子技术有限公司 一种高速缓存行替换方法、装置及电子设备
CN114528230B (zh) * 2022-04-21 2022-12-30 飞腾信息技术有限公司 缓存数据处理方法、装置及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6425058B1 (en) * 1999-09-07 2002-07-23 International Business Machines Corporation Cache management mechanism to enable information-type dependent cache policies
CN1535415A (zh) * 2001-07-24 2004-10-06 �Ƚ�΢װ�ù�˾ 具有二级分支预测高速缓存的分支预测装置
US20050125592A1 (en) * 2003-12-09 2005-06-09 International Business Machines Corporation Multi-level cache having overlapping congruence groups of associativity sets in different cache levels
CN1661571A (zh) * 2003-09-04 2005-08-31 国际商业机器公司 高速缓存的数据替换系统和确定方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6425058B1 (en) * 1999-09-07 2002-07-23 International Business Machines Corporation Cache management mechanism to enable information-type dependent cache policies
CN1535415A (zh) * 2001-07-24 2004-10-06 �Ƚ�΢װ�ù�˾ 具有二级分支预测高速缓存的分支预测装置
CN1661571A (zh) * 2003-09-04 2005-08-31 国际商业机器公司 高速缓存的数据替换系统和确定方法
US20050125592A1 (en) * 2003-12-09 2005-06-09 International Business Machines Corporation Multi-level cache having overlapping congruence groups of associativity sets in different cache levels

Also Published As

Publication number Publication date
CN1851677A (zh) 2006-10-25

Similar Documents

Publication Publication Date Title
CN100419715C (zh) 嵌入式处理器系统及其数据操作方法
US11347649B2 (en) Victim cache with write miss merging
EP2430551B1 (en) Cache coherent support for flash in a memory hierarchy
CN100370440C (zh) 处理器系统及其数据操作方法
CN102473138B (zh) 具有用于页面错误处理的闪存的扩展主存储器层次结构
JPH04233641A (ja) データプレフェッチの方法およびその装置
JPH036757A (ja) ライトバツクデータキヤツシユメモリ装置
JPH07502356A (ja) 主メモリに対するアクセスを減らすことによって電力消費を減少させるキャッシュメモリ階層
US6748496B1 (en) Method and apparatus for providing cacheable data to a peripheral device
JP2008502069A (ja) メモリ・キャッシュ制御装置及びそのためのコヒーレンシ動作を実行する方法
JP3262519B2 (ja) 第2レベルキャッシュの古いラインの除去によるプロセッサのメモリ性能の強化方法及びシステム
WO2005066798A1 (en) A protocol for maitaining cache coherency in a cmp
US6449698B1 (en) Method and system for bypass prefetch data path
US5287512A (en) Computer memory system and method for cleaning data elements
US6976130B2 (en) Cache controller unit architecture and applied method
JP2001249846A (ja) キャッシュメモリ装置及びデータ処理システム
JPH04250543A (ja) コンピューターメモリシステム
JP2001222467A (ja) キャッシュ装置
US6298417B1 (en) Pipelined cache memory deallocation and storeback
JP4307604B2 (ja) 部分キャッシュ・クリーニングを用いるコンピュータ回路システムと方法
WO1998003918A1 (fr) Dispositif d'antememoire et systeme de traitement d'informations
JPH02224042A (ja) キャッシュデータアクセス方法及び装置
KR20070017551A (ko) Dma, 태스크 종료 및 동기화 동작들을 위한 캐시코히어런시 유지

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant