CN113655956B - 一种基于fpga和ddr4的高带宽多路数据存储读取单元的方法和*** - Google Patents

一种基于fpga和ddr4的高带宽多路数据存储读取单元的方法和*** Download PDF

Info

Publication number
CN113655956B
CN113655956B CN202110842225.1A CN202110842225A CN113655956B CN 113655956 B CN113655956 B CN 113655956B CN 202110842225 A CN202110842225 A CN 202110842225A CN 113655956 B CN113655956 B CN 113655956B
Authority
CN
China
Prior art keywords
data
ddr4
channel
fpga
buffer zone
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
CN202110842225.1A
Other languages
English (en)
Other versions
CN113655956A (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.)
Wuhan Jimu Intelligent Technology Co ltd
Original Assignee
Wuhan Jimu Intelligent 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 Wuhan Jimu Intelligent Technology Co ltd filed Critical Wuhan Jimu Intelligent Technology Co ltd
Priority to CN202110842225.1A priority Critical patent/CN113655956B/zh
Publication of CN113655956A publication Critical patent/CN113655956A/zh
Application granted granted Critical
Publication of CN113655956B publication Critical patent/CN113655956B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本申请实施例中提供了一种基于FPGA和DDR4的高带宽多路数据存储读取单元的方法和***,将传统的各种复杂需求的视频输入和输出显示逻辑,简化抽象为了FPGA多路数据接入单元,FPGA多路数据提取单元和FPGA多路数据矩阵配置单元,本申请中的FPGA多路数据矩阵配置单元具有多通道大数据传输量的特点以及逻辑设计上不易受外部复杂需求变动的影响,可以快速高效的定制各种复杂的视频控制显示场景,有很好的通用性,并具有很高的数据通道传输效率,有效满足8路~16路以上多路高带宽视频流的存储和读取。

Description

