CN113297114B - 一种基于加密卡pcie独立io支持多进程、多线程的方法 - Google Patents

一种基于加密卡pcie独立io支持多进程、多线程的方法 Download PDF

Info

Publication number
CN113297114B
CN113297114B CN202110560630.4A CN202110560630A CN113297114B CN 113297114 B CN113297114 B CN 113297114B CN 202110560630 A CN202110560630 A CN 202110560630A CN 113297114 B CN113297114 B CN 113297114B
Authority
CN
China
Prior art keywords
thread
space
pid
area
pcie
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
CN202110560630.4A
Other languages
English (en)
Other versions
CN113297114A (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.)
Qingchuang Wangyu Hefei Technology Co ltd
Original Assignee
Qingchuang Wangyu Hefei Technology 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 Qingchuang Wangyu Hefei Technology Co ltd filed Critical Qingchuang Wangyu Hefei Technology Co ltd
Priority to CN202110560630.4A priority Critical patent/CN113297114B/zh
Publication of CN113297114A publication Critical patent/CN113297114A/zh
Application granted granted Critical
Publication of CN113297114B publication Critical patent/CN113297114B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于加密卡PCIE独立IO支持多进程、多线程的方法,IO空间包括参数区、进程标识区和线程标识区,包括以下步骤:S1:读取配置文件,获取到进程个数和线程个数的配置信息;S2:进程初始化;S3:线程初始化;S4:数据传输;S5:IO空间释放。其中进程标识区用于对已使用进程进行标识,确保进程内进行线程初始化时IO空间是正确的避免同一空间重复使用,导致数据传输出现错误。线程标识是每个线程调用加解密服务时用于数据传输的IO空间,保证各线程稳定快速进行。通过对IO空间进行设计和划分,使独立IO空间具备支持多进程和多线程的方案,提高了通讯的性能和效率、避免出错。

Description

一种基于加密卡PCIE独立IO支持多进程、多线程的方法
技术领域
本发明涉及通信领域,更具体地说涉及一种基于加密卡PCIE独立IO支持多进程、多线程的方法。
背景技术
PCI-Express(peripheral component interconnect express)是一种高速串行计算机扩展总线标准,它的主要优势就是数据传输速率高,另外还有抗干扰能力强,传输距离远,功耗低等优点。PCIE通过的IO空间进行数据传输。
加密卡是一款通过PCIE插槽插在服务器上,通过PCIE和主机进行通讯的一个加解密服务产品。但是PCIE的IO空间是共享的,对外需要提供支持高性能的多进程,多线程的接口。但是现有的PCIE的IO空间在进行多进程、多线程信息传递时存在出现信息传递错位、数据传输效率低的问题。
发明内容
本发明的目的在于提供一种基于加密卡PCIE独立IO支持多进程、多线程的方法,将IO空间划分为参数区、进程标识区和线程标识区,提供多进程、多线程服务,实现数据快速、准确传输,用以解决上述背景技术中存在的技术问题。
本发明技术方案一种基于加密卡PCIE独立IO支持多进程、多线程的方法,IO空间包括参数区、进程标识区和线程标识区,本方法包括以下步骤:
S1:读取配置文件,获取到进程个数和线程个数的配置信息;
S2:进程初始化,获取IO空间中进程标识区的未被标识的区域,根据进程个数和线程个数分配进程的ID并标记,获取进程的PID并创建共享内存;
S3:线程初始化,根据进程的ID定位到IO空间线程标识的首地址,确定线程的THREADID,并把对应的IO空间做标记,将线程的THREADID和进程的PID绑定存在共享内存中;
S4:数据传输,服务接口接收传入线程的THREADID和数据,根据线程的THREADID和进程的PID确定IO空间中传输地址并进程数据传输;
S5:空间释放,根据线程的THREADID和进程的PID分别清除当前线程和进程的IO资源。
在一个优选地实施例中,未被标识的区域获取方法为:
A1:将PCIE的IO空间映射到主机侧;
A2:使用lockf获取文件锁;
A3:读取IO空间的进程标识区的值,根据读取数值确定未被标识的区域,并释放文件锁。
在一个优选地实施例中,进程标识区的初始值为0,进程标识区使用时数值为1,S2中进程的ID标记为1。
在一个优选地实施例中,所述共享内存通过shmget创建,所述共享内存的KEY为PID,所述共享内存中存储的内容为进程的PID和线程的THREADID,共享内存的大小为配置文件中线程个数*sizeof(PID)+进程个数*sizeof(THREADID)。
在一个优选地实施例中,S3中IO空间的标记值为1。
本发明技术方案的有益效果是:
将IO空间划分为参数区、进程标识区和线程标识区。其中进程标识区用于对已使用进程进行标识,确保进程内进行线程初始化时IO空间是正确的避免同一空间重复使用,导致数据传输出现错误。线程标识是每个线程调用加解密服务时用于数据传输的IO空间,保证各线程稳定快速进行。通过对IO空间进行设计和划分,使独立IO空间具备支持多进程和多线程的方案,提高了通讯的性能和效率、避免出错。
附图说明
图1为本发明整体流程图,
图2为本发明进程初始化流程图,
图3为本发明线程初始化流程体。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明的实施例是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
参照图1-图3,本发明技术方案一种基于加密卡PCIE独立IO支持多进程、多线程的方法,IO空间包括参数区、进程标识区和线程标识区。其中参数区是用作主机侧和卡侧进行信息传递;进程标识区是为了进行初始化的时候,能够知道当前已经有几个进程在使用了,确保进程内进行线程初始化时IO空间是正确的避免同一空间重复使用,导致数据传输出现错误;线程标识是每个线程调用加解密服务时用于数据传输的IO空间。
本方法包括以下步骤:
S1:读取配置文件,获取到进程个数和线程个数的配置信息;通过对配置文件进行分析确定该文件所含有的进程个数和线程个数,以便IO空间进行空间准备。
S2:进程初始化,获取IO空间中进程标识区的未被标识的区域,根据进程个数和线程个数分配进程的ID并标记,获取进程的PID并创建共享内存。进程初始化的目的是为配置文件准备好对应进程和线程所需的内存空间。在准备前,通过查看IO空间中空间标识区的标识情况,来确定未被标识的区域,即未被使用的区域,配置文件的传输工作在未被标识区域完成。
未被标识的区域获取方法为:A1:将PCIE的IO空间映射到主机侧;A2:使用lockf获取文件锁;A3:读取IO空间的进程标识区的值,根据读取数值确定未被标识的区域,并释放文件锁。
进程标识区的初始值为0,进程标识区使用时数值为1。0代表的是该区域未被使用,1代表的是该空间正在使用。在0代标识的区域内进行进程的ID分配(0,1…N),具体个数根据S1中获取的进程个数确定,然后对这些分配的进程ID标记,标记值为1,表示该进程的ID对应的空间区域已经在使用了,避免重复使用。
通过用getpid获取进程的PID,然后根据进程的PID创建共享内存。共享内存通过shmget创建,共享内存的KEY为PID,共享内存中存储的内容为进程的PID和线程的THREADID(根据支持的线程最大个数分析0到N),共享内存的大小为配置文件中线程个数*sizeof(PID)+进程个数*sizeof(THREADID)。
S3:线程初始化,获取互斥锁、获取文件锁;根据进程的ID定位到IO空间线程标识的首地址,确定线程的THREADID,并把对应的IO空间做标记,IO空间的标记值为1;释放文件锁,将线程的THREADID和进程的PID绑定存在共享内存中。
S4:数据传输,服务接口接收传入线程的THREADID和数据,根据线程的THREADID和进程的PID确定IO空间中传输地址并进程数据传输。
S5:空间释放,根据线程的THREADID和进程的PID分别清除当前线程和进程的IO资源。在数据传输完成后,对执行任务的线程的THREADID和进程的PID进行清除,将占用的空间区域释放出来,整个数据传输过程完成。
显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域及相关领域的普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。本发明中未具体描述和解释说明的结构、装置以及操作方法,如无特别说明和限定,均按照本领域的常规手段进行实施。

