CN105808462B - 基于fpga实现的仿真内存、仿真内存的实现方法及计算机 - Google Patents

基于fpga实现的仿真内存、仿真内存的实现方法及计算机 Download PDF

Info

Publication number
CN105808462B
CN105808462B CN201410852810.XA CN201410852810A CN105808462B CN 105808462 B CN105808462 B CN 105808462B CN 201410852810 A CN201410852810 A CN 201410852810A CN 105808462 B CN105808462 B CN 105808462B
Authority
CN
China
Prior art keywords
memory
fpga
simulation
function
computer
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
CN201410852810.XA
Other languages
English (en)
Other versions
CN105808462A (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.)
Guangdong Industrial Edge Intelligent Innovation Center Co ltd
Original Assignee
SHENZHEN EVOC SPECIAL COMPUTER SOFTWARE Co Ltd
EVOC Intelligent Technology Co Ltd
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 SHENZHEN EVOC SPECIAL COMPUTER SOFTWARE Co Ltd, EVOC Intelligent Technology Co Ltd filed Critical SHENZHEN EVOC SPECIAL COMPUTER SOFTWARE Co Ltd
Priority to CN201410852810.XA priority Critical patent/CN105808462B/zh
Publication of CN105808462A publication Critical patent/CN105808462A/zh
Application granted granted Critical
Publication of CN105808462B publication Critical patent/CN105808462B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种基于FPGA实现的仿真内存、仿真内存的实现方法及计算机。所述仿真内存基于FPGA中起数据通信功能的第一硬件部分、起数据存储功能的第二硬件部分、起控制功能的第三硬件部分实现。其中,第一硬件部分作为所述仿真内存的通信模块用于模拟实现真实内存的数据通道部分的功能;第二硬件部分中划定的一块存储区域作为所述仿真内存的存储模块,用于模拟实现真实内存的存储区域部分的功能;第三硬件部分作为所述仿真内存的内存控制模块用于模拟实现真实内存的内存控制器部分的功能。FPGA插入计算机主板内存接口时,所述通信模块、所述存储模块及所述内存控制模块共同构成所述仿真内存,依照内存工作原理协同工作从而模拟实现真实内存的所有功能。

Description

