CN106648896A - 一种Zynq芯片在异构称多处理模式下双核共享输出外设的方法 - Google Patents
一种Zynq芯片在异构称多处理模式下双核共享输出外设的方法 Download PDFInfo
- Publication number
- CN106648896A CN106648896A CN201611218159.6A CN201611218159A CN106648896A CN 106648896 A CN106648896 A CN 106648896A CN 201611218159 A CN201611218159 A CN 201611218159A CN 106648896 A CN106648896 A CN 106648896A
- Authority
- CN
- China
- Prior art keywords
- fpga
- arm
- packet
- description information
- double
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种Zynq芯片在异构多处理模式下双核共享输出外设的方法。FPGA为每个ARM核分配不同服务优先级的共享内存,ARM核有待发报文时,首先读取和FPGA之间的共享内存的信息,在判定可写的条件下,按照约定的格式,向共享内存写入数据包和数据包描述信息,FPGA判断外设发送空闲的条件下,依照服务优先级,将共享内存中的数据包写入外设。本发明由FPGA统一管理外设和数据包调度,双ARM核间无需核间调度,每个ARM内核独立面对FPGA外设,比在ARM中统一管理、发送数据,效率有很大提高。用于数据吞吐量大、处理实时性要求高的电力系统控制领域。
Description
技术领域
本发明属于电力系统控制领域,适用于对装置空间要求较小,需要使用单片多核处理器,同时支持高处理实时性和人机接口等需要文件系统、网络协议等多种服务的需求。
背景技术
随着变电站自动化技术的不断发展和进步,智能变电站中各种自动化设备对于高速数据吞吐能力的要求迅速提高。
FPGA厂家Xilinx公司基于ARM处理内核和先进微处理器总线架构(AMBA)总线定义,利用FPGA的高速并行处理能力,开发生产了多核ARM+FPGA结构的Zynq系列芯片,可以很好的适应智能变电站中各种自动化设备的上述要求。
由于自动化控制设备存在快速继电保护算法的高实时性处理需求和人机接口、通信管理等多种服务需求,双核使用AMP(Asymmetric Multi-processing,异构多处理)模式,高实时性处理任务运行在裸跑环境,人机接口、通信管理运行在操作系统环境,能够更好的利用Zynq芯片的资源。
Zynq中的FPGA可以灵活的定制实现多种高速外设接口扩展,例如以太网、高速光纤串口等。这些外设被双核ARM共同使用,不可避免的要面对外设共享和竞争问题。SMP(Symmetrical Multi-Processing,对称多处理)模式下通常将此问题交给操作系统完成,大致的实现方法是系统底层维护一个外设缓冲,应用使用虚拟外设,本质上是把数据经多级缓存传递后统一输出;AMP模式下,如果采用这种方式,会导致数据处理效率降低很多,也就失去了采用AMP模式的意义。
发明内容
为解决上述问题,本申请提出了一种Zynq芯片在异构多处理模式下双核共享输出外设的方法,充分利用Zynq芯片中包含了FPGA的优势,双核ARM无需互通信息,数据输出任务交由FPGA管理。由于FPGA和双核都可以直接通信,可以获取两个方向的全部信息,利用流控机制,使得双核ARM使用公用外设时,可以认为外设是独享的,无需考虑核间资源竞争。
本发明具体采用以下技术方案。
一种Zynq芯片在异构多处理模式下双核共享输出外设的方法,所述Zynq芯片由双核ARM处理器和FPGA组成,双核ARM和FPGA之间通过片内的AMBA总线连接,双核ARM和FPGA共享外部存储器;其特征在于:
由FPGA取代ARM对于在FPGA内实现的共享输出外设的管理。
一种Zynq芯片在异构多处理模式下双核共享输出外设的方法,Zynq芯片包括两个ARM即双核ARM和一个FPGA,ARM和FPGA之间通过片内的AMBA总线连接,在FPGA内实现的共享输出外设,共享给双核使用;其特征在于,所述方法包括以下步骤:
步骤1:由Zynq芯片中的FPGA根据所在的硬件板卡条件,确定板卡外接以太网口的数量,并确定在逻辑资源允许情况下,可以定制的外接以太网数量和报文优先级数量,并将所定制的接以太网数量和报文优先级数量存储在固定地址的寄存器中供ARM读取;
步骤2:每个ARM从上述寄存器中读取信息后,根据工程的需要为各种工程应用报文定义优先级别;每个ARM为各种优先级别报文分配和FPGA之间的共享内存空间,包括存储区大小和存储区首地址,并以写寄存器的方式将共享内存的地址、空间大小信息传递给FPGA;
对于每种优先级的报文均分配2块内存空间,一个是数据包存储区,另一个是数据包描述信息存储区;数据包描述信息是一个定长度的报文描述信息,包括数据优先级、定时发送属性、数据长度、目标外设信息;
数据包存储区和数据包描述信息存储区,都有读指针和写指针,写指针只能由ARM写,FPGA可读,读指针只能由FPGA写,ARM可读;
步骤3:ARM产生了待发送的数据包后,首先决定待发送数据包的优先级,并为此数据包建立一个数据包描述信息;将数据包和数据包描述信息分别写入相应的共享内存空间地址;
步骤4:更新此优先级对应的数据包描述信息写指针,通知FPGA有新的待发数据;
步骤5:FPGA实时比较以太网发送模块的空闲状态,同时比较各数据包描述信息存储区的读写指针差;
步骤6:当发送模块空闲且此任一优先级的数据包描述信息存储区的读写指针差不为零,就触发一次报文发送,FPGA将最高优先级数据搬移进以太网发送模块,启动一次发送;然后返回步骤5,直到以太网发送模块对应的数据包描述信息存储区的读写指针相等,即数据缓冲区为空。
可以看出,整个过程,各ARM内核完全不关心另一个内核的工作情况,和FPGA之间也只需交互发送队列的信息,实现简单的流控即可。外设的共享完全由FPGA控制,极大的提高了数据输出效率。
本发明的有益效果是:充分利用Zynq芯片同时拥有ARM+FPGA的优势,双核ARM在AMP模式下使用公共外设时,双核间无需互通信息,只需认为外设是独享的,直接将数据写入各核独自使用的共享内存,数据输出的管理任务交由FPGA承担。这样可以最大化利用FPGA的并行处理能力,极大的简化双核ARM使用公用外设时的调度、竞争,降低了系统复杂度,相应提高了系统可靠性;
附图说明
图1为Zynq芯片硬件结构图;
图2为Zynq片内功能部署图;
图3为本发明公开的Zynq芯片在AMP模式下双核共享输出外设的方法的流程示意图。
具体实施方式
下面结合说明书附图对本发明的技术方案做进一步详细介绍。
Zynq芯片为Xilinx公司的Zynq双核系列芯片,是由双核ARM(图中2个Cortex-A9)和FPGA组成,双核ARM和FPGA之间通过片内的先进可扩展接口(AXI)总线连接,双核ARM和FPGA共享外部存储器。内部硬件结构如图1所示。一个数字化智能电子设备在AMP模式下功能分布如图2所示,保护计算、SV/GOOSE报文处理等高实时性任务运行在裸跑核,人机接口、通信管理等功能运行在操作系统核。
ARM和FPGA核间通过AXI标准总线连接。配置信息通过寄存器交互,比较灵活,但读写速率低;通信报文等高速数据通过流数据方式传输。数据流发送任务由ARM发起,内存及外设管理由FPGA控制。
如附图3所示,本发明公开的Zynq芯片在AMP模式下双核共享输出外设的方法包括以下步骤:
步骤1:由Zynq芯片中的FPGA根据所在的硬件板卡条件,确定板卡外接以太网口的数量,并确定在逻辑资源允许情况下,可以定制外接以太网数量和报文优先级数量,并将所定制的接以太网数量和报文优先级数量存储在固定地址的寄存器中供ARM读取;
步骤2:每个ARM从上述寄存器中读取信息后,根据工程的需要为各种工程应用报文定义优先级别;每个ARM为各种优先级别报文分配和FPGA之间的共享内存空间,包括存储区大小和存储区首地址,并以写寄存器的方式将共享内存的地址、空间大小等信息传递给FPGA;对于每种优先级的报文均分配2块内存空间,一个是数据包存储区,另一个是数据包描述信息存储区;数据包描述信息是一个定长度的报文描述信息,包括数据优先级、定时发送属性、数据长度、目标外设信息;
数据包存储区和数据包描述信息存储区,都有读指针和写指针,写指针只能由ARM写,FPGA可读,读指针只能由FPGA写,ARM可读;
步骤3:ARM产生了待发送的数据包后,首先决定待发送数据包的优先级,并为此数据包建立一个数据包描述信息;将数据包和数据包描述信息分别写入相应的共享内存空间地址;
步骤4:更新寄存器中定义的数据包描述信息写指针,通知FPGA有新的待发送数据;
步骤5:FPGA实时比较内部实现的共享以太网发送模块的空闲状态,同时比较各数据包描述信息存储区的读写指针差;
步骤6:当发送模块空闲且任一优先级的数据包描述信息存储区的读写指针差不为零,就触发一次报文发送,FPGA将最高优先级数据搬移进此共享以太网发送模块,启动一次发送;然后返回步骤5,直到以太网发送模块对应的数据包描述信息存储区的读写指针相等,即数据缓冲区为空。
两个ARM核发送数据的流程是一样的,即使优先级相同,由于它们到达FPGA时,传输的任务ID不同,FPGA根据优先级和任务ID此将报文列入相应的数据包存储区,建立不同的数据包描述信息进行管理。
Claims (2)
1.一种Zynq芯片在异构多处理模式下双核共享输出外设的方法,所述Zynq芯片由双核ARM处理器和FPGA组成,双核ARM和FPGA之间通过片内的AMBA总线连接,双核ARM和FPGA共享外部存储器;其特征在于:
由FPGA取代ARM对于在FPGA内实现的共享输出外设的管理。
2.一种Zynq芯片在异构多处理模式下双核共享输出外设的方法,Zynq芯片包括两个ARM即双核ARM和一个FPGA,ARM和FPGA之间通过片内的AMBA总线连接,在FPGA内实现的共享输出外设,共享给双核使用;其特征在于,所述方法包括以下步骤:
步骤1:由Zynq芯片中的FPGA根据所在的硬件板卡条件,确定板卡外接以太网口的数量,并确定在逻辑资源允许情况下,可以定制的外接以太网数量和报文优先级数量,并将所定制的接以太网数量和报文优先级数量存储在固定地址的寄存器中供ARM读取;
步骤2:每个ARM从上述寄存器中读取信息后,根据工程的需要为各种工程应用报文定义优先级别;每个ARM为各种优先级别报文分配和FPGA之间的共享内存空间,包括存储区大小和存储区首地址,并以写寄存器的方式将共享内存的地址、空间大小信息传递给FPGA;
对于每种优先级的报文均分配2块内存空间,一个是数据包存储区,另一个是数据包描述信息存储区;数据包描述信息是一个定长度的报文描述信息,包括数据优先级、定时发送属性、数据长度、目标外设信息;
数据包存储区和数据包描述信息存储区,都有读指针和写指针,写指针只能由ARM写,FPGA可读,读指针只能由FPGA写,ARM可读;
步骤3:ARM产生了待发送的数据包后,首先决定待发送数据包的优先级,并为此数据包建立一个数据包描述信息;将数据包和数据包描述信息分别写入相应的共享内存空间地址;
步骤4:更新此优先级对应的数据包描述信息写指针,通知FPGA有新的待发数据;
步骤5:FPGA实时比较以太网发送模块的空闲状态,同时比较各数据包描述信息存储区的读写指针差;
步骤6:当发送模块空闲且此任一优先级的数据包描述信息存储区的读写指针差不为零,就触发一次报文发送,FPGA将最高优先级数据搬移进以太网发送模块,启动一次发送;然后返回步骤5,直到以太网发送模块对应的数据包描述信息存储区的读写指针相等,即数据缓冲区为空。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611218159.6A CN106648896B (zh) | 2016-12-26 | 2016-12-26 | 一种Zynq芯片在异构称多处理模式下双核共享输出外设的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611218159.6A CN106648896B (zh) | 2016-12-26 | 2016-12-26 | 一种Zynq芯片在异构称多处理模式下双核共享输出外设的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106648896A true CN106648896A (zh) | 2017-05-10 |
CN106648896B CN106648896B (zh) | 2020-06-02 |
Family
ID=58828292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611218159.6A Active CN106648896B (zh) | 2016-12-26 | 2016-12-26 | 一种Zynq芯片在异构称多处理模式下双核共享输出外设的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106648896B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107959682A (zh) * | 2017-12-07 | 2018-04-24 | 中盈优创资讯科技有限公司 | 多安全业务的并行防护方法及装置 |
CN109343981A (zh) * | 2018-09-30 | 2019-02-15 | 南京国电南自维美德自动化有限公司 | 一种片上双核系统及其虚拟串口通信方法 |
CN109696878A (zh) * | 2019-01-03 | 2019-04-30 | 中电智能科技有限公司 | 基于多缓冲区的控制器 |
CN110059045A (zh) * | 2019-04-22 | 2019-07-26 | 仓领电子科技(上海)有限公司 | 一种基于fpga的非开挖传感装置总线共享系统、方法及装置 |
CN110545319A (zh) * | 2019-08-23 | 2019-12-06 | 武汉久同智能科技有限公司 | 一种SoC核系统的设计和核间任务通信的实现方法 |
CN111475202A (zh) * | 2020-03-31 | 2020-07-31 | 北京经纬恒润科技有限公司 | 基于异构多处理系统的核间通信方法及系统 |
CN113204517A (zh) * | 2021-04-30 | 2021-08-03 | 南京国电南自电网自动化有限公司 | 一种电力专用以太网控制器的核间共享方法 |
CN116401188A (zh) * | 2023-03-30 | 2023-07-07 | 昆易电子科技(上海)有限公司 | 基于fpga的处理方法、电路以及电子设备 |
EP4270191A1 (en) * | 2022-04-29 | 2023-11-01 | Schneider Electric Industries SAS | Embedded system and message processing method |
CN117331880A (zh) * | 2023-08-15 | 2024-01-02 | 北京城建智控科技股份有限公司 | 双核通信装置、方法及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102270189A (zh) * | 2011-06-17 | 2011-12-07 | 西安电子科技大学 | 基于fpga多核系统的核间通信方法 |
CN202267951U (zh) * | 2011-10-10 | 2012-06-06 | 国电南京自动化股份有限公司 | 一种基于fpga的多cpu共享数据采样系统 |
CN103345461A (zh) * | 2013-04-27 | 2013-10-09 | 电子科技大学 | 基于fpga的带有加速器的多核处理器片上网络系统 |
US20150347324A1 (en) * | 2014-05-30 | 2015-12-03 | S2C Inc. | System and Method for Shared Memory for FPGA Based Applications |
-
2016
- 2016-12-26 CN CN201611218159.6A patent/CN106648896B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102270189A (zh) * | 2011-06-17 | 2011-12-07 | 西安电子科技大学 | 基于fpga多核系统的核间通信方法 |
CN202267951U (zh) * | 2011-10-10 | 2012-06-06 | 国电南京自动化股份有限公司 | 一种基于fpga的多cpu共享数据采样系统 |
CN103345461A (zh) * | 2013-04-27 | 2013-10-09 | 电子科技大学 | 基于fpga的带有加速器的多核处理器片上网络系统 |
US20150347324A1 (en) * | 2014-05-30 | 2015-12-03 | S2C Inc. | System and Method for Shared Memory for FPGA Based Applications |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107959682A (zh) * | 2017-12-07 | 2018-04-24 | 中盈优创资讯科技有限公司 | 多安全业务的并行防护方法及装置 |
CN109343981A (zh) * | 2018-09-30 | 2019-02-15 | 南京国电南自维美德自动化有限公司 | 一种片上双核系统及其虚拟串口通信方法 |
CN109696878B (zh) * | 2019-01-03 | 2020-10-02 | 中电智能科技有限公司 | 基于多缓冲区的控制器 |
CN109696878A (zh) * | 2019-01-03 | 2019-04-30 | 中电智能科技有限公司 | 基于多缓冲区的控制器 |
CN110059045A (zh) * | 2019-04-22 | 2019-07-26 | 仓领电子科技(上海)有限公司 | 一种基于fpga的非开挖传感装置总线共享系统、方法及装置 |
CN110059045B (zh) * | 2019-04-22 | 2024-04-12 | 吴进国 | 一种基于fpga的非开挖传感装置总线共享系统、方法及装置 |
CN110545319A (zh) * | 2019-08-23 | 2019-12-06 | 武汉久同智能科技有限公司 | 一种SoC核系统的设计和核间任务通信的实现方法 |
CN111475202A (zh) * | 2020-03-31 | 2020-07-31 | 北京经纬恒润科技有限公司 | 基于异构多处理系统的核间通信方法及系统 |
CN113204517A (zh) * | 2021-04-30 | 2021-08-03 | 南京国电南自电网自动化有限公司 | 一种电力专用以太网控制器的核间共享方法 |
EP4270191A1 (en) * | 2022-04-29 | 2023-11-01 | Schneider Electric Industries SAS | Embedded system and message processing method |
CN116401188A (zh) * | 2023-03-30 | 2023-07-07 | 昆易电子科技(上海)有限公司 | 基于fpga的处理方法、电路以及电子设备 |
CN116401188B (zh) * | 2023-03-30 | 2024-04-12 | 昆易电子科技(上海)有限公司 | 基于fpga的处理方法、电路以及电子设备 |
CN117331880A (zh) * | 2023-08-15 | 2024-01-02 | 北京城建智控科技股份有限公司 | 双核通信装置、方法及电子设备 |
CN117331880B (zh) * | 2023-08-15 | 2024-11-01 | 北京城建智控科技股份有限公司 | 双核通信装置、方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN106648896B (zh) | 2020-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106648896A (zh) | 一种Zynq芯片在异构称多处理模式下双核共享输出外设的方法 | |
CN111104775B (zh) | 一种片上网络拓扑结构及其实现方法 | |
US8718065B2 (en) | Transmission using multiple physical interface | |
CN102098216B (zh) | 一种基于共享存储的航空全双工交换式以太网afdx协议交换引擎 | |
US9053266B2 (en) | Computing system with hardware bus management and method of operation thereof | |
US10476697B2 (en) | Network-on-chip, data transmission method, and first switching node | |
CN103580890B (zh) | 一种可重配置片上网络结构及其配置方法 | |
EP2486715B1 (en) | Smart memory | |
EP1779609B1 (en) | Integrated circuit and method for packet switching control | |
CN104657308A (zh) | 一种用fpga实现的服务器硬件加速的方法 | |
US8989220B2 (en) | High speed variable bandwidth ring-based system | |
CN112970010B (zh) | 流式传输平台流和架构 | |
CN101150487A (zh) | 一种零拷贝网络报文发送方法 | |
JP2007529808A (ja) | 集積回路及び通信サービスマッピング方法 | |
CN101539902A (zh) | 多计算机系统中节点的dma设备及通信方法 | |
CN106453109A (zh) | 一种片上网络通信方法及路由器 | |
CN112445735A (zh) | 一种联邦学习数据传输方法、计算机设备、系统及存储介质 | |
Jiang et al. | AXI-IC $^{\mathrm {RT}} $ RT: Towards a Real-Time AXI-Interconnect for Highly Integrated SoCs | |
CN105579952B (zh) | 利用伪停顿的高速通道上的emi抑制 | |
CN112395056B (zh) | 一种嵌入式非对称实时系统及电力二次设备 | |
US9304706B2 (en) | Efficient complex network traffic management in a non-uniform memory system | |
Hamann et al. | Building end-to-end IoT applications with QoS guarantees | |
CN103995789B (zh) | 一种直接内存存取的实现系统及方法 | |
CN114911725A (zh) | 通信方法、装置及系统 | |
CN103166863B (zh) | 集总式8x8低延迟高带宽交叉点缓存队列片上路由器 |
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 |