Claims (4)

1.一种基于加密卡PCIE独立IO支持多进程、多线程的方法,其特征在于,IO空间包括参数区、进程标识区和线程标识区,参数区用于主机侧和卡侧之间进行信息传递;进程标识区用于在进行初始化时确定当前进程使用个数;线程标识是每个线程调用加解密服务时用于数据传输的IO空间;本方法包括以下步骤:
S1:读取配置文件,获取到进程个数和线程个数的配置信息;
S2:进程初始化,获取IO空间中进程标识区的未被标识的区域,根据进程个数和线程个数分配进程的ID并标记,获取进程的PID并创建共享内存;
S3:线程初始化,根据进程的ID定位到IO空间线程标识的首地址,确定线程的THREADID,并把对应的IO空间做标记,将线程的THREADID和进程的PID绑定存在共享内存中;
S4:数据传输,服务接口接收传入线程的THREADID和数据,根据线程的THREADID和进程的PID确定IO空间中传输地址并进程数据传输;
S5:IO空间释放,根据线程的THREADID和进程的PID分别清除当前线程和进程的IO资源;
未被标识的区域获取方法为:
A1:将PCIE的IO空间映射到主机侧;
A2:使用lockf获取文件锁;
A3:读取IO空间的进程标识区的值,根据读取数值确定未被标识的区域,并释放文件锁。
2.根据权利要求1所述的基于加密卡PCIE独立IO支持多进程、多线程的方法,其特征在于,进程标识区的初始值为0,进程标识区使用时数值为1,S2中进程的ID标记为1。
3.根据权利要求2所述的基于加密卡PCIE独立IO支持多进程、多线程的方法,其特征在于,所述共享内存通过shmget创建,所述共享内存的KEY为PID,所述共享内存中存储的内容为进程的PID和线程的THREADID,共享内存的大小为配置文件中线程个数*sizeof(PID)+进程个数*sizeof(THREADID)。
4.根据权利要求3所述的基于加密卡PCIE独立IO支持多进程、多线程的方法,其特征在于,S3中IO空间的标记值为1。
CN202110560630.4A 2021-05-21 2021-05-21 一种基于加密卡pcie独立io支持多进程、多线程的方法 Active CN113297114B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110560630.4A CN113297114B (zh) 2021-05-21 2021-05-21 一种基于加密卡pcie独立io支持多进程、多线程的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110560630.4A CN113297114B (zh) 2021-05-21 2021-05-21 一种基于加密卡pcie独立io支持多进程、多线程的方法

