Cache RAM与Retention RAM数据交换控制器及实现方法

文档序号:877476 发布日期:2021-03-19 浏览:7次 >En<

阅读说明:本技术 Cache RAM与Retention RAM数据交换控制器及实现方法 (Data exchange controller of Cache RAM and Retention RAM and implementation method ) 是由 卢鼎 于 2020-11-13 设计创作,主要内容包括:本发明公开了一种Cache RAM与Retention RAM数据交换控制器及实现方法,该数据交换控制器设于Cache RAM与Retention RAM之间,包括主控制状态机、数据搬运过滤判断模块、缓存模块、存储访问端口控制模块、寄存器文件、RAM端口以及接口模块。该数据交换控制器通过数据搬运过滤判断模块对预搬运的数据进行过滤,只搬运有效数据,减少了搬运次数,加速了数据交换过程,节约了系统带宽和功耗,通过RAM端口的设置,可以直接将数据从一个RAM搬运到另一个RAM中,无需特别复杂的数据包转换,高效简洁,该数据交换控制器结构简单,占用资源少,应用于系统睡眠唤醒场景时,节省传输带宽,加速上下电过程,提升了用户体验。(The invention discloses a data exchange controller of a Cache RAM and a Retention RAM and an implementation method thereof. This data exchange controller filters the data of judging module to carrying in advance through the data transport, only carry effective data, the number of times of carrying has been reduced, data exchange process has been accelerated, system bandwidth and consumption have been practiced thrift, setting through the RAM port, can directly carry data from a RAM to another RAM in, need not the data packet conversion of special complicacy, it is high-efficient succinct, this data exchange controller simple structure, it is few to occupy the resource, when being applied to system sleep and awakening up the scene, save transmission bandwidth, the power-on and power-off process accelerates, user experience has been promoted.)

Cache RAM与Retention RAM数据交换控制器及实现方法

技术领域

本发明涉及SOC芯片设计及数据交换技术领域,更具体的说是涉及一种 CacheRAM与Retention RAM数据交换控制器及数据换入、换出实现方法。

本发明已要求了申请日为2020.05.11,申请号为202010393144.3,名称为CacheRAM与Retention RAM数据交换控制器及实现方法的发明专利申请的优先权。

背景技术

目前,随着物联网和嵌入式系统对低成本,大容量外部存储需求的扩大,通过增加专用的cache控制器对低速外部存储数据进行缓存逐渐成为一种主流的技术方案。根据数据/指令调用的空间局部性和时间局部性原则,通过 Cache控制器可减少数据/指令频繁的调入调出,加快访问速度。然而在实际应用中,系统休眠时,Cache RAM中的数据会直接丢失。现有的解决方案是在系统休眠时通过AHB总线和Retention RAM对Cache RAM中的数据换入和换出。

但是,常规的方式在进行数据搬运时,需要进行RAM接口到AHB接口,再从AHB接口到RAM接口的二次转换过程。进行了不必要的数据包转换,造成了系统带宽的浪费和时间延迟,同时,在常规方案中,Cache RAM数据的换入换出需要对整体的数据全部逐项进行搬运,而实际应用中,Cache RAM中存在大量的无效数据项,例如对应的条目未填入有效数据或者对应的数据项已经无效。在此情况下,对这些数据进行换入换出,浪费了系统大量的带宽和功耗,用户体验效果差。

因此,如何提供一种能够简化Cache RAM与Retention RAM数据交换过程、提高CPU以及总线的数据搬运效率、缩短上下电时间的方案是本领域技术人员亟需解决的问题。

发明内容

有鉴于此,本发明提供了一种Cache RAM与Retention RAM数据交换控制器,该数据交换控制器结构简单,占用资源少,可缩短系统上下电时间,解决了现有的Cache RAM与Retention RAM数据交换方案过程复杂、CPU以及总线的数据搬运效率低,用户体验效果差的问题。

为了实现上述目的,本发明采用如下技术方案:

