基于Zynq的动态可重构框架及方法与流程

文档序号:17160410发布日期:2019-03-20 00:37阅读:1184来源:国知局
基于Zynq的动态可重构框架及方法与流程

本发明属于嵌入式系统应用技术领域。



背景技术:

近年来,随着低功耗器件的发展,嵌入式系统已经成为应用和研究的热点。随着应用环境越来越复杂,人们对系统提出了更高的要求,希望系统更高效地处理计算任务、具有更灵活的硬件配置方式和外设接口。但是,嵌入式系统通常硬件资源不够丰富,且对体积和功耗有明确的约束。



技术实现要素:

本发明是为了解决现有嵌入式系统对体积和功耗有约束,硬件资源不丰富的问题,现提供基于zynq的动态可重构框架及方法。

基于zynq的动态可重构框架,包括zynq和i/o转换板,zynq通过pcie总线与嵌入式系统进行数据通信,zynq通过i/o转换板与外部设备建立连接,

zynq中包括i/o接口逻辑重构单元和计算任务重构单元,

i/o接口逻辑重构单元包括以下模块:

用于利用zynq的处理器系统检测当前接入的i/o转换板类型的模块,

用于通过查询i/o转换板的存储信息获得外部设备信息的模块,

用于根据外部设备信息对zynq中i/o接口的动态可重构区域进行重新配置,使得zynq的i/o接口逻辑与外部设备相匹配,完成i/o接口逻辑重构的模块;

计算任务重构单元包括以下模块:

用于根据嵌入式系统的任务需要对zynq的计算任务区域进行重新配置,完成计算任务区域逻辑重构的模块。

上述i/o接口逻辑重构单元还包括用于向嵌入式系统发出准备通信通知的模块。

上述i/o转换板包括存储器、转换芯片和在位信号检测模块;转换芯片用于将外部设备信息转换为适合zynq中可编程逻辑处理的信号,位信号检测模块用于检测在位信号,所述在位信号用于判断当前是否有外部设备接入zynq的i/o接口,存储器用于存储i/o转换板类型和外部设备信息。

基于zynq的动态可重构方法,包括i/o接口逻辑重构部分和计算任务重构部分,

i/o接口逻辑重构部分包括以下步骤:

将外部设备通过i/o转换板接入zynq的i/o接口,

利用zynq的处理器系统检测当前接入的i/o转换板类型,

通过查询i/o转换板的存储信息获得外部设备信息,

zynq根据外部设备信息对i/o接口的动态可重构区域进行重新配置,使得zynq的i/o接口逻辑与外部设备相匹配,完成i/o接口逻辑重构;

计算任务重构部分包括以下步骤:

将zynq通过pcie总线与嵌入式系统建立数据通信,

嵌入式系统根据任务需要对zynq的计算任务区域进行重新配置,完成计算任务区域逻辑重构。

上述i/o接口逻辑重构完成之后,zynq向嵌入式系统发出准备通信通知。

上述所述i/o转换板用于将外部设备信息转换为适合zynq中可编程逻辑处理的信号、用于检测在位信号、用于存储i/o转换板类型和外部设备信息,在位信号用于判断当前是否有外部设备接入zynq的i/o接口。

本发明以zynq为基础,结合fpga(field-programmablegatearray,现场可编程门阵列)的动态可重构技术设计了一种基于zynq的动态可重构框架及方法,能够提供计算任务重构与i/o接口重构功能,zynq中的pl能够为嵌入式系统提供计算任务的fpga硬件实现,从而加速计算任务的处理、提高系统的效率、降低整体功耗。计算任务的硬件实现能够辅助嵌入式系统进行任务处理,不仅提供计算资源,同时也减轻了嵌入式系统的负担。动态区域的功能应用了局部动态可重构技术,计算任务功能和与接入设备匹配的i/o接口逻辑按需进行重配置,提高了fpga的资源利用率。最终达到提高系统计算任务的效率、提供更多种类的i/o接口、提高系统的可扩展性的目的。

附图说明

图1为具体实施方式一所述的基于zynq的动态可重构框架的结构示意图;

图2为i/o接口重构流程图;

图3为i/o接口动态区域结构示意图;

图4为i/o接口转换板的结构示意图;

图5为i/o接口与zynq连接结构示意图;

图6为计算任务动态区域结构示意图;

图7为i/o接口重构逻辑示意图;

图8为具体实施方式二中i/o动态可重构接口部分的流程图;

图9为数据传输流程图。

具体实施方式

