一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种针对DRAM/NVM混合内存的无内存泄漏编程方法与流程

2021-10-24 11:44:00 来源:中国专利 TAG:内存 泄漏 混合 语言 在这种

技术特征:
1.一种针对dram/nvm混合内存的无内存泄漏编程方法,对现有编程语言进行扩展,包括设计新的原语、句法、类型以及求值方法,使用该扩展设计后的编程语言来编写程序,只要不抛出错误,即能够避免dram和nvm中的内存泄漏;所述无内存泄漏编程方法包括:a.针对dram中的内存泄漏,处理方法如下:a1.每个被分配的内存区域有且只有一个变量作为该内存区域的owner;a2.为函数传递参数时,如果函数实参是某块内存区域的owner,传参的时候暂时将该内存区域的owner改成形参,等函数执行完毕后再把该内存区域的owner改成实参;a3.当一个变量离开作用域时,如果该变量不是在函数传递参数时暂时作为某块内存区域的owner的形参,,就将该内存区域释放掉;a4.如果和一个内存区域绑定的唯一变量被赋予了新值,则将该内存区域释放掉;b.针对nvm中的内存泄漏,采用方法如下:b1.在程序访问存储空间时,将dram和nvm的地址空间加以区分;b2.增加一条分配nvm区域的指令和一条释放nvm区域的指令;b3.保证只有全局变量可以被持久化;b4.如果和一个nvm内存区域绑定的唯一变量被赋予了新值,则将该内存区域释放掉;c.针对dram/nvm混合架构的新问题采用的方法,包括:c1.禁止dram区域的内容指向nvm区域;如果dram区域的内容指向nvm区域,则当dram区域的内容断电消失后,nvm区域的内容就可能泄漏;c2.禁止nvm区域的内容指向dram区域;如果nvm区域的内容指向dram区域,则当dram区域的内容断电消失后,nvm区域的内容可能就没有意义。2.如权利要求1所述针对dram/nvm混合内存的无内存泄漏编程方法,其特征是,a1中,如果声明一个新的变量指向某内存区域,则之前指向该内存区域的变量被移除,以后只能使用新的变量对该内存区域进行访问。3.如权利要求1所述针对dram/nvm混合内存的无内存泄漏编程方法,其特征是,a2中,具体实现方式采用一种新的引用操作,所述新的引用操作并不将形参加入context,也不会将实参移出context。4.如权利要求1所述针对dram/nvm混合内存的无内存泄漏编程方法,其特征是,所述现有编程语言具体采用lambda。5.如权利要求1所述针对dram/nvm混合内存的无内存泄漏编程方法,其特征是,绑定语句采用如下形式:b::=x=t|x=x;其中,“::=”前的符号是非终结符,后续以“|”符号分隔的是该终结符对应的各种分解方法;x为变量,t为项。6.如权利要求1所述针对dram/nvm混合内存的无内存泄漏编程方法,其特征是,求值方法是在计算过程中,地址绑定集合μ的动态变化;包括:将函数应用操作t1t2内对函数t1的求值,表示为:其中,横线上方表示对t1求值结果为t
′1,前后对应的地址绑定集合由μ变化为μ

;横线下方表示,假设对t1t2这个表达式的函数项t1求值,结果为t
′1,在横线上方的约束情况下,
地址绑定集合也由μ变化为μ

。7.如权利要求6所述针对dram/nvm混合内存的无内存泄漏编程方法,其特征是,求值方法还包括:将v2代入函数λx:t
11
.t
12
的表达式t
12
,用v2替换所有占位符x,该过程前后μ不变;表示为:8.如权利要求6所述针对dram/nvm混合内存的无内存泄漏编程方法,其特征是,求值方法还包括:引用操作ref t1内对t1的求值,表示为:9.如权利要求6所述针对dram/nvm混合内存的无内存泄漏编程方法,其特征是,求值方法还包括,将μ中所有l占位符替换为v2的赋值操作表示为:

技术总结
本发明公布了一种针对DRAM/NVM混合内存的无内存泄漏编程方法,对现有编程语言进行扩展,设计新的原语、句法、类型以及求值方法等,本发明的编程方法使用该扩展后的编程语言设计来编写程序,只要不抛出错误,即能够避免DRAM和NVM中的内存泄漏。DRAM和NVM中的内存泄漏。DRAM和NVM中的内存泄漏。


技术研发人员:孙广宇 李星辰
受保护的技术使用者:北京大学
技术研发日:2021.07.29
技术公布日:2021/10/23
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