第一方面,本发明公开了一种Cache RAM与Retention RAM数据交换控制器,该数据交换控制器设于Cache RAM与Retention RAM之间,包括:

主控制状态机,所述主控制状态机用于控制数据搬运过程;

数据搬运过滤判断模块,所述数据搬运过滤判断模块与所述主控制状态机连接,用于判断数据是否需要执行搬运;

缓存模块,所述缓存模块与所述数据搬运过滤判断模块连接,用于缓存 TAG内容和所搬运的cache line数据;

存储访问端口控制模块,所述存储访问端口控制模块分别与缓存模块和主控制状态机连接,用于对各个端口进行读写控制;

寄存器文件,所述寄存器文件分别与所述主控制状态机和所述数据搬运过滤判断模块连接,用于存储寄存器配置命令;

RAM端口,所述RAM端口一端与所述存储访问端口控制模块连接,其另一端与外部的Cache RAM或Retention RAM连接;以及

接口模块,所述接口模块一端与寄存器文件和主控制状态机连接,其另一端的AHBSlave接口通过外部的AHB总线和系统CPU连接,用于接受系统数据换入/换出命令。

本发明的有益效果是:该数据交换控制器通过数据搬运过滤判断模块对预搬运的数据进行过滤,只搬运有效数据,减少了搬运数据总量,避免了不必要的数据搬运,加速了数据交换过程,节约了系统带宽和功耗,通过RAM 端口的设置,可以直接将数据从一个RAM搬运到另一个RAM中,无需特别复杂的数据包转换,高效简洁。该数据交换控制器结构简单,占用资源少,应用于系统睡眠唤醒场景时,节省传输带宽,加速上下电过程,提升了用户体验。

在上述方案的基础上,对本发明提供的方案做进一步解释说明。

进一步地,所述缓存模块包括TAG缓存单元和cache line行缓存单元,所述TAG缓存单元和所述cache line行缓存单元均与所述数据搬运过滤判断模块连接;

所述TAG缓存单元用于缓存部分TAG内容,所述cache line行缓存单元用于缓存所搬运的cache line数据。

进一步地,所述接口模块包括AHB slave接口单元和中断接口单元;

所述AHB slave接口单元一端与所述寄存器文件连接,其另一端与AHB 总线连接,用于接受系统数据换入/换出命令;

所述中断接口单元一端与所述主控制状态机连接,其另一端与系统CPU 连接,用于通知CPU数据搬运结束。

进一步地,所述RAM端口包括第一RAM端口和第二RAM端口,所述第一 RAM端口与外部的Cache RAM连接,所述第二RAM端口与外部的Retention RAM 连接。

进一步地,所述数据搬运过滤判断模块包括:

TAG项索引单元,用于使用逻辑地址中的INDEX域索引获取TAG项;

标志判定单元,用于判定当前TAG项的有效标志位V是否有效:若当前 TAG项的有效标志位V为无效,则此TAG项无效,进入TAG项跳转单元进行下一项的判断;若当前TAG项的有效标志位V有效,则继续进入命中判定单元继续判断是否命中;

命中判定单元,用于在当前TAG项为有效标志位V有效时,进一步将当前TAG项与逻辑地址内的逻辑地址TAG域比较,一致则命中,否则未命中;若当前TAG项不为有效标志位V无效时,则当前TAG项无效;

搬运启动单元,用于在所述命中判定单元判定为命中时,将DAT标识所对应的cache line数据进行搬运;以及

TAG项跳转单元,用于在所述命中判定单元判定为未命中时,跳过当前 TAG项,进行下一TAG项判断。

第二方面,本发明提供了一种Cache RAM数据换入实现方法,该方法包括:

从Retention RAM中读取TAG项,并将读取到的TAG项进行缓存;

根据当前TAG项判断是否需要搬运数据;

如果需要搬运,则从Retention RAM中读取DAT标识对应的cache line 数据,并将读取到的cache line数据进行缓存;

将缓存的cache line数据中的有效数据写入对应的Cache RAM中;

