首页 / 专利库 / 天文学 / 虫洞 / ARM处理器的NoC资源网络接口及其驱动方法

ARM处理器的NoC资源网络接口及其驱动方法

阅读:1017发布:2020-09-14

专利汇可以提供ARM处理器的NoC资源网络接口及其驱动方法专利检索,专利查询,专利分析的服务。并且本 发明 为ARM处理器的NoC资源网络 接口 及其驱动方法,本ARM处理器的NoC资源网络接口ARM-RNI,包括建立于FPGA中的AHB总线接口处理模 块 、发送和接收模块,经 数据总线 直接与ARM处理器的AHB总线连接。ARM中有Linux系统及其FPGA的设备驱动程序。ARM-RNI与路由 节点 相连接。本驱动方法为初始化后,发送、接收模块的输入、输出 缓冲器 的物理地址映射到ARM 内核 ,ARM发送的数据经ARM-RNI的发送模块传送到当地路由节点,片上网络转发的的数据经ARM-RNI的接收模块传送到ARM。本发明实现ARM与FPGA稳定高速的数据通信,减少了FPGA资源的使用,NoC可用功能强大的ARM、拓展其应用,增强NoC的扩展能 力 和网络通信能力。,下面是ARM处理器的NoC资源网络接口及其驱动方法专利的具体信息内容。