基于FPGA实现的仿真内存、仿真内存的实现方法及计算机
技术领域
本发明涉及内存技术领域,更具体地说,涉及一种基于FPGA实现的仿真内存、仿真内存的实现方法及计算机。
背景技术
传统计算机主要采用的是处理器、北桥、内存、南桥和硬盘的组合架构模式。内存具有数据读写速度快的特点,可满足用户对于高速率的数据读写要求,硬盘具有存储空间大,存储空间配置灵活的特点,可满足用户对于大容量数据的存储要求。由于硬盘的存储容量大且价格适中,市面上的主流硬盘均采用的是机械结构,其硬盘转速通常维持于5400rpm或7200rpm,且难以进一步提高。随着内存生产工艺及技术的发展,机械硬盘的数据存取效率已严重滞后于内存,内存在读写硬盘中的数据时,使得计算机主板内存接口的高速特性难以发挥,数据存取效率低下的机械硬盘逐渐成为制约计算机处理性能发展的瓶颈。因此迫切需要提出一种使硬盘的数据存取效率与内存的高速特性相匹配的方法。
发明内容
本发明要解决的技术问题在于,针对现有技术中硬盘的数据存取效率与内存的高速特性不匹配的缺陷,提供一种基于FPGA实现的仿真内存、仿真内存的实现方法及计算机。
本发明解决其技术问题所采用的技术方案是:构造一种基于FPGA实现的仿真内存,所述仿真内存基于FPGA中起到数据通信功能的第一硬件部分、起到数据存储功能的第二硬件部分、以及起到控制功能的第三硬件部分实现;其中
FPGA中起到数据通信功能的第一硬件部分作为所述仿真内存的通信模块,用于模拟实现真实内存的数据通道部分的功能;
FPGA中起到数据存储功能的第二硬件部分中划定的一块存储区域作为所述仿真内存的存储模块,用于模拟实现真实内存的存储区域部分的功能;
FPGA中起到控制功能的第三硬件部分作为所述仿真内存的内存控制模块,用于模拟实现真实内存的内存控制器部分的功能;
在FPGA插入计算机主板内存接口时,所述通信模块、所述存储模块及所述内存控制模块共同构成所述仿真内存,依照内存工作原理协同工作从而模拟实现真实内存的所有功能。
在本发明上述基于FPGA实现的仿真内存中,所述存储模块包括内存单元以及外接于FPGA的闪存单元;所述闪存单元预存操作系统数据,所述内存单元用于计算机上电开机时载入所述闪存单元中的操作系统数据,以及暂存计算机工作过程中仿真内存与北桥芯片及CPU之间的交换数据;
所述通信模块电连接于计算机主板的内存接口,用于通过该内存接口与计算机CPU进行通信;
所述内存控制模块电连接于所述通信模块、所述存储模块之间,用于计算机开机上电时接收计算机CPU经内存接口输入的初始化内存操作指令,对存储模块中的内存单元进行初始化,以及在将仿真内存初始化操作执行完毕之后接收计算机CPU经内存接口输入的内存读写命令,根据内存读写命令对所述存储模块中的内存单元执行相应的数据存取操作。
在本发明上述基于FPGA实现的仿真内存中,所述仿真内存还包括:
外接于FPGA的备用电源,用于计算机主电源断电时为仿真内存供电;
电源管理模块,电连接于所述内存控制模块、计算机主电源及备用电源,用于对计算机主电源进行断电监测,根据主电源断电监测结果对备用电源的启动及充放电操作进行相应控制。
在本发明上述基于FPGA实现的仿真内存中,所述内存控制模块还用于判断计算机由主电源供电模式切换至备用电源供电模式时,接收FPGA发出的数据断电保护指令,执行将内存单元中当前存储的所有数据拷贝、搬移及暂存于闪存单元的数据断电保护操作;
所述内存控制模块还用于判断计算机由备用电源供电模式恢复至主电源供电模式时,接收计算机CPU发出的系统恢复命令,将暂存于闪存单元的所有拷贝数据重新写入内存单元,以将计算机系统瞬时恢复到主电源异常断电之前的系统运行状态。
在本发明上述基于FPGA实现的仿真内存中,所述内存控制模块还用于将数据断电保护操作执行完毕时,接收FPGA发出的拷贝数据完整性检测指令,对暂存于闪存单元的拷贝数据的完整性进行检测,生成拷贝数据完整性检测结果,并将拷贝数据完整性检测结果返回FPGA。
在本发明上述基于FPGA实现的仿真内存中,所述内存控制模块将暂存于闪存单元的拷贝数据与内存单元中的原始数据进行逐字节地比对,根据字节比对结果生成拷贝数据完整性检测结果。
本发明还构造一种仿真内存的实现方法,包括如下步骤:
将FPGA中起到数据通信功能的第一硬件部分作为预实现的仿真内存的通信模块,用于模拟实现真实内存的数据通道部分的功能;
从FPGA中起到数据存储功能的第二硬件部分中划定一块存储区域作为预实现的仿真内存的存储模块,用于模拟实现真实内存的存储区域部分的功能;
将FPGA中起到控制功能的第三硬件部分作为预实现的仿真内存的内存控制模块,用于模拟实现真实内存的内存控制器部分的功能;
在FPGA插入计算机主板的内存接口时,所述通信模块、所述存储模块及所述内存控制模块共同构成仿真内存,并依照内存的工作原理协同工作,从而模拟实现真实内存的所有功能。
在本发明上述仿真内存的实现方法中,在FPGA插入计算机主板的内存接口时,所述通信模块、所述存储模块及所述内存控制模块共同构成仿真内存的步骤以及所述通信模块、所述存储模块及所述内存控制模块依照内存的工作原理协同工作,并通过北桥芯片与计算机CPU进行通信,从而实现真实内存的所有功能的步骤包括如下步骤:
所述内存控制模块接收由计算机CPU发出的内存初始化命令,对仿真内存执行初始化操作,所述内存控制模块对仿真内存执行初始化操作的步骤具体包括:
内存控制模块接收到仿真内存初始化命令时,对FPGA的第一管脚、第二管脚、第三管脚及第四管脚的电平组合进行检测,依次得到第一电平组合、第二电平组合、第三电平组合及第四电平组合,依照预先建立的电平组合及指令映射表依次执行与第一电平组合对应的空操作、与第二电平组合对应的预充电操作、与第三电平组合对应的两次刷新操作、以及与第四电平组合对应的设置模式寄存器操作,从而完成仿真内存的初始化操作。
在本发明上述仿真内存的实现方法中,在所述内存控制模块接收到仿真内存初始化命令时,对FPGA的第一管脚、第二管脚、第三管脚及第四管脚的电平组合进行检测,依次得到第一电平组合、第二电平组合、第三电平组合及第四电平组合,依照电平组合指令映射表依次执行与第一电平组合对应的空操作、与第二电平组合对应的预充电操作、与第三电平组合对应的两次刷新操作、以及与第四电平组合对应的设置模式寄存器操作,从而完成仿真内存的初始化操作的步骤之前还包括如下步骤:
指定FPGA中用于模拟实现真实内存CS管脚功能的第一管脚、用于模拟实现真实内存RAS管脚功能的第二管脚、用于模拟实现真实内存CAS管脚功能的第三管脚、用于模拟实现真实内存WE管脚功能的第四管脚;
建立FPGA的第一管脚至第四管脚所形成的第一电平组合与空操作指令之间的映射关系;
建立FPGA的第一管脚至第四管脚所形成的第二电平组合与预充电操作指令之间的映射关系;
建立FPGA的第一管脚至第四管脚所述形成的第三电平组合与刷新操作指令之间的映射关系;
以及建立FPGA的第一管脚至第四管脚所形成的第四电平组合与设置模式寄存器操作指令之间的映射关系;
根据第一电平组合至第四电平组合与各条内存控制指令之间的映射关系构建电平组合及指令映射表。
本发明还构造一种计算机,包括主板、集成于主板的北桥芯片、CPU及内存接口,还包括插入内存接口的仿真内存,所述仿真内存基于FPGA的具有数据通信功能的第一硬件部分、具有数据存储功能的第二硬件部分、以及具有控制功能的第三硬件部分实现;其中
FPGA中起到数据通信功能的第一硬件部分作为仿真内存的通信模块,用于模拟实现真实内存的数据通道部分的功能;
FPGA中起到数据存储功能的第二硬件部分中划定的一块与计算机操作系统所需内存大小相等的存储区域作为仿真内存的存储模块,用于模拟实现真实内存的存储区域部分的功能;
FPGA中起到控制功能的第三硬件部分作为仿真内存的内存控制模块,用于模拟实现真实内存的内存控制器部分的功能;
在FPGA插入主板的内存接口时,所述通信模块、所述存储模块及所述内存控制模块共同构成所述仿真内存,并依照内存的工作原理协同工作从而模拟实现真实内存的所有功能。
实施本发明基于FPGA实现的仿真内存、仿真内存的实现方法及计算机,可达到以下有益效果:
1、在本发明中,用户可将FPGA芯片(FPGA芯片外接具有高数据存取效率的闪存,该闪存预存操作系统数据)插入计算机主板的内存插槽,FPGA的三个硬件部分(可以是FPGA中分别起到数据交换功能的可编程输入输出单元,起到存储功能的嵌入式RAM、以及起到控制功能的内嵌的CPU)共同构成仿真内存从而模拟实现真实内存的所有功能。由于内存单元与闪存单元均集成于仿真内存,两者之间的传输距离较短,本发明计算机开机启动时,仿真内存可通过内存控制模块将预存于闪存单元的操作系统数据载入内存单元,内存的数据载入速率得到极大提高。因此,本发明克服了传统计算机架构中机械硬盘与内存在数据读写速率上不匹配的技术缺陷,极大地提高了计算机的开机速度及整体的数据处理效率。
2、本发明的计算机具有数据断电保护功能及系统瞬时恢复功能。本发明插入计算机主板内存插槽的FPGA外接备用电源,基于FPGA实现的仿真内存包括电源管理模块,用于对计算机主电源进行断电监测并根据主电源断电监测结果对备用电源的启动及充放电进行控制。当计算机主电源出现断电故障时,计算机将自动切换到备用电源供电模式,通过备用电源为仿真内存供电,仿真内存可保持不掉电状态,在备用电源供电模式下,仿真内存通过内存控制模块将内存单元中存储的所有数据拷贝、搬移及暂存于闪存的指定存储区域之后,计算机进入睡眠模式。待计算机主电源故障得到解除并重新恢复至主电源供电模式时,仿真内存接收计算机CPU发出的系统恢复指令,通过内存控制模块将搬移至闪存的所有拷贝数据重新载入内存单元,从而将计算机瞬时恢复到主电源出现故障前的系统运行状态。
3、本发明计算机设有断电保护数据防出错机制,可杜绝系统恢复故障。在本发明断电保护数据拷贝操作完成时,内存控制模块接收FPGA发出的拷贝数据完整性检测指令,将搬移至闪存单元的拷贝数据与内存单元的原始保护数据进行逐字节地比较,确保拷贝数据为完整的原始保护数据,避免了计算机恢复过程中产生的错误,杜绝了系统恢复故障。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明第一个较佳实施例提供的基于FPGA实现的仿真内存的结构框图;
图2是本发明第二个较佳实施例提供的包含图1所述的基于FPGA实现的仿真内存的计算机的结构框图;
图3是本发明第三个较佳实施例提供的仿真内存的实现方法的流程图;
图4是本发明第四个较佳实施例提供的基于FPGA实现的仿真内存的初始化操作流程图;
图5是本发明的电平组合及指令映射表的示意图;
图6是本发明第五个较佳实施例提供的计算机数据断电保护及系统恢复的流程图。
具体实施方式
为了使本发明的目的更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
下面将以本发明的第一个较佳实施方式为例,对本发明基于FGPA(Field-Programmable Gate Array,即现场可编程门阵列)实现的仿真内存100的独特的内部结构进行说明:
如图1所示,本发明基于FPGA实现的仿真内存100由FPGA的具有数据通信功能的第一硬件部分(该第一硬件部分可以是FPGA的可编程输入输出单元)、具有数据存储功能的第二硬件部分(该第二硬件部分可以是FPGA的嵌入式RAM)、以及具有控制功能的第三硬件部分(该第三硬件部分可以是FPGA内嵌的CPU)共同构成;其中
FPGA的具有数据通信功能的第一硬件部分作为所述仿真内存100的通信模块101,用于模拟实现真实内存的数据通道部分的功能;
FPGA的具有数据存储功能的第二硬件部分中划定的一块存储区域作为所述仿真内存100的存储模块103,用于模拟实现真实内存的存储区域部分的功能;
FPGA的具有控制功能的第三硬件部分作为所述仿真内存100的内存控制模块102,用于模拟实现真实内存的内存控制器部分的功能。
该存储模块103包括内存单元1031以及外接到FPGA的闪存单元1032。该闪存单元1032预存操作系统数据。该内存单元1031用于计算机上电开机时读取该闪存单元1032中的操作系统数据,以及暂存计算机工作过程中仿真内存100与北桥芯片及CPU之间的交换数据。
结合图2所示,该通信模块101电连接于计算机主板300北桥芯片400的内存接口200,用于通过该内存接口200与计算机CPU500进行通信。
该内存控制模块102电连接于该通信模块101及该存储模块103之间,用于计算机开机上电时接收计算机CPU500经主板300内存接口200输入的初始化内存操作指令,对该存储模块103中的内存单元1031进行初始化操作,以及在仿真内存100初始化之后接收计算机CPU500经主板300内存接口200输入的读写命令,根据读写命令对该存储模块103中的内存单元1031进行相应的数据存取操作。
本发明仿真内存100还包括外接于FPGA的备用电源700以及连接内存控制模块102的电源管理模块104。
该备用电源700用于计算机主电源600断电时为计算机供电。
该电源管理模块104用于对计算机主电源600进行断电监测,根据主电源断电监测结果对备用电源700的启动及充放电操作进行相应控制。
该内存控制模块102还用于判断计算机由主电源供电模式切换至备用电源供电模式时,接收FPGA发出的断电保护指令,执行将内存单元1031中当前存储的所有数据拷贝、搬移及暂存于闪存单元1032的数据断电保护操作。
该内存控制模块102还用于判断计算机由备用电源供电模式恢复至主电源供电模式时,接收计算机CPU500发出的系统恢复命令,指令内存单元1031读取暂存于闪存的所有拷贝数据,以将计算机系统恢复至主电源600异常断电之前的系统运行状态。
该内存控制模块102还用于数据断电保护操作执行完毕时,接收FPGA发出的拷贝数据完整性检测指令,对暂存于闪存单元1032的拷贝数据的完整性进行检测,生成拷贝数据完整性检测结果,并将拷贝数据完整性检测结果返回FPGA。
该内存控制模块102执行的拷贝数据完整性检测过程如下:该内存控制模块102将暂存于闪存单元1032的拷贝数据与内存单元1031中的原始保护数据进行逐字节地比对,根据字节比对结果生成拷贝数据完整性检测结果,将包含字节比对信息的拷贝数据完整性检测结果返回计算机CPU500。如计算机CPU500收到字节比对信息不一致的拷贝数据完整性检测结果,则重新向内存控制模块102发送数据断电保护指令,以控制内存控制模块102重新执行将内存单元1031中的所有数据拷贝、搬移及暂存于闪存单元1032的数据断电保护操作,以确保闪存单元1032的拷贝数据的完整性。
本发明基于FPGA实现的仿真内存100的工作原理在于:当用户将FPGA插入计算机主板300的内存接口200时,通信模块101、存储模块103及内存控制模块102共同构成仿真内存100,并依照内存的工作原理协同工作从而模拟实现真实内存的所有功能。
下面将以本发明的第二个较佳实施方式为例,对本发明包含第一实施例所述仿真内存100的计算机的架构进行说明:
如图2所示,本发明计算机包括主电源600、主板300、集成于主板300的内存接口200、北桥芯片400及CPU500、插入内存接口200的FPGA、以及外接于FPGA的备用电源700。该FPGA的具有数据通信功能的第一硬件部分(该第一硬件部分可以是FPGA的可编程输入输出单元)、具有数据存储功能的第二硬件部分(该第二硬件部分可以是FPGA的嵌入式RAM)、以及具有控制功能的第三硬件部分(该第三硬件部分可以是FPGA内嵌的CPU500)共同构成仿真内存100,在用户将FPGA芯片插入计算机主板300的内存接口200时依照内存工作原理协同工作,从而模拟实现真实内存的所有功能。
下面将以本发明的第三个较佳实施方式为例,对本发明仿真内存100的实现方法流程进行说明:
如图3所示,结合图1、图2,在步骤A中,将FPGA中起数据通信功能的第一硬件部分作为预实现的仿真内存100的通信模块101,用于模拟实现真实内存的数据通道部分的功能。
在步骤B中,从FPGA的起到数据存储功能的第二硬件部分中划定一块存储区域(该存储区域大小可由用户根据计算机操作系统运行的基本需求自行设定),将该存储区域作为预实现的仿真内存100的存储模块103,用于模拟实现真实内存的存储区域部分的功能。
在步骤C中,将FPGA的起控制功能的第三硬件部分作为预实现的仿真内存100的内存控制模块102,用于模拟实现真实内存的内存控制器部分的功能。
在步骤D中,FPGA插入计算机主板300的内存接口200时,上述的通信模块101、存储模块103以及内存控制模块102共同构成仿真内存100,依照内存的工作原理协同工作,从而模拟实现真实内存的所有功能。
下面将以本发明的第四个较佳实施方式为例,对本发明基于FPGA实现的仿真内存100的初始化操作流程进行说明:
如图4所示,结合图1、图2,在步骤A1中,预先指定FPGA的用于模拟实现真实内存CS管脚功能的第一管脚,用于模拟实现真实内存RAS管脚功能的第二管脚、用于模拟实现真实内存CAS管脚功能的第三管脚、用于模拟实现真实内存WE管脚功能的第四管脚。
在步骤B1中,建立FPGA的第一管脚至第四管脚所形成的第一电平组合与空操作指令之间的映射关系;
建立FPGA的第一管脚至第四管脚所形成的第二电平组合与预充电操作指令之间的映射关系;
建立FPGA的第一管脚至第四管脚所述形成的第三电平组合与刷新操作指令之间的映射关系;
以及建立FPGA的第一管脚至第四管脚所形成的第四电平组合与设置模式寄存器操作指令之间的映射关系;
根据上述的第一电平组合至第四电平组合与各条内存控制指令之间的映射关系构建电平组合及指令映射表,并将电平组合及指令映射表预存于闪存单元1032。
在步骤C1中,内存控制模块102接收到计算机CPU500发出的内存初始化指令,对FPGA的第一管脚、第二管脚、第三管脚及第四管脚的电平状态进行检测,获取该四个管脚形成的电平组合(依次为第一电平组合、第二电平组合、第三电平组合及第四电平组合)。
在步骤D1中,内存控制模块102读取闪存单元1032的电平组合及指令映射表,查找电平组合及指令映射表中该第一电平组合、第二电平组合、第三电平组合及第四电平组合分别映射到的空操作指令、预充电操作指令、刷新操作指令、刷新操作指令、设置模式寄存器操作指令,对内存单元1031依次执行空操作、预充电操作、刷新操作、刷新操作、设置模式寄存器操作,从而完成该仿真内存100的初始化操作流程。
完成初始化的仿真内存100处于空闲状态,可通过通信模块101接收计算机CPU500的读写指令,指令内存控制模块102对内存单元1031进行相应的存取操作。
图5为本发明电平组合及指令映射表,该电平组合及指令映射表示出了FPGA的芯片管脚(即上述的第一管脚、第二管脚、第三管脚及第四管脚)的电平组合与内存控制指令之间的映射关系。
下面将以本发明的第五个较佳实施方式为例,对本发明计算机特有的数据断电保护功能及系统瞬时恢复功能进行详细说明:
如图6所示,结合图1、图2,在步骤A2中,计算机在主电源供电模式下通过电源管理模块104对主电源600进行断电监测。
在步骤B2中,电源管理模块104判断主电源600是否出现断电故障。如主电源600出现断电故障,则执行下一步骤C2,否则,返回步骤A2。
在步骤C2中,电源管理模块104启动备用电源700,通过备用电源700为计算机系统供电,本发明计算机由主电源供电模式切换至备用电源供电模式,通过备用电源700为仿真内存100供电,避免仿真内存100掉电丢失数据。
在步骤D2中,内存控制模块102在备用电源供电模式下接收由FPGA发出的数据断电保护指令。
在步骤E2中,内存控制模块102接收到数据断电保护指令,执行拷贝内存单元1031当前存储的所有待保护的原始数据、并将拷贝数据搬移及暂存于闪存的指定存储区域的数据断电保护操作。
在步骤F2中,仿真内存100通过内存控制模块102判断拷贝数据是否为完整数据。如拷贝数据为完整数据,则执行下一步骤G2,否则,返回步骤E2。其中,本发明涉及拷贝数据完整性的判断过程如下:
内存控制模块102将暂存于闪存单元1032的拷贝数据与内存单元1031中的待保护的原始数据进行逐字节地比对,根据字节比对结果生成拷贝数据完整性检测结果,并将包含字节比对信息的拷贝数据完整性检测结果返回FPGA。如FPGA接收到字节比对信息不一致的拷贝数据完整性检测结果,则重新向内存控制模块102发送数据断电保护指令,指令内存控制模块102重新执行数据断电保护操作,以确保暂存于闪存单元1032的拷贝数据的完整性。待拷贝数据完整性检测测试获取通过之后,计算机进入睡眠模式。
在步骤G2中,计算机主电源断电故障得到修复,仿真内存100通过电源管理模块104监测到计算机从睡眠模式恢复至主电源供电模式,接收计算机CPU500发出的系统恢复指令,指令内存控制模块102将暂存于闪存单元1032的拷贝数据重新载入内存单元1031,从而在极短时间内将计算机系统恢复到主电源600出现断电故障前的系统运行状态。
实施本发明基于FPGA实现的仿真内存100、仿真内存100的实现方法及计算机,可达到以下有益效果:
1、在本发明中,用户可将FPGA芯片(FPGA芯片外接具有高数据存取效率的闪存,该闪存预存操作系统数据)插入计算机主板300的内存插槽,FPGA的三个硬件部分(可以是FPGA中分别起到数据交换功能的可编程输入输出单元,起到存储功能的嵌入式RAM、以及起到控制功能的内嵌的CPU500)共同构成仿真内存100从而模拟实现真实内存的所有功能。由于内存单元1031与闪存单元1032均集成于仿真内存100,两者之间的传输距离较短,计算机开机启动时,仿真内存100可通过内存控制模块102将预存于闪存单元1032的操作系统数据载入内存单元1031,内存的数据载入速率得到极大提高。因此,本发明克服了传统计算机架构中机械硬盘与内存在数据读写速率上不匹配的技术缺陷,极大地提高了计算机的开机速度及整体的数据处理效率。
2、本发明的计算机具有数据断电保护功能及系统瞬时恢复功能。本发明插入计算机主板300内存插槽的FPGA外接备用电源700,基于FPGA实现的仿真内存100包括电源管理模块104,用于对计算机主电源600进行断电监测并根据主电源断电监测结果对备用电源700的启动及充放电进行控制。当主电源600出现断电故障时,计算机将自动切换到备用电源供电模式,通过备用电源700为仿真内存100供电,仿真内存100可保持不掉电状态。在备用电源供电模式下,仿真内存100通过内存控制模块102将内存单元1031中存储的所有数据拷贝、搬移及暂存于闪存的指定存储区域之后,计算机进入睡眠模式。待计算机主电源600故障解除并重新恢复到主电源供电模式时,仿真内存100接收计算机CPU500发出的系统恢复指令,通过内存控制模块102将搬移至闪存的所有拷贝数据重新载入内存单元1031,从而将计算机瞬时恢复到主电源600出现故障前的系统运行状态。
3、本发明计算机设有断电保护数据防出错机制,可杜绝系统恢复故障。在本发明断电保护数据拷贝操作完成时,内存控制模块102接收FPGA发出的拷贝数据完整性检测指令,将搬移到闪存单元1032的拷贝数据与内存单元1031的原始保护数据进行逐字节地比较,确保拷贝数据为完整的原始保护数据,避免了计算机恢复过程中产生的错误,杜绝了系统恢复故障。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于FPGA实现的仿真内存,其特征在于,所述仿真内存基于FPGA中起到数据通信功能的第一硬件部分、起到数据存储功能的第二硬件部分、以及起到控制功能的第三硬件部分实现;其中
FPGA中起到数据通信功能的第一硬件部分作为所述仿真内存的通信模块,用于模拟实现真实内存的数据通道部分的功能;
FPGA中起到数据存储功能的第二硬件部分中划定的一块存储区域作为所述仿真内存的存储模块,用于模拟实现真实内存的存储区域部分的功能;
FPGA中起到控制功能的第三硬件部分作为所述仿真内存的内存控制模块,用于模拟实现真实内存的内存控制器部分的功能;
在FPGA插入计算机主板内存接口时,所述通信模块、所述存储模块及所述内存控制模块共同构成所述仿真内存,依照内存工作原理协同工作从而模拟实现真实内存的所有功能。
2.根据权利要求1所述的基于FPGA实现的仿真内存,其特征在于,所述存储模块包括内存单元以及外接于FPGA的闪存单元;所述闪存单元预存操作系统数据,所述内存单元用于计算机上电开机时载入所述闪存单元中的操作系统数据,以及暂存计算机工作过程中仿真内存与北桥芯片及CPU之间的交换数据;
所述通信模块电连接于计算机主板的内存接口,用于通过该内存接口与计算机CPU进行通信;
所述内存控制模块电连接于所述通信模块、所述存储模块之间,用于计算机开机上电时接收计算机CPU经内存接口输入的初始化内存操作指令,对存储模块中的内存单元进行初始化,以及在将仿真内存初始化操作执行完毕之后接收计算机CPU经内存接口输入的内存读写命令,根据内存读写命令对所述存储模块中的内存单元执行相应的数据存取操作。
3.根据权利要求1所述的基于FPGA实现的仿真内存,其特征在于,所述仿真内存还包括:外接于FPGA的备用电源,用于计算机主电源断电时为仿真内存供电;
电源管理模块,电连接于所述内存控制模块、计算机主电源及备用电源,用于对主电源进行断电监测,根据主电源断电监测结果对备用电源的启动及充放电操作进行相应控制。
4.根据权利要求2所述的基于FPGA实现的仿真内存,其特征在于,所述内存控制模块还用于判断计算机由主电源供电模式切换至备用电源供电模式时,接收FPGA发出的数据断电保护指令,执行将内存单元中当前存储的所有数据拷贝、搬移及暂存于闪存单元的数据断电保护操作;
所述内存控制模块还用于判断计算机由备用电源供电模式恢复至主电源供电模式时,接收计算机CPU发出的系统恢复命令,将暂存于闪存单元的所有拷贝数据重新写入内存单元,以将计算机系统瞬时恢复到主电源异常断电之前的系统运行状态。
5.根据权利要求4所述的基于FPGA实现的仿真内存,其特征在于,所述内存控制模块还用于将数据断电保护操作执行完毕时,接收FPGA发出的拷贝数据完整性检测指令,对暂存于闪存单元的拷贝数据的完整性进行检测,生成拷贝数据完整性检测结果,并将拷贝数据完整性检测结果返回FPGA。
6.根据权利要求5所述的基于FPGA实现的仿真内存,其特征在于,所述内存控制模块将暂存于闪存单元的拷贝数据与内存单元中的原始数据进行逐字节地比对,根据字节比对结果生成拷贝数据完整性检测结果。
7.一种仿真内存的实现方法,其特征在于,包括如下步骤:
将FPGA中起到数据通信功能的第一硬件部分作为预实现的仿真内存的通信模块,用于模拟实现真实内存的数据通道部分的功能;
从FPGA中起到数据存储功能的第二硬件部分中划定一块存储区域作为预实现的仿真内存的存储模块,用于模拟实现真实内存的存储区域部分的功能;
将FPGA中起到控制功能的第三硬件部分作为预实现的仿真内存的内存控制模块,用于模拟实现真实内存的内存控制器部分的功能;
在FPGA插入计算机主板的内存接口时,所述通信模块、所述存储模块及所述内存控制模块共同构成仿真内存,并依照内存的工作原理协同工作,从而模拟实现真实内存的所有功能。
8.根据权利要求7所述的仿真内存的实现方法,其特征在于,在FPGA插入计算机主板的内存接口时,所述通信模块、所述存储模块及所述内存控制模块共同构成仿真内存的步骤以及所述通信模块、所述存储模块及所述内存控制模块依照内存的工作原理协同工作,并通过北桥芯片与计算机CPU进行通信,从而实现真实内存的所有功能的步骤包括如下步骤:
所述内存控制模块接收由计算机CPU发出的内存初始化命令,对仿真内存执行初始化操作,所述内存控制模块对仿真内存执行初始化操作的步骤具体包括:
内存控制模块接收到仿真内存初始化命令时,对FPGA的第一管脚、第二管脚、第三管脚及第四管脚的电平组合进行检测,依次得到第一电平组合、第二电平组合、第三电平组合及第四电平组合,依照预先建立的电平组合及指令映射表依次执行与第一电平组合对应的空操作、与第二电平组合对应的预充电操作、与第三电平组合对应的两次刷新操作、以及与第四电平组合对应的设置模式寄存器操作,从而完成仿真内存的初始化操作。
9.根据权利要求8所述的仿真内存的实现方法,其特征在于,在所述内存控制模块接收到仿真内存初始化命令时,对FPGA的第一管脚、第二管脚、第三管脚及第四管脚的电平组合进行检测,依次得到第一电平组合、第二电平组合、第三电平组合及第四电平组合,依照电平组合指令映射表依次执行与第一电平组合对应的空操作、与第二电平组合对应的预充电操作、与第三电平组合对应的两次刷新操作、以及与第四电平组合对应的设置模式寄存器操作,从而完成仿真内存的初始化操作的步骤之前还包括如下步骤:
指定FPGA中用于模拟实现真实内存CS管脚功能的第一管脚、用于模拟实现真实内存RAS管脚功能的第二管脚、用于模拟实现真实内存CAS管脚功能的第三管脚、用于模拟实现真实内存WE管脚功能的第四管脚;
建立FPGA的第一管脚至第四管脚所形成的第一电平组合与空操作指令之间的映射关系;
建立FPGA的第一管脚至第四管脚所形成的第二电平组合与预充电操作指令之间的映射关系;
建立FPGA的第一管脚至第四管脚所述形成的第三电平组合与刷新操作指令之间的映射关系;
以及建立FPGA的第一管脚至第四管脚所形成的第四电平组合与设置模式寄存器操作指令之间的映射关系;
根据第一电平组合至第四电平组合与各条内存控制指令之间的映射关系构建电平组合及指令映射表。
10.一种计算机,包括主板、集成于主板的北桥芯片、CPU及内存接口,其特征在于,还包括插入内存接口的仿真内存,所述仿真内存基于FPGA的具有数据通信功能的第一硬件部分、具有数据存储功能的第二硬件部分、以及具有控制功能的第三硬件部分实现;其中
FPGA中起到数据通信功能的第一硬件部分作为仿真内存的通信模块,用于模拟实现真实内存的数据通道部分的功能;
FPGA中起到数据存储功能的第二硬件部分中划定的一块与计算机操作系统所需内存大小相等的存储区域作为仿真内存的存储模块,用于模拟实现真实内存的存储区域部分的功能;
FPGA中起到控制功能的第三硬件部分作为仿真内存的内存控制模块,用于模拟实现真实内存的内存控制器部分的功能;
在FPGA插入主板的内存接口时,所述通信模块、所述存储模块及所述内存控制模块共同构成所述仿真内存,并依照内存的工作原理协同工作从而模拟实现真实内存的所有功能。
CN201410852810.XA 2014-12-30 2014-12-30 基于fpga实现的仿真内存、仿真内存的实现方法及计算机 Active CN105808462B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410852810.XA CN105808462B (zh) 2014-12-30 2014-12-30 基于fpga实现的仿真内存、仿真内存的实现方法及计算机

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410852810.XA CN105808462B (zh) 2014-12-30 2014-12-30 基于fpga实现的仿真内存、仿真内存的实现方法及计算机

