一种基于可变长缓存行的数据读写方法技术

技术编号:20160257 阅读:44 留言:0更新日期:2019-01-19 00:12
本发明专利技术公开了一种基于可变长缓存行的数据读写方法,查找表来存储每个请求的缓存行信息,当一个读取任务到达缓存时,根据请求索引获取缓存线信息,若请求命中了缓存,根据缓存线信息中的缓存偏移量和缓存线大小,缓存中的数据在多个周期中被读取并发送给请求者,否则请求不在缓存中,一些读取请求被创建并发送出去,把偏移量、标签和缓存行大小记到查找表的记录中,并将请求发送到DRAM,一旦所有数据返回并写入缓存,查找表相应的记录就被设置为有效。本发明专利技术只读写有效数据,只存储有效数据,无效数据丢弃,这样节约读写带宽和存储空间。

【技术实现步骤摘要】
一种基于可变长缓存行的数据读写方法
本专利技术涉及一种数据读写方法,特别是一种基于可变长缓存行的数据读写方法。
技术介绍
通常情况,出于控制和管理的方便,缓存线是等长,但实际情况中,等长数据中有效数据的比例是变化的,意味着总是从总线读取/向总线写入部分无效数据,总线带宽被浪费;在缓存中存放部分无效数据,缓存利用率降低。每笔数据的有效缓存线的个数也不一样,如用等长得缓存线,缓存就有很多的无效数据。可变的缓存线可以节省每笔数据缓存线的个数。如果不用可变长得缓存线,我们就需要数据中最长的缓存线数来存储每笔数据。假设有四笔数据。第一、二、三笔需要两个缓存线,但第四笔数据要八个缓存线,如果用等长策略,就需要32个缓存线,若用不等长策略,只需要14个缓存线。节约了18个缓存线。这些缓存线就可以存其他的数据。因此需要提供一种不等长策略的数据读写方法来提高数据读写效率。
技术实现思路
本专利技术所要解决的技术问题是提供一种基于可变长缓存行的数据读写方法。为解决上述技术问题,本专利技术所采用的技术方案是:一种基于可变长缓存行的数据读写方法,其特征在于包含以下步骤:步骤一:数据在缓存中以环形缓冲方式排列,标志信息与与数据之间设置查找表,查找表也以环形缓冲方式管理;步骤二:若缓存收到读请求,首先检查该请求是否命中查找表中已有的有效记录;步骤三:若在查找表中找到相同标记的记录,该读请求命中缓存,从命中的记录中读出数据偏移和数据大小,然后读出数据缓存中相应的数据并返回给请求者;步骤四:若没有命中,就添加一个新记录到查找表;步骤五:移动头指针在查找表中获取条目;步骤六:若这是一个有效的入口,则在数据缓存中释放其数据,并在数据缓存中分配所需的大小;步骤七:若数据缓存中的可用大小小于要求的大小,则在查找表中按顺序释放更多的入口,直到有足够的空间;并将请求发送到DRAM,一旦所有数据返回并写入缓存,查找表相应的记录就被设置为有效;步骤八:若缓存收到写请求,则添加一个新记录到查找表;步骤九:移动头指针并在查阅表中获取条目;步骤十:若这是一个有效的入口,则在数据缓存中释放其数据,并在数据缓存中分配所需的大小;步骤十一:若数据缓存中可用的大小小于要求的大小,则在查找表中按顺序释放更多的入口,直到有足够的空间;步骤十二:然后用数据缓存更新查找表中相应记录的信息、偏移量和请求大小,并将数据写入数据缓存,使缓存行有效。进一步地,所述步骤一中,若头指针到尾指针大于1,则数据缓存有(头指针-尾指针-1)个有效入口;若头指针等于尾指针,则数据缓存是空的。进一步地,所述步骤二检查该请求是否命中查找表中已有的有效记录是通过比较读请求的标记和查找表中所有有效的记录中的标记来判断。进一步地,为了在数据缓存中释放数据,将数据对应的缓存线大小加到尾指针;为了更新数据缓存,将数据写入数据缓存,并将它的缓存线大小加到头指针;为了检查是否有k个可用条目,确保(头指针-尾指针-k)>1。进一步地,所述查找表存储每个请求的缓存行信息,缓存行信息包括有效位、缓存偏移量、缓存行大小和请求标记。进一步地,所述请求包含对查找表的标记和索引,它有可变的有效数据长度,该数据长度是根据该请求的元数据计算的。本专利技术与现有技术相比,具有以下优点和效果:本专利技术根据数据特点,只读取、写入、存放有效数据,有效的利用总线带宽以及缓存空间,从而增加了总线位宽,提高了频率,增大了缓存物理容量。附图说明图1是本专利技术的一种基于可变长缓存行的数据读写方法的缓存结构示意图。图2是本专利技术的一种基于可变长缓存行的数据读写方法的示意图。具体实施方式下面结合附图并通过实施例对本专利技术作进一步的详细说明,以下实施例是对本专利技术的解释而本专利技术并不局限于以下实施例。如图1所示,本专利技术的一种基于可变长缓存行的数据读写方法,其特征在于包含以下步骤:步骤一:数据在缓存中以环形缓冲方式排列,标志信息与与数据之间设置查找表,查找表也以环形缓冲方式管理;由于数据长度不固定,因此需要增加一个查找表(LUT),来连接标志和数据。数据在缓存中以环形缓冲的方式排列。查找表也是用环形缓冲的方式管理。如果头指针到尾指针大于1,则数据缓存有(头指针-尾指针-1)个有效入口。如果头指针等于尾指针,则数据缓存是空的。查找表也是以这种循环缓冲区的方式更新的。如果缓存收到写请求,移动头指针并在查找表中获取条目。如果这是一个有效的入口,则在数据缓存中释放其数据。并在数据缓存中分配所需的大小。如果数据缓存中可用的大小小于要求,则在查找表中按顺序释放更多的入口,直到有足够的空间。然后更新查找表相应记录的信息,偏移量和请求大小,还将数据写入数据缓存,并使该记录有效。为了在数据缓存中释放数据,我们将数据对应的缓存线大小加到尾指针。为了更新数据缓存,我们将数据写入数据缓存,并将它的缓存线大小加到头指针。为了检查是否有k个可用条目,我们确保(头指针-尾指针-k)>1。步骤二:若缓存收到读请求,首先检查该请求是否命中查找表中已有的有效记录;这是通过比较读请求的标记和查找表中所有有效的记录中的标记来判断。步骤三:若在查找表中找到相同标记的记录,该读请求命中缓存,从命中的记录中读出数据偏移和数据大小,然后读出数据缓存中相应的数据并返回给请求者;步骤四:若没有命中,就添加一个新记录到查找表;步骤五:移动头指针在查找表中获取条目;步骤六:若这是一个有效的入口,则在数据缓存中释放其数据,并在数据缓存中分配所需的大小;步骤七:若数据缓存中的可用大小小于要求的大小,则在查找表中按顺序释放更多的入口,直到有足够的空间;并将请求发送到DRAM,一旦所有数据返回并写入缓存,查找表相应的记录就被设置为有效;步骤八:若缓存收到写请求,则添加一个新记录到查找表;步骤九:移动头指针并在查阅表中获取条目;步骤十:若这是一个有效的入口,则在数据缓存中释放其数据,并在数据缓存中分配所需的大小;步骤十一:若数据缓存中可用的大小小于要求的大小,则在查找表中按顺序释放更多的入口,直到有足够的空间;步骤十二:然后用数据缓存更新查找表中相应记录的信息、偏移量和请求大小,并将数据写入数据缓存,使缓存行有效。本专利技术的工作原理为,在带有可变缓存行的缓存中,有一个查找表来存储每个请求的缓存行信息。此信息包括有效位、缓存偏移量、缓存行大小和请求标记.请求分为两部分:对查找表的标记和索引。它有可变的有效数据长度,该数据长度是根据该请求的元数据计算的。当一个读取任务到达缓存时,根据请求索引获取缓存线信息。如果这是一个有效的缓存线,而这个缓存线的标签等于请求的标签,这意味着这个请求命中了缓存,根据缓存线信息中的缓存偏移量和缓存线大小,缓存中的数据在多个周期中被读取并发送给请求者。否则,请求不在缓存中,一些读取请求被创建并发送出去。要发出这些请求,我们需要在缓存中找到一些空间。空间的数量是请求的数据长度。如果我们没有足够的空间,一些缓存线被设成无效,它们占用的空间被释放。我们把偏移量、标签和缓存行大小记到查找表的记录中,并将请求发送到DRAM,一旦所有数据返回并写入缓存,查找表相应的记录就被设置为有效。本说明书中所描述的以上内容仅仅是对本专利技术所作的举例说明。本专利技术所属
的技术人员可以对所描述的具体实施例做各本文档来自技高网
...

