CN118173141B - 一种基于格雷码计数器的低功耗非易失存储器电路 - Google Patents
一种基于格雷码计数器的低功耗非易失存储器电路 Download PDFInfo
- Publication number
- CN118173141B CN118173141B CN202410591479.4A CN202410591479A CN118173141B CN 118173141 B CN118173141 B CN 118173141B CN 202410591479 A CN202410591479 A CN 202410591479A CN 118173141 B CN118173141 B CN 118173141B
- Authority
- CN
- China
- Prior art keywords
- gray code
- nonvolatile memory
- cnt
- code counter
- counter
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 72
- 238000000034 method Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002035 prolonged effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/26—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using discharge tubes
- G11C11/265—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using discharge tubes counting tubes, e.g. decatrons or trochotrons
-
- 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)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种基于格雷码计数器的低功耗非易失存储器电路,属于存储电路设计领域。其主要思想为利用新型非易失存储器写入时需要翻转比特位数越多,其消耗能量越大,写入时间越长的特点,提出通过降低比特翻转数量的方式来优化非易失存储器的性能。本发明使用格雷码这种编码方式存储数据,利用格雷码相邻码元间只相差一个比特的特点,结合新型非易失存储器的特性,通过降低写入时的比特翻转位数,来降低非易失存储器的写入功耗,写入时间以及提高其使用寿命。
Description
技术领域
本发明属于存储电路设计领域,尤其涉及一种基于格雷码计数器的低功耗非易失存储器电路。
背景技术
非易失存储器(NVM)是一种新兴的存储器,非易失存储器在断电后依旧可以保存数据一段时间。典型的非易失存储器包括磁性随机存储器(MRAM),阻变随机存储器(RRAM)。非易失存储器存储密度高、静态功耗低,但是写速度低和耐久性低。非易失存储器进行写入操作时,每进行一次比特翻转就会消耗一定的能量与减少一定的使用寿命,在诸如针对伺服电机的编码器这一类经常会涉及到对数据进行加减1操作的场景下,这种场景下如果仍然使用二进制编码写入的方式,大多数时候每次写入时将会涉及到多个比特的翻转,这会提高写入功耗,降低存储器的使用寿命。
发明内容
本发明的目的是提供一种基于格雷码计数器的低功耗非易失存储器,针对伺服电机的编码器等涉及到计数存储的场景,使用格雷编码可以使得仅翻转一位比特即可完成数据的写入,相比于普通二进制码而言降低了比特翻转的数量,降低了非易失存储功耗,提高了非易失写入速度与使用寿命。
本发明提供了一种基于格雷码计数器的低功耗非易失存储器电路。主要包括以下模块:包括以下模块:控制模块、格雷码计数器、非易失存储器;
所述控制模块控制格雷码计数器与非易失存储器之间的通信;非易失存储器为磁性随机存储器或阻变随机存储器或铁电随机存储器;
所述格雷码计数器接收来自控制模块的使能信号cnt_en与计数方向选择信号cnt_mode,使能信号cnt_en对格雷码计数器进行使能,从非易失存储器中读出需要进行操作的数据;通过使用计数方向选择信号cnt_mode决定对取出的数据进行加1或减1操作;选择输出计数溢出标志cnt_spill至控制模块,表明数据是否溢出;
非易失存储器接收来自控制模块的使能信号mem_en决定是否使能非易失存储器,通过非易失存储器x地址信号mem_xadr及非易失存储器y地址信号mem_yadr提供读写地址,非易失存储器按照给出的读写地址为格雷码计数器提供数据以及写入数据。
格雷码计数器内还包含一个寄存器用以存储上一状态的格雷码a,完成一次计算后,格雷码计数器会将当前状态的格雷码b存储到寄存器当中,作为下次计算时的格雷码a使用;
格雷码计数器对取出的数据进行加1或减1操作具体如下:
加1计数:当使能信号cnt_en = 1,计数方向选择信号cnt_mode = 1时执行格雷码加1操作,利用上一状态的格雷码以及当前状态的格雷码得出下一状态的格雷码,假设格雷码总共有n位,则计算过程如下:
加1计数:当使能信号cnt_en = 1,计数方向选择信号cnt_mode = 1时执行格雷码加1操作,利用上一状态的格雷码以及当前状态的格雷码得出下一状态的格雷码,假设格雷码总共有n位,i表示格雷码的第i位,则计算过程如下:
;
;
;
;
其中,代表同或符号,表示两个操作数之间做同或,代表取反,表示对操作数进行取反的操作,是一个条件运算符,其中当时取,否则取,是与运算符,表示两个操作数之间进行相与,是或运算符,表示下一状态格雷码的第i位,表示上一状态格雷码的第i位,表示当前状态格雷码的第i位;表示取位数为第0位到第i-2位的,表示取位数为第0位到第n-3位的;
减1计数:当cnt_en = 1,cnt_mode = 0时执行格雷码减1操作,除最高位比特外,其它位比特的计算方式与加1计数时操作相同,因此只给出最高位比特的计算方式:
格雷码计数器在进行加减1操作时,当格雷码由其能表示的最大值跳变为最小值或者由最小值跳变为最大值时,将计数溢出标志cnt_spill置1,通过cnt_spill=1的方式告知控制模块发送了计数溢出的情况。
通过上述计算方式,无需格雷码与二进制码互译的编码器,直接就可以在格雷码的基础上就完成加减1的操作,降低了电路的复杂程度与时间延迟,同时有利于降低写入时的比特翻转数量。
溢出记录功能:使用cnt_spill作为计数溢出标志,进行加减1操作时,当格雷码由其能表示的最大值跳变为最小值或者由最小值跳变为最大值时,将计数溢出标志cnt_spill置1,表示计数溢出。
各个模块之间的工作流程为:
当需要进行数据的加减时,控制模块拉高cnt_en信号,使能格雷码计数器,同时给出cnt_mode,决定格雷码计数器进行加操作或者减操作,在此周期内控制器模块还会将mem_en信号拉高,同时给出读地址,格雷码计数器在下个周期取出非易失存储器内的数据,并对其进行加减操作,完成后,控制模块给出写地址,格雷码计数器将完成加减操作之后的数据写入非易失存储器。
本发明的有益效果如下:具有间歇性计数要求的场景,会频繁对数据进行加减操作,同时由于间歇性和功耗要求,必须采用非易失存储器以降低读写功耗以及避免数据丢失。此时,通常存储在非易失存储器中的数据是以二进制码形式进行存储的这种存储方式导致在进行数据写入时经常会发生多个比特都需要进行翻转的情况,对于FLASH(闪存),EPROM(可擦除可编程只读存储器)等非易失存储器来说,写入时比特翻转的数量并不会影响他们的写入功耗以及耐久性,但对于新型非易失存储器,如MRAM(磁性随机存储器),RRAM(阻变随机存储器)等,由于写入时涉及到改变器件状态,因此降低写入时比特翻转数量可以有效降低其写入功耗,提高其写入速度以及提高其使用寿命。通过使用格雷码代替二进制码,使得每次写入时只需要翻转单个比特,以达到降低非易失存储器写入功耗,同时提高了写入速度和使用寿命的目的。
附图说明
图1为本发明的格雷码计数器原理图;
图2为本发明的基于非易失存储器的格雷码计数器结构示意图。
具体实施方式
为了更好地了解本发明的目的、结构及功能,下面结合附图,对本发明一种基于格雷码计数器的低功耗非易失存储器做进一步详细的描述。
实施例1
本实施例提供了一种基于格雷码计数器的低功耗非易失存储器电路,如图2所示,包括以下模块:控制模块、格雷码计数器、非易失存储器;
所述控制模块主要控制格雷码计数器与非易失存储器之间的通信,包括格雷码计数器计数完毕后数据存储到非易失存储器中,开始计数之前从非易失存储器中读取计数的数据。
格雷码计数器主要在计数存储时使用;接收来自控制模块的使能信号cnt_en与计数方向选择信号cnt_mode,使能信号cnt_en对格雷码计数器进行使能,从存储中读出需要进行操作的数据;通过使用计数方向选择信号cnt_mode决定对取出的数据进行加1或减1操作;选择输出计数溢出标志cnt_spill至控制模块,表明数据是否溢出;格雷码计数器内还包含一个寄存器用以存储上一状态的格雷码a,完成一次计算后,格雷码计数器会将当前状态的格雷码b存储到寄存器当中,作为下次计算时的格雷码a使用。
非易失存储器主要提供非易失存储功能,接收来自控制模块的使能信号mem_en决定是否使能非易失存储器,通过非易失存储器x地址信号mem_xadr及非易失存储器y地址信号mem_yadr提供读写地址,非易失存储器按照给出的读写地址为格雷码计数器提供数据以及写入数据。
具体的,格雷码计数器对取出的数据进行加1或减1操作具体如下:
加1计数功能:当使能信号cnt_en = 1,计数方向选择信号cnt_mode = 1时执行格雷码加1操作,由于格雷码相邻数之间只差1个比特,因此在执行加1操作时,可以利用上一状态的格雷码以及当前状态的格雷码得出下一状态的格雷码,假设格雷码总共有n位,则计算过程如下:
加1计数:当使能信号cnt_en = 1,计数方向选择信号cnt_mode = 1时执行格雷码加1操作,利用上一状态的格雷码以及当前状态的格雷码得出下一状态的格雷码,假设格雷码总共有n位,i表示格雷码的第i位,则计算过程如下:
;
;
;
;
其中,代表同或符号,表示两个操作数之间做同或,代表取反,表示对操作数进
行取反的操作,是一个条件运算符,其中当时取,否则取,是与运算符,
表示两个操作数之间进行相与,是或运算符,表示下一状态格雷码的第i位,表示上一
状态格雷码的第i位,表示当前状态格雷码的第i位;表示取位数为第0位到第i-
2位的,表示取位数为第0位到第n-3位的;如图1所示,格雷码计数器进行计数
时涉及到的操作数主要包括上一状态的格雷码,当前状态的格雷码,以及下一状态的格
雷码,通过上述的计算方式,可以利用上一状态的格雷码以及当前状态的格雷码得出下
一状态的格雷码,这个计算过程只涉及到一些门电路以及多路选择器,延迟和硬件消耗是
极小的。
减1计数功能:当cnt_en = 1,cnt_mode = 0时执行格雷码减1操作,同样可以利用格雷码相邻数之间只差1比特的性质,结合上一状态的格雷码和当前状态的格雷码得出下一状态的格雷码,除最高位比特外,其它位比特的计算方式与加1操作相同,因此只给出最高位比特的计算方式:
通过上述计算方式,无需格雷码与二进制码互译的编码器,直接就可以在格雷码的基础上就完成加减1的操作,降低了电路的复杂程度与时间延迟,同时有利于降低写入时的比特翻转数量。
格雷码计数器在进行加减1操作时,当格雷码由其能表示的最大值跳变为最小值或者由最小值跳变为最大值时,将计数溢出标志cnt_spill置1,通过cnt_spill=1的方式告知控制模块发送了计数溢出的情况。
实施例2
在实施例1的基础上,一种基于格雷码计数器的低功耗非易失存储器电路的非易失存储器采用磁变随机存储器MRAM,格雷码共有4位(n=4),初始存储的数据为4’b0100,格雷码计数器寄存器内存储的数据为4’b0101,存储地址为4’b0001,需要写入的地址为4’b0010 :
数据读取:控制模块发出使能信号mem_en使能非易失存储器,给出读地址(非易失存储器x地址信号)mem_xadr = 4’b0001,非易失存储器按照读地址为格雷码计数器提供数据。
加法计数:控制模块发出使能信号cnt_en = 1,计数方向选择信号cnt_mode = 1至格雷码计数器时,格雷码计数器首先从非易失存储器内读取当前的数据4’b0100,之后根据计算公式计算下一状态的格雷码,将上一状态格雷码a=4’b0101,当前状态格雷码b=4’b0100带入计算公式,计算过程如下:
;
;
;
;
计算完成后得到4’b1100,将计算完成后的格雷码写入非易失存储器,完成一次计数。减法计数同理。
数据写入:控制模块发出使能信号mem_en使能非易失存储器给出写地址非易失存储器y地址信号mem_yadr = 4’b0010,非易失存储器将格雷码计数器给出的数据写入到对应地址的存储单元当中。
计数溢出:当当前状态格雷码为4’b0000下一状态格雷码为4’1000,或当前状态格雷码为4’1000下一状态格雷码为4’b0000时代表计数溢出,此时需要对计数溢出标志cnt_spill进行翻转。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质,在本发明的精神和原则之内,对以上实施例所作的任何简单的修改、等同替换与改进等,均仍属于本发明技术方案的保护范围之内。
Claims (3)
1.一种基于格雷码计数器的低功耗非易失存储器电路,其特征在于,所述电路包括以下模块:控制模块、格雷码计数器、非易失存储器;
所述控制模块控制格雷码计数器与非易失存储器之间的通信;
所述格雷码计数器接收来自控制模块的使能信号cnt_en与计数方向选择信号cnt_mode,使能信号cnt_en对格雷码计数器进行使能,从非易失存储器中读出需要进行操作的数据;通过使用计数方向选择信号cnt_mode决定对取出的数据进行加1或减1操作;选择输出计数溢出标志cnt_spill至控制模块,表明数据是否溢出;
所述格雷码计数器对取出的数据进行加1或减1操作具体如下:
加1计数:当使能信号cnt_en=1,计数方向选择信号cnt_mode=1时执行格雷码加1操作,利用上一状态的格雷码a以及当前状态的格雷码b得出下一状态的格雷码c,假设格雷码总共有n位,i表示格雷码的第i位,则计算过程如下:
c0=(a0⊙b0)?~b0:b0
c1=((a1⊙b1)&b0)?~b1:b1
ci=((ai⊙bi)&bi-1&~(|b[i-2:0]))?~bi:bi,1<i<n-1
cn-1=(~(bn-1⊙bn-2)&~(|b[n-3:0]))?~bn-1:bn-1
其中,⊙代表同或符号,表示两个操作数之间做同或,~代表取反,表示对操作数进行取反的操作,a?c1:c2是一个条件运算符,其中当a=1时取c1,否则取c2,&是与运算符,表示两个操作数之间进行相与,|是或运算符,ci表示下一状态格雷码的第i位,ai表示上一状态格雷码的第i位,bi表示当前状态格雷码的第i位;b[i-2:0]表示取位数为第0位到第i-2位的bi,b[n-3:0]表示取位数为第0位到第n-3位的bi;
减1计数:当cnt_en=1,cnt_mode=0时执行格雷码减1操作,除最高位比特外,其它位比特的计算方式与加1计数时操作相同,因此只给出最高位比特的计算方式:
cn-1=((bn-1⊙bn-2)&~(|b[n-3:0]))?~bn-1:bn-1
格雷码计数器在进行加减1操作时,当格雷码由其能表示的最大值跳变为最小值或者由最小值跳变为最大值时,将计数溢出标志cnt_spill置1,通过cnt_spill=1的方式告知控制模块发送了计数溢出的情况;
非易失存储器接收来自控制模块的使能信号mem_en决定是否使能非易失存储器,通过非易失存储器x地址信号mem_xadr及非易失存储器y地址信号mem_yadr提供读写地址,非易失存储器按照给出的读写地址为格雷码计数器提供数据以及写入数据。
2.根据权利要求1所述的一种基于格雷码计数器的低功耗非易失存储器电路,其特征在于,所述格雷码计数器内还包含一个寄存器用以存储上一状态的格雷码a,完成一次计算后,格雷码计数器会将当前状态的格雷码b存储到寄存器当中,作为下次计算时的格雷码a使用。
3.根据权利要求1所述的一种基于格雷码计数器的低功耗非易失存储器电路,其特征在于,所述非易失存储器为磁性随机存储器或阻变随机存储器或铁电随机存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410591479.4A CN118173141B (zh) | 2024-05-14 | 2024-05-14 | 一种基于格雷码计数器的低功耗非易失存储器电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410591479.4A CN118173141B (zh) | 2024-05-14 | 2024-05-14 | 一种基于格雷码计数器的低功耗非易失存储器电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118173141A CN118173141A (zh) | 2024-06-11 |
CN118173141B true CN118173141B (zh) | 2024-07-19 |
Family
ID=91358683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410591479.4A Active CN118173141B (zh) | 2024-05-14 | 2024-05-14 | 一种基于格雷码计数器的低功耗非易失存储器电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118173141B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1983225A (zh) * | 2006-05-09 | 2007-06-20 | 华为技术有限公司 | 一种在异步时钟域传输数据的装置及其方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4592179B2 (ja) * | 2000-12-19 | 2010-12-01 | ルネサスエレクトロニクス株式会社 | ディレイロックドループ、当該ディレイロックドループを含む半導体装置およびクロック同期により動作するシステムのための制御方法 |
US6845414B2 (en) * | 2002-03-15 | 2005-01-18 | Silicon Integrated Systems Corp. | Apparatus and method of asynchronous FIFO control |
CN101373424B (zh) * | 2008-09-19 | 2011-10-12 | 北京中星微电子有限公司 | 一种异步先进先出存储器的数据读写方法、装置及系统 |
CN115361012A (zh) * | 2022-07-07 | 2022-11-18 | 华南理工大学 | 一种低功耗异步先入先出缓存器电路及芯片 |
-
2024
- 2024-05-14 CN CN202410591479.4A patent/CN118173141B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1983225A (zh) * | 2006-05-09 | 2007-06-20 | 华为技术有限公司 | 一种在异步时钟域传输数据的装置及其方法 |
Also Published As
Publication number | Publication date |
---|---|
CN118173141A (zh) | 2024-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100819061B1 (ko) | 쓰기 전력 계산 및 데이터 반전 기능을 통한 상 변화메모리에서의 데이터 쓰기 장치 및 방법 | |
CN101419841B (zh) | 一种flash存储器擦写方法 | |
TWI489483B (zh) | 用於一快閃記憶體內資料之高速、低功率讀取的方法、記憶體、記憶體裝置、記憶體系統及電腦可讀儲存媒體 | |
US8719491B2 (en) | Encoding flash memory data with a randomizer using different seeds for different sectors | |
CN101727983B (zh) | 存储设备及其编程方法 | |
US7457917B2 (en) | Reducing power consumption in a sequential cache | |
US20010049809A1 (en) | Viterbi decoding apparatus and viterbi decoding method | |
US7319610B2 (en) | MTP storage medium and access algorithm method with traditional OTP | |
US8416617B2 (en) | Semiconductor device, semiconductor system having the same, and method for operating the semiconductor device | |
CN102543196B (zh) | 数据读取方法、存储器储存装置及其控制器 | |
CN101930402B (zh) | 具有检错/纠错电路的非挥发存储器及其读写方法 | |
CN104484129A (zh) | 一读一写存储器、多读多写存储器及其读写方法 | |
CN118173141B (zh) | 一种基于格雷码计数器的低功耗非易失存储器电路 | |
US8356202B2 (en) | System and method for reducing power consumption in a device using register files | |
US8401126B2 (en) | Viterbi decoding apparatus | |
CN106326135B (zh) | 一种平移非易失性存储器nvm的数据的方法及装置 | |
US6760273B2 (en) | Buffer using two-port memory | |
CN110162490B (zh) | 高速缓冲管理设备、系统和方法 | |
CN113687786A (zh) | 一种可变数据块宽度的eeprom读写方法 | |
JP2007035163A (ja) | 不揮発性半導体記憶装置及び信号処理システム | |
US7330934B2 (en) | Cache memory with reduced power and increased memory bandwidth | |
US20110055459A1 (en) | Method for managing a plurality of blocks of a flash memory, and associated memory device and controller thereof | |
US11354209B2 (en) | Column redundancy data architecture for yield improvement | |
US11960718B2 (en) | Method of data management for a bitwise programmable non-volatile memory, and corresponding device | |
US20220345135A1 (en) | Monotonic counter memory system |
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 |