描述符读取装置和设备、方法及集成电路制造方法及图纸

技术编号:35069229 阅读:31 留言:0更新日期:2022-09-28 11:30
本申请提供了一种描述符读取装置,包括读模块和输出模块,读模块被配置为以设定的方式接收描述符请求,并将其发送至内存设备,以及接收内存设备发送的描述符响应信息,将响应信息发送至输出模块,其中,设定的方式指在未接收到当前描述符请求对应的描述符响应信息的情况下,继续流水线式的接收下一个描述符请求,下一个描述符请求与当前描述符请求处于不同的描述符链中,输出模块被配置为接收读模块发送的描述符响应信息,根据描述符响应信息中的队列信息将描述符响应信息存放在不同的队列中,在队列完整的情况下,输出队列中的描述符响应信息。本申请减少了读取描述符的时间,从而提高了读取描述符的性能。从而提高了读取描述符的性能。从而提高了读取描述符的性能。

【技术实现步骤摘要】
描述符读取装置和设备、方法及集成电路


[0001]本申请涉及数据处理
,特别涉及一种描述符读取装置和设备、方法及集成电路。

技术介绍

[0002]计算虚拟化技术中,为了让多个Guest OS(客户机操作系统)可以独立于Host OS(主机操作系统)运行在同一个硬件上,通常需要增加一个虚拟化层来实现。该虚拟化层称为VMM(Virtual Machine Monitor,虚拟机监视器)。QEMU(MachineEmulator and Virtualizer)作为一个VMM提供了全虚拟化环境,在全虚拟化环境中,客户机操作系统不感知自己是虚拟机,也无需修改客户机操作系统。但是由于所有操作都需要软件模拟,设备访问过程中,频繁的陷入/陷出带来了严重的性能问题,因此半虚拟化技术VIRTIO(Virtual I/O Device,虚拟化I/O设备)应运而生。
[0003]VIRTIO是一个通用的半虚拟化I/O框架,VMM通过它模拟出一系列的虚拟化设备。VIRTIO框架主要包含3个部分:前端驱动(Front

end Driver)、后端设备(Back

endDevice)以及虚拟化队列(Virtqueue)。其中,前端驱动为虚拟机内部的VIRTIO模拟设备(比如常见的VIRTIO网络设备,VIRTIO磁盘设备等)对应的驱动,前端驱动的作用是接收用户态的请求,然后按照协议将这些请求进行封装,发送到后端设备;后端设备通常在QEMU中实现,后端设备用来接收前端驱动发过来的I/O请求,然后对接收的数据进行解析,并从实际物理设备上完成收、发请求,并最终通过中断机制通知前端驱动;前端和后端的数据通过Virtqueue队列进行交互。在不同VIRTIO队列长短链交织的情况下,必须等上一个描述符内容返回后才知道有没有后续描述符,进而知道一条链是否结束,使得读描述符的性能比较低。

技术实现思路