具体实施方式一:本实施方式所述的基于zynq的动态可重构框架,如图1所示,主要由内存、电源、存储卡、i/o板(即i/o转换板)以及zynq芯片组成,zynq通过pcie总线与嵌入式系统进行数据通信,zynq通过i/o转换板与外部设备建立连接。

zynq中包括i/o接口逻辑重构单元和计算任务重构单元,

i/o接口逻辑重构单元包括以下模块:

用于利用zynq的处理器系统检测当前接入的i/o转换板类型的模块,用于通过查询i/o转换板的存储信息获得外部设备信息的模块,用于根据外部设备信息对zynq中i/o接口的动态可重构区域进行重新配置,使得zynq的i/o接口逻辑与外部设备相匹配,完成i/o接口逻辑重构的模块,用于向嵌入式系统发出准备通信通知的模块

计算任务重构单元包括以下模块:

用于根据嵌入式系统的任务需要对zynq的计算任务区域进行重新配置,完成计算任务区域逻辑重构的模块。

i/o转换板包括存储器、转换芯片和在位信号检测模块;转换芯片用于将外部设备信息转换为适合zynq中可编程逻辑处理的信号,位信号检测模块用于检测在位信号,所述在位信号用于判断当前是否有外部设备接入zynq的i/o接口,存储器用于存储i/o转换板类型和外部设备信息。

其中,zynq是xilinx(赛灵思)公司推出的采用arm+fpga的异构多处理器体系结构,以arm处理器为核心,同时具备fpga的可编程性,具备asic的高性能和低功耗。zynq芯片结构由两部分构成,一部分是处理器系统(ps,processingsystem),另一部分是可编程逻辑(pl,programmablelogic)。ps部分中有arm处理器,既能够运行linux操作系统,也可以运行无操作系统的裸机程序;pl是fpga可编程逻辑,能够根据需要定制硬件设计。在zynq中arm和fpga之间使用工业标准的高级可扩展接口(advancedextensibleinterface,axi)连接方式,使得zynq内部通信兼具高带宽,低延迟的特点。

(1)内部互联设计。

在zynq动态可重构系统中,各个模块通过axi互联ip核进行联系,它能够提供多个axi主设备到多个axi从设备的数据通信接口,在硬件平台内部,采用axi互联ip核可以使得各个模块之间的联系更加容易,模块结构清晰,易于硬件设计和实现。各个主设备均可以通过地址访问的方式自由控制各个从设备。以axi互联ip核进行内部模块之间的连接,最多可以支持16个主设备和16个从设备。各个设备在ip核内部均有独享的数据传输信号,所以各个主从设备在实际数据传输过程中,能够保证各个设备独享带宽。这样不仅能够确保高速的数据传输速率,也提高了各种设备之间联系的灵活性。在本文的动态可重构系统中,挂载在同一块axi互联ip核上的各个主设备均可以控制其他的从设备。

动态可重构框架中使用了axi协议中的两种子协议,分别是axi4接口协议和axi4-lite接口协议。axi4接口协议是最高性能的数据传输协议,支持最高256位的数据传输,通常用于主设备访问内存等需要高速数据传输的应用场景。axi4-lite接口协议是axi接口协议的简化版本,不支持大数据量的传输,仅适用于寄存器映射方式的单次通信,由于其较低的数据传输效率,通常应用于寄存器访问和低速设备的数据传输。

(2)pcie数据传输设计。

本文的动态可重构框架通过pcie总线方式与嵌入式系统连接,相对于其他通信方式,pcie总线具有以下特点:

(2.1)pcie使用差分信号进行串行传输,即一条pcie通道需要2对差分信号,一对用来接收数据,一对用来发送数据。

(2.2)pcie使用点对点串行连接,四通道的数据传输速率可达2gb/s。

(3)ps和pl间数据通信。

在zyqn芯片中,arm和fpga之间的数据交互也是通过axi接口完成[30,41]。arm可以通过axi_hp(hightperformance)、axi_gp(generalpurpose)、axi_acp(acceleratorcoherencyport)与pl进行数据通信,这三种方式的应用环境和传输速率不同。其中axi_hp为arm提供了访问外部存储设备的高速通信链路,支持64位数据宽度,同时含有读缓冲和写缓冲的fifp进行数据缓存。在数据传输过程中可不使用处理器,独立通过dma控制器完成。axi_gp接口的数据宽度为32位,仅适用于较低速率的应用场景,比如arm对fpga中模块的寄存器配置。axi_acp接口为arm和fpga提供了低延迟的数据通信方式,fpga可以通过此接口访问arm部分的cache。

具体地,本实施方式zynq内部使用双总线结构,axi4-lite总线用来对各个模块进行寄存器配置,aximemerymap总线进行大数据量传输,硬件平台中ps部分进行i/o接口动态可重构配置,外部设备接入动态可重构接口时,ps部分将会检测到当前接入的i/o转换板类型,并通过查询i/o转换板上的存储得到设备信息,根据设备信息对i/o接口的动态重构区域进行重配置。在数据传输的过程中,数据将会保存在内存中,最后嵌入式系统可以从内存中获取到数据。

其中,i/o接口重构的研究目前已经有很多,通常来说,一个使用范围广泛,扩展性强的i/o接口重构设计需要包含外部识别,寄存器查询和配置,数据传输这三个步骤,如图2所示。

嵌入式系统能够通过一个动态可重构接口与多种外部设备进行数据传输。考虑到外部设备通常具有标准的通信接口,不做任何转换而使用一个接口兼容是不太现实的。而本实施方式在动态重构接口和外部设备之间单独设计了一个i/o板模块,可以将标准的外部设备接口转换到可重构设备上。i/o重构区域具有axi-lite接口和axi接口和设备连接信号,分别用来作寄存器控制、数据传输以及与外部设备通信,如图3所示。

由于不同i/o设备具有不同的电气标准和接口,且信号线的数量不同,因此,对于每种设备都需要单独设计一个i/o接口转换板来兼容动态可重构系统的i/o动态可重构接口。同时,在i/o接口转换板的内部集成了专用的芯片来进行信号转换,以便将在数据线中的数据传输信号转换为fpga能够处理的信号。

本实施方式中i/o接口转换板如图4所示。i/o转换板在整个i/o动态可重构接口的框架中扮演着连接外部设备和zynq的角色。其上的转换芯片是为了将外部设备的信号转换为适合fpga处理的信号,zynq能够通过检测在位信号得知当前是否有外部设备和i/o转换板接入动态重构接口,存储中存储了i/o转换板与外部设备接口的类型信息。

i/o接口动态识别需要i/o转换板上在位信号与存储的共同参与。当接入zynq的动态可重构接口时,zynq能够自动的检测到i/o接口转换板是否在位,以便决定是否进行读取i/o板存储的操作,硬件设计如图5所示。

eeprom是一种可应用于计算机的非易失性存储器,代表上电可编程只读存储器,能够应用于存储少量数据的电子设备,允许单个字节的擦除和重写。在本章的i/o接口动态识别方案中,使用eeprom作为i/o转换板上的存储,其内部存储了i/o接口转换板的信息,当在位信号被zynq检测到后,zynq能够通过iic接口获取到其中存储的设备信息。

在首次使用i/o板时,eeprom中并没有存储与i/o设备相匹配的设备信息,需要对其进行配置,本实施方式中使用vivado工具中提供的axi-iic核,将数据传输信号与动态可重构接口中用来访问eeprom的信号绑定之后,就可以通过zynq来对eeprom进行首次的数据配置。

动态可重构接口是i/o接口转换板与zynq动态可重构框架的数据传输接口,i/o接口转换板作为动态可重构框架与外部设备连接的中间部件,起到了将标准接口转换为可重构接口的作用。此处,需要根据不同的i/o设备进行设计。

下面举个例子。假设系统动态可重构接口兼容rs232,rs485,can三种通信方式和vga摄像头,动态可重构接口信号分配如表1。

表1动态可重构接口分配表

对于计算任务的重构,由嵌入式系统决定,通过查询当前计算任务区域使用哪种计算任务逻辑,来判断是否需要重配置。在计算任务区域的重配置完成之后,嵌入式系统通过pcie总线方式来进行计算任务处理。在zynq动态可重构框架中,要支持计算任务和扩展接口的数据通信需要内部进行设计。

具体的,计算任务的动态可重构是通过对嵌入式系统的应用场景及本身特点分析,最终目的是打破嵌入式系统的计算能力的局限性,结合异构多处理器体系结构和fpga的动态可重构技术为嵌入式系统提供额外计算能力,并高效利用有限的fpga硬件资源的一种方式。动态可重构框架为嵌入式系统提供额外计算资源。

在动态可重构框架中,各个模块通常都需要两种通信方式,一种是主设备通过axi-lite对模块的寄存器进行配置和控制,另一种是模块对存储器的数据传输。因此,考虑到计算任务的通用性以及各个计算任务在动态区域中需要统一的外部接口,计算任务的动态区域对外提供axi和axi-lite两种接口,主设备可以通过这两种接口对计算任务区域进行控制和数据传输,如图6所示。

具体实施方式二:本实施方式所述的基于zynq的动态可重构方法,包括i/o接口逻辑重构部分和计算任务重构部分,