1.ARM处理器的NoC资源网络接口,所述片上网络NoC基于FPGA芯片,系统内的若干路由节点相互连接,系统结构为规则的2维网格拓扑结构,NoC中的路由节点采用基于虚通道技术的虫洞数据交换机制,通过无死的确定性XY维路由算法实现;资源节点通过资源网络接口与NoC的路由节点连接;其特征在于:
ARM处理器作为NoC的资源节点,所述ARM处理器的NoC资源网络接口连接该ARM处理器和NoC的某个路由节点;ARM处理器的NoC资源网络接口包括建立于FPGA中的AHB总线接口处理模、发送模块和接收模块,AHB总线接口处理模块与ARM处理器AHB总线时序相配合,经数据总线直接与ARM处理器的AHB总线连接,FPGA成为ARM处理器的一个外部存储器;ARM处理器中移植了嵌入式Linux操作系统,并有在Linux操作系统下FPGA的设备驱动程序;本资源网络接口与ARM处理器连接的数据总线主要有16位宽的数据线,以及地址线和控制信号线;本资源网络接口与片上网络的一个路由节点相连接,二者之间有握手信号线和发送、接收数据线;
发送模块包括FIFO输入数据缓存器、组包器和控制器,发送模块的控制器接收ARM处理器发出的数据,组包器对数据进行相应的打包处理,然后将数据在输入数据缓存器中暂存,再送入所连接的路由节点;
接收模块包括FIFO输出数据缓存器和应答器,接收模块的输出缓存器接收并暂存路由节点本地方向发送过来的数据,传递给ARM处理器,应答器根据输出缓存器存储状态对路由节点的数据传输请求给予对应的响应;
FIFO输入数据缓存器和FIFO输出数据缓存器为本资源网络接口的异步输入、输出缓冲器
2.根据权利要求1所述的ARM处理器的NoC资源网络接口,其特征在于:
所述FIFO输入数据缓存器和FIFO输出数据缓存器存储深度设置为8,宽度设置为34位。
3.根据权利要求1或2所述的ARM处理器的NoC资源网络接口的驱动方法,其特征在于主要步骤如下:
Ⅰ、初始化
启动ARM处理器Linux操作系统下的FPGA的设备驱动程序,初始化FPGA中的资源网络接口的各模块,注册FPGA资源网络接口设备;
Ⅱ、地址映射
将资源网络接口中发送模块的输入缓冲器和接收模块的输出缓冲器的物理地址映射到ARM处理器内核空间;
Ⅲ、发送和接收数据
作为资源节点的ARM处理器向资源网络接口所连接的当地路由节点发送数据时,ARM处理器的Linux系统调用驱动程序中的写操作程序,ARM处理器向资源网络接口发送数据,发送模块的输出缓冲器接收ARM处理器发送的数据,当输出缓冲器接收的数据达到其阈值,发送模块的组包器将数据打包,控制器向当地路由节点发出发送数据请求信号、接到当地路由节点的应答后,发送模块将组包的数据发送到当地路由节点,ARM处理器发送的数据进入片上网络;
作为资源节点的ARM处理器接收本资源网络接口所连接的当地路由节点传送的片上网络数据时,应用程序系统调用读操作程序,应答器检测输入缓冲器的存储状况,输入缓冲器存储的数据未达到阈值,ARM处理器将读进程置于休眠状态;接收模块的应答器得到当地路由节点的数据传送请求信号,给予当地路由节点准许传送的应答信号,接收模块的输入缓冲器接收当地路由器发送的片上网络数据,当输入缓冲器接收的数据达到其阈值,应答器向ARM处理器发送读数据请求信号,ARM处理器得到此信号后,调用中断处理程序,唤醒休眠的写操作进程,其读数据程序将输入缓冲器中的数据读取到ARM处理器内核空间,再将数据复制到ARM处理器的用户空间。
4.根据权利要求3所述的ARM处理器的NoC资源网络接口的驱动方法,其特征在于:
所述步骤Ⅱ中,FPGA中构造的发送模块的输入缓冲器和接收模块的输出缓冲器被分配各自的地址,在FPGA设备驱动过程中,这两个地址映射到ARM处理器的内核空间,在驱动程序中通过这两个地址读取片上网络中的数据或向片上网络传送数据。
5.根据权利要求3所述的ARM处理器的NoC资源网络接口的驱动方法,其特征在于:
所述步骤Ⅲ中,作为资源节点的ARM处理器和片上网络之间交换数据是异步时钟域通信,本驱动方法通过异步的输入缓冲器和异步的输出缓冲器实现数据同步;数据交换时,将前级模块提供的时钟作为写时钟,使用后级模块的基本时钟产生读信号,完成数据传递。
6.根据权利要求3所述的ARM处理器的NoC资源网络接口的驱动方法,其特征在于:
所述步骤Ⅲ中,所述资源网络接口接收模块中的控制器判断ARM处理器读数据状态,若ARM处理器读数据有效,则将本资源网络接口和ARM处理器的数据总线相连,若ARM处理器读数据非有效,则将本资源网络接口和ARM处理器相连的数据总线端口设置成高阻态,二者不再相连。
7.根据权利要求3所述的ARM处理器的NoC资源网络接口的驱动方法,其特征在于:
所述步骤Ⅲ中,本驱动方法具有阻塞操作的中断处理程序,当ARM处理器的Linux系统调用写操作程序后,应答器检测输入缓冲器的存储状况,输入缓冲器存储的数据未达到阈值,接收模块向ARM处理器发送信号,ARM处理器的中断处理程序使写操作进程从ARM处理器调度器的运行队列中暂移走,置于休眠状态;当资源网络接口中接收模块的输入缓冲器存储的数据达到阈值时,应答器向ARM处理器发送传送数据请求信号,应答器向ARM处理器发送读数据请求信号,ARM处理器得到此信号后,调用中断处理程序、唤醒休眠的写操作进程,将资源网络接口中接收模块的输入缓冲器存储的数据读取到ARM处理器内核空间中,再将数据复制到ARM处理器的用户空间。

说明书全文

ARM处理器的NoC资源网络接口及其驱动方法

技术领域

[0001] 本发明涉及片上网络IP核间通信技术领域,具体为一种ARM处理器的NoC资源网络接口及其驱动方法。

背景技术

