CN103885913B - 总线编解码装置及其方法 - Google Patents
总线编解码装置及其方法 Download PDFInfo
- Publication number
- CN103885913B CN103885913B CN201410116576.4A CN201410116576A CN103885913B CN 103885913 B CN103885913 B CN 103885913B CN 201410116576 A CN201410116576 A CN 201410116576A CN 103885913 B CN103885913 B CN 103885913B
- Authority
- CN
- China
- Prior art keywords
- bus
- module
- value
- coding
- count
- 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
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明涉及一种总线编解码装置及其方法,该编解码装置预测命中指令地址总线,编码装置输出的编码后总线可以在大量的执行时间中保持不变,同时有效降低指令地址总线上顺序执行指令、保持不变指令和跳转指令的功耗,从而降低循环程序的总线功耗。
Description
技术领域
本发明涉及集成电路领域,具体地涉及一种总线编解码装置及其方法。
背景技术
随着集成电路工艺技术的飞速发展,嵌入式处理器芯片的工作频率和集成度都得到了很大的提升,由此所带来的功耗问题日益突出。大量的能量消耗会缩短便携式设备中电池的工作时间,而且会给处理器的散热和可靠性带来诸多问题。而连接处理器各个子模块的总线通常具有较大的负载电容,并且访问频繁,是处理器功耗的主要来源之一。因此,有效降低总线功耗对于低功耗嵌入式处理器的设计有着重要意义。
现有技术中,Luca Benini等人发表的文章《Asymptotic Zero-TransitionActivity Encoding for Address Busses in Low-Power Microprocessor-BasedSystem》中提出的一种T0总线编码,其编码方法如公式所示:
其中,公式中B(t)代表当前时钟周期编码装置输出的编码后总线,B(t-1)代表上一个时钟周期编码装置输出的编码后总线,b(t)代表当前时钟周期编码装置输入的编码前总线,b(t-1)代表上一个时钟周期编码装置输入的编码前总线,S代表指令顺序执行时的步长,INC是顺序执行标志。在T0总线编码中,当b(t)等于b(t-1)+S时,即指令地址总线是按顺序执行时,B(t)保持上一个时钟周期的总线,INC为1,此时总线开关活动性为0,从而降低总线功耗。当b(t)不等于b(t-1)+S时,即指令地址总线不是按顺序执行时,B(t)等于b(t),INC为0。虽然T0总线编码方法可以有效降低指令地址总线顺序执行时的功耗,但是无法降低指令地址总线跳转时的功耗。
现有技术中,Yazdan Aghaghiri等人发表的文章《ALBORZ:Address LevelBus Power Optimization》中提出一种ALBORZ总线编码,其编码方法主要是针对指令跳转时产生的偏移地址,偏移地址存在的大量跳变导致总线的开关活动性提高。ALBORZ总线编码采用密码本(codebook)保存优化后的偏移地址,优化后的偏移地址具有较低的开关活动性。其编码方法如公式所示:
其中,公式中d代表指令跳转时产生的偏移地址,OFFSETS代表密码本中包含的偏移地址的集合,LWC(d)代表经过密码本优化后的偏移地址,CODEN代表偏移地址优化标志,符号“⊕”代表逻辑异或运算。当指令跳转时,根据当前偏移地址(d)查找密码本,如果密码本包含当前偏移地址(d∈OFFSETS),则密码本输出对应的优化后的偏移地址(LWC(d)),该地址与B(t-1)做逻辑异或运算,然后将该运算结果赋给B(t),CODEN为1。如果密码本不包含当前偏移地址,B(t)等于b(t),CODEN为0。虽然ALBORZ总线编码方法可以在一定程度上降低指令地址总线跳转时的功耗,但是无法从根本上避免指令地址总线跳转时的功耗,这是因为优化后的LWC(d)依然存在跳变。ALBORZ总线编码方法为了降低指令地址总线跳转时的功耗,需要增加一个密码本存储器,但这增加了设计的面积和复杂度,同时也增加了功耗。
发明内容
本发明的目的是针对现有技术的不足,提供一种总线编解码装置及其方法,编解码装置预测命中循环程序后,编码装置输出到解码装置的编码后总线始终保持不变,编码后总线不存在跳变,开关活动性为0,从而显著降低功耗。也不需要增加额外的密码本存储器,减少了设计的面积和设计复杂度,同时也进一步降低了功耗。
为实现上述目的,本发明第一方面提供了一种总线编码装置,该装置包括:跳转检测模块,用于接收到编码前总线时生成跳转标志;状态控制模块,用于当第一次接收到跳转检测模块发送的跳转标志时,向计数模块、输出选择模块发送控制信号;计数模块,用于根据控制信号对编码前总线的循环长度计算得到第一计数值和对编码前总线的循环起始地址计算得到第二计数值,并以当前时钟周期的第一计数值作为索引地址对循环程序内部的顺序执行指令和保持不变指令的信息计数得到第三计数值;寄存器组模块,用于接收和保存编码前总线,以及计数模块发送的第一计数值、第二计数值和第三计数值,并将上一个时钟周期的编码后总线发送给输出选择模块;输出选择模块,用于接收寄存器组模块发送的上一个时钟周期的编码后总线、跳转检测模块发送的跳转标志和状态控制模块发送的控制信号,并将编码前总线、跳转标志和第一电平输出为编码后总线、循环开始标志和循环命中标志,其中第一电平为低电平;当状态控制模块第二次接收到跳转检测模块发送的跳转标志时,向计数模块和输出选择模块发送控制信号;计数模块根据控制信号对预测循环长度计算得到第四计数值,并以当前时钟周期第四计数值作为索引地址,读取第三计数值对应的比特位作为预测步长,根据第二计数值和预测步长计算预测地址值,得到第五计数值;寄存器组模块接收和保存编码前总线、计数模块发送的第四计数值和第五计数值;如果第五计数值等于编码前总线时,则将上一个时钟周期编码后总线输出为当前时钟周期编码后总线,如果第五计数值不等于编码前总线时,则输出选择模块将编码前总线输出为当前时钟周期编码后总线。
优选地,跳转检测模块包括:减法单元,用于将当前时钟周期编码前总线减去上一个时钟周期编码前总线得到减法结果;第三比较单元,用于比较第二电平与减法单元发送的减法结果的最高位得到比较结果,如果比较结果为相等,则生成跳转标志,其中第二电平为高电平。
优选地,寄存器组模块包括:输入总线寄存器,用于接收和保存编码前总线;循环计数寄存器,用于保存检测到的编码前总线的循环长度;预测计数寄存器,用于保存预测的编码前总线的循环长度;循环基址寄存器,用于保存检测到的编码前总线的循环起始地址;循环偏移寄存器,用于保存检测到的循环程序内部的顺序执行指令和保持不变指令的信息;预测地址寄存器,用于保存第五计数值;输出总线寄存器,用于保存输出的编码后总线。
优选地,计数模块包括:第一选择器,用于根据状态控制模块的控制信号1a控制计数模块对第一计数值保持不变、加1、或者清零;第一比较单元,用于比较循环计数寄存器的值和预测计数寄存器的值,当预测计数寄存器的值等于循环计数寄存器的值时,则一个预测循环结束,预测地址寄存器的值应从循环基址寄存器的值重新计数;第二选择器,用于根据状态控制模块的控制信号2a控制计数模块对第四计数值加1或者清零;第三选择器,用于根据状态控制模块的控制信号3a控制计数模块对第二计数值保持不变、清零或者等于当前时钟周期编码前总线;第四选择器,用于根据状态控制模块的控制信号4a控制计数模块对循环偏移寄存器计数的第三计数值保持不变、按位装载、或者清零;控制信号生成单元,用于根据第一比较单元的结果和控制信号5a控制第五选择器的输出信号;预测步长单元,用于根据当前时钟周期第四计数值作为索引地址,读取循环偏移寄存器的相应比特位得到预测步长;第五选择器,用于根据控制信号生成单元输出的控制信号7a控制第五计数值加上预测步长、清零或者等于循环基址寄存器的值。
优选地,状态控制模块包括:在空闲状态下,通过控制信号1a、控制信号2a、控制信号3a、控制信号4a和控制信号5a控制计数模块将清0值分别赋给循环计数寄存器、预测计数寄存器、循环基址寄存器、循环偏移寄存器和预测地址寄存器;在检测开始状态下,通过控制信号1a控制计数模块开始对循环长度计数,并将计数结果赋给循环计数寄存器,通过控制信号3a控制计数模块将当前编码装置输入的编码前总线赋给循环基址寄存器,然后状态控制模块自动从检测开始状态转换到检测计数状态;在检测计数状态下,通过控制信号4a控制计数模块将循环程序内部的顺序执行指令和保持不变指令的信息以当前时钟周期循环计数寄存器的值作为索引地址保存到循环偏移寄存器的相应比特位,状态控制模块第二次接收到跳转检测模块输出的跳转标志等于第二电平时,状态控制模块转换到预测开始状态;在预测开始状态下,通过控制信号2a控制计数模块开始对预测循环长度计数,通过控制信号5a控制计数模块开始计算预测地址寄存器的值,当预测地址寄存器的值与编码前总线相等时,状态控制模块从预测开始状态转换到预测命中状态,当预测地址寄存器的值与编码前总线不相等时,状态控制模块从预测开始状态转换到空闲状态;在预测命中状态下,以当前时钟周期预测计数寄存器的值作为索引地址,读取循环偏移寄存器的相应比特位作为预测步长,预测地址寄存器的值等于上一个时钟周期预测地址寄存器的值和预测步长相加得到,当预测计数寄存器的值大于循环计数寄存器的值时,则一个预测循环结束,预测地址寄存器的值从循环基址寄存器的值重新计数,同时预测计数寄存器的值也重新计数,如果当预测地址寄存器的值与编码前总线相等时,状态控制模块保持在预测命中状态下,通过控制信号6a控制输出选择模块将上一个时钟周期编码后总线输出为当前时钟周期编码后总线,编码后总线的开关活动性等于0,降低总线功耗,如果当预测地址寄存器的值与编码前总线不相等时,状态控制模块从预测命中状态转换到空闲状态,等待下一次跳转标志,然后通过控制信号6a控制输出选择模块将当前时钟周期编码前总线输出为当前时钟周期编码后总线。
优选地,输出选择模块包括:第六选择器,用于通过状态控制模块的控制信号6a选择当前时钟周期的编码前总线或者上一个时钟周期编码后总线作为当前时钟周期编码后总线输出;第七选择器,用于通过状态控制模块的控制信号6a输出循环开始标志;第八选择器,用于通过状态控制模块的控制信号6a输出循环命中标志。
本发明第二方面提供了一种总线解码装置,该装置包括:状态控制模块,用于当第一次接收到编码装置的循环开始标志时,向计数模块发送控制信号;计数模块,用于根据控制信号对编码后总线的循环长度计算得到第六计数值和对编码后总线的循环起始地址计算得到第七计数值,并以当前时钟周期第六计数值作为索引地址,对编码后总线的循环程序内部的顺序执行指令和保持不变指令的信息计数,得到第八计数值;寄存器组模块,用于接收和保存编码后总线,以及计数模块发送的第六计数值、第七计数值和第八计数值,并将预测地址寄存器的值发送给输出选择模块;输出选择模块,用于接收寄存器组模块发送的预测地址寄存器的值,并将编码后总线输出为解码后总线;当状态控制模块第二次接收到编码装置的循环开始标志时,向计数模块发送控制信号;计数模块根据控制信号对预测循环长度计算得到第九计数值,并以当前时钟周期第九计数值作为索引地址,读取第八计数值对应的比特位作为预测步长,根据第七计数值和预测步长计算预测地址值,得到第十计数值;寄存器组模块接收和保存编码后总线、计数模块发送的第九计数值和第十计数值;如果第十计数值等于编码后总线时,输出选择模块选择第十计数值输出为解码后总线,如果第十计数值不等于编码后总线时,输出选择模块选择当前时钟周期的编码后总线输出为解码后总线。
优选地,寄存器组模块包括:输入总线寄存器,用于接收和保存编码后总线;循环计数寄存器,用于保存检测到的编码后总线的循环长度;预测计数寄存器,用于保存预测的编码后总线的循环长度;循环基址寄存器,用于保存检测到的编码后总线的循环起始地址;循环偏移寄存器,用于保存检测到的循环程序内部的顺序执行指令和保持不变指令的信息;预测地址寄存器,用于保存第十计数值。
优选地,计数模块包括:第一选择器,用于根据状态控制模块的控制信号1b控制计数模块对第六计数值保持不变、加1、或者清零;第一比较单元,用于比较循环计数寄存器的值和预测计数寄存器的值,当预测计数寄存器的值等于循环计数寄存器的值时,则一个预测循环结束,预测地址寄存器的值应从循环基址寄存器的值重新计数;第二选择器,用于根据状态控制模块的控制信号2b控制计数模块对第九计数值加1或者清零;第三选择器,用于根据状态控制模块的控制信号3b控制计数模块对第七计数值保持不变、清零或者等于当前时钟周期编码后总线;第四选择器,用于根据状态控制模块的控制信号4b控制计数模块对循环偏移寄存器计数的第八计数值保持不变、按位装载、或者清零;控制信号生成单元,用于根据第一比较单元的结果和控制信号5b控制第五选择器的输出信号;预测步长单元,用于根据当前时钟周期第九计数值作为索引地址,读取循环偏移寄存器的相应比特位得到预测步长;第五选择器,用于根据控制信号生成单元输出的控制信号6b控制第十计数值加上预测步长、清零或者等于循环基址寄存器的值。
优选地,状态控制模块包括:在空闲状态下,通过控制信号1b、控制信号2b、控制信号3b、控制信号4b和控制信号5b控制计数模块将清0值分别赋给循环计数寄存器、预测计数寄存器、循环基址寄存器、循环偏移寄存器和预测地址寄存器;在检测开始状态下,通过控制信号1b控制计数模块开始对循环长度计数,并将计数结果赋给循环计数寄存器,通过控制信号3b控制计数模块将当前解码装置输入的编码后总线赋给循环基址寄存器,然后状态控制模块自动从检测开始状态转换到检测计数状态;在检测计数状态下,通过控制信号4b控制计数模块将循环程序内部的顺序执行指令和保持不变指令的信息以当前时钟周期循环计数寄存器的值作为索引地址保存到循环偏移寄存器的相应比特位,状态控制模块第二次接收到循环开始标志时,状态控制模块转换到预测开始状态;在预测开始状态下,通过控制信号2b控制计数模块开始对预测循环长度计数,通过控制信号5b控制计数模块开始计算预测地址寄存器的值,当预测地址寄存器的值与编码后总线相等时,状态控制模块从预测开始状态转换到预测命中状态,当预测地址寄存器的值与编码后总线不相等时,状态控制模块从预测开始状态转换到空闲状态;在预测命中状态下,以当前时钟周期预测计数寄存器的值作为索引地址,读取循环偏移寄存器的相应比特位,作为预测步长,预测地址寄存器的值等于上一个时钟周期预测地址寄存器的值和预测步长相加得到,当预测计数寄存器的值大于循环计数寄存器的值时,则一个预测循环结束,预测地址寄存器的值从循环基址寄存器的值重新计数,同时预测计数寄存器的值也重新计数,如果当预测地址寄存器的值与编码后总线相等时,状态控制模块保持在预测命中状态下,如果当预测地址寄存器的值与编码后总线不相等时,状态控制模块从预测命中状态转换到空闲状态。
优选地,输出选择模块包括:第六选择器,用于通过循环命中标志选择当前时钟周期的预测地址寄存器的值或者当前时钟周期的编码后总线作为当前时钟周期解码后总线输出。
本发明第三方面提供了一种总线编码方法,该方法包括:跳转检测模块接收到编码前总线时生成跳转标志;当状态控制模块第一次接收到跳转检测模块发送的跳转标志时,向计数模块、输出选择模块发送控制信号;计数模块根据控制信号对编码前总线的循环长度计算得到第一计数值和对编码前总线的循环起始地址计算得到第二计数值,并以当前时钟周期的第一计数值作为索引地址对循环程序内部的顺序执行指令和保持不变指令的信息计数得到第三计数值;寄存器组模块接收和保存编码前总线,以及计数模块发送的第一计数值、第二计数值和第三计数值,并将上一个时钟周期的编码后总线发送给输出选择模块;输出选择模块接收寄存器组模块发送的上一个时钟周期的编码后总线、跳转检测模块发送的跳转标志和状态控制模块发送的控制信号,并将编码前总线、跳转标志和第一电平输出为编码后总线、循环开始标志和循环命中标志,其中第一电平为低电平;当状态控制模块第二次接收到跳转检测模块发送的跳转标志时,向计数模块和输出选择模块发送控制信号;计数模块根据控制信号对预测循环长度计算得到第四计数值,并以当前时钟周期第四计数值作为索引地址,读取第三计数值对应的比特位作为预测步长,根据第二计数值和预测步长计算预测地址值,得到第五计数值;寄存器组模块接收和保存编码前总线、计数模块发送的第四计数值和第五计数值;如果第五计数值等于编码前总线时,则将上一个时钟周期编码后总线输出为当前时钟周期编码后总线,如果第五计数值不等于编码前总线时,则输出选择模块将编码前总线输出为当前时钟周期编码后总线。
本发明第四方面提供了一种总线解码方法,该方法包括:当状态控制模块第一次接收到编码装置的循环开始标志时,向计数模块发送控制信号;计数模块根据控制信号对编码后总线的循环长度计算得到第六计数值和对编码后总线的循环起始地址计算得到第七计数值,并以当前时钟周期第六计数值作为索引地址,对编码后总线的循环程序内部的顺序执行指令和保持不变指令的信息计数,得到第八计数值;寄存器组模块接收和保存编码后总线,以及计数模块发送的第六计数值、第七计数值和第八计数值,并将预测地址寄存器的值发送给输出选择模块;输出选择模块接收寄存器组模块发送的预测地址寄存器的值,并将编码后总线输出为解码后总线;当状态控制模块第二次接收到编码装置的循环开始标志时,向计数模块发送控制信号;计数模块根据控制信号对预测循环长度计算得到第九计数值,并以当前时钟周期第九计数值作为索引地址,读取第八计数值对应的比特位作为预测步长,根据第七计数值和预测步长计算预测地址值,得到第十计数值;寄存器组模块接收和保存编码后总线、计数模块发送的第九计数值和第十计数值;如果第十计数值等于编码后总线时,输出选择模块选择第十计数值输出为解码后总线,如果第十计数值不等于编码后总线时,输出选择模块选择当前时钟周期的编码后总线输出为解码后总线。
本发明提供的一种总线编解码装置及其方法,预测命中循环程序后,编码装置输出到解码装置的编码后总线始终保持不变,编码后总线不存在跳变,开关活动性为0,从而显著降低功耗。也不需要增加额外的密码本存储器,减少了设计的面积和设计复杂度,同时也进一步降低了功耗。
附图说明
图1为本发明实施例的总线编码装置和解码装置结构示意图;
图2为本发明实施例输入到总线编码装置的编码前总线的时序图;
图3为本发明实施例总线编码装置示意图;
图4为本发明实施例总线编码装置原理结构图;
图5为本发明实施例总线解码装置示意图;
图6为本发明实施例总线解码装置原理结构图;
图7为本发明实施例总线编解码装置的信号的时序图;
图8为本发明实施例总线编码方法流程图;
图9为本发明实施例总线解码方法流程图。
具体实施方式
为使本发明的技术方案以及优点表达的更清楚,下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
本发明公开了一种总线编解码装置及其方法,主要通过编解码装置预测命中循环程序后,编码装置输出到解码装置的编码后总线始终保持不变,编码后总线不存在跳变,开关活动性为0,从而显著降低功耗。
图1为本发明实施例的总线编码装置和解码装置结构示意图。如图1所示,该编码装置用于接收数据发送单元发送的编码前总线,该解码装置用于接收编码装置发送的编码后总线和控制信号。由于编码前总线上存在着大量跳变,使得编码前总线的开关活动性很高,总线功耗很大,通过编码装置可以使得编码后总线的开关活动性降低,进而降低功耗,通过解码装置实现总线解码功能,使得解码后的总线与编码前总线保持一致,从而保证整体系统能够正常工作。总线编解码装置主要解决现有总线编码不能有效降低循环程序的总线功耗问题。该总线编解码装置相对于传统的总线编码装置增加了针对循环程序的检测与预测功能。通过编解码装置预测命中指令地址总线,编码装置输出的编码后总线可以在大量的执行时间中保持不变。本发明可以同时有效降低指令地址总线上顺序执行指令、保持不变指令和跳转指令的功耗,同时不需要增加额外的密码本存储器。
图2为本发明实施例输入到总线编码装置的编码前总线的时序图。通常处理器执行的应用程序中有大量的顺序执行指令,即指令地址总线是按顺序变化。同时,当应用程序发生指令跳转时,指令地址总线上通常会产生大量跳变,这会导致指令地址总线的开关活动性提高,从而增加总线功耗。在嵌入式应用程序中,其核心主要是循环程序,通常不到10%的循环程序占用了90%以上的执行时间。通过分析嵌入式应用程序的特点,可以发现大量的跳转指令是循环程序的开始,而循环程序内部通常是由顺序执行指令和保持不变指令组成。如果通过总线编解码能够有效预测在总线上传递的是循环程序,就可以长时间的保持编码装置输出的编码后总线不变,从而显著降低总线的开关活动性,进而有效降低总线功耗。
图3为本发明实施例总线编码装置示意图。图4为本发明实施例总线编码装置原理结构图。
如图3、4所示,本发明提供的总线编码装置包括:跳转检测模块11、状态控制模块12、计数模块13、寄存器组模块14和输出选择模块15。
跳转检测模块11,用于接收到编码前总线时生成跳转标志。
具体地,跳转检测模块11包括:减法单元和第三比较单元。
减法单元,用于将当前时钟周期编码前总线减去上一个时钟周期编码前总线得到减法结果;
第三比较单元,用于比较第二电平与减法单元发送的减法结果的最高位得到比较结果,如果比较结果为相等,则生成跳转标志,其中第二电平为高电平。
状态控制模块12,用于当第一次接收到跳转检测模块11发送的跳转标志时,向计数模块13、输出选择模块15发送控制信号。
具体地,状态控制模块12包括5种工作状态:空闲状态、检测开始状态、检测计数状态、预测开始状态、预测命中状态。
在空闲状态下,通过控制信号1a、控制信号2a、控制信号3a、控制信号4a和控制信号5a控制计数模块13将清0值分别赋给循环计数寄存器141、预测计数寄存器142、循环基址寄存器143、循环偏移寄存器144和预测地址寄存器145。
在检测开始状态下,通过控制信号1a控制计数模块13开始对循环长度计数,并将计数结果赋给循环计数寄存器141,通过控制信号3a控制计数模块13将当前编码装置输入的编码前总线赋给循环基址寄存器143,然后状态控制模块12自动从检测开始状态转换到检测计数状态。
在检测计数状态下,通过控制信号4a控制计数模块13将循环程序内部的顺序执行指令和保持不变指令的信息以当前时钟周期循环计数寄存器141的值作为索引地址保存到循环偏移寄存器144的相应比特位,状态控制模块12第二次接收到跳转检测模块11输出的跳转标志等于第二电平时,状态控制模块12转换到预测开始状态。
在预测开始状态下,通过控制信号2a控制计数模块13开始对预测循环长度计数,通过控制信号5a控制计数模块13开始计算预测地址寄存器145的值,以当前时钟周期预测计数寄存器的值作为索引地址,读取循环偏移寄存器的相应比特位作为预测步长,根据循环基址寄存器的值和预测步长相加得到预测地址寄存器的值。当预测地址寄存器145的值与编码前总线相等时,状态控制模块12从预测开始状态转换到预测命中状态,当预测地址寄存器145的值与编码前总线不相等时,状态控制模块12从预测开始状态转换到空闲状态。
在预测命中状态下,以当前时钟周期预测计数寄存器的值作为索引地址,读取循环偏移寄存器的相应比特位作为预测步长,预测地址寄存器的值等于上一个时钟周期预测地址寄存器的值和预测步长相加得到,通过控制信号5a使得计数模块继续计算预测地址寄存器的值,当预测计数寄存器的值大于循环计数寄存器的值时,说明一个预测循环结束,预测地址寄存器的值应从循环基址寄存器的值重新计数。同时预测计数寄存器的值也要重新计数。如果当预测地址寄存器的值与编码装置输入的编码前总线相等时,状态控制模块保持在预测命中状态下。此时通过控制信号6a控制输出选择模块将上一个时钟周期编码后总线输出为当前时钟周期编码后总线,即编码后总线保持不变,编码后总线的开关活动性等于0,从而降低总线功耗。如果当预测地址寄存器的值与编码装置输入的编码前总线不相等时,状态控制模块从预测命中状态转换到空闲状态,等待下一次跳转标志。此时通过控制信号6a控制输出选择模块将当前时钟周期编码前总线输出为当前时钟周期编码后总线。
计数模块13,用于根据控制信号对编码前总线的循环长度计算得到第一计数值和对编码前总线的循环起始地址计算得到第二计数值,并以当前时钟周期的第一计数值作为索引地址对循环程序内部的顺序执行指令和保持不变指令的信息计数得到第三计数值。计数模块13根据控制信号对预测循环长度计算得到第四计数值,并以当前时钟周期第四计数值作为索引地址,读取第三计数值对应的比特位作为预测步长,根据第二计数值和预测步长计算预测地址值,得到第五计数值。
具体地,计数模块13主要包括:第一选择器1301、第二选择器1302、第三选择器1303、第四选择器1304、第五选择器1305、第一加1单元1307、第二加1单元1308、第一比较单元1309、第二比较单元1310、加步长单元1311(+S单元)、加法单元1312、预测步长单元1313和控制信号生成单元1306。
第一选择器1301,用于根据状态控制模块12的控制信号1a控制计数模块13对第一计数值保持不变、加1、或者清零;
第一比较单元1309,用于比较循环计数寄存器141的值和预测计数寄存器142的值,当预测计数寄存器142的值等于循环计数寄存器141的值时,则一个预测循环结束,预测地址寄存器145的值应从循环基址寄存器143的值重新计数;
第二选择器1302,用于根据状态控制模块12的控制信号2a控制计数模块13对第四计数值加1或者清零;
第三选择器1303,用于根据状态控制模块12的控制信号3a控制计数模块13对第二计数值保持不变、清零或者等于当前时钟周期编码前总线;
第四选择器1304,用于根据状态控制模块12的控制信号4a控制计数模块13对循环偏移寄存器144计数的第三计数值保持不变、按位装载、或者清零;
控制信号生成单元1306,用于根据第一比较单元1309的结果和控制信号5a控制第五选择器的输出信号;
预测步长单元1313,用于根据当前时钟周期第四计数值作为索引地址,读取循环偏移寄存器144的相应比特位得到预测步长;
第五选择器1305,用于根据控制信号生成单元输出的控制信号7a控制第五计数值加上预测步长、清零或者等于循环基址寄存器143的值,第五计数值是预测地址寄存器的值,在预测开始状态下,第五计数值由循环基址寄存器的值和预测步长单元1313的值相加得到;在预测命中状态下,第五计数值由上一个时钟周期预测地址寄存器的值和预测步长单元1313的值相加得到,预测步长单元1313的值是以当前时钟周期的预测计数寄存器的值作为索引地址,读取相应的循环偏移寄存器比特位赋给预测步长单元1313。
寄存器组模块14,用于接收和保存编码前总线,以及计数模块13发送的第一计数值、第二计数值、第三计数值、第四计数值和第五计数值,并将上一个时钟周期的编码后总线发送给输出选择模块15。
具体地,寄存器组模块14包括:输入总线寄存器140、循环计数寄存器141、预测计数寄存器142、循环基址寄存器143、循环偏移寄存器144、预测地址寄存器145和输出总线寄存器146。
输入总线寄存器140用于保存编码装置输入的编码前总线;
循环计数寄存器141用于保存检测到的循环程序长度;
预测计数寄存器142用于保存预测的循环程序长度;
循环基址寄存器143用于保存检测到的循环程序起始地址;
循环偏移寄存器144用于保存检测到的循环程序内部的顺序执行指令和保持不变指令的信息。信息是指当前时钟周期循环程序内部是顺序执行指令时,以当前时钟周期的循环计数寄存器141的值作为索引地址,将相应的循环偏移寄存器144比特位置1,当前时钟周期循环程序内部是保持不变指令时,以当前时钟周期的循环计数寄存器141的值作为索引地址,将相应的循环偏移寄存器144比特位置0;
预测地址寄存器145用于保存编码装置预测的总线;
输出总线寄存器146用于保存编码装置输出的编码后总线。
当状态控制模块12第二次接收到跳转检测模块11发送的跳转标志时,向计数模块13和输出选择模块15发送控制信号;计数模块13根据控制信号对预测循环长度计算得到第四计数值,并以当前时钟周期第四计数值作为索引地址,读取第三计数值对应的比特位作为预测步长,根据第二计数值和预测步长计算预测地址值,得到第五计数值;寄存器组模块14接收和保存编码前总线、计数模块13发送的第四计数值和第五计数值;如果第五计数值等于编码前总线时,则将上一个时钟周期编码后总线输出为当前时钟周期编码后总线,如果第五计数值不等于编码前总线时,则输出选择模块15将编码前总线输出为当前时钟周期编码后总线。
输出选择模块15,接收寄存器组模块14发送的上一个时钟周期的编码后总线、跳转检测模块11发送的跳转标志和状态控制模块12发送的控制信号,并将编码前总线、跳转标志和第一电平输出为编码后总线、循环开始标志和循环命中标志,其中第一电平为低电平。
具体地,输出选择模块15包括:第六选择器151、第七选择器152、第八选择器153。
第六选择器151,用于通过状态控制模块12的控制信号6选择当前时钟周期的编码前总线或者上一个时钟周期编码后总线作为当前时钟周期编码后总线输出;
第七选择器152,用于通过状态控制模块12的控制信号6输出循环开始标志;
第八选择器153,用于通过状态控制模块12的控制信号6输出循环命中标志。
输出选择模块15通过第六选择器151、第七选择器152和第八选择器153根据控制信号6选择编码后总线、循环开始标志和循环命中标志。当状态控制模块12在预测命中状态下时,当前时钟周期编码后总线等于上一个时钟周期编码后总线,即编码后总线保持不变,循环开始标志等于第一电平,循环命中标志等于第二电平。当状态控制模块12不在预测命中状态下时,当前时钟周期编码后总线等于当前时钟周期编码前总线,循环开始标志等于编码装置内部跳转检测模块11输出的跳转标志,循环命中标志等于第一电平。
图5为本发明实施例总线解码装置示意图,图6为本发明实施例中总线解码装置原理结构图。
如图5所示,本发明提供的总线解码装置包括:状态控制模块21、计数模块22、寄存器组模块23和输出选择模块24。
状态控制模块21,用于当第一次接收到解码装置的循环开始标志时,向计数模块22发送控制信号。
具体地,状态控制模块21包括5种工作状态:空闲状态、检测开始状态、检测计数状态、预测开始状态、预测命中状态。
在空闲状态下,通过控制信号1b、控制信号2b、控制信号3b、控制信号4b和控制信号5b控制计数模块22将清0值分别赋给循环计数寄存器231、预测计数寄存器232、循环基址寄存器233、循环偏移寄存器234和预测地址寄存器235。
在检测开始状态下,通过控制信号1b控制计数模块22开始对循环长度计数,并将计数结果赋给循环计数寄存器231,通过控制信号3b控制计数模块22将当前解码装置输入的编码后总线赋给循环基址寄存器233,然后状态控制模块21自动从检测开始状态转换到检测计数状态。
在检测计数状态下,通过控制信号4b控制计数模块22将循环程序内部的顺序执行指令和保持不变指令的信息以当前时钟周期循环计数寄存器231的值作为索引地址保存到循环偏移寄存器234的相应比特位,状态控制模块21第二次接收到循环开始标志时,状态控制模块21转换到预测开始状态。
在预测开始状态下,通过控制信号2b控制计数模块22开始对预测循环长度计数,通过控制信号5b控制计数模块开始计算第十计数值,以当前时钟周期第九计数值作为索引地址,读取循环偏移寄存器的相应比特位,作为预测步长;根据循环基址寄存器的值和预测步长相加得到第十计数值,当预测地址寄存器235的值与编码后总线相等时,状态控制模块21从预测开始状态转换到预测命中状态,当预测地址寄存器235的值与编码后总线不相等时,状态控制模块21从预测开始状态转换到空闲状态。
在预测命中状态下,以当前时钟周期预测计数寄存器的值作为索引地址,读取循环偏移寄存器的相应比特位,作为预测步长,预测地址寄存器的值等于上一个时钟周期预测地址寄存器的值和预测步长相加得到,如果循环命中标志为第二电平时,输出选择模块24选择预测地址寄存器235的值输出为解码后总线,当循环命中标志为第一电平时,输出选择模块24选择当前时钟周期的编码后总线输出为解码后总线。
计数模块22,用于根据控制信号对编码后总线的循环长度计算得到第六计数值和对编码后总线的循环起始地址计算得到第七计数值,并以当前时钟周期第六计数值作为索引地址,对编码后总线的循环程序内部的顺序执行指令和保持不变指令的信息计数,得到第八计数值。计数模块22根据控制信号对预测循环长度计算得到第九计数值,并以当前时钟周期第九计数值作为索引地址,读取第八计数值对应的比特位作为预测步长,根据第七计数值和预测步长计算预测地址值,得到第十计数值。
具体地,计数模块22包括:第一选择器2201、第二选择器2202、第三选择器2203、第四选择器2204、第五选择器2205、第一加1单元2207、第二加1单元2208、第一比较单元2209、第二比较单元2210、加步长单元2211(+S单元)、加法单元2212、预测步长单元2213和控制信号生成单元2206。
第一比较单元2209,用于比较循环计数寄存器231的值和预测计数寄存器232的值。当预测计数寄存器232的值等于循环计数寄存器231的值时,则一个预测循环结束,预测地址寄存器235的值应从循环基址寄存器233的值重新计数;
第一选择器2201,用于根据控制信号1b决定循环计数寄存器231的计数值是保持不变、加1、或者清零;
第二选择器2202,用于根据状态控制模块21的控制信号2b控制计数模块22对第九计数值加1或者清零;
第三选择器2203,用于根据状态控制模块21的控制信号3b控制计数模块22对第七计数值保持不变、清零或者等于当前时钟周期编码后总线;
第四选择器2204,用于根据状态控制模块21的控制信号4b控制计数模块22对循环偏移寄存器234计数的第八计数值保持不变、按位装载、或者清零;
控制信号生成单元,用于根据第一比较单元2209的结果和控制信号5b控制第五选择器2205的输出信号;
预测步长单元2213,用于根据当前时钟周期第九计数值作为索引地址,读取循环偏移寄存器234的相应比特位得到预测步长;
第五选择器2205,用于根据控制信号生成单元输出的控制信号6b控制第十计数值加上预测步长、清零或者等于循环基址寄存器233的值。第十计数值是预测地址寄存器的值,由循环基址寄存器的值和预测步长单元2213的值相加得到的,预测步长单元2213的值是以当前时钟周期的预测计数寄存器的值作为索引地址,读取相应的循环偏移寄存器比特位赋给预测步长单元2213。
寄存器组模块23,用于接收和保存编码后总线,以及计数模块22发送的第六计数值、第七计数值、第八计数值、第九计数值和第十计数值,并将预测地址寄存器235的值发送给输出选择模块24。
具体地,寄存器组模块23包括:输入总线寄存器230,用于接收和保存编码后总线;循环计数寄存器231,用于保存检测到的编码后总线的循环长度;预测计数寄存器232,用于保存预测的编码后总线的循环长度;循环基址寄存器233,用于保存检测到的编码后总线的循环起始地址;循环偏移寄存器234,用于保存检测到的循环程序内部的顺序执行指令和保持不变指令的信息;预测地址寄存器235,用于保存预测地址寄存器的值。
输出选择模块24,用于接收寄存器组模块23发送的预测地址寄存器235的值,通过循环命中标志选择当前时钟周期的预测地址寄存器235的值或者当前时钟周期的编码后总线作为当前时钟周期解码后总线输出。
具体地,如果预测地址寄存器的值等于编码后总线时,循环命中标志为第二电平,输出选择模块选择预测地址寄存器的值输出为解码后总线。如果预测地址寄存器的值不等于编码后总线时,循环命中标志为第一电平,状态控制模块从预测开始状态转换到空闲状态,输出选择模块选择当前时钟周期的编码后总线输出为解码后总线。
在一实施例中,在编码装置中,当编码前总线第一次发生后向跳转时,跳转模块11生成跳转标志,状态控制模块12从空闲状态转换到检测开始状态。在检测开始状态下,通过控制信号1a使得计数模块13开始对循环长度计数,并将计数结果赋给循环计数寄存器141。通过控制信号3a使得计数模块13将当前时钟周期编码装置输入的编码前总线赋给循环基址寄存器143。状态控制模块12之后自动从检测开始状态转换到检测计数状态。在检测计数状态下,通过控制信号4a使得计数模块13将循环程序内部的顺序执行指令和保持不变指令的信息以当前时钟周期循环计数寄存器141的值作为索引地址保存到循环偏移寄存器144的相应比特位。例如,当第一个时钟周期顺序执行时,就将循环偏移寄存器144的第一位置为第二电平,用十六进制数表示为00000001(01h)。当循环程序第二个时钟周期顺序执行时,就将循环偏移寄存器144的第二位置为第二电平,用十六进制数表示为00000011(03h)。当循环程序第三个时钟周期顺序执行时,就将循环偏移寄存器144的第三位置为第二电平,用十六进制数表示为00000111(07h)。当循环程序第四个时钟周期保持不变时,就将循环偏移寄存器144的第四位置为第一电平,用十六进制数表示为00000111(07h)。当循环程序第五个时钟周期顺序执行时,就将循环偏移寄存器144的第五位置为第二电平,用十六进制数表示为00010111(17h)。当循环程序第六个时钟周期顺序执行时,就将循环偏移寄存器144的第六位置为第二电平,用十六进制数表示为00110111(37h)。当循环程序第七个时钟周期保持不变时,就将循环偏移寄存器144的第七位置为第一电平,用十六进制数表示为00110111(37h)。当循环程序第八个时钟周期顺序执行时,就将循环偏移寄存器144的第八位置为第二电平,用十六进制数表示为10110111(b7h)。
当编码前总线第二次发生后向跳转时,编码装置的状态控制模块12从检测计数状态转换到预测开始状态。在预测开始状态下,通过控制信号2a使得计数模块13开始对预测循环长度计数,并将计数结果赋给预测计数寄存器142。通过控制信号1a使得计数模块13保持循环计数寄存器141的值不变。通过控制信号4a使得计数模块13保持循环偏移寄存器144的值不变。通过控制信号5a使得计数模块13开始计算预测地址寄存器145的值。预测地址寄存器145的值由循环基址寄存器143的值和预测步长单元的值相加得到。以当前时钟周期的预测计数寄存器142的值作为索引地址,读取相应的循环偏移寄存器144比特位,赋给预测步长单元。例如,状态控制模块12处在预测开始状态,循环基址寄存器143的值为29,预测计数寄存器142的值为1时,以1作为索引地址,读取循环偏移寄存器144的10110111(b7h)的第一位为1,因此预测步长单元为加1,预测地址寄存器的值等于30。当预测地址寄存器的值与编码装置输入的编码前总线相等时,状态控制模块从预测开始状态转换到预测命中状态,当预测地址寄存器的值与编码装置输入的编码前总线不相等时,状态控制模块从预测开始状态转换到空闲状态。在预测命中状态下,通过控制信号5a使得计数模块继续计算预测地址寄存器的值。当预测计数寄存器的值等于循环计数寄存器的值时,说明一个预测循环结束,预测地址寄存器的值应从循环基址寄存器的值重新计数。例如,当预测计数寄存器的值等于9时,此时预测计数寄存器的值等于循环计数寄存器的值,因此预测地址寄存器的值应从循环基址寄存器的值(29)重新计数。同时预测计数寄存器也要重新计数。如果当预测地址寄存器的值与编码装置输入的编码前总线相等时,状态控制模块保持在预测命中状态下。此时通过控制信号6a使得输出选择模块15将上一个时钟周期编码后总线赋给当前时钟周期编码后总线,即编码后总线保持不变,编码后总线的开关活动性等于0,从而降低总线功耗。同时,循环开始标志为第一电平,循环命中标志为第二电平。当状态控制模块12不在预测命中状态时,通过控制信号6a使得输出选择模块15将当前时钟周期编码前总线直接赋给当前时钟周期编码后总线,循环开始标志等于跳转标志。如果当预测地址寄存器的值与编码装置输入的编码前总线不相等时,状态控制模块12从预测命中状态转换到空闲状态,等待下一次跳转标志。
在解码装置中,解码装置的寄存器组模块不包含输出总线寄存器,解码装置的状态控制模块所需要的跳转标志由编码装置输出的循环开始标志提供,解码装置的输出选择模块根据编码装置输出的循环命中标志选择解码后总线。当循环命中标志为第二电平时,解码装置的输出选择模块通过第六选择器选择预测地址寄存器的值作为解码装置输出的解码后总线,当循环命中标志为第一电平时,解码装置的输出选择模块通过第六选择器选择当前时钟周期的编码后总线作为解码装置输出的解码后总线。解码装置的状态控制模块所需要的跳转标志由编码装置输出的循环开始标志提供、解码装置的输出选择模块根据编码装置输出的循环命中标志选择解码后总线。当循环命中标志为第一电平时,解码装置输出的解码后总线等于输入的编码后总线。当循环命中标志为第二电平时,解码装置输出的解码后总线等于解码装置的预测地址寄存器的值。
编解码装置避免采用较大的存储单元保存循环程序中每一个时钟周期的总线值。而是通过一个循环基址寄存器保存循环程序开始的地址,同时采用循环偏移寄存器的一个比特位保存循环程序内部的顺序执行指令和保持不变指令的信息。
图7为本发明实施例总线编解码装置的信号的时序图。具体地,状态控制模块:0代表空闲状态、1代表检测开始状态、2代表检测计数状态、3代表预测开始状态、4代表预测命中状态。循环偏移寄存器用十六进制数表示,其他寄存器用十进制数表示。
假设循环程序执行50次,跳转指令发生跳变个数等于B(t-1)和B(t)的差值,顺序执行指令发生1次跳变,保持不变指令不发生跳变。编码前总线在一个循环周期内的跳变个数为6+1+1+1+0+1+1+0+1=12,则编码前总线在整个循环程序内的跳变个数=12*50=600。编码后总线在第一个循环周期内的跳变个数=12,在第二个循环周期内的跳变个数=6+1=7,在余下的循环周期内的跳变个数=0,整个循环程序内的跳变个数=12+7=19。由此可得,本发明的总线编码方法可以明显减少总线上的跳变次数,从而有效降低总线功耗。
本发明提供的总线编解码方法如公式所示:
其中,Bp (t)代表当前时钟周期编码装置预测的指令地址总线,JumpFlag(t)代表当前时钟周期编码装置内部跳转检测模块输出的跳转标志,LoopStart(t)代表当前时钟周期编码装置输出给解码装置的循环开始标志,LoopHit(t)代表当前时钟周期编码装置输出给解码装置的循环命中标志。
当编码装置没有检测到跳转标志时,编码装置将b(t)、JumpFlag(t)和0赋给B(t)、LoopStart(t)和LoopHit(t),并且输出给解码装置。此时,编码装置和解码装置的寄存器组模块和计数模块不保存任何信息。当编码装置第一次检测到跳转标志时,编码装置将b(t)、JumpFlag(t)和0赋给B(t)、LoopStart(t)和LoopHit(t),并且输出给解码装置。此时,编码装置和解码装置开始保存循环的长度、循环的起始地址、以及循环程序内部的顺序执行指令和保持不变指令的信息。当编码装置第二次检测到跳转标志时,根据之前保存的信息,编码装置和解码装置开始计算Bp(t)。如果Bp(t)等于b(t),即编码装置和解码装置预测命中指令地址总线,则B(t)等于B(t-1),LoopStart(t)为0,LoopHit(t)为1,此时总线开关活动性为0,从而降低总线功耗。如果B(t)不等于b(t),即编码装置和解码装置预测没有命中指令地址总线,则编码装置和解码装置将保存的信息清零,编码装置将b(t)、JumpFlag(t)和0赋给B(t)、LoopStart(t)和LoopHit(t),并且输出给解码装置。
解码装置的状态控制模块所需要的跳转标志由编码装置输出的LoopStart(t)提供。同时,当LoopHit(t)为1时,解码装置判断预测命中,将解码装置的预测地址作为解码后总线输出给数据接收单元。当LoopHit(t)为0时,解码装置判断预测没有命中,将解码装置输入的编码后总线直接输出给数据接收单元。
图8为本发明实施例总线编码方法流程图。如图8所示,本发明提供的总线编码方法包括以下步骤:
步骤301、状态控制模块处于空闲状态。
步骤302、判断状态控制模块是否接收到跳转标志,在判断结果为否时,进入步骤301,在判断结果为是时,进入步骤303。
步骤303、状态控制模块从空闲状态转换到检测开始状态。
步骤304、计数模块对编码前总线开始计算第一计数值和计算得到第二计数值。
步骤305、状态控制模块从检测开始状态转换到检测计数状态。
步骤306、计数模块对编码前总线计算得到第一计数值和第三计数值,输出选择模块将编码前总线、跳转标志和第一电平输出为编码后总线、循环开始标志和循环命中标志。
具体地,状态控制模块向计数模块、输出选择模块发送控制信号。计数模块根据控制信号对编码前总线的循环长度计算得到第一计数值和对编码前总线的循环起始地址计算得到第二计数值,并以当前时钟周期的第一计数值作为索引地址对循环程序内部的顺序执行指令和保持不变指令的信息计数得到第三计数值。寄存器组模块接收和保存编码前总线,以及计数模块发送的第一计数值、第二计数值和第三计数值,并将上一个时钟周期的编码后总线发送给输出选择模块。输出选择模块接收寄存器组模块发送的上一个时钟周期的编码后总线、跳转检测模块发送的跳转标志和状态控制模块发送的控制信号,并将编码前总线、跳转标志和第一电平输出为编码后总线、循环开始标志和循环命中标志。
步骤307、判断状态控制模块是否第二次接收到跳转标志,在判断结果为否时,进入步骤305,在判断结果为是时,进入步骤308。
步骤308、状态控制模块从检测计数状态转换到预测开始状态。
步骤309、计数模块对编码前总线计算得到第四计数值和第五计数值。
具体地,状态控制模块向计数模块和输出选择模块发送控制信号。计数模块根据控制信号对预测循环长度开始计算得到第四计数值,并以当前时钟周期第四计数值作为索引地址,读取第三计数值对应的比特位作为预测步长,根据第二计数值和预测步长计算预测地址值,得到第五计数值。寄存器组模块接收和保存编码前总线、计数模块发送的第四计数值和第五计数值。
步骤310、判断预测地址寄存器的值是否等于编码前总线,在判断结果为否时,进入步骤301,在判断结果为是时,进入步骤311。
步骤311、状态控制模块从预测开始状态转换到预测命中状态。
步骤312、输出选择模块将上一个时钟周期编码后总线输出为当前时钟周期编码后总线,计数模块继续对编码前总线计算得到第四计数值和第五计数值。
具体地,如果预测地址寄存器的值等于编码前总线时,输出选择模块将上一个时钟周期编码后总线输出为当前时钟周期编码后总线。如果预测地址寄存器的值不等于编码前总线时,状态控制模块从预测开始状态转换到空闲状态,输出选择模块将编码前总线输出为当前时钟周期编码后总线。
步骤313、判断预测地址寄存器的值是否等于编码前总线,在判断结果为否时,进入步骤301,在判断结果为是时,进入步骤311。
图9为本发明实施例总线解码方法流程图。如图9所示,本发明的总线解码方法包括以下步骤:
步骤401、状态控制模块处于空闲状态。
步骤402、判断状态控制模块是否接收到循环开始标志,在判断结果为否时,进入步骤401,在判断结果为是时,进入步骤403。
步骤403、状态控制模块从空闲状态转换到检测开始状态。
步骤404、计数模块对编码后总线开始计算第六计数值和计算得到第七计数值。
步骤405、状态控制模块从检测开始状态转换到检测计数状态。
步骤406、计数模块对编码后总线计算得到第六计数值和第八计数值,输出选择模块将编码后总线输出为解码后总线。
具体地,计数模块对编码后总线的循环长度计算得到第六计数值和对编码后总线的循环起始地址计算得到第七计数值,并以当前时钟周期第六计数值作为索引地址,对编码后总线的循环程序内部的顺序执行指令和保持不变指令的信息计数,得到第八计数值。寄存器组模块接收和保存编码后总线,以及计数模块发送的第六计数值、第七计数值和第八计数值,并将预测地址寄存器的值发送给输出选择模块。输出选择模块接收寄存器组模块发送的预测地址寄存器的值,并将编码后总线输出为解码后总线。
步骤407、判断状态控制模块是否第二次接收到循环开始标志,在判断结果为否时,进入步骤405,在判断结果为是时,进入步骤408。
步骤408、状态控制模块从检测计数状态转换到预测开始状态。
步骤409、计数模块对编码后总线计算得到第九计数值和第十计数值。
具体地,计数模块根据控制信号对预测循环长度计算得到第九计数值,并以当前时钟周期第九计数值作为索引地址,读取第八计数值对应的比特位作为预测步长,根据第七计数值和预测步长计算预测地址值,得到第十计数值。寄存器组模块接收和保存编码后总线、计数模块发送的第九计数值和第十计数值。
步骤410、判断预测地址寄存器的值是否等于编码后总线,在判断结果为否时,进入步骤401,在判断结果为是时,进入步骤411。
步骤411、状态控制模块从预测开始状态转换到预测命中状态。
步骤412、输出选择模块选择预测地址寄存器的值输出为解码后总线,计数模块继续对编码后总线计算得到第九计数值和第十计数值。
具体地,如果循环命中标志为第二电平,输出选择模块选择预测地址寄存器的值输出为解码后总线。如果循环命中标志为第一电平,输出选择模块选择当前时钟周期的编码后总线输出为解码后总线。
步骤413、判断预测地址寄存器的值是否等于编码后总线,,在判断结果为否时,进入步骤401,在判断结果为是时,进入步骤411。
本发明提供一种总线编解码装置及其方法,编解码装置预测命中循环程序后,编码装置输出到解码装置的编码后总线始终保持不变,编码后总线不存在跳变,开关活动性为0,从而显著降低功耗。也不需要增加额外的密码本存储器,减少了设计的面积和设计复杂度,同时也进一步降低了功耗。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种总线编码装置,其特征在于,所述装置包括:
跳转检测模块,用于接收到编码前总线时生成跳转标志;
状态控制模块,用于当第一次接收到所述跳转检测模块发送的跳转标志时,向计数模块、输出选择模块发送控制信号;
计数模块,用于根据所述控制信号对所述编码前总线的循环长度计算得到第一计数值和对所述编码前总线的循环起始地址计算得到第二计数值,并以当前时钟周期的第一计数值作为索引地址对循环程序内部的顺序执行指令和保持不变指令的信息计数得到第三计数值;
寄存器组模块,用于接收和保存所述编码前总线,以及所述计数模块发送的所述第一计数值、第二计数值和第三计数值,并将上一个时钟周期的编码后总线发送给输出选择模块;
输出选择模块,用于接收所述寄存器组模块发送的上一个时钟周期的编码后总线、所述跳转检测模块发送的跳转标志和所述状态控制模块发送的控制信号,并将所述编码前总线、所述跳转标志和第一电平输出为编码后总线、循环开始标志和循环命中标志,其中所述第一电平为低电平;
当所述状态控制模块第二次接收到所述跳转检测模块发送的跳转标志时,向所述计数模块和所述输出选择模块发送控制信号;所述计数模块根据所述控制信号对预测循环长度计算得到第四计数值,并以当前时钟周期第四计数值作为索引地址,读取所述第三计数值对应的比特位作为预测步长,根据所述第二计数值和所述预测步长计算预测地址值,得到第五计数值;所述寄存器组模块接收和保存所述编码前总线、所述计数模块发送的所述第四计数值和所述第五计数值;如果所述第五计数值等于所述编码前总线时,则将上一个时钟周期编码后总线输出为当前时钟周期编码后总线,如果所述第五计数值不等于所述编码前总线时,则所述输出选择模块将所述编码前总线输出为当前时钟周期编码后总线。
2.根据权利要求1所述的装置,其特征在于,所述跳转检测模块包括:
减法单元,用于将当前时钟周期编码前总线减去上一个时钟周期编码前总线得到减法结果;
第三比较单元,用于比较第二电平与减法单元发送的所述减法结果的最高位得到比较结果,如果比较结果为相等,则生成跳转标志,其中所述第二电平为高电平。
3.根据权利要求1所述的装置,其特征在于,所述的寄存器组模块包括:
输入总线寄存器,用于接收和保存所述编码前总线;
循环计数寄存器,用于保存检测到的所述编码前总线的循环长度;
预测计数寄存器,用于保存预测的所述编码前总线的循环长度;
循环基址寄存器,用于保存检测到的所述编码前总线的循环起始地址;
循环偏移寄存器,用于保存检测到的循环程序内部的顺序执行指令和保持不变指令的信息;
预测地址寄存器,用于保存所述第五计数值;
输出总线寄存器,用于保存输出的编码后总线。
4.根据权利要求3所述的装置,其特征在于,所述的计数模块包括:
第一选择器,用于根据所述状态控制模块的控制信号1a控制计数模块对所述第一计数值保持不变、加1、或者清零;
第一比较单元,用于比较所述循环计数寄存器的值和所述预测计数寄存器的值,当所述预测计数寄存器的值等于所述循环计数寄存器的值时,则一个预测循环结束,所述预测地址寄存器的值应从所述循环基址寄存器的值重新计数;
第二选择器,用于根据所述状态控制模块的控制信号2a控制计数模块对所述第四计数值加1或者清零;
第三选择器,用于根据所述状态控制模块的控制信号3a控制计数模块对所述第二计数值保持不变、清零或者等于当前时钟周期编码前总线;
第四选择器,用于根据所述状态控制模块的控制信号4a控制计数模块对所述循环偏移寄存器计数的第三计数值保持不变、按位装载、或者清零;
控制信号生成单元,用于根据第一比较单元的结果和控制信号5a控制第五选择器的输出信号;
预测步长单元,用于根据当前时钟周期所述第四计数值作为索引地址,读取所述循环偏移寄存器的相应比特位得到预测步长;
第五选择器,用于根据所述控制信号生成单元输出的控制信号7a控制所述第五计数值加上预测步长、清零或者等于循环基址寄存器的值。
5.根据权利要求3所述的装置,其特征在于,所述的状态控制模块包括:
在空闲状态下,通过控制信号1a、控制信号2a、控制信号3a、控制信号4a和控制信号5a控制计数模块将清0值分别赋给所述循环计数寄存器、所述预测计数寄存器、所述循环基址寄存器、所述循环偏移寄存器和所述预测地址寄存器;
在检测开始状态下,通过控制信号1a控制计数模块开始对循环长度计数,并将计数结果赋给循环计数寄存器,通过控制信号3a控制计数模块将当前编码装置输入的编码前总线赋给循环基址寄存器,然后状态控制模块自动从检测开始状态转换到检测计数状态;
在检测计数状态下,通过控制信号4a控制计数模块将循环程序内部的顺序执行指令和保持不变指令的信息以当前时钟周期所述循环计数寄存器的值作为索引地址保存到所述循环偏移寄存器的相应比特位,所述状态控制模块第二次接收到所述跳转检测模块输出的跳转标志等于第二电平时,所述状态控制模块转换到预测开始状态;
在预测开始状态下,通过控制信号2a控制计数模块开始对预测循环长度计数,通过控制信号5a控制计数模块开始计算预测地址寄存器的值,当所述预测地址寄存器的值与所述编码前总线相等时,所述状态控制模块从预测开始状态转换到预测命中状态,当所述预测地址寄存器的值与编码前总线不相等时,所述状态控制模块从预测开始状态转换到空闲状态;
在预测命中状态下,以当前时钟周期预测计数寄存器的值作为索引地址,读取所述循环偏移寄存器的相应比特位作为预测步长,所述预测地址寄存器的值等于上一个时钟周期预测地址寄存器的值和所述预测步长相加得到,当所述预测计数寄存器的值大于所述循环计数寄存器的值时,则一个预测循环结束,所述预测地址寄存器的值从循环基址寄存器的值重新计数,同时所述预测计数寄存器的值也重新计数,如果当所述预测地址寄存器的值与所述编码前总线相等时,所述状态控制模块保持在预测命中状态下,通过控制信号6a控制输出选择模块将上一个时钟周期编码后总线输出为当前时钟周期编码后总线,编码后总线的开关活动性等于0,降低总线功耗,如果当所述预测地址寄存器的值与所述编码前总线不相等时,所述状态控制模块从预测命中状态转换到空闲状态,等待下一次跳转标志,然后通过控制信号6a控制所述输出选择模块将当前时钟周期编码前总线输出为当前时钟周期编码后总线。
6.根据权利要求1所述的装置,其特征在于,所述的输出选择模块包括:
第六选择器,用于通过状态控制模块的控制信号6a选择当前时钟周期的编码前总线或者上一个时钟周期编码后总线作为当前时钟周期编码后总线输出;
第七选择器,用于通过状态控制模块的控制信号6a输出循环开始标志;
第八选择器,用于通过状态控制模块的控制信号6a输出循环命中标志。
7.一种总线解码装置,其特征在于,所述装置包括:
状态控制模块,用于当第一次接收到编码装置的循环开始标志时,向计数模块发送控制信号;
计数模块,用于根据所述控制信号对编码后总线的循环长度计算得到第六计数值和对所述编码后总线的循环起始地址计算得到第七计数值,并以当前时钟周期第六计数值作为索引地址,对编码后总线的循环程序内部的顺序执行指令和保持不变指令的信息计数,得到第八计数值;
寄存器组模块,用于接收和保存所述编码后总线,以及所述计数模块发送的所述第六计数值、所述第七计数值和所述第八计数值,并将预测地址寄存器的值发送给输出选择模块;
输出选择模块,用于接收所述寄存器组模块发送的预测地址寄存器的值,并将编码后总线输出为解码后总线;
当所述状态控制模块第二次接收到编码装置的循环开始标志时,向所述计数模块发送控制信号;所述计数模块根据所述控制信号对预测循环长度计算得到第九计数值,并以当前时钟周期第九计数值作为索引地址,读取所述第八计数值对应的比特位作为预测步长,根据所述第七计数值和所述预测步长计算预测地址值,得到第十计数值;所述寄存器组模块接收和保存所述编码后总线、所述计数模块发送的所述第九计数值和所述第十计数值;如果所述第十计数值等于所述编码后总线时,所述输出选择模块选择所述第十计数值输出为解码后总线,如果所述第十计数值不等于所述编码后总线时,所述输出选择模块选择当前时钟周期的编码后总线输出为解码后总线。
8.根据权利要求7所述的装置,其特征在于,所述的寄存器组模块包括:
输入总线寄存器,用于接收和保存所述编码后总线;
循环计数寄存器,用于保存检测到的所述编码后总线的循环长度;
预测计数寄存器,用于保存预测的所述编码后总线的循环长度;
循环基址寄存器,用于保存检测到的所述编码后总线的循环起始地址;
循环偏移寄存器,用于保存检测到的循环程序内部的顺序执行指令和保持不变指令的信息;
预测地址寄存器,用于保存第十计数值。
9.根据权利要求8所述的装置,其特征在于,所述的计数模块包括:
第一选择器,用于根据所述状态控制模块的控制信号1b控制计数模块对所述第六计数值保持不变、加1、或者清零;
第一比较单元,用于比较所述循环计数寄存器的值和所述预测计数寄存器的值,当所述预测计数寄存器的值等于所述循环计数寄存器的值时,则一个预测循环结束,所述预测地址寄存器的值应从所述循环基址寄存器的值重新计数;
第二选择器,用于根据所述状态控制模块的控制信号2b控制计数模块对所述第九计数值加1或者清零;
第三选择器,用于根据所述状态控制模块的控制信号3b控制计数模块对所述第七计数值保持不变、清零或者等于当前时钟周期编码后总线;
第四选择器,用于根据所述状态控制模块的控制信号4b控制计数模块对所述循环偏移寄存器计数的第八计数值保持不变、按位装载、或者清零;
控制信号生成单元,用于根据第一比较单元的结果和控制信号5b控制第五选择器的输出信号;
预测步长单元,用于根据当前时钟周期所述第九计数值作为索引地址,读取所述循环偏移寄存器的相应比特位得到预测步长;
第五选择器,用于根据所述控制信号生成单元输出的控制信号6b控制所述第十计数值加上预测步长、清零或者等于循环基址寄存器的值。
10.根据权利要求9所述的装置,其特征在于,所述的状态控制模块包括:
在空闲状态下,通过控制信号1b、控制信号2b、控制信号3b、控制信号4b和控制信号5b控制计数模块将清0值分别赋给所述循环计数寄存器、所述预测计数寄存器、所述循环基址寄存器、所述循环偏移寄存器和所述预测地址寄存器;
在检测开始状态下,通过控制信号1b控制计数模块开始对循环长度计数,并将计数结果赋给循环计数寄存器,通过控制信号3b控制计数模块将当前解码装置输入的编码后总线赋给循环基址寄存器,然后状态控制模块自动从检测开始状态转换到检测计数状态;
在检测计数状态下,通过控制信号4b控制计数模块将循环程序内部的顺序执行指令和保持不变指令的信息以当前时钟周期所述循环计数寄存器的值作为索引地址保存到所述循环偏移寄存器的相应比特位,所述状态控制模块第二次接收到所述循环开始标志时,所述状态控制模块转换到预测开始状态;
在预测开始状态下,通过控制信号2b控制计数模块开始对预测循环长度计数,通过控制信号5b控制计数模块开始计算预测地址寄存器的值,当所述预测地址寄存器的值与所述编码后总线相等时,所述状态控制模块从预测开始状态转换到预测命中状态,当所述预测地址寄存器的值与编码后总线不相等时,所述状态控制模块从预测开始状态转换到空闲状态;
在预测命中状态下,以当前时钟周期预测计数寄存器的值作为索引地址,读取所述循环偏移寄存器的相应比特位,作为预测步长,所述预测地址寄存器的值等于上一个时钟周期预测地址寄存器的值和所述预测步长相加得到,当所述预测计数寄存器的值大于所述循环计数寄存器的值时,则一个预测循环结束,所述预测地址寄存器的值从循环基址寄存器的值重新计数,同时所述预测计数寄存器的值也重新计数,如果当所述预测地址寄存器的值与所述编码后总线相等时,所述状态控制模块保持在预测命中状态下,如果当所述预测地址寄存器的值与所述编码后总线不相等时,所述状态控制模块从预测命中状态转换到空闲状态。
11.根据权利要求8所述的装置,其特征在于,所述的输出选择模块包括:
第六选择器,用于通过循环命中标志选择当前时钟周期的预测地址寄存器的值或者当前时钟周期的编码后总线作为当前时钟周期解码后总线输出。
12.一种总线编码方法,其特征在于,所述方法包括:
跳转检测模块接收到编码前总线时生成跳转标志;
当状态控制模块第一次接收到所述跳转检测模块发送的跳转标志时,向计数模块、输出选择模块发送控制信号;
计数模块根据所述控制信号对所述编码前总线的循环长度计算得到第一计数值和对所述编码前总线的循环起始地址计算得到第二计数值,并以当前时钟周期的第一计数值作为索引地址对循环程序内部的顺序执行指令和保持不变指令的信息计数得到第三计数值;
寄存器组模块接收和保存所述编码前总线,以及所述计数模块发送的所述第一计数值、第二计数值和第三计数值,并将上一个时钟周期的编码后总线发送给输出选择模块;
输出选择模块接收所述寄存器组模块发送的上一个时钟周期的编码后总线、所述跳转检测模块发送的跳转标志和所述状态控制模块发送的控制信号,并将所述编码前总线、所述跳转标志和第一电平输出为编码后总线、循环开始标志和循环命中标志,其中所述第一电平为低电平;
当所述状态控制模块第二次接收到所述跳转检测模块发送的跳转标志时,向所述计数模块和所述输出选择模块发送控制信号;所述计数模块根据所述控制信号对预测循环长度计算得到第四计数值,并以当前时钟周期第四计数值作为索引地址,读取所述第三计数值对应的比特位作为预测步长,根据所述第二计数值和所述预测步长计算预测地址值,得到第五计数值;所述寄存器组模块接收和保存所述编码前总线、所述计数模块发送的所述第四计数值和所述第五计数值;如果所述第五计数值等于所述编码前总线时,则将上一个时钟周期编码后总线输出为当前时钟周期编码后总线,如果所述第五计数值不等于所述编码前总线时,则所述输出选择模块将所述编码前总线输出为当前时钟周期编码后总线。
13.一种总线解码方法,其特征在于,所述方法包括:
当状态控制模块第一次接收到编码装置的循环开始标志时,向计数模块发送控制信号;
计数模块根据所述控制信号对编码后总线的循环长度计算得到第六计数值和对所述编码后总线的循环起始地址计算得到第七计数值,并以当前时钟周期第六计数值作为索引地址,对编码后总线的循环程序内部的顺序执行指令和保持不变指令的信息计数,得到第八计数值;
寄存器组模块接收和保存所述编码后总线,以及所述计数模块发送的所述第六计数值、所述第七计数值和所述第八计数值,并将预测地址寄存器的值发送给输出选择模块;
输出选择模块接收所述寄存器组模块发送的预测地址寄存器的值,并将编码后总线输出为解码后总线;
当所述状态控制模块第二次接收到编码装置的循环开始标志时,向所述计数模块发送控制信号;所述计数模块根据所述控制信号对预测循环长度计算得到第九计数值,并以当前时钟周期第九计数值作为索引地址,读取所述第八计数值对应的比特位作为预测步长,根据所述第七计数值和所述预测步长计算预测地址值,得到第十计数值;所述寄存器组模块接收和保存所述编码后总线、所述计数模块发送的所述第九计数值和所述第十计数值;如果所述第十计数值等于所述编码后总线时,所述输出选择模块选择所述第十计数值输出为解码后总线,如果所述第十计数值不等于所述编码后总线时,所述输出选择模块选择当前时钟周期的编码后总线输出为解码后总线。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410116576.4A CN103885913B (zh) | 2014-03-26 | 2014-03-26 | 总线编解码装置及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410116576.4A CN103885913B (zh) | 2014-03-26 | 2014-03-26 | 总线编解码装置及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103885913A CN103885913A (zh) | 2014-06-25 |
CN103885913B true CN103885913B (zh) | 2017-01-04 |
Family
ID=50954812
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410116576.4A Active CN103885913B (zh) | 2014-03-26 | 2014-03-26 | 总线编解码装置及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103885913B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9952865B2 (en) * | 2015-04-04 | 2018-04-24 | Texas Instruments Incorporated | Low energy accelerator processor architecture with short parallel instruction word and non-orthogonal register data file |
CN107592184A (zh) * | 2017-10-08 | 2018-01-16 | 胡明建 | 一种以时间采压计数作为信号识别的设计方法 |
CN113992474B (zh) * | 2021-12-29 | 2022-04-01 | 北京万维盈创科技发展有限公司 | 一种基于总线的码分多址编码方法 |
CN115422115B (zh) * | 2022-11-01 | 2023-02-24 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于总线的编码方法、系统、存储介质及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101788967A (zh) * | 2010-03-09 | 2010-07-28 | 西安电子科技大学 | 抗串扰片上总线编解码方法及其编解码装置 |
CN102508637A (zh) * | 2011-11-22 | 2012-06-20 | 中国科学院软件研究所 | 一种指令级密码设备能量消耗信息生成方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10196834T1 (de) * | 2000-11-07 | 2003-11-13 | Intel Corp | Verfahren und Einrichtung zum Reduzieren des Gleichzeitiges-Umschalten-Ausgangsrauschen unter Verwendung einer dynamischen Businversion |
-
2014
- 2014-03-26 CN CN201410116576.4A patent/CN103885913B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101788967A (zh) * | 2010-03-09 | 2010-07-28 | 西安电子科技大学 | 抗串扰片上总线编解码方法及其编解码装置 |
CN102508637A (zh) * | 2011-11-22 | 2012-06-20 | 中国科学院软件研究所 | 一种指令级密码设备能量消耗信息生成方法 |
Non-Patent Citations (1)
Title |
---|
基于短循环程序特征的多模式低功耗编码算法;刘毅;《微电子学与计算机》;20080228;第25卷(第2期);第104-110页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103885913A (zh) | 2014-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103885913B (zh) | 总线编解码装置及其方法 | |
US20210158163A1 (en) | Methods and systems for power management in a pattern recognition processing system | |
CN104011736B (zh) | 用于状态机中的检测的方法及系统 | |
CN205176828U (zh) | 条件分支预测器逻辑单元 | |
CN103430148A (zh) | 用于元件利用的状态分组 | |
CN101652739A (zh) | 在信息处理系统中当处理器遇到低置信度分支时通过对指令取回节流来节约功率的方法和装置 | |
CN103189853A (zh) | 用于提供高效情境分类的方法和装置 | |
CN104615730B (zh) | 一种多标签分类方法及装置 | |
CN102841777A (zh) | 数据处理器中的分支目标缓存器寻址 | |
CN110968564B (zh) | 一种数据处理方法及数据状态预测模型的训练方法 | |
CN103218205B (zh) | 一种循环缓冲装置以及循环缓冲方法 | |
TW201212029A (en) | Method for performing data shaping, and associated memory device and controller thereof | |
CN109934253A (zh) | 一种对抗样本生成方法及装置 | |
CN108921693A (zh) | 一种数据的衍生方法、装置及设备 | |
CN102663185A (zh) | 一种基于模糊处理的抗硬件木马电路设计方法 | |
CN107392158A (zh) | 一种图像识别的方法及装置 | |
CN104636119A (zh) | 用于处理混编指令的方法和设备 | |
CN101692200B (zh) | 数字绳码编码解码及加减乘除倒数算术电路设计的方法 | |
CN107102840A (zh) | 数据提取方法和设备 | |
CN107330943A (zh) | 一种定位标识匹配方法、装置及电子设备 | |
CN103701670B (zh) | 一种数据包负载的处理方法和装置 | |
Feinberg et al. | Commutative data reordering: a new technique to reduce data movement energy on sparse inference workloads | |
CN107943923A (zh) | 电报码数据库的构建方法、电报码识别方法及装置 | |
CN108933599A (zh) | 一种霍夫曼编码实现方法、系统、设备及计算机存储介质 | |
CN102789428B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |