CN112328526A - Io操作方法和装置 - Google Patents
Io操作方法和装置 Download PDFInfo
- Publication number
- CN112328526A CN112328526A CN202011339490.XA CN202011339490A CN112328526A CN 112328526 A CN112328526 A CN 112328526A CN 202011339490 A CN202011339490 A CN 202011339490A CN 112328526 A CN112328526 A CN 112328526A
- Authority
- CN
- China
- Prior art keywords
- error
- pcie
- table entry
- entry
- hardware address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Retry When Errors Occur (AREA)
Abstract
本发明公开了一种IO操作方法和装置,其中,所述IO操作方法,包括:判断当前IO是否是写操作;如果是,则在CPU向PCIe数据寄存器中写入待配置的表项内容的同时,在软件侧同步镜像所述待配置的表项内容;当PCIe控制器将所述待配置的表项内容写入芯片内存出错时,存储所述出错表项的硬件地址并产生中断;CPU在收到PCIe控制器的中断通知后,获取出错表项的硬件地址,以及从所述SDB中获取出错表项的表项内容,以执行回滚操作,再次执行IO写操作。通过所述IO操作方法和装置,可以解决现有技术中,PCIe操作执行效率低的问题的问题。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种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。
为了解决上述的技术问题,本发明还公开了一种IO操作装置,其中,包括:CPU,用于判断当前IO是否是写操作;如果是,则在向PCIe数据寄存器中写入待配置的表项内容的同时,在软件侧同步镜像所述待配置的表项内容;以及,在收到PCIe控制器的中断通知后,获取出错表项的硬件地址,以及从所述SDB中获取出错表项的表项内容,以执行回滚操作,再次执行IO写操作;PCIe控制器,用于将所述待配置的表项内容写入芯片内存;并在出错时,存储所述出错表项的硬件地址,同时向CPU发出中断通知。
较优的,上述IO操作装置中,所述在软件侧同步镜像所述待配置的表项内容包括:同步更新镜像SDB;所述镜像SDB为在软件侧镜像一份和芯片相同的内存。
较优的,上述IO操作装置中,于所述判断当前IO是否是写操作前还包括:CPU配置PCIe寄存器,包括配置本次PCIE操作类型、数据长度;以及,本次要访问的表项地址。
较优的,上述IO操作装置中,所述存储所述出错表项的硬件地址包括:将所述出错表项的硬件地址存储于一先进先出队列;所述获取出错表项的硬件地址包括:从所述先进先出队列中获取所述出错表项的硬件地址。
较优的,上述IO操作装置中,所述PCIe控制器还包括:读写处理单元,用于将所述待配置的表项内容写入芯片内存中;错误处理单元,用于在所述待配置的表项内容写入芯片内存出错时,产生中断并通知CPU。
与现有技术相比,本发明的技术方案具有以下优点:
本发明将等待done信号和错误检查从每次PCIe写操作中删除,而不是像现有技术那样,等待芯片回复done信号并检查本次操作是否出错才能进行下一次IO操作,因此能够大幅提升CPU每次PCIe写操作的效率。同时,借助硬件和软件相结合的方式,通过在软件侧同步镜像待配置的表项内容,以及在读写出错时,记录出错表项的硬件地址,充分考虑了出错后的回滚处理。因此在确保PCIe写操作正确的前提下,能够明显提升IO写的效率,从而为数据中心或者5G等大路由(或其他大表项)应用场景提供了有力的支撑。
附图说明
图1是现有技术中PCIe写操作的流程示意图;
图2是本发明实施例1中PCIe写操作的流程示意图;
图3是本发明实施例1中IO操作方法的数据流程图。
具体实施方式
在现有技术中,每次PCIe操作后都需要等待芯片回复done信号并检查本次操作是否出错,然后才能继续处理下一次PCIe请求。在实际的应用过程中,绝大部分PCIe操作都不会产生错误,所以这种使用方式的效率显然是比较低的
本发明将等待done信号和错误检查从每次PCIe写操作中删除,而不是像现有技术那样,等待芯片回复done信号并检查本次操作是否出错,因此能够大幅提升CPU每次PCIe写操作的效率。同时,借助硬件和软件相结合的方式,通过在软件侧同步镜像待配置的表项内容,以及在读写出错时,记录出错表项的硬件地址,充分考虑了出错后的回滚处理。因此在确保PCIe写操作正确的前提下,能够明显提升IO写的效率,从而为数据中心或者5G等大路由(或其他大表项)应用场景提供了有力的支撑。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
实施例1
如图2所示,本实施例的一种IO操作方法方法包括:
步骤S101,CPU配置PCIe寄存器;
CPU配置PCIe寄存器,包括配置本次PCIe操作类型、数据长度;以及,本次要访问的表项地址等。
步骤S102,判断当前IO是否是写操作;
如果当前IO是写操作,则与现有技术相同,CPU会向PCIe数据寄存器中写入待配置的表项内容,同时,本实施例进入步骤S103;如果不是,则进入步骤S109,IO写操作处理结束。
步骤S103,在软件侧同步镜像所述待配置的表项内容。
在具体实施中,在软件侧同步镜像所述待配置的表项内容包括:同步更新镜像软件数据库(Software Data Base,SDB);所述镜像SDB为在软件侧镜像一份和芯片一模一样的内存。
步骤S104,PCIe控制器的读写处理单元负责将待配置的数据写入芯片内存SRAM中;
本步骤中,PCIe控制器所执行的操作和现有技术相同。
步骤S105,判断写入芯片内存是否出错;
PCIe控制器的读写处理单元将所述待配置的表项内容写入芯片内存,并判断写操作是否成功。如果出现错误,则进入步骤S106,否则进入步骤S109,IO写操作处理结束。
步骤S106,存储所述出错表项的硬件地址;
当判定写入操作出现错误时,PCIe控制器的读写处理单元将所述出错表项的硬件地址存储于一先进先出FIFO队列。
步骤S107,PCIe控制器产生中断通知CPU。
在具体实施中,所述PCIe控制器的错误处理单元在所述待配置的表项内容写入芯片内存出错时,产生中断并通知CPU。
步骤S108,CPU执行回滚操作。
在收到PCIe控制器的中断通知后,CPU会从所述先进先出FIFO队列获取出错表项的硬件地址,以及从所述SDB中获取出错表项的表项内容,从而再次尝试执行IO写操作,直到写操作成功。
本实施例通过芯片上报中断以及软件SDB的软硬件相结合的方式,在确保PCIe操作正确性的前提下,不仅能够提升CPU每次PCIe写操作的效率,而且充分考虑了出错后的回滚处理,显著提升了IO写操作的处理效率,从而为数据中心或者5G等大路由(或其他大表项)应用场景提供了有力的支撑。
实施例2
本实施例公开了一种IO操作装置,其中,包括:CPU,用于判断当前IO是否是写操作;如果是,则在向PCIe数据寄存器中写入待配置的表项内容的同时,在软件侧同步镜像所述待配置的表项内容;以及,在收到PCIe控制器的中断通知后,获取出错表项的硬件地址,以及从所述SDB中获取出错表项的表项内容,以执行回滚操作,再次执行IO写操作;PCIe控制器,用于在将所述待配置的表项内容写入芯片内存,并在出错时,存储所述出错表项的硬件地址,同时向CPU发出中断通知。
在具体实施中,所述在软件侧同步镜像所述待配置的表项内容包括:同步更新镜像SDB;所述镜像SDB为在软件侧镜像一份和芯片相同的内存。
在具体实施中,于所述判断当前IO是否是写操作前还包括:CPU配置PCIe寄存器,包括配置本次PCIE操作类型、数据长度;以及,本次要访问的表项地址。
在具体实施中,所述存储所述出错表项的硬件地址包括:将所述出错表项的硬件地址存储于一先进先出队列;所述获取出错表项的硬件地址包括:从所述先进先出队列中获取所述出错表项的硬件地址。
在具体实施中,所述PCIe控制器还包括:读写处理单元,用于将所述待配置的表项内容写入芯片内存中;错误处理单元,用于在所述待配置的表项内容写入芯片内存出错时,产生中断并通知CPU。
本领域技术人员可以理解的是,本实施例的一种IO操作装置和实施例1的一种IO操作方法为基于同一发明构思。本领域技术人员可以理解的是,本实施例的相应实施可以参照实施例1的相应内容,此处不再赘述。
以上是对本发明的实现方式的具体说明,但是本领域的技术人员将理解的是,前面实施方案是示例性的并且是出于清晰和理解的目地,而不限于本发明的范围,所意图的是,本领域的的技术人员在阅读了数码说并研究了附图之后,会明了其所有置换形式,增强形式,等同形式,组合形式,改进形式都被包括在本发明的实质范围内。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (10)
1.一种IO操作方法,其特征在于,包括:
判断当前IO是否是写操作;
如果是,则在CPU向PCIe数据寄存器中写入待配置的表项内容的同时,在软件侧同步镜像所述待配置的表项内容;
当PCIe控制器将所述待配置的表项内容写入芯片内存出错时,存储所述出错表项的硬件地址并产生中断;
CPU在收到PCIe控制器的中断通知后,获取出错表项的硬件地址,以及从所述SDB中获取出错表项的表项内容,以执行回滚操作,再次执行IO写操作。
2.如权利要求1所述IO操作方法,其特征在于,所述在软件侧同步镜像所述待配置的表项内容包括:同步更新镜像SDB;所述镜像SDB为在软件侧镜像一份和芯片相同的内存。
3.如权利要求1所述IO操作方法,其特征在于,于所述判断当前IO是否是写操作前还包括:
CPU配置PCIe寄存器,包括配置本次PCIE操作类型、数据长度;以及,本次要访问的表项地址。
4.如权利要求1所述IO操作方法,其特征在于,
所述存储所述出错表项的硬件地址包括:将所述出错表项的硬件地址存储于一先进先出队列;
所述获取出错表项的硬件地址包括:从所述先进先出队列中获取所述出错表项的硬件地址。
5.如权利要求1所述IO操作方法,其特征在于,所述PCIe控制器的读写处理单元将所述待配置的表项内容写入芯片内存中;所述PCIe控制器的错误处理单元在所述待配置的表项内容写入芯片内存出错时,产生中断并通知CPU。
6.一种IO操作装置,其特征在于,包括:
CPU,用于判断当前IO是否是写操作;如果是,则在向PCIe数据寄存器中写入待配置的表项内容的同时,在软件侧同步镜像所述待配置的表项内容;以及,在收到PCIe控制器的中断通知后,获取出错表项的硬件地址,以及从所述SDB中获取出错表项的表项内容,以执行回滚操作,再次执行IO写操作;
PCIe控制器,用于将所述待配置的表项内容写入芯片内存;并在出错时,存储所述出错表项的硬件地址,同时向CPU发出中断通知。
7.如权利要求6所述IO操作装置,其特征在于,所述在软件侧同步镜像所述待配置的表项内容包括:同步更新镜像SDB;所述镜像SDB为在软件侧镜像一份和芯片相同的内存。
8.如权利要求6所述IO操作装置,其特征在于,于所述判断当前IO是否是写操作前还包括:
CPU配置PCIe寄存器,包括配置本次PCIE操作类型、数据长度;以及,本次要访问的表项地址。
9.如权利要求6所述IO操作装置,其特征在于,
所述存储所述出错表项的硬件地址包括:将所述出错表项的硬件地址存储于一先进先出队列;
所述获取出错表项的硬件地址包括:从所述先进先出队列中获取所述出错表项的硬件地址。
10.如权利要求6所述IO操作装置,其特征在于,所述PCIe控制器还包括:
读写处理单元,用于将所述待配置的表项内容写入芯片内存中;
错误处理单元,用于在所述待配置的表项内容写入芯片内存出错时,产生中断并通知CPU。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011339490.XA CN112328526A (zh) | 2020-11-25 | 2020-11-25 | Io操作方法和装置 |
PCT/CN2021/132528 WO2022111482A1 (zh) | 2020-11-25 | 2021-11-23 | Io操作方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011339490.XA CN112328526A (zh) | 2020-11-25 | 2020-11-25 | Io操作方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112328526A true CN112328526A (zh) | 2021-02-05 |
Family
ID=74309574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011339490.XA Pending CN112328526A (zh) | 2020-11-25 | 2020-11-25 | Io操作方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112328526A (zh) |
WO (1) | WO2022111482A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254081A (zh) * | 2021-06-16 | 2021-08-13 | 中国人民解放军国防科技大学 | 一种交换芯片内控制通路镜像读写系统及方法 |
WO2022111482A1 (zh) * | 2020-11-25 | 2022-06-02 | 苏州盛科通信股份有限公司 | Io操作方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108363638A (zh) * | 2018-02-06 | 2018-08-03 | 盛科网络(苏州)有限公司 | 一种芯片内tcam存储器的纠错方法及系统 |
CN108959117A (zh) * | 2018-06-22 | 2018-12-07 | 深圳忆联信息系统有限公司 | H2d写操作加速方法、装置、计算机设备及存储介质 |
WO2019128575A1 (zh) * | 2017-12-28 | 2019-07-04 | 中兴通讯股份有限公司 | 一种中断处理方法及中断处理装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105224482B (zh) * | 2015-10-16 | 2018-05-25 | 浪潮(北京)电子信息产业有限公司 | 一种fpga加速卡高速存储系统 |
US10691353B1 (en) * | 2018-11-30 | 2020-06-23 | International Business Machines Corporation | Checking of data difference for writes performed via a bus interface to a dual-server storage controller |
CN112328526A (zh) * | 2020-11-25 | 2021-02-05 | 盛科网络(苏州)有限公司 | Io操作方法和装置 |
-
2020
- 2020-11-25 CN CN202011339490.XA patent/CN112328526A/zh active Pending
-
2021
- 2021-11-23 WO PCT/CN2021/132528 patent/WO2022111482A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019128575A1 (zh) * | 2017-12-28 | 2019-07-04 | 中兴通讯股份有限公司 | 一种中断处理方法及中断处理装置 |
CN108363638A (zh) * | 2018-02-06 | 2018-08-03 | 盛科网络(苏州)有限公司 | 一种芯片内tcam存储器的纠错方法及系统 |
CN108959117A (zh) * | 2018-06-22 | 2018-12-07 | 深圳忆联信息系统有限公司 | H2d写操作加速方法、装置、计算机设备及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022111482A1 (zh) * | 2020-11-25 | 2022-06-02 | 苏州盛科通信股份有限公司 | Io操作方法和装置 |
CN113254081A (zh) * | 2021-06-16 | 2021-08-13 | 中国人民解放军国防科技大学 | 一种交换芯片内控制通路镜像读写系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2022111482A1 (zh) | 2022-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
USRE48736E1 (en) | Memory system having high data transfer efficiency and host controller | |
CN107590099B (zh) | 一种多主机访问从机的方法、扩展装置及存储介质 | |
CN109582228B (zh) | 基于nand闪存控制器的自动读重试的硬件加速方法及装置 | |
CN112416250B (zh) | 基于NVMe的固态硬盘的命令处理方法及相关设备 | |
US10152274B2 (en) | Method and apparatus for reading/writing data from/into flash memory, and user equipment | |
CN112328526A (zh) | Io操作方法和装置 | |
CN114579480A (zh) | 一种缺页处理方法、装置、系统、电子设备及存储介质 | |
CN109285580B (zh) | 数据预处理装置、方法及异步双端随机存取存储器系统 | |
CN113031863B (zh) | Ssd命令相关性管理方法、装置、计算机设备及存储介质 | |
US20100146224A1 (en) | Request processing device, request processing system, and access testing method | |
CN112732176B (zh) | 基于fpga的ssd访问方法及装置、存储系统及存储介质 | |
CN106325377B (zh) | 外部设备扩展卡及输入输出外部设备的数据处理方法 | |
CN115269199A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN112667538B (zh) | 一种获取网卡标识号方法、系统、设备以及介质 | |
CN115344198A (zh) | 磁盘的数据读写方法、系统、终端设备及存储介质 | |
CN113220608A (zh) | 一种NVMe命令处理器及其处理方法 | |
CN118363901B (zh) | PCIe设备、电子组件及电子设备 | |
US7210007B2 (en) | Method of verifying a system in which a plurality of master devices share a storage device | |
CN112650445B (zh) | 一种固态硬盘执行Trim的方法和设备 | |
CN107391029B (zh) | 一种文件存储、读取方法及其对应的系统 | |
CN118426670A (zh) | 数据处理方法和数据处理装置 | |
TW201901445A (zh) | 偵測使用中邏輯頁面之資料儲存裝置與資料儲存方法 | |
CN110968537B (zh) | 一种基于pcie ssd的fpga搜索匹配方法 | |
CN117762836A (zh) | 加速单元、专用数据处理器、主机和读写信号传递方法 | |
CN111580756A (zh) | 一种数据操作方法、装置、设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 215000 unit 13 / 16, 4th floor, building B, No.5 Xinghan street, Suzhou Industrial Park, Jiangsu Province Applicant after: Suzhou Shengke Communication Co.,Ltd. Address before: 215000 unit 13 / 16, 4th floor, building B, No.5 Xinghan street, Suzhou Industrial Park, Jiangsu Province Applicant before: CENTEC NETWORKS (SU ZHOU) Co.,Ltd. |
|
CB02 | Change of applicant information |