一种虚拟存储器的驱动方法以及驱动器的制造方法_3

文档序号:9631364阅读:来源:国知局
不断存入第二内存共享区域的空闲位置,前端驱动器不断从第二内存共享区域读取10响应,并将已读取的10响应从第二内存共享区域删除。前端驱动器与后端驱动器之间无需经过事件通知即可完成数据交互过程,省去了调用事件通知服务所耗费的时间,由此提高了虚拟机的读写速度。
[0066]基于本发明的实施例所提供的虚拟存储器的驱动方法,本发明的实施例还提供一种后端驱动器,参照图6所示,后端驱动器60包括:
[0067]读取单元601,用于从第一内存共享区域读取输入输出10请求。其中,第一内存共享区域为后端驱动器60与前端驱动器的共享数据环内用于存储10请求的存储区域,10请求为前端驱动器存入第一内存共享区域的10请求。
[0068]后端交互单元602,用于将读取单元601从第一内存共享区域读取的10请求发送至原生驱动器,并接收原生驱动器返回的10响应。其中,10响应为对10请求的响应。
[0069]写入单元603,用于将后端交互单元602接收到的10响应存入第二内存共享区域的空闲位置,以便于前端驱动器从第二内存共享区域读取10响应。其中,第二内存共享区域为共享数据环内用于存储10响应的存储区域。
[0070]可选的,读取单元601,具体用于循环检测第一内存共享区域的占用情况,当第一内存共享区域处于非空闲状态时,从第一内存共享区域读取10请求。
[0071]可选的,读取单元601,还用于将10请求从第一内存共享区域删除。
[0072]可选的,写入单元603,具体用于检测第二内存共享区域的占用情况,当确定第二内存共享区域有空闲位置时,将10响应存入第二内存共享区域的空闲位置。
[0073]可选的,后端驱动器60还包括:
[0074]共享区域分配单元604,用于向前端驱动器发送第一指示消息,第一指示消息用于指示第一内存共享区域和第二内存共享区域的地址范围。
[0075]结合图6所对应的实施例,本发明的实施例提供另一种后端驱动器,参照图7所示,后端驱动器70包括处理器701、存储器702、总线703、发送器704和接收器705。处理器701、存储器702、发送器704和接收器705通过总线703连接并完成相互间的通信。
[0076]用于执行本发明方案的程序代码保存在存储器702中,并由处理器701来控制执行。
[0077]存储器702可以包括易失性存储器(英文volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM)。存储器也可以包括非易失性存储器(英文:non-volatile memory),例如只读存储器(英文:read_only memory,缩写:R0M),快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD)。存储器702还可以包括上述种类的存储器的组合。
[0078]处理器701可以是中央处理器(全称:Central Processing Unit,简称:CPU),或者CPU和硬件芯片的组合。上述硬件芯片可以是网络处理器(英文:network processor,缩写:NP),专用集成电路(英文:
[0079]applicat1n-specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其任意组合。上述PLD可以是复杂可编程逻辑器件(英文:comp lex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:genericarray logic,缩写:GAL)或其任意组合。
[0080]处理器701,用于调用存储器702中的程序代码,完成上述图2对应的实施例中后端驱动器的功能,具体描述参照图2对应的实施例,此处不再赘述。
[0081]基于本发明的实施例所提供的虚拟存储器的驱动方法,本发明的实施例还提供一种前端驱动器,参照图8所示,前端驱动器80包括:
[0082]接收单元801,用于接收输入输出10请求。
[0083]写入单元802,用于将接收单元801接收到的10请求存入第一内存共享区域的空闲位置,以便后端驱动器从第一内存共享区域读取10请求。其中,第一内存共享区域为前端驱动器80与后端驱动器的共享数据环内用于存储10请求的存储区域。
[0084]读取单元803,用于从第二内存共享区域读取10响应。其中,第二内存共享区域为共享数据环内用于存储10响应的存储区域,第二内存共享区域内的10响应,为由后端驱动器存入第二内存共享区域的,对10请求的响应。
[0085]可选的,写入单元802,具体用于检测第一内存共享区域的占用情况,当确定第一内存共享区域有空闲位置时,将10请求存入第一内存共享区域的空闲位置。
[0086]可选的,读取单元803,具体用于循环检测第二内存共享区域的占用情况,当第二内存共享区域处于非空闲状态时,从第二内存共享区域读取10响应。
[0087]可选的,读取单元803,还用于将10响应从第二内存共享区域删除。
[0088]可选的,前端驱动器80还包括:
[0089]共享区域分配单元804,用于向后端驱动器发送第二指示消息,第二指示消息用于指示第一内存共享区域和第二内存共享区域的地址范围。
[0090]结合图8所对应的实施例,本发明的实施例提供另一种前端驱动器,参照图9所示,前端驱动器90包括处理器901、存储器902、总线903、发送器904和接收器905。处理器901、存储器902、发送器904和接收器905通过总线903连接并完成相互间的通信。
[0091]用于执行本发明方案的程序代码保存在存储器902中,并由处理器901来控制执行。
[0092]存储器902可以包括易失性存储器(英文volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM)。存储器也可以包括非易失性存储器(英文:non-volatile memory),例如只读存储器(英文:read_only memory,缩写:R0M),快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD)。存储器902还可以包括上述种类的存储器的组合。
[0093]处理器901可以是中央处理器(全称:Central Processing Unit,简称:CPU),或者CPU和硬件芯片的组合。上述硬件芯片可以是网络处理器(英文:network processor,缩写:NP),专用集成电路(英文:applicat1n-specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文-programmable logic device,缩写:PLD)或其任意组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic array logic,缩写:GAL)或其任意组合。
[0094]处理器901,用于调用存储器902中的程序代码,完成上述图2对应的实施例中后端驱动器的功能,具体描述参照图2对应的实施例,此处不再赘述。
[0095]本发明的实施例所提供的后端驱动器以及前端驱动器,二者的共享数据环包括第一内存共享区域和第二内存共享区域。其中,第一内存共享区域用于存储10请求,第二内存共享区域用于存储10响应。前端驱动器将接收到的10请求队列不断存入第一内存共享区域的空闲位置,后端驱动器不断从第一内存共享区域读取10请求,并将已读取的10请求从第一内存共享区域删除。后端驱动器从原生驱动器得到10响应后,将10响应队列不断存入第二内存共享区域的空闲位置,前端驱动器不断从第二内存共享区域读取10响应,并将已读取的10响应从第二内存共享区域删除。前端驱动器与后端驱动器之间无需经过事件通知即可完成数据交互过程,省去了调
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1