一种基于FPGA和DDR4的高带宽多路数据存储读取单元的方法 和***
技术领域
本申请涉及视频数据存储读写领域,尤其涉及一种基于FPGA和DDR4的高带宽多路数据存储读取单元的方法和***。
背景技术
在自动驾驶,安防监控,视频直播,视频会议,机器视觉等视觉领域,存在如下的普遍需求,即对多个摄像头传感器采集输入的多路高带宽实时视频数据,进行图像增强,缩放,拼接合成,深度学习等算法处理后,在多个显示设备上完成视频显示功能。未来需求对极多通道的高带宽数据流的灵活矩阵式存储读取转发的带宽能力和可扩展能力有极大的技术要求。
然而,现有技术一般为专用芯片或FPGA来解决2~4通道视频的存储和读取场景的解决方案,对8路~16路以上多路高带宽视频流的存储和读取解决方案基本没有涉及。另外,现有技术中,视频的接入和输出显示需求多种各样,其中的设计方案多为专用设计处理,需求的一次修改往往会导致设计方案较大的改动,没有很好的通用性,不适合快速高效的定制。
CN201811643205-一种支持多显示器功能的多媒体控制***,该发明提供了一种支持多显示器功能的多媒体控制***,该发明只覆盖了DDR的16路视频读取并进行任意四个组合合成为4路视频,通过HDMI在4个显示器上面显示的方案。未覆盖到多路DDR视频同时存储和缓冲区抽查帧处理的场景。CN201911183242-国产处理器和国产FPGA多路4K高清视频综合显示方法,该发明涉及一种国产处理器和国产FPGA多路4K高清视频综合显示方法,解决4通道视频的存储和读取合成显示,可支持读写的视频通道数量不够多和视频格式也不够任意。
通过以上描述可以得知,现有的一些发明设计,虽然利用了FPGA的定制电路和DDR4高带宽的技术特点,在一定程度上也实现了多通道视频的存储或者读取,但是在可配置通道数量的上限,可支持视频格式的任意性,输入输出视频数据流的帧速率适配,多通道数据矩阵存储和读取的DDR控制效率,以及可扩展IP化等方面都未进行深入优化和研究。
发明内容
有鉴于此,本申请实施例提供一种基于FPGA和DDR4的高带宽多路数据存储读取单元的方法和***,结合FPGA的灵活电路定制和DDR4的高带宽吞吐量,满足最高16路存储与16路读取,至少部分解决现有技术中存在的问题。在总的通道带宽能力可满足的条件下,可支持任意视频矩阵流的控制处理。
第一方面,本申请实施例提供了一种基于FPGA和DDR4的高带宽多路数据存储读取单元的装置,所述装置包括:FPGA和与其连接的若干DDR4颗粒组合;
所述FPGA内部为可配置化电路单元,包括可参数配置为1-16通道的写入通道和读出通道,每路所述写入通道与输入缓冲区连接,每路所述读出通道与输出缓冲区连接,所述输入缓冲区通过两级输入数据选择流水线与DDR4页数据写入缓冲区连接,所述输出缓冲区通过两级输出数据选择流水线与DDR4页数据读取缓冲区连接,所述DDR4页数据写入缓冲区通过DDR4用户层写数据控制逻辑与仲裁控制器连接,所述DDR4页数据读取缓冲区通过DDR4用户层读数据控制逻辑与仲裁控制器连接,所述仲裁控制器与DDR4用户层命令地址控制逻辑连接,所述DDR4页数据写入缓冲区、所述DDR4页数据读取缓冲区、所述DDR4用户层命令地址控制逻辑通过DDR4物理层控制内核与所述DDR4颗粒连接。
根据本申请实施例的一种具体实现方式,每路所述写入通道的输入可变视频流的时钟速率可单独配置,每路所述写入通道的通道位宽可参数配置;
每路所述读出通道的输出可变视频流的时钟速率可单独配置,每路所述写读出通道的通道位宽可参数配置。
根据本申请实施例的一种具体实现方式,每个所述输入缓冲区的深度可根据需求配置,被配置为隔离和转换可变速率输入视频,将可变位宽和速率的跨时钟域视频数据统一格式化为DDR4用户时钟域的数据流。
根据本申请实施例的一种具体实现方式,每个所述输入缓冲区,被配置为根据当前缓冲区数据水线的深度对所述DDR4页数据写入缓冲区发起低和高两个不同优先级的页搬移请求信号,并等待所述仲裁控制器响应该请求的通道占用信号;当该通道占用信号有效时,所述输入缓冲区内部的dma控制逻辑会通过两级输入数据选择流水线将需要存储的数据搬移到所述DDR4页数据写入缓冲区。
根据本申请实施例的一种具体实现方式,每个所述输入缓冲区对写入视频帧的行数量和列数量可参数配置,对视频缓冲区数量可参数配置,对写入视频缓冲区ddr基地址可参数配置,每个所述输入缓冲区根据输入控制信号标志对所述输入缓冲区进行相应操作。
根据本申请实施例的一种具体实现方式,每个所述输出缓冲区的深度可根据需求配置,用于隔离和转换可变速率输出视频,以及将DDR4用户时钟域的数据流转化为可变位宽和速率的跨时钟域视频数据。
根据本申请实施例的一种具体实现方式,每个所述输出缓冲区,被配置为根据当前缓冲区数据水线的深度对所述DDR4页数据读出缓冲区发起低和高两个不同优先级的页搬移请求信号,并等待DDR4用户仲裁控制器响应该请求的通道占用信号;当该通道占用信号有效时,所述视频输出缓冲区会等待所述DDR4页数据读出缓冲区内部接收到新的数据,此时所述视频输出缓冲区的内部dma控制逻辑会通过两级输出的数据选择流水线将需要读取的数据从所述DDR4页数据读取缓冲区搬移到该通道的所述视频输出缓冲区。
根据本申请实施例的一种具体实现方式,每个所述输出缓冲区对读取的视频帧的行数量和列数量可参数配置,对读取的视频缓冲区DDR基地址可参数配置,每个所述输出缓冲区根据输出控制信号标志对所述输出缓冲区进行相应操作。
根据本申请实施例的一种具体实现方式,所述仲裁控制器将接收的请求信号按照通道和等级不同分为4组,分别为优先级等级由高到低的高优先级写信号组,高优先级读信号组,低优先级写信号组和低优先级读信号组,同组的请求信号具有相同的优先级,所述仲裁控制器对组内请求信号按照round robin方式进行仲裁响应。
根据本申请实施例的一种具体实现方式,所述DDR4用户层写数据控制逻辑,在有效工作模式下,直接对接写入通道其中一个通道的业务数据,解耦多通道用户数据写控制层。
根据本申请实施例的一种具体实现方式,所述DDR4用户层读数据控制逻辑,在有效工作模式下,直接对接读出通道其中一个通道的业务数据,解耦多通道用户数据读控制层。
根据本申请实施例的一种具体实现方式,所述DDR4用户层命令地址控制逻辑,在有效工作模式下,直接对接写入通道或读出通道其中一个通道的业务数据,解耦多通道用户数据写控制层或读控制层。
根据本申请实施例的一种具体实现方式,所述DDR4物理层控制内核将DDR4用户层的数据和控制信号总线转换为所述DDR4颗粒要求的物理层信号总线。
根据本申请实施例的一种具体实现方式,该装置还包括第二控制器,被配置为控制写入通道顺序映射所述DDR4颗粒内的存储区内存排列和通道写指针和通道写基地址的映射解析,以及控制读出通道任意不对称映射所述DDR4颗粒内的存储区内存排列和通道读指针和通道读基地址的映射解析。
根据本申请实施例的一种具体实现方式,该装置还包括DDR4效率监测单元,可参数配置统计一段时间区间单位的DDR4物理层控制内核的可利用率百分比和实际使用率百分比。
第二方面,本申请实施例提供了一种基于FPGA和DDR4的高带宽多路数据存储读取单元的方法,所述方法基于所述的一种基于FPGA和DDR4的高带宽多路数据存储读取单元的装置。
第三方面,本申请实施例提供了一种基于FPGA和DDR4的高带宽多路数据存储读取单元的***,所述***包括:所述FPGA多路数据矩阵配置单元,所述FPGA多路数据矩阵配置单元分别和FPGA多路数据接入单元和FPGA多路数据提取单元连接;
所述FPGA多路数据矩阵配置单元基于本申请实施例提供的一种基于FPGA和DDR4的高带宽多路数据存储读取单元的装置,被配置为将多路输入数据的存储和交叉读取转换为多路视频输出数据,并内部配置好多路输入数据的输入通道对接的多路视频输出数据的输出通道。
所述FPGA多路数据接入单元,被配置为前级输入视频数据解耦;
所述FPGA多路数据提取单元,被配置为后级输出视频数据解耦。
通过本申请的数据矩阵方案,最高可进行16路存储以及16路读取数据。本申请的***将多路复杂输入视频的输入和输出显示需求抽象化模板化并解耦设计需求为三个单元,FPGA多路数据接入单元,FPGA多路数据提取单元和FPGA多路数据矩阵配置单元,利用FPGA万能胶水逻辑电路的特点融合接入不同视频输入数据和转换合成不同视频输出数据,将复杂需求解耦为了FPGA多路数据接入单元和FPGA多路数据提取单元这两个单元.可以快速高效的定制各种复杂的视频控制显示场景,有很好的通用性,并具有很高的数据通道传输效率。
本申请的FPGA多路数据矩阵配置单元具有多通道大数据传输量的特点,具有逻辑设计上不易受外部复杂需求变动的影响,往往只需要一次设计,再通过反复定制配置参数和修改内部矩阵交叉连接关系,高效反复使用的特点;这样极大的降低了复杂视频输入输出需求的设计难度.也提高了快速定制新需求的效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例的一种基于FPGA和DDR4的高带宽多路数据存储读取单元的装置示意图;
图2为本申请实施例的DDR颗粒内的存储区内存排列映射图;
图3为本申请实施例的***应用场景示例图。
具体实施方式
下面结合附图对本申请实施例进行详细描述。
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本申请,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。
本实施例结合FPGA的灵活电路定制和ddr4的高带宽吞吐量,提出一种最高16路存储+16路读取的数据矩阵方案,在总的通道带宽能力可满足的条件下,可支持(cvbs,720p,1080p,4k等等)任意视频矩阵流的控制处理。
接下来,参考附图,具体描述本申请实施例的基于FPGA和DDR4的高带宽多路数据存储读取单元的装置和***。
参见图1,本申请实施例提供的一种基于FPGA和DDR4的高带宽多路数据存储读取单元的装置,所述装置包括:FPGA和与其连接的若干DDR4颗粒组合;在本实施例中,基于xilinx公司的MPSOC系列FPGAXCZU5EV FPGA和MICRON公司的4个MT40A512M16HADDR4颗粒组合方案进行介绍,在实际的应用中,可以根据需求和成本权衡选择合适的FPGA芯片和DDR颗粒组合方案。
所述FPGA内部为可配置化电路单元,包括可参数配置为1-16通道的写入通道和读出通道,每路所述写入通道与输入缓冲区连接,每路所述读出通道与输出缓冲区连接,所述输入缓冲区通过两级输入数据选择流水线与DDR4页数据写入缓冲区连接,所述输出缓冲区通过两级输出数据选择流水线与DDR4页数据读取缓冲区连接,所述DDR4页数据写入缓冲区通过DDR4用户层写数据控制逻辑与仲裁控制器连接,所述DDR4页数据读取缓冲区通过DDR4用户层读数据控制逻辑与仲裁控制器连接,所述仲裁控制器与DDR4用户层命令地址控制逻辑连接,所述DDR4页数据写入缓冲区、所述DDR4页数据读取缓冲区、所述DDR4用户层命令地址控制逻辑通过DDR4物理层控制内核与所述DDR4颗粒连接。
如图1所示,在FPGA内部设计了基于DDR4的最大16通道写/最大16通道读的可配置化电路单元,包括可参数配置为1~16通道写入,1~16通道读出,每路输入可变视频流的时钟速率可独立配置,通道位宽可参数配置选择为8bit/16bit/32bit等。每路输出可变视频流的时钟速率可独立配置,通道位宽可参数配置选择为8bit/16bit/32bit等。
如图1所示,FPGA内部的输入缓冲区1~16的深度可根据需求灵活配置,缓冲区起到隔离和转换可变速率输入视频的作用,将可变位宽和速率的跨时钟域视频数据统一格式化为DDR4用户时钟域的512位宽的数据流。
如图1所示,FPGA内部的输出缓冲区1~16的深度可根据需求灵活配置,缓冲区起到隔离和转换可变速率输出视频的作用,将DDR4用户时钟域的512位宽的数据流转换为可变位宽和速率的跨时钟域的输出视频数据。
如图1所示,FPGA内部的每个输入缓冲区可根据当前缓冲区数据水线的深度,对DDR4页数据写入缓冲区发起低和高两个不同优先级的页搬移请求req信号,并等待DDR4用户仲裁控制器响应该请求的通道occupy信号.当该通道occupy信号有效时,输入缓冲区内部的dma控制逻辑会通过两级2048mux to512的数据选择流水线将需要存储的数据搬移到DDR4页数据写入缓冲区。
如图1所示,FPGA内部的每个输出缓冲区可根据当前缓冲区数据水线的深度,对DDR4页数据读出缓冲区发起低和高两个不同优先级的页搬移请求req信号,并等待DDR4用户仲裁控制器响应该请求的通道occupy信号。当该通道occupy信号有效时,视频输出缓冲区会等待DDR4页数据读出缓冲区内部接收到新的数据,此时视频输出缓冲区的内部dma控制逻辑会通过两级512mux to 2048的数据选择流水线将需要读取的数据从DDR4页数据读取缓冲区搬移到该通道的视频输出缓冲区。
如图1所示,FPGA内部的每个可变输入视频的输入缓冲区,可以通过参数配置视频帧的行数量和列数量,可参数配置视频缓冲区数量(默认每通道4个轮转缓冲区),可参数配置视频缓冲区ddr基地址等,并通过输入的视频帧有效和行有效等控制信号标志,对输入缓冲区进行复位控制,更新轮转缓冲区写指针标志,写数据有效信息标志,缓冲区写地址切换等操作。
如图1所示,FPGA内部的每个可变输出视频的输出缓冲区,可以通过参数配置视频帧的行数量和列数量,可参数配置要读取的视频缓冲区ddr基地址等,并通过视频帧请求和行请求等控制信号标志,对输出缓冲区进行复位控制,更新轮转缓冲区读取指针标志,读数据有效信息标志,缓冲区读地址切换等操作。
如图1所示,FPGA内部的16通道写/16通道读仲裁控制器,共接收16个写通道的高级和低级两个请求信号和16个读通道的高级和低级两个请求信号,一共16*2+16*2=64个请求信号;仲裁控制逻辑将64个请求信号分为4组,16通道的高优先级写信号记为组1,16通道的高优先级读信号记为组2,16通道的低优先级写信号记为组3,16通道的低优先级读信号记为组4,每组都是16个请求信号;同组的请求信号具有相同的优先级,仲裁控制器对组内请求信号按照round robin方式进行仲裁响应,不同组的请求信号,优先级从高到低排列为,组1优先级>组2优先级>组3优先级>组4优先级。仲裁控制器响应诸多请求信号中的某个信号请求后,会给获得ddr控制权的那个写或读通道发出occupy信号,并通知DDR4用户层写数据控制逻辑或DDR4用户层读数据控制逻辑,输入或输出的两级流水线选择电路逻辑,进行数据和控制通道切换,和该读/写通道缓冲区电路进行控制对接。
如图1所示,FPGA内部的DDR4用户层写数据控制逻辑,在有效工作模式下,直接对接16个写通道其中一个的业务数据,解耦了多通道用户数据写控制层,相当于一次独立完整的DDR4页数据写入数据逻辑。
FPGA内部的DDR4用户层读数据控制逻辑,在有效工作模式下,直接对接16个读通道其中一个的业务数据,解耦了多通道用户数据读控制层,相当于一次独立完整的DDR4页数据读取数据逻辑。
如图1所示,FPGA内部的DDR4用户层命令地址控制逻辑,在有效工作模式下,直接对接16个写通道/16个读通道其中一个的业务控制信号,解耦了多通道用户写/读控制层,相当于一次独立完整的DDR4页写入/读取控制逻辑。
如图1所示,DDR4 MIG PHY为xilinx的DDR4物理层控制IPCORE,将DDR4用户层的数据和控制信号总线转换为DDR4颗粒要求的物理层信号总线。
对于本实施例中,DDR4 IPCORE最高支持颗粒控制时钟速率为1066Mhz,DDR4用户层的时钟速率固定为颗粒控制速率的1/4,即266.7Mhz;控制器的内存映射方式为ROW-COLUMN-BANK,每次写/读数据量的单位按4个DDR4颗粒页的整数倍进行,即一次最小写/读4*16kbit=64kbi。本实施例设计中,Xilinx的DDR4 MIG PHY和DDR4颗粒组合的理论最大传输能力1066M*2*64bits/S*91%=124.16768Gbits/S,其中91%为Xilinx的DDR4 MIG PHY提供的连续单通道写或读的理论效率。实际16写通道/16读通道对同一个DDR IPCORE的共享复用控制和仲裁流水等处理,会一定程度降低使用效率,实测DDR效率利用率可达到xilinx理论值91%的90%左右,即总效率约81%,总的数据带宽传输能力为1066M*2*64bits/S*81%=110.52288Gbits/S。
一般地,YUV422 16bits的4kp30视频数据带宽占用率为3840*2160*16bits*30/S=3.981312Gbits/S,YUV422 16bits的1080p60视频数据带宽占用率为1920*1080*16bits*60/S=1.990656Gbits/S,假定配置16个输入视频通道(11路4kp30视频输入,5路1080p60视频输入)和16个输出视频通道(11路4kp30视频输出,5路1080p60视频输出),则总的带宽使用为(11*3.981312+5*1.990656)*2=107.495424Gbits/S<110.52288Gbits/S设计方案的最大可利用带宽。因此本实施例设计方案,对于多通道高带宽的大数据矩阵存储和读取有很强的支持能力。
根据本申请实施例的一种具体实现方式,该装置还包括第二控制器,如图1中所述的M通道写/N通道读轮转存储区基地址任意交叉映射控制器&抽查帧指针流量控制器,本实施例设计支持写数据通道/读数据通道数量可配置1~16,假设实际配置了M个写通道,N个读通道,图1中FPGA内部的”M通道写/N通道读轮转存储区基地址任意交叉映射控制器&抽查帧指针流量控制器”,完成对图2所示DDR4内存颗粒上的M*4个帧存储区的顺序方式一一写入映射,通道写指针和通道写基地址的映射解析。完成用户可参数配置的对图2所示的DDR4内存颗粒上的N个读通道的轮转读指针和M*4个存储区的任意方式不对称映射,以及通道读指针和通道读基地址的映射解析。因此,DDR4颗粒内的实际存储区数量只和写通道的数量相关联,默认会使用M*4个存储区(默认每通道轮转存储区数量)。
对于读和写异步时的不同帧速率匹配情况,如写入通道为1080p60帧数据,而读出通道为1080p30帧数据,是通过帧存储指针和读取指针的不同速率适配来完成。这里需要结合具体需求控制读写指针的写满停止,读空停止,指针步长调整等适配问题。另外,M和N的取值没有直接关系,可以任意指定为1~16之间的数值和配置互联交叉关系。
如图1所示,FPGA内部的效率监测单元,可参数配置统计一段时间区间单位,统计DDR4 PHY控制器的可利用率百分比,以及控制器的实际使用率百分比.每经历一次时间区间,自动刷新一次实时的可利用率和使用率数据。
第二方面,本申请实施例提供了一种基于FPGA和DDR4的高带宽多路数据存储读取单元的方法,所述方法基于所述的一种基于FPGA和DDR4的高带宽多路数据存储读取单元的装置。
第三方面,本申请实施例提供了一种基于FPGA和DDR4的高带宽多路数据存储读取单元的***,所述***包括:所述FPGA多路数据矩阵配置单元,所述FPGA多路数据矩阵配置单元分别和FPGA多路数据接入单元和FPGA多路数据提取单元连接;
所述FPGA多路数据矩阵配置单元基于本申请实施例提供的一种基于FPGA和DDR4的高带宽多路数据存储读取单元的装置,被配置为将多路输入数据的存储和交叉读取转换为多路视频输出数据,并内部配置好多路输入数据的输入通道对接的多路视频输出数据的输出通道。
所述FPGA多路数据接入单元,被配置为前级输入视频数据解耦;
所述FPGA多路数据提取单元,被配置为后级输出视频数据解耦。
在本实施例中,如图3所示的本***应用场景示例,假设FPGA芯片外部输入有三路视频,视频1为鱼眼摄像头输入视频,视频2为摄像头输入视频,视频3为外部网口输入的编码后的待合成的背景视频。有两个外部显示设备,显示设备1需要同时显示鱼眼摄像头1的原始视频和去畸变之后的视频.以及网络输入的背景视频。显示设备2需要同时显示摄像头2放大后的视频和网络输入的背景视频。
在本实施例中,如图3所示的本***应用场景示例,FPGA多路数据接入单元完成网络输入视频数据解码,摄像头2输入视频的缩放,鱼眼摄像头1视频分路为原始视频和去畸变视频两路视频,一共送出4路视频数据给FPGA多路数据矩阵配置单元。
如图3所示,本实施例设计方案的应用场景示例中,FPGA多路数据矩阵配置单元完成4路视频输入数据的存储和交叉读取转换为5路视频输出数据,即配置M=4,N=5,并内部配置好输入通道1对接输出通道2,输入通道2对接输出通道1,输入通道3对接输出通道3,输入通道4对接输出通道4,输入通道4对接输出通道5。
如图3所示,本实施例设计方案的应用场景示例中,FPGA多路数据提取单元完成对5路视频输出数据进行分别合成。合成器1将视频输出通道1,2,4的数据合成为一路视频数据,输出到FPGA外部的显示设备1。合成器2将视频输出通道3,5的数据合成为一路视频数据,输出到FPGA外部的显示设备2。
本实施例只是本专利设计方案的一种应用场景示例,按照这个模板,可以根据实际需求灵活设计FPGA多路数据接入单元,FPGA多路数据提取单元,并配置好FPGA多路数据矩阵配置单元。
经验证和测试,本实施例可以同时支持高达11路4kp30+5路1080p60的视频输入和11路4kp30+5路1080p60的视频输出,对于多通道大带宽的视频数据存储读写有很强的支持和扩展能力。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。