[0002] 随着半导体工艺技术的发展,单个芯片上可以集成越来越多的IP核,由于总线上的设备在通信时对总线的独占性以及单一总线对同步时钟的要求,使得片上系统(System-on-a-Chip)的设计方法不能满足设计要求。片上网络(NoC,Networks on Chip)的提出从体系结构上彻底解决了总线结构带来的问题,NoC借鉴计算机网络中分组交换的通信思想,将计算机网络技术移植到芯片设计上来,实现大量IP核互连。NoC采用全局异步、局部同步技术(GALS),支持并行通信,具有良好的扩展性。
[0003] NoC由片上通信节点网络和与之连接的多个资源节点组成,片上通信节点网络包括通信连接的路由节点和资源网络接口(Resource–Network–Interface,RNI)。资源节点完成广义上的计算任务,资源节点可以是嵌入式微处理器和DSP核、可重构器件、存储器、输入输出设备等,资源节点通过资源网络接口连接到片上网络中。资源网络接口是资源节点与路由节点之间的接口,是二者之间进行通信的桥梁
[0004] ARM处理器有丰富的外设接口,实时性强,能够稳定地运行移植到芯片中的Linux操作系统,支持多任务处理,以ARM处理器作为NoC片上多核系统的资源节点可以极大地拓展NoC系统应用空间。
[0005] 但目前尚未见到专用于连接ARM处理器的NoC资源网络接口的报道。 发明内容
[0006] 本发明的目的是提供一种ARM处理器的NoC资源网络接口及其驱动方法,实现ARM处理器和NoC系统其他IP核数据的高速、可靠传输。
[0007] 本发明公开ARM处理器的NoC资源网络接口,所述片上网络NoC基于FPGA(英文Field Programmable Gate Array的缩写,即现场可编程阵列)芯片,系统内的若干路由节点相互连接,系统结构为规则的2维网格(2D-Mesh)拓扑结构,NoC中的路由节点采用基于虚通道技术的虫洞数据交换机制,通过无死的确定性XY维路由算法实现。资源节点是嵌入式微处理器、DSP核、可重构器件、存储器、输入输出设备等,资源节点通过资源网络接口与NoC的路由节点连接。ARM处理器作为NoC的资源节点,本发明设计ARM处理器的NoC资源网络接口连接该ARM处理器和NoC的某个路由节点。本发明设计ARM处理器的NoC资源网络接口包括建立于FPGA中的AHB总线接口处理模、发送模块和接收模块,AHB总线接口处理模块与ARM处理器AHB总线时序相配合,经数据总线直接与ARM处理器的AHB总线连接,FPGA成为ARM处理器的一个外部存储器。ARM处理器中移植了嵌入式Linux操作系统,并在Linux操作系统下设计FPGA的设备驱动程序。本资源网络接口与ARM处理器连接的数据总线主要有16位宽的数据线,以及地址线和控制信号线。本资源网络接口与片上网络的一个路由节点相连接,二者之间有握手信号线和发送、接收数据线。发送模块包括FIFO(first in first out的缩写,即先进先出)输入数据缓存器、组包器和控制器。发送模块的控制器接收ARM处理器发出的数据,组包器对数据进行相应的打包处理,然后将数据在输入数据缓存器中暂存,再送入所连接的路由节点;接收模块包括FIFO输出数据缓存器和应答器。接收模块的输出缓存器接收并暂存路由节点本地方向发送过来的数据,传递给ARM处理器,应答器根据输出缓存器存储状态对路由节点的数据传输请求给予对应的响应。FIFO输入数据缓存器和FIFO输出数据缓存器为本资源网络接口的异步输入、输出缓冲器
[0008] FIFO输入数据缓存器和FIFO输出数据缓存器存储深度设置为8,宽度设置为34位。
[0009] 本发明ARM处理器的NoC资源网络接口的驱动方法主要步骤如下: [0010] Ⅰ、初始化
[0011] 启动ARM处理器Linux操作系统下的FPGA的设备驱动程序,初始化FPGA中的资源网络接口的各模块,注册FPGA资源网络接口设备;
[0012] Ⅱ、地址映射
[0013] 将资源网络接口中发送模块的输入缓冲器和接收模块的输出缓冲器的物理地址映射到ARM处理器内核空间;
[0014] FPGA中构造的发送模块的输入缓冲器和接收模块的输出缓冲器被分配各自的地址,在FPGA设备驱动过程中,这两个地址映射到ARM处理器的内核空间,在驱动程序中通过这两个地址读取片上网络中的数据或向片上网络传送数据。
[0015] Ⅲ、发送和接收数据
[0016] 作为资源节点的ARM处理器向资源网络接口所连接的当地路由节点发送数据时,ARM处理器的Linux系统调用驱动程序中的写操作程序,ARM处理器向资源网络接口发送数据,发送模块的输出缓冲器接收ARM处理器发送的数据,当输出缓冲器接收的数据达到其阈值,发送模块的组包器将数据打包,控制器向当地路由节点发出发送数据请求信号、接到当地路由节点的应答后,发送模块将组包的数据发送到当地路由节点,ARM处理器发送的数据进入片上网络。
[0017] 作为资源节点的ARM处理器接收本资源网络接口所连接的本地路由节点传送的片上网络数据时,接收模块的应答器得到当地路由节点的数据传送请求信号,给予当地路由节点准许传送的应答信号,接收模块的输入缓冲器接收当地路由器发送的片上网络数据,当输入缓冲器接收的数据达到其阈值,向ARM处理器资源节点发送读取数据信号,ARM处理器资源节点通过read操作进程的读数据程序将输入缓冲器中的数据读取到ARM处理器内核空间,再将数据复制到ARM处理器的用户空间。ARM处理器解包、接收片上网络其它资源节点发送数据。
[0018] 作为资源节点的ARM处理器和片上网络之间交换数据是异步时钟域通信,本驱动方法通过异步的输入缓冲器和异步的输出缓冲器实现数据同步。 数据交换时,将前级模块提供的时钟作为写时钟,使用后级模块的基本时钟产生读信号,完成数据传递。 [0019] 本资源网络接口经数据总线与ARM处理器的AHB总线连接,本资源网络接口的数据总线若直接连接ARM处理器的存储控制器的数据总线,将会长期占用ARM处理器的数据总线,导致ARM处理器的CPU无法运行。本驱动方法设计本资源网络接口接收模块中的控制器判断ARM处理器读数据状态,若ARM处理器读数据有效,则将本资源网络接口和ARM处理器的数据总线相连,若ARM处理器读数据非有效,则将本资源网络接口和ARM处理器相连的数据总线端口设置成高阻态,二者不再相连。
[0020] 为了避免在片上网络未向ARM处理器发送数据时,ARM处理器的Linux系统不停查询浪费其CPU资源,本驱动方法具有阻塞操作的中断处理程序。当ARM处理器的Linux系统调用读操作程序后,应答器检测输入缓冲器的存储状况,输入缓冲器存储的数据未达到阈值,ARM处理器将读进程置于休眠状态。当资源网络接口中接收模块的输入缓冲器存储的数据达到阈值时,应答器向ARM处理器发送传送数据请求信号,应答器向ARM处理器发送读数据请求信号,ARM处理器得到此信号后,调用中断处理程序,唤醒休眠的写操作进程,将资源网络接口中接收模块的输入缓冲器存储的数据读取到ARM处理器内核空间中,再将数据复制到ARM处理器的用户空间。
[0021] 与现有技术相比,本发明ARM处理器的NoC资源网络接口及其驱动方法的优点为:1、适用于ARM处理器与NoC系统连接并进行数据交换,使NoC系统可以运行多个处理器,实现独特多核设计的NoC系统处理多任务能强,可以满足现代工业测控领域对实时性、复杂性、准确性等的要求;2、作为资源节点ARM处理器和NoC系统中其它资源节点之间的数据传输,使NoC系统可以利用ARM处理器功能强大等特点,拓展NoC的应用,增强NoC系统的扩展能力和网络通信能力;3、异步FIFO输入输出缓冲器实现异步数据域之间的交换,与双口RAM的异步数据交换方式相比,减少了FPGA端口资源的使用;4、Linux操作系统下的资源网络接口及其驱动方法是ARM处理器和FPGA芯片之间的高速数据通信接口及驱动方法,实现了两类高端芯片之间稳定的数 据通信。
附图说明
[0022] 图1为本ARM处理器的NoC资源网络接口实施例所用的基于FPGA的片上网络通信架构结构模型图;
[0023] 图2为本ARM处理器的NoC资源网络接口实施例作为资源节点的ARM处理器、本ARM处理器的资源网络接口及片上网络的当地方向路由节点的硬件连接示意图; [0024] 图3为本ARM处理器的NoC资源网络接口实施例内部结构示意图。 具体实施方式
[0025] 本ARM处理器的NoC资源网络接口实施例中的片上网络NoC基于FPGA芯片,其基于FPGA的片上网络通信架构结构模型图如图1所示,系统内的若干路由节点R相互连接,系统结构为规则的3×3的2维网格(2D-Mesh)拓扑结构,NoC中的路由节点R采用基于虚通道技术的虫洞数据交换机制,通过无死锁的确定性XY维路由算法实现。图中S表示一般IP核的资源节点,RNI表示一般的资源网络接口(Resource Network Interface),资源节点S通过资源网络接口RNI与NoC的路由节点R连接。ARM表示作为资源节点的ARM处理器,ARM-RNI表示本实施例的ARM处理器的NoC资源网络接口。ARM处理器的NoC资源网络接口ARM-RNI连接作为NoC资源节点的ARM处理器和NoC的一个路由节点R。 [0026] ARM处理器作为片上网络NoC的资源节点、本ARM处理器的资源网络接口ARM-RNI及片上网络的本地方向路由节点的硬件连接如图2所示。
[0027] 本ARM处理器的NoC资源网络接口ARM-RNI实施例如图3所示,包括建立于FPGA中的AHB总线接口处理模块、发送模块和接收模块,用硬件描述语言Verilog在FPGA中构造ARM处理器的资源网络接口的各个模块。AHB总线接口处理模块与ARM处理器AHB总线时序相配合,经数据总线直接与ARM处理器的AHB总线连接,FPGA成为ARM处理器的一个外部存储器。ARM处理器中移植了嵌入式Linux操作系统,并有在Linux操作系统下FPGA的设备驱 动程序。
[0028] 如图2和3所示,本资源网络接口ARM-RNI与ARM处理器连接的数据总线主要有16位宽的数据线D,以及ARM处理器的地址线ADDR,控制信号线有ARM处理器的写使能信号线nWE、ARM处理器的读使能信号线nOE、ARM处理器的存储器的片选信号线nGCS5、路由节点允许写有效信号线PORT_AV、输入数据缓冲器写使能信号线write_en_in、输出数据缓冲器读使能信号线read_en_in,ARM-RNI向ARM处理器发出的接收数据请求信号线receive_req。本资源网络接口与片上网络的一个路由节点相连接,二者之间有向本地方向路由节点发送数据线SD、从本地方向路由节点接收数据线RD;还有握手信号线,包括路由节点写时钟信号线wclk、向本地方向路由节点申请数据发送信号线req_to_local、本地方向路由节点发出的应答信号线grant_from_local、发往本地方向路由节点的写使能信号线write_to_local、路由节点的读时钟信号线rclk、本地方向路由节点的发送数据申请信号线req_from_local、对本地方向路由节点的应答信号线grant_to_local、由本地方向路由节点发出的资源网络接口的写使能信号write_from_local。
[0029] 发送模块包括FIFO输入数据缓存器、组包器和控制器。发送模块的控制器接收ARM处理器发出的数据,组包器对数据进行相应的打包处理,然后将数据在输入数据缓存器中暂存,再送入所连接的路由节点;接收模块包括FIFO输出数据缓存器和应答器。接收模块的输出缓存器接收并暂存路由节点本地方向发送过来的数据,提取有用数据传递给ARM处理器,应答器根据输出缓存器存储状态对路由节点的数据传输请求给予对应的响应。FIFO输入数据缓存器和FIFO输出数据缓存器为本资源网络接口的异步输入、输出缓冲器。 [0030] 本例FIFO输入数据缓存器和FIFO输出数据缓存器存储深度设置为8,宽度设置为
34位。
[0031] 本发明ARM处理器的NoC资源网络接口的驱动方法主要步骤如下: [0032] Ⅰ、初始化
[0033] 启动ARM处理器Linux操作系统下的FPGA的设备驱动程序,初始化FPGA,注册FPGA设备;
[0034] Ⅱ、地址映射
[0035] 将资源网络接口中发送模块的输入缓冲器和接收模块的输出缓冲器的物理地址映射到ARM处理器内核虚拟空间;
[0036] FPGA中构造的发送模块的输入缓冲器和接收模块的输出缓冲器被分配各自的地址,在FPGA设备驱动过程中,这两个地址映射到ARM处理器的内核空间,在驱动程序中通过这两个地址读取片上网络中的数据或向片上网络传送数据。
[0037] Ⅲ、发送和接收数据
[0038] ARM处理器向NoC发送数据的流程如下:作为资源节点的ARM处理器向资源网络接口所连接的当地路由节点发送数据时,ARM处理器的linux系统调用驱动程序中的写操作程序,ARM处理器向资源网络接口发送数据,发送模块的输出缓冲器接收ARM处理器发送的数据,当输出缓冲器接收的数据达到其阈值,发送模块的组包器将数据打包,控制器向当地路由节点发出发送数据请求信号、接到当地路由节点的应答后,发送模块将组包的数据发送到当地路由节点,ARM处理器发送的数据进入片上网络。
[0039] ARM处理器接收从NoC传送来数据的流程如下:作为资源节点的ARM处理器接收本资源网络接口所连接的当地路由节点传送的片上网络数据时,应用程序系统调用读操作程序,应答器检测输入缓冲器的存储状况,输入缓冲器存储的数据未达到阈值,ARM处理器将读进程置于休眠状态。接收模块的应答器得到当地路由节点的数据传送请求信号,给予当地路由节点准许传送的应答信号,接收模块的输入缓冲器接收当地路由器发送的片上网络数据,当输入缓冲器接收的数据达到其阈值,应答器向ARM处理器发送读数据请求信号,ARM处理器得到此信号后,调用中断处理程序,唤醒休眠的写操作进程,其读数据程序将输入缓冲器中的数据读取到ARM处理器内核空间,再将数据复制到ARM处理器的用户空间。ARM处理器接收了片上网络其它资源节点发送数据。
[0040] 作为资源节点的ARM处理器和片上网络之间交换数据是异步时钟域通信,本驱动方法通过异步的输入缓冲器和异步的输出缓冲器实现数据同步。数据交换时,将前级模块提供的时钟作为写时钟,使用后级模块的基本时钟 产生读信号,完成数据传递。 [0041] 本资源网络接口经数据总线与ARM处理器的AHB总线连接,本例驱动方法的本资源网络接口接收模块中的控制器判断ARM处理器读数据状态,若ARM处理器读数据有效,则将本资源网络接口和ARM处理器的数据总线相连,若ARM处理器读数据非有效,则将本资源网络接口和ARM处理器相连的数据总线端口设置成高阻态,二者不再相连。 [0042] 上述实施例,仅为对本发明的目的、技术方案和有益效果进一步详细说明的具体个例,本发明并非限定于此。凡在本发明的公开的范围之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