Publications (2)

Publication Number Publication Date
CN105808462A CN105808462A (zh) 2016-07-27
CN105808462B true CN105808462B (zh) 2020-03-17

Family

ID=56420874

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410852810.XA Active CN105808462B (zh) 2014-12-30 2014-12-30 基于fpga实现的仿真内存、仿真内存的实现方法及计算机

Country Status (1)

Country Link
CN (1) CN105808462B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108804272B (zh) * 2018-05-25 2021-08-27 深圳市德明利技术股份有限公司 一种高速的闪存模拟器及其模拟方法
CN109471758A (zh) * 2018-11-22 2019-03-15 北京同有飞骥科技股份有限公司 存储数据掉电保护方法及系统
CN109669635B (zh) * 2018-12-19 2022-01-21 深圳忆联信息系统有限公司 用于固态存储主控芯片的命令lba重合检测方法及装置
CN111258951B (zh) * 2020-01-08 2021-10-29 中国科学院计算技术研究所 一种实现fpga服务器的方法和系统
WO2021138846A1 (zh) 2020-01-08 2021-07-15 中国科学院计算技术研究所 一种实现fpga服务器的方法和系统
CN111823238B (zh) * 2020-06-10 2021-12-28 杭州凯尔达机器人科技股份有限公司 机器人时序控制方法、电源时序管理单元以及控制系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101089828A (zh) * 2006-06-13 2007-12-19 深圳市研祥智能科技股份有限公司 计算机访问扩充内存的方法
CN101625754A (zh) * 2009-08-05 2010-01-13 黄以华 一种基于fpga的图像处理系统
CN102012791A (zh) * 2010-10-15 2011-04-13 中国人民解放军国防科学技术大学 基于Flash的数据存储PCIE板卡
CN104009541A (zh) * 2014-05-07 2014-08-27 深圳市国电南思系统控制有限公司 智能变电站运行信息的处理系统及处理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008099931A1 (ja) * 2007-02-15 2008-08-21 Fujitsu Ten Limited マイクロコンピュータの模擬装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101089828A (zh) * 2006-06-13 2007-12-19 深圳市研祥智能科技股份有限公司 计算机访问扩充内存的方法
CN101625754A (zh) * 2009-08-05 2010-01-13 黄以华 一种基于fpga的图像处理系统
CN102012791A (zh) * 2010-10-15 2011-04-13 中国人民解放军国防科学技术大学 基于Flash的数据存储PCIE板卡
CN104009541A (zh) * 2014-05-07 2014-08-27 深圳市国电南思系统控制有限公司 智能变电站运行信息的处理系统及处理方法