i/o接口逻辑重构部分包括以下步骤:

将外部设备通过i/o转换板接入zynq的i/o接口,

利用zynq的处理器系统检测当前接入的i/o转换板类型,

通过查询i/o转换板的存储信息获得外部设备信息,

zynq根据外部设备信息对i/o接口的动态可重构区域进行重新配置,使得zynq的i/o接口逻辑与外部设备相匹配,完成i/o接口逻辑重构,zynq向嵌入式系统发出准备通信通知。

计算任务重构部分包括以下步骤:

将zynq通过pcie总线与嵌入式系统建立数据通信,

嵌入式系统根据任务需要对zynq的计算任务区域进行重新配置,完成计算任务区域逻辑重构。

本实施方式能够将设备的信息存储在i/o转换板中,通过读取i/o转换板上存储的内容来识别接入设备,使得对不同i/o设备具有更好的可扩展性,无论有多少种类i/o设备均使用固定数量的信号线。明显地,整个i/o接口的动态重构流程需要从硬件到驱动,再到软件多层次协同工作。首先要对嵌入式系统处理器arm、zynq的处理器ps和pl进行正确的任务划分,如表2所示。

表2各处理器的任务划分表

zynq中的ps具有独立的arm处理器,这一点是zynq相对于fpga的优势,因此在i/o接口的动态识别方案中仅zynq就可以完成i/o接口的动态识别,在i/o接口重构完成之后,嵌入式系统可以通过zynq动态可重构框架完成数据通信。

zynq可以根据接入的设备来识别i/o接口来决定什么时候重构,重构什么样的逻辑。本实施方式需要设备层、i/o接口转换板、zynq、嵌入式系统四部分,如图7所示。图7中,i/o接口转换板的设计是i/o接口动态可重构方法中的重要部分,由于外部设备通常具有标准的数据传输接口,而本实施方式中动态可重构的目标是一个动态可重构扩展接口,因此,需要将外部设备的标准接口转换为通用的动态可重构接口,同时还要具有板上存储,用来存储与设备匹配的信息,以便于i/o设备动态重构。在位信号的目的是为了让zynq识别i/o接口转换板是否接入动态可重构接口。

基于存储的i/o接口动态可重构需要软硬件部分协同工作,相对于前面多根信号线识别的方式具有更高的可扩展性,当有其他的设备需要兼容动态可重构接口时,只需要设计相应的i/o转换板和fpga内部通信逻辑。在zynq完成所有与重构相关的工作后,当设备和i/o板接入动态重构接口时,将会触发i/o接口重构,具体流程如下:

(1)设备和i/o接口接入动态重构接口;

(2)zynq检测到在位信号,读取i/o转换板中存储的设备信息,根据信息对i/o接口逻辑的动态区域进行重构;

(3)i/o接口逻辑重构完成后通知嵌入式系统i/o接口已准备就绪;

(4)嵌入式系统与外部设备进行通信。

本实施方式中,i/o动态可重构接口部分的独特优势是使用zynq的ps来对i/o接口动态区域进行重配置,从外部设备识别,读取i/o转换板设备信息,到ps查询相匹配的i/o接口动态区域逻辑和配置寄存器都由zynq来独立完成,所以在i/o接口重构过程中不需要嵌入式系统进行参与,如图8所示。

基于zynq的动态可重构方法,通过pcie总线与嵌入式系统进行数据通信,zynq可重构框架中fpga上的所有模块都可以由嵌入式系统通过pcie来进行控制,因此,嵌入式系统通过对fpga中i/o接口模块的操作,就可以完成嵌入式系统到接入zynq可重构接口的外部设备的数据传输,数据传输流程如图9所示。

zynq中的pl能够为嵌入式系统提供计算任务的fpga硬件实现,从而加速计算任务的处理、提高系统的效率、降低整体功耗。重构过程中的计算任务动态重构区域既可以采用传统的rtl设计方法,经过设计、综合、布局布线之后可以实现fpga的硬件设计;也可以采用hls高层次综合的设计方法。zynq所执行的计算任务是为嵌入式系统提供的,所以计算任务的选择由嵌入式系统来进行控制。重构过程如下:

(1)ps运行linux系统,并对局部重配置控制器进行初始化

(2)嵌入式系统加载pcie驱动后可根据计算任务需要通过pcie总线控制局部重配置控制器对计算任务区域进行重配置。

(3)计算任务重配置完成之后,可以通过pcie总线获取计算所需数据。

(4)计算完毕后,嵌入式系统通过pcie总线从zynq内存中获取相应的结果。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1