[0004]本申请提供了一种描述符读取装置和设备、方法及集成电路,以解决现有技术中存在的技术缺陷。
[0005]本申请提供的技术方案包括:
[0006]第一方面,本申请提供了一种描述符读取装置,包括读模块和输出模块;
[0007]所述读模块的第一输入端和第一输出端适用于与内存设备通信连接;
[0008]所述读模块的第二输出端与所述输出模块的输入端通信连接;
[0009]所述读模块的第二输入端适用于与描述符请求输出端通信连接;
[0010]所述读模块,被配置为以设定的方式接收描述符请求,并将所述描述符请求发送至所述内存设备,以及
[0011]接收所述内存设备发送的描述符响应信息,将所述描述符响应信息发送至所述输出模块,其中,所述设定的方式指所述读模块在未接收到当前描述符请求对应的描述符响应信息的情况下,继续流水线式的接收下一个描述符请求,所述下一个描述符请求与当前
描述符请求处于不同的描述符链中;
[0012]所述输出模块,被配置为接收所述读模块发送的描述符响应信息,根据所述描述符响应信息中的队列信息将所述描述符响应信息存放在不同的队列中,在所述队列完整的情况下,输出所述队列中的描述符响应信息。
[0013]优选地,所述读模块包括读请求单元和读响应单元;
[0014]所述读请求单元的输出端作为所述读模块的第一输出端适用于与所述内存设备通信连接;
[0015]所述读请求单元的第一输入端作为所述读模块的第二输入端与所述描述符请求输出端通信连接;
[0016]所述读请求单元的第二输入端与所述读响应单元的第一输出端通信连接;
[0017]所述读响应单元的输入端作为所述读模块的第一输入端适用于与所述内存设备通信连接;
[0018]所述读响应单元的第二输入端与所述输出模块的输入端通信连接;
[0019]所述读请求单元,被配置为以所述设定的方式接收所述描述符请求,并将所述描述符请求发送至所述内存设备;
[0020]所述读响应单元,被配置为接收所述内存设备发送的描述符响应信息,将所述描述符响应信息发送至所述输出模块。
[0021]优选地,所述读响应单元还用于:
[0022]根据接收的所述描述符响应信息确定当前描述符请求所在的描述符链中是否还有其他描述符请求,若有,则根据所述当前描述符响应信息中的下一跳信息生成其他描述符请求,并将生成的所述其他描述符请求发送给所述读请求单元。
[0023]优选地,所述输出模块包括多个队列单元和调度单元;
[0024]所述多个队列单元并联在所述输出模块的输入端和所述调度单元的输入端之间;
[0025]所述多个队列单元,被配置为接收所述读模块发送的描述符响应信息,根据所述描述符响应信息中的队列信息存放所述描述符响应信息;
[0026]所述调度单元,被配置为在任意一个所述队列单元中的队列完整的情况下,获取所述队列完整的队列单元中的描述符响应信息,以及
[0027]输出所述队列中的描述符响应信息。
[0028]本专利技术第二方面提供一种描述符读取设备,包括前述的描述符读取装置,以及通知处理装置、读写请求处理装置和更新装置;
[0029]所述通知处理装置,被配置为接收前端设备的通知消息,根据所述通知消息确定描述符请求,并将所述描述符请求发送至所述描述符读取装置;
[0030]所述读写请求处理装置,被配置为根据所述描述符响应信息对缓存设备中的描述符数据进行修改,并将所述修改的结果生成状态记录;
[0031]所述更新装置,被配置为根据所述状态记录更新所述描述符请求。
[0032]本专利技术第三方面提供一种描述符读取方法,应用于前述的描述符读取装置,包括:
[0033]读模块以设定的方式接收描述符请求,并将所述描述符请求发送至所述内存设备;
[0034]所述读模块接收所述内存设备发送的描述符响应信息,根据所述描述符响应信息
继续读取下一个描述符响应信息,其中,所述设定的方式指所述读模块在未接收到当前描述符请求对应的描述符响应信息的情况下,继续流水线式的接收下一个描述符请求,所述下一个描述符请求与当前描述符请求处于不同的描述符链中;
[0035]所述输出模块根据所述描述符响应信息中的队列信息将所述描述符响应信息存放在不同的队列中,在所述队列完整的情况下,输出所述队列中的描述符响应信息。
[0036]优选地,所述方法还包括:
[0037]根据接收的所述描述符响应信息确定当前描述符请求所在的描述符链中是否还有其他描述符请求,若有,则根据所述当前描述符响应信息中的下一跳信息生成其他描述符请求,并将生成的所述其他描述符请求发送给所述读请求单元。
[0038]第四方面,本申请提供了一种集成电路,包括中央处理器CPU和ROM,其特征在于,所述CPU和ROM分别连接任一所述的描述符读取装置。
[0039]第五方面,本申请提供了一种电子设备,其特征在于,配置有前本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种描述符读取装置,其特征在于,包括读模块和输出模块;所述读模块的第一输入端和第一输出端适用于与内存设备通信连接;所述读模块的第二输出端与所述输出模块的输入端通信连接;所述读模块的第二输入端适用于与描述符请求输出端通信连接;所述读模块,被配置为以设定的方式接收描述符请求,并将所述描述符请求发送至所述内存设备,以及接收所述内存设备发送的描述符响应信息,将所述描述符响应信息发送至所述输出模块,其中,所述设定的方式指所述读模块在未接收到当前描述符请求对应的描述符响应信息的情况下,继续流水线式的接收下一个描述符请求,所述下一个描述符请求与当前描述符请求处于不同的描述符链中;所述输出模块,被配置为接收所述读模块发送的描述符响应信息,根据所述描述符响应信息中的队列信息将所述描述符响应信息存放在不同的队列中,在所述队列完整的情况下,输出所述队列中的描述符响应信息。2.根据权利要求1所述的装置,其特征在于,所述读模块包括读请求单元和读响应单元;所述读请求单元的输出端作为所述读模块的第一输出端适用于与所述内存设备通信连接;所述读请求单元的第一输入端作为所述读模块的第二输入端与所述描述符请求输出端通信连接;所述读请求单元的第二输入端与所述读响应单元的第一输出端通信连接;所述读响应单元的输入端作为所述读模块的第一输入端适用于与所述内存设备通信连接;所述读响应单元的第二输入端与所述输出模块的输入端通信连接;所述读请求单元,被配置为以所述设定的方式接收所述描述符请求,并将所述描述符请求发送至所述内存设备;所述读响应单元,被配置为接收所述内存设备发送的描述符响应信息,将所述描述符响应信息发送至所述输出模块。3.根据权利要求2所述的装置,其特征在于,所述读响应单元还用于:根据接收的所述描述符响应信息确定当前描述符请求所在的描述符链中是否还有其他描述符请求,若有,则根据所述当前描述符响应信息中的下一跳信息生成其他描述符请求,并将生成的所述其他描述符请求发送给所述读请求单元。4.根据权利要求1所述的装置,其特征在于,所述输出模块包括多个队列单元和调度单元;所述多个队列单元并联在所述输出模块的输入端和所述调度单元的输入端之间;所述多个队列单元,被配置为接收所述...

【专利技术属性】
技术研发人员:王建东马强史寅昭
申请(专利权)人:深圳云豹智能有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1