非易失存储设备和访问非易失存储设备的方法

文档序号:9844048阅读:243来源:国知局
非易失存储设备和访问非易失存储设备的方法
【技术领域】
[0001]本发明涉及计算机领域,尤其涉及计算机领域中的非易失存储设备和访问非易失存储设备的方法。
【背景技术】
[0002]随着信息技术的发展,特别是互联网的普及,各种类型的数据量迅速增长,尤其是视频数据的增多,给现有存储系统带来很大压力,所以迫切需要大容量、高性能的存储系统来有效保存和快速访问这些数据。
[0003]传统的机械硬盘虽然技术成熟、成本低、容量大,但是性能存在瓶颈,而且功耗较大,已经逐渐让位于固态硬盘。固态硬盘使用半导体非易失存储器来保存数据,在性能、功耗、可靠性方面具有明显优势。固态硬盘有多种形态,按照对外接口的不同可分为三类:采用串口硬盘(Serial Advanced Technology Attachment,简称“SATA”)接口或者串行SCSI接口(Serial Attached SCSI,简称“SAS”,其中,小型计算机系统接口(Small ComputerSystem Interface,简称“SCSI”))的固态硬盘、采用外围设备互连快速通道(PeripheralComponent Interface Express,简称“PCIe”)接口标准的固态硬盘以及采用内存接口的固态硬盘。其中,采用内存接口的固态硬盘称为闪存条。前面两类固态硬盘虽然技术很成熟,但是因为体积较大且存储密度不高,无法满足日益增长的数据量的存储需求,而且协议开销更大,增加了访问延时。而闪存条兼容现有的内存控制器和内存条插槽,兼具固态硬盘的大容量和内存的快速访问特点,因此越来越得到业界的重视。
[0004]虽然闪存条具有这些优点,但是仍存在一个问题需要解决。由于内存接口的速率很高,例如双数据速率3(Double Data Rate 3,简称“DDR3”)内存接口的等效速率可达1600MHz,带宽为12.8GB/s,而闪存条的存储芯片读取一个页面的数据需要上百微秒,两者的速率相差很大。内存接口的时序特点是主机发起的读写操作在一段时间之内就要结束,以读操作为例,主机发出针对某个目的地址的读操作之后,经过数十纳秒就要开始接收数据,全部接收完成之后当前访问周期结束。这样,如果主机向闪存条发出读操作,但闪存条无法按时送出所需的数据,主机就会得到错误的数据。

【发明内容】