Claims (8)

1.一种基于FPGA和DDR4的高带宽多路数据存储读取单元的装置,所述装置包括:FPGA和与其连接的若干DDR4颗粒组合;其特征在于,
所述FPGA内部为可配置化电路单元,包括可参数配置为1-16通道的写入通道和读出通道,每路所述写入通道与输入缓冲区连接,每路所述读出通道与输出缓冲区连接,所述输入缓冲区通过两级输入数据选择流水线与DDR4页数据写入缓冲区连接,所述输出缓冲区通过两级输出数据选择流水线与DDR4页数据读取缓冲区连接,所述DDR4页数据写入缓冲区通过DDR4用户层写数据控制逻辑与仲裁控制器连接,所述DDR4页数据读取缓冲区通过DDR4用户层读数据控制逻辑与仲裁控制器连接,所述仲裁控制器与DDR4用户层命令地址控制逻辑连接,所述DDR4页数据写入缓冲区、所述DDR4页数据读取缓冲区、所述DDR4用户层命令地址控制逻辑通过DDR4物理层控制内核与所述DDR4颗粒连接;
每个所述输入缓冲区的深度可根据需求配置,被配置为隔离和转换可变速率输入视频,将可变位宽和速率的跨时钟域视频数据统一格式化为DDR4用户时钟域的数据流;
每个所述输入缓冲区,被配置为根据当前缓冲区数据水线的深度对所述DDR4页数据写入缓冲区发起低和高两个不同优先级的页搬移请求信号,并等待所述仲裁控制器响应该请求的通道占用信号;当该通道占用信号有效时,所述输入缓冲区内部的dma控制逻辑会通过两级输入数据选择流水线将需要存储的数据搬移到所述DDR4页数据写入缓冲区;
每个所述输入缓冲区对写入视频帧的行数量和列数量可参数配置,对视频缓冲区数量可参数配置,对写入视频缓冲区ddr基地址可参数配置,每个所述输入缓冲区根据输入控制信号标志对所述输入缓冲区进行相应操作;
该装置还包括第二控制器,被配置为控制写入通道顺序映射所述DDR4颗粒内的存储区内存排列和通道写指针和通道写基地址的映射解析,以及控制读出通道任意不对称映射所述DDR4颗粒内的存储区内存排列和通道读指针和通道读基地址的映射解析;
该装置还包括DDR4效率监测单元,可参数配置统计一段时间区间单位的DDR4物理层控制内核的可利用率百分比和实际使用率百分比。
2.根据权利要求1所述的一种基于FPGA和DDR4的高带宽多路数据存储读取单元的装置,其特征在于,每路所述写入通道的输入可变视频流的时钟速率可单独配置,每路所述写入通道的通道位宽可参数配置;
每路所述读出通道的输出可变视频流的时钟速率可单独配置,每路所述读出通道的通道位宽可参数配置。
3.根据权利要求1所述的一种基于FPGA和DDR4的高带宽多路数据存储读取单元的装置,其特征在于,每个所述输出缓冲区的深度可根据需求配置,用于隔离和转换可变速率输出视频,以及将DDR4用户时钟域的数据流转化为可变位宽和速率的跨时钟域视频数据;
每个所述输出缓冲区,被配置为根据当前缓冲区数据水线的深度对所述DDR4页数据读出缓冲区发起低和高两个不同优先级的页搬移请求信号,并等待DDR4用户仲裁控制器响应该请求的通道占用信号;当该通道占用信号有效时, 所述输出缓冲区会等待所述DDR4页数据读出缓冲区内部接收到新的数据, 此时所述输出缓冲区的内部dma控制逻辑会通过两级输出数据选择流水线将需要读取的数据从所述DDR4页数据读取缓冲区搬移到该通道的所述输出缓冲区;
每个所述输出缓冲区对读取的视频帧的行数量和列数量可参数配置,对读取的视频缓冲区DDR基地址可参数配置,每个所述输出缓冲区根据输出控制信号标志对所述输出缓冲区进行相应操作。
4.根据权利要求1所述的一种基于FPGA和DDR4的高带宽多路数据存储读取单元的装置,其特征在于,所述仲裁控制器将接收的请求信号按照通道和等级不同分为4组,分别为优先级等级由高到低的高优先级写信号组,高优先级读信号组,低优先级写信号组和低优先级读信号组,同组的请求信号具有相同的优先级, 所述仲裁控制器对组内请求信号按照round robin方式进行仲裁响应。
5.根据权利要求1所述的一种基于FPGA和DDR4的高带宽多路数据存储读取单元的装置,其特征在于,所述DDR4用户层写数据控制逻辑,在有效工作模式下,直接对接写入通道其中一个通道的业务数据,解耦多通道用户数据写控制层;
所述DDR4用户层读数据控制逻辑,在有效工作模式下,直接对接读出通道其中一个通道的业务数据,解耦多通道用户数据读控制层;
所述DDR4用户层命令地址控制逻辑,在有效工作模式下,直接对接写入通道或读出通道其中一个通道的业务数据,解耦多通道用户数据写控制层或读控制层。
6.根据权利要求1所述的一种基于FPGA和DDR4的高带宽多路数据存储读取单元的装置,其特征在于,所述DDR4物理层控制内核将DDR4用户层的数据和控制信号总线转换为所述DDR4颗粒要求的物理层信号总线。
7.一种基于FPGA和DDR4的高带宽多路数据存储读取单元的方法,其特征在于,所述方法基于前述权利要求1-6中任一项所述的一种基于FPGA和DDR4的高带宽多路数据存储读取单元的装置。
8.一种基于FPGA和DDR4的高带宽多路数据存储读取单元的***,其特征在于,所述***包括:FPGA多路数据矩阵配置单元, 所述FPGA多路数据矩阵配置单元分别和FPGA多路数据接入单元和FPGA多路数据提取单元连接;
所述FPGA多路数据矩阵配置单元基于前述权利要求1-6中任一项所述的一种基于FPGA和DDR4的高带宽多路数据存储读取单元的装置,被配置为将多路输入数据的存储和交叉读取转换为多路视频输出数据,并内部配置好多路输入数据的输入通道对接的多路视频输出数据的输出通道;
所述FPGA多路数据接入单元,被配置为前级输入视频数据解耦;
所述FPGA多路数据提取单元,被配置为后级输出视频数据解耦。
CN202110842225.1A 2021-07-26 2021-07-26 一种基于fpga和ddr4的高带宽多路数据存储读取单元的方法和*** Active CN113655956B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110842225.1A CN113655956B (zh) 2021-07-26 2021-07-26 一种基于fpga和ddr4的高带宽多路数据存储读取单元的方法和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110842225.1A CN113655956B (zh) 2021-07-26 2021-07-26 一种基于fpga和ddr4的高带宽多路数据存储读取单元的方法和***

