CN110989972B - 随机数的生成方法及随机数生成器 - Google Patents

随机数的生成方法及随机数生成器 Download PDF

Info

Publication number
CN110989972B
CN110989972B CN201911233504.7A CN201911233504A CN110989972B CN 110989972 B CN110989972 B CN 110989972B CN 201911233504 A CN201911233504 A CN 201911233504A CN 110989972 B CN110989972 B CN 110989972B
Authority
CN
China
Prior art keywords
reset
pulse
write operation
conductance value
mth
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
Application number
CN201911233504.7A
Other languages
English (en)
Other versions
CN110989972A (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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN201911233504.7A priority Critical patent/CN110989972B/zh
Publication of CN110989972A publication Critical patent/CN110989972A/zh
Priority to US17/779,834 priority patent/US20230004357A1/en
Priority to PCT/CN2020/128565 priority patent/WO2021109834A1/zh
Application granted granted Critical
Publication of CN110989972B publication Critical patent/CN110989972B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Semiconductor Memories (AREA)

Abstract

一种随机数的生成方法及随机数生成器。该随机数的生成方法包括:对至少一个模拟阻变存储器执行n个写操作,n个写操作中的每个写操作包括施加至少一个写操作脉冲以改变被操作的模拟阻变存储器的电导值;由n个写操作对应的n个写操作脉冲数量生成随机数,n为正整数。该随机数的生成方法基于模拟阻变存储器的模拟特性来生成随机数,所生成的随机数不需要进行后端修正,同时兼具高速性和高可靠性。

Description

随机数的生成方法及随机数生成器
技术领域
本公开的实施例涉及一种随机数的生成方法及随机数生成器。
背景技术
随机数生成器可以分为伪随机数生成器(Pseudo Random Number Generator,PRNG)和真随机数生成器(True Random Number Generator,TRNG)两类。PRNG和TRNG均可以用于生成高熵随机数,其中PRNG只能生成有限长度的随机序列,而TRNG可以通过提取一些具有特殊结构的电路中固有的随机性来生成随机数,从而TRNG生成的随机序列的长度不受限制。目前许多重要领域,诸如加密(保障大量信息在高速通讯下的安全)、仿真(随机挑选大量可能情况进行模拟)和人工智能等,对随机数的需求量非常大,并且对这些随机数的随机性的要求也非常高。在这种情况下,TRNG难以被PRNG替代,具有广阔的应用前景。
发明内容
本公开至少一实施例提供一种随机数的生成方法,包括:对至少一个模拟阻变存储器执行n个写操作,所述n个写操作中的每个写操作包括施加至少一个写操作脉冲以改变被操作的模拟阻变存储器的电导值;由所述n个写操作对应的n个写操作脉冲数量生成所述随机数,n为正整数。
例如,在本公开至少一实施例提供的生成方法中,所述n个写操作中的第m个写操作包括置位操作,所述第m个写操作对应的至少一个写操作脉冲包括至少一个置位脉冲,m为正整数,且1≤m≤n,所述置位操作包括:对所述被操作的模拟阻变存储器依次施加所述至少一个置位脉冲,直至将所述被操作的模拟阻变存储器的电导值从置位起始电导值逐步增加至置位状态电导值。
例如,在本公开至少一实施例提供的生成方法中,所述n个写操作中的第m个写操作包括置位操作,所述第m个写操作对应的至少一个写操作脉冲包括至少一个置位脉冲,m为正整数,且1≤m≤n,所述置位操作包括:获取置位脉冲数量阈值;对所述被操作的模拟阻变存储器依次施加所述至少一个置位脉冲,直至将所述被操作的模拟阻变存储器的电导值从置位起始电导值逐步增加至置位状态电导值或所述至少一个置位脉冲的数量达到所述置位脉冲数量阈值。
例如,在本公开至少一实施例提供的生成方法中,所述第m个写操作还包括复位操作,所述第m个写操作对应的至少一个写操作脉冲还包括至少一个复位脉冲,所述复位操作包括:对所述被操作的模拟阻变存储器依次施加所述至少一个复位脉冲,直至将所述被操作的模拟阻变存储器的电导值从所述置位状态电导值逐步减小至复位目标电导值。
例如,在本公开至少一实施例提供的生成方法中,所述第m个写操作还包括复位操作,所述第m个写操作对应的至少一个写操作脉冲还包括至少一个复位脉冲,所述复位操作包括:获取复位脉冲数量阈值;对所述被操作的模拟阻变存储器依次施加所述至少一个复位脉冲,直至将所述被操作的模拟阻变存储器的电导值从所述置位状态电导值逐步减小至复位目标电导值或所述至少一个复位脉冲的数量达到所述复位脉冲数量阈值。
例如,在本公开至少一实施例提供的生成方法中,所述置位起始电导值和所述复位目标电导值相等。
例如,在本公开至少一实施例提供的生成方法中,所述n个写操作中的第m个写操作包括复位操作,所述第m个写操作对应的至少一个写操作脉冲包括至少一个复位脉冲,m为正整数,且1≤m≤n,所述复位操作包括:对所述被操作的模拟阻变存储器依次施加所述至少一个复位脉冲,直至将所述被操作的模拟阻变存储器的电导值从置位状态电导值逐步减小至复位目标电导值。
例如,在本公开至少一实施例提供的生成方法中,所述n个写操作中的第m个写操作包括复位操作,所述第m个写操作对应的至少一个写操作脉冲包括至少一个复位脉冲,m为正整数,且1≤m≤n,所述复位操作包括:获取复位脉冲数量阈值;对所述被操作的模拟阻变存储器依次施加所述至少一个复位脉冲,直至将所述被操作的模拟阻变存储器的电导值从置位状态电导值逐步减小至复位目标电导值或所述至少一个复位脉冲的数量达到所述复位脉冲数量阈值。
例如,在本公开至少一实施例提供的生成方法中,由所述n个写操作对应的n个写操作脉冲数量生成所述随机数包括:由所述n个写操作对应的n个写操作脉冲数量得到n个中间数;根据所述n个中间数生成所述随机数。
例如,在本公开至少一实施例提供的生成方法中,对于所述n个写操作中的第i个写操作,i为正整数,且1≤i≤n,所述n个中间数包括与所述第i个写操作对应的第i个中间数,所述n个写操作脉冲数量包括与所述第i个写操作对应的第i个写操作脉冲数量,在所述第i个写操作仅包括置位操作的情形,所述第i个写操作脉冲数量包括所述置位操作对应的置位脉冲数量,且由所述置位脉冲数量经过第一运算得到所述第i个中间数,或者,在所述第i个写操作仅包括复位操作的情形,所述第i个写操作脉冲数量包括所述复位操作对应的复位脉冲数量,且由所述复位脉冲数量经过第二运算得到所述第i个中间数,或者,在所述第i个写操作包括置位操作和复位操作的情形,所述第i个写操作脉冲数量包括所述置位操作对应的置位脉冲数量和所述复位操作对应的复位脉冲数量,由所述置位脉冲数量和所述复位脉冲数量经过第三运算得到运算结果,由所述运算结果经过第四运算得到所述第i个中间数。
例如,在本公开至少一实施例提供的生成方法中,所述第三运算包括求和运算。
例如,在本公开至少一实施例提供的生成方法中,所述第一运算、所述第二运算和所述第四运算包括模2L运算,L为正整数,由所述n个中间数生成所述随机数包括:将所述n个中间数分别作为一个n位的2L进制数的n个位数,由所述n位的2L进制数生成所述随机数。
本公开至少一实施例还提供一种随机数生成器,包括:至少一个模拟阻变存储器;写入电路,耦接到所述至少一个模拟阻变存储器,配置为对所述至少一个模拟阻变存储器执行n个写操作,所述n个写操作中的每个写操作包括施加至少一个写操作脉冲以改变被操作的模拟阻变存储器的电导值;计数器,耦接到所述写入电路,配置为对所述n个写操作对应的写操作脉冲进行计数,以得到与所述n个写操作对应的n个写操作脉冲数量;输出电路,耦接到所述计数器,配置为由所述n个写操作脉冲数量生成所述随机数,n为正整数。
例如,在本公开至少一实施例提供的随机数生成器中,所述写入电路包括脉冲产生电路、比较器和控制器,所述n个写操作中的第m个写操作包括置位操作,所述第m个写操作对应的至少一个写操作脉冲包括至少一个置位脉冲,m为正整数,且1≤m≤n,所述n个写操作脉冲数量包括与所述第m个写操作对应的第m个写操作脉冲数量,所述控制器配置为控制所述脉冲产生电路产生并施加所述至少一个置位脉冲至所述被操作的模拟阻变存储器以使所述被操作的模拟阻变存储器的电导值从置位起始电导值逐步增加至置位状态电导值和控制所述计数器对所述至少一个置位脉冲进行计数以得到第m个置位脉冲数量,所述第m个写操作脉冲数量包括所述第m个置位脉冲数量;所述比较器配置为将所述被操作的模拟阻变存储器的电导值与置位状态电导值阈值进行比较以得到置位比较结果;所述控制器还配置为在所述置位比较结果表示所述被操作的模拟阻变存储器的电导值增加至所述置位状态电导值的情形控制所述计数器将计数得到的所述第m个置位脉冲数量输出至所述输出电路。
例如,在本公开至少一实施例提供的随机数生成器中,所述写入电路包括脉冲产生电路、比较器和控制器,所述n个写操作中的第m个写操作包括置位操作,所述第m个写操作对应的至少一个写操作脉冲包括至少一个置位脉冲,m为正整数,且1≤m≤n,所述n个写操作脉冲数量包括与所述第m个写操作对应的第m个写操作脉冲数量,所述控制器配置为控制所述脉冲产生电路产生并施加所述至少一个置位脉冲至所述被操作的模拟阻变存储器以使所述被操作的模拟阻变存储器的电导值从置位起始电导值逐步增加至置位状态电导值和控制所述计数器对所述至少一个置位脉冲进行计数以得到第m个置位脉冲数量,所述第m个写操作脉冲数量包括所述第m个置位脉冲数量;所述比较器配置为将所述被操作的模拟阻变存储器的电导值与置位状态电导值阈值进行比较以得到置位比较结果;所述控制器还配置为:获取置位脉冲数量阈值,在所述置位比较结果表示所述被操作的模拟阻变存储器的电导值增加至所述置位状态电导值或者所述所述第m个置位脉冲数量达到所述置位脉冲数量阈值的情形控制所述计数器将计数得到的所述第m个置位脉冲数量输出至所述输出电路。
例如,在本公开至少一实施例提供的随机数生成器中,所述第m个写操作还包括复位操作,所述写操作脉冲还包括复位脉冲,所述控制器配置为控制所述脉冲产生电路产生并施加所述至少一个复位脉冲至所述被操作的模拟阻变存储器以使所述被操作的模拟阻变存储器的电导值从置位状态电导值逐步减小至复位目标电导值和控制所述计数器对所述至少一个复位脉冲进行计数以得到第m个复位脉冲数量,所述第m个写操作脉冲数量还包括所述第m个复位脉冲数量;所述比较器配置为将所述被操作的模拟阻变存储器的电导值与复位目标电导值阈值进行比较以得到复位比较结果;所述控制器还配置为在所述复位比较结果表示所述被操作的模拟阻变存储器的电导值减小至所述复位目标电导值的情形控制所述计数器将计数得到的所述第m个复位脉冲数量输出至所述输出电路。
例如,在本公开至少一实施例提供的随机数生成器中,所述第m个写操作还包括复位操作,所述写操作脉冲还包括复位脉冲,所述控制器配置为控制所述脉冲产生电路产生并施加所述至少一个复位脉冲至所述被操作的模拟阻变存储器以使所述被操作的模拟阻变存储器的电导值从置位状态电导值逐步减小至复位目标电导值和控制所述计数器对所述至少一个复位脉冲进行计数以得到第m个复位脉冲数量,所述第m个写操作脉冲数量还包括所述第m个复位脉冲数量;所述比较器配置为将所述被操作的模拟阻变存储器的电导值与复位目标电导值阈值进行比较以得到复位比较结果;所述控制器还配置为:获取复位脉冲数量阈值,在所述复位比较结果表示所述被操作的模拟阻变存储器的电导值减小至所述复位目标电导值或者所述第m个复位脉冲数量达到所述复位脉冲数量阈值的情形控制所述计数器将计数得到的所述第m个复位脉冲数量输出至所述输出电路。
例如,在本公开至少一实施例提供的随机数生成器中,所述置位起始电导值和所述复位目标电导值相等。
例如,在本公开至少一实施例提供的随机数生成器中,所述写入电路包括脉冲产生电路、比较器和控制器,所述n个写操作中的第m个写操作包括复位操作,所述第m个写操作对应的至少一个写操作脉冲包括至少一个复位脉冲,m为正整数,且1≤m≤n,所述n个写操作脉冲数量包括与所述第m个写操作对应的第m个写操作脉冲数量,所述控制器配置为控制所述脉冲产生电路产生并施加所述至少一个复位脉冲至所述被操作的模拟阻变存储器以使所述被操作的模拟阻变存储器的电导值从置位状态电导值逐步减小至复位目标电导值和控制所述计数器对所述至少一个复位脉冲进行计数以得到第m个复位脉冲数量,所述第m个写操作脉冲数量包括所述第m个复位脉冲数量;所述比较器配置为将所述被操作的模拟阻变存储器的电导值与复位目标电导值阈值进行比较以得到复位比较结果;所述控制器还配置为在所述复位比较结果表示所述被操作的模拟阻变存储器的电导值减小至所述复位目标电导值的情形控制所述计数器将计数得到的所述第m个复位脉冲数量输出至所述输出电路。
例如,在本公开至少一实施例提供的随机数生成器中,所述写入电路包括脉冲产生电路、比较器和控制器,所述n个写操作中的第m个写操作包括复位操作,所述第m个写操作对应的至少一个写操作脉冲包括至少一个复位脉冲,m为正整数,且1≤m≤n,所述n个写操作脉冲数量包括与所述第m个写操作对应的第m个写操作脉冲数量,所述控制器配置为控制所述脉冲产生电路产生并施加所述至少一个复位脉冲至所述被操作的模拟阻变存储器以使所述被操作的模拟阻变存储器的电导值从置位状态电导值逐步减小至复位目标电导值和控制所述计数器对所述至少一个复位脉冲进行计数以得到所述第m个复位脉冲数量,所述第m个写操作脉冲数量包括所述第m个复位脉冲数量;所述比较器配置为将所述被操作的模拟阻变存储器的电导值与复位目标电导值阈值进行比较以得到复位比较结果;所述控制器还配置为:获取复位脉冲数量阈值,在所述复位比较结果表示所述被操作的模拟阻变存储器的电导值减小至所述复位目标电导值或者所述第m个复位脉冲数量达到所述复位脉冲数量阈值的情形控制所述计数器将计数得到的所述第m个复位脉冲数量输出至所述输出电路。
例如,在本公开至少一实施例提供的随机数生成器中,所述输出电路配置为由所述n个写操作的写操作脉冲的数量得到n个中间数,由所述n个中间数生成所述随机数。
例如,在本公开至少一实施例提供的随机数生成器中,对于第i个写操作,i为正整数,且1≤i≤n,所述输出电路配置为,在所述第i个写操作仅包括置位操作的情形,对所述置位操作的置位脉冲的数量进行第一运算得到所述第i个写操作对应的中间数,或者,在所述第i个写操作仅包括复位操作的情形,对所述复位操作的复位脉冲的数量进行第二运算得到所述第i个写操作对应的中间数,或者,在所述第i个写操作包括置位操作和复位操作的情形,对所述置位操作的置位脉冲的数量和所述复位操作的复位脉冲的数量进行第三运算得到运算结果,对所述运算结果进行第四运算得到所述第i个写操作对应的中间数。
例如,在本公开至少一实施例提供的随机数生成器中,所述输出电路配置为对所述置位操作的置位脉冲的数量和所述复位操作的复位脉冲的数量进行累加以实现所述第三运算。
例如,在本公开至少一实施例提供的随机数生成器中,所述输出电路配置为进行模2L运算以实现所述第一运算、所述第二运算和所述第四运算,L为正整数,并且将所述n个中间数分别作为一个n位的2L进制数的位数,由所述n位的2L进制数生成所述随机数。
例如,在本公开至少一实施例提供的随机数生成器中,所述计数器包括1位计数器,所述输出电路包括n位的D触发器,所述1位计数器配置为对所述n个写操作对应的写操作脉冲进行模2计数,以得到与所述n个写操作对应的n个写操作脉冲数量;所述n位的D触发器配置为将所述n个写操作脉冲数量输出为所述随机数。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1为本公开至少一实施例提供的一种模拟阻变存储器的结构示意图;
图2为本公开至少一实施例提供的一种模拟阻变存储器的模拟特性的示意图;
图3为本公开至少一实施例提供的一种模拟阻变存储器的写脉冲数量的统计分布的示意图;
图4为本公开至少一实施例提供的一种随机数的生成方法的流程图;
图5为本公开至少一实施例提供的一种生成方法的第m个写操作的一个示例的流程图;
图6为图5所述示例所生成的随机数的示意图;
图7为本公开至少一实施例提供的一种生成方法的第m个写操作的另一个示例的流程图;
图8为本公开至少一实施例提供的一种生成方法的第m个写操作的又一个示例的流程图;
图9为图8所述示例所生成的随机数的示意图;
图10为本公开至少一实施例提供的一种生成方法的第m个写操作的又一个示例的流程图;
图11为本公开至少一实施例提供的一种生成方法的第m个写操作的又一个示例的流程图;
图12为图11所述示例所生成的随机数的示意图;
图13为本公开至少一实施例提供的一种生成方法的第m个写操作的又一个示例的流程图;
图14为本公开至少一实施例提供的一种随机数生成器的示意框图;
图15为本公开至少一实施例提供的一种随机数生成器的一个示例的示意框图;
图16为本公开至少一实施例提供的一种随机数生成器的一个具体示例的示意框图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
当前,TRNG可以分为两类,第一类是基于晶体管电路的TRNG,例如基于锁存器结构亚稳态的TRNG和基于环形振荡器的TRNG等;第二类是基于新型存储器的TRNG,例如基于磁性存储器的TRNG和基于阻变存储器的TRNG等。第一类TRNG为保证TRNG的有效工作通常需要许多附加的校准电路,因此具有较大的面积开销;第二类TRNG中的基于磁性存储器的TRNG通常使用复杂的材料体系,因此具有较大的工艺制备难度。相比之下,第二类TRNG中的基于阻变存储器的TRNG具有与存储模块高度相似的电路设计并且其材料体系与微纳加工技术相兼容,因此可以很好地克服上述缺点。
基于阻变存储器的TRNG基于阻变存储器的固有随机性来生成随机数,目前实现为两种技术方案,这两种技术方案分别利用阻变存储器的读噪声特性和开关特性来生成随机数。第一种技术方案利用阻变存储器读出的电阻值在热噪声干扰下存在随机抖动的特性,对两个不同时刻读出的电阻值进行比较,基于比较结果生成随机数。第二种技术方案利用阻变存储器的挥发特性,即阻变存储器在调整至“开态”后经过一段时间会自发地切换回“关态”的特性,通过记录阻变存储器维持在“开态”的时间生成随机数。但是,基于阻变存储器的读噪声特性的TRNG对读取电路的精度要求非常高且存在读噪声行为不确定性,需要对所产生的随机数进行后端修正(例如,冯诺依曼纠偏、多次异或等),因此基于阻变存储器的读噪声特性的TRNG的可靠性以及输出随机性亟需进一步改善。基于阻变存储器的开关特性的TRNG需要等待阻变存储器自发地完成状态切换,因此具有速度慢(例如,吞吐量通常在1kbit/sec-10kbit/sec量级)以及阻变存储器本身可擦写次数不足(例如,可擦写次数通常在106-107量级)的问题。
综上,目前现有的基于阻变存储器的TRNG均不能兼具高速性和高可靠性这两个十分重要的特性。
本公开至少一实施例提供一种随机数的生成方法,包括:对至少一个模拟阻变存储器执行n个写操作,n个写操作中的每个写操作包括施加至少一个写操作脉冲以改变被操作的模拟阻变存储器的电导值;由n个写操作对应的n个写操作脉冲数量生成随机数,n为正整数。
本公开至少一实施例还提供对应于上述生成方法的随机数生成器。
本公开实施例提供的随机数的生成方法及随机数生成器基于模拟阻变存储器的写操作的模拟特性来生成随机数,所生成的随机数不需要进行后端修正。在至少一个示例中,单个模拟阻变存储器生成随机数的吞吐量可以达到1Mbit/sec,模拟阻变存储器的可擦写次数可以达到1011量级,在这些情况下,本公开实施例提供的随机数的生成方法及随机数生成器弥补了上述基于阻变存储器的读噪声特性和开关特性来生成随机数的方法的不足,同时兼具高速性和高可靠性。
下面结合附图对本公开的实施例及其示例进行详细说明。
图1为本公开至少一实施例提供的一种模拟阻变存储器的结构示意图。如图1所示,模拟阻变存储器采用1T1R结构为例,即模拟阻变存储器包括一个晶体管M1和一个阻变元件R1。
需要说明的是,本公开的实施例中所采用的晶体管均可以为薄膜晶体管或场效应晶体管(例如MOS场效应晶体管)或其他特性相同的开关器件,并且所采用的晶体管的源极、漏极在结构上可以是对称的,所以其源极、漏极在结构上可以是没有区别的。在本公开的实施例中,为了区分晶体管除栅极之外的两极,直接描述了其中一极为第一极,而另一极为第二极。
本公开的实施例对采用的晶体管的类型不作限定,例如当晶体管M1采用N型晶体管时,其栅极和字线端WL连接,例如字线端WL输入高电平时晶体管M1导通;晶体管M1的第一极可以是源极并被配置为和源线端SL连接,例如晶体管M1可以通过源线端SL接收复位(RESET)脉冲;晶体管M1的第二极可以是漏极并被配置为和阻变元件R1的第二极(例如负极)连接,阻变元件R1的第一极(例如正极)和位线端BL连接,例如阻变元件R1可以通过位线端BL接收置位(SET)脉冲。例如当晶体管M1采用P型晶体管时,其栅极和字线端WL连接,例如字线端WL输入低电平时晶体管M1导通;晶体管M1的第一极可以是源极并配置为和源线端SL连接,例如晶体管M1可以通过源线端SL接收置位脉冲;晶体管M1的第二极可以是漏极并配置为和阻变元件R1的第二极(例如负极)连接,阻变元件R1的第一极(例如正极)和位线端BL连接,例如阻变元件R1可以通过位线端BL接收复位脉冲。需要说明的是,当使用N型晶体管时,位线端BL接收置位脉冲时,源线端SL接地,源线端SL接收复位脉冲时,位线端BL接地。需要说明的是,当使用P型晶体管时,位线端BL接收复位脉冲时,源线端SL接电源电压,源线端SL接收置位脉冲时,位线端BL接电源电压。需要说明的是,阻变存储器的结构还可以实现为其他结构,本公开的实施例对此不作限制。下面各实施例均以晶体管M1采用N型晶体管为例进行说明。
通过向模拟阻变存储器施加写操作脉冲可以改变模拟阻变存储器的电导值从而实现模拟阻变存储器的写操作,例如置位操作和/或复位操作。字线端WL的作用是对晶体管M1的栅极施加相应电压,从而控制晶体管M1导通或关闭。在对模拟阻变存储器进行写操作时,例如进行置位操作或复位操作,均需要先开启晶体管M1,即需要通过字线端WL对晶体管M1的栅极施加导通电压。在晶体管M1导通后,例如,可以控制源线端SL接地,并向位线端BL施加置位脉冲作为写操作脉冲以增加模拟阻变存储器的电导值;又例如,可以控制位线端BL接地,并向源线端SL施加复位脉冲作为写操作脉冲以减小模拟阻变存储器的电导值。
需要说明的是,在本公开的实施例中,向模拟阻变存储器施加至少一个置位脉冲以增加模拟阻变存储器的电导值的写操作称为置位操作,向模拟阻变存储器施加至少一个复位脉冲以减小模拟阻变存储器的电导值的写操作称为复位操作。以下各实施例与此相同,不再赘述。
还需要说明的是,在本公开的实施例中,在模拟阻变存储器进行的同一写操作内施加的至少一个写操作脉冲相同,其是示例性的,而不是对本公开的限制。并且,在本公开的实施例中,在模拟阻变存储器进行的不同写操作间所施加的写操作脉冲相同,其是示例性的,而不是对本公开的限制。
在本公开中,模拟阻变存储器指电导值能够连续变化的阻变存储器,模拟特性即指电导值能够连续变化这一特性,以下各实施例与此相同,不再赘述。在进行写操作时,模拟阻变存储器的电导值在写操作脉冲的作用下缓慢的渐变。例如,一些模拟阻变存储器的电导值在写操作脉冲的作用下可以从0.1μS逐渐增加至10μS。例如,图2图示了本公开至少一实施例提供的一种模拟阻变存储器在脉冲作用下电导值的变化过程,在图2中,模拟阻变存储器在200个相同的置位脉冲的作用下,模拟阻变存储器的电导值逐渐增加(即图2中的SET过程),在200个相同的复位脉冲的作用下,模拟阻变存储器的电导值逐渐减小(即图2中的RESET过程)。
在对模拟阻变存储器进行写操作时,在相同的写操作脉冲的作用下模拟阻变存储器的电导值的变化量是不定的,存在随机性。例如,如图2所示,对于200个相同的置位脉冲,模拟阻变存储器的电导值的增加量不同,对于200个相同的复位脉冲,模拟阻变存储器的电导值的减小量也不同。因此,模拟阻变存储器实现特定写操作(即模拟阻变存储器的电导值从特定起始值调整到特定目标值)所需的写操作脉冲的数量是不定的,存在随机性。值得注意的是,增加量和减小量也可能为负值。
图3图示了本公开至少一实施例提供的一种模拟阻变存储器的写脉冲数量的统计分布,横坐标为脉冲数量,纵坐标为相应脉冲数量实现写操作的概率,该脉冲为脉冲宽度50ns(纳秒)、占空比50%、幅值1.9v(伏特)的矩形脉冲,该写操作包括将模拟阻变存储器的电导值从小于10μS(微西)的电导值逐渐增加至大于20μS的电导值的置位操作,以及将模拟阻变存储器的电导值从该大于20μS的电导值逐渐减小至小于10μS的电导值的复位操作。图3展示了脉冲数量在20480个循环(定义完成一次置位操作和复位操作的过程为一个循环)中的统计分布,由图3可知,在20480个循环中,脉冲数量为5(即在单个循环中,置位操作中的脉冲数量和复位操作中的脉冲数量之和为5)的概率是最大的。由图3可知,模拟阻变存储器实现写操作所需脉冲数量是随机的,因此,可以利用模拟阻变存储器写操作脉冲数量的随机性来实现一种真随机数生成器。
本公开至少一实施例提供一种随机数的生成方法,图4为该生成方法的流程图。该生成方法可以以借助软件、硬件、固件或其任意组合的方式实现。下面参考图4对本公开实施例提供的随机数的生成方法进行详细地介绍。如图4所示,该随机数的生成方法包括步骤S100和步骤S200。
步骤S100:对至少一个模拟阻变存储器执行n个写操作,n个写操作中的每个写操作包括施加至少一个写操作脉冲以改变被操作的模拟阻变存储器的电导值。
步骤S200:由n个写操作对应的n个写操作脉冲数量生成随机数。
例如,n为正整数,随机数为真随机数。
需要说明的是,随机数可以是2进制形式的随机数(即该随机数为由0和1组成二进制数),也可以是其它形式的随机数,例如4进制、10进制、16进制等形式的随机数等。在本公开的实施例中,为更清楚地描述本公开的技术方案,随机数指代2进制形式的随机数,其是示例性的,而不是对本公开的限制。
可以根据所需生成的随机数的总位数以及由每个写操作脉冲数量生成随机数的具体方式来确定n。例如,需要生成长度为12位的随机数,并且利用每个写操作脉冲数量的模2值(即0或1,该0或1可以用于表示写操作脉冲数量的奇偶性)来生成随机数,即由每个写操作脉冲数量可以生成随机数的1位,则n可以为大于等于12的正整数。例如,需要生成12位的随机数,并且利用每个写操作脉冲数量的模4值(即0、1、2或3)来生成随机数,例如,每个模4值可以由2位的二进制数表示,即由每个写操作脉冲数量可以生成随机数的2位,则n可以为大于等于6的正整数。需要说明的是,需要生成的随机数的总位数根据实际情况而定,本公开的实施例对此不作限制。
下面对该随机数的生成过程进行详细描述。
对于步骤S100,在每个写操作内,对至少一个模拟阻变存储器施加写操作脉冲,使得被操作的模拟阻变存储器的电导值逐渐变化,并记录所施加的写操作脉冲的数目。在不同实施例中,上述方法可以在同一个模拟阻变存储器上进行,也可以在不同的模拟阻变存储器上进行,对于后一种情形,例如,n个写操作的一部分在一个模拟阻变存储器上进行,而另一部分在另一个模拟阻变存储器上进行。在不同示例中,写操作可以仅包括置位操作,或者仅包括复位操作,或者既包括置位操作也包括复位操作。当写操作为置位操作,写操作脉冲为置位脉冲,此时,对被操作的模拟阻变存储器施加置位脉冲,使得被操作的模拟阻变存储器的电导值逐渐增大;当写操作为复位操作,写操作脉冲为复位脉冲,此时,对被操作的模拟阻变存储器施加复位脉冲,使得被操作的模拟阻变存储器的电导值逐渐减小。
例如,写操作脉冲为脉冲宽度50ns、占空比50%、幅值2v的矩形脉冲。写操作脉冲的具体参数可以根据具体模拟阻变存储器的特性而定,本公开的实施例对此不作限制。
例如,在置位脉冲的作用下,被操作的模拟阻变存储器的电导值从第一起始电导值逐渐增加至第一目标电导值,例如,第一起始电导值为小于10μS的电导值,第一目标电导值为大于20μS的电导值。例如,在复位脉冲的作用下,被操作的模拟阻变存储器的电导值从第二起始电导值逐渐减小至第二目标电导值,例如,第二起始电导值为大于20μS的电导值,第二目标电导值为小于10μS的电导值。例如,在置位脉冲的作用下,被操作的模拟阻变存储器的电导值先从第三起始电导值逐渐增加至第三目标电导值,然后,在复位脉冲的作用下,被操作的模拟阻变存储器的电导值再从第三目标电导值逐渐减小至第四目标电导值,例如,第三起始电导值为小于10μS的电导值,第三目标电导值为大于20μS的电导值,第四目标电导值为小于10μS的电导值。需要说明的是,上述各个起始电导值和各个目标电导值可以根据具体模拟阻变存储器的特性而定,本公开的实施例对此不作限制。
例如,在本公开提供的随机数生成方法的一个示例中,步骤S100可以包括步骤S110。
步骤S110:n个写操作中的第m个写操作包括置位操作,第m个写操作对应的至少一个写操作脉冲包括至少一个置位脉冲,m为正整数,且1≤m≤n,置位操作包括:对被操作的模拟阻变存储器依次施加至少一个置位脉冲,直至将被操作的模拟阻变存储器的电导值从置位起始电导值逐步增加至置位状态电导值。
例如,置位起始电导值为小于10μS的电导值,置位状态电导值为大于20μS的电导值,但是本公开的实施例对此不作限制。需要说明的是,当n个写操作均为置位操作时,n个写操作对应的n个置位起始电导值可以至少部分不相同,只要n个置位起始电导值均为小于10μS的电导值即可,n个写操作对应的n个置位状态电导值也可以至少部分不相同,只要n个置位状态电导值均为大于20μS的电导值即可。
例如,当被操作的模拟阻变存储器的电导值变为置位状态电导值时,可以获取已记录的所施加的置位脉冲的数量,以得到与该第m个写操作对应的第m个写操作脉冲数量。
例如,图5图示了步骤S110的第m个写操作的流程图。如图5所示,在步骤S111处,将被操作的模拟阻变存储器的电导值初始化为置位起始电导值;在步骤S112处,对被操作的模拟阻变存储器施加置位脉冲;在步骤S113处,判断被操作的模拟阻变存储器的电导值是否增加至置位状态电导值,如果是,则结束该第m个写操作,如果否,则返回到步骤S112。
例如,图6图示了基于图5所示的写操作流程而生成的随机数的示意图。在图6中,所生成的随机数为2进制随机数,黑点表示0,白点表示1,例如,在一个示例中,每个黑点表示一次置位操作且该置位操作对应的置位脉冲的数量为偶数,每个白点也表示一次置位操作且该置位操作对应的置位脉冲的数量为奇数。如图6所示,示意图中的黑白点基本上均匀分布,表明所生成的随机数具有无偏性和随机性。
在实现步骤S110的第m个写操作过程中,由于模拟阻变存储器的行为不稳定,因此可能出现模拟阻变存储器难以被置位的情况。针对此情况,在一些示例中,可以通过设置置位脉冲数量阈值的方式,来避免随机数生成过程陷入死循环,并且设置置位脉冲数量阈值的方式不影响所生成的随机数的随机性。例如,在本公开提供的随机数生成方法的一个示例中,步骤S100可以包括步骤S120。
步骤S120:n个写操作中的第m个写操作包括置位操作,第m个写操作对应的至少一个写操作脉冲包括至少一个置位脉冲,m为正整数,且1≤m≤n,置位操作包括:获取置位脉冲数量阈值;对被操作的模拟阻变存储器依次施加至少一个置位脉冲,直至将被操作的模拟阻变存储器的电导值从置位起始电导值逐步增加至置位状态电导值或至少一个置位脉冲的数量达到置位脉冲数量阈值。
例如,置位起始电导值为小于10μS的电导值,置位状态电导值为大于20μS的电导值,但是本公开的实施例对此不作限制。
例如,置位脉冲数量阈值为20,但是本公开的实施例对此不作限制。置位脉冲数量阈值也可以为15、25、……100、1000等。
例如,当被操作的模拟阻变存储器的电导值变为置位状态电导值时,可以获取已记录的所施加的置位脉冲的数量,以得到与该第m个写操作对应的第m个写操作脉冲数量,或者,已记录的所施加的置位脉冲的数量达到置位脉冲数量阈值,则此时已记录的所施加的置位脉冲的数量(即置位脉冲数量阈值)为与该第m个写操作对应的第m个写操作脉冲数量。
例如,图7图示了步骤S120的第m个写操作的流程图。如图7所示,在步骤S121处,将被操作的模拟阻变存储器的电导值初始化为置位起始电导值;在步骤S122处,对被操作的模拟阻变存储器施加置位脉冲;在步骤S123处,判断被操作的模拟阻变存储器的电导值是否增加至置位状态电导值,如果是,则结束该第m个写操作,如果否,则继续进行步骤S124;在步骤S124处,判断置位脉冲的数量是否达到置位脉冲数量阈值,如果是,则结束该第m个写操作,如果否,则返回到步骤S122。
在图6的示意图中存在两个白点密集的区域(由虚线框圈出的两个区域),这意味着在该区域所生成的随机数1多于0。导致这个现象的原因是不同模拟阻变存储器之间的特性存在差异,有些模拟阻变存储器在被置位时所需施加的写操作脉冲数量随机性良好,但在被复位时所需施加的写操作脉冲数量随机性较差;而有些模拟阻变存储器在被复位为时所需施加的写操作脉冲数量随机性良好,但在被置位时所需施加的写操作脉冲数量随机性较差。针对此情况,n个写操作中的每个写操作可以同时包括置位操作和复位操作,以改善所生成的随机数的随机性。
例如,在本公开提供的随机数生成方法的一个示例中,步骤S100可以包括步骤S130。
步骤S130:在如步骤S110或S120所述的第m个写操作包括置位操作的前提下,第m个写操作还包括复位操作,第m个写操作对应的至少一个写操作脉冲还包括至少一个复位脉冲,复位操作包括:对被操作的模拟阻变存储器依次施加至少一个复位脉冲,直至将被操作的模拟阻变存储器的电导值从置位状态电导值逐步减小至复位目标电导值。
例如,置位状态电导值为大于20μS的电导值,复位目标电导值为小于10μS的电导值,但是本公开的实施例对此不作限制。需要说明的是,当n个写操作中的每个写操作包括置位操作和复位操作时,n个写操作对应的n个置位起始电导值可以至少部分不相同,只要n个置位起始电导值均为小于10μS的电导值即可,n个写操作对应的n个置位状态电导值也可以至少部分不相同,只要n个置位状态电导值均为大于20μS的电导值即可,n个写操作对应的n个复位目标电导值也可以至少部分不相同,只要n个复位目标电导值均为小于10μS的电导值即可。
例如,当被操作的模拟阻变存储器的电导值变为复位目标电导值时,可以获取已记录的所施加的复位脉冲的数量,以得到与该第m个写操作对应的第m个复位脉冲数量。
例如,图8图示了步骤S130的第m个写操作的流程图。如图8所示,在步骤S131处,将被操作的模拟阻变存储器的电导值初始化为置位起始电导值;在步骤S132处,对被操作的模拟阻变存储器施加置位脉冲;在步骤S133处,判断被操作的模拟阻变存储器的电导值是否增加至置位状态电导值,如果是,则继续进行步骤S134,如果否,则返回到步骤S132;在步骤S134处,对被操作的模拟阻变存储器施加复位脉冲;在步骤S135处,判断被操作的模拟阻变存储器的电导值是否减少至复位目标电导值,如果是,则结束该第m个写操作,如果否,则返回到步骤S134。
例如,图9图示了基于图8所示的写操作流程而生成的随机数的示意图。在图9中,所生成的随机数为2进制随机数,黑点表示0,白点表示1。如图9所示,示意图中的黑白点均匀分布且不存在黑点或白点密集分布的区域,表明所生成的随机数的随机性较好。
在实现步骤S130的第m个写操作过程中,由于模拟阻变存储器的行为不稳定,因此也可能出现模拟阻变存储器难以被置位或难以被复位的情况。针对此情况,可以通过设置置位脉冲数量阈值和复位脉冲数量阈值的方式,来避免随机数生成过程陷入死循环,并且设置置位脉冲数量阈值和复位脉冲数量阈值的方式不影响所生成的随机数的随机性。例如,在本公开提供的随机数生成方法的一个示例中,步骤S100可以包括步骤S140。
步骤S140:在如步骤S110或S120所述的第m个写操作包括置位操作的前提下,第m个写操作还包括复位操作,第m个写操作对应的至少一个写操作脉冲还包括至少一个复位脉冲,复位操作包括:获取复位脉冲数量阈值;对被操作的模拟阻变存储器依次施加至少一个复位脉冲,直至将被操作的模拟阻变存储器的电导值从置位状态电导值逐步减小至复位目标电导值或至少一个复位脉冲的数量达到复位脉冲数量阈值。
例如,置位状态电导值为大于20μS的电导值,复位目标电导值为小于10μS的电导值,但是本公开的实施例对此不作限制。
例如,复位脉冲数量阈值为20,但是本公开的实施例对此不作限制。复位脉冲数量阈值也可以为15、25、……100、1000等。
例如,复位脉冲数量阈值和置位脉冲数量阈值可以相同。
例如,当被操作的模拟阻变存储器的电导值变为复位目标电导值时,可以获取已记录的所施加的复位脉冲的数量,以得到与该第m个写操作对应的第m个复位脉冲数量,或者,已记录的所施加的复位脉冲的数量达到复位脉冲数量阈值,则此时已记录的所施加的复位脉冲的数量(即复位脉冲数量阈值)为与该第m个写操作对应的第m个复位脉冲数量。
例如,图10图示了步骤S140的第m个写操作的流程图。如图10所示,在步骤S141处,将被操作的模拟阻变存储器的电导值初始化为置位起始电导值;在步骤S142处,对被操作的模拟阻变存储器施加置位脉冲;在步骤S143处,判断被操作的模拟阻变存储器的电导值是否增加至置位状态电导值,如果是,则继续进行步骤S145,如果否,则继续进行步骤S144;在步骤S144处,判断置位脉冲数量是否达到置位脉冲数量阈值,如果是,则继续进行步骤S145,如果否,则返回到步骤S142;在步骤S145处,对被操作的模拟阻变存储器施加复位脉冲;在步骤S146处,判断被操作的模拟阻变存储器的电导值是否减小至复位目标电导值,如果是,则结束该第m个写操作,如果否,则继续进行步骤S147;在步骤S147处,判断复位脉冲数量是否达到复位脉冲数量阈值,如果是,则结束该第m个写操作,如果否,则返回到步骤S145。
例如,对于步骤S130和步骤S140,置位起始电导值和复位目标电导值可以相等。在这种情况下,在完成n个写操作中的一个写操作后,可以在同一个模拟阻变存储器上直接进行下一个写操作的施加置位脉冲步骤,从而省去下一个写操作中将被操作的模拟阻变存储器的电导值初始化为置位起始电导值的步骤。
上述示例示出了n个写操作中的每个写操作仅包括置位操作的实现方式,以及包括置位操作和复位操作的组合的实现方式。需要说明的是,n个写操作中的每个写操作也可以仅包含复位操作。例如,在本公开提供的随机数生成方法的一个示例中,步骤S100可以包括步骤S150。
步骤S150:n个写操作中的第m个写操作包括复位操作,第m个写操作对应的至少一个写操作脉冲包括至少一个复位脉冲,m为正整数,且1≤m≤n,复位操作包括:对被操作的模拟阻变存储器依次施加至少一个复位脉冲,直至将被操作的模拟阻变存储器的电导值从置位状态电导值逐步减小至复位目标电导值。
例如,置位状态电导值为大于20μS的电导值,复位目标电导值为小于10μS的电导值,但是本公开的实施例对此不作限制。需要说明的是,当n个写操作均为复位操作时,n个写操作对应的n个置位状态电导值可以至少部分不相同,只要n个置位状态电导值均为大于20μS的电导值即可,n个写操作对应的n个复位目标电导值也可以至少部分不相同,只要n个复位目标电导值均为小于10μS的电导值即可。另外,步骤S110中的置位状态电导值和步骤S150中的置位状态电导值可以不相同。
例如,当被操作的模拟阻变存储器的电导值变为复位目标电导值时,可以获取已记录的所施加的复位脉冲的数量,以得到与该第m个写操作对应的第m个写操作脉冲数量。
例如,图11图示了步骤S150的第m个写操作的流程图。如图11所示,在步骤S151处,将被操作的模拟阻变存储器的电导值初始化为置位状态电导值;在步骤S152处,对被操作的模拟阻变存储器施加复位脉冲;在步骤S153处,判断被操作的模拟阻变存储器的电导值是否减小至复位目标电导值,如果是,则结束该第m个写操作,如果否,则返回到步骤S152。
例如,图12图示了基于图11所示的写操作流程而生成的随机数的示意图。在图12中,所生成的随机数为2进制随机数,黑点表示0,白点表示1。如图12所示,示意图中的黑白点基本上均匀分布,表明所生成的随机数具有无偏性和随机性。但是,在图12的示意图中存在一个白点密集区域和一个黑点密集区域(图12中虚线框圈出的区域),白点密集区域意味着在该区域所生成的随机数1多于0,黑点密集区域意味着在该区域所生成的随机数0多于1。导致这个现象的原因也是不同模拟阻变存储器之间的特性存在差异,有些模拟阻变存储器在被置位时所需施加的写操作脉冲数量随机性良好,但在被复位时所需施加的写操作脉冲数量随机性较差;而有些模拟阻变存储器在被复位为时所需施加的写操作脉冲数量随机性良好,但在被置位时所需施加的写操作脉冲数量随机性较差。
在实现步骤S150的第m个写操作过程中,由于模拟阻变存储器的行为不稳定,因此也可能出现模拟阻变存储器难以被复位的情况。针对此情况,可以通过设置复位脉冲数量阈值的方式,来避免随机数生成过程陷入死循环,并且设置复位脉冲数量阈值的方式不影响所生成的随机数的随机性。例如,在本公开提供的随机数生成方法的一个示例中,步骤S100可以包括步骤S160。
步骤S160:n个写操作中的第m个写操作包括复位操作,第m个写操作对应的至少一个写操作脉冲包括至少一个复位脉冲,m为正整数,且1≤m≤n,复位操作包括:获取复位脉冲数量阈值;对被操作的模拟阻变存储器依次施加至少一个复位脉冲,直至将被操作的模拟阻变存储器的电导值从置位状态电导值逐步减小至复位目标电导值或至少一个复位脉冲的数量达到复位脉冲数量阈值。
例如,置位状态电导值为大于20μS的电导值,复位目标电导值为小于10μS的电导值,但是本公开的实施例对此不作限制。
例如,复位脉冲数量阈值为20,但是本公开的实施例对此不作限制。
例如,当被操作的模拟阻变存储器的电导值变为复位目标电导值时,可以获取已记录的所施加的复位脉冲的数量,以得到与该第m个写操作对应的第m个写操作脉冲数量,或者,已记录的所施加的复位脉冲的数量达到复位脉冲数量阈值,则此时已记录的所施加的复位脉冲的数量(即复位脉冲数量阈值)为与该第m个写操作对应的第m个写操作脉冲数量。
例如,图13图示了步骤S160的第m个写操作的流程图。如图13所示,在步骤S161处,将被操作的模拟阻变存储器的电导值初始化为置位状态电导值;在步骤S162处,对被操作的模拟阻变存储器施加复位脉冲;在步骤S163处,判断被操作的模拟阻变存储器的电导值是否减小至复位目标电导值,如果是,则结束该第m个写操作,如果否,则继续进行步骤S164;在步骤S164处,判断复位脉冲数量是否达到复位脉冲数量阈值,如果是,则结束该第m个写操作,如果否,则返回到步骤S162。
对于步骤S200,利用写操作脉冲数量的随机性来生成随机数可以具有不同的实现方式。例如,可以对写操作脉冲的数量进行运算处理,使得每个写操作对应生成2进制随机数的一位或多位。
例如,在本公开提供的随机数生成方法的一个示例中,步骤S200可以包括步骤S210。
步骤S210:由n个写操作对应的n个写操作脉冲数量得到n个中间数;根据n个中间数生成随机数。
在步骤S210中,例如,对于n个写操作中的第i个写操作,i为正整数,且1≤i≤n,n个中间数包括与第i个写操作对应的第i个中间数,n个写操作脉冲数量包括与第i个写操作对应的第i个写操作脉冲数量,在第i个写操作仅包括置位操作的情形,第i个写操作脉冲数量包括置位操作对应的置位脉冲数量,且由置位脉冲数量经过第一运算得到第i个中间数,或者,在第i个写操作仅包括复位操作的情形,第i个写操作脉冲数量包括复位操作对应的复位脉冲数量,且由复位脉冲数量经过第二运算得到第i个中间数,或者,在第i个写操作同时包括置位操作和复位操作的情形,第i个写操作脉冲数量包括置位操作对应的置位脉冲数量和复位操作对应的复位脉冲数量,由置位脉冲数量和复位脉冲数量经过第三运算得到运算结果,由运算结果经过第四运算得到第i个中间数。
例如,在本公开提供的随机数生成方法的一个示例中,第三运算包括求和运算,即将二者相加。置位脉冲数量和复位脉冲数量求和得到的运算结果具有随机性,因此可以基于该运算结果继续运算以得到具有随机性的中间数。需要说明的是,第三运算还可以是减法运算、乘法运算等其他运算方式,本公开的实施例对此不作限制。
例如,在本公开提供的随机数生成方法的一个示例中,第一运算、第二运算和第四运算包括模2L运算,L为正整数,由n个中间数生成随机数包括:将n个中间数分别作为一个n位的2L进制数的n个位数,由n位的2L进制数生成随机数。例如,在第一运算、第二运算和第四运算为模4运算时,n个写操作对应的n个写操作脉冲数量经过模4运算得到n个4进制的中间数,n个4进制的中间数分别作为一个n位的4进制数的n个位数,例如,可以将n位的4进制数转化为2*n位的2进制数从而生成2*n个2进制随机数。
例如,第一运算、第二运算和第四运算为模2运算,n个写操作对应的n个写操作脉冲数量经过模2运算得到n个2进制的中间数(即,写操作脉冲的数量的奇偶性,例如,写操作脉冲数量为奇数,则对该写操作脉冲数量进行模2运算后得到1;写操作脉冲数量为偶数,则对该写操作脉冲数量进行模2运算后得到0),可以直接将这n个2进制的中间数输出为2进制随机数的n个位。
图14为本公开至少一实施例提供的一种随机数生成器的示意框图。例如,如图14所示,随机数生成器300包括至少一个模拟阻变存储器310、写入电路320、计数器330和输出电路340。
该写入电路320,耦接到至少一个模拟阻变存储器310,配置为对至少一个模拟阻变存储器310执行n个写操作,n个写操作中的每个写操作包括施加至少一个写操作脉冲以改变被操作的模拟阻变存储器310的电导值。例如,该写入电路320可以结合计数器330实现步骤S100,其具体实现方法可以参考步骤S100的相关描述,在此不再赘述。
该计数器330,耦接到写入电路320,配置为对n个写操作对应的写操作脉冲进行计数,以得到与n个写操作对应的n个写操作脉冲数量。例如,该计数器330可以实现对步骤S100中的每个写操作对应的写操作脉冲的计数。
该输出电路340,耦接到计数器330,配置为由n个写操作脉冲数量生成随机数,n为正整数。例如,该输出电路340可以实现步骤S200,其具体实现方法可以参考步骤S200的相关描述,在此不再赘述。
图15为图14所示的随机数生成器的一个示例的示意框图。如图15所示,写入电路420包括脉冲产生电路421、比较器422和控制器423。例如,该写入电路420可以使用存储器芯片实现,因为存储器芯片中集成有脉冲产生电路、比较器和控制器。例如,模拟阻变存储器410也可以集成在存储器芯片上。
例如,在本公开至少一实施例提供的随机数生成器中,n个写操作中的第m个写操作包括置位操作,第m个写操作对应的至少一个写操作脉冲包括至少一个置位脉冲,m为正整数,且1≤m≤n,n个写操作脉冲数量包括与第m个写操作对应的第m个写操作脉冲数量,则该控制器423配置为控制脉冲产生电路421产生并施加至少一个置位脉冲至被操作的模拟阻变存储器410以使被操作的模拟阻变存储器410的电导值从置位起始电导值逐步增加至置位状态电导值和控制计数器430对至少一个置位脉冲进行计数以得到第m个置位脉冲数量,第m个写操作脉冲数量包括第m个置位脉冲数量;该比较器422配置为将被操作的模拟阻变存储器410的电导值与置位状态电导值阈值进行比较以得到置位比较结果;该控制器423还配置为在置位比较结果表示被操作的模拟阻变存储器410的电导值增加至置位状态电导值的情形控制计数器430将计数得到的第m个置位脉冲数量输出至输出电路440。
例如,置位状态电导值为大于20μS的电导值,则置位状态电导值阈值为20μS,但是本公开的实施例对此不作限制。例如,该写入电路420可以结合计数器430实现步骤S110,其具体实现方法可以参考步骤S110的相关描述,在此不再赘述。
例如,在本公开至少一实施例提供的随机数生成器中,n个写操作中的第m个写操作包括置位操作,第m个写操作对应的至少一个写操作脉冲包括至少一个置位脉冲,m为正整数,且1≤m≤n,n个写操作脉冲数量包括与第m个写操作对应的第m个写操作脉冲数量,则该控制器423配置为控制脉冲产生电路421产生并施加至少一个置位脉冲至被操作的模拟阻变存储器410以使被操作的模拟阻变存储器410的电导值从置位起始电导值逐步增加至置位状态电导值和控制计数器430对至少一个置位脉冲进行计数以得到第m个置位脉冲数量,第m个写操作脉冲数量包括第m个置位脉冲数量;该比较器422配置为将被操作的模拟阻变存储器410的电导值与置位状态电导值阈值进行比较以得到置位比较结果;该控制器423还配置为获取置位脉冲数量阈值,在置位比较结果表示被操作的模拟阻变存储器410的电导值增加至置位状态电导值或者第m个置位脉冲数量达到置位脉冲数量阈值的情形控制计数器430将计数得到的第m个置位脉冲数量输出至输出电路440。
例如,置位状态电导值为大于20μS的电导值,则置位状态电导值阈值为20μS,但是本公开的实施例对此不作限制。例如,该写入电路420可以结合计数器430实现步骤S120,其具体实现方法可以参考步骤S120的相关描述,在此不再赘述。
例如,在本公开至少一实施例提供的随机数生成器中,在第m个写操作包括置位操作的前提下,第m个写操作还包括复位操作,写操作脉冲还包括复位脉冲,则该控制器423配置为控制脉冲产生电路421产生并施加至少一个复位脉冲至被操作的模拟阻变存储器410以使被操作的模拟阻变存储器410的电导值从置位状态电导值逐步减小至复位目标电导值和控制计数器430对至少一个复位脉冲进行计数以得到第m个复位脉冲数量,第m个写操作脉冲数量还包括第m个复位脉冲数量;该比较器422配置为将被操作的模拟阻变存储器410的电导值与复位目标电导值阈值进行比较以得到复位比较结果;该控制器423还配置为在复位比较结果表示被操作的模拟阻变存储器410的电导值减小至复位目标电导值的情形控制计数器430将计数得到的第m个复位脉冲数量输出至输出电路440。
例如,复位目标电导值为小于10μS的电导值,则复位目标电导值阈值为10μS,但是本公开的实施例对此不作限制。例如,该写入电路420可以结合计数器430实现步骤S130,其具体实现方法可以参考步骤S130的相关描述,在此不再赘述。
例如,在本公开至少一实施例提供的随机数生成器中,在第m个写操作包括置位操作的前提下,第m个写操作还包括复位操作,写操作脉冲还包括复位脉冲,则该控制器423配置为控制脉冲产生电路421产生并施加至少一个复位脉冲至被操作的模拟阻变存储器410以使被操作的模拟阻变存储器410的电导值从置位状态电导值逐步减小至复位目标电导值和控制计数器430对至少一个复位脉冲进行计数以得到第m个复位脉冲数量,第m个写操作脉冲数量还包括第m个复位脉冲数量;该比较器422配置为将被操作的模拟阻变存储器410的电导值与复位目标电导值阈值进行比较以得到复位比较结果;该控制器423还配置为获取复位脉冲数量阈值,在复位比较结果表示被操作的模拟阻变存储器410的电导值减小至复位目标电导值或者第m个复位脉冲数量达到复位脉冲数量阈值的情形控制计数器430将计数得到的第m个复位脉冲数量输出至输出电路440。
例如,复位目标电导值为小于10μS的电导值,则复位目标电导值阈值为10μS,但是本公开的实施例对此不作限制。例如,该写入电路420可以结合计数器430实现步骤S140,其具体实现方法可以参考步骤S140的相关描述,在此不再赘述。
例如,在写入电路420结合计数器430实现步骤S130或S140的实现方式中,置位起始电导值和复位目标电导值可以相等。在这种情况下,在完成n个写操作中的一个写操作后,可以在同一个模拟阻变存储器上直接进行下一个写操作的施加置位脉冲步骤,从而省去下一个写操作中将被操作的模拟阻变存储器410的电导值初始化为置位起始电导值的步骤。
例如,在本公开至少一实施例提供的随机数生成器中,n个写操作中的第m个写操作包括复位操作,第m个写操作对应的至少一个写操作脉冲包括至少一个复位脉冲,m为正整数,且1≤m≤n,n个写操作脉冲数量包括与第m个写操作对应的第m个写操作脉冲数量,则该控制器423配置为控制脉冲产生电路421产生并施加至少一个复位脉冲至被操作的模拟阻变存储器410以使被操作的模拟阻变存储器410的电导值从置位状态电导值逐步减小至复位目标电导值和控制计数器430对至少一个复位脉冲进行计数以得到第m个复位脉冲数量,第m个写操作脉冲数量包括第m个复位脉冲数量;该比较器422配置为将被操作的模拟阻变存储器410的电导值与复位目标电导值阈值进行比较以得到复位比较结果;该控制器423还配置为在复位比较结果表示被操作的模拟阻变存储器410的电导值减小至复位目标电导值的情形控制计数器430将计数得到的第m个复位脉冲数量输出至输出电路440。
例如,复位目标电导值为小于10μS的电导值,则复位目标电导值阈值为10μS,但是本公开的实施例对此不作限制。例如,该写入电路420可以结合计数器430实现步骤S150,其具体实现方法可以参考步骤S150的相关描述,在此不再赘述。
例如,在本公开至少一实施例提供的随机数生成器中,n个写操作中的第m个写操作包括复位操作,第m个写操作对应的至少一个写操作脉冲包括至少一个复位脉冲,m为正整数,且1≤m≤n,n个写操作脉冲数量包括与第m个写操作对应的第m个写操作脉冲数量,则该控制器423配置为控制脉冲产生电路421产生并施加至少一个复位脉冲至被操作的模拟阻变存储器410以使被操作的模拟阻变存储器410的电导值从置位状态电导值逐步减小至复位目标电导值和控制计数器430对至少一个复位脉冲进行计数以得到第m个复位脉冲数量,第m个写操作脉冲数量包括第m个复位脉冲数量;该比较器422配置为将被操作的模拟阻变存储器410的电导值与复位目标电导值阈值进行比较以得到复位比较结果;该控制器423还配置为获取复位脉冲数量阈值,在复位比较结果表示被操作的模拟阻变存储器410的电导值减小至复位目标电导值或者第m个复位脉冲数量达到复位脉冲数量阈值的情形控制计数器430将计数得到的第m个复位脉冲数量输出至输出电路440。
例如,复位目标电导值为小于10μS的电导值,则复位目标电导值阈值为10μS,但是本公开的实施例对此不作限制。例如,该写入电路420可以结合计数器430实现步骤S160,其具体实现方法可以参考步骤S160的相关描述,在此不再赘述。
例如,在本公开至少一实施例提供的随机数生成器中,输出电路340配置为由n个写操作的写操作脉冲的数量得到n个中间数,由n个中间数生成随机数。例如,输出电路340可以包括计算电路和寄存器,该计算电路配置为对n个写操作的写操作脉冲的数量进行运算以得到n个中间数,该寄存器配置为寄存n个中间数以输出随机数。例如,该输出电路340可以实现步骤S210,其具体实现方法可以参考步骤S210的相关描述,在此不再赘述。
例如,在本公开至少一实施例提供的随机数生成器中,对于第i个写操作,i为正整数,且1≤i≤n,则该输出电路340可以包括计算电路,该计算电路配置为,在第i个写操作仅包括置位操作的情形,对置位操作的置位脉冲的数量进行第一运算得到第i个写操作对应的中间数,或者,在第i个写操作仅包括复位操作的情形,对复位操作的复位脉冲的数量进行第二运算得到第i个写操作对应的中间数,或者,在第i个写操作包括置位操作和复位操作的情形,对置位操作的置位脉冲的数量和复位操作的复位脉冲的数量进行第三运算得到运算结果,对运算结果进行第四运算得到第i个写操作对应的中间数。
例如,在本公开至少一实施例提供的随机数生成器中,该输出电路340可以包括加法器,该加法器配置为对置位操作的置位脉冲的数量和复位操作的复位脉冲的数量进行累加以实现第三运算。
例如,在本公开至少一实施例提供的随机数生成器中,该输出电路340包括计算电路和寄存器,该计算电路配置为包括模2L运算电路,进行模2L运算以实现第一运算、第二运算和第四运算,L为正整数,从而得到位宽为L的n个中间数,该寄存器配置为位宽L、深度n,寄存位宽为L的n个中间数,即将n个中间数分别作为一个n位的2L进制数的位数,然后逐位输出寄存器中所存储器的位宽为L的n个中间数,即由n位的2L进制数生成2进制的随机数。
例如,图16图示了一种随机数生成器的一个示例的示意框图。如图16所示,计数器包括1位计数器530(1bit计数器),输出电路包括n位的D触发器540,1位计数器530配置为对n个写操作对应的写操作脉冲进行模2计数,以得到与n个写操作对应的n个写操作脉冲数量,此时与n个写操作对应的n个写操作脉冲数量是经过模2运算的模2值,该模2值为0或1,即当所施加的写操作脉冲数量为偶数时,写操作脉冲数量对应0,当所施加的写操作脉冲数量为奇数时,写操作脉冲数量为1;n位的D触发器540配置为将n个写操作脉冲数量输出以作为随机数。在此示例中,1位计数器530计数得到的写操作脉冲数量为模2值,从而1位计数器可以在计数的同时得到1位2进制形式的中间数,省略了输出电路得到中间数的运算过程。需要说明的是,在写操作包括置位操作和复位操作的情形下,1位计数器可以在完成置位操作的置位脉冲计数后直接对复位操作的复位脉冲进行计数,从而实现上述置位操作的置位脉冲的数量和复位操作的复位脉冲的数量的模2加法运算或模2减法运算,因此,在写操作包括置位操作和复位操作的情形下1位计数器530也省略了输出电路得到中间数的运算过程。在这种情况下,输出电路可以简化地实现为n位的D触发器540,该n位的D触发器配置为直接将1位计数器得到的n个写操作脉冲数量输出为随机数的n个位。当然,在这种情况下,输出电路也可以简化地实现为1位的D触发器,该1位的D触发器配置为在n个写操作的每个写操作完成后均输出随机数的1位。
需要说明的是,为表示清楚、简洁,本公开实施例并没有给出该随机数生成器300、400和500的全部组成单元。为实现随机数生成器300、400和500的必要功能,本领域技术人员可以根据具体需要提供、设置其他未示出的组成单元,本公开的实施例对此不作限制。
关于不同实施例中的随机数生成器300或400的技术效果可以参考本公开的实施例中提供的随机数的生成方法的技术效果,这里不再赘述。
有以下几点需要说明:
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述仅是本公开的示范性实施方式,而非用于限制本公开的保护范围,本公开的保护范围由所附的权利要求确定。

Claims (25)

1.一种随机数的生成方法,包括:
对至少一个模拟阻变存储器执行n个写操作,其中,所述n个写操作中的每个写操作包括对被操作的模拟阻变存储器施加至少一个写操作脉冲,以对所述被操作的模拟阻变存储器的电导值进行目标的改变过程;
对所述n个写操作对应的写操作脉冲进行计数,以得到与所述n个写操作对应的n个写操作脉冲数量;
由所述n个写操作对应的n个写操作脉冲数量生成所述随机数,其中,n为正整数。
2.根据权利要求1所述的方法,其中,所述n个写操作中的第m个写操作包括置位操作,所述第m个写操作对应的至少一个写操作脉冲包括至少一个置位脉冲,m为正整数,且1≤m≤n,所述置位操作包括:
对所述被操作的模拟阻变存储器依次施加所述至少一个置位脉冲,直至将所述被操作的模拟阻变存储器的电导值从置位起始电导值逐步增加至置位状态电导值。
3.根据权利要求1所述的方法,其中,所述n个写操作中的第m个写操作包括置位操作,所述第m个写操作对应的至少一个写操作脉冲包括至少一个置位脉冲,m为正整数,且1≤m≤n,所述置位操作包括:
获取置位脉冲数量阈值;
对所述被操作的模拟阻变存储器依次施加所述至少一个置位脉冲,直至将所述被操作的模拟阻变存储器的电导值从置位起始电导值逐步增加至置位状态电导值或所述至少一个置位脉冲的数量达到所述置位脉冲数量阈值。
4.根据权利要求2或3所述的方法,其中,所述第m个写操作还包括复位操作,所述第m个写操作对应的至少一个写操作脉冲还包括至少一个复位脉冲,所述复位操作包括:
对所述被操作的模拟阻变存储器依次施加所述至少一个复位脉冲,直至将所述被操作的模拟阻变存储器的电导值从所述置位状态电导值逐步减小至复位目标电导值。
5.根据权利要求2或3所述的方法,其中,所述第m个写操作还包括复位操作,所述第m个写操作对应的至少一个写操作脉冲还包括至少一个复位脉冲,所述复位操作包括:
获取复位脉冲数量阈值;
对所述被操作的模拟阻变存储器依次施加所述至少一个复位脉冲,直至将所述被操作的模拟阻变存储器的电导值从所述置位状态电导值逐步减小至复位目标电导值或所述至少一个复位脉冲的数量达到所述复位脉冲数量阈值。
6.根据权利要求5所述的方法,其中,所述置位起始电导值和所述复位目标电导值相等。
7.根据权利要求1所述的方法,其中,所述n个写操作中的第m个写操作包括复位操作,所述第m个写操作对应的至少一个写操作脉冲包括至少一个复位脉冲,m为正整数,且1≤m≤n,所述复位操作包括:
对所述被操作的模拟阻变存储器依次施加所述至少一个复位脉冲,直至将所述被操作的模拟阻变存储器的电导值从置位状态电导值逐步减小至复位目标电导值。
8.根据权利要求1所述的方法,其中,所述n个写操作中的第m个写操作包括复位操作,所述第m个写操作对应的至少一个写操作脉冲包括至少一个复位脉冲,m为正整数,且1≤m≤n,所述复位操作包括:
获取复位脉冲数量阈值;
对所述被操作的模拟阻变存储器依次施加所述至少一个复位脉冲,直至将所述被操作的模拟阻变存储器的电导值从置位状态电导值逐步减小至复位目标电导值或所述至少一个复位脉冲的数量达到所述复位脉冲数量阈值。
9.根据权利要求1所述的方法,其中,由所述n个写操作对应的n个写操作脉冲数量生成所述随机数包括:
由所述n个写操作对应的n个写操作脉冲数量得到n个中间数;
根据所述n个中间数生成所述随机数。
10.根据权利要求9所述的方法,其中,对于所述n个写操作中的第i个写操作,i为正整数,且1≤i≤n,所述n个中间数包括与所述第i个写操作对应的第i个中间数,所述n个写操作脉冲数量包括与所述第i个写操作对应的第i个写操作脉冲数量,
在所述第i个写操作仅包括置位操作的情形,所述第i个写操作脉冲数量包括所述置位操作对应的置位脉冲数量,且由所述置位脉冲数量经过第一运算得到所述第i个中间数,或者,
在所述第i个写操作仅包括复位操作的情形,所述第i个写操作脉冲数量包括所述复位操作对应的复位脉冲数量,且由所述复位脉冲数量经过第二运算得到所述第i个中间数,或者,
在所述第i个写操作包括置位操作和复位操作的情形,所述第i个写操作脉冲数量包括所述置位操作对应的置位脉冲数量和所述复位操作对应的复位脉冲数量,由所述置位脉冲数量和所述复位脉冲数量经过第三运算得到运算结果,由所述运算结果经过第四运算得到所述第i个中间数。
11.根据权利要求10所述的方法,其中,所述第三运算包括求和运算。
12.根据权利要求10所述的方法,其中,所述第一运算、所述第二运算和所述第四运算包括模2L运算,其中,L为正整数,由所述n个中间数生成所述随机数包括:
将所述n个中间数分别作为一个n位的2L进制数的n个位数,由所述n位的2L进制数生成所述随机数。
13.一种随机数生成器,包括:
至少一个模拟阻变存储器;
写入电路,耦接到所述至少一个模拟阻变存储器,配置为对所述至少一个模拟阻变存储器执行n个写操作,其中,所述n个写操作中的每个写操作包括对被操作的模拟阻变存储器施加至少一个写操作脉冲,以对所述被操作的模拟阻变存储器的电导值进行目标的改变过程;
计数器,耦接到所述写入电路,配置为对所述n个写操作对应的写操作脉冲进行计数,以得到与所述n个写操作对应的n个写操作脉冲数量;
输出电路,耦接到所述计数器,配置为由所述n个写操作脉冲数量生成所述随机数,n为正整数。
14.根据权利要求13所述的随机数生成器,其中,所述写入电路包括脉冲产生电路、比较器和控制器,
其中,所述n个写操作中的第m个写操作包括置位操作,所述第m个写操作对应的至少一个写操作脉冲包括至少一个置位脉冲,m为正整数,且1≤m≤n,所述n个写操作脉冲数量包括与所述第m个写操作对应的第m个写操作脉冲数量,
所述控制器配置为控制所述脉冲产生电路产生并施加所述至少一个置位脉冲至所述被操作的模拟阻变存储器以使所述被操作的模拟阻变存储器的电导值从置位起始电导值逐步增加至置位状态电导值和控制所述计数器对所述至少一个置位脉冲进行计数以得到第m个置位脉冲数量,所述第m个写操作脉冲数量包括所述第m个置位脉冲数量;
所述比较器配置为将所述被操作的模拟阻变存储器的电导值与置位状态电导值阈值进行比较以得到置位比较结果;
所述控制器还配置为在所述置位比较结果表示所述被操作的模拟阻变存储器的电导值增加至所述置位状态电导值的情形控制所述计数器将计数得到的所述第m个置位脉冲数量输出至所述输出电路。
15.根据权利要求13所述的随机数生成器,其中,所述写入电路包括脉冲产生电路、比较器和控制器,其中,所述n个写操作中的第m个写操作包括置位操作,所述第m个写操作对应的至少一个写操作脉冲包括至少一个置位脉冲,m为正整数,且1≤m≤n,所述n个写操作脉冲数量包括与所述第m个写操作对应的第m个写操作脉冲数量,
所述控制器配置为控制所述脉冲产生电路产生并施加所述至少一个置位脉冲至所述被操作的模拟阻变存储器以使所述被操作的模拟阻变存储器的电导值从置位起始电导值逐步增加至置位状态电导值和控制所述计数器对所述至少一个置位脉冲进行计数以得到第m个置位脉冲数量,所述第m个写操作脉冲数量包括所述第m个置位脉冲数量;
所述比较器配置为将所述被操作的模拟阻变存储器的电导值与置位状态电导值阈值进行比较以得到置位比较结果;
所述控制器还配置为:获取置位脉冲数量阈值,在所述置位比较结果表示所述被操作的模拟阻变存储器的电导值增加至所述置位状态电导值或者所述所述第m个置位脉冲数量达到所述置位脉冲数量阈值的情形控制所述计数器将计数得到的所述第m个置位脉冲数量输出至所述输出电路。
16.根据权利要求14或15所述的随机数生成器,其中,所述第m个写操作还包括复位操作,所述写操作脉冲还包括复位脉冲,
所述控制器配置为控制所述脉冲产生电路产生并施加所述至少一个复位脉冲至所述被操作的模拟阻变存储器以使所述被操作的模拟阻变存储器的电导值从置位状态电导值逐步减小至复位目标电导值和控制所述计数器对所述至少一个复位脉冲进行计数以得到第m个复位脉冲数量,所述第m个写操作脉冲数量还包括所述第m个复位脉冲数量;
所述比较器配置为将所述被操作的模拟阻变存储器的电导值与复位目标电导值阈值进行比较以得到复位比较结果;
所述控制器还配置为在所述复位比较结果表示所述被操作的模拟阻变存储器的电导值减小至所述复位目标电导值的情形控制所述计数器将计数得到的所述第m个复位脉冲数量输出至所述输出电路。
17.根据权利要求14或15所述的随机数生成器,其中,所述第m个写操作还包括复位操作,所述写操作脉冲还包括复位脉冲,
所述控制器配置为控制所述脉冲产生电路产生并施加所述至少一个复位脉冲至所述被操作的模拟阻变存储器以使所述被操作的模拟阻变存储器的电导值从置位状态电导值逐步减小至复位目标电导值和控制所述计数器对所述至少一个复位脉冲进行计数以得到第m个复位脉冲数量,所述第m个写操作脉冲数量还包括所述第m个复位脉冲数量;
所述比较器配置为将所述被操作的模拟阻变存储器的电导值与复位目标电导值阈值进行比较以得到复位比较结果;
所述控制器还配置为:获取复位脉冲数量阈值,在所述复位比较结果表示所述被操作的模拟阻变存储器的电导值减小至所述复位目标电导值或者所述第m个复位脉冲数量达到所述复位脉冲数量阈值的情形控制所述计数器将计数得到的所述第m个复位脉冲数量输出至所述输出电路。
18.根据权利要求17所述的随机数生成器,其中,所述置位起始电导值和所述复位目标电导值相等。
19.根据权利要求13所述的随机数生成器,其中,所述写入电路包括脉冲产生电路、比较器和控制器,其中,所述n个写操作中的第m个写操作包括复位操作,所述第m个写操作对应的至少一个写操作脉冲包括至少一个复位脉冲,m为正整数,且1≤m≤n,所述n个写操作脉冲数量包括与所述第m个写操作对应的第m个写操作脉冲数量,
所述控制器配置为控制所述脉冲产生电路产生并施加所述至少一个复位脉冲至所述被操作的模拟阻变存储器以使所述被操作的模拟阻变存储器的电导值从置位状态电导值逐步减小至复位目标电导值和控制所述计数器对所述至少一个复位脉冲进行计数以得到第m个复位脉冲数量,所述第m个写操作脉冲数量包括所述第m个复位脉冲数量;
所述比较器配置为将所述被操作的模拟阻变存储器的电导值与复位目标电导值阈值进行比较以得到复位比较结果;
所述控制器还配置为在所述复位比较结果表示所述被操作的模拟阻变存储器的电导值减小至所述复位目标电导值的情形控制所述计数器将计数得到的所述第m个复位脉冲数量输出至所述输出电路。
20.根据权利要求13所述的随机数生成器,其中,所述写入电路包括脉冲产生电路、比较器和控制器,其中,所述n个写操作中的第m个写操作包括复位操作,所述第m个写操作对应的至少一个写操作脉冲包括至少一个复位脉冲,m为正整数,且1≤m≤n,所述n个写操作脉冲数量包括与所述第m个写操作对应的第m个写操作脉冲数量,
所述控制器配置为控制所述脉冲产生电路产生并施加所述至少一个复位脉冲至所述被操作的模拟阻变存储器以使所述被操作的模拟阻变存储器的电导值从置位状态电导值逐步减小至复位目标电导值和控制所述计数器对所述至少一个复位脉冲进行计数以得到所述第m个复位脉冲数量,所述第m个写操作脉冲数量包括所述第m个复位脉冲数量;
所述比较器配置为将所述被操作的模拟阻变存储器的电导值与复位目标电导值阈值进行比较以得到复位比较结果;
所述控制器还配置为:获取复位脉冲数量阈值,在所述复位比较结果表示所述被操作的模拟阻变存储器的电导值减小至所述复位目标电导值或者所述第m个复位脉冲数量达到所述复位脉冲数量阈值的情形控制所述计数器将计数得到的所述第m个复位脉冲数量输出至所述输出电路。
21.根据权利要求13所述的随机数生成器,其中,所述输出电路配置为由所述n个写操作的写操作脉冲的数量得到n个中间数,由所述n个中间数生成所述随机数。
22.根据权利要求21所述的随机数生成器,其中,对于第i个写操作,i为正整数,且1≤i≤n,所述输出电路配置为,
在所述第i个写操作仅包括置位操作的情形,对所述置位操作的置位脉冲的数量进行第一运算得到所述第i个写操作对应的中间数,或者,
在所述第i个写操作仅包括复位操作的情形,对所述复位操作的复位脉冲的数量进行第二运算得到所述第i个写操作对应的中间数,或者,
在所述第i个写操作包括置位操作和复位操作的情形,对所述置位操作的置位脉冲的数量和所述复位操作的复位脉冲的数量进行第三运算得到运算结果,对所述运算结果进行第四运算得到所述第i个写操作对应的中间数。
23.根据权利要求22所述的随机数生成器,其中,所述输出电路配置为对所述置位操作的置位脉冲的数量和所述复位操作的复位脉冲的数量进行累加以实现所述第三运算。
24.根据权利要求22所述的随机数生成器,其中,所述输出电路配置为进行模2L运算以实现所述第一运算、所述第二运算和所述第四运算,L为正整数,并且将所述n个中间数分别作为一个n位的2L进制数的位数,由所述n位的2L进制数生成所述随机数。
25.根据权利要求13所述的随机数生成器,其中,所述计数器包括1位计数器,所述输出电路包括n位的D触发器,
所述1位计数器配置为对所述n个写操作对应的写操作脉冲进行模2计数,以得到与所述n个写操作对应的所述n个写操作脉冲数量;
所述n位的D触发器配置为将所述n个写操作脉冲数量输出以作为所述随机数。
CN201911233504.7A 2019-12-05 2019-12-05 随机数的生成方法及随机数生成器 Active CN110989972B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201911233504.7A CN110989972B (zh) 2019-12-05 2019-12-05 随机数的生成方法及随机数生成器
US17/779,834 US20230004357A1 (en) 2019-12-05 2020-11-13 Random number generating method and random number generator
PCT/CN2020/128565 WO2021109834A1 (zh) 2019-12-05 2020-11-13 随机数的生成方法及随机数生成器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911233504.7A CN110989972B (zh) 2019-12-05 2019-12-05 随机数的生成方法及随机数生成器

Publications (2)

Publication Number Publication Date
CN110989972A CN110989972A (zh) 2020-04-10
CN110989972B true CN110989972B (zh) 2021-11-30

Family

ID=70090356

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911233504.7A Active CN110989972B (zh) 2019-12-05 2019-12-05 随机数的生成方法及随机数生成器

Country Status (3)

Country Link
US (1) US20230004357A1 (zh)
CN (1) CN110989972B (zh)
WO (1) WO2021109834A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110989972B (zh) * 2019-12-05 2021-11-30 清华大学 随机数的生成方法及随机数生成器
CN111562901B (zh) * 2020-04-30 2023-09-22 清华大学 随机数生成器和随机数的生成方法
CN112165384B (zh) * 2020-10-15 2022-04-01 清华大学 数据加密方法和解密方法及数据加密装置和解密装置
CN112379859B (zh) * 2020-11-13 2023-08-18 北京灵汐科技有限公司 二值采样的处理方法及装置、对抗样本的生成方法及装置
CN112379858B (zh) * 2020-11-13 2024-01-26 北京灵汐科技有限公司 随机数的产生方法及装置、电子设备和可读存储介质
CN114461178A (zh) * 2022-02-15 2022-05-10 清华大学 随机数生成器、电子装置和操作方法
CN116126288B (zh) * 2023-01-04 2023-12-01 北京大学 一种基于阻变存储器的随机数发生电路及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104298620A (zh) * 2014-10-10 2015-01-21 张维加 一种耐擦写低能耗的外接计算机加速设备
CN104318956A (zh) * 2014-09-30 2015-01-28 山东华芯半导体有限公司 一种阻变随机存储器存储阵列编程方法及装置
CN109359486A (zh) * 2018-10-24 2019-02-19 华中科技大学 一种加密与解密系统及其操作方法
CN110413257A (zh) * 2019-07-30 2019-11-05 北京智芯微电子科技有限公司 随机数产生电路

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105761753A (zh) * 2016-02-02 2016-07-13 清华大学 数据加扰解扰器、存储装置及加扰解扰方法
JP6794297B2 (ja) * 2016-05-25 2020-12-02 ヌヴォトンテクノロジージャパン株式会社 認証装置および認証方法
US10466969B2 (en) * 2017-05-08 2019-11-05 Arizona Board Of Regents On Behalf Of Arizona State University Tunable true random number generator using programmable metallization cell(s)
CN110989972B (zh) * 2019-12-05 2021-11-30 清华大学 随机数的生成方法及随机数生成器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104318956A (zh) * 2014-09-30 2015-01-28 山东华芯半导体有限公司 一种阻变随机存储器存储阵列编程方法及装置
CN104298620A (zh) * 2014-10-10 2015-01-21 张维加 一种耐擦写低能耗的外接计算机加速设备
CN109359486A (zh) * 2018-10-24 2019-02-19 华中科技大学 一种加密与解密系统及其操作方法
CN110413257A (zh) * 2019-07-30 2019-11-05 北京智芯微电子科技有限公司 随机数产生电路

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于FPGA的核脉冲信号发生器设计;张贵宇;《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》;20131215(第S2期);C042-1705 *

Also Published As

Publication number Publication date
WO2021109834A1 (zh) 2021-06-10
US20230004357A1 (en) 2023-01-05
CN110989972A (zh) 2020-04-10

Similar Documents

Publication Publication Date Title
CN110989972B (zh) 随机数的生成方法及随机数生成器
CN109994139B (zh) 一种基于单极性忆阻器的完备非易失逻辑实现方法及其应用
US3706941A (en) Random number generator
US10466969B2 (en) Tunable true random number generator using programmable metallization cell(s)
CN111562901B (zh) 随机数生成器和随机数的生成方法
Liu et al. A combined optimization-theoretic and side-channel approach for attacking strong physical unclonable functions
Xiang et al. Efficient and robust spike-driven deep convolutional neural networks based on NOR flash computing array
US10996929B2 (en) High quality down-sampling for deterministic bit-stream computing
CN114912154B (zh) 一种基于非易失存储器的加密存算一体的实现方法
Ting et al. Eliminating a hidden error source in stochastic circuits
CN109375897B (zh) 伪随机序列的生成方法
Sahay et al. OxRAM RNG circuits exploiting multiple undesirable nanoscale phenomena
Lee et al. A 354F 2 leakage-based physically unclonable function with lossless stabilization through remapping for low-cost IoT security
Tseng et al. ReRAM-based pseudo-true random number generator With high throughput and unpredictability characteristics
Akbari et al. True random number generator based on the variability of the high resistance state of RRAMs
US20230090726A1 (en) Apparatus and method for hardware-based random number and sequence of numbers generation
Zink et al. A stochastic computing scheme of embedding random bit generation and processing in computational random access memory (SC-CRAM)
Goda et al. A Stochastic Leaky-Integrate-and-Fire Neuron Model With Floating Gate-Based Technology for Fast and Accurate Population Coding
CN116382636A (zh) 产生相关性随机比特流的方法及系统
Meier et al. Energy-consumption advantage of quantum computation
Winstead Tutorial on stochastic computing
Baker et al. Impact of autocorrelation on stochastic circuit accuracy
Carboni et al. Applications of resistive switching memory as hardware security primitive
Gong et al. Design for test and hardware security utilizing retention loss of memristors
CN112002365B (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