CN108647162B - 一种基于程序存储器地址总线系统的低功耗方法 - Google Patents
一种基于程序存储器地址总线系统的低功耗方法 Download PDFInfo
- Publication number
- CN108647162B CN108647162B CN201810361284.5A CN201810361284A CN108647162B CN 108647162 B CN108647162 B CN 108647162B CN 201810361284 A CN201810361284 A CN 201810361284A CN 108647162 B CN108647162 B CN 108647162B
- Authority
- CN
- China
- Prior art keywords
- address
- program
- program memory
- gray code
- binary
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/0623—Address space extension for memory modules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/441—Register allocation; Assignment of physical memory space to logical memory space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- 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
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开一种基于程序存储器地址总线系统的低功耗方法,所述程序存储器地址总线系统包括:程序存储器、微处理器以及地址总线,所述微处理器通过地址总线向所述程序存储器发送地址信息,以使所述程序存储器按照相应的地址发送程序数据,包括以下步骤:所述程序存储器的软件层将其中存储的程序的二进制地址目录转码为格雷码格式地址目录;所述程序存储器通过所述地址总线接收微处理器发送的格雷码格式的地址信息,并根据所述格雷码格式的地址目录查找相应的程序数据发送给所述微处理器。本发明以最少的硬件开销最大程度地降低因程序存储器地址总线信号翻转带来的功耗。
Description
技术领域
本发明涉及集成电路微处理器设计领域,更具体地,涉及一种基于程序存储器地址总线系统的低功耗方法。
背景技术
随着摩尔定律的发展,集成电路特征尺寸不停减小,单块芯片上集成的晶体管数量不断增加,现在已经达到亿数量级,在集成度增加的同时,电路的性能也得到大幅度的提高,高性能的微处理器的工作频率已经突破GHz,但随之而来的也是系统功耗的不断增加,因此对工艺和封装也不断提出了更高的要求,由此可见,低功耗设计也越来越成为衡量微处理器性能的重要指标,特别地,对应用在无线传感器、物联网芯片等领域的微处理器而言,低功耗设计的重要性不言而喻。
传统哈佛架构下微处理器程序存储器的地址总线信号采用自然二进制码的形式进行通讯,总线在布局布线之后跨度长,会引入更复杂的电阻和电容效应,因此,信号在总线上的翻转带来的功耗比节点处信号翻转带来的更大。
程序存储器地址总线信号通常以连续地址信号变化,这种情况下总线上相邻地址跳变的位数较多,因此地址总线上产生的功耗较大,对于连续地址信号跳变而言,格雷码具有很大优势,相邻两位之间只有一位发生跳变,可以带来更好的稳定性和更低的功耗,现有方法是在地址信号产生端加一个格雷码编码电路,再在地址信号接收端加一个格雷码解码电路,这样虽然能够降低地址总线上的翻转功耗,但引入了额外两处节点逻辑,增加了面积,而且存储器的译码逻辑上的功耗并没有下降,整体功耗的下降效果并不明显,因此,研究一种既使用格雷码编码,又不引入过多额外逻辑的程序存储器地址系统设计方法尤为必要。
发明内容
针对现有技术的缺陷,本发明的目的在于解决微处理器程序存储器地址总线上信号翻转带来的过高功耗和现有功耗优化技术的不足的技术问题。
为实现上述目的,本发明提供一种基于程序存储器地址总线系统的低功耗方法,所述程序存储器地址总线系统包括:程序存储器、微处理器以及地址总线,所述微处理器通过地址总线向所述程序存储器发送地址信息,以使所述程序存储器按照相应的地址发送程序数据,包括以下步骤:
所述程序存储器的软件层将其中存储的程序的二进制地址目录转码为格雷码格式地址目录;所述程序存储器通过所述地址总线接收微处理器发送的格雷码格式的地址信息,并根据所述格雷码格式的地址目录查找相应的程序数据发送给所述微处理器。
可选地,所述微处理器包括程序指针生成模块和二进制-格雷码转换模块,所述方法还包括:所述程序指针生成模块生成自然二进制的地址信号,然后经由二进制-格雷码转换模块将二进制的地址信号转化为格雷码地址信号,再经过所述地址总线传输至所述程序存储器。
可选地,在所述程序存储器的软件层,当应用程序经编译器编译生成相应的原始烧录文件后,所述原始烧录文件中原始程序指令和对应的地址都已确定,然后设计应用程序处理所述原始烧录文件,将每条原始指令对应的自然二进制地址改写为格雷码格式地址,改写后按照烧录文件格式重新排序,生成新的烧录文件,最后再按照串口协议将其烧入所述程序存储器,所述新的烧录文件作为程序的格雷码格式地址目录。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
本发明提供的基于程序存储器地址总线系统的低功耗方法,降低了整体系统的功耗,而在硬件资源开销上只增加部分逻辑门,整体面积增加不到0.5%,当处理器的规模和程序存储器的容量扩大时,该方法的功耗提升效果会更明显。
附图说明
图1为本发明的低功耗程序存储器地址系统结构图;
图2为Hex烧录文件的程序指令地址格雷码转换C程序步骤图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明为解决微处理器程序存储器地址总线上信号翻转带来的过高功耗和现有功耗优化技术的不足,提出了一种软硬件结合的低功耗程序存储器地址系统设计方法,旨在以最少的硬件开销最大程度地降低因程序存储器地址总线信号翻转带来的功耗。
为实现上述目的,本发明所采用的技术方案如下:本发明提供的设计方法基于格雷编码,从硬件层面和软件层面两个方向入手,联合形成一种低功耗的程序存储器地址系统;
硬件层的模块主要包括微处理内部的程序地址指针生成模块、自然二进制-格雷码转换模块和程序存储器模块;
软件层的步骤主要包括程序编译生成烧写文件、文件程序地址转格雷码和串口协议烧写。
优选地,该地址系统设计方法针对的是哈佛架构下微处理器的程序存储器,该程序存储器有自己独立的地址总线。
优选地,在硬件层,先由微处理器内部的程序指针生成模块生成自然二进制的地址信号,然后经由二进制-格雷码转换模块中的硬件电路将原地址数据转化为格雷码二进制,再传输至程序存储器。
优选地,在软件层,当应用程序经编译器编译生成相应的烧录文件,如Hex文件后,原始程序指令和对应的地址都已确定,然后设计应用程序处理原始烧录文件,将每条原始指令对应的自然二进制地址改写为格雷码制地址,改写后按照烧录文件格式重新排序,生成新的烧录文件,最后再按照串口协议将其烧入程序存储器。
参阅图1,该发明是一种软硬件结合的低功耗程序存储器地址系统设计方法,针对拥有独立程序存储器的哈佛架构微处理器,在硬件部分,程序存储器地址总线信号先由微处理器内部的程序指针生成模块生成,初始信号为自然二进制的地址数据,然后经由自然二进制-格雷码转换模块的硬件电路将原地址数据转化为格雷码二进制,再单向传输至程序存储器,存储器位宽N根据具体实施变化。
在一个示例中,以所用程序存储器地址位宽为10,指令数据位宽为16,对应烧录文件为Hex文件的微处理器为例,具体实施步骤如下:
步骤一:微处理器内的程序指针生成模块接收中断、弹栈或者指令跳转等地址信号跳转信号,当相应信号有效时,选择相应的跳转对应地址输出,否则在时钟周期下按照地址自加一的工作模式输出位宽为10,即1K地址空间的程序地址信号Binary_Addr[9:0];
步骤二:按照自然二进制转格雷码的原理,经由硬件转换生成Gray_Addr[9:0],其中:
Gray_Addr[9]=Binary_Addr[9],
Gray_Addr[8]=Binary_Addr[9]^Binary_Addr[8],
……
Gray_Addr[1]=Binary_Addr[2]^Binary_Addr[1],
Gray_Addr[0]=Binary_Addr[1]^Binary_Addr[0];
需要说明的是,Gray_Addr表示格雷码地址信号,Binary_Addr表示自然二进制码地址信号。
步骤三:将得到的格雷码地址信号与1K程序存储器的输入地址信号连接起来。
针对烧入到程序存储器中的程序内容,从软件角度入手,修改Hex文件,目的是为了把程序指令按格雷码地址排序,这样省去了地址接收端的译码逻辑,其中,Hex文件格式如表1所示:
表1:Hex文件格式及示例
其中,数据类型有:0x00、0x01、0x02、0x03、0x04、0x05。
'00':用来记录数据,HEX文件的大部分记录都是数据记录;
'01':用来标识文件结束,放在文件的最后,标识HEX文件的结尾;
'02':用来标识扩展段地址的记录;
'03':开始段地址记录;
'04':用来标识扩展线性地址的记录;
'05':开始线性地址记录;
校验和的算法为:计算校验和前所有16进制码的累加和(不计进位),校验和=0x100-累加和。
当应用程序经编译器编译生成Hex文件后,原始程序指令和对应的地址都已确定,以一个C程序为例,处理指令数据位宽为16Bit(2Byte)的原始Hex文件,改写程序指令地址后重新排序生成新的Hex文件,再按照串口协议将其烧入程序存储器,具体步骤如图2所示,如下进行:
步骤一:创建C程序,打开编译之后生成的原始Hex文件,文件指针定位,创建指令数据-地址结构体数组。
步骤二:依次读取Hex文件每行前面的数据长度、字节起始地址和数据类型等字节信息,若数据类型为数据记录字节,则行首地址为实际地址;若数据类型为扩展段地址或者扩展线性地址,则根据基地址和偏移地址计算出该行的实际地址。
步骤三:根据计算出的Hex文件每行实际首地址、每行数据长度和一条指令的长度对应的字节数,该示例中一条指令数据为两个字节,据此计算出每条指令对应的实际地址,在结构体数组中依次存储每条指令数据以及其对应的自然二进制地址,直至遇到Hex文件数据类型结束标志字节‘01’,关闭原始Hex文件指针。
步骤四:将每条指令对应的自然二进制地址转成格雷码地址,再按顺序将结构体数组重新排序,并计算出重新排序之后指令内每个字节的地址;
步骤五:创建并输出改写之后的Hex文件,按照格式,确定连续一行的数据长度、字节起始地址、数据类型,然后依次输出字节信息,计算每一行的校验字节。
步骤六:在最后一行有效Hex文件信息之后,输出Hex文件结尾行‘:00000001FF’,关闭输出文件指针。
步骤七:选择改写之后的Hex文件,按照串口协议烧写进入程序存储器。
按照该实施方式中的具体例子建模,构造一个1K×16的程序存储器和指令位宽为16位的RISC处理器简化模型,在4M的工作时钟下,处理1K条连续地址指令,其中最后一条为跳转到地址0的指令,相同的程序指令处理后分别存进自然二进制系统和格雷码系统的存储器中,经仿真计算得,格雷码系统的平均工作功耗比自然二进制系统的平均工作功耗下降3.5%,而在硬件资源开销上只增加了9个门,整体面积增加不到0.5%,当处理器的规模和程序存储器的容量扩大,该方法的功耗提升效果会更明显。
应当注意的是,本申请的实施示例只是为了更好地描述本申请,所使用的10位地址位宽,16比特指令长度,烧录文件为Hex文件,处理程序为C程序等具体条件并非为了限制本申请的专利保护范围,本领域的人在得知了本申请的创新点之后,则可根据具体情况作出修改,如对地址位宽和指令长度的调整,使用其他语言编写处理程序,选择其他的烧录文件进行修改等,凡是利用本申请说明及附图作出等效结构或流程,对其进行直接或者间接的修改,运用在微处理器及相关技术领域的,均落在本申请的保护范围之内。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (1)
1.一种基于程序存储器地址总线系统的低功耗方法,所述程序存储器地址总线系统包括:程序存储器、微处理器以及地址总线,所述微处理器通过地址总线向所述程序存储器发送地址信息,以使所述程序存储器按照相应的地址发送程序数据,其特征在于,包括以下步骤:
所述程序存储器的软件层将其中存储的程序的二进制地址目录转码为格雷码格式地址目录;
所述程序存储器通过所述地址总线接收微处理器发送的格雷码格式的地址信息,并根据所述格雷码格式的地址目录查找相应的程序数据发送给所述微处理器;
所述微处理器包括程序指针生成模块和二进制-格雷码转换模块,所述程序指针生成模块生成自然二进制的地址信号,然后经由二进制-格雷码转换模块将二进制的地址信号转化为格雷码地址信号,再经过所述地址总线传输至所述程序存储器;
在所述程序存储器的软件层,当应用程序经编译器编译生成相应的原始烧录文件后,所述原始烧录文件中原始程序指令和对应的地址都已确定,然后设计应用程序处理所述原始烧录文件,将每条原始指令对应的自然二进制地址改写为格雷码格式地址,改写后按照烧录文件格式重新排序,生成新的烧录文件,最后再按照串口协议将其烧入所述程序存储器,所述新的烧录文件作为程序的格雷码格式地址目录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810361284.5A CN108647162B (zh) | 2018-04-20 | 2018-04-20 | 一种基于程序存储器地址总线系统的低功耗方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810361284.5A CN108647162B (zh) | 2018-04-20 | 2018-04-20 | 一种基于程序存储器地址总线系统的低功耗方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108647162A CN108647162A (zh) | 2018-10-12 |
CN108647162B true CN108647162B (zh) | 2020-05-19 |
Family
ID=63746715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810361284.5A Expired - Fee Related CN108647162B (zh) | 2018-04-20 | 2018-04-20 | 一种基于程序存储器地址总线系统的低功耗方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108647162B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115422115B (zh) * | 2022-11-01 | 2023-02-24 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于总线的编码方法、系统、存储介质及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1851827A (zh) * | 2006-06-02 | 2006-10-25 | 北京中星微电子有限公司 | 一种闪烁存储器数据存取方法 |
CN101438353A (zh) * | 2006-05-05 | 2009-05-20 | 桑迪士克股份有限公司 | 在读取操作期间具有后台数据锁存器高速缓存的非易失性存储器及其方法 |
US8417982B1 (en) * | 2009-08-11 | 2013-04-09 | Marvell Israel (M.I.S.L.) Ltd. | Dual clock first-in first-out (FIFO) memory system |
KR101464256B1 (ko) * | 2008-06-13 | 2014-11-25 | 삼성전자주식회사 | 온도 센서를 포함하는 메모리 시스템 |
CN107220023A (zh) * | 2017-06-29 | 2017-09-29 | 中国电子科技集团公司第五十八研究所 | 一种嵌入式可配置fifo存储器 |
CN107577623A (zh) * | 2017-07-19 | 2018-01-12 | 成都华微电子科技有限公司 | 跨时钟域异步fifo及数据处理方法 |
-
2018
- 2018-04-20 CN CN201810361284.5A patent/CN108647162B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101438353A (zh) * | 2006-05-05 | 2009-05-20 | 桑迪士克股份有限公司 | 在读取操作期间具有后台数据锁存器高速缓存的非易失性存储器及其方法 |
CN1851827A (zh) * | 2006-06-02 | 2006-10-25 | 北京中星微电子有限公司 | 一种闪烁存储器数据存取方法 |
KR101464256B1 (ko) * | 2008-06-13 | 2014-11-25 | 삼성전자주식회사 | 온도 센서를 포함하는 메모리 시스템 |
US8417982B1 (en) * | 2009-08-11 | 2013-04-09 | Marvell Israel (M.I.S.L.) Ltd. | Dual clock first-in first-out (FIFO) memory system |
CN107220023A (zh) * | 2017-06-29 | 2017-09-29 | 中国电子科技集团公司第五十八研究所 | 一种嵌入式可配置fifo存储器 |
CN107577623A (zh) * | 2017-07-19 | 2018-01-12 | 成都华微电子科技有限公司 | 跨时钟域异步fifo及数据处理方法 |
Non-Patent Citations (2)
Title |
---|
《Garfield系统级功耗分析与管理》;王家正;《中国优秀硕士学位论文全文数据库 信息科技辑》;20070131;全文 * |
《基于SOC异步FIFO的设计与形式验证》;张波;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160331;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108647162A (zh) | 2018-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230048032A1 (en) | Methods and systems for handling data received by a state machine engine | |
US10089086B2 (en) | Method and apparatus for compiling regular expressions | |
CN103326732B (zh) | 压缩数据的方法、解压数据的方法、编码器和解码器 | |
US7917733B2 (en) | Instruction code compression using instruction codes with reuse flags | |
US9298437B2 (en) | Unrolling quantifications to control in-degree and/or out-degree of automaton | |
JP6154824B2 (ja) | ステートマシンラチスにおけるブール型論理 | |
TW201732567A (zh) | 用於資料解壓縮的硬體設備及方法 | |
CN105450232A (zh) | 编码、解码方法以及编码装置和解码装置 | |
CN105207678A (zh) | 一种改进型lz4压缩算法的硬件实现系统 | |
CN101145157B (zh) | 一种xml格式嵌入式设备特征信息解析方法 | |
US20140025889A1 (en) | Methods and systems for using state vector data in a state machine engine | |
Cheng et al. | Power-optimal encoding for DRAM address bus | |
Benes et al. | A fast asynchronous Huffman decoder for compressed-code embedded processors | |
CN111131403A (zh) | 一种物联网设备的消息编解码方法及装置 | |
CN108647162B (zh) | 一种基于程序存储器地址总线系统的低功耗方法 | |
CN106649217A (zh) | 数据的匹配方法及装置 | |
JP2738365B2 (ja) | マイクロコンピュータ用プログラム変換方法及びそのプログラムを用いたマイクロコンピュータ | |
CN104240747A (zh) | 一种多媒体数据获取的方法及装置 | |
Leivant et al. | A characterization of alternating log time by ramified recurrence | |
CN105793842B (zh) | 序列化消息之间的转换方法和装置 | |
US7676651B2 (en) | Micro controller for decompressing and compressing variable length codes via a compressed code dictionary | |
US7079054B2 (en) | V.42bis standalone hardware accelerator and architecture of construction | |
CN104281632B (zh) | 基于对象协议映射的编码解码方法及系统 | |
Kadayif et al. | Instruction compression and encoding for low-power systems | |
CN100369010C (zh) | 一种用于智能卡仿真调试系统的硬件断点电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200519 Termination date: 20210420 |