CN100395731C - 处理器及其数据操作方法 - Google Patents
处理器及其数据操作方法 Download PDFInfo
- Publication number
- CN100395731C CN100395731C CNB2006100339124A CN200610033912A CN100395731C CN 100395731 C CN100395731 C CN 100395731C CN B2006100339124 A CNB2006100339124 A CN B2006100339124A CN 200610033912 A CN200610033912 A CN 200610033912A CN 100395731 C CN100395731 C CN 100395731C
- Authority
- CN
- China
- Prior art keywords
- processor
- address
- continued
- bus
- cacheable
- 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
Links
Images
Abstract
本发明公开了一数据种处理器及其数据操作方法。所述处理器的数据操作方法包括:接收处理器内核发出的操作,当所述操作为不可高速缓存非连续操作时,在所述不可高速缓存非连续操作的第一周期,在高速缓存控制器与封装器之间的处理器总线上发出空闲操作;在所述不可高速缓存非连续操作的第二周期,在所述处理器总线上发出连续操作。所述方法进一步包括:当所述处理器内核发出的操作为不可高速缓存连续操作时,在所述高速缓存控制器与封装器之间的处理器总线上发出的连续操作的下一个周期开始时,对所述连续操作的下一次操作地址进行预测。本发明在处理器中使用I-S操作模式和地址预测技术后,能显著提高处理器性能,减少CPU的等待时间。
Description
技术领域
本发明涉及嵌入式处理器,更具体地说,涉及一种处理器及其数据操作方法。
背景技术
ARM7TDMI是ARM公司应用较为广泛的嵌入式处理器内核,主要应用于低端的嵌入式系统。ARM公司通常以硬核结构将ARM7TDMI提供给用户,ARM7TDMI不包括任何储存单元,也不包括PU及MMU逻辑,该处理器核使用独立的CPU总线接口。A7TWrap是ARM公司随ARM7TDMI一起提供的处理器外包逻辑,该逻辑的主要功能是将CPU总线传输时序转换为AHB总线传输时序。
ARM7TDMI+A7TWrap结构是目前使用得较广的ARM7芯片的一种处理器结构,如图1a所示。ARM7TDMI通过A7TWrap和AHB总线进行交互。在ARM7TDMI和A7Wrap之间嵌入一个冯·诺依曼结构的高速缓存(Cache),是ARM7TDMI处理器性能扩展的一个较好的方法,其结构如图1b所示(图中ARM7TDMI和A7TWrap的交互信号是部分非传输管脚的配置信号)。这种结构可以提高ARM7TDMI的处理能力,减少ARM7TDMI对主存访问的等待时间,减少外设功耗,使ARM7芯片能够以单周期完成大多数数据和指令的读写。
高速缓存的存在可以提高系统性能,对于可高速缓存的数据或指令,如果高速缓存命中,该操作单周期内即可完成。但是对于系统中很多不可高速缓存的地址区域,例如DMA搬运区、外设接口等等,在ARM7TDMI直接访问这些区域时,高速缓存的存在通常会使访问操作增加额外的损耗周期(PenaltyCycle),即高速缓存缺失的访问开销。
日本的IC厂商针对ARM7TDMI+A7TWrap结构设计了冯·诺依曼结构的高速缓存,4路级联,块长度为8,使用LRU替换算法,并包括有PU模块。该高速缓存在ARM7TDMI发出指令操作时首先对该操作进行寄存,然后在后一周期完成命中、可高速缓存、PU的判定后,如果该操作地址不可高速缓存才对A7TWrap发出操作请求。因为高速缓存实际发出的操作请求较ARM7TDMI原来的操作请求晚了一个周期,该高速缓存对ARM7TDMI的每次操作请求都增加了一个空闲(IDLE)操作周期的开销,即一个IDLE Penalty。因此,ARM7TDMI的每一个不可高速缓存的操作在传输给A7TWrap时都被分成了一个IDLE操作加一个NONSEQ(非连续)操作。而且,由于该高速缓存对ARM7TDMI的每一个不可高速缓存的操作都增加了一个IDLE操作,因此该高速缓存无法支持ARM7TDMI发出的不可高速缓存的连续操作,即所有不可高速缓存的连续操作都被拆分为独立操作,每一个独立操作再由一个IDLE操作加一个NONSEQ操作来实现。
未采用高速缓存时(如图1a所示),ARM7TDMI对A7TWrap的操作时序如图2a所示。采用了高速缓存时(如图1b所示),ARM7TDMI对A7TWrap的操作时序如图2b所示。这里的时序图没有考虑A7TWrap将CPU总线时序转换为AHB总线时序时的延迟,其中nMREQ信号为操作请求信号,n表示低有效,SEQ信号为连续操作请求信号。由该时序图可以看到,在IDLE周期的时候CPU刚发出请求,这个时候无法完成命中判定,在下一个时钟上升沿高速缓存打了一拍,没命中的操作就被输出。
RM7TDMI通过nMREQ信号及SEQ信号实现其不同的操作模式,这两个信号的不同值对应的操作模式如下表1所示。
nMREQ | SEQ | 操作模式 | 描述 |
0 | 0 | N | NONSEQ,非连续操作 |
0 | 1 | S | SEQ,连续操作 |
1 | 0 | I | IDLE,空闲操作 |
1 | 1 | C | 协处理器操作 |
表1
ARM7TDMI的操作模式和AHB总线操作模式类似。非连续操作是指ARM7TDMI的单次操作或者指连续操作的第一个操作位,非连续操作的上一个操作可以是其他任何一种操作模式。连续操作是指ARM7TDMI发起的一次连续的数据或指令操作,连续操作过程中,总线信号都不可改变。通常而言,连续操作是由非连续操作发起的,也就是说,连续操作的第一个操作位必须是非连续操作,即NONSEQ+SEQ+SEQ+SEQ……。空闲操作为ARM7TDMI内部操作,此时总线处于空闲状态。本发明不涉及协处理器,所以后续描述中不考虑协处理器操作。
对于ARM7TDMI,其连续操作还存在一个特殊的操作模式,即I-S操作模式,其包括第一周期的IDLE操作和第二周期的SEQ操作。此时,连续操作不是以非连续操作开始的,而是以空闲操作开始,即IDLE+SEQ+SEQ+SEQ……。如图5所示是I-S操作模式的时序图,I-S操作过程中,ARM7TDMI在IDLE操作周期就已经给出了连续操作的地址信息,在连续操作时再给出操作请求。I-S操作模式是ARM公司在ARM7TDMI设计时进行的一个特殊优化,该操作模式下地址信号较普通操作模式要提前一个周期,即地址信号可以和控制信号同时有效,这可以使地址译码的时间较之普通模式提前。由于I-S操作模式下,操作地址在IDLE周期就已经给出,因此A7Twrap不再对该操作的时序进行延时。
A7TWrap针对ARM7TDMI的各种不同操作时序产生不同的逻辑变化,将处理器总线时序转换为AHB总线时序。其中,为保证AHB总线的译码正确,地址有效必须在HCLK时钟一个周期以前,即在每次操作开始时都必须增加一个周期的等待。A7TWrap对ARM7TDMI的操作时序的转换延时如下表2所示。
ARM7TDMI操作模式 | 转换后AHB操作模式 | 转换延时 |
IDLE+NONSEQ | IDLE+IDLE+NONSEQ | 一个周期 |
IDLE+NONSEQ+SEQ | IDLE+IDLE+NONSEQ+SEQ | 一个周期 |
IDLE+SEQ | IDLE+NONSEQ | 无 |
表2
由前面的介绍可知,在处理器内增加高速缓存后,ARM7TDMI的操作请求不能直接反映到A7Twrap上,这主要是因为ARM7TDMI的地址信号只比HCLK上升沿早半周期出现,而在该信号被HCLK上升沿获取之前无法进行地址命中判定。如果在命中判定前就将ARM7TDMI操作请求发送给A7TWrap,则可能会使A7TWrap和高速缓存都对该操作请求产生反应。但是实际上,如果地址判定高速缓存命中,该操作请求是不应该在A7TWrap上产生反应的。如图6的时序图所示,第3周期的上升沿之前ARM7TDMI的数据信号不可以发送到A7TWrap,这时便会产生一个周期的延时。
这个延时产生的损耗周期影响了系统的处理速度,并且该技术将不可高速缓存的地址的连续操作都拆分为独立操作,大大降低了AHB总线连续传输的性能
发明内容
本发明要解决的技术问题在于,针对上述现有技术的不足,提供一种处理器及其数据操作方法,使用空闲-连续(I-S)操作模式减少损耗周期。
本发明解决其技术问题所采用的技术方案是:提供一种处理器的数据操作方法,包括:
(a)接收处理器内核发出的操作,当所述操作为不可高速缓存非连续操作时,在所述不可高速缓存非连续操作的第一周期,在高速缓存控制器与封装器之间的处理器总线上发出空闲操作;
(b)在所述不可高速缓存非连续操作的第二周期,在所述处理器总线上发出连续操作。
在本发明所述处理器的数据操作方法中,所述方法还包括:
(c)转换所述处理器总线上的第一周期的空闲操作和第二周期的连续操作为系统总线上的空闲操作和非连续操作。
在本发明所述处理器的数据操作方法中,所述方法进一步包括:
(d)当所述处理器内核发出的操作为不可高速缓存连续操作时,在所述高速缓存控制器与封装器之间的处理器总线上发出的连续操作的下一个周期开始时,对所述连续操作的下一次操作地址进行预测。
在本发明所述处理器的数据操作方法中,所述步骤(d)中对连续操作的操作地址提前进行预测包括:在当前操作地址的基础上根据当前操作的位宽信号增加相应的增量来预测所述连续操作的下一次操作地址。
在本发明所述处理器的数据操作方法中,所述步骤(d)中对连续操作的操作地址提前进行预测包括:在当前操作地址的基础上根据所述连续操作的第一次操作的位宽信号增加相应的增量来预测所述连续操作的下一次操作地址。
本发明还提供一种处理器,包括处理器内核、处理处理器内核的操作请求的高速缓存控制器以及桥接处理器总线与系统总线的封装器,所述处理器内核和封装器通过处理器总线连接,其特征在于,还包括:
空闲-连续操作转换模块,接收所述高速缓存控制器的操作地址判定信息,并在确定所述操作为不可高速缓存非连续操作时,在所述处理器总线上发出第一周期的空闲操作和第二周期的连续操作。
在本发明所述的处理器中,还包括:
地址预测模块,接收所述高速缓存控制器发出的当前操作地址信号和位宽信号,并在确定所述操作为不可高速缓存连续操作时,根据所述当前操作地址信号和位宽信号对所述连续操作的下一次操作地址提前进行预测,然后将预测到的下一次操作地址提供给所述高速缓存控制器进行判定。
在本发明所述的处理器中,所述地址预测模块通过在当前操作地址的基础上根据位宽信号增加相应的增量来预测所述连续操作的下一次操作地址。
在本发明所述的处理器中,所述地址预测模块通过在当前操作地址的基础上根据所述连续操作的第一次操作的位宽信号增加相应的增量来预测所述连续操作的下一次操作地址。
在本发明所述的处理器中,所述封装器接收所述处理器总线上的第一周期的空闲操作和第二周期的连续操作,转换为系统总线上的空闲操作和非连续操作。
实施本发明的处理器及其数据操作方法,具有以下有益效果:本发明通过将不可高速缓存非连续操作的第一周期发出空闲操作,相应的第二周期发出连续操作,减少了高速缓存产生的损耗周期,这显著提高了处理器性能,减少了CPU的等待时间。此外,使用地址预测后,ARM7TDMI的连续操作能够继续以连续操作模式在AHB总线上进行,因此也极大地提高了AHB总线的性能。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1a是现有的一种处理器结构的示意图;
图1b是现有的一种采用高速缓存后的处理器结构的示意图;
图2a是图1a所示的处理器的操作时序图;
图2b是图1b所示的处理器的操作时序图;
图3是本发明一个实施例的处理器结构的示意图;
图4是本发明一个实施例中处理器总线的操作时序图;
图5是本发明一个实施例中处理器内核的I-S操作模式的时序图;
图6是本发明一个实施例中高速缓存的操作时序图;
图7是本发明一个实施例中处理器的数据操作方法的流程图;
图8是本发明一个实施例中将处理器不可高速缓存的非连续操作转换成I-S操作的时序图;
图9是本发明一个实施例中将处理器不可高速缓存的非连续操作转换成I-S操作的状态转移图;
图10是本发明一个实施例中采用了地址预测的处理器不可高速缓存的连续操作的时序图;
图11是本发明一个实施例中采用I-S操作模式和地址预测后的处理器操作时序图;
图12是本发明另一个实施例中采用I-S操作模式和地址预测后的处理器操作时序图;
图13是本发明一个实施例中采用I-S操作模式和地址预测后处理器的状态转移图。
具体实施方式
本发明在采用指令和数据统一的冯·诺依曼结构高速缓存结构的处理器中,采用I-S(空闲-连续)操作模式及地址预测技术使该高速缓存对不可高速缓存的地址段的操作的额外开销为零,其中I-S操作模式主要针对非连续(NONSEQ)操作,地址预测主要针对连续(SEQ)操作。
根据本发明的一个实施例的处理器结构如图3所示,包括处理器内核302、高速缓存控制器304、高速缓存310、写缓存312。高速缓存310位于处理器内核302与外部主存储器之间,与主存储器以块为单位进行数据交换。当处理器内核302读取数据或者指令时,同时将读取到的数据或指令保存到一个高速缓存块中。根据程序的空间局部性和时间局部性,当第二次需要读取相同或相近的数据时,可以从相应的高速缓存块获得数据。因为高速缓存的速度远大于主存储器的速度,系统整体性能就得到了很大的提高。ARM7TDMI等处理器内核只有一个储存器接口,即只支持指令和数据统一的高速缓存,因而该处理器采用冯·诺依曼结构的高速缓存。高速缓存控制器304用来处理处理器内核302的操作请求,执行操作地址命中判定。写缓存312连接在处理器内核302与外部主存储器之间,存储处理器内核302的可缓存写数据。此外,本发明的处理器还设有I-S(空闲-连续)操作转换模块316,接收高速缓存控制器304对处理器内核302发出的操作请求的地址判定结果,将处理器内核302发出的不可高速缓存的NONSEQ(非连续)操作转换成第一周期的IDLE(空闲)操作和第二周期的SEQ(连续)操作,然后经复用器306和封装器308提供给AHB系统总线。该处理器还设有地址预测模块314,接收高速缓存控制器304发出的SEQ操作地址信号和位宽信号,对处理器内核302发出的不可高速缓存SEQ操作中的下一次操作地址进行提前预测,然后将预测出的操作地址发送给高速缓存控制器304进行地址判定。本申请后续部分将对I-S操作转换模块316和地址预测模块314进行详细的介绍。如图所示,高速缓存控制器304、写缓存312和I-S操作转换模块316三者都可能对AHB总线产生操作请求,而处理器总线到AHB总线的通路只有一条,因而通过复用器(MUX)306对高速缓存控制器304、写缓存312和I-S操作转换模块316的总线操作请求进行优先级判定,在操作请求冲突时寄存优先级比较低的操作。封装器308为处理器内核外嵌模块,用以桥接处理器总线和AHB系统总线,将处理器总线时序转换成AHB总线时序。
本发明的一个实施例中,处理器内核302采用ARM7TDMI,相应地封装器308为A7Twrap,该处理器的处理器总线时序图如图4所示。ARM7TDMI处理器总线类似于AHB总线,为一级流水线结构,数据滞后于地址及控制信号,但该总线信号同时使用了时钟的上升沿和下降沿。如图所示,控制信号提前HCLK上升沿一个时钟周期,但地址信号只提前HCLK上升沿半个周期,因此地址信号的同步逻辑建立时间冗余较少,由于A7Twrap在进行时序转换时可能存在延迟,该信号不能直接发送到AHB总线的地址线上。
为了消除执行处理器不可高速缓存的非连续操作时存在的延时,本发明提出一个交换性的解决方案,即将ARM7TDMI与高速缓存控制器之间的处理器总线上的非连续操作转换为高速缓存控制器与A7TWrap之间的处理器总线上第一周期的IDLE操作和第二周期的SEQ操作。由前面表2中的A7TWrap转换延时可知,A7TWrap对每一个NONSEQ操作都增加了一个等待周期,如前所述,这是因为ARM7TDMI发出的地址信号和控制信号没有对齐,延时一个周期可以将地址信号和控制信号对齐发送给AHB总线。再加上高速缓存对ARM7TDMI发出的NONSEQ操作增加的一个IDLE周期,实际上AHB总线上的NONSEQ操作出现了两个周期的延时。再参看图6中的时序,ARM7TDMI发出操作请求的第一个周期(图6中周期2所示),操作地址还没有经过高速缓存判定,不能发送给A7TWrap,但是这个周期中地址信号实际已经有效,如图所示,下一个周期内(即图6中周期3)地址信号和控制信号实际上是对齐的。所以,这种情况下完全可以将该NONSEQ操作转换成I-S操作发送给A7TWrap,即I-S操作转换模块在ARM7TDMI操作发起的第一个周期发出IDLE操作,在第二个周期(即图6中周期3),即ARM7TDMI的等待周期发出SEQ操作,其中地址信号在SEQ操作周期和控制信号对齐。
具体实现如图7所示:首先,步骤702中,ARM7TDMA发出操作请求。然后,步骤704中,高速缓存控制器对ARM7TDMI发出的操作进行地址判定,并将相关的信息提供给I-S操作转换模块,这些信息包括高速缓存的状态(cache_state)、命中判定(hit)、是否地址保护(protection)、是否可写缓存(bufferable)、是否可高速缓存(cacheable)以及寄存的处理器操作的读写控制信号(nRW_cpu_reg)。I-S操作转换模块根据从高速缓存控制器接收的上述信息,确定ARM7TDMI发出的操作是否为不可高速缓存的NONSEQ操作(步骤706)。如果ARM7TDMI发出的操作是可高速缓存的操作,则在步骤708中执行正常的高速缓存操作。步骤710中,当ARM7TDMI发出的操作是不可高速缓存的NONSEQ操作时,I-S操作转换模块在该NONSEQ操作的第一周期发出IDLE操作,在该NONSEQ操作的第二周期发出SEQ操作,即在该NONSEQ操作的第一周期输出对应nMREQ=1 && SEQ=0(即IDLE操作周期)的nMREQ信号和SEQ信号给复用器,然后在该NONSEQ操作的第二周期输出对应nMREQ=0 && SEQ=1(即SEQ操作周期)的nMREQ信号和SEQ信号给复用器。这样的话,ARM7TDMI发出的NONSEQ操作经过I-S操作转换模块的处理后,便转换成第一周期的IDLE和第二周期的SEQ操作提供给封装器A7TWrap。
然后,根据表2可知,A7TWrap将处理器总线上的该IDLE+SEQ操作转换成AHB总线上的IDLE+NONSEQ操作(步骤712),而不会产生额外的延时。如图8所示,图中是四个连续的非连续操作。从该时序图可以看出,ARM7TDMI产生请求且ARM7TDMI和A7TWrap的READY信号都为高时,对应该非连续操作向A7TWrap发出的实际是IDLE操作,而其后在ARM7TDMI的READY为低但A7TWrap的READY信号为高时发出NONSEQ操作。经过A7Twrap的时序转换后,可以看到,AHB总线上出现的操作是一个IDLE操作加一个NONSEQ操作。图中的MCLK为Ready信号的门控时钟,Ready信号实际也就是CLKEN信号,两个信号的时序是一样的。
现有处理器中,高速缓存对一次NONSEQ操作会产生一个Penalty周期,然后A7Twrap对该NONSEQ操作会产生一个延时等待周期。通过上述方法,本发明将高速缓存对NONSEQ操作的Penalty周期与A7Twrap的等待周期进行合并,将高速缓存的Penalty周期转换为IDLE周期,将高速缓存的NONSEQ周期转换为SEQ周期,这样的话,ARM7TDMI发出的每一个NONSEQ操作转换到HB总线上只需要一个等待周期。图9所示为将处理器不可高速缓存的非连续操作转换成I-S操作的状态转移图。如图所示,如果收到ARM7TDMI发出的nMREQ请求,且READY信号为高(即nMREQ=0 &&A7TWrap_READY=1),则进入地址判定状态,该状态不占用时钟周期。根据判定结果,如果判定为可高速缓存的操作,则进入高速缓存状态;如果判定为不可高速缓存,则进入I-S模式,将该不可高速缓存操作转换成I-S操作。如果后续再有NONSEQ操作,即nMERQ信号和SEQ信号为低且READY信号为高(nMREQ=0 && SEQ=0 && A7TWrap_READY=1)时,则再次执行地址判定;如果没有(即nMREQ=1 && A7TWrap_READY=1),则执行IDLE操作。
现在再来分析ARM7TDMI的连续操作。ARM7TDMI的连续操作和AHB总线连续操作相似,在连续操作开始之后,其操作的位宽、读写信号都是不可改变的,即在获取到连续操作开始的信号之后,其下一次操作的地址是可以预测出来的。预测的方法是:地址预测模块在当前操作地址的基础上根据位宽信号增加相应的字节数增量,例如位宽为32位时,增量为4,从而获得该连续操作的下一次操作地址;或者,在当前操作地址的基础上根据所述连续操作的第一次操作的位宽信号增加相应的字节数增量,从而获得该连续操作的下一次操作地址。通过该地址预测方法,就可以在ARM7TDMI实际操作地址尚未发出的时候,对操作地址进行地址判定,并通过判定结果判断该操作是否需要通过A7TWrap进行总线传输。这可以通过一个与逻辑来实现,即当地址判定为需要通过A7TWrap传输且该周期ARM7TDMI_nMREQ为0、ARM7TDMI_SEQ为1时,才判定将该操作传输给A7TWrap模块。代码逻辑如:A7TWrap_nMREQ=~ARM7TDMI_nMREQ && ARM7TDMI_SEQ && PREDICT_RESULT。
ARM7TDMI发出连续操作请求时,通过上述地址预测实现地址的提前判定后,高速缓存控制器可以和ARM7TDMI同步完成连续操作控制信号,即高速缓存控制器对ARM7TDMI的连续操作的地址判定不会增加额外的等待周期,ARM7TDMI的连续操作将继续以连续操作的形式发送给A7TWrap模块,并再以连续操作模式传输到AHB总线。
具体来说,本发明对连续操作的地址预测是在I-S操作模式的基础之上实现的。图10是采用了地址预测的处理器的不可高速缓存的连续操作的时序图。由图10可以看出,由于连续操作开始的第一个操作必定是NONSEQ操作,首先使用前述的I-S操作模式转换模块将该NONSEQ操作转换为IDLE操作+SEQ操作。因为IDLE操作产生一个周期的空闲,在这个空闲周期,高速缓存控制器将高速缓存状态(cache_state)、SEQ操作地址信号和位宽信号、复用器对高速缓存控制器的READY信号提供给地址预测模块。然后,当转换后的I-S操作模式中的SEQ操作周期开始时,ARM7TDMI对下一次操作的操作模式已经发出,因而在该SEQ操作周期末,可以确认连续操作开始(图中标号91所示位置)。然后在下一个时钟开始时(例如图中标号92所示位置),地址预测模块就可以在每一个时钟的上升沿后根据收到的SEQ操作地址信号和位宽信号计算该SEQ操作的下一次操作地址,并将预测出的下一次操作地址信息提供给高速缓存控制器,由高速缓存控制器对该下一次操作地址进行判定,直至某次预测结果为高速缓存命中,或者ARM7TDMI的连续操作完成。
需要注意的是,处理器内核发出的连续操作并不一定从操作一开始就是不可高速缓存的操作,在这种情况,对于第一个不可高速缓存的操作,无论其是连续的或是非连续的,该操作将转换成I-S操作模式,而对其后的连续操作进行地址预测。
图11是本发明一个实施例中采用I-S操作模式和地址预测后的处理器操作时序图。图11中所示的处理器操作为连续操作,其中由NONSEQ操作开始均为不可高速缓存的操作,地址预测在由该NONSEQ操作转换成的I-S操作之后开始。
图12是本发明另一个实施例中采用I-S操作模式和地址预测后的处理器操作时序图。图12中所示的处理器操作也是连续操作,其中由SEQ操作开始均为不可高速缓存的操作,传输过程中又产生了可高速缓存的操作。该图中A操作为可高速缓存的操作,B、C、D操作为不可高速缓存的操作。由该图可以看出,B操作判定为I-S操作,增加了一个等待周期,利用这个等待周期对ARM7TDMI的延迟,下一个周期开始时可以对连续操作(即C、D、E)进行地址预测。E地址判定为可高速缓存,则下一周期退出地址预测,进入正常判定周期。采用I-S操作模式和地址预测后,处理器的状态转移图如图13所示。如果收到ARM7TDMI发出的nMREQ请求,且READY信号为高(即nMREQ=0&& A7TWrap_READY=1),则进入非连续地址判定状态,该状态不占用时钟周期。根据判定结果,如果判定为可高速缓存的操作,则进入高速缓存状态;如果判定为不可高速缓存,则进入I-S模式,将该不可高速缓存操作转换成I-S操作。如果该I-S操作后续再有NONSEQ操作,即nMERQ信号和SEQ信号为低且READY信号为高(nMREQ=0 && SEQ=0 && A7TWrap_READY=1)时,则再次执行非连续地址判定。如果该I-S操作后续有SEQ操作,即nMERQ信号为低且SEQ信号和READY信号为高(nMREQ=0 && SEQ=1 &&A7TWrap_READY=1)时,则开始进行地址预测及判定,地址的预测与判定不占用时钟周期。如果预测的后续操作是连续操作,则在nMERQ信号为低且SEQ信号和READY信号均为高(即nMREQ=0 && SEQ=1 &&A7TWrap_READY=1)时进入SEQ操作状态,并在该SEQ操作周期后继续进行地址预测和判定;如果预测到后续无操作,则在nMERQ信号为高、SEQ信号为低且READY信号为高(即nMREQ=1 && SEQ=0 &&A7TWrap_READY=1)时进入IDEL状态;如果预测到的后续操作不是连续操作而是非连续操作(SEQ信号为低,即SEQ=0),则进入非连续地址判定状态重新进行地址判定;如果预测到的后续操作是可高速缓存的操作,则进入高速缓存状态,执行高速缓存命中或替换操作。
比较在不增加高速缓存的ARM7TDMI+ATWrap结构内的操作周期、增加普通高速缓存后的不可高速缓存的操作周期以及增加使用本发明的高速缓存后的不可高速缓存的操作周期,如下表3所示:
表3
从上表3中可以看出,普通高速缓存对不可高速缓存的操作存在Penalty周期,该Penalty周期不仅仅使得ARM7TDMI的每一个不可高速缓存的操作多增加了等待时间,还将操作中的连续操作拆分为非连续操作,这大大影响了AHB总线性能。
使用I-S操作模式及地址预测后,高速缓存的Penalty周期基本消除,这显著提高了系统性能,减少了处理器的等待时间。此外,使用地址预测后,ARM7TDMI的连续操作能够继续以连续操作模式在AHB总线上进行,因而能够极大地提高AHB总线的性能,而且保证连续操作模式不被拆分,对保证系统性能是非常有利的。
Claims (10)
1.一种处理器的数据操作方法,其特征在于,包括:
(a)接收处理器内核发出的操作,当所述操作为不可高速缓存非连续操作时,在所述不可高速缓存非连续操作的第一周期,在高速缓存控制器与封装器之间的处理器总线上发出空闲操作;
(b)在所述不可高速缓存非连续操作的第二周期,在所述处理器总线上发出连续操作。
2.根据权利要求1所述的处理器的数据操作方法,其特征在于,还包括:
(c)转换所述处理器总线上的第一周期的空闲操作和第二周期的连续操作为系统总线上的空闲操作和非连续操作。
3.根据权利要求1所述的处理器的数据操作方法,其特征在于,所述方法进一步包括:
(d)当所述处理器内核发出的操作为不可高速缓存连续操作时,在所述高速缓存控制器与封装器之间的处理器总线上发出的连续操作的下一个周期开始时,对所述连续操作的下一次操作地址进行预测。
4.根据权利要求3所述的处理器的数据操作方法,其特征在于,所述步骤(d)中对连续操作的操作地址提前进行预测包括:在当前操作地址的基础上根据当前操作的位宽信号增加相应的增量来预测所述连续操作的下一次操作地址。
5.根据权利要求3所述的处理器的数据操作方法,其特征在于,所述步骤(d)中对连续操作的操作地址提前进行预测包括:在当前操作地址的基础上根据所述连续操作的第一次操作的位宽信号增加相应的增量来预测所述连续操作的下一次操作地址。
6.一种处理器,包括处理器内核、处理处理器内核的操作请求的高速缓存控制器以及桥接处理器总线与系统总线的封装器,所述处理器内核和封装器通过处理器总线连接,其特征在于,还包括:
空闲-连续操作转换模块,接收所述高速缓存控制器的操作地址判定信息,并在确定所述操作为不可高速缓存非连续操作时,在所述处理器总线上发出第一周期的空闲操作和第二周期的连续操作。
7.根据权利要求6所述的处理器,其特征在于,还包括:
地址预测模块,接收所述高速缓存控制器发出的当前操作地址信号和位宽信号,并在确定所述操作为不可高速缓存连续操作时,根据所述当前操作地址信号和位宽信号对所述连续操作的下一次操作地址提前进行预测,然后将预测到的下一次操作地址提供给所述高速缓存控制器进行判定。
8.根据权利要求7所述的处理器,其特征在于,所述地址预测模块通过在当前操作地址的基础上根据当前操作的位宽信号增加相应的增量来预测所述连续操作的下一次操作地址。
9.根据权利要求7所述的处理器,其特征在于,所述地址预测模块通过在当前操作地址的基础上根据所述连续操作的第一次操作的位宽信号增加相应的增量来预测所述连续操作的下一次操作地址。
10.根据权利要求6所述的处理器,其特征在于,所述封装器接收所述处理器总线上的第一周期的空闲操作和第二周期的连续操作,转换为系统总线上的空闲操作和非连续操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100339124A CN100395731C (zh) | 2006-02-23 | 2006-02-23 | 处理器及其数据操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100339124A CN100395731C (zh) | 2006-02-23 | 2006-02-23 | 处理器及其数据操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1851674A CN1851674A (zh) | 2006-10-25 |
CN100395731C true CN100395731C (zh) | 2008-06-18 |
Family
ID=37133153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100339124A Active CN100395731C (zh) | 2006-02-23 | 2006-02-23 | 处理器及其数据操作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100395731C (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679681B (zh) * | 2015-03-18 | 2018-01-12 | 山东华芯半导体有限公司 | Ahb总线访问片上sram的高速桥装置及其工作方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1127899A (zh) * | 1993-12-20 | 1996-07-31 | 摩托罗拉公司 | 具有推测指令取指的数据处理器及操作方法 |
CN1303044A (zh) * | 2000-01-06 | 2001-07-11 | 国际商业机器公司 | 使用基本块高速缓存的微处理器 |
CN1535415A (zh) * | 2001-07-24 | 2004-10-06 | �Ƚ�װ�ù�˾ | 具有二级分支预测高速缓存的分支预测装置 |
US20050183091A1 (en) * | 2001-12-14 | 2005-08-18 | Van Eijndhoven Josephus Theodorous J. | Data processing system |
-
2006
- 2006-02-23 CN CNB2006100339124A patent/CN100395731C/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1127899A (zh) * | 1993-12-20 | 1996-07-31 | 摩托罗拉公司 | 具有推测指令取指的数据处理器及操作方法 |
CN1303044A (zh) * | 2000-01-06 | 2001-07-11 | 国际商业机器公司 | 使用基本块高速缓存的微处理器 |
CN1535415A (zh) * | 2001-07-24 | 2004-10-06 | �Ƚ�װ�ù�˾ | 具有二级分支预测高速缓存的分支预测装置 |
US20050183091A1 (en) * | 2001-12-14 | 2005-08-18 | Van Eijndhoven Josephus Theodorous J. | Data processing system |
Also Published As
Publication number | Publication date |
---|---|
CN1851674A (zh) | 2006-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2597954B2 (ja) | フルパイプライン共起メモリ制御器 | |
CA2118662C (en) | Memory controller having all dram address and control signals provided synchronously from a single device | |
US20070083870A1 (en) | Methods and apparatus for task sharing among a plurality of processors | |
TWI454909B (zh) | 減少記憶體裝置之功率消耗之記憶體裝置、方法及系統 | |
Zheng et al. | Decoupled DIMM: building high-bandwidth memory system using low-speed DRAM devices | |
JP2000003308A (ja) | オ―バラップしたl1およびl2メモリ・アクセス方法および装置 | |
JPH076094A (ja) | システム管理モードの実行中に書込み保護状態を上書きするコンピュータシステムの操作方法及びコンピュータシステム | |
JP3841810B2 (ja) | データプロセッサ | |
US20030023794A1 (en) | Cache coherent split transaction memory bus architecture and protocol for a multi processor chip device | |
CN104679681A (zh) | Ahb总线访问片上sram的高速桥装置及其工作方法 | |
US7395411B2 (en) | Methods and apparatus for improving processing performance by controlling latch points | |
US6754779B1 (en) | SDRAM read prefetch from multiple master devices | |
JP2003140965A (ja) | 分散共有メモリ型並列計算機および命令スケジューリング方法 | |
CN100395731C (zh) | 处理器及其数据操作方法 | |
Zhao et al. | Hardware support for accelerating data movement in server platform | |
CN111158753A (zh) | 具有数据预取功能的Flash控制器结构及其实现方法 | |
CN102169428A (zh) | 一种动态可配置的指令访问加速器 | |
CN104106046B (zh) | 数据处理装置 | |
CN103186474B (zh) | 对处理器的高速缓存进行清除的方法以及该处理器 | |
CN105786758A (zh) | 一种具有数据缓存功能的处理器装置及其数据读写方法 | |
JP2004240616A (ja) | メモリコントローラ及びメモリアクセス制御方法 | |
Garside et al. | The amulet chips: Architectural development for asynchronous microprocessors | |
WO2004031963A1 (ja) | 半導体データプロセッサ | |
CN116661695B (zh) | 一种总线加速方法和装置 | |
US8560748B2 (en) | Information processing system including interrupt processing function |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210423 Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040 Patentee after: Honor Device Co.,Ltd. Address before: 518129 Buji Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |