CN103513961A - 片内缓存方法及装置 - Google Patents

片内缓存方法及装置 Download PDF

Info

Publication number
CN103513961A
CN103513961A CN201210201491.7A CN201210201491A CN103513961A CN 103513961 A CN103513961 A CN 103513961A CN 201210201491 A CN201210201491 A CN 201210201491A CN 103513961 A CN103513961 A CN 103513961A
Authority
CN
China
Prior art keywords
streamline
variable
iterative computation
index value
iteration variable
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.)
Granted
Application number
CN201210201491.7A
Other languages
English (en)
Other versions
CN103513961B (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.)
Sanechips Technology Co Ltd
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201210201491.7A priority Critical patent/CN103513961B/zh
Publication of CN103513961A publication Critical patent/CN103513961A/zh
Application granted granted Critical
Publication of CN103513961B publication Critical patent/CN103513961B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Complex Calculations (AREA)

Abstract

本发明提供了一种片内缓存方法及装置,其中,该方法包括:迭代计算的流水线在预设时隙启动;按照预设周期将迭代计算的各级流水线的迭代变量结果移位寄存到片内缓存中,其中,预设时隙的间隔周期为预设周期的整数倍。本发明解决了相关技术中片内缓存容易出错、硬件资源开销大的问题,从而有效地提高片内缓存的正确性,节约了硬件资源,同时也提高了迭代计算的速度。

Description

片内缓存方法及装置
技术领域
本发明涉及通信领域,具体而言,涉及一种片内缓存方法及装置。
背景技术
在数字电路的算法设计中,经常会遇到大规模的迭代计算,为了节约硬件资源,迭代变量经常会存放在具有较大固定延迟的片外存储器件(例如,QDR存储器件)中,但是,这个时候会遇到这样的问题:对于同一组靠得比较近的两次迭代运算,当前迭代计算需要运用上次迭代变量的计算结果作为当前迭代计算的输入,而上次迭代变量的计算结果还来不及从片外存储器中读出或者还来不及写入到片外存储器中,此时,如果当前迭代计算采用读取片外存储器的方式来获取上次迭代变量的计算结果,则会导致迭代计算的错误。
对于单组迭代计算的情况,目前技术人员常用的做法是将上次迭代变量的计算结果用片内缓存装置存储起来,后续的迭代计算可以直接读取此片内缓存装置中的值作为当前迭代计算的输入,而不用从片外存储器件中读取上次迭代变量的计算结果。
但是,在实际电路设计中,一般遇到的情况是多组迭代计算交叉进行,同时,为了对迭代计算进行加速,技术人员往往采用流水线的设计,这个时候,需要对片内缓存装置做许多特定的标识,设计起来往往很繁琐,既容易出错也需要大量的硬件资源开销。
针对相关技术中至少之一的问题,目前尚未提出有效的解决方案。
发明内容
本发明提供了一种片内缓存方法及装置,以至少解决相关技术中片内缓存容易出错、硬件资源开销大的问题。
根据本发明的一个方面,提供了一种片内缓存方法,其包括:迭代计算的流水线在预设时隙启动;按照预设周期将迭代计算的各级流水线的迭代变量结果移位寄存到片内缓存中,其中,预设时隙的间隔周期为预设周期的整数倍。
优选地,按照预设周期将迭代计算的各级流水线的迭代变量结果移位寄存到片内缓存中,同时,将迭代计算的各级流水线的迭代变量结果写入到主存储器件中。
优选地,方法还包括:迭代计算的流水线在预设时隙启动后,获取与当前流水线相对应的索引值,其中,索引值用于指示是否需要从片内缓存中获取当前迭代变量的输入值;根据索引值的指示获取当前迭代变量的输入值进行迭代计算。
优选地,获取与当前流水线相对应的索引值包括:将当前流水线变量寄存器的组号依次与其他级处于计算状态的流水线变量寄存器的组号进行比对,获取与当前流水线变量寄存器的组号相同的流水线变量寄存器;根据当前流水线变量寄存器的级数与获取的流水线变量寄存器的级数之间的级数差生成索引值。
优选地,根据索引值的指示获取当前迭代变量的输入值进行迭代计算包括:在索引值为零时,从主存储器件中获取当前迭代变量的输入值进行迭代计算;或者在索引值不为零时,从片内缓存装置中获取当前迭代变量的输入值进行迭代计算。
优选地,从片内缓存装置中获取当前迭代变量的输入值进行迭代计算包括:根据当前流水线变量寄存器的级数和索引值获取当前迭代变量的输入值在片内缓存装置中的存储地址;根据存储地址获取当前迭代变量的输入值进行迭代计算。
优选地,预设周期为迭代计算的流水线周期。
根据本发明的另一方面,提供了一种片内缓存装置,包其括:启动模块,用于在预设时隙启动迭代计算的流水线;存储模块,用于按照预设周期将迭代计算的各级流水线的迭代变量结果移位寄存到片内缓存中,其中,预设时隙的间隔周期为预设周期的整数倍。
优选地,上述片内缓存装置还包括:获取模块,用于在迭代计算的流水线在预设时隙启动后,获取与当前流水线相对应的索引值,其中,索引值用于指示是否需要从片内缓存中获取当前迭代变量的输入值;计算模块,用于根据索引值的指示获取当前迭代变量的输入值进行迭代计算。
优选地,获取模块包括:获取单元,用于将当前流水线变量寄存器的组号依次与其他级处于计算状态的流水线变量寄存器的组号进行比对,获取与当前流水线变量寄存器的组号相同的流水线变量寄存器;生成单元,用于根据当前流水线变量寄存器的级数与获取的流水线变量寄存器的级数之间的级数差生成索引值。
优选地,计算模块包括:第一计算单元,用于在索引值为零时,从主存储器件中获取当前迭代变量的输入值进行迭代计算;或者第二计算单元,用于在索引值不为零时,从片内缓存装置中获取当前迭代变量的输入值进行迭代计算。
优选地,第二计算单元包括:获取子单元,用于根据当前流水线变量寄存器的级数和索引值获取当前迭代变量的输入值在片内缓存装置中的存储地址;计算子单元,用于根据存储地址获取当前迭代变量的输入值进行迭代计算。
在本发明中,通过将迭代计算的流水线在预设时隙启动,并按照预设周期将迭代计算的各级流水线的迭代变量结果移位寄存到片内缓存中,该预设时隙的间隔周期为预设周期的整数倍,实现了迭代计算的流水线有规律地启动,在预设时隙启动流水线后,并以预设周期为时间单位将各级流水线的迭代变量结果移位寄存到片内缓存中,可以有效地提高片内缓存的正确性,同时,也提高了片内缓存的操作便捷性,由于采用了流水线的设计,从而节约了硬件资源,同时也提高了迭代计算的速度。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的片内缓存方法的流程图;
图2是根据本发明实施例的片内缓存装置的结构框图;
图3是根据本发明实施例的另一种片内缓存装置的结构框图;
图4是根据本发明实施例的获取模块的结构框图;
图5是根据本发明实施例的计算模块的结构框图;
图6是根据本发明实施例的第二计算单元的结构框图;
图7是根据本发明实施例的迭代计算片内缓存结构的示意图;
图8是根据本发明实施例的索引产生模块的工作示意图;以及
图9是根据本发明实施例的迭代计算片内缓存方法的流程图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本实施例提供了一种片内缓存方法,其中,该片内缓存方法包括步骤S102至步骤S104。
步骤S102:迭代计算的流水线在预设时隙启动。
步骤S104:按照预设周期将迭代计算的各级流水线的迭代变量结果移位寄存到片内缓存中,其中,预设时隙的间隔周期为预设周期的整数倍。
通过上述步骤,将迭代计算的流水线在预设时隙启动,并按照预设周期将迭代计算的各级流水线的迭代变量结果移位寄存到片内缓存中,该预设时隙的间隔周期为预设周期的整数倍,实现了迭代计算的流水线有规律地启动,在预设时隙启动流水线后,并以预设周期为时间单位将各级流水线的迭代变量结果移位寄存到片内缓存中,将各级流水线的迭代变量结果的存储与各级流水线的启动对应起来,可以有效地提高片内缓存的正确性,同时,也提高了片内缓存的操作便捷性,由于采用了流水线的设计,从而节约了硬件资源,同时也提高了迭代计算的速度。
为了满足不同应用场景的需求,在本优选实施例中,按照预设周期将迭代计算的各级流水线的迭代变量结果移位寄存到片内缓存中,同时,将迭代计算的各级流水线的迭代变量结果写入到主存储器件中。
在上述优选实施例中,按照预设周期将迭代计算的各级流水线的迭代变量结果移位寄存到片内缓存中,同时,还将迭代计算的各级流水线的迭代变量结果写入到主存储器件中,在迭代计算中,以便可以根据需求从主存储器件中获取迭代变量结果,或者从片内缓存中获取迭代变量结果。
为了有效地获取迭代变量结果,提高迭代计算的速度,在本优选实施例中,迭代计算的流水线在预设时隙启动后,获取与当前流水线相对应的索引值,其中,索引值用于指示是否需要从片内缓存中获取当前迭代变量的输入值;根据索引值的指示获取当前迭代变量的输入值进行迭代计算。
在上述优选实施例中,迭代计算的流水线在预设时隙启动后,获取与当前流水线相对应的索引值,根据索引值来判断是从主存储器件中获取当前迭代变量的输入,还是从片内缓存中获取当前迭代变量的输入,进而进行迭代计算,从而可以有效地获取迭代变量结果,提高迭代计算的速度。
为了准确地、有效地获取当前迭代变量的输入,在本优选实施例中,获取与当前流水线相对应的索引值包括:将当前流水线变量寄存器的组号依次与其他级处于计算状态的流水线变量寄存器的组号进行比对,获取与当前流水线变量寄存器的组号相同的流水线变量寄存器;根据当前流水线变量寄存器的级数与获取的流水线变量寄存器的级数之间的级数差生成索引值。
在上述优选实施例中,在迭代计算过程中,各级流水线都会有对应的变量寄存器来存储该级流水线的中间结果,将当前流水线变量寄存器的组号依次与其他级处于计算状态的流水线变量寄存器的组号进行比对,以找到与当前流水线同组的其他级流水线,由于各级流水线的迭代变量是按照预设周期进行移位寄存的,因此,依次与其他级处于计算状态的流水线变量寄存器的组号进行比对,则可以找到与当前流水线同组且最近的流水线,即当前迭代计算流水线的上次迭代计算的流水线,并根据当前流水线变量寄存器的级数与获取的流水线变量寄存器的级数之间的级数差生成索引值,以便准确地、有效地获取当前迭代变量的输入在片内缓存中的地址。
为了提高迭代计算的速度,在本优选实施例中,根据索引值的指示获取当前迭代变量的输入值进行迭代计算包括:在索引值为零时,从主存储器件中获取当前迭代变量的输入值进行迭代计算;或者在索引值不为零时,从片内缓存中获取当前迭代变量的输入值进行迭代计算。
在上述优选实施例中,当索引值为零时,则表示不存在与当前迭代计算流水线相隔比较近的同组流水线,当前迭代计算有充足的时间可以从主存储器件中获取当前迭代变量的输入值,当索引值不为零时,则表示存在相隔比较近的同组流水线,当前迭代计算需要从片内缓存中获取当前迭代变量的输入值进行迭代计算,从而提高迭代计算的速度。
为了准确地从片内缓存中获取当前迭代变量的输入值,在本优选实施例中,从片内缓存中获取当前迭代变量的输入值进行迭代计算包括:根据当前流水线变量寄存器的级数和索引值获取当前迭代变量的输入值在片内缓存装置中的存储地址;根据存储地址获取当前迭代变量的输入值进行迭代计算。
在上述优选实施例中,由于各级流水线的迭代变量是按照预设周期进行移位寄存的,可以根据当前流水线变量寄存器的级数和索引值获取当前迭代变量的输入值在片内缓存装置中的存储地址,进而获取当前迭代变量的输入值进行迭代计算,从而提高了获取当前迭代变量的输入值准确性,有助于提高迭代计算的速度。
为了提高片内缓存的操作便捷性,在本优选实施例中,预设周期可以为迭代计算的流水线周期,实现任何两个同组或不同组之间流水线的时间间隔为流水线周期的整数倍,便于片内缓存的便捷性,提高片内缓存的准确性。
在本优选实施例中,提供了一种片内缓存装置,如图2所示,该片内缓存装置包括:启动模块202,用于在预设时隙启动迭代计算的流水线;存储模块204,连接至启动模块202,用于按照预设周期将迭代计算的各级流水线的迭代变量结果移位寄存到片内缓存中,其中,预设时隙的间隔周期为预设周期的整数倍。
在上述优选实施例中,通过启动模块202将迭代计算的流水线在预设时隙启动,存储模块204按照预设周期将迭代计算的各级流水线的迭代变量结果移位寄存到片内缓存中,该预设时隙的间隔周期为预设周期的整数倍,实现了迭代计算的流水线有规律地启动,在预设时隙启动流水线后,并以预设周期为时间单位将各级流水线的迭代变量结果移位寄存到片内缓存中,将各级流水线的迭代变量结果的存储与各级流水线的启动对应起来,可以有效地提高片内缓存的正确性,同时,也提高了片内缓存的操作便捷性,由于采用了流水线的设计,从而节约了硬件资源,同时也提高了迭代计算的速度。
为了满足不同应用场景的需求,在本优选实施例中,如图3所示,上述片内缓存装置还包括:获取模块206,用于在迭代计算的流水线在预设时隙启动后,获取与当前流水线相对应的索引值,其中,索引值用于指示是否需要从片内缓存中获取当前迭代变量的输入值;计算模块208,连接至获取模块206,用于根据索引值的指示获取当前迭代变量的输入值进行迭代计算。
为了有效地获取迭代变量结果,提高迭代计算的速度,在本优选实施例中,如图4所示,上述获取模块206包括:获取单元2062,用于将当前流水线变量寄存器的组号依次与其他级处于计算状态的流水线变量寄存器的组号进行比对,获取与当前流水线变量寄存器的组号相同的流水线变量寄存器;生成单元2064,连接至获取单元2062,用于根据当前流水线变量寄存器的级数与获取的流水线变量寄存器的级数之间的级数差生成索引值。
为了准确地、有效地获取当前迭代变量的输入,在本优选实施例中,如图5所示,上述计算模块208包括:第一计算单元2082,用于在索引值为零时,从主存储器件中获取当前迭代变量的输入值进行迭代计算;或者第二计算单元2084,用于在索引值不为零时,从片内缓存装置中获取当前迭代变量的输入值进行迭代计算。
为了提高迭代计算的速度,在本优选实施例中,如图6所示,上述第二计算单元2084包括:获取子单元602,用于根据当前流水线变量寄存器的级数和索引值获取当前迭代变量的输入值在片内缓存装置中的存储地址;计算子单元604,连接至获取子单元602,用于根据存储地址获取当前迭代变量的输入值进行迭代计算。
以下结合附图对上述各个优选实施例进行详细地描述。
图7是根据本发明实施例的迭代计算片内缓存结构的示意图,如图7所示,当迭代计算的流水线在固定时隙启动,使得每级流水线启动时隙的间隔是固定的,为了提高实现的便捷性,可以设计一个计数器,该计数器不断的循环计数,计数周期和迭代计算流水线周期一致,流水线必须在计数器某一固定时隙启动,这样便使得任何两个同组或不同组之间流水线的时间间隔为流水线周期的整数倍,这样也便于后续迭代计算的迭代变量在片内缓存中的寻址。
迭代变量片内缓存可以分为两个功能模块:第一个功能模块为索引产生模块702(相当于获取模块206),用以产生上次迭代变量的值在片内缓存中存储的地址;第二个功能模块为迭代变量移位存储模块704(相当于存储模块204),用来暂存迭代计算的迭代变量输出。
上述索引产生模块702,主要功能是计算当前迭代计算流水线与同组最近的迭代计算流水线的流水周期间隔,是一个预判过程。具体可以是,当前迭代计算流水线启动后,将当前迭代计算第一级流水线变量寄存器(变量寄存器用来保存各级流水线计算的中间结果)的组号按时间顺序依次与其它级处于计算状态的流水线变量寄存器的组号进行比对,直到找到与第一级流水线变量寄存器最近的一个匹配组号为止,然后,根据第一级流水线变量寄存器与匹配得到的流水线变量寄存器的级差产生索引值;如图8所示,第一级流水线变量寄存器自上至下逐一与其它级处于计算状态的流水线变量寄存器的组号进行比对,直到找到与第一级流水线变量寄存器最近的一个匹配组号为止(如图8所示,相同阴影的表示是同组的流水线),此时,确定第一级流水线变量寄存器与第四级流水线变量寄存器的组号相同,即索引值为3,若没有流水线变量寄存器的组号与第一级流水线变量寄存器的组号匹配,则索引值为零,表示当前迭代计算有充足的时间可以从主存储器件(具有较大固定延迟的片外存储器件)中读取上次迭代变量的输出值,无须从片内缓存装置中获取;产生的索引值可以存放到流水线变量寄存器中。
迭代变量移位存储模块704,用来存储迭代变量的输出值,可以为一组移位存储单元,它将以迭代计算的流水线周期为时间单位不间断地对迭代变量的输出值进行移位寄存,因此,迭代变量移位存储模块的功能可以用一组移位寄存器来实现。迭代变量的结果输出将同时写入到主存储器件和移位存储模块中。
优选地,此移位存储器将顺着内容移位的方向进行自然数形式的编址,当流水线中需要输入上次迭代变量的计算结果的时刻将根据索引值为地址,取出移位存储器中的内容作为当前迭代计算的输入。
由上述移位存储器的行为特点可得,它只能暂存流水线计算启动后一定流水线级数范围内的计算结果,移位存储器的大小可以根据流水线的级数进行确定。
基于上述迭代计算片内缓存结构,如图9所示,迭代计算的过程包括如下步骤:
步骤S902:迭代计算请求。
步骤S904:判断是否到达迭代计算流水线启动的预设时隙,若是,则转至步骤S906,若否,则重复步骤S904。
步骤S906:迭代计算流水线启动。
步骤S908:当前迭代计算的流水线启动后,将先由索引产生模块702判断是否存在与当前流水线相邻同组的流水线,若是,则转至步骤S910,若否,则转至步骤S914。
步骤S910:索引产生模块702计算出索引值。
步骤S912:根据索引值从片内缓存中获取当前迭代变量的输入值进行迭代计算。
步骤S914:向主存储器件发出读操作请求。
步骤S916:根据主存储器件返回的当前迭代变量的输入值进行迭代计算。
步骤S918:将迭代变量的计算结果同时写入到主存储器件和移位存储模块中,此结果将作为后续迭代计算的迭代变量的输入,迭代计算结束。
在本实施例中以令牌桶限速算法为例,以流水线周期为预设周期为例,详细描述上述片内缓存方法。
需要对一组具有两个以上不同flow id的报文进行令牌桶限速的时候,令牌桶限速算法的参数(例如,令牌桶中令牌数目、限速发生的时刻)将作为迭代变量存储在外围四倍数据率(Quad Data Rate,简称为QDR)主存储器件中。对于某个flow id,它的每次限速运算将读取上次限速参数结果作为当前限速参数的输入值进行限速运算,也就是说,限速运算本身就是一个迭代计算过程。
对于QDR主存储器件,对它发出读操作后,QDR主存储器件可能固定需要几十个时钟周期返回迭代变量数据,而对于每条flow id而言,由于其报文的数据带宽可能很高,需要对限速的过程设计流水线,且流水线的周期可能只有几个时钟周期,远小于从QDR主存储器件读数据返回周期。这个时候就可能会出现相同flow id的限速运算靠得很近的一前一后两条流水线,前一次限速运算的限速参数结果如果仅存放在QDR主存储器件中,后一次限速运算则来不及从QDR主存储器件中读取前一次限速运算的结果,这样就必须在限速运算电路内部设计一个针对QDR主存储器件的片内缓存模块来暂存每次限速运算的结果参数。
上述限速运算中各级流水线一般均分配有一变量寄存器用来保存各级流水线计算相关的中间结果,其中,可以包括各流水线对应的flow id、流水线是否处于激活状态(即限速运算状态)以及其它需要在各级流水线中传递的信息,且限速过程中接受限速参数进行限速运算的时刻一般都固定,这也是流水线设计的基本特点。
更复杂的情况是,几个不同的flow id的限速运算靠得很近,极端情况是背靠背的流水线计算,这个时候,有的针对QDR的片内缓存还需要区分各个不同的flow id对限速结果参数进行存储,设计起来非常繁琐。
针对上述情况这里给出一种针对QDR的片内缓存的方法及装置,如下所示:
1)令牌桶限速运算的流水线在固定时隙启动,使得每级流水线启动时隙的间隔是固定的,为了提高实现的便捷性,可以设计一个计数器,该计数器不断的循环计数,计数周期和令牌桶限速运算的流水线周期一致,流水线必须在计数器一固定时隙启动,这样便使得任何两个相同flow id或不同flow id报文之间流水线的时间间隔为流水线周期的整数倍,这样可便于后续限速运算在片内限速参数缓存中的寻址;
2)针对QDR的片内限速参数缓存按照功能可以划分为两个功能模块:第一个功能模块为索引产生模块,用以产生上次限速运算结果参数在片内缓存中存储的地址;第二个功能模块为限速参数移位存储模块,用来暂存流水线计算启动后一定流水线级数范围内限速运算的结果参数;
上述索引产生模块,属于一个预判模块,主要功能是计算当前flow id的限速运算流水线与最近相同flow id限速运算流水线的流水线周期间隔,此值即为索引值。
优选地,就是限速运算流水线启动后,将当前限速运算第一级流水变量寄存器中包含的flow id按时间顺序依次与其它级处于限速运算状态的流水线变量寄存器的flow id进行比对,直到找到与第一级流水变量寄存器中包含的flow id在时间上最近的一个flow id相匹配的流水线变量寄存器为止,然后根据上述两个流水线变量寄存器的级差产生索引值;若没有匹配的流水线变量寄存器,则索引值为零,表示当前限速运算有充足的时间可以从QDR主存储器件中读取上次迭代变量的输出值,无须从片内缓存装置中获取;产生的索引值可以存放到流水线变量寄存器中。
此索引值是一个预判值,其指示当限速运算进行到需要从片内缓存中取出限速参数时,待获取的限速参数在片内缓存中存放的地址。
上述限速参数移位存储模块,是用来暂存限速参数结果的。此限速参数移位存储模块可以为一组移位存储单元,优选地,此限速参数移位存储模块可以是一组移位寄存器,它以限速运算的流水线周期为时间单位不间断地进行内容移位寄存;
此移位存储器将顺着内容移位的方向进行自然数形式的编址,当流水线中需要输入限速计算参数的时刻将根据索引值为地址,取出移位存储器中的内容作为限速运算参数的输入;
由上述移位存储器的行为特点可得,它只能暂存流水线计算启动后一定流水线级数范围内限速运算的结果参数,移位存储器的大小可以根据流水线的级数进行确定。
限速运算的过程包括如下步骤;
S1:当前限速运算的流水线启动后,将先由索引产生模块计算出索引值;
S2:限速运算电路模块判断索引值,并进行限速运算的整个过程。若索引值为零,则表示不存在相隔比较近的同flow id运算的流水线,限速运算电路模块将对QDR主存储器件发出读操作命令来获取上次限速参数结果并输入进行当前限速运算;若索引值不为零,则表示存在相隔比较近的相同flow id的限速流水线,限速运算电路模块在需要用到上次限速参数结果的时刻将根据索引值从移位存储器中索引值指示的存储位置获取上次限速参数值并进行当前限速运算;
S3:限速运算电路更新限速参数结果值:将限速运算参数的输出结果同时写入到QDR主存储器件和移位存储模块中,此结果将作为后续限速运算参数的输入;
从以上的描述中,可以看出,本发明实现了如下技术效果:将迭代计算的流水线在预设时隙启动,并按照预设周期将迭代计算的各级流水线的迭代变量结果移位寄存到片内缓存中,该预设时隙的间隔周期与预设周期一致,实现了迭代计算的流水线有规律地启动,并按照与预设时隙的间隔周期一致的预设周期将各级流水线的迭代变量结果移位寄存到片内缓存中,可以有效地提高片内缓存的正确性,同时,也提高了片内缓存的操作便捷性,由于采用了流水线的设计,从而节约了硬件资源,同时也提高了迭代计算的速度。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种片内缓存方法,其特征在于,包括:
迭代计算的流水线在预设时隙启动;
按照预设周期将所述迭代计算的各级流水线的迭代变量结果移位寄存到片内缓存中,其中,所述预设时隙的间隔周期为所述预设周期的整数倍。
2.根据权利要求1所述的方法,其特征在于,按照所述预设周期将所述迭代计算的各级流水线的迭代变量结果移位寄存到片内缓存中,同时,将所述迭代计算的各级流水线的迭代变量结果写入到主存储器件中。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述迭代计算的流水线在所述预设时隙启动后,获取与当前流水线相对应的索引值,其中,所述索引值用于指示是否需要从所述片内缓存中获取当前迭代变量的输入值;
根据所述索引值的指示获取所述当前迭代变量的输入值进行迭代计算。
4.根据权利要求3所述的方法,其特征在于,获取与当前流水线相对应的索引值包括:
将当前流水线变量寄存器的组号依次与其他级处于计算状态的流水线变量寄存器的组号进行比对,获取与所述当前流水线变量寄存器的组号相同的流水线变量寄存器;
根据所述当前流水线变量寄存器的级数与获取的流水线变量寄存器的级数之间的级数差生成所述索引值。
5.根据权利要求3所述的方法,其特征在于,根据所述索引值的指示获取所述当前迭代变量的输入值进行迭代计算包括:
在所述索引值为零时,从所述主存储器件中获取所述当前迭代变量的输入值进行迭代计算;或者
在所述索引值不为零时,从所述片内缓存中获取所述当前迭代变量的输入值进行迭代计算。
6.根据权利要求5所述的方法,其特征在于,从所述片内缓存中获取所述当前迭代变量的输入值进行迭代计算包括:
根据所述当前流水线变量寄存器的级数和所述索引值获取所述当前迭代变量的输入值在所述片内缓存中的存储地址;
根据所述存储地址获取所述当前迭代变量的输入值进行迭代计算。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述预设周期为所述迭代计算的流水线周期。
8.一种片内缓存装置,其特征在于,包括:
启动模块,用于在预设时隙启动迭代计算的流水线;
存储模块,用于按照预设周期将所述迭代计算的各级流水线的迭代变量结果移位寄存到片内缓存中,其中,所述预设时隙的间隔周期为所述预设周期的整数倍。
9.根据权利要求8所述的装置,其特征在于,还包括:
获取模块,用于在所述迭代计算的流水线在所述预设时隙启动后,获取与当前流水线相对应的索引值,其中,所述索引值用于指示是否需要从所述片内缓存中获取当前迭代变量的输入值;
计算模块,用于根据所述索引值的指示获取所述当前迭代变量的输入值进行迭代计算。
10.根据权利要求9所述的装置,其特征在于,所述获取模块包括:
获取单元,用于将当前流水线变量寄存器的组号依次与其他级处于计算状态的流水线变量寄存器的组号进行比对,获取与所述当前流水线变量寄存器的组号相同的流水线变量寄存器;
生成单元,用于根据所述当前流水线变量寄存器的级数与获取的流水线变量寄存器的级数之间的级数差生成所述索引值。
11.根据权利要求9所述的装置,其特征在于,所述计算模块包括:
第一计算单元,用于在所述索引值为零时,从主存储器件中获取所述当前迭代变量的输入值进行迭代计算;或者
第二计算单元,用于在所述索引值不为零时,从所述片内缓存中获取所述当前迭代变量的输入值进行迭代计算。
12.根据权利要求11所述的装置,其特征在于,所述第二计算单元包括:
获取子单元,用于根据所述当前流水线变量寄存器的级数和所述索引值获取所述当前迭代变量的输入值在所述片内缓存中的存储地址;
计算子单元,用于根据所述存储地址获取所述当前迭代变量的输入值进行迭代计算。
CN201210201491.7A 2012-06-18 2012-06-18 片内缓存方法及装置 Active CN103513961B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210201491.7A CN103513961B (zh) 2012-06-18 2012-06-18 片内缓存方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210201491.7A CN103513961B (zh) 2012-06-18 2012-06-18 片内缓存方法及装置