当前搬运结束后,根据范围偏移量的设置,决定是否结束:不结束则继续读取下一个Retention RAM中的TAG项,继续搬运数据;结束则回到IDLE 状态,并通过中断接口告知系统数据搬运完成。

进一步地,根据当前TAG项判断是否开始搬运数据的过程,具体包括:

使用逻辑地址中的INDEX域索引获取TAG项,若当前TAG项的有效标志位V为有效,则进一步将当前TAG项与逻辑地址内的逻辑地址TAG域比较,一致则命中(hit),否则未命中(miss);若当前TAG项有效标志位V为无效,则该TAG项无效(invalid),进入TAG项跳转单元,继续执行判断过程;

若TAG判断为命中(hit),则将DAT标识所对应的cache line数据进行搬运;

若TAG判断为未命中(miss),则跳过当前TAG项,进行下一TAG项判断;

若TAG判断为无效(invalid),则跳过当前TAG项,进行下一TAG项判断。

第三方面,本发明还提供了一种Cache RAM数据换出实现方法,该方法包括:

从TAG RAM中读取TAG项,并将读取到的TAG项进行缓存;

根据当前TAG项判断是否需要搬运数据;

如果需要搬运,则从Cache RAM中读取DAT标识对应的cache line数据,并将读取到的cache line数据进行缓存;

将缓存的cache line数据中的有效数据写入对应的Retention RAM中;

当前搬运结束后,根据范围偏移量的设置,决定是否结束:不结束则继续读取下一个TAG RAM中的TAG项,继续搬运数据;结束则回到IDLE状态,并通过中断接口告知系统数据搬运完成。

进一步地,根据当前TAG项判断是否开始搬运数据的过程,具体包括:

使用逻辑地址中的INDEX域索引获取TAG项,若当前TAG项有效标志位V 为有效,则进一步将当前TAG项与逻辑地址内的逻辑地址TAG域比较,一致则命中,否则未命中;若当前TAG项的有效标志位V为无效,则判定当前TAG 项无效;

若TAG判断为命中,则将DAT标识所对应的cache line数据进行搬运;

若TAG判断为未命中,则跳过当前TAG项,进行下一TAG项判断;

若TAG判断为无效,则跳过当前TAG项,进行下一TAG项判断。

经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种 Cache RAM数据换入、换出实现方法,该Cache RAM数据换入和换出实现方法在数据搬运前都是需要判断是否需要开始数据搬运的,只有在满足搬运开始的条件后,才会对当前数据进行搬运操作,且数据搬运时换入换出的仅仅是有效数据,避免了大量无效数据项搬运造成的浪费系统带宽和功耗的问题,数据搬运过程可以直接从一个RAM搬运至另一个RAM,无需复杂的数据包转换过程,更加简单高效。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1附图为本发明提供的一种Cache RAM与Retention RAM数据交换控制器的结构架构示意图;

图2附图为本发明实施例中数据搬运过滤判断模块的结构架构示意图;

图3附图为本发明实施例中数据交换控制器在Cache RAM与Retention RAM数据高速交换装置内的位置关系示意图;

图4附图为本发明实施例中Cache控制器的工作原理示意图;

图5附图为本发明实施例中TAG RAM指导Cache RAM通过数据交换控制器搬运数据过程的原理示意图;

图6附图为本发明提供的一种Cache RAM数据换入实现方法的流程示意图;

图7附图为本发明提供的一种Cache RAM数据换出实现方法的流程示意图;

图8附图为本发明实施例中Cache RAM数据换入和换出原理示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见附图1,本发明实施例公开了一种Cache RAM与Retention RAM数据交换控制器,该数据交换控制器设于Cache RAM与Retention RAM之间,包括:

主控制状态机1,主控制状态机1用于控制数据搬运;

数据搬运过滤判断模块2,数据搬运过滤判断模块2与主控制状态机1连接,用于判断数据是否需要执行搬运;