【技术保护点】
1.一种基于可变长缓存行的数据读写方法,其特征在于包含以下步骤:步骤一:数据在缓存中以环形缓冲方式排列,标志信息与与数据之间设置查找表,查找表也以环形缓冲方式管理;步骤二:若缓存收到读请求,首先检查该请求是否命中查找表中已有的有效记录;步骤三:若在查找表中找到相同标记的记录,该读请求命中缓存,从命中的记录中读出数据偏移和数据大小,然后读出数据缓存中相应的数据并返回给请求者;步骤四:若没有命中,就添加一个新记录到查找表;步骤五:移动头指针在查找表中获取条目;步骤六:若这是一个有效的入口,则在数据缓存中释放其数据,并在数据缓存中分配所需的大小;步骤七:若数据缓存中的可用大小小于要求的大小,则在查找表中按顺序释放更多的入口,直到有足够的空间;并将请求发送到DRAM,一旦所有数据返回并写入缓存,查找表相应的记录就被设置为有效;步骤八:若缓存收到写请求,则添加一个新记录到查找表;步骤九:移动头指针并在查找表中获取条目;步骤十:若这是一个有效的入口,则在数据缓存中释放其数据,并在数据缓存中分配所需的大小;步骤十一:若数据缓存中可用的大小小于要求的大小,则在查找表中按顺序释放更多的入口,直到有足够的空间;步骤十二:然后用数据缓存更新查找表中相应记录的信息、偏移量和请求大小,并将数据写入数据缓存,使缓存行有效。...

