[发明专利]IO操作方法和装置在审
申请号: | 202011339490.X | 申请日: | 2020-11-25 |
公开(公告)号: | CN112328526A | 公开(公告)日: | 2021-02-05 |
发明(设计)人: | 何志川;王义东;李磊 | 申请(专利权)人: | 盛科网络(苏州)有限公司 |
主分类号: | G06F13/40 | 分类号: | G06F13/40 |
代理公司: | 苏州三英知识产权代理有限公司 32412 | 代理人: | 周仁青 |
地址: | 215000 江苏省苏州市*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | io 操作方法 装置 | ||
本发明公开了一种IO操作方法和装置,其中,所述IO操作方法,包括:判断当前IO是否是写操作;如果是,则在CPU向PCIe数据寄存器中写入待配置的表项内容的同时,在软件侧同步镜像所述待配置的表项内容;当PCIe控制器将所述待配置的表项内容写入芯片内存出错时,存储所述出错表项的硬件地址并产生中断;CPU在收到PCIe控制器的中断通知后,获取出错表项的硬件地址,以及从所述SDB中获取出错表项的表项内容,以执行回滚操作,再次执行IO写操作。通过所述IO操作方法和装置,可以解决现有技术中,PCIe操作执行效率低的问题的问题。
技术领域
本发明涉及计算机技术领域,特别是涉及一种IO操作方法和装置。
背景技术
在几乎所有的嵌入式系统中都有IO需求。高效率的IO操作对上层软件而言是至关重要的。比如现有数据中心的交换机可支持960K路由表,CPU每次往交换机芯片中配置一条路由表都需要若干次的IO操作。如果IO效率较低,则上层软件需要耗费大量时间等待这些IO操作完成,这对追求性能的用户来说是不可接受的。主流的IO操作大部分通过PCIe接口实现,高速外围组件互联(Peripheral Component Interconnect Express,PCI-Express)是一种高速串行计算机扩展总线标准,具有点对点传输、每个传输通道独享带宽等特点,因而得到了广泛的应用。
传统的一次PCIe写操作过程中,CPU只需按规定读写IO接口模块内部的寄存器,而IO接口模块则可以根据这些操作产生针对SwitchCore内部寄存器的访问。从CPU的角度来看,一次完整的PCIe写操作大致可以如图1所示。
现有技术的缺点是,每次PCIe操作后都需要等待芯片回复done信号并检查本次操作是否出错,然后才能继续处理下一次PCIe请求。在实际的应用过程中,绝大部分PCIe操作都不会产生错误,所以这种使用方式的效率显然是比较低的。
发明内容
本发明实施例所要解决的技术问题是,如何解决现有技术中,PCIe操作执行效率低的问题。
为了解决上述问题,本发明提供的技术方案如下:
一种IO操作方法,其中,包括:判断当前IO是否是写操作;如果是,则在CPU向PCIe数据寄存器中写入待配置的表项内容的同时,在软件侧同步镜像所述待配置的表项内容;当PCIe控制器将所述待配置的表项内容写入芯片内存出错时,存储所述出错表项的硬件地址并产生中断;CPU在收到PCIe控制器的中断通知后,获取出错表项的硬件地址,以及从所述SDB中获取出错表项的表项内容,以执行回滚操作,再次执行IO写操作。
较优的,上述IO操作方法中,所述在软件侧同步镜像所述待配置的表项内容包括:同步更新镜像SDB;所述镜像SDB为在软件侧镜像一份和芯片相同的内存。
较优的,上述IO操作方法中,于所述判断当前IO是否是写操作前还包括:CPU配置PCIe寄存器,包括配置本次PCIE操作类型、数据长度;以及,本次要访问的表项地址。
较优的,上述IO操作方法中,所述存储所述出错表项的硬件地址包括:将所述出错表项的硬件地址存储于一先进先出队列;所述获取出错表项的硬件地址包括:从所述先进先出队列中获取所述出错表项的硬件地址。
较优的,上述IO操作方法中,所述PCIe控制器的读写处理单元将所述待配置的表项内容写入芯片内存中;所述PCIe控制器的错误处理单元在所述待配置的表项内容写入芯片内存出错时,产生中断并通知CPU。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于盛科网络(苏州)有限公司,未经盛科网络(苏州)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011339490.X/2.html,转载请声明来源钻瓜专利网。