Also Published As

Publication number Publication date
CN105808462A (zh) 2016-07-27

Similar Documents

Publication Publication Date Title
CN105808462B (zh) 基于fpga实现的仿真内存、仿真内存的实现方法及计算机
US10896099B2 (en) Memory module with non-volatile backup storage
CN101937376B (zh) 一种数据管理方法及数据存储装置
US20160378344A1 (en) Processor and platform assisted nvdimm solution using standard dram and consolidated storage
TWI602115B (zh) 資料儲存裝置之資料儲存方法
US11249658B2 (en) Memory controller systems with nonvolatile memory for storing operating parameters
CN103377063A (zh) 从遗留操作系统环境恢复到uefi预启动环境的方法和系统
KR20160049956A (ko) 모바일 장치 및 그것의 동작 방법
US10929251B2 (en) Data loss prevention for integrated memory buffer of a self encrypting drive
CN106155943A (zh) 一种双控存储设备的掉电保护的方法及装置
US10642747B1 (en) Virtual flash system
JP2022529873A (ja) マルチモード保護メモリ
CN103475514A (zh) 无bmc的节点、集群系统及bios修复和升级方法
WO2019041903A1 (zh) 一种基于非易失存储的计算装置及其使用方法
US20180157301A1 (en) Multiport energy supply for a nonvolatile memory module
CN110609596B (zh) 数据储存装置的开发系统以及产品化方法
WO2019041291A1 (zh) 写入信息的方法和装置
US9836359B2 (en) Storage and control method of the same
CN209746537U (zh) 一种兼容nvdimm-p功能的nvdimm-n
CN113050896A (zh) 一种支持nvdimm的国产飞腾服务器及数据保护方法
WO2022010523A1 (en) An apparatus for initializing memory using a hardware engine for minimizing boot time
CN111158734A (zh) 一种cpld-fpga的无缝升级方法、系统及设备
CN117420968B (zh) 存储控制器、存储设备的访问控制方法和存储系统
US10678552B2 (en) Hardware for system firmware use
CN104731704A (zh) Nand flash管理软件的测试方法