缓存模块3,缓存模块3与数据搬运过滤判断模块2连接,用于缓存TAG 内容和所搬运的cache line数据;

存储访问端口控制模块4,存储访问端口控制模块4分别与缓存模块3和主控制状态机1连接,用于对各个端口进行读写控制;

寄存器文件5,寄存器文件5分别与主控制状态机1和数据搬运过滤判断模块2连接,用于存储寄存器配置命令;

RAM端口,RAM端口一端与存储访问端口控制模块4连接,其另一端与外部的CacheRAM或Retention RAM连接;以及

接口模块,接口模块一端与寄存器文件5和主控制状态机1连接,其另一端的AHBSlave接口通过外部的AHB总线和系统CPU连接,用于接受系统数据换入/换出命令。

在一个具体的实施例中,缓存模块3包括TAG缓存单元31和cache line 行缓存单元32,TAG缓存单元31和cache line行缓存单元32均与数据搬运过滤判断模块2连接;

TAG缓存单元31用于缓存TAG内容,cache line行缓存单元32用于缓存所搬运的cache line数据。

在一个具体的实施例中,接口模块包括AHB slave接口单元8和中断接口单元9;

AHB slave接口单元8一端与寄存器文件5连接,其另一端与AHB总线上的AHB端口连接,用于接受系统数据换入/换出命令;

中断接口单元9一端与主控制状态机1连接,其另一端与系统CPU连接,用于通知CPU数据搬运结束。

在本实施例中,寄存器文件5包括命令寄存器、地址寄存器、状态寄存器和模式寄存器等。

在一个具体的实施例中,RAM端口包括第一RAM端口6和第二RAM端口7,第一RAM端口6与外部的Cache RAM连接,第二RAM端口7与外部的Retention RAM连接。

在一个具体的实施例中,参见附图2,数据搬运过滤判断模块2包括:

TAG项索引单元21,用于使用逻辑地址中的INDEX域索引获取TAG项;

标志判定单元22,用于判定当前TAG项的有效标志位V是否有效;

命中判定单元23,用于在当前TAG项的有效标志位V有效时,进一步将当前TAG项与逻辑地址内的逻辑地址TAG域比较,一致则命中,否则未命中;若当前TAG项的有效标志位V无效,则当前TAG项无效;

搬运启动单元24,用于在命中判定单元判定为命中时,将DAT标识所对应的cacheline数据进行搬运;以及

TAG项跳转单元25,用于在命中判定单元判定为未命中时,跳过当前TAG 项,进行下一TAG项判断。

本实施例提供的数据交换控制器在Cache RAM与Retention RAM数据高速交换装置中的位置如附图3所示,数据交换控制器的一端与AHB总线模块连接,数据交换控制器的另一端分别与Cache RAM和Retention RAM连接。

在本实施例提供的Cache RAM与Retention RAM数据高速交换装置中, AHB总线模块:负责各个AHB接口外设和CPU/DMA数据交换控制器的互联;

Cache AHB总线接口模块:负责AHB总线到Cache的寄存器和RAM的访问;

Retention RAM AHB总线接口模块:负责AHB总线到Retention RAM的访问;

寄存器文件:定义控制器的编程接口,定义若干寄存器,包括命令寄存器,状态寄存器,地址寄存器,模式寄存器等;

Cache控制器:负责Cache RAM的访问控制和外部存储的数据缓存管理;

存储控制器:负责外部存储与RAM的数据交换;

Cache RAM:作为Cache与存储控制器读写数据的缓存,与数据控制器的第一端口相连;

TAG RAM:作为Cache的地址重映射的存储单元,容量很小(通常在256-512 个字节范围内);

Retention RAM:作为睡眠时,数据的存储缓存,与数据交换控制器的第二端口相连,在系统掉电情况下,能够维持数据不丢失。

在本实施例中,Cache控制器的工作原理如附图4所示,系统访问存储的逻辑地址被划分为三个部分:逻辑地址TAG域、INDEX域和OFFSET域,分别介绍如下:

