CN114968906A - 一种基于isp流水线的粗粒度可重构处理器 - Google Patents
一种基于isp流水线的粗粒度可重构处理器 Download PDFInfo
- Publication number
- CN114968906A CN114968906A CN202210312448.1A CN202210312448A CN114968906A CN 114968906 A CN114968906 A CN 114968906A CN 202210312448 A CN202210312448 A CN 202210312448A CN 114968906 A CN114968906 A CN 114968906A
- Authority
- CN
- China
- Prior art keywords
- isp
- unit
- array
- execution
- network
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
- G06F15/7878—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS for pipeline reconfiguration
-
- 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
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/177—Initialisation or configuration control
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Image Processing (AREA)
Abstract
本发明提供一种基于ISP流水线的粗粒度可重构处理器。所述处理器包括包括:ISP交互接口单元、执行控制单元CU、配置管理单元MU、直接访存单元DMA、执行单元阵列、阵列访存单元和分块存储器。本发明在典型的ISP流水线中增加在线的输入输出接口,通过输出接口将图像数据传入CGRA处理器内部,CGRA执行ISP软件算法,将计算结果通过ISP输入接口在线反馈到ISP内部,提高了图像数据处理速度,实现了ISP流水线的实时图像处理。
Description
技术领域
本发明属于技术处理器领域,具体涉及一种基于ISP(Image Signal Processing,图像信号处理)流水线的粗粒度可重构处理器及电子设备。
背景技术
图像传感器(Image Sensor)广泛应用于终端成像设备,如摄像机、移动电话、监控摄像头、汽车的视觉传感器等。图像传感器用于获取光强度的空间变化,然后使用图像处理算法根据图像传感器提供的数据重建彩色图片。一个典型的ISP算法流水线包括坏点校正(Deadpixel correction)、黑电平校正(black level compensation)、镜头阴影校正(Lensshading correction)、CFA插值(CFA interpolation)、色彩校正(Color CorrectionMatrix)、白平衡增益(AWB Gain Control)等。在早期的终端设备中,ISP算法流水线可以通过数字信号处理器(Digital Signal Processor,DSP)或者专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)实现。但是随着手机、监控等设备对成像质量的要求越来越高,DSP无法提供ISP实时处理所要求的算力,现代的终端设备均采用ASIC的方案实现,DSP用来辅助实现一些ISP的前处理与后处理操作。但是DSP执行的前处理操作与后处理操作通常都是离线计算,因为DSP不是实时性设备,无法与ISP进行在线实时交互。
发明内容
为了解决现有技术中存在的上述问题,本发明提供一种基于ISP流水线的粗粒度可重构处理器及电子设备。
为了实现上述目的,本发明采用以下技术方案。
本发明提供了一种基于ISP流水线的粗粒度可重构处理器,包括:ISP交互接口单元、执行控制单元CU(CU,ControllerUnit)、配置管理单元MU(MU,ManagementUnit)、直接访存单元DMA(DMA,DirectMemoryAccess)、执行单元阵列(PEA,Processing ElementArray)、阵列访存单元(LSU,Load/Store Unit)和分块存储器;
执行控制单元CU连接且能够控制配置管理单元MU和ISP交互接口单元;在ISP交互接口单元中有多个存储器组成的行缓存阵列;ISP交互接口单元能够对接ISP算法模。
配置管理单元MU连接执行单元阵列;配置管理单元MU能够调用直接访存单元DMA;配置管理单元MU能够将ISP交互接口单元中存储的数据,通过DMA搬运到执行单元阵列的存储器中。
执行单元阵列向执行单元阵列访存单元读取或存入处理数据;执行单元阵列访存单元连接分块存储器且能够从分块存储器读取或存入处理数据;
直接访存单元DMA和分块存储器连接且能够从分块存储器读取待处理数据;直接访存单元DMA能够将数据存入分块存储器。
在本发明基于ISP流水线的粗粒度可重构处理器的一种实施方式中,执行控制单元CU配置为能够调用和读取ISP交互接口单元,关闭ISP的部分算法模块功能关闭,并且将对应的模块的数据输出接口打开;
执行控制单元CU轮询ISP交互接口单元,若有数据准备就绪;则配置管理单元MU启动直接访存单元DMA将ISP交互接口单元中存储的isp的图像数据从行存储DVP_OUTlinebuffer中搬到分块存储器中;
执行控制单元CU通知配置管理单元MU配置执行单元阵列和阵列访存单元,以使执行单元阵列通过执行单元阵列访存单元读取分块存储器中的数据,经过阵列的计算,将计算结果通过执行单元阵列访存单元写回到分块存储器中;
若执行单元阵列计算完成,则执行控制单元CU通知直接访存单元DMA将数据从分块存储器中搬到ISP交互接口单元中,以使图像数据回到ISP流水线中继续计算。
在本发明基于ISP流水线的粗粒度可重构处理器的一种实施方式中,ISP交互接口单元中包括数字图像接口的图像行缓存DVP_OUT line Buffer;执行控制单元CU轮询数字图像接口的图像行缓存DVP_OUT line Buffer,查看是否有一行的数据准备就绪。
在本发明基于ISP流水线的粗粒度可重构处理器的一种实施方式中,ISP交互接口单元中包括状态寄存器;状态寄存器能够反馈行缓存图像行的数量;通过行缓存图像行的数量判断是否有数据准备就绪。
在本发明基于ISP流水线的粗粒度可重构处理器的一种实施方式中,若执行单元阵列计算完成,则执行单元阵列向配置管理单元MU上报计算完成信息;配置管理单元MU通知控制单元CU,执行控制单元CU通知直接访存单元DMA将数据从分块存储器中搬到ISP交互接口单元中。
在本发明基于ISP流水线的粗粒度可重构处理器的一种实施方式中,其特征在于:执行单元阵列包括由全互连网络连接的多种类型的异构算子;多种类型的异构算子包括,分支算子SEL、数值运算算子ALU、增强数值运算算子EALU、乘加算子MAC、特殊算子SPU、缓存算子BUFFER和循环控制算子LOOP;全互连网络包括Benes网络、Clos网络或Crossbar网络。
在本发明基于ISP流水线的粗粒度可重构处理器的一种实施方式中,全互连网络为增强型Benes网络,包括输入输出端数均为N/2的第一子Benes网络和第二子Benes网络以及N个交换单元;交换单元设有第一输入端和第二输入端以及第一输出端和第二输出端,具有直通、交换、上广播和下广播4种工作方式;其中,
N/2个交换单元连接在增强型Benes网络的输入端In0~In(N-1)与第一子Benes网络、第二子Benes网络的输入端之间,N/2个交换单元的第一输出端口与第一子Benes网络的输入端口相连,N/2个交换单元的第二个输出端口与第二子Benes网络的输入端口相连;
另外N/2个交换单元连接在第一子Benes网络、第二子Benes网络的输出端与增强型Benes网络的输出端Out0~Out(N-1)之间,N/2个交换单元的第一输出端口与第一子Benes网络的输入端口相连,N/2个交换单元的第二个输出端口与第二子Benes网络的输入端口相连。
在本发明基于ISP流水线的粗粒度可重构处理器的一种实施方式中,执行单元阵列还包括计算单元集合Cluster,计算单元集合Cluster包括由增强型Benes网络连接的一种或多种类型的异构算子。
在本发明基于ISP流水线的粗粒度可重构处理器的一种实施方式中,计算单元集合Cluster包括由增强型Benes网络连接的24个增强数值运算算子EALU、48个数值运算算子ALU、12个分支算子SEL、2个循环控制算子LOOP、48个缓存算子BUFFER。
在本发明基于ISP流水线的粗粒度可重构处理器的一种实施方式中,执行单元阵列包括由增强型Benes网络连接的4个计算单元集合Cluster、50个乘加算子MAC、10个特殊算子SPU、64个缓存算子BUFFER、6个循环控制算子LOOP。
与现有技术相比,本发明具有以下有益效果。
本发明提出的一种基于ISP流水线的粗粒度可重构处理器,通过配置ISP交互接口单元、执行控制单元CU、配置管理单元MU、直接访存单元DMA、执行单元阵列、阵列访存单元和分块存储器,能够将所述处理器嵌入ISP流水线。本发明通过设置直接访存单元DMA和用于加速执行数据流代码的执行单元阵列,并通过设置配置管理单元MU对进行有效的管理和调度,大大提高了图像数据处理速度,实现了ISP流水线的实时图像处理。
附图说明
图1为本发明实施例一种基于ISP流水线的粗粒度可重构处理器的组成框图。
图2为本发明另一实施例中一种基于ISP流水线的粗粒度可重构处理器的组成框图。
图3为本发明实施例全互连网络连接的多种类型的异构算子的组成框图。
图4为一种增强型Benes网络结构示意图。
图5为本发明另一实施例的CGRA结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明白,以下结合附图及具体实施方式对本发明作进一步说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种基于ISP流水线的粗粒度可重构处理器,如图1所示,其包括:ISP交互接口单元101、执行控制单元CU 201、配置管理单元MU 301、直接访存单元DMA401、执行单元阵列501、阵列访存单元601和分块存储器701。
执行控制单元CU201连接且能够控制配置管理单元MU 301和ISP交互接口单元101。在ISP交互接口单元101中有多个存储器组成的行缓存阵列。所述ISP交互接口单元能够对接外部ISP算法模块。
配置管理单元MU 301连接执行单元阵列501。配置管理单元MU 301能够调用直接访存单元DMA 401。配置管理单元MU301能够将ISP交互接口单元中存储的数据,通过DMA401搬运到执行单元阵列501的存储器中。
执行单元阵列501向执行单元阵列501访存单元读取或存入处理数据。执行单元阵列501访存单元连接分块存储器701且能够从分块存储器701读取或存入处理数据。
直接访存单元DMA401和分块存储器701连接且能够从分块存储器701读取待处理数据。直接访存单元DMA401能够将数据存入分块存储器701。
本实施例通过设置用于实现加速的直接访存单元DMA和分块存储器701,并通过设置配置管理单元MU对直接访存单元DMA和分块存储器701进行有效的管理和调度,可明显提高图像数据处理速度,能够实现ISP流水线的实时图像处理。
在本发明基于ISP流水线的粗粒度可重构处理器的一种实施方式中,执行控制单元CU201配置为能够调用和读取ISP交互接口单元101,关闭ISP的部分算法模块功能关闭,并且将对应的模块的数据输出接口打开。
执行控制单元CU201轮询ISP交互接口单元101,若有数据准备就绪。则配置管理单元MU 301启动直接访存单元DMA401将ISP交互接口单元101中存储的isp的图像数据从行存储DVP_OUT linebuffer中搬到分块存储器701中。
执行控制单元CU201通知配置管理单元MU 301配置执行单元阵列501和阵列访存单元601,以使执行单元阵列501通过执行单元阵列501访存单元读取分块存储器701中的数据,经过阵列的计算,将计算结果通过执行单元阵列501访存单元写回到分块存储器701中。
若执行单元阵列501计算完成,则执行控制单元CU201通知直接访存单元DMA401将数据从分块存储器701中搬到ISP交互接口单元101中,以使图像数据回到ISP流水线中继续计算。
在本发明基于ISP流水线的粗粒度可重构处理器的一种实施方式中,ISP交互接口单元101中包括数字图像接口的图像行缓存DVP_OUT line Buffer。执行控制单元CU201轮询数字图像接口的图像行缓存DVP_OUT line Buffer,查看是否有一行的数据准备就绪。
在本发明基于ISP流水线的粗粒度可重构处理器的一种实施方式中,ISP交互接口单元101中包括状态寄存器。状态寄存器能够反馈行缓存图像行的数量。通过行缓存图像行的数量判断是否有数据准备就绪。
在本发明基于ISP流水线的粗粒度可重构处理器的一种实施方式中,若执行单元阵列501计算完成,则执行单元阵列501向配置管理单元MU 301上报计算完成信息。配置管理单元MU 301通知控制单元CU,执行控制单元CU201通知直接访存单元DMA401将数据从分块存储器701中搬到ISP交互接口单元101中。
在本发明基于ISP流水线的粗粒度可重构处理器的一种实施方式中,其特征在于:执行单元阵列501包括由全互连网络连接的多种类型的异构算子。多种类型的异构算子包括,分支算子SEL、数值运算算子ALU、增强数值运算算子EALU、乘加算子MAC、特殊算子SPU、缓存算子BUFFER和循环控制算子LOOP。全互连网络包括Benes网络、Clos网络或Crossbar网络。
在本发明基于ISP流水线的粗粒度可重构处理器的一种实施方式中,全互连网络为增强型Benes网络,包括输入输出端数均为N/2的第一子Benes网络和第二子Benes网络以及N个交换单元。交换单元设有第一输入端和第二输入端以及第一输出端和第二输出端,具有直通、交换、上广播和下广播4种工作方式。其中,
N/2个交换单元连接在增强型Benes网络的输入端In0~In(N-1)与第一子Benes网络、第二子Benes网络的输入端之间,N/2个交换单元的第一输出端口与第一子Benes网络的输入端口相连,N/2个交换单元的第二个输出端口与第二子Benes网络的输入端口相连。
另外N/2个交换单元连接在第一子Benes网络、第二子Benes网络的输出端与增强型Benes网络的输出端Out0~Out(N-1)之间,N/2个交换单元的第一输出端口与第一子Benes网络的输入端口相连,N/2个交换单元的第二个输出端口与第二子Benes网络的输入端口相连。
在本发明基于ISP流水线的粗粒度可重构处理器的一种实施方式中,执行单元阵列501还包括计算单元集合Cluster,计算单元集合Cluster包括由增强型Benes网络连接的一种或多种类型的异构算子。
在本发明基于ISP流水线的粗粒度可重构处理器的一种实施方式中,计算单元集合Cluster包括由增强型Benes网络连接的24个增强数值运算算子EALU、48个数值运算算子ALU、12个分支算子SEL、2个循环控制算子LOOP、48个缓存算子BUFFER。
在本发明基于ISP流水线的粗粒度可重构处理器的一种实施方式中,执行单元阵列501包括由增强型Benes网络连接的4个计算单元集合Cluster、50个乘加算子MAC、10个特殊算子SPU、64个缓存算子BUFFER、6个循环控制算子LOOP。
本发明提出了一种基于ISP流水线的粗粒度可重构处理器(Coarse-GrainedReconfigurable Architectures Processor,CGRAProcessor)设计与实现,在典型的ISP流水线中增加在线的输入输出接口,通过输出接口将图像数据传入CGRA处理器内部,CGRA执行ISP软件算法,将计算结果通过ISP输入接口在线反馈到ISP内部
如图2所示,为本发明一种基于ISP流水线的粗粒度可重构处理器的一种实施方式。其中ISP pipeline为一种典型的ISP流水线支持典型的ISP算法,pipeline interface为ISP各个算法模块之间可接入外部数据的接口,一个典型的ISP pipeline可以支持1到多个Pipeline interface。CGRA为可嵌入ISP流水线的粗粒度可重构处理器,包含CU、MU、PEA、LSU、DMA、ISP_interface模块,其功能分别是:
CU(Controller Unit,执行控制单元)为一个通用的CPU Core。CU的执行任务包括三个部分:程序中非循环部分、CGRA中CSPM空间管理、CGRA中DSPM的空间管理。CU的典型使用流程包含指令流与数据流,在典型的使用流程中其保存在ITCM(Instruction TightlyCoupled Memory,紧耦合指令缓存)与DTCM(Data Tightly Coupled Memory,紧耦合数据缓存):
其中,ITCM,映射在系统地址空间,实际存储内容由编译器决定。DTCM,映射在系统地址空间,实际存储内容由编译器与程序员共同管理。堆栈区域由程序员负责,其他部分由编译器管理。
MU(Management Unit,配置管理单元),用于管理、调度PEA/DMA等加速资源,主要用于加速资源的任务分发与任务同步。MU的典型使用流程用到CSPM(Context Scatch-pad-memory,配置信息存储)与PB(ParameterBuffer,参数缓存)。MU的作用主要包括:CU下发的命令都会通过MU进行排队和同步。PEA与LSU的配置信息在MU内部的CSPM中,MU收到PEA的执行命令会读取CSPM的内容配置到PEA与LSU中。
musr:MU控制与状态寄存器,MU-Status-Register。CU通过操作MUSR控制MU完成一定的功能,并通过MUSR查看MU的状态。
multi-cmdqueue:multiple command queue为三条命令队列,分别对应了RDMA、PEA、WDMA三个功能的控制命令。CU向MU写入命令,MU根据命令的类型分别加入到RMDA、PEA、WDMA三条队列中。同一队列的命令严格按照队列顺序执行,不同队列的命令可以并行执行。
CSPM是一段PEA/LSU Context缓存区(PEA/LSU Context为PEA/LSU执行需要的配置文件分别为“算子配置”“网络配置”“只读参数”,MU可以通过一组高位宽的接口将PEA/LSU Context配置到PEA/LSU中)。PB是一段实时的参数空间,CU将TASK执行需要的“变量参数”通过PB/MU传给PEA/LSU阵列用于执行。
PEA(执行单元阵列,Processing ElementArray),主要负责加速数据流代码的执行。PEA主要包含异构PE、NETWORK等核心组成单元,具体功能如下:
Network网络为一种全互连网络将所有的PE连接到一起。全互连网络是一种增强功能的Benes网络。通过配置不同的配置信息Network、LSU、PE一起执行数据流计算。
LSU(Load/Store Unit,访存单元),LSU有M个读写端口与PEA相连,每个读写端口根据配置模式(包括:访存的类型[读/写]、访存的位宽[8/16/32bit]、访存模式[立即数寻址/寄存器寻址/基址相对寻址])计算内部缓存空间地址,从缓存中读取对应的数据,将数据返回到计算阵列中。LSU单元需要具备的特性如下:
LSU单元最多同时从计算单元接收M个访存请求(读或者写)。其支持多种寻址模式包括:立即数寻址Load/Store[Offset],Offset来着Load/Store的配置信息。寄存器寻址Load/Store[Base],Base来自计算阵列。基址相对寻址Load/Store[Base+Offset],Base来自计算阵列,Offset来自Load/Store的配置信息。
支持访存冲突检测与仲裁,假设LSU单元发起M个请求同时访问N个SPM-Bank。LD/ST需要将M个请求加入到N个访存队列中,将冲突的请求顺序完成。等待M个请求均完成以后,同时将结果返回到计算阵列中。在LSU顺序执行访存的过程中,LSU需要反馈BANK冲突信号给PEA,PEA暂停整个阵列的执行,保证LSU与PEA一直是在同步执行。
支持数据格式转换。当DSPM中的数据是以字节(Byte)或者半字(halfword)为粒度的数组存储是,LSU需要将字节或者半字转为Word送到PEA中执行计算。
DMA(Direct MemoryAccess,直接访存单元),是CGRA实现内部缓存(DSPM/ITCM/DTCM/CSPM)与外部Memory、以及内部缓存之间(DSPM←→DTCM,DSPM←→DSPM、lineBuffer←→DSPM)交换数据。
ISP interface为多组与ISP交互的接口,通常是DVP接口(Digital Video Port),内部有SRAM组成的Linebuffer图像的行缓存缓存从ISP流水线输入或者输出到ISP流水线的数据。
在本发明的一种实施方式中,一种基于ISP流水线的粗粒度可重构处理器的处理方法包括:
步骤S101,CU配置ISP,将ISP的部分算法模块功能关闭,并且将对应的模块的数据输出接口打开。
步骤S102,CU轮询ISP的DVP_OUT line Buffer数字图像接口的图像行缓存,查看是否有一行的数据准备就绪。如果有一行的数据准备就绪,mu启动DMA将isp的图像数据从DVP_OUT line buffer有状态寄存器搬到Multiple Bank SRAM中且可以反馈line buffer缓存的图像行的数量。
步骤S103,CU通知MU配置PEA/LSU对Multiple-bank SRAM中的数据进行处理,PEA通过LSU读取multi-bank SRAM中的数据,经过阵列的计算,将计算结果通过LSU写回到multi-bank SRAM中。其中配置的信息包括00:PEA中每个PE的算子功能、Benes网络的互连信息、LSU中的算子功能。
步骤S104,待PEA计算完成,CU通知DMA将数据从Multiple-Bank SRAM搬到DVP_INline buffer,图像数据回到ISP流水线中继续计算。
图3为本发明实施例全互连网络连接的多种类型的异构算子的组成框图,粗粒度可重构阵列包括由全互连网络1连接的多种类型的异构算子2。
本实施例提出了一种粗粒度可重构阵列CGRA,CGRA主要由多种类型的异构算子2组成,其特征是多种类型的异构算子2由全互连网络1连接。异构算子2一般是指数值运算算子ALU(arithmetic logic unit)、乘加算子MAC(MultiplyAccumulate unit)等。全互连网络1能够使其任意一个输入端与任意一个输出端连通,从而实现任意两个异构算子2之间的互连。现有CGRA一般由同构算子构成,而同构算子之间多采用网格MESH结构连接。同构算子(PE)的端口共享可引入算子内逻辑浪费。比如,一个PE具备ALU、EALU(EnhancedArithmetic logic unit,增强数值运算)、LOOP(循环控制)、MAC、SPU(special Unit,特殊运算)等所有算子的能力,当PE执行ALU运算时就无法执行EALU、LOOP等其他的运算,从而造成PE内部资源的浪费。为消除同构算子引起的内部资源浪费,本实施例采用异构算子2,由于每个算子内部没有太多重复的复杂功能,因此不会造成大量的内部逻辑浪费。采用MESH结构连接各个算子是现有CGRA存在资源浪费问题的另一重要原因。
一个算法的数据流图映射到CGRA上,不仅需要将数据流图的操作与PE建立一个对应关系,同时需要将数据流图中的数据传递关系在MESH图上建立路由通道,经常因为MESH资源的约束导致很多PE无法用于映射数据流图的操作。为消除算子连接结构引起的资源浪费,本实施例采用全互连网络连接各个算子。由于全互连网络可实现任意两个算子之间的互连,因此不存在因互连资源不足导致的数据流图中的操作无法映射到算子中。
作为一可选实施例,阵列包括6种异构算子2,分别为分支算子SEL、数值运算算子ALU、增强数值运算算子EALU、乘加算子MAC、特殊算子SPU、缓存算子BUFFER和循环控制算子LOOP。
本实施例给出了异构算子2的种类。本实施例的CGRA阵列包括6种异构算子2,分别是SEL、ALU、EALU、MAC、SPU、BUFFER和LOOP。每种算子完成不同的功能,比如,MAC可实现乘加、乘累加、乘法、累加运算。6种异构算子2的功能如表1所示。
表1异构算子功能说明
作为一可选实施例,全互连网络1包括Benes网络或Clos网络或Crossbar网络。
本实施例给出了全互连网络1的几种网络结构。Benes、Clos和Crossbar是三种常用的网络结构,本实施例的全互连网络1可以由它们的任意一种构成。Benes网络是一种可以实现任意两点互连的交换网络,最早有贝尔实验室提出用于电信系统,在当前的交换机与路由器网络中仍有广泛的应用。Crossbar也是一种常见的点到点网络,为了实现点到点互连引入的互连代价为N2。而Benes的代价仅为N*Log2N。这三种网络结构的技术原理属于成熟的现有技术,这里不再分别详细介绍。
作为一可选实施例,全互连网络1为增强型Benes网络,包括输入输出端数均为N/2的第一子Benes网络和第二子Benes网络以及N个交换单元。交换单元设有第一输入端和第二输入端以及第一输出端和第二输出端,具有直通、交换、上广播和下广播4种工作方式。其中,
N/2个交换单元连接在增强型Benes网络的输入端In0~In(N-1)与第一子Benes网络、第二子Benes网络的输入端之间,前N/4个交换单元的第一输出端分别与第一子Benes网络的前N/4个输入端相连,前N/4个交换单元的第二输出端分别与第二子Benes网络的前N/4个输入端相连。后N/4个交换单元的第一输出端分别与第一子Benes网络的后N/4个输入端相连,后N/4个交换单元的第二输出端分别与第二子Benes网络的后N/4个输入端相连。
另外N/2个交换单元连接在第一子Benes网络、第二子Benes网络的输出端与增强型子Benes网络的输出端Out0~Out(N-1)之间,前N/4个交换单元的第一输入端分别与第一子Benes网络的前N/4个输出端相连,前N/4个交换单元的第二输入端分别与第二子Benes网络的前N/4个输出端相连。后N/4个交换单元的第一输入端分别与第一子Benes网络的后N/4个输出端相连,后N/4个交换单元的第二输入端分别与第二子Benes网络的后N/4个输出端相连。
本实施例给出了一种具体的全互连网络1。本实施例的全互连网络1采用一种增强型Benes网络结构,如图4所示。Benes网络由2×2(2个输入、2个输出)的交换单元组成。一个N×N(N个输入、N个输出)的Benes网络的构成方法为:两侧各有N/2个交换单元,共N个交换单元,中间是两个N/2×N/2的Benes网络(即第一子Benes网络和第二子Benes网络),具体连接方法也如图4所示。再将中间两个Benes网络按上述方法继续分解,直到中间子网络只有一个交换单元为止。本实施例的增强型Benes网络与一般的Benes网络的区别是组成网络的交换单元不同:一般Benes网络的交换单元只有直通、交换2种工作方式,而增强型Benes网络的交换单元具有直通、交换、上广播和下广播4种工作方式。因此增强型Benes网络不仅能将网络的任意一个输入端与任意一个输出端相连,还能将一个输入端同时与多个输出端相连,其功能相对一般Benes网络增强了,故称为增强型Benes网络。
作为一可选实施例,阵列还包括计算单元集合Cluster,计算单元集合Cluster包括由增强型Benes网络连接的一种或多种类型的异构算子2。
本实施例给出了阵列的另一种技术方案。本实施例中,阵列不仅包括异构算子2,还包括由一种或多种类型的异构算子2组成的计算单元集合Cluster。由于全互连网络结构中互连代价随着资源数量的增长急剧上升,如增强型Benes网络呈N*Log2N增长,本实施例通过将一种或多种类型的异构算子2组成cluster来减小异构算子2的数量,从而减小互连代价。为了降低资源浪费,组成Cluster的异构算子2仍由全互连网络1即增强型Benes网络连接。
作为一可选实施例,计算单元集合Cluster包括由增强型Benes网络连接的24个增强数值运算算子EALU、48个数值运算算子ALU、12个分支算子SEL、2个循环控制算子LOOP、48个缓存算子BUFFER。
本实施例给出了一种具体的Cluster结构。本实施例的Cluster由5种异构算子组成,分别是24个EALU、48个ALU、12个SEL、2个LOOP、48个BUFFER。这些异构算子由增强型Benes网络连接。由于这么多的异构算子组成一个Cluster后,作为一个算子与其它算子连接,这样可以降低互连代价。
作为一可选实施例,增强型Benes网络的输入输出端数均为N=256。
本实施例是上一实施例的可选实施例,对上一实施例的具体Cluster中的增强型Benes网络作了进一步限定,其输入输出端数均为N=256。
作为一可选实施例,阵列包括由增强型Benes网络连接的4个计算单元集合Cluster、50个乘加算子MAC、10个特殊算子SPU、64个缓存算子BUFFER、6个循环控制算子LOOP。
本实施例给出了阵列的一种具体结构。本实施例的阵列除了包括多种类型的异构算子2(50个MAC、10个SPU、64个LOOP)外,还包括4个Cluster。这些异构算子2和Cluster由增强型Benes网络连接在一起,其结构示意图如图5所示。
作为一可选实施例,增强型Benes网络的输入输出端数均为N=512。
本实施例是上一实施例的可选实施例,对上一实施例的增强型Benes网络作了进一步限定,其输入输出端数均为N=512。
本发明实施例还提供一种处理器,处理器包括前面任一实施例的基于全互连网络的粗粒度可重构阵列。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种基于ISP流水线的粗粒度可重构处理器,其特征在于,包括:ISP交互接口单元、执行控制单元CU、配置管理单元MU、直接访存单元DMA、执行单元阵列、阵列访存单元和分块存储器;
所述执行控制单元CU连接且能够控制所述配置管理单元MU和所述ISP交互接口单元;在所述ISP交互接口单元中有多个存储器组成的行缓存阵列;所述ISP交互接口单元能够对接外部ISP算法模块;
所述配置管理单元MU连接所述执行单元阵列;所述配置管理单元MU能够调用所述直接访存单元DMA;配置管理单元MU能够将ISP交互接口单元中存储的数据,通过DMA搬运到执行单元阵列的存储器中;
所述执行单元阵列向所述执行单元阵列访存单元读取或存入处理数据;所述执行单元阵列访存单元连接所述分块存储器且能够从所述分块存储器读取或存入处理数据;
所述直接访存单元DMA和所述分块存储器连接且能够从所述分块存储器读取待处理数据;所述直接访存单元DMA能够将数据存入所述分块存储器。
2.根据权利要求1所述的基于ISP流水线的粗粒度可重构处理器,其特征在于:
所述执行控制单元CU配置为能够调用和读取ISP交互接口单元,关闭ISP的部分算法模块功能关闭,并且将对应的模块的数据输出接口打开;
所述执行控制单元CU轮询所述ISP交互接口单元,若有数据准备就绪;则配置管理单元MU启动所述直接访存单元DMA将所述ISP交互接口单元中存储的isp的图像数据从行存储DVP_OUT line buffer中搬到所述分块存储器中;
所述执行控制单元CU通知所述配置管理单元MU配置所述执行单元阵列和阵列访存单元,以使所述执行单元阵列通过所述执行单元阵列访存单元读取所述分块存储器中的数据,经过阵列的计算,将计算结果通过所述执行单元阵列访存单元写回到所述分块存储器中;
若所述执行单元阵列计算完成,则执行控制单元CU通知所述直接访存单元DMA将数据从所述分块存储器中搬到所述ISP交互接口单元中,以使图像数据回到ISP流水线中继续计算。
3.根据权利要求2所述的基于ISP流水线的粗粒度可重构处理器,其特征在于,所述ISP交互接口单元中包括数字图像接口的图像行缓存DVP_OUT line Buffer;所述执行控制单元CU轮询所述数字图像接口的图像行缓存DVP_OUT line Buffer,查看是否有一行的数据准备就绪。
4.根据权利要求2所述的基于ISP流水线的粗粒度可重构处理器,其特征在于,所述ISP交互接口单元中包括状态寄存器;所述状态寄存器能够反馈行缓存图像行的数量;通过所述行缓存图像行的数量判断是否有数据准备就绪。
5.根据权利要求2所述的基于ISP流水线的粗粒度可重构处理器,其特征在于,若所述执行单元阵列计算完成,则所述执行单元阵列向所述配置管理单元MU上报计算完成信息;所述配置管理单元MU通知所述控制单元CU,执行控制单元CU通知所述直接访存单元DMA将数据从所述分块存储器中搬到所述ISP交互接口单元中。
6.根据权利要求1所述的基于ISP流水线的粗粒度可重构处理器,其特征在于:所述执行单元阵列包括由全互连网络连接的多种类型的异构算子;所述多种类型的异构算子包括,分支算子SEL、数值运算算子ALU、增强数值运算算子EALU、乘加算子MAC、特殊算子SPU、缓存算子BUFFER和循环控制算子LOOP;所述全互连网络包括Benes网络、Clos网络或Crossbar网络。
7.根据权利要求6所述的基于ISP流水线的粗粒度可重构处理器,其特征在于,所述全互连网络为增强型Benes网络,包括输入输出端数均为N/2的第一子Benes网络和第二子Benes网络以及N个交换单元;所述交换单元设有第一输入端和第二输入端以及第一输出端和第二输出端,具有直通、交换、上广播和下广播4种工作方式;其中,
N/2个交换单元连接在增强型Benes网络的输入端In0~In(N-1)与第一子Benes网络、第二子Benes网络的输入端之间,N/2个交换单元的第一输出端口与第一子Benes网络的输入端口相连,N/2个交换单元的第二个输出端口与第二子Benes网络的输入端口相连;
另外N/2个交换单元连接在第一子Benes网络、第二子Benes网络的输出端与增强型Benes网络的输出端Out0~Out(N-1)之间,N/2个交换单元的第一输出端口与第一子Benes网络的输入端口相连,N/2个交换单元的第二个输出端口与第二子Benes网络的输入端口相连。
8.根据权利要求6所述的基于ISP流水线的粗粒度可重构处理器,其特征在于,所述执行单元阵列还包括计算单元集合Cluster,所述计算单元集合Cluster包括由增强型Benes网络连接的一种或多种类型的异构算子。
9.根据权利要求6所述的基于ISP流水线的粗粒度可重构处理器,其特征在于,所述计算单元集合Cluster包括由增强型Benes网络连接的24个增强数值运算算子EALU、48个数值运算算子ALU、12个分支算子SEL、2个循环控制算子LOOP、48个缓存算子BUFFER。
10.根据权利要求6所述的基于ISP流水线的粗粒度可重构处理器,其特征在于,所述执行单元阵列包括由增强型Benes网络连接的4个计算单元集合Cluster、50个乘加算子MAC、10个特殊算子SPU、64个缓存算子BUFFER、6个循环控制算子LOOP。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210312448.1A CN114968906A (zh) | 2022-03-28 | 2022-03-28 | 一种基于isp流水线的粗粒度可重构处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210312448.1A CN114968906A (zh) | 2022-03-28 | 2022-03-28 | 一种基于isp流水线的粗粒度可重构处理器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114968906A true CN114968906A (zh) | 2022-08-30 |
Family
ID=82975942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210312448.1A Pending CN114968906A (zh) | 2022-03-28 | 2022-03-28 | 一种基于isp流水线的粗粒度可重构处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114968906A (zh) |
-
2022
- 2022-03-28 CN CN202210312448.1A patent/CN114968906A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11782870B2 (en) | Configurable heterogeneous AI processor with distributed task queues allowing parallel task execution | |
US11789895B2 (en) | On-chip heterogeneous AI processor with distributed tasks queues allowing for parallel task execution | |
US5758195A (en) | Register to memory data transfers with field extraction and zero/sign extension based upon size and mode data corresponding to employed address register | |
US20200183752A1 (en) | Computation method and product thereof | |
US6070003A (en) | System and method of memory access in apparatus having plural processors and plural memories | |
CN100562892C (zh) | 图像处理引擎及包含图像处理引擎的图像处理系统 | |
CN112905530B (zh) | 片上架构、池化计算加速器阵列、单元以及控制方法 | |
EP1654669A2 (en) | A single chip protocol converter | |
CN112633505B (zh) | 一种基于risc-v的人工智能推理方法和系统 | |
CN110991619A (zh) | 神经网络处理器、芯片和电子设备 | |
CN106484657A (zh) | 一种可重构的信号处理器asic架构及其重构方法 | |
CN111047036A (zh) | 神经网络处理器、芯片和电子设备 | |
CN114968906A (zh) | 一种基于isp流水线的粗粒度可重构处理器 | |
CN111047035A (zh) | 神经网络处理器、芯片和电子设备 | |
CN206258865U (zh) | 一种可重构的信号处理器asic架构 | |
CN101320321B (zh) | 一种阵列算术逻辑单元结构 | |
CN102184090A (zh) | 一种动态可重构处理器及其固定数的调用方法 | |
CN110837419B (zh) | 基于弹性批处理的推理引擎系统、方法及电子设备 | |
CN115081600A (zh) | 执行Winograd卷积的变换单元、集成电路装置及板卡 | |
CN113206927A (zh) | 图像信号处理器和图像传感处理系统 | |
CN113037971A (zh) | 一种多路视频进行多ai模型并行处理的方法 | |
US20050122545A1 (en) | Flexible high performance error diffusion | |
JP2006094400A (ja) | 画像処理装置および画像処理方法 | |
US7984204B2 (en) | Programmable direct memory access controller having pipelined and sequentially connected stages | |
CN115391274A (zh) | 一种面向通用计算的矢量处理器及数据处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |