CN117093530B - 一种用于数据传输的fpga、模型训练***及数据访问方法 - Google Patents
一种用于数据传输的fpga、模型训练***及数据访问方法 Download PDFInfo
- Publication number
- CN117093530B CN117093530B CN202311339959.3A CN202311339959A CN117093530B CN 117093530 B CN117093530 B CN 117093530B CN 202311339959 A CN202311339959 A CN 202311339959A CN 117093530 B CN117093530 B CN 117093530B
- Authority
- CN
- China
- Prior art keywords
- data
- read
- module
- protocol conversion
- fpga
- 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
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 65
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000012549 training Methods 0.000 title claims abstract description 49
- 238000006243 chemical reaction Methods 0.000 claims abstract description 191
- 238000004891 communication Methods 0.000 claims description 9
- 238000011161 development Methods 0.000 abstract description 3
- 230000005971 DNA damage repair Effects 0.000 description 55
- 238000013473 artificial intelligence Methods 0.000 description 31
- 230000008569 process Effects 0.000 description 20
- 238000012545 processing Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 102000002706 Discoidin Domain Receptors Human genes 0.000 description 2
- 108010043648 Discoidin Domain Receptors Proteins 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/387—Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/28—DMA
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
本申请涉及FPGA开发技术领域,公开了一种用于数据传输的FPGA、模型训练***及数据访问方法。该FPGA包括协议转换模块,用于实现数据传输的串并转换;该协议转换模块包括:配置模块,用于获取数据访问请求对应的配置信息,将配置信息下发到Avalon‑MM控制模块及CFI控制模块;Avalon‑MM控制模块,用于根据配置信息,控制Avalon‑MM接口的第一信号;CFI控制模块,用于根据配置信息,控制CFI接口的第二信号;Avalon‑MM接口,用于根据第一信号,对待读取数据或待写入数据执行串行传输操作;CFI接口,用于根据第二信号,对待读取数据或待写入数据执行并行传输操作。本申请提供的FPGA能够提高对外设芯片的访问速率,满足极端应用场景下对FPGA上电延迟的时长要求。
Description
技术领域
本申请涉及FPGA开发技术领域,特别是涉及一种用于数据传输的FPGA、模型训练***及数据访问方法。
背景技术
随着AI(Artificial Intelligence,人工智能)、云计算等技术的发展,针对服务器的算力要求越来越高,基于GPU、FPGA加速器的AI服务器因其强大的并行算力受到用户的青睐。其中,基于FPGA的加速器因其在并行计算和低延迟等方面的优势,在金融等行业中应用广泛。
随着FPGA的逻辑资源变大,FPGA镜像文件也越来越大,相关技术中通过普通的QSPI接口或SPI接口对外设芯片(例如,Flash存储芯片)进行访问的速率较慢,导致出现FPGA上电加载缓慢的问题。然而部分极端应用场景下对FPGA的上电加载的延迟有严格的时长要求,因此,为满足延迟要求,需要提高FPGA对外设芯片的访问速率。
发明内容
有鉴于此,本申请旨在提出一种用于数据传输的FPGA、模型训练***及数据访问方法,以提高FPGA对外设芯片的访问速率。
为达到上述目的,本申请的技术方案如下:
本申请实施例第一方面提供一种用于数据传输的FPGA,包括协议转换模块,用于实现数据传输的串并转换;所述协议转换模块包括:
配置模块,用于获取数据访问请求对应的配置信息,将配置信息下发到Avalon-MM控制模块及CFI控制模块;配置信息包括:操作初始地址、数据长度及传输起始信号;数据访问请求为写数据请求或读数据请求;
Avalon-MM控制模块,用于根据配置信息,控制Avalon-MM接口的第一信号;
CFI控制模块,用于根据配置信息,控制CFI接口的第二信号;
Avalon-MM接口,用于根据第一信号,对待读取数据或待写入数据执行串行传输操作;
CFI接口,用于根据第二信号,对待读取数据或待写入数据执行并行传输操作。
可选地,该协议转换模块,还包括:
写缓存模块,用于在Avalon-MM接口获取待写入数据后,暂存该待写入数据。
可选地,该协议转换模块,还包括:
读缓存模块,用于在CFI接口模块获取待读取数据后,暂存该待读取数据。
根据本申请实施例的第二方面,提供一种模型训练***,该***包括:
主机和至少一个AI加速器;该AI加速器包括FPGA和存储模块,该FPGA为本实施例第一方面提供的FPGA;
主机,用于向AI加速器发送待写入数据及数据访问请求;待写入数据包括模型训练数据及FPGA镜像文件;数据访问请求为写数据请求或读数据请求;
AI加速器,用于接收主机发送的待写入数据并更新存储模块,以及根据读数据请求将存储模块中的待读取数据发送给主机。
可选地,FPGA用于根据主机发送的数据访问请求,获取对应的配置信息;根据配置信息对存储模块执行数据访问操作;配置信息包括:数据操作地址、数据长度及起始信号;数据访问操作为写数据操作或读数据操作;
存储模块,用于存储模型训练数据及FPGA镜像文件。
可选地,协议转换模块,用于在数据访问请求为写数据请求的情况下,执行以下操作:
将主机发送的待写入数据进行协议转换;
根据写数据请求对应的配置信息,将转换完成的待写入数据写入存储模块;待写入数据为模型训练数据或FPGA镜像文件。
可选地,协议转换模块,用于在数据访问请求为读数据请求的情况下,执行以下操作:
从存储模块中获取待读取数据并进行协议转换;
根据读数据请求对应的配置信息,将转换完成的待读取数据发送到主机;待读取数据为模型训练数据或FPGA镜像文件。
可选地,该模型训练***,还包括:
还包括DDR,用于缓存待写入数据或待读取数据;
FPGA还包括DMA模块,DMA模块用于与DDR进行数据通信。
可选地,DMA模块,用于在数据访问请求为写数据请求的情况下,将主机发送的待写入数据写入DDR;
协议转换模块,用于读取DDR中的待写入数据并进行协议转换;根据写数据请求对应的配置信息,将转换完成的待写入数据写入存储模块。
可选地,协议转换模块用于,在数据访问请求为读数据请求的情况下,根据读数据请求对应的配置信息,获取存储模块内的待读取数据;对待读取数据进行协议转换并存储到DDR中;
DMA模块,用于读取DDR中的待读取数据并发送给主机。
可选地,AI加速器与主机之间通过PCIE总线进行数据通信。
可选地,协议转换模块,还用于当上电时通过CFI接口从存储模块中获取FPGA镜像文件并暂存到读缓存模块中,等待硬核加载。
根据本申请实施例的第三方面,提供一种数据访问方法,该方法基于本申请实施例第二方面的模型训练***实现,包括:
根据主机发送的数据访问请求,获取对应的配置信息;数据访问请求为写数据请求或读数据请求;配置信息包括:数据操作地址、数据长度及起始信号:
根据写数据请求对应的配置信息,将主机发送的待写入数据进行协议转换,并存储到存储模块中;
根据读数据请求对应的配置信息,将存储模块中的待读取数据进行协议转换,并发送给主机。
可选地,将主机发送的待写入数据进行协议转换,并存储到存储模块中,包括:
控制协议转换模块读取主机发送的待写入数据,并对待写入数据进行协议转换;
控制协议转换模块,将转换完成的待写入数据通过并行方式写入存储模块。
可选地,将主机发送的待写入数据进行协议转换,并存储到存储模块中,包括:
控制DMA模块将主机发送的待写入数据存储到DDR中;
控制协议转换模块读取DDR中的待写入数据,并对待写入数据进行协议转换,将转换完成的待写入数据通过并行方式写入存储模块。
可选地,对待写入数据进行协议转换,包括:
根据写数据请求对应的配置信息,控制Avalon-MM接口的信号,将待写入数据存储到写缓存模块中;
根据写数据请求对应的配置信息控制CFI接口的信号,将写缓存模块中的待写入数据并行输出。
可选地,将存储模块中的待读取数据进行协议转换,并发送给主机,包括:
控制协议转换模块,通过并行方式读取存储模块中的待读取数据,并对待读取数据进行协议转换;
控制协议转换模块将转换完成的待读取数据发送给主机。
可选地,将存储模块中的待读取数据进行协议转换,并发送给主机,包括:
控制协议转换模块,通过并行方式读取存储模块中的待读取数据,并对待读取数据进行协议转换;
将转换完成的待读取数据存储到DDR中;
控制DMA模块读取DDR中的待读取数据,并发送给主机。
可选地,对待读取数据进行协议转换,包括:
根据读数据请求对应的配置信息控制CFI接口的信号,将存储模块中的待读取数据存储到读缓存模块中;
根据配置信息控制Avalon-MM接口的信号,将读缓存模块中的待读取数据串行输出。
可选地,该数据访问方法,还包括:
当FPGA上电时,控制协议转换模块从存储模块中获取FPGA镜像文件并暂存在读缓存模块中,等待硬核加载。
采用本申请所提供的FPGA中的协议转换模块,根据读数据访问请求对应的配置信息,控制Avalon-MM接口对待读取数据进行串行传输;根据写数据访问请求对应的配置信息,控制CFI接口对待写入数据进行并行传输,从而实现数据访问过程中Avalon-MM协议与CFI协议相互转换,将FPGA串行访问方式变为并行访问方式,提高FPGA对外设芯片的访问速率,进而提升FPGA的数据处理效率,满足极端应用场景下对FPGA上电延迟的时长要求。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提出的协议转换模块的示意图;
图2是本申请一实施例提出的协议转换模块的架构图;
图3是本申请一实施例提出的模型训练***的架构图;
图4是本申请一实施例提出的主机访问Flash的流程图;
图5是本申请一实施例提出的数据访问方法的流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
在本申请的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本申请公开了用于传输数据的FPGA,该FPGA包括基于Avalon-MM TO CFI的协议转换模块。Avalon-MM为一种串行通信协议,CFI(Common Flash Interface,通用Flash接口)为一种并行通信协议。通过该协议转换模块可实现串行数据传输转并行数据传输,提升FPGA对外部芯片(例如,Flash)的数据访问速率,进而提升FPGA在模型训练中的性能。
下列实施例中以FPGA镜像升级和镜像加载为例进行说明。FPGA镜像升级是指主机向FPGA写入新的固件(FPGA镜像文件)时,通过FPGA将镜像文件写入外部存储器(例如,Flash)中,并擦除就得FPGA镜像文件;FPGA镜像加载是指,当FPGA上电时,从外部存储器中读取FPGA镜像文件并进行硬核加载。当FPGA镜像加载完毕后,FPGA才能用于模型训练。
需要说明的是,模型训练数据和FPGA镜像文件一样,存储在外部存储器中,其读写也是通过主机下发指令,由FPGA访问Flash进行的。本申请中的存储模块可以是不同类型的存储器,在本实施例中,以Flash存储器为例进行说明。
下面将参考附图并结合实施例来详细说明本申请。
本申请提供一种用于数据传输的FPGA,该FPGA包括协议转换模块,用于实现数据传输的串并转换。图1是本申请一实施例提出的协议转换模块100的示意图。如图1所示,该模块包括:
配置模块101,用于获取数据访问请求对应的配置信息,将配置信息下发到Avalon-MM控制模块102及CFI控制模块103;配置信息包括:操作初始地址、数据长度及传输起始信号;数据访问请求为写数据请求或读数据请求;
Avalon-MM控制模块102,用于根据配置信息,控制Avalon-MM接口104的第一信号;
CFI控制模块103,用于根据配置信息,控制CFI接口105的第二信号;
Avalon-MM接口104,用于根据第一信号,对待读取数据或待写入数据执行串行传输操作;
CFI接口105,用于根据第二信号,对待读取数据或待写入数据执行并行传输操作。
本实施例中,通过协议转换模块100实现FPGA串行传输转并行传输的数据访问方式。配置模块101获取数据访问请求(写数据请求或读数据请求)对应的配置信息,并将配置信息下发到Avalon-MM接口及CFI接口。其中配置信息包括:读写操作的初始地址、读写数据长度、读写传输起始信号等,具体如表1所示。
表1
Avalon-MM控制模块102根据配置模块101下发的配置信息(例如:读写初始地址、数据长度)确定Avalon-MM总线的读写地址(即Avmm_addr)以及长度(Avmm_burstcount),然后控制Avalon-MM接口104的相应信号,启动Avalon-MM接口104进行串行数据传输。
CFI控制模块103根据配置模块101下发的配置信息(例如:读写初始地址、片选信号、读写操作等),基于配置信息控制CFI接口105的相应信号,启动CFI接口进行并行数据传输。
在执行FPGA镜像加载(即读数据操作)时,通过协议转换模块100的CFI接口读取外部Flash中的镜像文件;在执行FPGA镜像升级(即写数据操作)时,通过协议转换模块100的CFI接口,将镜像文件写入外部Flash,在读写过程中,协议转换模块100将FPGA对外部芯片的串行访问方式转换为并行访问方式。由于并行数据传输方式的传输效率高于串行数据传输方式,因此,本方法可提升FPGA对外设芯片的访问速率,进而提升FPGA的数据处理效率。当本方法应用于FPGA的上电加载场景时,能够缩短FPGA镜像文件加载的时长,降低FPGA的上电延迟。
作为本申请的一种实施方式,该协议转换模块还包括写缓存模块,用于在Avalon-MM接口获取待写入数据后,暂存该待写入数据。
在一种实施例中,由于协议转换模块100的Avalon-MM接口104读取数据的速率与CFI接口105输出数据的速率不一致,因此为了防止数据丢失,在协议转换模块中设置了写缓存模块。写缓存模块可设置为FIFO,用于暂存通过Avalon-MM总线读取到的FPGA镜像文件,写缓存模块中暂存的数据将由CFI接口105通过并行传输方式发送出去。
通过设置写缓存模块,能够有效防止AVMM_TO_CFI协议转换模块100在执行串并行传输转换过程中发生数据丢失。
作为本申请的一种实施方式,该协议转换模块还包括读缓存模块,用于在CFI接口模块获取待读取数据后,暂存该待读取数据。
在一种实施例中,由于协议转换模块100的Avalon-MM接口104读取数据的速率与CFI接口105输出数据的速率不一致,在协议转换模块100中设置了读缓存模块。读缓存模块可设置为FIFO,用于暂存通过CFI接口105从外部Flash中读取的FPGA镜像文件,读缓存模块中暂存的数据将由Avalon-MM接口104通过串行传输方式发送出去。
通过设置读缓存模块,能够有效防止AVMM_TO_CFI协议转换模块100在执行串并行传输转换过程中发生数据丢失。
图2是本申请一实施例提出的协议转换模块的架构图。如图2所示,配置模块将配置信息通过控制线下发到控制模块和接口,待处理的数据通过数据线暂存到缓存模块中。
具体地,配置模块将配置信息下发到Avalon-MM控制模块和CFI控制模块,Avalon-MM控制模块控制Avalon-MM接口的第一信号,包括:AVMM_address、AVMM_write、AVMM_burstount、AVMM_waitrequest、AVMM_byteenable、AVMM_lock、AVMM_writedata、AVMM_readdata、AVMM_read和AVMM_readdatavalid;CFI控制模块控制CFI接口的第二信号,包括:CFI_address、CFI_data、CFI_oe、CFI_select、CFI_we。
当协议转换模块执行写数据请求中的数据转换操作时,步骤如下:
(1)配置模块获取本次操作的配置信息(配置信息可通过APB总线下发)并启动start信号;
(2)Avalon-MM控制模块根据配置信息,将地址信息Avmm_addr,读请求Avmm_read,突发长度Avmm_burstcount等信息告知Avalon-MM总线,等AVMM_waitrequest拉低时,说明Avalon-MM总线已响应,配置信息写入成功;
(3)当AVMM_readdatavalid拉高时,通过Avalon-MM接口将待写入数据暂存到写缓存模块中;
(4)CFI控制模块根据配置信息,将写地址传给CFI接口,并且使能CFI_select信号,拉高CFI_we信号;
(5)通过CFI_data将写缓存模块中暂存的数据输出。
当协议转换模块执行读数据请求中的数据转换操作时,步骤如下:
(1)配置模块获取本次操作的配置信息(配置信息可通过APB总线下发)并启动start信号;
(2)CFI控制模块根据配置信息,将读地址传入CFI接口,并使能CFI_select信号,拉高CFI_we信号;
(3)通过CFI_data获取待读取数据,并将待读取数据暂存到读数据缓冲模块中;
(4)Avalon-MM控制模块根据配置信息,将地址信息Avmm_addr,读请求Avmm_read,突发长度Avmm_burstcount等信息告知Avalon-MM总线,等AVMM_waitrequest拉低时,说明Avalon-MM总线已经响应,配置信息写入成功;
(5)通过Avalon-MM接口将读缓存模块中的数据输出。
基于同一发明构思,本申请一实施例提供一种模型训练***,该***包括:
主机和至少一个AI加速器;该AI加速器包括FPGA和存储模块,FPGA为上述任一实施例中提出的FPGA;
主机,用于向AI加速器发送待写入数据及数据访问请求;待写入数据包括模型训练数据及FPGA镜像文件;数据访问请求为写数据请求或读数据请求;
AI加速器,用于接收主机发送的待写入数据并更新存储模块,以及根据读数据请求将存储模块中的待读取数据发送给主机。
本实施例中,模型训练***包括主机与至少一个AI加速器。AI加速器用于执行模型训练中的并行运算。每个AI加速器中都包含了FPGA芯片和存储模块,其中FPGA芯片中包含了AVMM_TO_CFI协议转换模块,用于在FPGA执行数据访问请求时,对待读取数据和待写入数据进行串并行传输方式的转换。存储模块(例如,Flash存储器)通过存储控制器外挂连接FPGA,与AVMM_TO_CFI协议转换模块进行通信。
当主机向AI加速器发送写数据请求时,还会向AI加速器发送待写入数据(模型训练数据或FPGA镜像文件),AI加速器根据主机下发的写数据请求,将待写入数据进行协议转换后存储到存储模块中,如果待写入数据是FPGA镜像文件,AI加速器将镜像文件写入存储模块后,还会擦除旧的FPGA镜像文件,即进行镜像升级。
当主机向AI加速器发送度数据请求时,AI加速器根据主机下发的读数据请求,从存储模块中读取对应的待读取数据,并对待读取数据进行协议转换后返回给主机。
基于本实施例提供的AI加速器,可提高模型训练过程中对镜像文件和训练数据的加载与读取速率,从而提升模型训练的效率。
作为本申请的一种实施方式,FPGA用于根据主机发送的数据访问请求,获取对应的配置信息;根据配置信息对存储模块执行数据访问操作;配置信息包括:数据操作地址、数据长度及起始信号;数据访问操作为写数据操作或读数据操作;
存储模块,用于存储模型训练数据及FPGA镜像文件。
本实施例中,AI加速器中的FPGA作为接收主机下发数据访问请求的对象,根据数据访问请求获取对应的配置信息。写数据请求的配置信息与读数据请求的配置信息中都包括数据操作地址、数据长度以及起始信号。FPGA根据获取的配置信息,将待写入数据进行协议转化后写入存储模块,或者将待读取数据从存储模块中读取出来,并经过协议转化后发送给主机。
作为本申请的一种实施方式,协议转换模块,用于在数据访问请求为写数据请求的情况下,执行以下操作:
将主机发送的待写入数据进行协议转换;
根据写数据请求对应的配置信息,将转换完成的待写入数据写入存储模块;待写入数据为模型训练数据或FPGA镜像文件。
本实施例中,当PFGA接收到主机下发的写数据请求和待写入数据时,获取写数据请求对应的配置信息,由协议转换模块将该待写入数据进行协议转换,然后根据主机发送的写数据请求对应的配置信息,将转换完成的待写入数据写到存储模块的对应地址。
作为本申请的一种实施方式,协议转换模块,用于在数据访问请求为读数据请求的情况下,执行以下操作:
从存储模块中获取待读取数据并进行协议转换;
根据读数据请求对应的配置信息,将转换完成的待读取数据发送到主机;待读取数据为模型训练数据或FPGA镜像文件。
本实施例中,当PFGA接收到主机下发的读数据请求时,获取该请求对应的配置信息,由协议转换模块根据配置信息到存储模块中的对应地址获取待读取数据,再将待读取数据进行协议转换后,将转换完成的待读取数据返回给主机。
作为本申请的一种实施方式,该模型训练***,还包括:
还包括DDR,用于缓存待写入数据或待读取数据;
FPGA还包括DMA模块,DMA模块用于与DDR进行数据通信。
在一种实施例中,AI加速器内部还设置有DDR(Double Data Rate SDRAM,双倍速率同步动态随机存储器),FPGA上设置有DMA模块。通过DDR和DMA模块对FPGA与主机交互过程中数据进行缓存。
图3是本申请一实施例提出的模型训练***的架构图。如图3所示,本***中设置有DDR,PCIe DMA模块(该DMA模块通过PCIe总线与DDR通信)与AVMM_TO_CFI协议转换模块分别与DDR连接。存储模块Flash通过存储控制器外挂连接协议转换模块。DMA模块是FPGA中的PCIe硬核,由于DMA模块的传输效率很高,因将其用于大批量数据传输,本实施例中,由于模型训练数据及FPGA镜像数据的数据量都比较大,因此采用DMA模块和DDR配合的方式提高CPU的性能。由DMA模块将大批量数据传输到DDR中缓存,再由协议转换模块读取DDR中的数据进行协议转换处理。
本实施例中,利用DMA模块高速传输的特点,将待处理的数据先缓存在DDR中,协议转换模块不再直接处理主机发送的数据,而是与DDR进行交互,以此提升了主机与AI加速器之间的数据传输效率,避免发生数据副高导致数据丢失的问题,同时,由于DMA模块传输数据时不会占用CPU资源,因此还能够提高CPU的运行性能。例如,在执行写Flash操作时,协议转换模块根据配置模块下发的信息(如DDR地址、读取镜像大小等),将镜像文件从DDR读取到写缓存模块中;在执行读Flash操作时,根据配置模块下发的信息将读缓存模块中的Flash数据写入到DDR中。
在一种实施例中,为了能够缓存完整的大数据量资源,还可根据需要为AI加速器配置多张DDR以获得更大的缓存容量。如图3所示,本实施例中在AI加速器中配置了2张DDR。
作为本申请的一种实施方式,DMA模块,用于在数据访问请求为写数据请求的情况下,将主机发送的待写入数据写入DDR;
协议转换模块,用于读取DDR中的待写入数据并进行协议转换;根据写数据请求对应的配置信息,将转换完成的待写入数据写入存储模块。
图4是本申请一实施例提出的主机访问Flash的流程图。如图4所示,在一种实施例中,主机访问Flash存储器进行写数据操作的流程如下:
(1)Host端发起写数据请求。本实施例中,Host端通常是主机的CPU,写数据请求可以是下发模型训练数据或更新FPGA镜像文件。
(2)FPGA端接收到Host下发的指令后,对该指令进行判断是写数据请求还是读数据请求,并根据请求确定相关的配置信息,如:写操作的初始地址、数据长度、传输起始信号等。
(3)FPGA判断该请求为写数据请求,并且写入的数据为FPGA镜像文件时,为保障写入速度,首先通过DMA模块将FPGA镜像信息搬移到DDR中缓存;
(4)通过Avalon-MM接口将镜像文件数据从DDR中读回到AVMM_TO_CFI协议转换模块;
(5)AVMM_TO_CFI协议转换模块对该镜像文件数据进行协议转化,然后通过CFI接口将FPGA镜像文件数据写入Flash存储器。其中,AVMM_TO_CFI协议转换模块处理流程如下:
1)通过配置模块得到本次写数据操作的配置信息,向Avalon-MM控制模块及CFI控制模块下发,并启动start信号;
2)Avalon-MM控制模块根据配置信息,控制Avalon-MM接口的第一信号,将操作地址Avmm_addr、读请求Avmm_read、突发长度Avmm_burstcount等信息告知Avalon-MM总线,等Avmm_waitrequest信号拉低时,说明Avalon-MM总线已经响应,配置信息写入成功;
3)当Avmm_readdatavalid拉高时,Avalon-MM总线从DDR读回FPGA镜像数据,并将该数据暂存到写缓存模块中;
4)CFI控制模块根据配置信息,将写地址传入CFI接口,并使能CFI_select信号,拉高CFI_we信号;
5)CFI接口控制写缓存模块中的数据通过CFI_data信号写入Flash中。
(6)当待写入数据全部写入Flash存储器后,FPGA还要向Host端上报写数据操作的结果。
本实施例中,在执行写数据操作时,由DMA模块接收Host端发送的待写入数据(例如,FPGA镜像文件),然后将镜像文件搬移到DDR中进行缓存,利用DMA模块的高速传输特性提高主机与FPGA之间数据传输的效率,降低对CPU资源的占用,提升CPU的性能。通过协议转换模块读取DDR中的数据并进行协议转换处理,最终通过协议转换模块将转换完成的FPGA镜像数据更新到Flash存储器中。由于协议转换模块不与Host端直接通信,因此不会出现数据覆盖现象,从而避免协议转换过程中发生数据丢失。
作为本申请的一种实施方式,协议转换模块用于,在数据访问请求为读数据请求的情况下,根据读数据请求对应的配置信息,获取存储模块内的待读取数据;对待读取数据进行协议转换并存储到DDR中;
DMA模块,用于读取DDR中的待读取数据并发送给主机。
在一种实施例中,如图4所示,主机访问Flash存储器进行读数据操作的流程如下:
(1)Host端发起读数据请求。本实施例中,Host端通常是主机的CPU,读数据请求可以为读取Flash的芯片信息或者镜像信息等。
(2)FPGA端接收到Host下发的指令后,对该指令进行判断是写数据请求还是读数据请求,并根据请求确定相关的配置信息,如:读操作的初始地址、数据长度、传输起始信号等。
(3)FPGA判断该请求为读数据请求,并且要读取的数据为Flash芯片信息时,首先通过AVMM_TO_CFI协议转换模块根据读数据请求对应的配置信息,将Flash中对应地址的数据读回,并对该数据进行协议转换。其中AVMM_TO_CFI协议转换模块处理流程如下:
1)配置模块获取本次读数据操作的配置信息,向Avalon-MM控制模块及CFI控制模块下发并启动start信号;
2)CFI控制模块根据配置信息,将读地址传入CFI并行接口,并使能CFI_select信号,拉高CFI_we信号;
3)CFI接口通过CFI_data信号获取待读取数据,并将待读取数据缓存到读缓存模块;
4)Avalon-MM控制模块根据配置信息,将读地址信息Avmm_addr,读请求Avmm_read,突发长度Avmm_burstcount等信息告知Avalon-MM总线,等Avmm_waitrequest拉低时,表明Avalon-MM总线已经响应,配置信息写入成功;
5)通过Avalon-MM接口将读缓存模块中的待读取数据写入DDR中。
(4)通过Avalon-MM接口将转换完成的数据存储到DDR中。
(5)由DMA模块将DDR中的数据上传到Host端。本实施例中,DMA模块从FPGA上电开始就启动,当接收到Host端发送的待写入数据时,就将该待写入数据搬移到DDR中,若检测到DDR中有协议转换模块写入的待读取数据,则将该待读取数据向Host端上传。
(6)当待读取数据向Host端上传数据完毕后,FPGA还要向Host端上报读数据操作的结果。
本实施例中,在执行读数据操作时,由协议转换模块根据配置信息读取Flash存储器中的待读取数据(例如,Flash的芯片信息),然后对该待读取数据进行协议转换,将转换后的待读取数据写入DDR中进行缓存,由DMA 模块读取DDR中的待读取数据,并向Host端发送。利用DMA模块的高速传输特性提高主机与FPGA之间数据传输的效率,降低对CPU资源的占用,提升CPU的性能。通过协议转换模块读取Flash中的数据并进行协议转换处理和缓存,最终由DMA模块将转换完成的数据返回给Host端通过协议转换模块将转换完成的FPGA镜像数据更新到Flash存储器中。
作为本申请的一种实施方式,AI加速器与主机之间通过PCIE总线进行数据通信。
本实施例中,Host端(主机的CPU)与AI加速器之间通过PCIe总线进行数据通信。具体地,Host端发送的写数据请求及读数据请求、待写入数据及待读取数据,都通过PCIe总线进行传输。当AI加速器中设置有DDR及DMA模块时,DMA模块与Host端、DDR之间均通过PCIe总线进行数据传输。
作为本申请的一种实施方式,协议转换模块,还用于当上电时通过CFI接口从存储模块中获取FPGA镜像文件并暂存到读缓存模块中,等待硬核加载。
在一种实施例中,当FPGA上电时,协议转换模块还会从Flash存储器中读取FPGA镜像文件,并存储到该协议转换模块的读缓存模块中,等待硬核加载。PFGA下电时,其上运行的镜像文件会丢失,在FPGA重新上电时需要从存储镜像文件的Flash存储器中获取镜像文件并重新加载。FPGA上电时的镜像文件加载也属于读数据操作,但不同于Host下发的读数据请求,上电加载操作无需将镜像文件放入DDR中,只需通过CFI接口将Flash存储器中的镜像文件加载到协议转换模块的读缓存模块中等待硬核加载。
本实施例中,在FPGA上电时,通过协议转换模块的CFI并行接口读取Flash存储器内存储的FPGA镜像文件,并存储在读缓存模块中,能够提升FPGA上电加载的效率,进一步降低FPGA的上电加载延迟。Avalon-MM转CFI协议转换模块将Flash串行访问方式转换为并行访问方式,可实现8线程到32线程的性能提升,尤其针对包含大逻辑资源的FPGA在上电加载时由于数据量大导致的延迟变高问题,可有效节约镜像加载时间,满足极端应用场景下对上电延迟的需求。
基于同一发明构思,本申请一实施例提供一种协议转换方法,该方法包括:
获取数据访问请求对应的配置信息;配置信息包括:操作初始地址、数据长度及传输起始信号;数据访问请求为写数据请求或读数据请求;
将待写入数据进行协议转换,并根据写数据请求对应的配置信息将转换完成的待写入数据通过并行方式输出;
将待读取数据进行协议转换,并根据读数据请求对应的配置信息,将转换完成的待读取数据通过串行方式输出。
上述步骤中,读数据操作与写数据操作之间并无顺序关联。本实施例中,协议转换方法用于对数据读写操作过程中传输数据的过程进行优化。通过串行传输方式获取待写入数据,根据写数据请求对应的配置信息,对该数据进行协议转换,将转换完成的待写入数据通过并行方式输出;通过并行传输方式获取待读取数据,根据读数据请求对应的配置信息,对该数据进行协议转换,将转换完成的待读取数据通过串行方式输出。其过程中,对待处理的数据进行了串行-并行传输方式的转换。由于并行数据传输方式的传输效率高于串行数据传输方式,因此,本方法可用于FPGA通过并行数据访问方式与外设芯片进行通信,从而提升FPGA对外设芯片的访问速率,进而提升FPGA处理数据的效率。
当本方法应用于FPGA镜像文件的上电加载时,还能够缩短FPGA镜像文件加载的时长,满足极端应用场景下对上电延迟的需求。
作为本申请的一种实施方式,在将待写入数据进行协议转换之前,将待写入数据暂存到写缓存模块中。
在一种实施例中,由于协议转换模块接收到写数据请求的数量与频率是随机的,而接收待写入数据的速率与对数据进行转换并输出的速率不一致,为了防止出现数据丢失的情况,当接收到新的待转换数据(待写入数据)时,先将该数据暂存在写缓存模块中,再对写缓存模块中的数据依次进行协议转换。
作为本申请的一种实施方式,在将待读取数据进行协议转换之前,将待读取数据暂存到读缓存模块中。
在一种实施例中,由于协议转换模块接收到读数据请求的数量与频率是随机的,而获取待读取数据的速率和将待读取数据进行转换并输出的速率不一致,因此为了防止出现数据丢失的情况,当获取到新的待转换数据(待读取数据)时,先将该数据暂存在读缓存模块中,再对读缓存模块中的数据依次进行协议转换。
基于同一发明构思,本申请一实施例提供一种数据访问方法。参考图5,图5是本申请一实施例提出的数据访问方法的流程图。如图5所示,该方法包括:
S51:根据主机发送的数据访问请求,获取对应的配置信息;数据访问请求为写数据请求或读数据请求;配置信息包括:数据操作地址、数据长度及起始信号:
S52:根据写数据请求对应的配置信息,将主机发送的待写入数据进行协议转换,并存储到存储模块中;
S53:根据读数据请求对应的配置信息,将存储模块中的待读取数据进行协议转换,并发送给主机。
上述步骤S52、S53之间并没有顺序关联,即本申请中,读数据操作与写数据操作之间并无顺序关联。本实施例中,根据主机发送的数据访问请求,对存储模块执行数据访问操作。当主机发送写数据请求时,同时还会发送待写入存储模块的数据,根据写数据请求所对应的配置信息,将待写入数据存储到存储模块中。当主机发送读数据请求时,根据读数据请求对应的配置信息,从存储模块中获取待读取数据,并将该数据进行协议转换后发送给主机。
作为本申请的一种实施方式,将主机发送的待写入数据进行协议转换,并存储到存储模块中,包括:
控制协议转换模块读取主机发送的待写入数据,并对待写入数据进行协议转换;
控制协议转换模块,将转换完成的待写入数据通过并行方式写入存储模块。
在一种实施例中,通过协议转换模块直接对主机发送的待写入数据进行处理,将接收到的待写入数据进行协议转换,并通过并行传输方式的写入存储模块。
作为本申请的一种实施方式,将主机发送的待写入数据进行协议转换,并存储到存储模块中,包括:
控制DMA模块将主机发送的待写入数据存储到DDR中;
控制协议转换模块读取DDR中的待写入数据,并对待写入数据进行协议转换,将转换完成的待写入数据通过并行方式写入存储模块。
在一种实施例中,协议转换模块不直接处理主机发送的待写入数据,而是通过DMA模块将待写入数据搬移到DDR中缓存,再由协议转换模块从DDR中读取数据进行协议转换和写入存储模块的操作。由于DMA模块具有高效数据传输的特点,并且传输数据不会占用CPU资源,因此采用本方法可以提高FPGA与主机之间的通信效率,同时在一定程度上提升CPU的运行性能。
作为本申请的一种实施方式,对待写入数据进行协议转换,包括:
根据写数据请求对应的配置信息,控制Avalon-MM接口的信号,将待写入数据存储到写缓存模块中;
根据写数据请求对应的配置信息控制CFI接口的信号,将写缓存模块中的待写入数据并行输出。
在本实施例中,对待写入数据进行协议转换,主要是控制协议转换模块的Avalon-MM接口与CFI接口的信号,通过控制Avalon-MM接口将待写入数据暂存到写缓存模块,再控制CFI接口将写缓存模块中的待写入数据输出。
作为本申请的一种实施方式,将存储模块中的待读取数据进行协议转换,并发送给主机,包括:
控制协议转换模块,通过并行方式读取存储模块中的待读取数据,并对待读取数据进行协议转换;
控制协议转换模块将转换完成的待读取数据发送给主机。
在一种实施例中,通过协议转换模块直接对存储模块中的待读取数据进行处理,根据读数据请求通过并行传输方式获取待读取数据,并对待读取数据进行协议转换,将转换完成的待读取数据返回给主机。
作为本申请的一种实施方式,将存储模块中的待读取数据进行协议转换,并发送给主机,包括:
控制协议转换模块,通过并行方式读取存储模块中的待读取数据,并对待读取数据进行协议转换;
将转换完成的待读取数据存储到DDR中;
控制DMA模块读取DDR中的待读取数据,并发送给主机。
在一种实施例中,协议转换模块不直接与主机进行通信,当FPGA接收到主机下发的读数据请求时,协议转换模块获取存储模块中的待读取数据,将其转换协议后存储到DDR中。再由DMA模块从DDR中读取数据并返回给主机。由于DMA模块具有高效数据传输的特点,并且传输数据不会占用CPU资源,因此采用本方法可以提高FPGA与主机之间的通信效率,同时在一定程度上提升CPU的运行性能。
作为本申请的一种实施方式,对待读取数据进行协议转换,包括:
根据读数据请求对应的配置信息控制CFI接口的信号,将存储模块中的待读取数据存储到读缓存模块中;
根据配置信息控制Avalon-MM接口的信号,将读缓存模块中的待读取数据串行输出。
在本实施例中,对待读取数据进行协议转换,主要是控制协议转换模块的Avalon-MM接口与CFI接口的信号,通过控制CFI接口将待读取数据从存储模块中暂存到读缓存模块,再控制Avalon-MM接口将读缓存模块中的待读取数据输出。
作为本申请的一种实施方式,该数据访问方法,还包括:
当FPGA上电时,控制协议转换模块从存储模块中获取FPGA镜像文件并暂存在读缓存模块中,等待硬核加载。
本实施例中,当FPGA上电时,通过协议转换模块从存储模块中获取FPGA镜像文件,并暂存在协议转换模块中等待加载。在这种情况下,由于并非Host发起读数据请求,因此协议转换模块从存储模块中读取到的FPGA镜像文件无需存储到DDR中。通过CFI接口并行传输FPGA镜像文件,能够显著提高PFGA上电加载的效率,降低上电延迟,在一定程度上提升FPGA处理数据的性能。
以上仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和部件并不一定是本申请所必须的。
本领域内的技术人员应明白,本申请实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的用于数据传输的FPGA、模型训练***及数据访问方法进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。
Claims (20)
1.一种用于数据传输的FPGA,其特征在于,包括协议转换模块,用于实现数据传输的串并转换;所述协议转换模块包括:
配置模块,用于获取数据访问请求对应的配置信息,将所述配置信息下发到Avalon-MM控制模块及CFI控制模块;所述配置信息包括:操作初始地址、数据长度及传输起始信号;所述数据访问请求为写数据请求或读数据请求;所述数据访问请求的访问对象为FPGA外部的存储器;
Avalon-MM控制模块,用于根据所述配置信息,控制Avalon-MM接口的第一信号;
CFI控制模块,用于根据所述配置信息,控制CFI接口的第二信号;
Avalon-MM接口,用于根据所述第一信号,对待读取数据或待写入数据执行串行传输操作;所述待写入数据包括模型训练数据和FPGA镜像文件;
CFI接口,用于根据所述第二信号,对待读取数据或待写入数据执行并行传输操作;所述待读取数据包括模型训练数据和FPGA镜像文件。
2.根据权利要求1所述的用于数据传输的FPGA,其特征在于,所述协议转换模块还包括:
写缓存模块,用于在所述Avalon-MM接口获取待写入数据后,暂存所述待写入数据。
3.根据权利要求1所述的用于数据传输的FPGA,其特征在于,所述协议转换模块还包括:
读缓存模块,用于在所述CFI接口模块获取待读取数据后,暂存所述待读取数据。
4.一种模型训练***,其特征在于,包括:
主机和至少一个AI加速器;所述AI加速器包括FPGA和存储模块,所述FPGA为权利要求1-3任一所述的FPGA;
所述主机,用于向所述AI加速器发送待写入数据及数据访问请求;所述待写入数据包括模型训练数据及FPGA镜像文件;所述数据访问请求为写数据请求或读数据请求;
所述AI加速器,用于接收所述主机发送的待写入数据并更新所述存储模块,以及根据所述读数据请求将所述存储模块中的待读取数据发送给所述主机。
5.根据权利要求4所述的模型训练***,其特征在于,所述FPGA用于根据所述主机发送的数据访问请求,获取对应的配置信息;根据所述配置信息对所述存储模块执行数据访问操作;所述配置信息包括:数据操作地址、数据长度及起始信号;所述数据访问操作为写数据操作或读数据操作;
所述存储模块,用于存储模型训练数据及FPGA镜像文件。
6.根据权利要求5所述的模型训练***,其特征在于,所述协议转换模块,用于在所述数据访问请求为写数据请求的情况下,执行以下操作:
将所述主机发送的待写入数据进行协议转换;
根据所述写数据请求对应的配置信息,将转换完成的所述待写入数据写入所述存储模块;所述待写入数据为模型训练数据或FPGA镜像文件。
7.根据权利要求5所述的模型训练***,其特征在于,所述协议转换模块,用于在所述数据访问请求为读数据请求的情况下,执行以下操作:
从所述存储模块中获取待读取数据并进行协议转换;
根据所述读数据请求对应的配置信息,将转换完成的所述待读取数据发送到所述主机;所述待读取数据为模型训练数据或FPGA镜像文件。
8.根据权利要求5所述的模型训练***,其特征在于,还包括DDR,用于缓存待写入数据或待读取数据;
所述FPGA还包括DMA模块,所述DMA模块用于与所述DDR进行数据通信。
9.根据权利要求8所述的模型训练***,其特征在于,所述DMA模块,用于在所述数据访问请求为写数据请求的情况下,将所述主机发送的待写入数据写入所述DDR;
所述协议转换模块,用于读取所述DDR中的待写入数据并进行协议转换;根据所述写数据请求对应的配置信息,将转换完成的待写入数据写入所述存储模块。
10.根据权利要求8所述的模型训练***,其特征在于,所述协议转换模块用于,在所述数据访问请求为读数据请求的情况下,根据所述读数据请求对应的配置信息,获取所述存储模块内的待读取数据;对所述待读取数据进行协议转换并存储到所述DDR中;
所述DMA模块,用于读取所述DDR中的待读取数据并发送给所述主机。
11.根据权利要求4所述的模型训练***,其特征在于,所述AI加速器与所述主机之间通过PCIE总线进行数据通信。
12.根据权利要求4所述的模型训练***,其特征在于,所述协议转换模块,还用于当上电时通过CFI接口从所述存储模块中获取FPGA镜像文件并暂存到读缓存模块中,等待硬核加载。
13.一种数据访问方法,其特征在于,基于如权利要求4-12任一所述的模型训练***实现,包括:
根据主机发送的数据访问请求,获取对应的配置信息;所述数据访问请求为写数据请求或读数据请求;所述配置信息包括:数据操作地址、数据长度及起始信号;
根据所述写数据请求对应的配置信息,将所述主机发送的待写入数据进行协议转换,并存储到存储模块中;
根据所述读数据请求对应的配置信息,将所述存储模块中的待读取数据进行协议转换,并发送给所述主机。
14.根据权利要求13所述的数据访问方法,其特征在于,将所述主机发送的待写入数据进行协议转换,并存储到存储模块中,包括:
控制协议转换模块读取所述主机发送的待写入数据,并对所述待写入数据进行协议转换;
控制所述协议转换模块,将转换完成的所述待写入数据通过并行方式写入所述存储模块。
15.根据权利要求13所述的数据访问方法,其特征在于,将所述主机发送的待写入数据进行协议转换,并存储到存储模块中,包括:
控制DMA模块将所述主机发送的待写入数据存储到DDR中;
控制协议转换模块读取所述DDR中的待写入数据,并对所述待写入数据进行协议转换,将转换完成的所述待写入数据通过并行方式写入所述存储模块。
16.根据权利要求14或15所述的数据访问方法,其特征在于,对所述待写入数据进行协议转换,包括:
根据所述写数据请求对应的配置信息,控制Avalon-MM接口的信号,将所述待写入数据存储到写缓存模块中;
根据所述写数据请求对应的配置信息控制CFI接口的信号,将所述写缓存模块中的待写入数据并行输出。
17.根据权利要求13所述的数据访问方法,其特征在于,将所述存储模块中的待读取数据进行协议转换,并发送给所述主机,包括:
控制协议转换模块,通过并行方式读取所述存储模块中的待读取数据,并对所述待读取数据进行协议转换;
控制所述协议转换模块将转换完成的所述待读取数据发送给所述主机。
18.根据权利要求13所述的数据访问方法,其特征在于,将所述存储模块中的待读取数据进行协议转换,并发送给所述主机,包括:
控制协议转换模块,通过并行方式读取所述存储模块中的待读取数据,并对所述待读取数据进行协议转换;
将转换完成的所述待读取数据存储到DDR中;
控制DMA模块读取所述DDR中的待读取数据,并发送给所述主机。
19.根据权利要求17或18所述的数据访问方法,其特征在于,对所述待读取数据进行协议转换,包括:
根据所述读数据请求对应的配置信息控制CFI接口的信号,将所述存储模块中的待读取数据存储到读缓存模块中;
根据所述配置信息控制Avalon-MM接口的信号,将所述读缓存模块中的待读取数据串行输出。
20.根据权利要求13所述的数据访问方法,其特征在于,还包括:
当所述FPGA上电时,控制协议转换模块从所述存储模块中获取FPGA镜像文件并暂存在读缓存模块中,等待硬核加载。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311339959.3A CN117093530B (zh) | 2023-10-17 | 2023-10-17 | 一种用于数据传输的fpga、模型训练***及数据访问方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311339959.3A CN117093530B (zh) | 2023-10-17 | 2023-10-17 | 一种用于数据传输的fpga、模型训练***及数据访问方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117093530A CN117093530A (zh) | 2023-11-21 |
CN117093530B true CN117093530B (zh) | 2024-02-09 |
Family
ID=88771962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311339959.3A Active CN117093530B (zh) | 2023-10-17 | 2023-10-17 | 一种用于数据传输的fpga、模型训练***及数据访问方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117093530B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111736867A (zh) * | 2020-06-05 | 2020-10-02 | 浪潮电子信息产业股份有限公司 | 一种fpga更新设备、方法以及存储介质 |
CN114237676A (zh) * | 2021-12-28 | 2022-03-25 | 湖南云箭智能科技有限公司 | 一种fpga逻辑更新方法、装置、设备及可读存储介质 |
-
2023
- 2023-10-17 CN CN202311339959.3A patent/CN117093530B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111736867A (zh) * | 2020-06-05 | 2020-10-02 | 浪潮电子信息产业股份有限公司 | 一种fpga更新设备、方法以及存储介质 |
CN114237676A (zh) * | 2021-12-28 | 2022-03-25 | 湖南云箭智能科技有限公司 | 一种fpga逻辑更新方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117093530A (zh) | 2023-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7844760B2 (en) | Schedule and data caching for wireless transmission | |
CN114003392B (zh) | 一种数据加速计算方法及相关装置 | |
CN109219805B (zh) | 一种多核***内存访问方法、相关装置、***及存储介质 | |
US11010094B2 (en) | Task management method and host for electronic storage device | |
CN110910921A (zh) | 一种命令读写方法、装置及计算机存储介质 | |
CN103077123A (zh) | 一种数据写入和读取方法及装置 | |
CN106775477B (zh) | Ssd主控数据传输管理装置及方法 | |
WO2022143295A1 (zh) | 固件升级方法和相关设备 | |
CN113051199A (zh) | 数据传输方法及装置 | |
US8639840B2 (en) | Processing unit, chip, computing device and method for accelerating data transmission | |
CN114816263A (zh) | 存储访问方法及智能处理装置 | |
JP6523707B2 (ja) | ラップ読出しから連続読出しを行うメモリサブシステム | |
US20220253252A1 (en) | Data processing method and apparatus | |
TW202011203A (zh) | 指令處理方法及使用所述方法的儲存控制器 | |
CN117093530B (zh) | 一种用于数据传输的fpga、模型训练***及数据访问方法 | |
US20220253238A1 (en) | Method and apparatus for accessing solid state disk | |
US11991011B2 (en) | Power supply device, power supply system and non-transitory computer-readable recording medium | |
KR102334473B1 (ko) | 적응형 딥러닝 가속 장치 및 방법 | |
CN111506518B (zh) | 一种数据存储控制方法及装置 | |
CN116601616A (zh) | 一种数据处理装置、方法及相关设备 | |
CN111401541A (zh) | 一种数据传输控制方法及装置 | |
WO2023115319A1 (zh) | 一种数据存储方法、存储装置及设备 | |
CN111949211B (zh) | 存储装置及存储控制方法 | |
WO2023142114A1 (zh) | 数据处理方法、装置以及电子设备 | |
CN117312201B (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 |