应用于嵌入式芯片的只读高速缓冲存储器的制作方法

文档序号:6363388阅读:147来源:国知局
专利名称:应用于嵌入式芯片的只读高速缓冲存储器的制作方法
技术领域
本发明涉及高速缓冲存储器,特别涉及一种应用于嵌入式芯片的只读高速缓冲存储器,属于高速存储管理技术领域。所谓嵌入式芯片是指嵌入式系统中微处理器所在的芯片。
背景技术
随着嵌入式芯片设计水平和制作工艺的不断进步,片上处理器的处理速度也不断提升。然而,外部存储器由于本身结构和操作机制等原因,其响应速度远远低于处理器的速度。这种速度上的失衡正日益成为制约嵌入式芯片整体处理速度的瓶颈所在。为了应对这一问题,作为响应速度与处理器相当的高速缓冲存储器(CACHE)也逐渐集成到了嵌入式芯片上。这一技术一方面成了处理器与外部存储器之间的杠杆,显著提升了芯片的性能,但另一方面,高速缓冲存储器(CACHE)本身的资源有限,在带来了高速响应速度的同时也带来了复杂的结构和较大的功耗。这与嵌入式芯片的“小面积、低功耗”的要求是相违背的,这样就需要在用户需求的基础上优化结构和算法,设计适合嵌入式芯片的高速缓冲存储器。在嵌入式芯片的某些应用中,往往需要对一些指令存储器(用来存储指令的存储器)和外部只读存储器进行读取指令或数据的操作。如果采用传统的读写操作均可缓存的高速缓冲存储器(CACHE),其冗余的写操作缓存控制会大大增加高速缓冲存储器(CACHE) 的复杂度,这样不仅增加了芯片的面积和功耗,而且对用户的配置也会带来诸多不便。因此需要一种简化写操作缓存的只读高速缓冲存储器,在满足嵌入式芯片小巧、节能等要求的同时,为用户的使用带来方便。

发明内容
鉴于上述技术现状,本发明提出一种应用于嵌入式芯片的只读高速缓冲存储器, 其目的是要通过简化高速缓冲存储器结构以及优化高速缓冲存储器算法等手段,来设计一种新的适用于嵌入式芯片的只读高速缓冲存储器,解决传统技术应用于嵌入式芯片所存在的一些问题。为达到上述目的,本发明采用的技术方案是一种应用于嵌入式芯片的只读高速缓冲存储器,其创新在于由标签数据阵列结构、控制逻辑、地址数据传输门这三个部分组成;
所述标签数据阵列结构是指在SRAM存储体上定义的用于只读缓冲的标签数据阵列结构,该标签数据阵列结构由至少两路标签数据阵列组成,每路标签数据阵列由若干组标签数据组成,每组标签数据由标签和数据块组成,所有标签构成标签阵列,所有数据块构成数据阵列,数据阵列中的数据块用于存放来自外存的数据信息,每个数据块对应标签阵列中的一个标签,标签用于标识对应数据块中存放数据信息的属性,标签中设置有地址段和状态位,地址段用于存放缓存目标的高位地址,状态位用于记载有效或无效两种状态,其中, 有效或无效分别表示该标签所对应的数据有用或无用,外存与标签之间的地址映射方式为组相联地址映射,即标签的低位物理地址映射外存的低位地址,而标签中地址段存放的高位地址映射外存的高位地址;
所述控制逻辑由状态机构成,当只读高速缓冲存储器功能使能时,状态机根据CPU读操作或CPU写操作进行状态切换并执行相应操作,从而完成整体逻辑控制;所述状态机有四个状态,它们分别是空闲状态、判定状态、外存状态和反馈状态,其中
空闲状态,表示状态机的起始状态或者状态机在完成每次CPU读操作或CPU写操作后的状态,在空闲状态时,状态机处于等待状态不进行任何操作,但当状态机接收到CPU读操作时从空闲状态切换到判定状态,当状态机接收到CPU写操作时从空闲状态切换到外存状态;
判定状态,表示状态机判定CPU读操作是否命中的状态,在判定状态时,CPU读操作的目标地址将与标签阵列中的标签进行比对,当所述目标地址中的低位地址与标签阵列中的某个标签的低位物理地址匹配,同时目标地址中的高位地址也与该标签中保存的缓存目标的高位地址匹配时,判定为命中,否则判定为未命中;如果CPU读操作被判定为命中,则状态机从判定状态切换到反馈状态,如果CPU读操作被判定为未命中,则状态机从判定状态切换到外存状态;
外存状态,表示状态机判定CPU读操作未命中或者发生CPU写操作时,直接对外存进行操作的状态;在外存状态时,如果输入的条件是CPU读操作被判定为未命中,则CPU将直接对外存进行读操作;如果输入的条件是发生CPU写操作,则CPU将直接对外存进行写操作; 在外存状态执行的操作完成后,状态机将切换到反馈状态;
反馈状态,表示状态机判定CPU读操作命中,或者CPU从外存获取数据,或者CPU对外存写操作后,向CPU反馈结果的状态;在反馈状态时,如果输入的条件是CPU读操作被判定为命中,则状态机将被命中标签所对应数据阵列中的数据反馈给CPU;如果输入的条件是 CPU从外存获取数据,则状态机在向CPU反馈此数据的同时,将按照CPU从外存获取数据执行相应的标签和数据的替换操作;如果输入的条件是CPU对外存写操作,则状态机将会向 CPU反馈由外存返回的表示写操作是否成功的信号;在反馈状态执行的操作完成后,状态机将切换到空闲状态;
所述地址数据传输门由地址传输门和数据传输门组成,地址传输门和数据传输门根据控制逻辑中状态机的不同状态进行下列传输动作
(1)当状态机处于空闲状态时,地址传输门和数据传输门均关闭;
(2)当状态机处于判定状态时,数据传输门关闭,而地址传输门将提供标签与CPU读操作的目标地址进行比对;
(3)当状态机处于外存状态时,如果输入的条件是CPU读操作被判定为未命中,CPU将通过地址传输门和数据传输门直接对外存进行读操作;如果输入的条件是发生CPU写操作,CPU将通过地址传输门和数据传输门传输地址和数据给外存进行写操作;
(4)当状态机处于反馈状态时,如果输入的条件是CPU读操作被判定为命中,地址传输门关闭,数据传输门将被命中标签所对应数据阵列中的数据反馈给CPU;如果输入的条件是CPU从外存获取数据,地址传输门和数据传输门将按照CPU从外存获取数据执行相应的标签和数据的替换操作;如果输入的条件是CPU对外存写操作,地址传输门关闭,数据传输门将会向CPU反馈由外存返回的表示写操作是否成功的信号。
5
上述技术方案的有关内容解释如下
1.上述方案中,所述“嵌入式芯片”是指嵌入式系统中微处理器所在的芯片。所述“外存”是指CPU以外的存储设备或存储器,包括RAM、ROM、FLASH等,但高速缓冲存储除外。2.上述方案中,所述“只读高速缓冲存储器功能使能”是指当只读高速缓冲存储器使能时才对CPU发起的读操作起作用,当只读高速缓冲存储器禁用时,CPU发起的读操作将直接从外存中读取数据。3.上述方案中,所述“组相联地址映射”是地址映射法的一种,组相联地址映射是直接映射法和全相联映射法的结合。在节省了高速缓冲存储器(CACHE)资源开销的同时, 提高了高速缓冲存储器(CACHE )空间的利用率,并保证了命中率。4.上述方案中,所述替换操作是当需要进行标签和数据的替换操作时,先比较各路标签数据阵列中对应的标签状态位的状态是否一致,如果比较结果一致则采用现有轮询法来替换标签和数据;如果比较结果不一致则优先替换状态位为无效的一路中的标签和数据。由于上述技术方案运用,本发明与现有技术相比具有下列优点和效果
1.本发明提供了一种只读高速缓冲存储器(RCACHE)的设计方案,在针对用户需求的前提下简化了传统读写高速缓冲存储器模块结构,优化了替换算法,加强了专用性,显著提高了高速缓冲存储器的性能和实用性,解决了传统技术中存在的一些问题。2.本发明提供了一种对应于指令存储器和外部只读存储器等片上应用的只读高速缓冲存储结构,在保证命中率的同时去粗取精,适应了片上结构的需求,减小了片上结构模块面积,降低了模块功耗,也简化了用户的操作。3.本发明提供了一种改良的轮询替换方法,在替换效率和资源开销中取得了平衡,有效地提高了本发明只读高速缓冲存储器空间的利用率。