Publications (2)

Publication Number Publication Date
CN113297114A CN113297114A (zh) 2021-08-24
CN113297114B true CN113297114B (zh) 2022-12-06

Family

ID=77323847

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110560630.4A Active CN113297114B (zh) 2021-05-21 2021-05-21 一种基于加密卡pcie独立io支持多进程、多线程的方法

Country Status (1)

Country Link
CN (1) CN113297114B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101551808A (zh) * 2009-05-13 2009-10-07 山东中创软件商用中间件股份有限公司 支持多进程的嵌入式的树型数据库技术
CN103605577A (zh) * 2013-12-04 2014-02-26 广州博冠信息科技有限公司 跨进程的资源共享方法和设备
CN103678553A (zh) * 2013-12-06 2014-03-26 上海寰创通信科技股份有限公司 基于共享内存设计的无线终端数据库构建方法
CN112433865A (zh) * 2020-11-23 2021-03-02 清创网御(合肥)科技有限公司 一种基于thrift框架threadpool模式的资源调用方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102340489B (zh) * 2010-07-20 2014-10-29 阿里巴巴集团控股有限公司 一种服务器之间的数据传输方法和服务器
US20170351639A1 (en) * 2016-06-06 2017-12-07 Cisco Technology, Inc. Remote memory access using memory mapped addressing among multiple compute nodes
CN107368362B (zh) * 2017-06-29 2020-10-30 上海阅文信息技术有限公司 一种对于磁盘读写数据的多线程/多进程无锁处理方法及***

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101551808A (zh) * 2009-05-13 2009-10-07 山东中创软件商用中间件股份有限公司 支持多进程的嵌入式的树型数据库技术
CN103605577A (zh) * 2013-12-04 2014-02-26 广州博冠信息科技有限公司 跨进程的资源共享方法和设备
CN103678553A (zh) * 2013-12-06 2014-03-26 上海寰创通信科技股份有限公司 基于共享内存设计的无线终端数据库构建方法
CN112433865A (zh) * 2020-11-23 2021-03-02 清创网御(合肥)科技有限公司 一种基于thrift框架threadpool模式的资源调用方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
虚拟内存密集型多线程程序的性能改进方法;陈健康等;《小型微型计算机***》;20180515(第05期);全文 *

Also Published As

Publication number Publication date
CN113297114A (zh) 2021-08-24

Similar Documents

Publication Publication Date Title
CN110809760B (zh) 资源池的管理方法、装置、资源池控制单元和通信设备
CN105630731A (zh) 一种多cpu环境下网卡数据处理方法和装置
CN104346229A (zh) 一种用于嵌入式操作***进程间通讯优化的处理方法
CN105653398A (zh) 一种智能分配操作***镜像方法
CN112650558B (zh) 数据处理方法、装置、可读介质和电子设备
DE102016121152A1 (de) Multiprozessorsystem mit Speicher, der durch den Multiprozessor gemeinsam verwendet wird, und Verfahren dafür
CN109446147B (zh) 一种网络存储设备与pcie设备的数据交互方法
CN111008162A (zh) 一种单PCIE插槽支持多PCIE Port的实现方法及***
CN111897666A (zh) 用于多进程之间通信的方法、设备及***
CN113297114B (zh) 一种基于加密卡pcie独立io支持多进程、多线程的方法
US11048557B2 (en) Methods and modules relating to allocation of host machines
CN109558210B (zh) 一种虚拟机应用主机gpu设备的方法及***
CN117539807A (zh) 一种数据传输方法、相关设备及存储介质
CN104753741A (zh) 一种网卡测试性能调节的方法及装置
US20100153678A1 (en) Memory management apparatus and method
EP1927939A1 (en) Secure MMC standard smartcard with multi-application operation capability, process of operation
CN108694040B (zh) 调用处理方法及装置、通信***
CN113268356B (zh) 基于LINUX***的多GPU板卡bounding的***、方法及介质
CN112615739B (zh) 一种多主机应用环境下ocp3.0网卡的适配方法及***
CN108140005B (zh) 在存储器***协议中提供文件信息的***及方法
TWI571745B (zh) 緩存管理方法及使用該方法的電子裝置
CN112000462A (zh) 一种基于共享外设资源的数据处理方法及装置
CN104049997B (zh) 基于复用技术的卫星接收机在线加载方法
CN109558755B (zh) 数据写入方法、电子设备和计算机可读存储介质
CN114465952B (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
GR01 Patent grant
GR01 Patent grant