逻辑地址TAG域:存储系统的高位地址信息,用作Cache重映射标识比对;

INDEX域:存储TAG RAM的标识索引信息,用来查找对应的TAG数据项;

OFFSET域:存储Cache RAM的cache line内部数据offset偏移,用来获取最终的数据。

Cache模块的TAG RAM中,存储有效标志位V、比较标志TAG和物理地址数据DATA,其中:

有效标志位V用来标记当前条目是否有效;

比较标志TAG用来和逻辑地址的TAG进行比对;

物理地址数据DATA用来存储实际存放cache line数据的物理基地址。

其中,地址从逻辑地址映射到物理地址包括如下几个步骤:

1.使用INDEX域索引TAG RAM的各个TAG项;

2.如果该项为V,则与逻辑地址TAG域比较,一致则命中(hit),否则未命中(miss);

3.如果该项不为V,则该项无效(invalid);

4.如果INDEX索引的多个TAG项均为miss或invalid,则该逻辑地址访问未命中(miss),需要从外部调入数据,并补充对应的TAG项;

5.如果某项命中(有且只有一项,否则错误),则将改组所在的INDEX,命中项的物理地址DATA和OFFSET域组合为重映射后的地址,访问cache RAM,获取访问数据。

由于Cache RAM的数据调入和TAG RAM的初始化以及更新,会占用大量的时间。尤其是在系统睡眠时,Cache RAM的数据和TAG RAM数据丢失,会导致系统性能的损失。为此,本发明实施例在设计数据交换控制器时,保证数据交换控制器可以满足以下条件:

系统睡眠时,快速将Cache RAM和TAG RAM的数据换出到Retention RAM 中;

系统唤醒后,快速将Retention RAM中的数据,换入到Cache RAM和TAG RAM中。

参见附图5,本实施例提供的数据交换控制器通过预读TAG RAM的各个标志位,决定是否对相应的Cache RAM内容进行搬运。如果该项有效(V),则将DATA项对应的cacheline数据进行搬运;如果该项无效,则跳过对应项,直接对下一项进行判断。这一设计减少了搬运次数,加速了数据交换过程,节约了带宽和功耗。

在本实施例中,在数据换入和换出前,会首先对寄存器文件5进行配置命令、设置模式等操作,配置的内容包括:

a)搬运数据的方向;

b)搬运数据的源起始地址;

c)搬运数据的目标起始地址;

d)搬运数据的范围偏移量(=搬运数据的源末位地址-搬运数据的起始地址,单位为字节)。

在本实施例中,因为数据交换控制器的设计存在搬运过滤功能,实际搬运的数据量小于等于该偏移量。

第二方面,本发明实施例还提供了参见附图6,本发明实施例公开了一种 CacheRAM数据换入实现方法,该方法包括:

S1:从Retention RAM中读取TAG项,并将读取到的TAG项进行缓存;

S2:根据当前TAG项判断是否需要搬运数据;

S3:如果需要搬运,则从Retention RAM中读取DAT标识对应的cache line 数据,并将读取到的cache line数据进行缓存;

S4:将缓存的cache line数据中的有效数据写入对应的Cache RAM中;

S5:当前搬运结束后,根据范围偏移量的设置,决定是否结束:不结束则继续读取下一个Retention RAM中的TAG项,继续搬运数据;结束则回到 IDLE状态,并通过中断接口告知系统数据搬运完成。

在一个具体的实施例中,根据当前TAG项判断是否开始搬运数据的过程,具体包括:

使用逻辑地址中的INDEX域索引获取TAG项,若当前TAG项的有效标志位V有效时,则进一步将当前TAG项与逻辑地址内的逻辑地址TAG域比较,一致则命中,否则未命中;若当前TAG项的有效标志位V无效,则当前TAG 项无效;

若TAG判断为命中,则将DAT标识所对应的cache line数据进行搬运;

若TAG判断为未命中,则跳过当前TAG项,进行下一TAG项判断;

若TAG判断为无效,则跳过当前TAG项,进行下一TAG项判断。