【技术特征摘要】
1.一种基于可变长缓存行的数据读写方法,其特征在于包含以下步骤:步骤一:数据在缓存中以环形缓冲方式排列,标志信息与与数据之间设置查找表,查找表也以环形缓冲方式管理;步骤二:若缓存收到读请求,首先检查该请求是否命中查找表中已有的有效记录;步骤三:若在查找表中找到相同标记的记录,该读请求命中缓存,从命中的记录中读出数据偏移和数据大小,然后读出数据缓存中相应的数据并返回给请求者;步骤四:若没有命中,就添加一个新记录到查找表;步骤五:移动头指针在查找表中获取条目;步骤六:若这是一个有效的入口,则在数据缓存中释放其数据,并在数据缓存中分配所需的大小;步骤七:若数据缓存中的可用大小小于要求的大小,则在查找表中按顺序释放更多的入口,直到有足够的空间;并将请求发送到DRAM,一旦所有数据返回并写入缓存,查找表相应的记录就被设置为有效;步骤八:若缓存收到写请求,则添加一个新记录到查找表;步骤九:移动头指针并在查找表中获取条目;步骤十:若这是一个有效的入口,则在数据缓存中释放其数据,并在数据缓存中分配所需的大小;步骤十一:若数据缓存中可用的大小小于要求的大小,则在查找表中按顺序释放更多的入口,直到有足够的空间;步骤十二:然后用数据缓存更新查找表中相应记...

【专利技术属性】
技术研发人员:倪岭李云鹏王永流郑成根郑金山邵平平
申请(专利权)人:南京天数智芯科技有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1