附图1为本发明只读高速缓冲存储器结构原理图; 附图2为本发明标签阵列和数据阵列示意附图3为本发明标签和数据块示意图; 附图4为本发明状态机原理图; 附图5为本发明标签替换原理图; 附图6为现有轮询法替换流程图; 附图7为本发明改良的轮询法替换流程图。
具体实施例方式下面结合附图及实施例对本发明作进一步描述 实施例一种应用于嵌入式芯片的只读高速缓冲存储器
如图1所示,该只读高速缓冲存储器由标签数据阵列结构、控制逻辑、地址数据传输门三个部分组成。下面对这三个部分分别进行描述 1.标签数据阵列结构
如图2和图3所示,标签数据阵列结构是指在SRAM存储体上定义的用于只读缓冲的标签数据阵列结构。该标签数据阵列结构由至少两路标签数据阵列组成,每路标签数据阵列由若干组标签数据组成,每组标签数据由标签和数据块组成。图2仅画出了某一路标签数据阵列的示意图(其它路与该路的示意图基本相同),其中,组0、组1和组511表示组,组0 由标签0和数据块组成,数据块由数据0、数据1、数据2和数据3构成。从图2可以看出,所有标签构成标签阵列,所有数据块构成数据阵列,数据阵列中的数据块用于存放来自外存的数据信息,每个数据块对应标签阵列中的一个标签,标签用于标识对应数据块中存放数据信息的属性。标签中设置有地址段和状态位,如图3所示,地址段用于存放缓存目标的高位地址,状态位用于记载有效或无效两种状态,其中,有效或无效分别表示该标签所对应的数据有用或无用,有用表示标签所对应的数据与外存一致,可以使用,反之为无用。外存与标签之间的地址映射方式为组相联地址映射,即标签的低位物理地址映射外存的低位地址,而标签中地址段存放的高位地址映射外存的高位地址。2.控制逻辑
如图4所示,控制逻辑由状态机构成,当只读高速缓冲存储器功能使能时,状态机根据 CPU读操作或CPU写操作进行状态切换并执行相应操作,从而完成整体逻辑控制。所述状态机有四个状态,它们分别是空闲状态、判定状态、外存状态和反馈状态,其中
(1)空闲状态,表示状态机的起始状态或者状态机在完成每次CPU读操作或CPU写操作后的状态,在空闲状态时,状态机处于等待状态不进行任何操作,但当状态机接收到CPU读操作时从空闲状态切换到判定状态,当状态机接收到CPU写操作时从空闲状态切换到外存状态。(2)判定状态,表示状态机判定CPU读操作是否命中的状态,在判定状态时,CPU 读操作的目标地址将与标签阵列中的标签进行比对,当所述目标地址中的低位地址与标签阵列中的某个标签的低位物理地址匹配,同时目标地址中的高位地址也与该标签中保存的缓存目标的高位地址匹配时,判定为命中,否则判定为未命中;如果CPU读操作被判定为命中,则状态机从判定状态切换到反馈状态,如果CPU读操作被判定为未命中,则状态机从判定状态切换到外存状态。(3)外存状态,表示状态机判定CPU读操作未命中或者发生CPU写操作时,直接对外存进行操作的状态;在外存状态时,如果输入的条件是CPU读操作被判定为未命中,则 CPU将直接对外存进行读操作;如果输入的条件是发生CPU写操作,则CPU将直接对外存进行写操作;在外存状态执行的操作完成后,状态机将切换到反馈状态。(4)反馈状态,表示状态机判定CPU读操作命中,或者CPU从外存获取数据,或者 CPU对外存写操作后,向CPU反馈结果的状态;在反馈状态时,如果输入的条件是CPU读操作被判定为命中,则状态机将被命中标签所对应数据阵列中的数据反馈给CPU;如果输入的条件是CPU从外存获取数据,则状态机在向CPU反馈此数据的同时,将按照CPU从外存获取数据执行相应的标签和数据的替换操作;如果输入的条件是CPU对外存写操作,则状态机将会向CPU反馈由外存返回的表示写操作是否成功的信号;在反馈状态执行的操作完成后,状态机将切换到空闲状态。3.地址数据传输门
如图1所示,地址数据传输门由地址传输门和数据传输门组成,地址传输门和数据传输门根据控制逻辑中状态机的不同状态进行下列传输动作(1)当状态机处于空闲状态时,地址传输门和数据传输门均关闭;
(2)当状态机处于判定状态时,数据传输门关闭,而地址传输门将提供标签与CPU读操作的目标地址进行比对;
(3)当状态机处于外存状态时,如果输入的条件是CPU读操作被判定为未命中,CPU将通过地址传输门和数据传输门直接对外存进行读操作;如果输入的条件是发生CPU写操作,CPU将通过地址传输门和数据传输门传输地址和数据给外存进行写操作;
(4)当状态机处于反馈状态时,如果输入的条件是CPU读操作被判定为命中,地址传输门关闭,数据传输门将被命中标签所对应数据阵列中的数据反馈给CPU;如果输入的条件是CPU从外存获取数据,地址传输门和数据传输门将按照CPU从外存获取数据执行相应的标签和数据的替换操作;如果输入的条件是CPU对外存写操作,地址传输门关闭,数据传输门将会向CPU反馈由外存返回的表示写操作是否成功的信号。本实施例的有关内容说明如下
1.标签数据阵列的路数可以扩展。本实施例中,标签数据阵列结构由至少两路标签数据阵列组成,换句话说标签数据阵列由两路或更多路数组成。路与路之间是并列关系,比如两路标签数据阵列第0路标签2与第1路标签2的低位物理地址是相同的。这两路中的两个标签2与外存映射地址是二对多关系。2.标签地址与外存地址的关系。标签本身的低位物理地址与外存的低位地址对应,由于只读高速缓冲存储器(RCACHE)地址映射的是比它范围大的地址空间,因此一路中的一个标签的低位物理地址会对应多个外存的地址。对于一次可缓冲的CPU读操作,控制逻辑会依据CPU所访问的低位地址寻址到对应的标签,然后匹配访问的高位地址与该标签中保存的缓存目标的高位地址,若成功,则该缓存访问“命中”;否则为未命中。3.保留了 CPU写操作通道。如图1所示,由控制信号使能本发明只读高速缓冲存储器(RCACHE),CPU发起读操作,控制逻辑判定其地址是否命中标签阵列中的标签,若命中, 则由数据阵列直接向CPU提供对应命中标签的数据;若未命中,则向外存请求数据,并替换标签阵列和数据阵列中的对应项目。此结构与传统的读写均可缓冲存储器的不同点在于 1、控制信号的简化,由于根据应用的需求删除了写操作的缓存功能,用户只需通过控制信号完成只读高速缓冲存储器(RCACHE)的使能即可使用本发明;2、依然保留了写操作通道, CPU可以直接向外存写入数据,这也是为了保证模块的扩展性。4.关于本发明标签和数据替换方法的说明
本发明标签和数据替换指的是当CPU读操作被判定为未命中时,CPU将直接对外存进行读操作的同时,将按照CPU从外存获取数据执行相应的标签和数据的替换操作,从而更新只读高速缓冲存储器(RCACHE)中相应的标签和数据。传统的替换方法有轮询法(round robin)和最近最少使用法(LRU)。其中轮询法方法简单,但存在无法考虑单个存储组特性的缺点;而最近最少使用法虽然充分考虑了单个存储组的特性,但需要最近最少使用判别堆栈的额外开销。本发明适用于所有现有替换方法,但为了提高缓冲的命中率,在本发明实施例中采用了改良的轮询法进行替换,即当需要进行标签和数据的替换操作时,先比较各路标签数据阵列中对应的标签状态位的状态是否一致,如果比较结果一致则采用现有轮询法来替换标签和数据;如果比较结果不一致则优先替换状态位为无效的一路中的标签和数据。这种替换方法在结构简洁、可控的同时又保证了替换效率。CN 102541761 A
下面就现有轮询法与本实施例改良的轮询法进行比较
图5本发明标签替换原理图,从图5中可以看出,有第0路标签2和第1路标签2,替换指针指向第0路中的标签2,当一次缓存访问的低位地址与标签2所在的低位物理地址匹配,但是缓存访问的高位地址与标签2中存储的缓冲目标的高位地址02和12均不相同时, 则此次缓存访问未命中,需要进行标签替换。如图6所示,若使用现有轮询替换方法,由于在这种算法中,每一个标签被替换的几率是均等的,因此将不考虑标签本身的状态,直接替换上次未被替换的另一路中的标签, 则在这一问题中,另一路中的标签2将会被替换。这种算法由于无法判别单个可能被替换的标签的状态有效性,因此可能出现当第0路中的标签2有效而第1路中的标签2无效时, 依然是第0路被替换的情况。这样就会导致替换效率的低下,甚至可能影响命中率。如图7所示,针对传统的轮询替换方法无法考虑各标签状态的缺点,本发明提出一种改良的轮询替换方法。在改良的轮询替换方法中,当发生缓存访问未命中时,先判断两路标签的状态是否一致,其中一致是指第0路的状态02与第1路中的状态12是一致的,即两者均为有效或者无效。若状态判定为一致,说明两路中的标签地位是一样的,那么它们被替换的几率也应该是均等的,则按照传统的轮询法处理,即替换另一路的标签;若状态判定为不一致,说明两路中必有一路状态有效,则被替换的应该是状态无效的那一路。此方法充分考虑到了每一路标签的状态,合理利用了高速缓冲存储器(CACHE)内资源,提高了命中率。总之“命中率”作为高速缓冲存储器的一项重要的性能指标,是整个CACHE设计的关键, 其影响因素主要有CACHE容量,地址映射方法,替换算法和程序特性。其中,地址映射方法和替换算法的选择往往成为了设计的关键。上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
权利要求
1. 一种应用于嵌入式芯片的只读高速缓冲存储器,其特征在于由标签数据阵列结构、控制逻辑、地址数据传输门这三个部分组成;所述标签数据阵列结构是指在SRAM存储体上定义的用于只读缓冲的标签数据阵列结构,该标签数据阵列结构由至少两路标签数据阵列组成,每路标签数据阵列由若干组标签数据组成,每组标签数据由标签和数据块组成,所有标签构成标签阵列,所有数据块构成数据阵列,数据阵列中的数据块用于存放来自外存的数据信息,每个数据块对应标签阵列中的一个标签,标签用于标识对应数据块中存放数据信息的属性,标签中设置有地址段和状态位,地址段用于存放缓存目标的高位地址,状态位用于记载有效或无效两种状态,其中, 有效或无效分别表示该标签所对应的数据有用或无用,外存与标签之间的地址映射方式为组相联地址映射,即标签的低位物理地址映射外存的低位地址,而标签中地址段存放的高位地址映射外存的高位地址;所述控制逻辑由状态机构成,当只读高速缓冲存储器功能使能时,状态机根据CPU读操作或CPU写操作进行状态切换并执行相应操作,从而完成整体逻辑控制;所述状态机有四个状态,它们分别是空闲状态、判定状态、外存状态和反馈状态,其中空闲状态,表示状态机的起始状态或者状态机在完成每次CPU读操作或CPU写操作后的状态,在空闲状态时,状态机处于等待状态不进行任何操作,但当状态机接收到CPU读操作时从空闲状态切换到判定状态,当状态机接收到CPU写操作时从空闲状态切换到外存状态;判定状态,表示状态机判定CPU读操作是否命中的状态,在判定状态时,CPU读操作的目标地址将与标签阵列中的标签进行比对,当所述目标地址中的低位地址与标签阵列中的某个标签的低位物理地址匹配,同时目标地址中的高位地址也与该标签中保存的缓存目标的高位地址匹配时,判定为命中,否则判定为未命中;如果CPU读操作被判定为命中,则状态机从判定状态切换到反馈状态,如果CPU读操作被判定为未命中,则状态机从判定状态切换到外存状态;外存状态,表示状态机判定CPU读操作未命中或者发生CPU写操作时,直接对外存进行操作的状态;在外存状态时,如果输入的条件是CPU读操作被判定为未命中,则CPU将直接对外存进行读操作;如果输入的条件是发生CPU写操作,则CPU将直接对外存进行写操作; 在外存状态执行的操作完成后,状态机将切换到反馈状态;反馈状态,表示状态机判定CPU读操作命中,或者CPU从外存获取数据,或者CPU对外存写操作后,向CPU反馈结果的状态;在反馈状态时,如果输入的条件是CPU读操作被判定为命中,则状态机将被命中标签所对应数据阵列中的数据反馈给CPU;如果输入的条件是 CPU从外存获取数据,则状态机在向CPU反馈此数据的同时,将按照CPU从外存获取数据执行相应的标签和数据的替换操作;如果输入的条件是CPU对外存写操作,则状态机将会向 CPU反馈由外存返回的表示写操作是否成功的信号;在反馈状态执行的操作完成后,状态机将切换到空闲状态;所述地址数据传输门由地址传输门和数据传输门组成,地址传输门和数据传输门根据控制逻辑中状态机的不同状态进行下列传输动作(1)当状态机处于空闲状态时,地址传输门和数据传输门均关闭;(2)当状态机处于判定状态时,数据传输门关闭,而地址传输门将提供标签与CPU读操作的目标地址进行比对;(3)当状态机处于外存状态时,如果输入的条件是CPU读操作被判定为未命中,CPU将通过地址传输门和数据传输门直接对外存进行读操作;如果输入的条件是发生CPU写操作,CPU将通过地址传输门和数据传输门传输地址和数据给外存进行写操作;(4)当状态机处于反馈状态时,如果输入的条件是CPU读操作被判定为命中,地址传输门关闭,数据传输门将被命中标签所对应数据阵列中的数据反馈给CPU;如果输入的条件是CPU从外存获取数据,地址传输门和数据传输门将按照CPU从外存获取数据执行相应的标签和数据的替换操作;如果输入的条件是CPU对外存写操作,地址传输门关闭,数据传输门将会向CPU反馈由外存返回的表示写操作是否成功的信号。
2.根据权利要求1所述的只读高速缓冲存储器,其特征在于所述替换操作是当需要进行标签和数据的替换操作时,先比较各路标签数据阵列中对应的标签状态位的状态是否一致,如果比较结果一致则采用现有轮询法来替换标签和数据;如果比较结果不一致则优先替换状态位为无效的一路中的标签和数据。
全文摘要
一种应用于嵌入式芯片的只读高速缓冲存储器,其创新在于主要由标签数据阵列结构、控制逻辑、地址数据传输门这三个部分组成。本发明涉及一种只读高速缓冲存储器的设计方案,该方案以组相联地址映射方式进行资源配置,在片上处理器和只需要进行读操作缓存的外存之间提供了接口,并采用了改良的轮询算法进行标签和数据替换管理。该方案在保证高速缓冲存储器性能的同时,因地制宜,量体裁衣,有效优化了模块结构,减小了模块面积,降低了模块功耗,提高了高速缓冲存储空间的利用率。
文档编号G06F12/08GK102541761SQ20121001412
公开日2012年7月4日 申请日期2012年1月17日 优先权日2012年1月17日
发明者匡启和, 吴凯祺, 林雄鑫, 肖佐楠, 郑茳 申请人:苏州国芯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1