CN106662895B - 计算机设备和计算机设备数据读写的方法 - Google Patents

计算机设备和计算机设备数据读写的方法 Download PDF

Info

Publication number
CN106662895B
CN106662895B CN201580002875.8A CN201580002875A CN106662895B CN 106662895 B CN106662895 B CN 106662895B CN 201580002875 A CN201580002875 A CN 201580002875A CN 106662895 B CN106662895 B CN 106662895B
Authority
CN
China
Prior art keywords
module
write
queue
network equipment
read
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.)
Active
Application number
CN201580002875.8A
Other languages
English (en)
Other versions
CN106662895A (zh
Inventor
陈云
王海彬
顾雄礼
崔晓松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN106662895A publication Critical patent/CN106662895A/zh
Application granted granted Critical
Publication of CN106662895B publication Critical patent/CN106662895B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/10Streamlined, light-weight or high-speed protocols, e.g. express transfer protocol [XTP] or byte stream
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/02Protocol performance

Abstract

一种计算机设备和计算机设备数据读写的方法,以解决现有技术中计算机设备的CPU在进行远端数据的读写时时延大影响系统性能的问题。本发明实施例中的计算机设备的CPU与所述云控制器是通过DDR接口相连,由于DDR接口传输数据的速度高,不会产生中断。并且,所述CPU将读写操作请求转化为控制命令写入云控制器的发送队列模块后,由于所述云控制器是根据所述控制命令中的操作信息对所述网络设备进行所述读操作或所述写操作,所述CPU将控制命令写入发送队列模块后就不用等待云控制器的操作,可以继续其它业务处理,例如继续写入其它的控制命令,避免了CPU资源的浪费,提高了CPU的利用率。

Description

计算机设备和计算机设备数据读写的方法
技术领域
本发明涉及信息技术领域,特别涉及一种计算机设备和计算机设备数据读写的方法。
背景技术
随着数据中心的发展和大数据时代的临近,数据中心架构也经历从紧耦合的烟囱式的服务器架构发展到以虚拟化技术为中心的架构。为适应已经来临的大数据时代,现有数据中心应对未来大数据处理面临一系列挑战,包括P比特/秒的实时数据处理,按需动态资源分配及调整,大规模系统的能效提升等。由此,以资源池化、硬件解耦和硅光互连等特性的高通量计算机数据为中心应运而生。
在高通量计算机数据中心架构中,内存、输入输出资源等实现资源池化,高通量计算节点通过网络分别与内存资源池或输入输出资源池相连,实现资源的动态分配和调整,并提升系统的能效。硬件解耦因为资源池化,使得导致互连技术成为其中最为关键的技术,例如硅光互连等。目前在数据中心级的互连技术中,主要是以以太网互连技术为主,但是以太网本身复杂臃肿的协议栈和极高的互连延迟,使得其越来越不适应数据中心对数据进行快速,大容量交换的需求;而高带宽、低延迟的精简的以资源池化为中心的互连访问协议(PRAP,Pooled Resource Access Protocol)协议能够满足高通量计算机数据中心对低时延的要求。
解耦架构的高通量计算机我们目前的做法是采用云控制器(Cloud Controller)作为互连的关键模块,并采用PRAP互连协议连接计算池,远端存储(memory)资源池和输入输出(I/O)资源池等,并采用双倍数据速率(DDR,Double Data Rate)接口与中央处理器CPU连接。然而,当需要读取远端内存资源池或输入输出资源池中的数据时,由于网络的延迟云控制器无法在DDR规定的时间内返回所需的数据,就会造成当高通量计算机中的CPU通过网络访问的远端的内存资源池或输入输出资源池时,造成CPU的中断,带来访问延迟大,且CPU在中断期间无法进行其他操作而影响系统整体性能的问题。
发明内容
本发明实施例提供一种计算机设备和计算机设备数据读写的方法,以解决现有技术中计算机设备的CPU在进行远端数据的读写时时延大影响系统性能的问题。
为实现上述目的,本发明实施例的第一方面提供了一种计算机设备,包括中央处理器CPU和云控制器,所述云控制器包括发送队列模块和响应队列模块、双倍数据速率DDR接口和网络接口,其中,所述DDR接口用于所述CPU与所述云控制器连接,所述网络接口用于所述云控制器与网络设备连接;
所述CPU,用于在产生对所述网络设备的读写操作请求后,将所述读写操作请求转化为控制命令,并将所述控制命令写入所述发送队列模块,其中,所述控制命令用于指示所述云控制器对所述网络设备进行读操作或写操作,所述控制命令携带所述读操作或所述写操作的操作信息;
所述云控制器,用于在所述发送队列模块中的所述控制命令被触发时,根据所述控制命令中的操作信息对所述网络设备进行所述读操作或所述写操作,以及接收所述网络设备发送的响应消息,将所述网络设备发送的响应消息写入所述响应队列模块。
结合第一方面,本发明实施例第一方面的第一种可能的实现方式中,所述读写操作请求为读操作请求;
所述发送队列模块包括:发送命令队列模块和发送数据队列模块;
所述响应队列模块包括:响应命令队列模块和接收数据队列模块;
所述CPU,具体用于将所述读操作请求转化为读控制命令,并将所述读控制命令写入所述发送命令队列模块,其中,所述读控制命令携带读操作信息,用于指示所述云控制器根据所述读操作信息对所述网络设备进行读操作;
所述云控制器,具体用于在所述发送命令队列模块中的所述读控制命令被触发时,根据所述读控制命令中的所述读操作信息对所述网络设备进行所述读操作,以及接收所述网络设备发送的读响应消息,将所述网络设备发送的读响应消息写入所述响应命令队列模块,并将所述网络设备返回的所述读操作所要读取的数据写入所述接收数据队列模块。
结合本发明实施例第一方面的第一种可能的实现方式,本发明实施例的第一方面的第二种可能的实现方式中,所述读操作信息包括所述读操作所要读取的数据在所述网络设备中的地址以及所述读操作所要读取的数据的长度;或者,
所述读操作信息包括所述读操作所要读取的数据在所述网络设备中的节点地址和偏移地址,以及所述读操作所要读取的数据的长度。
结合本发明实施例第一方面的第一种可能的实现方式和第二种可能的实现方式,本发明实施例的第一方面的第三种可能的实现方式中:
所述CPU,还用于在向发送命令队列模块写入所述读控制命令之后,轮询查询所述响应命令队列模块是否存在所述网络设备发送的读响应消息,在所述CPU确定所述响应命令队列模块存在所述网络设备发送的读响应消息且所述读响应消息为读成功响应消息时,从所述接收数据队列模块中读取所述读操作所要读取的数据。
结合本发明实施例第一方面的第一种可能的实现方式和第二种可能的实现方式,本发明实施例的第一方面的第四种可能的实现方式中:
所述云控制器,还用于确定所述响应命令队列模块是否存在所述网络设备发送的读响应消息,在所述响应命令队列模块存在所述网络设备发送的读响应消息时,通过中断的方式通知所述CPU;
所述CPU,还用于接收所述云控制器发送的中断消息,根据所述中断消息从所述响应命令队列模块中获取读响应消息,在获取到的读响应消息为读成功时,从所述接收数据队列模块中读取所述读操作所要读取的数据。
结合本发明实施例第一方面,在本发明实施例的第一方面的第五种可能的实现方式中:
所述读写操作请求为写操作请求;
所述发送队列模块包括:发送命令队列模块和发送数据队列模块;
所述响应队列模块包括:响应命令队列模块和接收数据队列模块;
所述CPU,具体用于将所述写操作请求转化为写控制命令,并将所述写控制命令写入所述发送命令队列模块,将写操作所要写的数据写入所述发送数据队列模块,其中,所述写控制命令携带写操作信息,用于指示所述云控制器根据所述写操作信息将所述写操作所要写的数据写入所述网络设备;
所述云控制器,具体用于在所述发送命令队列模块中的所述写控制命令被触发时,根据所述写控制命令中的所述写操作信息从所述发送数据队列模块中取出所述写操作所要写的数据并写入所述网络设备,以及在接收到所述网络设备发送的写响应消息时,将所述网络设备发送的写响应消息写入所述响应命令队列模块。
结合本发明实施例第一方面的第五种可能的实现方式,本发明实施例的第一方面的第六种可能的实现方式中:
所述写操作信息包括所述网络设备的地址,所述写操作所要写的数据的长度以及所述写操作所要写的数据在所述发送数据队列模块中的地址;或,
所述写操作信息包括所述网络设备的节点地址、偏移地址、所述写操作所要写的数据的长度以及所述写操作所要写的数据在所述发送数据队列模块中的地址。
结合本发明实施例第一方面的第五种可能的实现方式和第六种可能的实现方式,本发明实施例的第一方面的第七种可能的实现方式中:
所述CPU,还用于在向所述发送命令队列模块写入所述写控制命令之后,轮询查询所述响应命令队列模块是否存在所述网络设备发送的写响应消息,在所述CPU确定所述响应命令队列存模块存在所述网络设备发送的写响应消息时,获取所述写响应消息。
结合本发明实施例第一方面的第五种可能的实现方式和第六种可能的实现方式,本发明实施例的第一方面的第八种可能的实现方式中:
所述云控制器,还用于确定所述响应命令队列模块是否存在所述网络设备发送的写响应消息,在所述响应命令队列模块存在所述网络设备发送的写响应消息时,通过中断的方式通知所述CPU;
所述CPU,还用于接收所述云控制器发送的中断消息,根据所述中断消息从所述响应命令队列模块中获取写响应消息。
第二方面,本发明实施例还提供了一种计算机设备数据读写的方法,所述计算机设备包括中央处理器CPU、云控制器和网络接口,所述CPU通过双倍数据速率DDR接口与所述云控制器相连,所述网络接口用于所述云控制器与网络设备连接,包括:
所述CPU将对网络设备的读写操作请求转化为控制命令,并将所述控制命令写入所述云控制器的发送队列模块中,其中,所述控制命令用于指示所述云控制器对所述网络设备进行读操作或写操作,所述控制命令携带所述读操作或所述写操作的操作信息;
在所述发送队列模块中的所述控制命令被触发时,所述云控制器根据所述控制命令中的操作信息对所述网络设备进行所述读操作或所述写操作,并在接收所述网络设备发送的响应消息时,将所述网络设备发送的响应消息写入所述云控制器的响应队列模块中。
结合第二方面,本发明实施例第二方面的第一种可能的实现方式中,
所述读写操作请求为读操作请求;
相应的,所述CPU将对网络设备的读写操作请求转化为控制命令,并将所述控制命令写入所述云控制器的发送队列模块中包括:
所述CPU将所述读操作请求转化为读控制命令,并将所述读控制命令写入所述发送队列模块中的发送命令队列模块,其中,所述读控制命令携带读操作信息,用于指示所述云控制器根据所述读操作信息对所述网络设备进行读操作;
所述云控制器根据所述控制命令中的操作信息对所述网络设备进行所述读操作或所述写操作,并在接收所述网络设备发送的响应消息时,将所述网络设备发送的响应消息写入所述云控制器的响应队列模块中包括:
所述云控制器在所述发送命令队列模块中的所述读控制命令被触发时,根据所述读控制命令中的所述读操作信息对所述网络设备进行所述读操作;以及接收所述网络设备发送的读响应消息,将所述网络设备发送的读响应消息写入所述响应队列模块中响应命令队列模块,并将所述网络设备返回的所述读操作所要读取的数据写入所述响应队列模块中的接收数据队列模块。
结合本发明实施例第二方面的第一种可能的实现方式,本发明实施例的第二方面的第二种可能的实现方式中,
所述读操作信息包括所述读操作所要读取的数据在所述网络设备中的地址以及所述读操作所要读取的数据的长度;或者,
所述读操作信息包括所述读操作所要读取的数据在所述网络设备中的节点地址和偏移地址,以及所述读操作所要读取的数据的长度。
结合本发明实施例第二方面的第一种可能的实现方式和第二种可能的实现方式,本发明实施例的第二方面的第三种可能的实现方式中:
在向发送命令队列模块写入所述读控制命令之后,所述CPU轮询查询所述响应命令队列模块是否存在所述网络设备发送的读响应消息,在所述CPU确定所述响应命令队列模块存在所述网络设备发送的读响应消息且所述读响应消息为读成功响应消息时,从所述接收数据队列模块中读取所述读操作所要读取的数据。
结合本发明实施例第二方面的第一种可能的实现方式和第二种可能的实现方式,本发明实施例的第二方面的第四种可能的实现方式中:
所述云控制器确定所述响应命令队列模块是否存在所述网络设备发送的读响应消息,在所述响应命令队列模块存在所述网络设备发送的读响应消息时,通过中断的方式通知所述CPU;
所述CPU接收所述云控制器发送的中断消息,根据所述中断消息从所述响应命令队列模块中获取读响应消息,在获取到的读响应消息为读成功时,从所述接收数据队列模块中读取所述读操作所要读取的数据。
结合本发明实施例第二方面,在本发明实施例的第二方面的第五种可能的实现方式中:
所述读写操作请求为写操作请求;
相应的,所述CPU将对网络设备的读写操作请求转化为控制命令,并将所述控制命令写入所述云控制器的发送队列模块中包括:
所述CPU将所述写操作请求转化为写控制命令,并将所述写控制命令写入所述发送队列模块中的发送命令队列模块,将写操作所要写的数据写入所述发送队列模块中的发送数据队列模块,其中,所述写控制命令携带写操作信息,用于指示所述云控制器根据所述写操作信息将所述写操作所要写的数据写入所述网络设备;
所述云控制器根据所述控制命令中的操作信息对所述网络设备进行所述读操作或所述写操作,并在接收所述网络设备发送的响应消息时,将所述网络设备发送的响应消息写入所述云控制器的响应队列模块中包括:
所述云控制器在所述发送命令队列模块中的所述写控制命令被触发时,根据所述写控制命令中的所述写操作信息从所述发送数据队列模块中取出所述写操作所要写的数据并写入所述网络设备,以及在接收到所述网络设备发送的写响应消息时,将所述网络设备发送的写响应消息写入所述响应队列模块中的响应命令队列模块。
结合本发明实施例第二方面的第五种可能的实现方式,本发明实施例的第二方面的第六种可能的实现方式中:
所述写操作信息包括所述网络设备的地址,所述写操作所要写的数据的长度以及所述写操作所要写的数据在所述发送数据队列模块中的地址;或,
所述写操作信息包括所述网络设备的节点地址、偏移地址、所述写操作所要写的数据的长度以及所述写操作所要写的数据在所述发送数据队列模块中的地址。
结合本发明实施例第二方面的第五种可能的实现方式和第六种可能的实现方式,本发明实施例的第二方面的第七种可能的实现方式中:
所述CPU在向所述发送命令队列模块写入所述写控制命令之后,轮询查询所述响应命令队列模块是否存在所述网络设备发送的写响应消息,在所述CPU确定所述响应命令队列存模块存在所述网络设备发送的写响应消息时,获取所述写响应消息。
结合本发明实施例第二方面的第五种可能的实现方式和第六种可能的实现方式,本发明实施例的第二方面的第八种可能的实现方式中:
所述云控制器确定所述响应命令队列模块是否存在所述网络设备发送的写响应消息,在所述响应命令队列模块存在所述网络设备发送的写响应消息时,通过中断的方式通知所述CPU;
所述CPU接收所述云控制器发送的中断消息,根据所述中断消息从所述响应命令队列模块中获取写响应消息。
本发明实施例提供的计算机设备、计算机设备数据读写的方法,计算机设备的CPU与所述云控制器是通过DDR接口相连,由于DDR接口传输数据的速度高,不会产生中断。并且,所述CPU将读写操作请求转化为控制命令写入云控制器的发送队列模块后,由于所述云控制器会根据所述控制命令中的操作信息对所述网络设备进行所述读操作或所述写操作,所述CPU将控制命令写入发送队列模块后就不用等待云控制器的操作,可以继续其它业务处理,例如继续写入其它的控制命令,避免了CPU资源的浪费,提高了CPU的利用率和系统的整体性能。
附图说明
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为现有技术中高通量计算机数据中心的一种具体实现架构示意图;
图2为本发明实施例一种计算机设备结构示意图;
图3为本发明实施例计算机设备的一种具体实现方式结构示意图;
图4本发明实施例一种计算机设备实现远端数据读写的结构示意图;
图5为本发明实施例一种计算机设备数据读写方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
图1为现有技术中高通量计算机数据中心的一种具体实现架构示意图。计算机设备包括中央处理器,内存和云控制器,云控制器通过网络与远端的资源池相连。远端的资源池包括存储资源或输入输出资源等。存储资源,例如动态随机存取存储器(DRAM,DynamicRandom Access Memory),非易失性存储器(NVM,NonVolatile Memory)等组成的存储资源池;输入输出资源,例如网卡、快捷外围部件互联标准PCIE接口等组成输入输出资源池。需要说明的是,图1只是示例性的示出了高通量计算机数据中心的结构图,在具体实现中,还包括其它硬件资源(例如总线等)或其它资源池(例如计算资源池)等;以及计算机设备中,可以由多个中央处理器和多个内存组成计算资源池等。并且,图1中所示出的资源池中的资源的数量是示例性的数量,具体实现中可以包括两个以上的资源,例如内存资源池中可以包括两个以上的内存等。
在图1所示的示例中,计算机设备中的CPU除了本地内存(例如采用DDR接口的动态随机存取存储器DRAM)以外,还有系统分配的远端的存储空间,每个物理存储空间被映射到一个全局的地址空间中,该地址空间映射关系被保存在每个CPU对应的云控制器驱动中,比如CPU1总共有本地内存为10GB,远端存储资源为100G(即存储资源池中的存储空间,是通过网络相连并能够访问的存储资源)。假设CPU1可以访问远端存储资源池:存储空间A和存储空间B,存储空间A和存储空间B分别是容量为50G的存储资源,则CPU1总共可以访问110GB的存储空间:0至10GB为本地内存,10GB至110GB为远端存储资源池。
CPU1访问本地内存时,由于不需要网络传输,可以在规定时间内访问到数据。而当数据不在本地内存而是远端存储资源池,例如存储空间A或存储空间B中时,云控制器1需要通过网络访问远端存储资源池才能读取数据。由于需要通过网络传输,云控制器1无法在DDR规定的时间内返回给CPU1所需要的数据。因此,云控制器1在收到CPU1下发的读取数据请求后,把该请求打包,通过网络发送到存储资源池获取数据,同时向CPU1返回ECC或PAGE错误。CPU1收到云控制器1发送的错误信息时,中断当前的内存访问并挂起相应的访问线程。当云控制器1接收到从存储资源池发来的数据后,产生中断信号通知CPU1,CPU1根据接收到的中断信号,需要重新发送读取内存的请求才能够获取需要读取的数据。由于此时数据已经写入云控制器1的存储空间中,CPU1可以在DDR规定时间内获取到数据。因此,当CPU1需要访问的数据不在云控制器内部时,CPU1需要进行一次中断和2次的读取操作,造成访问延迟大,并且CPU1在中断期间无法进行其他操作影响到系统的整体性能。
为解决上述高通量计算机数据中心的CPU在访问非本地资源中的数据时,因网络延迟带来的访问延迟过大、系统性能不高的问题,本发明实施例提供了一种计算机设备10。如图2所示,该计算机设备10包括中央处理器CPU100和云控制器200,所述云控制器包括发送队列模块201和响应队列模块202、双倍数据速率DDR接口203和网络接口204,其中,所述DDR接口203用于所述CPU100与所述云控制器200连接,所述网络接口204用于所述云控制器200与网络设备连接;
所述CPU100,用于在产生对所述网络设备的读写操作请求后,将所述读写操作请求转化为控制命令,并将所述控制命令写入所述发送队列模块201,其中,所述控制命令用于指示所述云控制器200对所述网络设备进行读操作或写操作,所述控制命令携带所述读操作或所述写操作的操作信息;
所述云控制器200,用于在所述发送队列模块201中的所述控制命令被触发时,根据所述控制命令中的操作信息对所述网络设备进行所述读操作或所述写操作,以及接收所述网络设备发送的响应消息,将所述网络设备发送的响应消息写入所述响应队列模块202。
本发明实施例中,与所述计算机设备10通过网络接口204相连的网络设备,是与所述计算机设备10通过网络连接的设备,当CPU100需要访问所述网络设备中的数据时,由于需要通过云控制器200将数据读写的消息通过网络发送给所述网络设备,并接收所述网络设备通过网络返回的响应消息或数据。所述CPU100与所述云控制器200是通过DDR接口203相连,由于DDR接口203传输数据的速度高,不会产生中断。并且,CPU100将读写操作请求转化为控制命令写入云控制器200的发送队列模块201后,由于所述云控制器200会根据所述控制命令中的操作信息对所述网络设备进行所述读操作或所述写操作,所述CPU100将控制命令写入发送队列模块201后就不用等待云控制器200的操作,可以继续其它业务处理,例如继续写入其它的控制命令,避免了CPU100资源的浪费,提高了CPU100的利用率和计算机设备的整体性能。
在具体实现时,上述云控制器200中的发送队列模块201和响应队列模块202可以由寄存器或存储器等硬件来实现,并通过硬件接口与所述DDR接口等相连。例如,发送队列模块201通过寄存器等硬件存储CPU100写入的控制命令,响应队列模块202通过寄存器等硬件存储响应消息等。并且,发送队列模块201和响应队列模块202在存储相关命令或消息时,是以队列等有序排列的方式来存储,使得云控制器200也能够按照队列的形式读取命令或写入响应消息。本发明实施例中,所述发送队列模块201中的所述控制命令被触发,可以是在发送队列模块201被写入控制命令时,即触发云控制器200从该发送队列模块201中取出控制命令并执行。具体的,可以是云控制200中的一个控制单元或控制模块从发送队列模块201取出控制命令并执行。云控制器200中的控制单元或控制模块也是硬件控制器件,通过接口与发送队列模块201、响应队列模块202或网络接口204相连。
对于所述读写操作请求为读操作请求时,如图3所示:
所述发送队列模块201包括:发送命令队列模块2011和发送数据队列模块2012;
所述响应队列模块202包括:响应命令队列模块2021和接收数据队列模块2022;
所述CPU100,具体用于将所述读操作请求转化为读控制命令,并将所述读控制命令写入所述发送命令队列模块2011,其中,所述读控制命令携带读操作信息,用于指示所述云控制器200根据所述读操作信息对所述网络设备进行读操作;
所述云控制器200,具体用于在所述发送命令队列模块2011中的所述读控制命令被触发时,根据所述读控制命令中的所述读操作信息对所述网络设备进行所述读操作,以及接收所述网络设备发送的读响应消息,将所述网络设备发送的读响应消息写入所述响应命令队列模块2021,并将所述网络设备返回的所述读操作所要读取的数据写入所述接收数据队列模块2022。
具体的,上述将所述读操作请求转化为读控制命令,并将所述读控制命令写入所述发送命令队列模块2011,是由运行在CPU100中的驱动程序来实现。
其中,所述发送命令队列模块2011中的所述读控制命令被触发,可以是在所述读控制命令被写入所述发送命令队列模块2011时,就触发所述云控制器从所述发送命令队列模块2011中取出所述读控制命令。具体实现时,可以是所述云控制器中的一个控制单元或控制模块,在所述读控制命令被写入所述发送命令队列模块2011时,从所述发送命令队列模块2011取出所述读控制命令并执行。
所述读操作信息可以包括所述读操作所要读取的数据在所述网络设备中的地址以及所述读操作所要读取的数据的长度;或者,
所述读操作信息包括所述读操作所要读取的数据在所述网络设备中的节点地址和偏移地址,以及所述读操作所要读取的数据的长度。
可选的,所述云控制器200根据所述读控制命令中的所述读操作信息对所述网络设备进行所述读操作,可以是将所述读操作所要读取的数据在所述网络设备中的地址以及所述读操作所要读取的数据的长度组成通信包,通过网络发送给所述网络设备。或者,所述云控制器200将所述读操作所要读取的数据在所述网络设备中的节点地址和偏移地址,以及所述读操作所要读取的数据的长度组成通信包,通过网络发送给所述网络设备。具体的,上述通信包可以是PRAP数据包。
所述CPU100将所述读操作请求转化为读控制命令并写入所述发送命令队列模块2011之后,就可以执行其它操作,例如继续写入其它的读控制命令或写控制命令等。所述云控制器200可以在发送命令队列模块2011被写入所述读控制命令时,从所述发送命令队列模块2011中取出所述读控制指令并执行,并将执行读控制命令的结果写入响应命令队列模块2021,在获取到读取的数据时,写入所述接收数据队列模块2022。实现了将一个读操作请求,转化为CPU100写读控制命令与云控制器200执行读控制命令两个过程,CPU100不用等待云控制器200执行读操作的结果即可执行其它任务,只需在响应命令队列模块2021中被写入读操作的响应命令时再获取读操作的结果,避免了CPU100因等待读操作结果时间过长导致的中断,提高了CPU100的资源利用率和系统的整体性能。
本发明实施例中,所述CPU100可以通过轮询查询或中断通知的方式,获取读操作的结果。例如,所述CPU100在向发送命令队列模块写入所述读控制命令之后,轮询查询所述响应命令队列模块2021是否存在所述网络设备发送的读响应消息,即按照预设的时间间隔,重复查询所述响应命令队列模块2021是否存在所述网络设备发送的读响应消息。在所述CPU100确定所述响应命令队列模块2021中存在所述网络设备发送的读响应消息时,获取所述响应命令队列模块2021中的响应消息。并且,在所述读响应消息为读成功响应消息时,从所述接收数据队列模块2022中读取所述读操作所要读取的数据。
对于通过中断通知的方式获取读操作的结果,是所述云控制器200确定所述响应命令队列模块2021是否存在所述网络设备发送的读响应消息,在所述响应命令队列模块2021存在所述网络设备发送的读响应消息时,通过中断的方式通知所述CPU100。具体的,可以是所述响应命令队列模块2021在被写入读响应消息时,通过中断的方式通知所述CPU100。
所述CPU100接收所述云控制器200发送的中断消息,根据所述中断消息从所述响应命令队列模块2021中获取读响应消息,并在获取到的读响应消息为读成功时,从所述接收数据队列模块2022中读取所述读操作所要读取的数据。
在具体实现时,所述CPU100可以将轮询查询或中断通知的方式,写入所述云控制器200的一个寄存器中。所述云控制器200从该寄存器中获取所述CPU100写入的信息,如果写入该寄存器中的是轮询查询,则由所述CPU100主动轮询查询所述响应命令队列模块2021;如果写入该寄存器中的是中断通知,则所述响应命令队列2021在被写入读响应消息时,通过中断的方式通知所述CPU100。
对于所述读写操作请求为写操作请求时,如图3所示:
所述发送队列模块201包括:发送命令队列模块2011和发送数据队列模块2012;
所述响应队列模块202包括:响应命令队列模块2021和接收数据队列模块2022;
所述CPU100,具体用于将所述写操作请求转化为写控制命令,并将所述写控制命令写入所述发送命令队列模块2011,将写操作所要写的数据写入所述发送数据队列模块2012,其中,所述写控制命令携带写操作信息,用于指示所述云控制器200根据所述写操作信息将所述写操作所要写的数据写入所述网络设备;
所述云控制器200,具体用于在所述发送命令队列模块2011中的所述写控制命令被触发时,根据所述写控制命令中的所述写操作信息从所述发送数据队列模块2012中取出所述写操作所要写的数据并写入所述网络设备,以及在接收到所述网络设备发送的写响应消息时,将所述网络设备发送的写响应消息写入所述响应命令队列模块2021。
具体的,上述将所述写操作请求转化为写控制命令,并将所述写控制命令写入所述发送命令队列模块2011,是由运行在CPU100中的驱动程序来实现。
其中,所述发送命令队列模块2011中的所述写控制命令被触发,可以是在所述写控制命令被写入所述发送命令队列模块2011时,就触发所述云控制器从所述发送命令队列模块2011中取出所述写控制命令。具体实现时,可以是所述云控制器中的一个控制单元或控制模块,在所述写控制命令被写入所述发送命令队列模块2011时,从所述发送命令队列模块2011取出所述写控制命令并执行。
作为一种具体的实现方式,所述写操作信息包括所述网络设备的地址,所述写操作所要写的数据的长度以及所述写操作所要写的数据在所述发送数据队列模块中的地址;或,
所述写操作信息包括所述网络设备的节点地址、偏移地址、所述写操作所要写的数据的长度以及所述写操作所要写的数据在所述发送数据队列模块中的地址。
可选的,所述云控制器200所述写控制命令中的所述写操作信息从所述发送数据队列模块2012中取出所述写操作所要写的数据并写入所述网络设备,可以是将所述写操作所要写的数据,所述网络设备的地址以及所述写操作所要写的数据的长度组成通信包,通过网络发送给所述网络设备。或者,所述云控制器200将所述写操作所要写的数据,所述网络设备的节点地址、偏移地址、所述写操作所要写的数据的长度组成通信包,通过网络发送给所述网络设备。具体的,上述通信包可以是PRAP数据包。
所述CPU100将所述写操作请求转化为写控制命令并写入所述发送命令队列模块2011之后,就可以执行其它操作,例如继续写入其它的读控制命令或写控制命令等。所述云控制器200可以在发送命令队列模块2011被写入所述写控制命令时,从所述发送命令队列模块2011中取出所述写控制指令并执行,并将执行写控制命令的结果写入响应命令队列模块2021。实现了将一个写操作请求,转化为写控制命令并写入云控制器的发送命令队列模块2021与云控制器200执行写控制命令两个过程,CPU100不用等待云控制器200执行写操作的结果即可执行其它任务,只需在响应命令队列模块2021中被写入写操作的响应命令时再获取写操作的结果,避免了CPU100因等待写操作结果时间过长导致的中断,提高了CPU100的资源利用率和计算机设备的整体性能。
本发明实施例中,所述CPU100还可以通过轮询查询中断通知的方式,获取读操作的结果。例如,所述CPU100在向发送命令队列模块写入所述写控制命令之后,轮询查询所述响应命令队列模块2021是否存在所述网络设备发送的写响应消息,即按照预设的时间间隔,重复查询所述响应命令队列模块2021是否存在所述网络设备发送的写响应消息。在所述CPU100确定所述响应命令队列存模块2021存在所述网络设备发送的写响应消息时,获取所述写响应消息。
对于通过中断通知的方式获取写操作的结果,是所述云控制器200确定所述响应命令队列模块2021是否存在所述网络设备发送的写响应消息,在所述响应命令队列模块2021存在所述网络设备发送的写响应消息时,通过中断的方式通知所述CPU100。具体的,可以是所述响应命令队列模块2021在被写入读响应消息时,通过中断的方式通知所述CPU100。所述CPU100,还用于接收所述云控制器200发送的中断消息,根据所述中断消息从所述响应命令队列模块2021中获取写响应消息。
上述实施例中,发送命令队列模块2011,发送数据队列模块2012,响应命令队列模块2021和接收数据队列模块2022,可以由寄存器或存储器等硬件来实现,并通过硬件接口与所述DDR接口等相连。并且,发送命令队列模块2011和响应命令队列模块2021在存储相关命令或消息时,以及所述发送数据队列模块2012和接收数据队列模块2022在存储相关数据时,是以队列等有序排列的方式来存储,使得云控制器200也能够按照队列的形式读取或写入。具体的,可以是云控制200中的一个控制单元或控制模块从发送命令队列模块2011或响应命令队列模块2021取出控制命令并执行,从发送数据队列模块2012读取或向接收数据队列模块2022写入数据。云控制器200中的控制单元或控制模块也是硬件控制器件,通过接口与所述发送命令队列模块2011,所述发送数据队列模块2012,所述响应命令队列模块2021,所述接收数据队列模块2022以及所述网络接口204相连。
作为一种可选的实现方式,所述计算机设备10还包括内存,所述CPU100从所述接收数据队列模块2022获取所要读取的数据并写入所述内存,例如可以通过直接内存访问(DMA,Direct Memory Access)的方式将所述所要读取的数据写入所述内存中。同时,所述CPU100将所述写操作所要写的数据写入所述发送数据队列模块2012,是通过配置内存控制器(MC,Memory Control ler)中的DMA控制器,将所述内存中的所述写操作所要写的数据,写入所述发送数据队列模块2012。
本发明实施例中,所述网络设备是通过网络与所述计算机设备相连的设备,包括提供存储资源的设备或提供输入/输出资源的设备。可选的,所述提供存储资源的设备包括提供内存资源的设备。
上述实施例的计算机设备10可以应用于高通量计算机数据中心中,作为高通量计算机进行数据的处理。当所述计算机设备10作为高通量计算机进行数据处理时,所述计算机设备10可以包含两个以上的CPU和两个以上的内存,所述两个以上的CPU组成CPU资源池,分别处理高通量计算机数据中心中的数据。
需要说明的是,上述实施例中的DDR接口是目前CPU与内存之间进行数据读写的快速接口,所述CPU100与所述云控制器200之间为了实现快速的数据读写,使用的是该DDR接口以满足CPU快速获取数据的需求。但本发明实施例不限定CPU与云控制器之间采用接口的具体形态,其它能够快速读写数据并能够满足CPU对数据快速读写的需求的接口,例如读写速度与CPU和内存之间读写速度相等或相近的接口,都可以用来作为CPU与云控制器之间的接口。
下面以具体的例子说明本发明实施例一种计算机设备实现远端数据读写的方式的结构示意图。如图4所示,CPU资源池中的CPU1除了本地内存(例如采用DDR接口的DRAM)以外,还有系统分配的远端的存储空间(存储空间A和存储空间B),每个物理存储空间被映射到一个全局的地址空间中,该地址空间映射关系被保存在每个CPU对应的云控制器驱动中。本实施例以远端的存储空间只包含存储空间A和存储空间B为例进行说明,在具体实现时,还可以包含两个两个以上的存储空间。以CPU1总共有本地内存为10GB,远端存储为100G为例,CPU1可以访问远端存储资源池:存储空间A和存储空间B,存储空间A和存储空间B分别是容量为50G的存储空间,则CPU1总共可以访问110GB的存储空间:0至10GB为本地内存,10GB至110GB为远端存储资源池。
当CPU1访问本地内存时,如果是0-10GB的地址空间,则映射到本地内存中,通过DDR接口访问本地内存。
当CPU1访问10-110GB的地址空间时,例如要写1MB的数据到10-110GB的地址空间,则:
步骤1:CPU1的驱动首先把需要写的1MB的数据写到云控制器1的发送数据队列模块中,假设保存在发送数据队列模块中的地址为5KB;
步骤2:CPU1的驱动获取写该1MB数据在存储资源池中的地址,假设是第100GB的地址,则把该地址映射为存储空间B的40G的地址;因为存储空间A映射的地址范围是10G到60G,存储空间B映射的地址范围是60G到110G;
步骤3:CPU1的驱动把远端节点存储空间B的信息,存储空间B的偏移地址40G,发送数据队列模块中的地址5KB,数据长度1MB信息,本次命令的标识符ID(假设0x01)等信息写到云控制器1的发送命令队列模块中。CPU1的驱动把上述命令写到云控制器1的发送命令队列模块中,可以通过写一个特定的寄存器来实现。
步骤4:云控制器1发现发送命令队列模块非空以后,则从发送命令队列模块中获取一个新的命令(即该写1MB数据的命令),解析该命令,包括远端存储空间B的地址,存储空间B的偏移地址,命令标识符ID,数据长度等信息,并根据发送命令队列模块中的该1MB数据在发送数据队列模块的地址,从发送数据队列模块中获取相应的数据,组成通信包,通过网络发送给存储空间B。此时如果CPU1还有其他写操作,则CPU1的驱动可以重复执行上述步骤,继续往云控制器1中写相应的数据和命令。
步骤5:当该1MB的数据被写到存储空间B以后,会返回一个写数据完成的包(携带相应的命令标识符ID:0x01),CPU1的云控制器1接收到该返回的包后,则把写命令完成的信息写到响应命令队列模块中,CPU1的驱动通过查询该响应命令队列模块获得有标识符为0x01的写完成操作,或响应命令队列模块通过中断的方式通知CPU1接收到识符为0x01的写完成操作,CPU1即获知写往第100G的1MB的写操作已经完成。
当CPU1访问10到110GB的地址空间时,例如要从10到110GB的地址空间读1MB的数据时,则:
步骤1:CPU1的驱动获取到需要读数据在存储资源池的地址,假设是100GB的地址,则把该地址映射为B节点的40G的地址;
步骤2:CPU1的驱动把存储空间B的地址信息,要读取数据在存储空间B的偏移地址40G,数据长度1MB信息,本次命令的标识符ID(假设0x02)等信息写到云控制器1的发送命令队列模块中。其中,CPU1的驱动把读1MB数据的命令写到云控制器1的发送命令队列模块中,可以通过将读1MB数据的命令写入一个特定的寄存器来实现。
步骤3:云控制器1发现发送命令队列非空以后,从发送命令队列模块中获取该读1MB数据的命令,解析该命令,包括远端存储空间B的地址信息,在1MB数据在存储空间B的偏移地址,命令标识符ID,数据长度等信息,组成通信包,通过网络发送到存储空间B。同时,CPU1如果还有其他读或者写操作,则可以重复上面的步骤,但需要用不同的命令标识符表示不同的命令。
步骤4:当云控制器1从远端存储空间B读取到相应的数据后,把返回的数据保存在接收数据队列模块中,把命令标识符ID为0x02,在接收数据队列中的地址信息(10KB),数据长度1MB等信息写到响应命令队列模块中。
步骤5:CPU1的驱动程序可以通过轮询查询响应命令队列模块的状态,或者响应命令队列模块通过中断通知所述CPU1,CPU1的驱动通过读取响应命令队列模块,获知该读1MB数据的响应消息。当响应消息显示读成功时,根据读取到的数据在接收数据队列模块的信息从接收数据队列模块中读取该1MB的数据到本地内存中,或通过配置CPU的DMA的方式读取。
上述具体实现方式,是以存储资源的网络设备为例进行说明的。本发明实施例提供的计算机设备,还可以与提供输入/输出资源的设备实现数据的读写,在这种情况下,所述网络设备所述提供输入/输出资源的设备。
本发明实施例还提供了一种计算机设备数据读写方法,所述计算机设备包括中央处理器CPU、云控制器和网络接口,所述CPU通过双倍数据速率DDR接口与所述云控制器相连,所述网络接口用于所述云控制器与网络设备连接。参考图5,图5为本发明实施例一种计算机设备数据读写方法的流程示意图,所述方法包括:
步骤500:所述CPU将对网络设备的读写操作请求转化为控制命令,并将所述控制命令写入所述云控制器的发送队列模块中,其中,所述控制命令用于指示所述云控制器对所述网络设备进行读操作或写操作,所述控制命令携带所述读操作或所述写操作的操作信息;
步骤502:在所述发送队列模块中的所述控制命令被触发时,所述云控制器根据所述控制命令中的操作信息对所述网络设备进行所述读操作或所述写操作,并在接收所述网络设备发送的响应消息时,将所述网络设备发送的响应消息写入所述云控制器的响应队列模块中。
通过上述方法实施例,所述CPU与所述云控制器是通过DDR接口相连,由于DDR接口传输数据的速度高,不会产生中断。并且,所述CPU将读写操作请求转化为控制命令写入云控制器的发送队列模块后,由于所述云控制器根据所述控制命令中的操作信息对所述网络设备进行所述读操作或所述写操作,所述CPU将控制命令写入发送队列模块后就不用等待云控制器的操作,可以继续其它业务处理,例如继续写入其它的控制命令,避免了CPU资源的浪费,提高了CPU的利用率。
在具体实现时,如果所述读写操作请求为读操作请求,则所述CPU将对网络设备的读写操作请求转化为控制命令,并将所述控制命令写入所述云控制器的发送队列模块中包括:
所述CPU将所述读操作请求转化为读控制命令,并将所述读控制命令写入所述发送队列模块中的发送命令队列模块,其中,所述读控制命令携带读操作信息,用于指示所述云控制器根据所述读操作信息对所述网络设备进行读操作;
所述云控制器根据所述控制命令中的操作信息对所述网络设备进行所述读操作或所述写操作,并在接收所述网络设备发送的响应消息时,将所述网络设备发送的响应消息写入所述云控制器的响应队列模块中包括:
所述云控制器在所述发送命令队列模块中的所述读控制命令被触发时,根据所述读控制命令中的所述读操作信息对所述网络设备进行所述读操作;以及接收所述网络设备发送的读响应消息,将所述网络设备发送的读响应消息写入所述响应队列模块中响应命令队列模块,并将所述网络设备返回的所述读操作所要读取的数据写入所述响应队列模块中的接收数据队列模块。
其中,所述读操作信息可以包括所述读操作所要读取的数据在所述网络设备中的地址以及所述读操作所要读取的数据的长度;或者,所述读操作信息包括所述读操作所要读取的数据在所述网络设备中的节点地址和偏移地址,以及所述读操作所要读取的数据的长度。
所述CPU将所述读操作请求转化为读控制命令并写入所述发送命令队列模块之后,就可以执行其它操作,例如继续写入其它的读控制命令或写控制命令等。所述云控制器可以在发送命令队列模块被写入所述读控制命令时,从所述发送命令队列模块中取出所述读控制指令并执行,并将执行读控制命令的结果写入响应命令队列模块,在获取到读取的数据时,写入所述接收数据队列模块。实现了将一个读操作请求转化为CPU100写读控制命令与云控制器执行读控制命令两个过程,CPU不用等待云控制器执行读操作的结果即可执行其它任务,只需在响应命令队列模块中被写入读操作的响应命令时再获取读操作的结果,避免了CPU因等待读操作结果时间过长导致的中断,提高了CPU的资源利用率。
进一步,本发明实施例中,所述CPU可以通过轮询查询或中断通知的方式,获取读操作的结果。
当通过轮询查询获取读操作结果时,是所述CPU在向发送命令队列模块写入所述读控制命令之后,轮询查询所述响应命令队列模块是否存在所述网络设备发送的读响应消息,即按照预设的时间间隔,重复查询所述响应命令队列模块是否存在所述网络设备发送的读响应消息。在所述CPU确定所述响应命令队列模块存在所述网络设备发送的读响应消息且所述读响应消息为读成功响应消息时,从所述接收数据队列模块中读取所述读操作所要读取的数据。
当通过中断通知的方式获取读操作结果时,所述云控制器确定所述响应命令队列模块是否存在所述网络设备发送的读响应消息,在所述响应命令队列模块存在所述网络设备发送的读响应消息时,通过中断的方式通知所述CPU;所述CPU接收所述云控制器发送的中断消息,根据所述中断消息从所述响应命令队列模块中获取读响应消息,在获取到的读响应消息为读成功时,从所述接收数据队列模块中读取所述读操作所要读取的数据。
当所述读写操作请求为写操作请求时,所述CPU将对网络设备的读写操作请求转化为控制命令,并将所述控制命令写入所述云控制器的发送队列模块中包括:
所述CPU将所述写操作请求转化为写控制命令,并将所述写控制命令写入所述发送队列模块中的发送命令队列模块,将写操作所要写的数据写入所述发送队列模块中的发送数据队列模块,其中,所述写控制命令携带写操作信息,用于指示所述云控制器根据所述写操作信息将所述写操作所要写的数据写入所述网络设备;
所述云控制器根据所述控制命令中的操作信息对所述网络设备进行所述读操作或所述写操作,并在接收所述网络设备发送的响应消息时,将所述网络设备发送的响应消息写入所述云控制器的响应队列模块中包括:
所述云控制器在所述发送命令队列模块中的所述写控制命令被触发时,根据所述写控制命令中的所述写操作信息从所述发送数据队列模块中取出所述写操作所要写的数据并写入所述网络设备,以及在接收到所述网络设备发送的写响应消息时,将所述网络设备发送的写响应消息写入所述响应队列模块中的响应命令队列模块。
其中,所述写操作信息可以包括所述网络设备的地址,所述写操作所要写的数据的长度以及所述写操作所要写的数据在所述发送数据队列模块中的地址;或,所述写操作信息包括所述网络设备的节点地址、偏移地址、所述写操作所要写的数据的长度以及所述写操作所要写的数据在所述发送数据队列模块中的地址。
所述CPU将所述写操作请求转化为写控制命令并写入所述发送命令队列模块之后,就可以执行其它操作,例如继续写入其它的读控制命令或写控制命令等。所述云控制器可以在发送命令队列模块被写入所述写控制命令时,从所述发送命令队列模块中取出所述写控制指令并执行,并将执行写控制命令的结果写入响应命令队列模块。实现了将一个写操作请求,转化为写控制命令并写入云控制器的发送命令队列模块与云控制器执行写控制命令两个过程,所述CPU不用等待云控制器执行写操作的结果即可执行其它任务,只需在响应命令队列模块中被写入写操作的响应命令时再获取写操作的结果,避免了所述CPU因等待写操作结果时间过长导致的中断,提高了所述CPU的资源利用率。
进一步,本发明实施例中,所述CPU可以通过轮询查询或中断通知的方式,获取写操作的结果。
当通过轮询查询获取写操作结果时,是所述CPU在向所述发送命令队列模块写入所述写控制命令之后,轮询查询所述响应命令队列模块是否存在所述网络设备发送的写响应消息,在所述CPU确定所述响应命令队列存模块存在所述网络设备发送的写响应消息时,获取所述写响应消息。
当通过中断通知的方式获取写操作结果时,是所述云控制器确定所述响应命令队列模块是否存在所述网络设备发送的写响应消息,在所述响应命令队列模块存在所述网络设备发送的写响应消息时,通过中断的方式通知所述CPU;所述CPU接收所述云控制器发送的中断消息,根据所述中断消息从所述响应命令队列模块中获取写响应消息。
上述方法实施例的实现方式,还可以参考上述计算机设备10的实现方式来实现,不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (18)

1.一种计算机设备,包括中央处理器CPU和云控制器,其特征在于,所述云控制器包括发送队列模块和响应队列模块、双倍数据速率DDR接口和网络接口,其中,所述DDR接口用于所述CPU与所述云控制器连接,所述网络接口用于所述云控制器与网络设备连接;
所述CPU,用于在产生对所述网络设备的读写操作请求后,将所述读写操作请求转化为控制命令,并将所述控制命令写入所述发送队列模块,其中,所述控制命令用于指示所述云控制器对所述网络设备进行读操作或写操作,所述控制命令携带所述读操作或所述写操作的操作信息;
所述云控制器,用于在所述发送队列模块中的所述控制命令被触发时,根据所述控制命令中的操作信息对所述网络设备进行所述读操作或所述写操作,以及接收所述网络设备发送的响应消息,将所述网络设备发送的响应消息写入所述响应队列模块。
2.根据权利要求1所述的计算机设备,其特征在于:
所述读写操作请求为读操作请求;
所述发送队列模块包括:发送命令队列模块和发送数据队列模块;
所述响应队列模块包括:响应命令队列模块和接收数据队列模块;
所述CPU,具体用于将所述读操作请求转化为读控制命令,并将所述读控制命令写入所述发送命令队列模块,其中,所述读控制命令携带读操作信息,用于指示所述云控制器根据所述读操作信息对所述网络设备进行读操作;
所述云控制器,具体用于在所述发送命令队列模块中的所述读控制命令被触发时,根据所述读控制命令中的所述读操作信息对所述网络设备进行所述读操作,以及接收所述网络设备发送的读响应消息,将所述网络设备发送的读响应消息写入所述响应命令队列模块,并将所述网络设备返回的所述读操作所要读取的数据写入所述接收数据队列模块。
3.根据权利要求2所述的计算机设备,其特征在于:
所述读操作信息包括所述读操作所要读取的数据在所述网络设备中的地址以及所述读操作所要读取的数据的长度;或者,
所述读操作信息包括所述读操作所要读取的数据在所述网络设备中的节点地址和偏移地址,以及所述读操作所要读取的数据的长度。
4.根据权利要求2或3所述的计算机设备,其特征在于:
所述CPU,还用于在向发送命令队列模块写入所述读控制命令之后,轮询查询所述响应命令队列模块是否存在所述网络设备发送的读响应消息,在所述CPU确定所述响应命令队列模块存在所述网络设备发送的读响应消息且所述读响应消息为读成功响应消息时,从所述接收数据队列模块中读取所述读操作所要读取的数据。
5.根据权利要求2或3所述的计算机设备,其特征在于:
所述云控制器,还用于确定所述响应命令队列模块是否存在所述网络设备发送的读响应消息,在所述响应命令队列模块存在所述网络设备发送的读响应消息时,通过中断的方式通知所述CPU;
所述CPU,还用于接收所述云控制器发送的中断消息,根据所述中断消息从所述响应命令队列模块中获取读响应消息,在获取到的读响应消息为读成功时,从所述接收数据队列模块中读取所述读操作所要读取的数据。
6.根据权利要求1所述的计算机设备,其特征在于:
所述读写操作请求为写操作请求;
所述发送队列模块包括:发送命令队列模块和发送数据队列模块;
所述响应队列模块包括:响应命令队列模块和接收数据队列模块;
所述CPU,具体用于将所述写操作请求转化为写控制命令,并将所述写控制命令写入所述发送命令队列模块,将写操作所要写的数据写入所述发送数据队列模块,其中,所述写控制命令携带写操作信息,用于指示所述云控制器根据所述写操作信息将所述写操作所要写的数据写入所述网络设备;
所述云控制器,具体用于在所述发送命令队列模块中的所述写控制命令被触发时,根据所述写控制命令中的所述写操作信息从所述发送数据队列模块中取出所述写操作所要写的数据并写入所述网络设备,以及在接收到所述网络设备发送的写响应消息时,将所述网络设备发送的写响应消息写入所述响应命令队列模块。
7.根据权利要求6所述的计算机设备,其特征在于:
所述写操作信息包括所述网络设备的地址,所述写操作所要写的数据的长度以及所述写操作所要写的数据在所述发送数据队列模块中的地址;或,
所述写操作信息包括所述网络设备的节点地址、偏移地址、所述写操作所要写的数据的长度以及所述写操作所要写的数据在所述发送数据队列模块中的地址。
8.根据权利要求6或7所述的计算机设备,其特征在于:
所述CPU,还用于在向所述发送命令队列模块写入所述写控制命令之后,轮询查询所述响应命令队列模块是否存在所述网络设备发送的写响应消息,在所述CPU确定所述响应命令队列模块存在所述网络设备发送的写响应消息时,获取所述写响应消息。
9.根据权利要求6或7所述的计算机设备,其特征在于:
所述云控制器,还用于确定所述响应命令队列模块是否存在所述网络设备发送的写响应消息,在所述响应命令队列模块存在所述网络设备发送的写响应消息时,通过中断的方式通知所述CPU;
所述CPU,还用于接收所述云控制器发送的中断消息,根据所述中断消息从所述响应命令队列模块中获取写响应消息。
10.一种计算机设备数据读写的方法,所述计算机设备包括中央处理器CPU、云控制器和网络接口,所述CPU通过双倍数据速率DDR接口与所述云控制器相连,所述网络接口用于所述云控制器与网络设备连接,其特征在于:
所述CPU将对网络设备的读写操作请求转化为控制命令,并将所述控制命令写入所述云控制器的发送队列模块中,其中,所述控制命令用于指示所述云控制器对所述网络设备进行读操作或写操作,所述控制命令携带所述读操作或所述写操作的操作信息;
在所述发送队列模块中的所述控制命令被触发时,所述云控制器根据所述控制命令中的操作信息对所述网络设备进行所述读操作或所述写操作,并在接收所述网络设备发送的响应消息时,将所述网络设备发送的响应消息写入所述云控制器的响应队列模块中。
11.根据权利要求10所述的方法,其特征在于:
所述读写操作请求为读操作请求;
相应的,所述CPU将对网络设备的读写操作请求转化为控制命令,并将所述控制命令写入所述云控制器的发送队列模块中包括:
所述CPU将所述读操作请求转化为读控制命令,并将所述读控制命令写入所述发送队列模块中的发送命令队列模块,其中,所述读控制命令携带读操作信息,用于指示所述云控制器根据所述读操作信息对所述网络设备进行读操作;
所述云控制器根据所述控制命令中的操作信息对所述网络设备进行所述读操作或所述写操作,并在接收所述网络设备发送的响应消息时,将所述网络设备发送的响应消息写入所述云控制器的响应队列模块中包括:
所述云控制器在所述发送命令队列模块中的所述读控制命令被触发时,根据所述读控制命令中的所述读操作信息对所述网络设备进行所述读操作;以及接收所述网络设备发送的读响应消息,将所述网络设备发送的读响应消息写入所述响应队列模块中响应命令队列模块,并将所述网络设备返回的所述读操作所要读取的数据写入所述响应队列模块中的接收数据队列模块。
12.根据权利要求11所述的方法,其特征在于:
所述读操作信息包括所述读操作所要读取的数据在所述网络设备中的地址以及所述读操作所要读取的数据的长度;或者,
所述读操作信息包括所述读操作所要读取的数据在所述网络设备中的节点地址和偏移地址,以及所述读操作所要读取的数据的长度。
13.根据权利要求11或12所述的方法,其特征在于,所述方法还包括:
在向发送命令队列模块写入所述读控制命令之后,所述CPU轮询查询所述响应命令队列模块是否存在所述网络设备发送的读响应消息,在所述CPU确定所述响应命令队列模块存在所述网络设备发送的读响应消息且所述读响应消息为读成功响应消息时,从所述接收数据队列模块中读取所述读操作所要读取的数据。
14.根据权利要求11或12所述的方法,其特征在于,所述方法还包括:
所述云控制器确定所述响应命令队列模块是否存在所述网络设备发送的读响应消息,在所述响应命令队列模块存在所述网络设备发送的读响应消息时,通过中断的方式通知所述CPU;
所述CPU接收所述云控制器发送的中断消息,根据所述中断消息从所述响应命令队列模块中获取读响应消息,在获取到的读响应消息为读成功时,从所述接收数据队列模块中读取所述读操作所要读取的数据。
15.根据权利要求10所述的方法,其特征在于:
所述读写操作请求为写操作请求;
相应的,所述CPU将对网络设备的读写操作请求转化为控制命令,并将所述控制命令写入所述云控制器的发送队列模块中包括:
所述CPU将所述写操作请求转化为写控制命令,并将所述写控制命令写入所述发送队列模块中的发送命令队列模块,将写操作所要写的数据写入所述发送队列模块中的发送数据队列模块,其中,所述写控制命令携带写操作信息,用于指示所述云控制器根据所述写操作信息将所述写操作所要写的数据写入所述网络设备;
所述云控制器根据所述控制命令中的操作信息对所述网络设备进行所述读操作或所述写操作,并在接收所述网络设备发送的响应消息时,将所述网络设备发送的响应消息写入所述云控制器的响应队列模块中包括:
所述云控制器在所述发送命令队列模块中的所述写控制命令被触发时,根据所述写控制命令中的所述写操作信息从所述发送数据队列模块中取出所述写操作所要写的数据并写入所述网络设备,以及在接收到所述网络设备发送的写响应消息时,将所述网络设备发送的写响应消息写入所述响应队列模块中的响应命令队列模块。
16.根据权利要求15所述的方法,其特征在于:
所述写操作信息包括所述网络设备的地址,所述写操作所要写的数据的长度以及所述写操作所要写的数据在所述发送数据队列模块中的地址;或,
所述写操作信息包括所述网络设备的节点地址、偏移地址、所述写操作所要写的数据的长度以及所述写操作所要写的数据在所述发送数据队列模块中的地址。
17.根据权利要求15或16所述的方法,其特征在于,所述方法还包括:
所述CPU在向所述发送命令队列模块写入所述写控制命令之后,轮询查询所述响应命令队列模块是否存在所述网络设备发送的写响应消息,在所述CPU确定所述响应命令队列模块存在所述网络设备发送的写响应消息时,获取所述写响应消息。
18.根据权利要求15或16所述的方法,其特征在于,所述方法还包括:
所述云控制器确定所述响应命令队列模块是否存在所述网络设备发送的写响应消息,在所述响应命令队列模块存在所述网络设备发送的写响应消息时,通过中断的方式通知所述CPU;
所述CPU接收所述云控制器发送的中断消息,根据所述中断消息从所述响应命令队列模块中获取写响应消息。
CN201580002875.8A 2015-07-22 2015-07-22 计算机设备和计算机设备数据读写的方法 Active CN106662895B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/084816 WO2017012096A1 (zh) 2015-07-22 2015-07-22 计算机设备和计算机设备数据读写的方法

Publications (2)

Publication Number Publication Date
CN106662895A CN106662895A (zh) 2017-05-10
CN106662895B true CN106662895B (zh) 2019-10-18

Family

ID=57833686

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580002875.8A Active CN106662895B (zh) 2015-07-22 2015-07-22 计算机设备和计算机设备数据读写的方法

Country Status (9)

Country Link
US (1) US10951741B2 (zh)
EP (1) EP3296836B1 (zh)
JP (1) JP6498844B2 (zh)
CN (1) CN106662895B (zh)
AU (1) AU2015402888B2 (zh)
CA (1) CA2987807C (zh)
ES (1) ES2757673T3 (zh)
SG (1) SG11201709668SA (zh)
WO (1) WO2017012096A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10552271B2 (en) * 2017-07-31 2020-02-04 International Business Machines Corporation Switching servers without interrupting a client command-response queue
KR20210045073A (ko) 2019-10-16 2021-04-26 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 효율적인 메모리 배치
CN111061430B (zh) * 2019-11-27 2021-02-19 东南大学 一种多云环境下异构i/o细粒度感知的数据放置方法
CN111858447A (zh) * 2020-07-13 2020-10-30 深圳市集贤科技有限公司 一种从串口接收数据、处理数据帧的方法
CN112925481B (zh) 2021-03-09 2024-04-05 合肥兆芯电子有限公司 存储器管理方法、存储器存储装置及存储器控制电路单元
CN114296640B (zh) * 2021-12-13 2023-08-15 苏州浪潮智能科技有限公司 用于加速计算的数据驱动方法、装置、设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005165439A (ja) * 2003-11-28 2005-06-23 Hitachi Ltd データ転送装置、記憶デバイス制御装置、記憶デバイス制御装置の制御方法
JP2008226040A (ja) * 2007-03-14 2008-09-25 Hitachi Ltd 情報処理装置及びコマンド多重度制御方法
US8874836B1 (en) * 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
CN104704470A (zh) * 2012-10-10 2015-06-10 阿尔卡特朗讯公司 用于在云内自动部署地理分布式应用的方法和设备
WO2015095832A1 (en) * 2013-12-20 2015-06-25 Rambus Inc. A memory appliance for accessing memory

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7010575B1 (en) * 2000-03-31 2006-03-07 Emc Corporation Data storage system having separate data transfer section and message network having bus arbitration
GB0221464D0 (en) 2002-09-16 2002-10-23 Cambridge Internetworking Ltd Network interface and protocol
JP2004220216A (ja) * 2003-01-14 2004-08-05 Hitachi Ltd San/nas統合型ストレージ装置
JP2007027951A (ja) * 2005-07-13 2007-02-01 Matsushita Electric Ind Co Ltd Dmaコントローラおよび通信処理装置
JP5112138B2 (ja) 2008-03-28 2013-01-09 株式会社日立製作所 セッション管理方法、ストレージ装置、及び、計算機システム
US8832130B2 (en) * 2010-08-19 2014-09-09 Infosys Limited System and method for implementing on demand cloud database
US8589625B2 (en) * 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of reconstructive I/O read operations in a storage environment
US8751714B2 (en) 2010-09-24 2014-06-10 Intel Corporation Implementing quickpath interconnect protocol over a PCIe interface
CN202178776U (zh) * 2011-08-23 2012-03-28 杭州朗杰测控技术开发有限公司 一种基于can总线的高速通讯系统
US10445121B2 (en) * 2012-02-23 2019-10-15 Red Hat Inc. Building virtual machine disk images for different cloud configurations from a single generic virtual machine disk image
WO2014029076A1 (en) * 2012-08-21 2014-02-27 Intel Corporation Widi cloud mode
US9286130B2 (en) * 2012-08-27 2016-03-15 International Business Machines Corporation Optimizing virtual machine deployment time by temporarily allocating more processing resources during the initial deployment time of the virtual machine
US8831000B2 (en) * 2012-10-10 2014-09-09 Telefonaktiebolaget L M Ericsson (Publ) IP multicast service join process for MPLS-based virtual private cloud networking
US9344521B2 (en) * 2012-12-13 2016-05-17 Red Hat, Inc. Pluggable infrastructure for cloud provider selection
US20140172783A1 (en) * 2012-12-17 2014-06-19 Prowess Consulting, Llc System and method for providing computing environment delivery service with offline operations
US9256384B2 (en) 2013-02-04 2016-02-09 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for reducing write latency in a data storage system by using a command-push model
US9087007B2 (en) * 2013-03-14 2015-07-21 International Business Machines Corporation Generating fault tolerant connectivity API
US8769644B1 (en) * 2013-03-15 2014-07-01 Rightscale, Inc. Systems and methods for establishing cloud-based instances with independent permissions
CN103414764A (zh) * 2013-07-24 2013-11-27 广东电子工业研究院有限公司 一种云平台弹性存储系统及其弹性存储实现方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005165439A (ja) * 2003-11-28 2005-06-23 Hitachi Ltd データ転送装置、記憶デバイス制御装置、記憶デバイス制御装置の制御方法
JP2008226040A (ja) * 2007-03-14 2008-09-25 Hitachi Ltd 情報処理装置及びコマンド多重度制御方法
CN104704470A (zh) * 2012-10-10 2015-06-10 阿尔卡特朗讯公司 用于在云内自动部署地理分布式应用的方法和设备
WO2015095832A1 (en) * 2013-12-20 2015-06-25 Rambus Inc. A memory appliance for accessing memory
US8874836B1 (en) * 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage

Also Published As

Publication number Publication date
AU2015402888B2 (en) 2018-09-27
JP2018524751A (ja) 2018-08-30
EP3296836A4 (en) 2018-06-20
US10951741B2 (en) 2021-03-16
CA2987807A1 (en) 2017-01-26
JP6498844B2 (ja) 2019-04-10
WO2017012096A1 (zh) 2017-01-26
CA2987807C (en) 2019-12-31
EP3296836B1 (en) 2019-09-11
US20180159963A1 (en) 2018-06-07
ES2757673T3 (es) 2020-04-29
AU2015402888A1 (en) 2017-12-21
SG11201709668SA (en) 2017-12-28
CN106662895A (zh) 2017-05-10
EP3296836A1 (en) 2018-03-21

Similar Documents

Publication Publication Date Title
CN106662895B (zh) 计算机设备和计算机设备数据读写的方法
CN105993009B (zh) 通过非透明桥向PCIe集群中的计算资源传送MSI-X中断的方法和装置
US10423568B2 (en) Apparatus and method for transferring data and commands in a memory management environment
US20170249281A1 (en) Techniques for Use of Vendor Defined Messages to Execute a Command to Access a Storage Device
TWI239187B (en) System and method for managing and validating remote keys which correspond to outstanding data transactions
CN103559156B (zh) 一种fpga与计算机之间的通信系统
CN109558344B (zh) 一种适用于网络传输的dma传输方法及dma控制器
CN101957808B (zh) 多cpu间的通信方法、系统及cpu
CN103888293A (zh) 多通道fc网络数据仿真系统的数据通道调度方法
US7469309B1 (en) Peer-to-peer data transfer method and apparatus with request limits
CN103838516B (zh) 一种用于多核处理器高效访问iSCSI磁盘阵列的方法及系统
US20220222016A1 (en) Method for accessing solid state disk and storage device
CN113904938A (zh) 一种动态配置PCIe终端设备的系统和方法
CN116225992A (zh) 一种支持虚拟化仿真设备的NVMe验证平台及方法
WO2022032990A1 (zh) 一种命令信息传输方法、系统、装置及可读存储介质
CN104750634B (zh) 读取方法及系统,互联设备控制器
Nguyen et al. Reducing data copies between gpus and nics
CN115454881A (zh) Risc-v架构的调试系统及调试方法
CN106325377B (zh) 外部设备扩展卡及输入输出外部设备的数据处理方法
JP6965943B2 (ja) 構成管理装置、構成管理システム、構成管理方法、および、構成管理プログラム
WO2022141250A1 (zh) 数据传输方法和相关装置
CN116594951B (zh) 一种基于fpga的数据传输系统及方法
US10452579B2 (en) Managing input/output core processing via two different bus protocols using remote direct memory access (RDMA) off-loading processing system
CN116389357B (zh) 基于片上网络的空洞地址处理方法、装置、设备及介质
US20240104045A1 (en) System and method for ghost bridging

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
GR01 Patent grant
GR01 Patent grant