第三方面,参见附图7,本发明还提供了一种Cache RAM数据换出实现方法,该方法包括:

A1:从TAG RAM中读取TAG项,并将读取到的TAG项进行缓存;

A2:根据当前TAG项判断是否需要搬运数据;

A3:如果需要搬运,则从Cache RAM中读取DAT标识对应的cache line 数据,并将读取到的cache line数据进行缓存;

A4:将缓存的cache line数据中的有效数据写入对应的Retention RAM 中;

A5:当前搬运结束后,根据范围偏移量的设置,决定是否结束:不结束则继续读取下一个TAG RAM中的TAG项,继续搬运数据;结束则回到IDLE状态,并通过中断接口告知系统数据搬运完成。

在一个具体的实施例中,根据当前TAG项判断是否开始搬运数据的过程,具体包括:

使用逻辑地址中的INDEX域索引获取TAG项,若当前TAG项的有效标志位V有效时,则进一步将当前TAG项与逻辑地址内的逻辑地址TAG域比较,一致则命中(hit),否则未命中(miss);若当前TAG项的有效标志位V无效,则当前TAG项无效(invalid);

若TAG判断为命中(hit),则将DAT标识所对应的cache line数据进行搬运;

若TAG判断为未命中(miss),则跳过当前TAG项,进行下一TAG项判断;

若TAG判断为无效(invalid),则跳过当前TAG项,进行下一TAG项判断。

在本实施例中,无论是Cache RAM数据换入还是换出过程,判断是否开始搬运的步骤实现原理是一样的,具体可以参见附图8,从图8中可以看出,不论是数据换入还是换出时,都必须首先对TAG RAM进行换入或换出,而后在TAG RAM的V标识和是否命中的指引下,进行Cache RAM数据的搬运。

在本实施例中,Cache RAM数据的调入和TAG RAM的初始化以及更新,会占用大量的时间。尤其是在系统睡眠时,Cache RAM数据和TAG RAM数据丢失,会导致系统性能的损失。因此本实施例提供的Cache RAM数据换入实现方法和换出实现方法在实际应用时,可以配合系统状态使用,具体如下:

系统睡眠时,快速将Cache RAM和TAG RAM的数据换出到Retention RAM 中;

系统唤醒后,快速将Retention RAM中的数据,换入到Cache RAM和 RetentionRAM中。

综上所述,本发明实施例公开的数据交换控制器及数据换入换出实现方法,与现有技术相比,具有如下优点:

1.Cache数据搬运过滤功能:

常规的设计中,Cache RAM数据的换入换出需要对整体的数据全部逐项进行搬运。实际应用中,Cache RAM中存在大量的无效数据项,例如对应的条目未填入有效数据或者对应的数据项已经无效。在此情况下,对这些数据进行换入换出,浪费了带宽和功耗。

本实施例提供的方案通过预读TAG RAM的各个标志位,决定是否对相应的CacheRAM内容进行搬运(如图8所示)。如果该项有效(V),则将DATA 项对应的cache line数据进行搬运;如果该项无效,则跳过对应项,直接对下一项进行判断。这一设计减少了搬运次数,加速了数据交换过程,节约了带宽和功耗。

2.数据搬运过程直接端口访问:

常规的数据搬运,需要进行RAM接口到AHB接口,再从AHB接口到RAM 接口的二次转换过程。进行了不必要的数据包转换,造成了系统带宽的浪费和时间延迟。

本实施例提供的方案,采用RAM端口与Cache RAM与Retention RAM相连,整个数据换入和换出过程只发生了Cache RAM数据包<-->Retention RAM 数据包的转换,相比较Cache RAM数据包<-->AHB包<-->Retention RAM数据包的多次转换,显著提高了数据交换的效率。

3.复杂度低:通过将Cache RAM、Retention RAM分别与装置上的第一RAM 端口和第二RAM端口相连,有效降低了Cache模块的设计难度。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的。

18页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种处理方法、装置及设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类