Publications (2)

Publication Number Publication Date
CN103513961A true CN103513961A (zh) 2014-01-15
CN103513961B CN103513961B (zh) 2017-07-11

Family

ID=49896754

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210201491.7A Active CN103513961B (zh) 2012-06-18 2012-06-18 片内缓存方法及装置

Country Status (1)

Country Link
CN (1) CN103513961B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114356422A (zh) * 2022-03-21 2022-04-15 四川新迎顺信息技术股份有限公司 基于大数据的图计算方法、装置、设备及可读存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6304995B1 (en) * 1999-01-26 2001-10-16 Trw Inc. Pipelined architecture to decode parallel and serial concatenated codes
EP1296226A2 (en) * 2001-01-31 2003-03-26 Siroyan Limited Processing program loops in a processor
US7206927B2 (en) * 2002-11-19 2007-04-17 Analog Devices, Inc. Pipelined processor method and circuit with interleaving of iterative operations
US7623660B1 (en) * 2004-07-20 2009-11-24 Xilinx, Inc. Method and system for pipelined decryption
CN101764685B (zh) * 2009-10-26 2012-02-08 广州杰赛科技股份有限公司 实现sms4算法的加解密系统
CN101777924B (zh) * 2010-01-11 2014-02-19 新邮通信设备有限公司 一种Turbo码译码方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114356422A (zh) * 2022-03-21 2022-04-15 四川新迎顺信息技术股份有限公司 基于大数据的图计算方法、装置、设备及可读存储介质

Also Published As

Publication number Publication date
CN103513961B (zh) 2017-07-11

Similar Documents

Publication Publication Date Title
CN103970720B (zh) 基于大规模粗粒度嵌入式可重构系统及其处理方法
CN104142892B (zh) 一种数据读写方法、装置及系统
CN107590085A (zh) 一种具有多级缓存的动态可重构阵列数据通路及其控制方法
Lotker et al. Distributed MST for constant diameter graphs
CN103984560A (zh) 基于大规模粗粒度嵌入式可重构系统及其处理方法
CN102541540B (zh) 一种多星遥测参数图形化配置系统
GB2380291A (en) High level synthesis method for generating circuit including threads
CN101430663A (zh) 缓存管理单元和缓存管理方法
US20050210457A1 (en) Debug system having assembler correcting register allocation errors
CN104573135A (zh) 基于反射内存网与中间件技术的实时数据采集方法及装置
CN102411557B (zh) 多粒度并行fft计算装置
CN106933882B (zh) 一种大数据增量计算方法和装置
CN103513961A (zh) 片内缓存方法及装置
CN103544729A (zh) 一种动画数据处理方法及系统
CN203617974U (zh) 一种基于fpga的可配置系数的滤波器及电子设备
US20230252600A1 (en) Image size adjustment structure, adjustment method, and image scaling method and device based on streaming architecture
US20110283131A1 (en) Computer-readable recording medium, method, and apparatus for calculating power consumption information
CN101587467B (zh) 一种应用于可重构计算架构的重构信息发送引擎
CN101206561B (zh) 一种专用运算单元alu
CN109491602A (zh) 一种用于Key-Value数据存储的Hash计算方法及系统
CN100362839C (zh) 基于流水线的多队列顺序化缓冲管理电路及方法
CN112699140B (zh) 数据处理方法、装置、设备和存储介质
CN103293373A (zh) 电能计量装置及其电能计量芯片
CN103685127B (zh) 用于lte的fft异步交叠变换装置及方法
CN203259592U (zh) 电能计量装置及其电能计量芯片

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20140115

Assignee: SANECHIPS TECHNOLOGY Co.,Ltd.

Assignor: ZTE Corp.

Contract record no.: 2015440020319

Denomination of invention: Caching method and device in sheet

License type: Common License

Record date: 20151123

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20221107

Address after: 518055 Zhongxing Industrial Park, Liuxian Avenue, Xili street, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: SANECHIPS TECHNOLOGY Co.,Ltd.

Address before: 518057 No. 55 South Science and technology road, Shenzhen, Guangdong, Nanshan District

Patentee before: ZTE Corp.

TR01 Transfer of patent right