[0005]有鉴于此,本发明实施例提供了一种非易失存储设备和访问非易失存储设备的方法,以解决通过高速内存接口访问低速闪存时主机无法获取正确数据的问题。
[0006]第一方面,提供了一种非易失存储设备,所述非易失存储设备包括接口模块、控制模块、读缓存和存储芯片,所述接口模块用于:接收所述主机发送的第一读请求信号,所述第一读请求信号包括所述存储芯片的地址;当所述数据没有保存在所述读缓存中时,指示所述控制模块从所述存储芯片中读取所述数据;在所述主机结束当前读操作周期之前,向所述主机发送中断信号和预定数据,所述预定数据用于使所述主机结束所述读操作周期,所述中断信号用于指示所述主机在所述读操作周期之后执行中断处理程序。
[0007]因此,当主机向非易失存储设备发起读操作,但非易失存储设备不能及时返回数据时,该非易失存储设备通过发送中断信号使得主机进入中断处理程序等待正确数据从存储芯片中读出,从而避免了主机获取错误数据之后执行后续的操作。
[0008]结合第一方面,在第一方面的第一种可能的实现方式中,所述控制模块用于:根据所述接口模块的指示从所述存储芯片中读取所述数据,并将所述数据存储在所述读缓存中;所述接口模块还用于:在所述主机退出所述中断处理程序之后,接收所述主机发送的第二读请求信号,所述第二读请求信号包括所述存储芯片的地址;将所述控制模块存储在所述读缓存中的所述数据发送至所述主机。
[0009]这样,通过在主机进行延时的同时将存储芯片中的数据存储在读缓存中,避免了主机再次发起重复访问时继续进行延时,提高了读取效率。
[0010]第二方面,提供了一种主机,所述非易失存储设备包括接口模块、读缓存和存储芯片,所述主机包括:发送模块,用于向所述接口模块发送第一读请求信号,所述第一读请求信号包括所述存储芯片的地址;接收模块,用于在当前读操作周期完成之前接收所述接口模块发送的中断信号,所述中断信号表示所述读请求信号所请求的数据没有保存在所述读缓存中;所述接收模块,还用于接收所述接口模块发送的预定数据;处理模块,用于根据所述接收模块接收的所述预定数据结束当前读操作周期,并在所述读操作周期完成之后,根据所述中断信号执行中断处理程序。
[0011]因此,当向非易失存储设备发起读操作,但非易失存储设备不能及时返回数据时,该主机通过接收非易失存储设备发送的中断信号,从而进入中断处理程序等待正确数据,避免了获取错误数据之后执行后续操作。
[0012]结合第二方面,在第二方面的第一种可能的实现方式中,所述发送模块还用于:在退出所述中断处理程序之后向所述接口模块发送第二读请求信号;所述接收模块还用于:接收所述接口模块发送的所述数据。
[0013]结合第一方面或第一方面的第一种可能的实现方式,或第二方面或第二方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式和第二方面的第二种可能的实现方式中,所述第一中断信号和/或所述第二中断信号用于指示所述主机确定延时时间,以便于所述主机在所述中断处理程序中根据所述延时时间进行延时。
[0014]可选地,所述接口模块包括延时时间寄存器,所述主机根据所述中断信号的指示从所述延时时间寄存器中获取所述延时时间。
[0015]可选地,所述非易失存储设备的集成电路间总线I2C上连接通用输入/输出GP1芯片,所述主机根据所述中断信号的指示根据所述GP1芯片确定所述延时时间。
[0016]可选地,所述接口模块包括第一状态寄存器,所述主机根据所述中断信号的指示根据所述第一状态寄存器确定所述延时时间,所述第一状态寄存器用于指示所述存储芯片的状态。
[0017]可选地,所述接口模块包括第一状态寄存器,所述第一状态寄存器用于指示所述存储芯片的状态,所述非易失存储设备的I2C总线上连接电可擦可编程只读存储器EEPROM芯片,所述EEPROM芯片用于指示所述状态和所述延时时间的对应关系,所述主机根据所述中断信号的指示,根据所述第一状态寄存器和所述EEPROM芯片确定所述延时时间。
[0018]可选地,所述存储芯片的状态包括空闲状态、读状态、写状态和擦除状态。
[0019]这样,非易失存储设备通过指示主机根据上述方式确定延时时间,使主机针对存储芯片的不同工作状态进行不同时间的延时,避免了不必要的延时,提高了数据读取的效率。
[0020]结合第一方面或第一方面的第一种或第二种可能的实现方式,或第二方面或第二方面的第一种或第二种可能的实现方式,在第一方面的第三种可能的实现方式和第二方面的第三种可能的实现方式中,所述接口模块包括第二状态寄存器,所述第二状态寄存器用于指示所述主机根据所述第二状态寄存器确定在所述中断处理程序进行延时。
[0021]可选地,所述非易失存储设备的I2C总线上连接温度传感器,所述接口模块包括第二状态寄存器,所述主机在所述第二状态寄存器指示所述温度传感器表示的所述非易失存储设备的温度没有超出门限时,确定在所述中断处理程序进行延时。
[0022]可选地,所述非易失存储设备通过内存接口和所述主机相连,所述接口模块包括第二状态寄存器,所述主机在所述第二状态寄存器指示所述内存接口的地址和控制信号校验没有出错时,确定在所述中断处理程序进行延时。
[0023]这样,非易失存储设备通过指示主机根据上述方式针对不同的中断原因进行判断,保证了主机执行中断处理程序的准确性。
[0024]可选地,所述预定数据包括能通过所述主机校验的数据和所述能通过所述主机校验的数据的校验码。
[0025]可选地,所述非易失存储设备通过ALERT#管脚或者EVENT#管脚向所述主机发送所述中断信号。
[0026]可选地,所述存储芯片包括闪存芯片或相变存储器或阻变存储器。
[0027]结合第二方面或第二方面的第一种至第三种可能的实现方式中的任一种可能的实现方式,在第二方面的第四种可能的实现方式中,所述主机还包括设置模块,所述设置模块用于:向所述接口模块发送所述第一读请求信号之前,设置标识变量为O;执行所述中断处理程序时,设置所述标志变量为I;退出所述中断处理程序后,判断所述标识变量的取值;当所述标识变量为O时,指示所述主机继续执行后续指令;当所述标识变量为I时,指示所述发送模块向所述接口模块发送所述第二读请求信号。
[0028]这样,主机通过设置标志变量获知读访问是否正常完成和是否需要再次发起重复访问,避免了数据出错。
[0029]第三方面,提供了一种非易失存储设备,所述非易失存储设备包括接口模块、控制模块、写缓存和存储芯片,所述接口模块用于:接收所述主机发送的第一写请求信号和所述第一写请求信号请求写入的数据,所述第一写请求信号包括所述存储芯片的地址;当所述写缓存中没有多余空间保存所述数据时,丢弃所述数据,并指示所述控制模块将所述写缓存中的已有数据保存到所述存储芯片中;在所述主机结束当前写操作周期之前,向所述主机发送中断信号,所述中断信号用于指示所述主机在当前写操作周期之后执行所述中断处理程序。
[0030]因此,当主机发起写操作但非易失存储设备没有多余空间保存数据时,该非易失存储设备通过向主机发送中断信号,使得主机进入中断处理程序等待空间以保存数据,避免了数据丢失。
[0031]结合第三方面,在第三方面的第一种可能的实现方式中,所述控制模块用于:根据所述接口模块的指示将所述写缓存中的已有数据保存到所述存储芯片中,以使得所述写缓存留出多余空间保存所述数据;所述接口模块还用于:在所述主机退出所述中断处理程序之后,接收所述主机发送的第二写请求信号;接收所述主机发送的所述数据,并将所述数据保存在所述写缓存中。
[0032]第四方面,提供了一种主机,所述主机包括:发送模块,用于向所述非易失存储设备发送第一写请求信号;接收模块,用于在当前写操作周期完成之前,接收所述非易失存储设备发送的中断信号,所述中断信号表示所述非易失存储设备的写缓存中没有多余空间保存待写入数据;所述发送模块,还用于向所述非易失存储设备发送所述待写入数据;处理模块,用于根据所述发送模块发送的所述待写入数据完成当前写操作周期,并在所述写操作周期完成之后,根据所述中断信号执行中断处理程序。
[0033]因此,当向非易失存储设备发起写操作,但非易失存储设备没有多余空间保存数据时,该主机通过接收非易失存储设备发送的中断信号,进入中断处理程序等待空间以保存该数据,避免了数据丢失。
[0034]结合第四方面,在第四方面的第一种可能的实现方式中,所述发送模块还用于:在退出所述中断处理程序之后,向所述非易失存储设备发送第二写请求信号;向所述非易失存储设备发送所述待写入数据,以使得所述待写入数据保存在所述非易失存储设备的写缓存中。
[0035]结合第三方面或第三方面的第一种可能的实现方式,或第四方面或第四方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式和第四方面的第二种可能的实现方式中,所述第一中断信号和/或所述第二中断信号用于指示所述主机确定延时时间,以便于所述主机在所述中断处理程序中根据所述延时时间进行延时。
[0036]可选地,所述接口模块包括延时时间寄存器,所述主机根据所述中断信号的指示从所述延时时间寄存器中获取所述延时时间。
[0037]可选地,所述非易失存储设备的集成电路间总线I2C上连接通用输入/输出GP1芯片,所述主机根据所述中断信号的指示,根据所述GP1芯片确定所述延时时间。
[0038]可选地,所述接口模块包括第一状态寄存器,所述主机根据所述中断信号的指示,根据所述第一状态寄存器确定所述延时时间,所述第一状态寄存器用于指示所述存储芯片的状态。
[0039]可选地,所述接口模块包括第一状态寄存器,所述第一状态寄存器用于指示所述存储芯片的状态,所述非易失存储设备的I2C总线上连接电可擦可编程只读存储器EEPROM芯片,所述EEPROM芯片用于指示所述状态和所述延时时间的对应关系,所述主机根据所述中断信号的指示,根据所述第一状态寄存器和所述EEPROM芯片确定所述延时时间。
[0040]可选地,所述存储芯片的状态包括空闲状态、读状态、写状态和擦除状态。
[0041]这样,非易失存储设备通过指示主机根据上述实现方式确定延时时间,使主机针对存储芯片的不同工作状态进行不同时间的延时,避免了不必要的延时,提高了数据读取的效率。
[0042]结合第三方面或第三方面的第一种或第二种可能的实现方式,或第四方面或第四方面的第一种或第二种可能的实现方式,在第三方面的第三种可能的实现方式和第四方面的第三种可能的实现方式中,所述接口模块包括第二状态寄存器,所述第二状态寄存器用于指示所述主机根据所述第二状态寄存器确定在所述中断处理程序进行延时。
[0043]可选地,所述非易失存储设备的I2C总线上连接温度传感器,所述接口模块包括第二状态寄存器,所述主机在所述第二状态寄存器指示所述温度传感器表示的所述非易失存储设备的温度没有超出门限时,确定在所述中断处理程序进行延时。
[0044]可选地,所述非易失存储设备通过内存接口和所述主机相连,所述接口模块包括第二状态寄存器,所述主机在所述第二状态寄存器指示所述内存接口的地址和控制信号校验没有出错时,确定在所述中断处理程序进行延时。
[0045]这样,非易失存储设备通过指示主机根据上述实现方式,针对不同的中断原因进行判断,保证了主机执行中断处理程序的准确性。
[0046]可选地,所述主机接收所述非易失存储设备通过ALERT#管脚或者EVENT#管脚发送的所述中断信号。
[0047]可选地,所述存储芯片包括闪存芯片或相变存储器或阻变存储器。
[0048]结合第四方面或第四方面的第一种至第三种可能的实现方式中的任一种可能的实现方式,在第四方面的第四种可能的实现方式中,所述主机还包括设置模块,所述设置模块用于:向所述接口模块发送所述第一写请求信号之前,设置标识变量为O;执行所述中断处理程序时,设置所述标志变量为I;退出所述中断处理程序后,判断所述标识变量的取值;当所述标识变量为O时,指示所述主机继续执行后续指令;当所述标识变量为I时,指示所述发送模块向所述接口模块发送所述第二写请求信号。
[0049]这样,主机通过设置标志变量获知写访问是否正常完成和是否需要再次发起重复访问,避免了数据出错。
[0050]第五方面,提供了一种读取非易失存储设备的方法,通过上述第一方面或第一方面的任一种可能的实现方式中的非易失存储设备实现。
[0051]第六方面,提供了一种读取非易失存储设备的方法,通过上述第二方面或第二方面的任一种可能的实现方式中的主机实现。
[0052]第七方面,提供了一种写入非易失存储设备的方法,通过上述第三方面或第三方面的任一种可能的实现方式中的非易失存储设备实现。
[0053]第八方面,提供了一种写入非易失存储设备的方法,通过上述第四方面或第四方面的任一种可能的实现方式中的主机实现。
[0054]第九方面,提供了一种主机,所述主机包括:接收器、发送器、存储器、处理器和总线系统。其中,所述接收器、所述发送器、所述存储器和所述处理器通过所述总线系统相连,所述存储器用于存储指令,所述处理器用于执行所述存储器存储的指令,以控制接收器接收信号,并控制发送器发送信号,并且当所述处理器执行所述存储器存储的指令时,所述执行使得所述处理器执行第六方面或第六方面的任一种可能的实现方式中的方法,以及第八方面或第八方面的任一种可能的实现方式中的方法。
[0055]第十方面,提供了一种非易失存储设备,所述非易失存储设备
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1