一种DMA控制装置和图像处理器
技术领域
本发明属于数字图像处理领域,尤其涉及一种DMA控制装置和图像处理器。
背景技术
在计算机数字图像处理技术的领域中,伴随着半导体技术的高速发展,SOC(System-On-a-Chip,片上系统)芯片的规模越来越大、功能日益复杂,需要进行大批量数据的连续搬运和传输的工作。DMA(Direct Memory Access,直接存储器存取)技术广泛用于系统中大批量数据的传输,待DMA工作后,数据的搬运不需要CPU参与,减轻了CPU的负担,使得CPU在启动DMA后可以做其它事,同时极大地提高了数据的传输效率。
现有的DMA技术中,通常根据配置好的一些传输参数,例如源地址、目的地址和传输长度等后,通过CPU配置启动DMA进行数据的传输。在ISP(Image Signal Processing,图像信号处理)等实时图像数据输入的系统中,图像数据都是从外部传感器按照一定的行频和场频连续输入进来,为了图像视频的实时性需要按行对输入数据进行处理。在高性能的ISP处理芯片中,需要进行3D降噪、图像去雾处理、坏点校正以及锐化等强大的功能处理,当这些模块开启后,需要从外部存储器中访问大量的帧缓存数据。一行时间内,可能会有很多路数据访问的请求,而且每一路请求长度可能不一样。此外,这些不同功能模块的数据,都要求在相应功能模块的下一个行同步信号到来之前读取到相应的位置。
针对ISP处理中实时性连续输入的图像数据,现有DMA控制装置不能充分地结合图像处理模块自动地进行DMA传输参数的硬件配置,不能结合图像功能模块进行多路请求的准确合理判决。
发明内容
本发明的目的在于提供一种DMA控制装置和图像处理器,旨在解决现有DMA控制装置针对ISP处理中实时性连续输入的图像数据,不能充分地结合图像处理模块自动地进行DMA传输参数的硬件配置,不能结合图像功能模块进行多路请求的准确合理判决的问题。
第一方面,本发明提供了一种DMA控制装置,包括总线接口单元、DMA读传输仲裁单元、N路读缓存控制单元、DMA写传输仲裁单元、N路写缓存控制单元、N个流水处理模块和一时序产生单元,其中N为大于或等于2的自然数;
总线接口单元,用于接收DMA读传输仲裁单元产生的读请求信号和传输信息,并将读请求信号和传输信息转化成复合系统总线协议的总线请求信号,当从总线上收到有效的数据后,将从外部存储器中读出的读缓存数据写到DMA读传输仲裁单元;还用于接收DMA写传输仲裁单元产生的写请求信号和传输信息,并将写请求信号和传输信息转化成复合系统总线协议的总线请求信号,当从总线上收到有效的应答后,将从DMA写传输仲裁单元读出的写缓存数据写到外部存储器;
DMA读传输仲裁单元,用于负责DMA读请求信号的仲裁并接收经总线接口单元发送的外部存储器的读缓存数据,最终将读缓存数据写到选中的其中一路读缓存控制单元中;还用于对输入的N路源请求空间进行统一编址,使得每一路映射到统一的目的地址空间中,还用于自动产生每一路的读传输长度;
读缓存控制单元,用于接收时序产生单元输出的时序输入信号,并产生仲裁请求信号,结合仲裁回应信号产生传输状态信号,并根据时序输入信号将DMA读传输仲裁单元的数据写到对应路的乒乓缓存区间中,并取出乒乓缓存区间中的数据发送到对应的流水处理模块;
DMA写传输仲裁单元,用于负责DMA写请求信号的仲裁并接收其中一路选中的写缓存控制单元的数据,最终将接收到的数据经总线接口单元发送到外部存储器中;还用于对输入的N路写请求空间进行统一编址,使得每一路映射到统一的目的地址空间中,还用于自动产生每一路的写传输长度;
写缓存控制单元,用于接收时序产生单元输出的时序输入信号,并产生仲裁请求信号,结合仲裁回应信号产生传输状态信号,并根据时序输入信号将对应的流水处理模块需要缓存的数据写到对应路的乒乓缓存区间中,并将选中一路乒乓缓存区间中的数据读出发送到DMA写仲裁传输单元;
流水处理模块,用于为图像处理器中的具体算法进行处理的模块;
时序产生单元,用于接收同步时序输入信号,产生每一级流水处理模块的同步信号。
进一步地,所述读缓存控制单元包括读仲裁请求信号产生模块、读数据传输速率自动判断模块和读乒乓缓存控制模块;
其中,读仲裁请求信号产生模块,用于当流水处理模块使能后,根据输入的行场同步信号,产生到DMA读传输仲裁单元的仲裁请求信号,在第一个行有效的信号来临之前,需要预取出存储在帧缓存中的数据,所以在场同步的下降沿之后,需要提前发出仲裁请求信号到DMA读传输仲裁单元,将数据预取到乒乓缓存区间中,待第一行有效信号来临便可直接取用;
读数据传输速率自动判断模块,用于自动判断DMA数据传输的速率,判断系统总线带宽的使用情况,自动地进行带宽的调整;
读乒乓缓存控制模块,用于根据时序信号产生一行切换一次的乒乓控制机制,将DMA读传输仲裁单元读到的数据写到读乒乓缓存区间,同时根据时序信息从乒乓缓存区间中读出预存的数据发送到相应的流水处理模块;
所述写缓存控制单元包括写仲裁请求信号产生模块、写数据传输速率自动判断模块和写乒乓缓存控制模块;
其中,写仲裁请求信号产生模块,用于当流水处理模块使能后,根据输入的行场同步信号,产生到DMA写传输仲裁单元的仲裁请求信号,在第二个行有效的信号来临之时,需要将第一行的写缓存数据发送到帧缓存中,所以在一行有效信号的下降沿之后,需要发出写请求信号到DMA写传输仲裁单元,将乒乓缓存区间中的缓存数据取出并发送到帧缓存中,待再下一行有效信号来临便可进行乒乓缓存和后续传输;
写数据传输速率自动判断模块,用于自动判断DMA数据传输的速率,判断系统总线带宽的使用情况,自动地进行带宽的调整,以提高数据的传输效率;
写乒乓缓存控制模块,用于根据时序信号产生一行切换一次的乒乓控制机制,将相应的流水处理模块需要存储的数据写到写乒乓缓存区间,同时根据仲裁信号将选中的一路乒乓缓存数据取出发送到DMA写传输仲裁单元。
第二方面,本发明提供了一种图像处理器,所述图像处理器包括上述的DMA控制装置。
在本发明中,由于DMA控制装置包括DMA读传输仲裁单元、N路读缓存控制单元、DMA写传输仲裁单元和N路写缓存控制单元,DMA读传输仲裁单元,用于负责DMA读请求信号的仲裁并接收经总线接口单元发送的外部存储器的读缓存数据,最终将读缓存数据写到选中的其中一路读缓存控制单元中;还用于对输入的N路源请求空间进行统一编址,使得每一路映射到统一的目的地址空间中,还用于自动产生每一路的读传输长度。DMA写传输仲裁单元,用于负责DMA写请求信号的仲裁并读取选中的其中一路写缓存控制单元输出的数据,最终经总线接口单元将数据发送到外部存储器中;还用于对输入的N路写请求空间进行统一编址,使得每一路映射到统一的目的地址空间中,还用于自动产生每一路的写传输长度。使得在ISP等实时输入的芯片系统中,DMA控制装置能够结合图像处理模块进行准确合理的判决,针对多路不同的数据访问请求,可以实现DMA传输参数的硬件自动配置。另外,由于读缓存控制单元包括读仲裁请求信号产生模块和读数据传输速率自动判断模块,读数据传输速率自动判断模块自动判断DMA数据传输的速率,判断系统总线带宽的使用情况,自动地进行带宽的调整。由于写缓存控制单元包括写仲裁请求信号产生模块和写数据传输速率自动判断模块,写数据传输速率自动判断模块自动判断DMA数据传输的速率,判断系统总线带宽的使用情况,自动地进行带宽的调整。因此使得图像不会由于带宽不够而出现错乱或扭曲,提高了数据的传输效率,同时通过带宽的判断能自动地控制芯片的功耗,同时又能达到ISP等实时输入系统的数据访问需求。
附图说明
图1是本发明实施例一提供的DMA控制装置的结构图。
图2是本发明实施例一提供的DMA控制装置中,DMA读传输仲裁单元的结构图。
图3是本发明实施例一提供的DMA控制装置中,DMA读传输仲裁单元的仲裁具体实现流程图。
图4是本发明实施例一提供的DMA控制装置中,读缓存控制单元的结构图。
图5是本发明实施例二提供的DMA控制装置的结构图。
图6是本发明实施例二提供的DMA控制装置中,DMA写传输仲裁单元的结构图。
图7是本发明实施例二提供的DMA控制装置中,DMA写传输仲裁单元的仲裁具体实现流程图。
图8是本发明实施例二提供的DMA控制装置中,写缓存控制单元的结构图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
请参阅图1,本发明实施例一提供的DMA控制装置包括总线接口单元11、DMA读传输仲裁单元12、N路读缓存控制单元13、N个流水处理模块14和一时序产生单元15,其中N为大于或等于2的自然数,N的数目取决于图像处理器中流水处理模块的个数以及需要访问外部帧缓存的模块个数。
总线接口单元11,用于接收DMA读传输仲裁单元12产生的读请求信号和传输信息,并将读请求信号和传输信息转化成复合系统总线协议(例如AXI总线等)的总线请求信号,当从总线上收到有效的数据后,将从外部存储器中读出的读缓存数据写到DMA读传输仲裁单元12;
DMA读传输仲裁单元12,用于负责DMA读请求信号的仲裁并接收经总线接口单元11发送的外部存储器的读缓存数据,最终将读缓存数据写到选中的其中一路读缓存控制单元13中;还用于对输入的N路源请求空间进行统一编址,使得每一路映射到统一的目的地址空间中,还用于自动产生每一路的读传输长度;
N路读缓存控制单元13,用于接收时序产生单元输出的时序输入信号,并产生仲裁请求信号,结合仲裁回应信号产生传输状态信号,并根据时序输入信号将DMA读传输仲裁单元的数据写到对应路的乒乓缓存区间中,并取出乒乓缓存区间中的数据发送到对应的流水处理模块;
N个流水处理模块14,用于为图像处理器中的具体算法进行处理的模块,例如3D降噪、去雾、锐化等;
时序产生单元15,用于接收同步时序输入信号,主要包括行同步信号和场同步信号,产生每一级流水处理模块的同步信号,其中每一级时序信号之间可能有点延迟或行延迟,根据算法处理过程而定。
在本发明实施例一中,DMA读传输仲裁单元的具体结构如图2所示,DMA读传输仲裁单元包括读仲裁控制单元121、源请求空间统一编址单元122、读请求发送单元123和读传输数据写缓存译码单元124。
其中,读仲裁控制单元121,用于接收N路读缓存控制单元的读请求信号并对N路的读请求信号进行仲裁;
为了方便总线接口单元进行快速高效的数据传输,使得总线接口单元只要知道一次读传输的读源起始地址、读目的起始地址以及读传输的长度,就能通过总线自动完成数据的访问。源请求空间统一编址单元122,用于对输入的N路源请求空间进行统一编址,使得每一路映射到统一的目的地址空间中(例如第1路映射到目的地址空间的首段,第N路映射到最末段),还用于根据读仲裁控制单元的状态控制硬件自动产生每一路的读传输长度,而不需要通过软件对每一路的读传输长度进行分别设置,例如,当输入的分辨率确定后,每一行的有效点数即已经确定,针对有些处理模块一个点要求缓存的数据为2个字节,而有一些模块要求缓存的数据为1个字节,还有一些模块是2个点或4个点缓存的数据只有一个字节,依照这种规律,在源请求空间统一编址单元,在为每一个源请求空间进行统一编码的同时,也根据分辨率信息和相应的模块请求直接计算出每一路的读传输长度,具体方法为对输入一行点数左移或右移k比特,其中k可为0、1、2或3。这样,结合不同流水处理模块,硬件就可以自动地产生其相应的读传输长度信息。减少了CPU分别对每一路请求不同传输长度的配置,提高了DMA读传输仲裁单元的效率。
读请求发送单元123,用于根据读仲裁控制单元仲裁的结果以及源请求空间统一编址单元的地址信息,发出读请求信息,读请求信息包括:读请求信号、读源起始地址、读目的起始地址、以及读传输长度等;
读传输数据写缓存译码单元124,用于将总线接口单元发送过来的读传输数据写到译码后选中的1路到N路中的一路乒乓缓存区间中。
在本发明实施例一中,读仲裁控制单元的工作流程如图3所示:
系统上电复位或DMA读传输不使能时,读仲裁控制单元处于DMA读空闲状态;
判断是否读传输使能,如果是,则读仲裁控制单元处于DMA读判断状态;否则读仲裁控制单元处于DMA读空闲状态;
在DMA读判断状态,对输入的N路读请求信号进行仲裁;在对输入的N路读请求信号进行仲裁时,按照预设的优先级进行判断,根据图像处理和显示的重要性对各路读请求信号按照可配置的优先级进行设定,将图像处理中较关键的算法处理模块对应的读请求信号设为较高优先级,依次类推,优先级逐渐降低;将优先级进行编号后,设第1路读请求信号的优先级最高,第2路读请求信号的优先级次之,依此类推,第N路读请求信号的优先级最低。为了对帧缓存的数据进行定位,需要知道每一帧的起始读请求信号,当读请求信号为帧起始读请求信号时,将发送帧缓存首地址到总线接口单元,以便能正确地取到缓存数据;
进入DMA读判断状态后,按照如下步骤进行判断:
S101、判断第1路帧起始读请求信号是否开始,若开始,则跳到第1路每一帧起始行读状态,否则,进入步骤S102;进入第1路每一帧起始行读状态后,第1路读请求被选中,读仲裁控制单元将第1路帧起始读请求信号发送到读请求发送单元,同时该状态下,控制源请求空间统一编址单元将第1路读行缓存的RAM空间地址进行统一编址,并发送到读请求发送单元,当总线接口单元的回应信号表明帧起始行读传输完成后,跳到DMA读判断状态,否则一直停留在当前状态,直到所请求的数据传输完成;
S102、判断第1路帧连续读请求信号是否开始,若开始,则跳到第1路每一帧连续行读状态,否则,进入步骤S103;进入第1路帧连续行读状态后,第1路读请求被选中,读仲裁控制单元将第1路帧连续读请求信号发送到读请求发送单元,同时该状态下,控制源请求空间统一编址单元,将第1路读行缓存的RAM空间地址进行统一编址,并发送到读请求发送单元,当总线接口单元的回应信号表明帧起始行读传输完成后,跳到DMA读判断状态,否则一直停留在当前状态,直到所请求的数据传输完成;
S103、判断第2路帧起始读请求信号是否开始,若开始,则跳到第2路每一帧起始行读状态,否则,进入步骤S104;进入第2路每一帧起始行读状态后,第2路读请求被选中,读仲裁控制单元将第2路帧起始读请求信号发送到读请求发送单元,同时该状态下,控制源请求空间统一编址单元将第2路读行缓存的RAM空间地址进行统一编址,并发送到读请求发送单元,当总线接口单元的回应信号表明帧起始行读传输完成后,跳到DMA读判断状态,否则一直停留在当前状态,直到所请求的数据传输完成;
S104、判断第2路帧连续读请求信号是否开始,若开始,则跳到第2路帧连续行读状态,否则,进入步骤S105;进入第2路帧连续行读状态后,第2路读请求被选中,读仲裁控制单元将第2路帧连续读请求信号发送到读请求发送单元,同时该状态下,控制源请求空间统一编址单元,将第2路读行缓存的RAM空间地址进行统一编址,并发送到读请求发送单元,当总线接口单元的回应信号表明帧起始行读传输完成后,跳到DMA读判断状态,否则一直停留在当前状态,直到所请求的数据传输完成;
S105、判断第N路帧起始读请求信号是否开始,若开始,则跳到第N路每一帧起始行读状态,否则,进入步骤S106;进入第N路每一帧起始行读状态后,第N路读请求被选中,读仲裁控制单元将第N路帧起始读请求信号发送到读请求发送单元,同时该状态下,控制源请求空间统一编址单元将第N路读行缓存的RAM空间地址进行统一编址,并发送到读请求发送单元,当总线接口单元的回应信号表明帧起始行读传输完成后,跳到DMA读判断状态,否则一直停留在当前状态,直到所请求的数据传输完成;
S106、判断第N路帧连续读请求信号是否开始,若开始,则跳到第N路帧连续行读状态,否则,停留DMA读判断状态,重复上述步骤进行下一次判断过程;进入第N路帧连续行读状态后,第N路读请求被选中,读仲裁控制单元将第N路帧连续读请求信号发送到读请求发送单元,同时该状态下,控制源请求空间统一编址单元,将第N路读行缓存的RAM空间地址进行统一编址,并发送到读请求发送单元,当总线接口单元的回应信号表明帧起始行读传输完成后,跳到DMA读判断状态,否则一直停留在当前状态,直到所请求的数据传输完成。
在本发明实施例一中,DMA读传输仲裁单元能接收最多N路的读请求申请,按照如图3所示的方式进行仲裁,关键模块对应的优先级相应可设为更高,能够合理地利用一行缓存的时间,优先将更关键模块的数据取到,实现流水处理的顺畅进行。
请参阅图4,在本发明实施例一中,读缓存控制单元包括读仲裁请求信号产生模块131、读数据传输速率自动判断模块132和读乒乓缓存控制模块133。
其中,读仲裁请求信号产生模块131,用于当流水处理模块使能后(即表明需要启动DMA读取相应的读传输数据),根据输入的行场同步信号,产生到DMA读传输仲裁单元的仲裁请求信号,为了达到图像实时处理的功能,在第一个行有效的信号来临之前,需要预取出存储在帧缓存中的数据,所以在场同步的下降沿之后,需要提前发出仲裁请求信号到DMA读传输仲裁单元,将数据预取到乒乓缓存区间中,待第一行有效信号来临便可直接取用。
读数据传输速率自动判断模块132,用于自动判断DMA数据传输的速率,判断系统总线带宽的使用情况,自动地进行带宽的调整,以提高数据的传输效率。ISP等图像处理中,随着流水处理模块级数的增多,部分或全部的流水处理功能都使能后,可能会导致总线带宽或存储带宽不够,这一过程中,如果不加以调整就会导致图像出现错乱或扭曲等现象,严重影响系统性能和视觉效果。针对这种情况,本发明实施例一提供了数据传输速率的自动判断机制,其实现主要基于输入的行场同步时序信息以及DMA读传输仲裁单元的回应信号进行。针对ISP等按行处理的系统,在乒乓缓存的机制下,为了达到处理的实时性,必须在下一行同步信号到来之前,预先将下一行需要的帧缓存数据取到乒乓缓存其中的一条行缓存中,否则表明DMA数据传输过慢,达不到系统需求。这里,具体地,一行时间内,从发送仲裁请求信号开始,到下一行重新发送的仲裁请求开始前,必须收到指示上一次传输完成的仲裁回应信号,如果没有收到回应信号,则输出传输状态信号指示传输速率过慢,收到则表明传输正常。系统通过判断传输状态信号,可以自动地进行带宽的调整,当当前带宽不够时,下一帧的图像进行冻结,可将总线时钟或主存储器时钟提高,将带宽提高,带宽指示满足需求后,即可释放图像,正常地进行显示,由于带宽是按行计算,所以在下一帧来临之前,即可将带宽提高,达到数据传输速率的要求,而这完全不会影响图像的整体显示效果。通过数据传输速率的自动判断,在ISP等处理过程中,流水处理模块的开关使能导致数据传输的不同需求,都能通过该机制自动判断,从而可知系统总线带宽的使用情况,达到自动调整带宽,使得图像不会由于带宽不够而出现错乱或扭曲,提高了数据的传输效率,同时通过带宽的判断能自动地控制芯片的功耗(例如,只要带宽够用,就不需要把总线时钟或主存储器时钟调得过高,以免功耗较大),同时又能达到ISP等实时输入系统的数据访问需求。
读乒乓缓存控制模块133,用于根据时序信号产生一行切换一次的乒乓控制机制,将DMA读传输仲裁单元读到的数据写到读乒乓缓存区间,同时根据时序信息从乒乓缓存区间中读出预存的数据发送到相应的流水处理模块。
实施例二:
请参阅图5,本发明实施例二提供的DMA控制装置与本发明实施例一提供的DMA控制装置的区别在于,本发明实施例二提供的DMA控制装置还包括DMA写传输仲裁单元22和N路写缓存控制单元23。
总线接口单元,还用于接收DMA写传输仲裁单元22产生的写请求信号和传输信息,并将写请求信号和传输信息转化成复合系统总线协议(例如AXI总线等)的总线请求信号,当从总线上收到有效的应答后,将从DMA写传输仲裁单元22读出的写缓存数据写到外部存储器;
DMA写传输仲裁单元22,用于负责DMA写请求信号的仲裁并接收其中一路选中的写缓存控制单元23的数据,最终将接收到的数据经总线接口单元发送到外部存储器中;还用于对输入的N路写请求空间进行统一编址,使得每一路映射到统一的目的地址空间中,还用于自动产生每一路的写传输长度;
N路写缓存控制单元23,用于接收时序产生单元输出的时序输入信号,并产生仲裁请求信号,结合仲裁回应信号产生传输状态信号,并根据时序输入信号将对应的流水处理模块需要缓存的数据写到对应路的乒乓缓存区间中,并将选中一路乒乓缓存区间中的数据读出发送到DMA写仲裁传输单元。
在本发明实施例二中,DMA写传输仲裁单元的具体结构如图6所示,DMA写传输仲裁单元包括写仲裁控制单元221、写请求空间统一编址单元222、写请求发送单元223和写传输数据读缓存译码单元224。
其中,写仲裁控制单元221,用于接收N路写缓存控制单元的写请求信号并对N路的写请求信号进行仲裁;
为了方便总线接口单元进行快速高效的数据传输,使得总线接口单元只要知道一次写传输的写源起始地址、写目的起始地址以及写传输的长度,就能通过总线自动完成数据的访问。写请求空间统一编址单元222,用于对输入的N路写请求空间进行统一编址,使得每一路映射到统一的目的地址空间中(例如第1路映射到目的地址空间的首段,第N路映射到最末段),还用于根据写仲裁控制单元的状态控制硬件自动产生每一路的写传输长度,而不需要通过软件对每一路的写传输长度进行分别设置,例如,当输入的分辨率确定后,每一行的有效点数即已经确定,针对有些处理模块一个点要求缓存的数据为2个字节,而有一些模块要求缓存的数据为1个字节,还有一些模块是2个点或4个点缓存的数据只有一个字节,依照这种规律,在写请求空间统一编址单元,在为每一个写请求空间进行统一编码的同时,也根据分辨率信息和相应的模块请求直接计算出每一路的写传输长度,具体方法为对输入一行点数左移或右移k比特,其中k可为0、1、2或3。这样,结合不同流水处理模块,硬件就可以自动地产生其相应的写传输长度信息。减少了CPU分别对每一路请求不同传输长度的配置,提高了DMA写传输仲裁单元的效率。
写请求发送单元223,用于根据写仲裁控制单元仲裁的结果以及写请求空间统一编址单元的地址信息,发出写请求信息,写请求信息包括:写请求信号、写源起始地址、写目的起始地址、以及写传输长度等;
写传输数据读缓存译码单元224,用于读取选中的1路到N路中的一路乒乓缓存区间中的数据并发送到总线接口单元中。
在本发明实施例二中,写仲裁控制单元的工作流程如图7所示:
系统上电复位或DMA写传输不使能时,写仲裁控制单元处于DMA写空闲状态;
判断是否写传输使能,如果是,则仲裁控制单元处于DMA写判断状态;否则仲裁控制单元处于DMA写空闲状态;
在DMA写判断状态,对输入的N路写请求信号进行仲裁;在对输入的N路写请求信号进行仲裁时,按照预设的优先级进行判断,根据图像处理和显示的重要性对各路写请求信号按照可配置的优先级进行设定,将图像处理中较关键的算法处理模块对应的写请求信号设为较高优先级,依次类推,优先级逐渐降低;将优先级进行编号后,设第1路写请求信号的优先级最高,第2路写请求信号的优先级次之,依此类推,第N路写请求信号的优先级最低。为了对帧缓存的数据进行定位,需要知道每一帧的起始写请求信号,当写请求信号为帧起始写请求信号时,将发送帧缓存首地址到总线接口单元,以便能正确地取到缓存数据;
进入DMA写判断状态后,按照如下步骤进行判断:
S201、判断第1路帧起始写请求信号是否开始,若开始,则跳到第1路每一帧起始行写状态,否则,进入步骤S202;进入第1路每一帧起始行写状态后,第1路写请求被选中,仲裁控制单元将第1路帧起始写请求信号发送到请求发送单元,同时该状态下,控制源请求空间统一编址单元将第1路写行缓存的RAM空间地址进行统一编址,并发送到请求发送单元,当总线接口单元的回应信号表明帧起始行写传输完成后,跳到DMA写判断状态,否则一直停留在当前状态,直到所请求的数据传输完成;
S202、判断第1路帧连续写请求信号是否开始,若开始,则跳到第1路每一帧连续行写状态,否则,进入步骤S203;进入第1路帧连续行写状态后,第1路写请求被选中,仲裁控制单元将第1路帧连续写请求信号发送到请求发送单元,同时该状态下,控制源请求空间统一编址单元,将第1路写行缓存的RAM空间地址进行统一编址,并发送到请求发送单元,当总线接口单元的回应信号表明帧起始行写传输完成后,跳到DMA写判断状态,否则一直停留在当前状态,直到所请求的数据传输完成;
S203、判断第2路帧起始写请求信号是否开始,若开始,则跳到第2路每一帧起始行写状态,否则,进入步骤S204;进入第2路每一帧起始行写状态后,第2路写请求被选中,仲裁控制单元将第2路帧起始写请求信号发送到请求发送单元,同时该状态下,控制源请求空间统一编址单元将第2路写行缓存的RAM空间地址进行统一编址,并发送到请求发送单元,当总线接口单元的回应信号表明帧起始行写传输完成后,跳到DMA写判断状态,否则一直停留在当前状态,直到所请求的数据传输完成;
S204、判断第2路帧连续写请求信号是否开始,若开始,则跳到第2路帧连续行写状态,否则,进入步骤S205;进入第2路帧连续行写状态后,第2路写请求被选中,仲裁控制单元将第2路帧连续写请求信号发送到请求发送单元,同时该状态下,控制源请求空间统一编址单元,将第2路写行缓存的RAM空间地址进行统一编址,并发送到请求发送单元,当总线接口单元的回应信号表明帧起始行写传输完成后,跳到DMA写判断状态,否则一直停留在当前状态,直到所请求的数据传输完成;
S205、判断第N路帧起始写请求信号是否开始,若开始,则跳到第N路每一帧起始行写状态,否则,进入步骤S206;进入第N路每一帧起始行写状态后,第N路写请求被选中,仲裁控制单元将第N路帧起始写请求信号发送到请求发送单元,同时该状态下,控制源请求空间统一编址单元将第N路写行缓存的RAM空间地址进行统一编址,并发送到请求发送单元,当总线接口单元的回应信号表明帧起始行写传输完成后,跳到DMA写判断状态,否则一直停留在当前状态,直到所请求的数据传输完成;
S206、判断第N路帧连续写请求信号是否开始,若开始,则跳到第N路帧连续行写状态,否则,停留DMA写判断状态,重复上述步骤进行下一次判断过程;进入第N路帧连续行写状态后,第N路写请求被选中,仲裁控制单元将第N路帧连续写请求信号发送到请求发送单元,同时该状态下,控制源请求空间统一编址单元,将第N路写行缓存的RAM空间地址进行统一编址,并发送到请求发送单元,当总线接口单元的回应信号表明帧起始行写传输完成后,跳到DMA写判断状态,否则一直停留在当前状态,直到所请求的数据传输完成。
在本发明实施例二中,DMA写传输仲裁单元能接收最多N路的写请求申请,按照如图7所示的方式进行仲裁,关键模块对应的优先级相应可设为更高,能够合理地利用一行缓存的时间,优先将更关键模块的数据取到,实现流水处理的顺畅进行。
请参阅图8,在本发明实施例二中,写缓存控制单元包括写仲裁请求信号产生模块231、写数据传输速率自动判断模块232和写乒乓缓存控制模块233。
其中,写仲裁请求信号产生模块231,用于当流水处理模块使能后(即表明需要启动DMA写相应的写传输数据),根据输入的行场同步信号,产生到DMA写传输仲裁单元的仲裁请求信号,为了达到图像实时处理的功能,在第二个行有效的信号来临之时,需要将第一行的写缓存数据发送到帧缓存中,所以在一行有效信号的下降沿之后,需要发出写请求信号到DMA写传输仲裁单元,将乒乓缓存区间中的缓存数据取出并发送到帧缓存中,待再下一行有效信号来临便可进行乒乓缓存和后续传输以达到实时传输的效果。
写数据传输速率自动判断模块232,用于自动判断DMA数据传输的速率,判断系统总线带宽的使用情况,自动地进行带宽的调整,以提高数据的传输效率。ISP等图像处理中,随着流水处理模块级数的增多,部分或全部的流水处理功能都使能后,可能会导致总线带宽或存储带宽不够,这一过程中,如果不加以调整就会导致图像出现错乱或扭曲等现象,严重影响系统性能和视觉效果。针对这种情况,本发明实施例二提供了数据传输速率的自动判断机制,其实现主要基于输入的行场同步时序信息以及DMA写传输仲裁单元的回应信号进行。针对ISP等按行处理的系统,在乒乓缓存的机制下,为了达到处理的实时性,必须在下一行同步信号到来之前,将上一行需要写到帧缓存的数据从乒乓缓存中取出并发送到帧缓存中,否则表明DMA数据传输过慢,达不到系统需求。这里,具体地,一行时间内,从发送仲裁请求信号开始,到下一行重新发送的仲裁请求开始前,必须收到指示上一次传输完成的仲裁回应信号,如果没有收到回应信号,则输出传输状态信号指示传输速率过慢,收到则表明传输正常。系统通过判断传输状态信号,可以自动地进行带宽的调整,当当前带宽不够时,下一帧的图像进行冻结,可将总线时钟或主存储器时钟提高,将带宽提高,带宽指示满足需求后,即可释放图像,正常地进行显示,由于带宽是按行计算,所以在下一帧来临之前,即可将带宽提高,达到数据传输速率的要求,而这完全不会影响图像的整体显示效果。通过数据传输速率的自动判断,在ISP等处理过程中,流水处理模块的开关使能导致数据传输的不同需求,都能通过该机制自动判断,从而可知系统总线带宽的使用情况,达到自动调整带宽,使得图像不会由于带宽不够而出现错乱或扭曲,提高了数据的传输效率,同时通过带宽的判断能自动地控制芯片的功耗(例如,只要带宽够用,就不需要把总线时钟或主存储器时钟调得过高,以免功耗较大),同时又能达到ISP等实时输入系统的数据访问需求。
写乒乓缓存控制模块233,用于根据时序信号产生一行切换一次的乒乓控制机制,将相应的流水处理模块需要存储的数据写到写乒乓缓存区间,同时根据仲裁信号将选中的一路乒乓缓存数据取出发送到DMA写传输仲裁单元。
本发明实施例三还提供了一种包括本发明实施例一或二提供的DMA控制装置的图像处理器。
在本发明实施例一中,由于DMA控制装置包括DMA读传输仲裁单元和N路读缓存控制单元,DMA读传输仲裁单元,用于负责DMA读请求信号的仲裁并接收经总线接口单元发送的外部存储器的读缓存数据,最终将读缓存数据写到选中的其中一路读缓存控制单元中;还用于对输入的N路源请求空间进行统一编址,使得每一路映射到统一的目的地址空间中,还用于自动产生每一路的读传输长度。使得在ISP等实时输入的芯片系统中,DMA控制装置能够结合图像处理模块进行准确合理的判决,针对多路不同的数据访问请求,可以实现DMA传输参数的硬件自动配置。另外,由于读缓存控制单元包括读仲裁请求信号产生模块和读数据传输速率自动判断模块,读数据传输速率自动判断模块自动判断DMA数据传输的速率,判断系统总线带宽的使用情况,自动地进行带宽的调整。因此使得图像不会由于带宽不够而出现错乱或扭曲,提高了数据的传输效率,同时通过带宽的判断能自动地控制芯片的功耗,同时又能达到ISP等实时输入系统的数据访问需求。
在本发明实施例二中,由于DMA控制装置包括DMA写传输仲裁单元和N路写缓存控制单元,DMA写传输仲裁单元,用于负责DMA写请求信号的仲裁并读取选中的其中一路写缓存控制单元输出的数据,最终经总线接口单元将数据发送到外部存储器中;还用于对输入的N路写请求空间进行统一编址,使得每一路映射到统一的目的地址空间中,还用于自动产生每一路的写传输长度。使得在ISP等实时输入的芯片系统中,DMA控制装置能够结合图像处理模块进行准确合理的判决,针对多路不同的数据访问请求,可以实现DMA传输参数的硬件自动配置。另外,由于写缓存控制单元包括写仲裁请求信号产生模块和写数据传输速率自动判断模块,写数据传输速率自动判断模块自动判断DMA数据传输的速率,判断系统总线带宽的使用情况,自动地进行带宽的调整。因此使得图像不会由于带宽不够而出现错乱或扭曲,提高了数据的传输效率,同时通过带宽的判断能自动地控制芯片的功耗,同时又能达到ISP等实时输入系统的数据访问需求。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,RandomAccess Memory)、磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。