Legal Events

Date Code Title Description
C06 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
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 518057 Guangdong city of Shenzhen province Nanshan District high in the four EVOC Technology Building No. 31

Co-patentee after: Yanxiang smart IOT Technology Co.,Ltd.

Patentee after: EVOC INTELLIGENT TECHNOLOGY Co.,Ltd.

Address before: 518057 Guangdong city of Shenzhen province Nanshan District high in the four EVOC Technology Building No. 31

Co-patentee before: Shenzhen Yanxiang intelligent IOT Technology Co.,Ltd.

Patentee before: EVOC INTELLIGENT TECHNOLOGY Co.,Ltd.

Address after: 518057 Guangdong city of Shenzhen province Nanshan District high in the four EVOC Technology Building No. 31

Co-patentee after: Shenzhen Yanxiang intelligent IOT Technology Co.,Ltd.

Patentee after: EVOC INTELLIGENT TECHNOLOGY Co.,Ltd.

Address before: 518057 Guangdong city of Shenzhen province Nanshan District high in the four EVOC Technology Building No. 31

Co-patentee before: SHENZHEN EVOC SPECIAL COMPUTER SOFTWARE Co.,Ltd.

Patentee before: EVOC INTELLIGENT TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211201

Address after: 518000 Shenzhen, Futian District, Guangdong Futian street Gangxia community Shennan Road No. 1003 Dongfang Xintiandi Plaza 5 floor 502F

Patentee after: Guangdong Industrial edge intelligent Innovation Center Co.,Ltd.

Address before: 518057 Guangdong city of Shenzhen province Nanshan District high in the four EVOC Technology Building No. 31

Patentee before: EVOC INTELLIGENT TECHNOLOGY Co.,Ltd.

Patentee before: Yanxiang smart IOT Technology Co.,Ltd.