基于FPGA实现的仿真内存、仿真内存的实现方法及计算机与流程

文档序号:13251496阅读:297来源:国知局
技术领域本发明涉及内存技术领域,更具体地说,涉及一种基于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-ProgrammableGateArray,即现场可编程门阵列)实现的仿真内存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的原始保护数据进行逐字节地比较,确保拷贝数据为完整的原始保护数据,避免了计算机恢复过程中产生的错误,杜绝了系统恢复故障。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1