Publications (2)

Publication Number Publication Date
CN113655956A CN113655956A (zh) 2021-11-16
CN113655956B true CN113655956B (zh) 2024-02-02

Family

ID=78478124

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110842225.1A Active CN113655956B (zh) 2021-07-26 2021-07-26 一种基于fpga和ddr4的高带宽多路数据存储读取单元的方法和***

Country Status (1)

Country Link
CN (1) CN113655956B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114237496B (zh) * 2021-12-01 2022-05-13 苏州浪潮智能科技有限公司 优化多通道***内存读写效能方法、装置和计算机设备
CN116668985A (zh) * 2023-06-25 2023-08-29 成都飞机工业(集团)有限责任公司 一种多源多节点采集传感数据无线传输的低误码率方法
CN117573044B (zh) * 2024-01-18 2024-04-30 西安智多晶微电子有限公司 一种拼接实现扩展ddrc位宽的方法及装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6138176A (en) * 1997-11-14 2000-10-24 3Ware Disk array controller with automated processor which routes I/O data according to addresses and commands received from disk drive controllers
US6720968B1 (en) * 1998-12-11 2004-04-13 National Instruments Corporation Video acquisition system including a virtual dual ported memory with adaptive bandwidth allocation
CN102012791A (zh) * 2010-10-15 2011-04-13 中国人民解放军国防科学技术大学 基于Flash的数据存储PCIE板卡
CN105975416A (zh) * 2016-04-28 2016-09-28 西安电子科技大学 基于fpga的多通道异速数据发送***
CN106371790A (zh) * 2016-10-12 2017-02-01 深圳市捷视飞通科技股份有限公司 基于fpga的双通道视频多画面分割显示方法及装置
CN106445869A (zh) * 2016-09-20 2017-02-22 烟台大学 一种基于FPGA和PCIe的高速数据交换构架
CN111143257A (zh) * 2019-12-02 2020-05-12 深圳市奥拓电子股份有限公司 Ddr仲裁控制器、视频缓存装置及视频处理***
CN111782578A (zh) * 2020-05-29 2020-10-16 西安电子科技大学 一种缓存控制方法、***、存储介质、计算机设备及应用
CN112073650A (zh) * 2020-09-16 2020-12-11 中航华东光电有限公司 基于fpga的ddr3视频缓存控制方法
CN113076066A (zh) * 2021-04-14 2021-07-06 湖南兴天电子科技有限公司 大容量高速存储设备及其运行方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150261446A1 (en) * 2014-03-12 2015-09-17 Futurewei Technologies, Inc. Ddr4-onfi ssd 1-to-n bus adaptation and expansion controller
US9852779B2 (en) * 2014-03-12 2017-12-26 Futurewei Technologies, Inc. Dual-port DDR4-DIMMs of SDRAM and NVRAM for SSD-blades and multi-CPU servers

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6138176A (en) * 1997-11-14 2000-10-24 3Ware Disk array controller with automated processor which routes I/O data according to addresses and commands received from disk drive controllers
US6720968B1 (en) * 1998-12-11 2004-04-13 National Instruments Corporation Video acquisition system including a virtual dual ported memory with adaptive bandwidth allocation
CN102012791A (zh) * 2010-10-15 2011-04-13 中国人民解放军国防科学技术大学 基于Flash的数据存储PCIE板卡
CN105975416A (zh) * 2016-04-28 2016-09-28 西安电子科技大学 基于fpga的多通道异速数据发送***
CN106445869A (zh) * 2016-09-20 2017-02-22 烟台大学 一种基于FPGA和PCIe的高速数据交换构架
CN106371790A (zh) * 2016-10-12 2017-02-01 深圳市捷视飞通科技股份有限公司 基于fpga的双通道视频多画面分割显示方法及装置
CN111143257A (zh) * 2019-12-02 2020-05-12 深圳市奥拓电子股份有限公司 Ddr仲裁控制器、视频缓存装置及视频处理***
CN111782578A (zh) * 2020-05-29 2020-10-16 西安电子科技大学 一种缓存控制方法、***、存储介质、计算机设备及应用
CN112073650A (zh) * 2020-09-16 2020-12-11 中航华东光电有限公司 基于fpga的ddr3视频缓存控制方法
CN113076066A (zh) * 2021-04-14 2021-07-06 湖南兴天电子科技有限公司 大容量高速存储设备及其运行方法

Also Published As

Publication number Publication date
CN113655956A (zh) 2021-11-16

Similar Documents

Publication Publication Date Title
CN113655956B (zh) 一种基于fpga和ddr4的高带宽多路数据存储读取单元的方法和***
KR101032550B1 (ko) 단일 및 통합 커맨드를 모두 구비한 메모리 시스템
CN1661583B (zh) 协议转换和仲裁电路、***及转换和仲裁信号的方法
US9247157B2 (en) Audio and video data multiplexing for multimedia stream switch
US5812789A (en) Video and/or audio decompression and/or compression device that shares a memory interface
CN110083555A (zh) 具有独立接口路径的存储器设备的通用管芯实现
US8464006B2 (en) Method and apparatus for data transmission between processors using memory remapping
CN101350924A (zh) 编码多媒体信号
US20230161516A1 (en) Control method for requesting status of flash memory, flash memory system
US7558285B2 (en) Data processing system and data interfacing method thereof
US6826776B1 (en) Method and apparatus for determining signal path
WO2023107218A1 (en) High-bandwidth memory module architecture
CN112073650A (zh) 基于fpga的ddr3视频缓存控制方法
US20060200606A1 (en) Bus connection method and apparatus
US7515158B2 (en) Modularly configurable memory system for LCD TV system
US7523250B2 (en) Semiconductor memory system and semiconductor memory chip
US20070041587A1 (en) Digital audio broadcasting modem interface system for receiving multi-channel and its working method
US7606983B2 (en) Sequential ordering of transactions in digital systems with multiple requestors
US20200264831A1 (en) Multi-core audio processor with phase coherency
US8605098B2 (en) Memory structure for optimized image processing
KR100819968B1 (ko) 반도체 메모리 시스템 및 반도체 메모리 칩
JPH05282191A (ja) マルチ方式ビデオフィールドメモリ装置及びそのプロセシング方法
KR100469284B1 (ko) 디지털 티브이의 버퍼 뱅크 제어 장치
JP2002312233A (ja) 信号処理装置
US7623544B2 (en) Data processing system, access controlling method, access controlling apparatus and recording medium

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