CN1434380A - 图像处理装置和方法以及用于该装置的编译程序 - Google Patents

图像处理装置和方法以及用于该装置的编译程序 Download PDF

Info

Publication number
CN1434380A
CN1434380A CN02121781A CN02121781A CN1434380A CN 1434380 A CN1434380 A CN 1434380A CN 02121781 A CN02121781 A CN 02121781A CN 02121781 A CN02121781 A CN 02121781A CN 1434380 A CN1434380 A CN 1434380A
Authority
CN
China
Prior art keywords
mentioned
computing
unit
arithmetic
distance code
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
Application number
CN02121781A
Other languages
English (en)
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Publication of CN1434380A publication Critical patent/CN1434380A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Image Processing (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)
  • Multi Processors (AREA)

Abstract

一种图像处理装置,具有:对输入的图像数据进行运算的多个运算流水线,为了把上述多个运算流水线输出的运算结果再次输入到上述多个运算流水线而对数据传送路径进行切换的切换通道,对上述切换通道进行的上述数据传送路径的切换及在上述多个运算流水线内的运算进行控制的控制电路;上述控制电路进行调度,从而,在上述多个运算流水线内执行由多个运算构成的单位运算时,构成由从1到n(n是正整数)的单位运算中的单位运算k(1<k<n)到单位运算n的(n-1+1)个单位运算的上述多个运算在同一运算流水线中的同一运算时间里不重叠。

Description

图像处理装置和方法以及用于该装置的编译程序
技术领域
本发明涉及图像处理装置和方法以及用于该装置的编译程序,特别是在进行大量的图像数据处理时,降低对存储器进行读取/存储的次数,以便能够迅速进行图像处理的装置和方法以及用于此装置的编译程序。
背景技术
一般在计算机图形等的图像处理技术的领域内,为实现与图像内的形状或色彩等相关的各种各样的表现形式,需要有具有灵活的图像处理功能的图像处理装置。另外,还要求用于此图像处理装置的软件的编译程序,是能够处理与精彩的图像内的形状或色彩等相关的大量数据的编译程序。
例如,根据表示图像的亮度和颜色都一样的图案的纹理决定颜色时,是根据形成该图像的像素的座标来决定其像素的颜色。在决定颜色的处理时,也需要使用大量的数据,还须逐次按顺序计算其颜色,为此,一直以来使用的是进行高速运算的图像处理装置(GraphicProcessor Unit-GPU)。
但是,以往的GPU只能处理固定的数据流,或者半固定的数据流,一次一条路径可进行的像素处理有限。为此,进行复杂的运算就要在多条路径使用GPU。在多条路径使用GPU时,就要在前一条路径中,先把中间数据写入到帧缓冲存储器等存储器中,在下一条路径的处理过程中,再把帧缓冲存储器等存储器中的数据从其存储器中读出来,这样就增加了对存储器读取/存储的次数。
对存储器的读取/存储次数的增加,就成为图像处理处理器整体的数据处理流程的瓶颈,降低了图像处理性能,从数据处理的迅速性这一角度出发,就要求改善这一问题。例如,“n Vidia公司”的GeForce3GPU内有可编程像素处理器,可通过一系列的指令串对地址运算器、对像素颜色进行混合处理的组合器进行编程(参照论文:GeForce 3GPU[compiling to a VLIM Fragment Pipeline:Figure1,2])。
但是,就是在上述论文中公开的nVIDIA公司的芯片中,对于一个像素一次可执行的指令数目也是有限的,另外,寄存器的个数也是有限的。为此,更加复杂的处理就要求在多条路径使用像素处理器来进行。其理由是在此现有技术的图像处理处理器中,地址运算器与组合器是分离的,按从组合器到地址运算器的顺序进行运算时,就需要分到多条路径中进行。
如果能够提供通过在一条路径中进行灵活处理的图像处理装置和用于此装置的编译程序,就可减少进行像素运算的路径数,从而就可减少易成为功能瓶颈的往存储器读取/存储的次数。
发明内容
本发明第1构成部分的图像处理装置包括,对于输入的图像数据进行运算的多个运算流水线,为了把上述多个运算流水线输出的运算结果再次输入到上述多个运算流水线,进行数据传送路径切换的切换通道,对由上述切换通道进行的上述数据传送路径的切换及在上述多个运算流水线内的运算进行控制的控制电路,同时,控制电路进行如下控制,即,在上述多个运算流水线内执行由多个运算构成的单位运算时,为了保证构成从1到n(n是正整数)的单位运算中的单位运算k(1<k<n)到单位运算n的(n-k+1)个单位运算的上述多个运算在同一流水线中的同一运算时间里不重叠而进行调度。
另外,本发明第2构成部分的编译程序是用于图像处理装置的编译程序,该图像处理装置具有对输入的图像数据进行运算的多个运算流水线,为了把上述多个运算流水线输出的运算结果再次输入到上述多个运算流水线而对数据传送路径进行切换的切换通道,对上述切换通道进行的上述数据传送路径的切换及在上述多个运算流水线内的运算进行控制的控制电路,编译程序包含如下控制,即,构成上述多个运算流水线的各个运算流水线分别接受由外部提供的上述图像数据的一部分,为了保证由多个运算构成的从1到n(n是正整数)的n个单位运算中的单位运算k(1<k<n)到单位运算n的(n-k+1)个单位运算中的上述多个运算在同一流水线中的同一运算时间里不重叠而进行调度,按上述调度来控制上述多个运算流水线的运算顺序。
另外,本发明的第3构成部分的图像处理方法具有以下步骤,即,向构成对输入图像数据进行运算的多个运算流水线的各个运算流水线提供外部供给的上述图像数据的一部分,为了保证由多个运算构成的从1到n(n是正整数)的n个单位运算中的单位运算k到单位运算n的(n-k+1)个单位运算中的上述多个运算在同一流水线中的同一运算时间里不重叠而进行调度,按上述调度来控制上述多个运算流水线的运算顺序。
附图说明
图1是表示包含本发明第1实施例的图像处理装置的系统的整体构成的框图
图2是表示图1中图像处理内核的概略构成的框图
图3是表示图像内核内部的功能构成概略的框图
图4是为了说明从图1到图3的图像处理内核的动作,分别表示(a)数据流图形(DFG=单位运算)、(b)使用两个功能单元(FU)调度的单位运算、(c)两个FU的调度的说明图
图5表示单位运算1~n与每个运算的关系的说明图
图6表示的是运算重叠无法调度,(a)错位1个循环的例1、(B)错位3个循环的例2的说明图
图7为说明从图1到图3的图像处理内核的动作,分别表示(a)数据流图形(DFG=单位运算)、(b)使用三个功能单元(FU)调度的单位运算、(c)三个FU的调度的说明图
图8为说明从图1到图3的图像处理内核的动作,不同于图5的分别表示(a)数据流图形(DFG=单位运算)、(b)使用三个功能单元(FU)调度的单位运算、(c)三个FU的调度的说明图
图9表示的是当基本地址与“步数mod N”相等时的地址生成电路的构成的框图
图10表示的是当基本地址与“代*基1本地址步长mod N”相等时的地址生成电路的构成的框图
图11表示的是动作的一个例子的4个象素的混合处理时削减分枝数目的具体例子的说明图
图12表示的是以FIFO等实现FU内的通道时的运算流水线内的通道的说明图
图13表示的是进行为了使图12的处理具体可行的乘法和加法运算的流水线的框图;以及
图14表示的是本发明第3构成的实施例的图像处理方法处理步骤的流程图。
具体实施方式
下面,参照附图,详细说明关于本发明的图像处理装置和方法以及本装置所采用的编译程序的实施例。首先,参照图1,说明与第1实施例相关的图像处理器的整体系统构成。该第1实施例的构成的目的在于提供可高效率地进行多种图像处理的图像处理器。首先,说明采用了与第1实施例相关的处理器的系统构成例子。
图1表示的是第1实施例采用的图像处理器所适用的图像处理系统的构成例子。在该图中,图像处理处理器1具有例如Setup/DDA等的图像处理专用电路2,集成在同一芯片上的存储器3,至少一个、理想的话为多个的图像处理内核4。图像处理内核4的详细结构以后再叙述。
图像处理处理器1通过系统总线5与中央处理器(以下,称为CPU-Central Processing Unit)6连接,与该CPU6协同进行包含有图像处理的信息处理。另外,图像处理处理器1通过系统总线5、桥7等与外部存储装置8连接,一边与存储装置8之间进行数据的发送接收,一边进行信息处理。桥7还与输入输出接口9连接。每个图像处理内核4内部都有控制器10用以控制内核内部各构成要素。
其次,参照图2详细说明图像处理内核4,图2表示的是图像处理内核4的概略。除了上述的控制器10,图像处理内核4还具有存储单元11,第一个读取单元12,作为进行像素运算的流水线状的运算器的多个运算流水线17、18,切换通道15,作为通信线路而起作用的内部总线16。控制器10的作用是进行调度,从而使在由上述多个运算流水线17、18在上述流水线内执行由多个运算分别构成的单位运算时,保证构成从1到n(n是正整数)的n个单位运算中的单位运算k(1<k<n)到n的(n-k+1)个单位运算的上述多个运算在同一运算流水线内同一运算时间不发生重叠(以后进行详细说明)。
另外,上述图像处理内核4进行信息处理的过程如下,通过第1读取单元12从存储器3接收图像数据的至少一部分,由运算流水线群的各运算流水线17、18对这些数据进行处理,通过存储单元11把一连串的数据写回存储器3。另外,此时使用切换通道15与内部总线16,执行具有DAG(Directed Acyclic Graph)状数据流的程序。以后将叙述该程序的执行方法。
由于可执行具有DAG状的数据流的程序,与以往的只能执行固定数据流的GPU相比,可以减少对存储器的读取/存储次数。为实现这个目的,虽因增加切换通道15和内部总线16而使得硬件的数量有所增加,但因为可以削减易成为瓶颈的取数存储次数,从而使整体性能得到提高。
其次,参照图3来说明图像处理内核4的功能结构。
图3是表示图像处理内核4的结构例子的框图。在与第1实施例相关的图像处理处理器中,图像处理内核4由控制器10、存储单元11、第1读取单元、切换通道15、内部总线16、第1运算流水线(FUa)17、第2运算流水线(FUb)18构成。
控制器10虽说是按照每一步来控制其它构成要素的,但它特别是使用叫作阶段的概念来进行控制的。这里,阶段是按照
阶段=步数mod最大阶段数加以定义的。该阶段在运算流水线17、18的具体动作过程中,可当作动作时钟来理解,所以在图4及此后的说明中,记为时钟。
FUa17及FUb18是流水线化的运算流水线,规定的运算时间的间隔,即每个阶段(图4中叫时钟)可执行不同的指令。切换通道也可由通道群和纵横道(crossbar)构成,这些纵横道是具有多播功能的单方向的纵横道(输入集合与输出集合不会重叠)。纵横道可按时钟把运算流水线的输出送到任意通道,同时,可按时钟把任意通道的输出送到任意运算流水线的输入口。切换通道15实际上是多个通道(1R/1WRAM)的集约体。切换通道15的各通道可进行由各时钟而定的基于读出偏移地址的读出和基于写入偏移地址的写入。
由于采用了这种构成方式,它就比GeForce3一类的寄存器组合型GPU具有较高的可编程性,而且,比VLIW型处理器面积利用率更高,可以控制更多的运算器。
与本发明的第2个构成相关的图像处理装置采用的编译程序是由图像处理处理器1执行的图像处理程序。此编译程序的作用是进行调度,从而构成多个运算流水线的各个运算流水线分别接受外部提供的上述图像数据的一部分,作为多个运算的从1到n(n为正整数)的n个单位运算中由单位运算k(1<k<n)到单位运算n的(n-k+1)个单位运算在同一流水线中同一运算时间里不重叠,并且按照上述调度来控制上述多个运算流水线的运算顺序。
其次,参照图4说明与第1实施例相关的图像处理处理器内执行的程序的例子。图4表示的是在此图像处理内核4内可执行的程序和它的调度实例。图4(a)表示的是准备执行的DFG(Data Flow Grahp)。此DFG构成了循环执行一连串的运算的的单位运算。即,图中的符号a0,a1,a2,b0,b2相当于运算流水线(FU)内的各个运算,一连串a0,a1,a2,b0,b2的运算的集合就是单位运算,连结单位运算内的各个运算的纵横条相当于运算流水线间的传送,图中上部的白圈表示输入,下部的白圈表示输出。
图4(b)表示的是经过调度后的单位运算,a0,a1,a2可以由第1运算流水线(FUa)17执行,b0,b2可以由第2运算流水线(FUb)18执行,FU(a)17,FU(b)18可在每一时钟执行不同的指令。在此例子中,FU(a)17可在时钟0执行运算a0、在时钟2执行运算a1、在时钟4执行运算a2。FU(b)可在时钟1执行运算b0、在时钟5执行运算b2。最大的时钟是3,一个运算流水线FU被设定为可在三个时钟的时间内执行一个运算。
图4(b)关注的是对1组输入数据而产生的一个单位运算。在此一个单位运算内进行的一连串的处理叫做代。执行时,按步输入不同的输入数据组,多个代的处理同时被执行。图4(c)表示的是其处理的形式,带斜线的多个运算是同一代k的单位运算。
在图4(c)中,单位运算的第k代的运算在与图4(b)相同的时钟下进行,FU(a)17可在时钟0执行运算a0k、在时钟2执行运算a1k、在时钟4执行运算a2k,FU(b)可在时钟1执行运算b0k、在时钟5执行运算b2k。在下一代k+1的单位运算中,FU(a)17可在时钟3执行运算a0k+1、在时钟5执行运算a1k+1、在时钟7执行运算a2k+1,FU(b)可在时钟4执行运算b0k+1、在时钟8执行运算b2k+1
用图5说明单位运算与各个运算的关系。图像处理处理器在对单位运算1到单位运算n的n个单位运算按顺序进行处理的同时,各单位运算内的运算的顺序也是相同的。因而,对多个运算流水线的处理就有必要进行调度从而对同一单位运算内的各个运算不在同一个时钟内重叠进行,同时,还须进行调度使相邻单位运算或有几个间隔的单位运算之间在同一流水线的同一时钟内的运算不发生重叠。
即,控制器10进行调度,即使构成运算流水线群的运算流水线17,18接收外部提供的保存在上述存储器中的一连串的数据的一部分,使用多个流水线17,18在上述运算时间内进行由多个运算构成的单位运算时控制运算的顺序,使得当单位运算有1到n(n是正整数)个时,不仅要使在第k个单位运算内的各运算,与第k+1个及第k+2个单位运算内的各运算在同一流水线的同一运算时间不发生重叠,同时,从k到n的(n-k+1)个单位运算相互之间,各个运算在同一流水线17或者18在同一运算时间(时钟)下也保证不发生重叠。
图6((a))表示的是错位一个循环调度发生重叠的例子,图6((b))表示的是错位三个循环调度发生重叠的例子。在图6(a)表示的例1中,单位运算中的运算顺序与图4(a)的相同,如在时钟0执行运算a0k、在时钟1执行运算a1k、在时钟2执行运算a2k...,执行单位运算。没有象图4(b)那样,进行调度,从而FUa在时钟0、时钟2、时钟4进行运算,其间的时钟1、时钟3不进行运算,在连续时钟下使用不同的流水线进行并行运算,单位运算k的各个运算,FUa在时钟0执行运算a0k、在时钟2执行运算a1k、在时钟4执行运算a2k,FUb在时钟1执行运算b0k、在时钟3执行运算b2k。接着,若在一个循环的时钟内加以调度,进行下一代的单位运算k+1的话,FUa在时钟1执行运算a0k+1、在时钟2执行运算a1k+1、在时钟3执行运算a2k+1,FUb在时钟2执行运算b0k+1、在时钟4执行运算b2k+1。这样,如图6(A)中斜线覆盖的部分所表示的那样,FUa的时钟1和时钟2被调度为进行两个不同代的运算,FUa进行的运算在物定的时钟下就会发生重叠。
另外,图6(b)表示的是在对与图4(a)相同的单位运算按照图4(c)进行同样的调度后,把下一个单位运算错位三个循环时的情形。此时,单位运算K按上述图4(c)同样的调度进行,对于下一代的单位运算k+1,Fua在时钟3执行运算a0k+1、在时钟5执行运算a1k+1、在时钟7执行运算a2k+1,Fub在时钟4执行运算b0k+1、在时钟7执行运算b2k+1,运算b2k与b0k+1就重叠了。另外,FUb的K7下,运算b2k+1与b0k+2也发生了重叠。为避免这样的运算重叠,按照图5说明的那样,在就单位运算研究个别运算是否发生冲突,然后按照图4C那样进行调度即可。
这样,事先进行调度后再让运算流水线动作,就可以不浪费每个时钟、高效率地执行多个运算流水线的运算,从而,就可简单地实现对运算器及通信线路的有效控制。而且,由于对于各个运算流水线已按时钟确定了执行的指令,只要按顺序执行对应于每个时钟的指令即可。
而且,图4(a)(b)(c)所表示的图像处理处理器所执行的程序和其调度方法是一种例子,通过设置三个运算流水线FU,就可在规定的时间内,把某个时钟设为两个循环,反复进行运算。这个例子由图7和图8表示。图7(a)所示的单位运算按照图7(b)所示的进行调度,按照图7(c)进行运算。运算流水线是FUa0,FUa1,FUb三个,图4中流水线FUa的功能由FUa0,FUa1两个流水线替代,通过反复两个时钟实现与图4相同的运算处理。按照这样,也可把运算a0,a1,a2分配给两个运算器FUa0,FUa1
像图4(b)(c)那样,使用两个运算流水线进行单位运算的调度时,例如单位运算k的运算是使用时钟0到时钟5六个时钟来进行的,像图7(b)(c)表示的那样,使用三个运算流水线进行单位运算的调度时,同样的单位运算k使用时钟2到时钟4的三个时钟就可做完,只增加了一个运算流水线,就可用一半的循环完成一个单位运算。
另外,与图7一样,把运算a0,a1,a2分配给两个运算器FUa0,FUa1的同时,分别在运算流水线FUa0,FUb内进行的运算a0,a1及运算b0,b1之间设定两个时钟以上间隔的事例是由图8ABC表示的。即使在增加了一个运算流水线,把一侧的运算流水线的一个时钟设定为两个的情形下,一个单位运算即可像图7(a)(b)(c)表示的那样用四个时钟完成,也可像图8(a)(b)(c)表示的那样,在六个时钟内进行运算。
而且,为使运算按图8所示方式进行,单位运算k+1内的运算b0先于单位运算k内的运算b1被执行。这样,后执行的单位运算内的运算可先于在先的单位运算内的运算被执行。与图7相比,图8所示例子的特征就是可以进行象这样的变更运算的顺序的调度。
切换通道15的控制是按每个通道(1R/1W/RAM)来进行的,具体地说,每个通道都确定了读出地址,写入地址.图9表示的就是决定这个通道地址的动作.例如,读出/写入地址是按下述方式决定
设N表示的是表示存储器地址数的入口数
基本地址=(代计数值*通道重复度(Channel)mod N
读出地址=(基本地址+读出偏移(Ch,phase)mod N
写入地址=(基本地址+写入偏移(Ch,phase)mod N
在此,代计数值是每到时钟0被计数出的值,因基本地址是模N的值,基本地址可以通过在每个时钟0每个通道重复度被计数的模N的计数器(循环计数器)来实现,称之为基本地址计数器.
通道重复度是指一个通道上可嵌入的表示单位运算上的不同数据的分枝的值(自然数),按每个通道决定。读出、写入偏移按各个通道/各时钟确定。因而,每个通道的控制电路是通过基本计数器,在每个时钟把读出/写入偏移从表中读出,将基本地址的值和模进行加法运算的电路来实现的。
图9和图10的框图表示的是图1至图3的控制器的具体例子。图9表示的是基本地址和步数mod N相等的情形下的地址计数器的功能构成。在图9中,步数被输入到时钟生成电路21和模N电路23,加法器26及27分别根据基于时钟生成电路21的输出从偏移存储器22读出的偏移和根据模N电路23的输出,输出读出地址和写入地址。
图10表示的是在决定代时,根据步数除以时钟数得到的商来求出基本地址的例子。例如图形每2步被执行一次时,两个循环周期就被分别计数。偏移按照与图8所举例子同样的方法被求出,基本地址根据重复度寄存器24的输出和被输入的步数由基本地址生成电路25输出。这里,基本地址按照“基本地址=代*基本地址步幅mod N”被求出,被求出的地址与图9一样由加法器26及27输出。
加法器26及27分别对偏移存储器22输出的偏移和基本地址进行加法运算,分别输出读出地址及写入地址。根据这一基于图9的例子的地址生成电路,可以使基本地址步幅比时钟数小,因此,比图9所示的基本地址生成电路可以更加有效地利用存储器。
图11表示的是通过增加运算器的功能削减分枝数目的例子。此图11表示的是对图像数据的4个像素进行混合处理的情形,“a”表示的是象素的读出动作,“b”表示的是象素的运算动作,“c”表示的是把4个象素读出后一起进行象素运算的动作。如果按照这一动作的示例,空心箭头的左侧有11个分枝,右侧就成为2个了。
这样,通过增加运算器的功能来削减分枝数目,就可缩小纵横条或通道的规模。通过使用这样的构成,可以用于后述的带有过滤功能的多个象素读出电路等。另外,还可适用于SIND Mul Add及SINDMulMul Add等译码运算器上。
本发明的图像处理装置可以采取多个图像处理内核并列的结构。这是在一个半导体芯片上排列多个图像处理内核的结构,集成多个图像处理内核可以提高线性性能。即使是图像处理内核单体也具有可执行一定程序的自由规模的单位运算的可缩放性,所以,即使图像处理内核间的连接不紧密,也可执行一定程序的自由规模的单位运算。因为图像处理内核本身就是流水线化的运算器,可以每个循环周期或者数个循环周期对一次吞吐量来进行运算,可作为以往的图像处理处理器的运算流水线来使用图像处理内核。
本发明的图像处理装置,如前面所述的,使用了在执行运算前事先对单位运算内的各运算的处理流程进行调度的概念。图4(a)中,表示了运算的内容,但这些运算内容表示的不是构成装置的运算流水线的个数。因而,本发明不局限于可执行a0,a1,a2运算的流水线是一个还是二个。可以说图4(A)表示的是各运算的假想运算流水线。
预先把调度前的单位运算作为程序加以分配,执行时在了解了装置的具体构成后,再进行详细的调度,这样,就可使程序成为独立于装置结构的构成。基于此概念的产物就是上述第2构成的编译程序。这样,即使改变装置的构成也可执行同一程序。具体地说,就可使运算流水线的数目、运算流水线的吞吐量、等待时间的变更成为可能。
相对于具有链接功能的以往的图像处理处理器中的运算流水线间的连接受到限制这一点,本发明的第1基本构成的图像处理装置,只要运算流水线数目、通道数目在许可的范围内,可执行任意的DAG状的数据流程序,就可以削减加载/存储次数。
进一步,因为对运算流水线的调度是在每个单位运算前事先进行的,可使控制电路简单化。虽然在具有同样功能的SIM D型处理器中也可通过软件流水线化来实现,但是在SIM D型处理器内实现时,因寄存器文件需要相当于运算单元的总输入数目的输入端口和相当于运算单元的总输出数目的输出端口(通道数目×通道平均深度)个以上的寄存器个数等,就成为一个大规模的装置,还是本方案有优势。
把通道的输出通路设置为多播,输入集合和输出集合间采用没有重叠的单方向的纵横条的结构时,执行数据流程序时,把同一个数据向同一步的下一步进行传送的多个通道综合起来,可用一个通道和通道输出通信通路的多指向来代替。因此,就可削减执行同一数据流程序所需要的通道数目,可使装置的规模缩小。用同一通道数目可实现的数据流图形(DFG=单位运算)的规模变大,可削减装入/存储次数。
构成通道群的通道是由随机访问存储器构成的,并且此随机访问存储器是按照能够在每一步向任意地址写入一个数据和从任意地址读出一个数据构成时,在执行数据流程序时,就可把同一个数据向不同的下一步传送的多个通道综合起来,用一个通道代替。可以缩小装置规模,削减加载/存储次数。
控制电路的构成具有能够进行控制从而通过设置在运算流水线内的通信线路进行同一流水线间的传送的功能时,就可削减通道的使用次数,在缩小装置规模,削减加载/存储次数方面有特殊效果。图12表示的是可削减通道的例子。
通过FIFO(先进先出)电路实现这样的构成,上述的功能就可通过简单的装置加以实现。与上述构成相比,削减通道使用数的条件虽然有些严格,通过在编译时调度指令以减少通道,就可有效地削减使用通道数。图13表示的是运算流水线的例子。
图13中,FIFO电路30具有,例如将通过图2及图3的内部总线16提供的图像数据进行乘法运算的乘法器31,以乘法器31的输出作为一侧的输入的加法器32,接受加法器32的输出通过先进先出的动作按输入的顺序输出的先进先出部(FIFO)33,对此FIFO部33的输出和通过内部总线16输入的比如地址信息等进行合成处理后加以输出的控制器10,加法器32的另一侧的输入是由控制器10的输出提供的。
这个例子是进行MUL-ADD(a+b×c)运算的流水线,但设置有把运算结果返送给输入a的通道。多个运算流水线包含有对图像的颜色进行运算的运算流水线时,通过在图形图像处理器里采用本装置,就可以较少的加载/存储次数来执行图形图像处理器常常要做的复杂的DAG。
最后,用图14的流程图说明与本发明的第3构成相关的图像处理方法的实施例。图14中,在步骤ST1,向构成对输入的图像数据进行运算的多个运算流水线的各个运算流水线提供由外部供给的上述图像数据中的至少一部分。
其次,在步骤ST2,由多个运算组成的单位运算被加以调度,以保证从1到n的n个单位运算中的由单位运算k(1<k<n)到单位运算n的(n-k+1)个单位运算在同一流水线中同一运算时间里不互相重叠。这一单位运算的具体例子如图4(a)所示。
再次,如图14中步骤ST3那样,上述图像数据的运算遵照步骤ST2进行的调度被加以控制。根据以上各步进行图像处理。
如以上所做的详细说明,发明可以提供具有以下功能的图像处理装置和方法及用于此装置的编译程序,即,在处理关于图像的形状或色彩的大量数据时,通过事先对访问一次存储器读出的应该处理的数据进行调度后由并行处理运算部分进行处理,可以实现在以各种各样的处理为对象的图像处理运算过程中,削减路径数进行高效率处理的同时,还可降低往存储器的加载/存储次数。另外,因为运算流水线的调度是在每个单位运算前事先进行的,所以就可简单地实现图像处理装置的控制电路的构成。

Claims (20)

1.一种图像处理装置,具有对输入的图像数据进行运算的多个运算流水线,为了把上述多个运算流水线输出的运算结果再次输入到上述多个运算流水线而进行数据传送路径切换的切换通道,控制上述切换通道进行的把上述数据传送路径进行切换及在上述多个运算流水线进行的运算的控制电路,
上述控制电路进行调度,从而在上述多个运算流水线执行由多个运算组成的单位运算时,构成从1到n(n为正整数)的单位运算中的由单位运算k(1<k<n)到单位运算n的(n-k+1)个单位运算的上述多个运算在同一流水线中同一运算时间里不互相重叠。
2.如权利要求1所述的图像处理装置,
还具有,
存储上述图像数据的存储器装置;
进行包含有图像处理的规定的信息处理的中央处理装置(CPU);
连接图像数据的输入输出部的同时还与上述存储器装置相连接的桥;
作为上述CPU及上述桥之间的数据发送接收媒介的系统总线;
保持上述图像数据的一部分的寄存器。
3.如权利要求1所述的图像处理装置
上述多个流水线和上述切换通道和前控制电路分别被设置在一个图像处理内核内,同时上述图像处理内核还设置有多个,
各图像处理内核还具有存储单元,第1加载单元,分别进行象素运算的多个运算流水线。
4.如权利要求3所述的图像处理装置
上述各图像处理内核具有
供给外部来的指令的内部总线;接收被分配到的通过内部总线传来的指令在上述规定的运算时间的每个时钟执行运算的上述多个运算流水线;在上述每个时钟把上述运算流水线的输出送到任意通道并在每个时钟把任意通道的输出送到任意的运算流水线的输入的纵横条及由通道群组成的上述切换通道。
5.如权利要求1所述的图像处理装置
作为上述单位运算的数据流图形(DFG)由分配给上述多个运算流水线的各运算构成,上述多的运算流水线受上述控制电路的控制对构成多个单位运算的各运算在每个时钟进行调度加以处理。
6.如权利要求1所述的图像处理装置
上述控制电路进行调度,以控制上述多个运算流水线的处理,从而使作为上述同一运算时间的每个时钟内,构成同一个上述单位运算的各运算在同一个运算流水线内不发生重叠,并且使相邻单位运算或有几个间隔的单位运算在同一时钟内各运算也不发生重叠。
7.如权利要求6所述的图像处理装置
上述控制电路控制运算流水线的调度,从而至少使用3个运算流水线运算1个单位运算,且以使用两个运算流水线进行运算时的一半的时钟周期内进行处理。
8.如权利要求6所述的图像处理装置
上述控制电路调换运算的顺序,对调度进行控制,从而至少使用3个运算流水线处理上述单位运算,以在单位运算k的各运算之前先进行单位运算k+1内的各运算。
9.如权利要求1所述的图像处理装置
上述控制电路具有,
输入作为生成上述规定运算时间的时钟的基础的步数以生成进行规定运算的上述时钟的时钟生成电路;
把上述时钟生成电路输出的上述时钟作为偏移加以存放的偏移存放存储器;
输入上述步数进行模加法运算的模N电路;
把上述偏移存储器输出的偏移和上述模N电路的输出相加生成读出地址的第1加法器;
把上述偏移和上述模N电路的输出相加生成写入地址的第2加法器。
10.如权利要求1所述的图像处理装置
上述控制电路具有,
输入用于生成作为上述规定运算时间的时钟的基础的步数以生成进行规定的运算的上述时钟的时钟生成电路;
把上述时钟生成电路输出的上述时钟作为偏移加以存放的偏移存放存储器;
记忆重复度的重复度寄存器;
根据上述步数和上述重复度生成决定代的基本地址的基本地址生成电路;
把上述偏移和上述基本地址相加生成读出地址的第1加法器;
把上述偏移和上述基本地址相加生成写入地址的第2加法器。
11.权利要求1所述的图像处理装置
上述控制电路具有使用设置在运算流水线内的通信线路进行上述多个运算流水线内的同一流水线间的数据传送的功能,该通信线路由FIFO电路构成,该FIFO电路具有对输入的图像数据进行乘法运算的乘法器,以这个乘法器的输出作为一个输入的加法器,接受加法器的输出以先进先出的动作按照输入的顺序加以输出的先进先出(FIFO)部,把包含地址信息的信号与该FIFO部的输出加以合成处理并提供给上述加法器作为其另一输入的控制器。
12.一种用于图像处理装置的编译程序,该图像处理装置具有对输入的图像数据进行运算的多个运算流水线,为了把上述多个运算流水线输出的运算结果再次输入到上述多个运算流水线而对数据传送路径进行切换的切换通道,对上述切换通道进行的上述数据传送路径的切换及在上述多个运算流水线内的运算进行控制的控制电路,
该编译程序包含如下控制,使得构成上述多个运算流水线的各个运算流水线分别接受由外部提供的上述图像数据的一部分,
为了保证由多个运算构成的从1到n(n是正整数)的n个单位运算中的从单位运算k(1<k<n)到单位运算n的(n-k+1)个单位运算中构成该(n-k+1)个单位运算的上述多个运算在同一流水线中的同一运算时间里不重叠而进行调度,
按上述调度来控制上述多个运算流水线的运算顺序。
13.如权利要求12所述的用于图像处理装置的编译程序,进一步包含如下控制,即控制上述多个运算流水线的处理,从而
为了保证作为上述同一运算时间的每个时钟内构成同一个上述单位运算的各个运算在同一运算流水线内不重叠而对其进行调度,还调度相邻单位运算及有几个间隔的单位运算使在同一时钟内各运算不发生重叠。
14.如权利要求13所述的用于图像处理装置的编译程序还包含如下控制,即
控制运算流水线的调度从而至少使用3个运算流水线对一个单位运算进行运算,以在使用2个运算流水线进行运算时所用的一半的时钟周期内完成处理。
15.如权利要求13所述的图像处理装置,还包含如下控制,即
调换运算的顺序,控制调度,从而至少使用3个运算流水线对上述单位运算进行处理,使单位运算k+1的各个运算先于单位运算k的各个运算被执行。
16.一种图像处理方法,其特征在于具有如下步骤:
向构成对输入的图像数据进行运算的构成多个运算流水线的各个运算流水线供给外部供给的上述图像数据的一部分,为了保证由多个运算构成的从1到n(n是正整数)的n个单位运算中的构成单位运算k(1<k<n)到单位运算n的(n-k+1)个单位运算的上述多个运算在同一流水线中的同一运算时间里不重叠而进行调度,
按上述调度来控制上述图像数据的运算。
17.如权利要求16所述的图像处理方法,其特征在于:
至少在上述图像数据输入后到被调度为止的期间,至少存储其一部分。
18.如权利要求16所述的图像处理方法,还包含如下控制,即在上述调度时控制上述多个运算流水线的处理,从而为了保证作为上述同一运算时间的每个时钟内构成同一个上述单位运算的各个运算在同一运算流水线内不重叠而对其进行调度,并且还进行调度从而相邻单位运算或有几个间隔的单位运算在同一时钟内各个运算不发生重叠。
19.权利要求18所述的图像处理方法,其特征还在于:
在进行上述调度时,控制运算流水线的调度,从而至少使用3个运算流水线对一个单位运算进行运算,以在使用2个运算流水线进行运算时所用的一半的时钟周期内完成处理。
20.如权利要求18所述的图像处理方法,其特征还在于:
在进行上述调度时,调换运算的顺序控制调度以做到,至少使用3个运算流水线对上述单位运算进行运算,以使单位运算k+1的各个运算先于单位运算k的各个运算被执行。
CN02121781A 2002-01-22 2002-05-31 图像处理装置和方法以及用于该装置的编译程序 Pending CN1434380A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002013001A JP2003216943A (ja) 2002-01-22 2002-01-22 画像処理装置、この装置に用いられるコンパイラおよび画像処理方法
JP013001/2002 2002-01-22

Publications (1)

Publication Number Publication Date
CN1434380A true CN1434380A (zh) 2003-08-06

Family

ID=19191778

Family Applications (1)

Application Number Title Priority Date Filing Date
CN02121781A Pending CN1434380A (zh) 2002-01-22 2002-05-31 图像处理装置和方法以及用于该装置的编译程序

Country Status (6)

Country Link
US (1) US6762764B2 (zh)
EP (1) EP1333381A3 (zh)
JP (1) JP2003216943A (zh)
KR (1) KR20030064239A (zh)
CN (1) CN1434380A (zh)
TW (1) TW569149B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102981961A (zh) * 2005-06-30 2013-03-20 英特尔公司 用于微拼接的存储器访问的存储器控制器接口
CN108701029A (zh) * 2016-02-29 2018-10-23 奥林巴斯株式会社 图像处理装置

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7299458B2 (en) * 2002-10-31 2007-11-20 Src Computers, Inc. System and method for converting control flow graph representations to control-dataflow graph representations
US6985150B2 (en) * 2003-03-31 2006-01-10 Sun Microsystems, Inc. Accelerator control unit configured to manage multiple hardware contexts
JP3756888B2 (ja) * 2003-04-17 2006-03-15 株式会社東芝 グラフィックスプロセッサ、グラフィックスカード及びグラフィックス処理システム
KR100831417B1 (ko) * 2003-12-01 2008-05-22 비욘드 이노베이션 테크놀로지 씨오., 엘티디. 이미지 축소 프로세싱 회로를 위한 방법
US8704837B2 (en) * 2004-04-16 2014-04-22 Apple Inc. High-level program interface for graphics operations
US8134561B2 (en) 2004-04-16 2012-03-13 Apple Inc. System for optimizing graphics operations
US8446417B2 (en) 2004-06-25 2013-05-21 Nvidia Corporation Discrete graphics system unit for housing a GPU
US7663633B1 (en) * 2004-06-25 2010-02-16 Nvidia Corporation Multiple GPU graphics system for implementing cooperative graphics instruction execution
US8941668B2 (en) * 2004-06-25 2015-01-27 Nvidia Corporation Method and system for a scalable discrete graphics system
US8411093B2 (en) * 2004-06-25 2013-04-02 Nvidia Corporation Method and system for stand alone graphics independent of computer system form factor
US7685632B2 (en) * 2004-10-01 2010-03-23 Microsoft Corporation Access authorization having a centralized policy
US7904956B2 (en) 2004-10-01 2011-03-08 Microsoft Corporation Access authorization with anomaly detection
US8181219B2 (en) * 2004-10-01 2012-05-15 Microsoft Corporation Access authorization having embedded policies
US7542042B1 (en) * 2004-11-10 2009-06-02 Nvidia Corporation Subpicture overlay using fragment shader
GB0425204D0 (en) * 2004-11-15 2004-12-15 Falanx Microsystems As Processing of 3-dimensional graphics
JP4327175B2 (ja) * 2005-07-12 2009-09-09 株式会社ソニー・コンピュータエンタテインメント マルチグラフィックプロセッサシステム、グラフィックプロセッサおよび描画処理方法
US7512773B1 (en) 2005-10-18 2009-03-31 Nvidia Corporation Context switching using halt sequencing protocol
US7916146B1 (en) * 2005-12-02 2011-03-29 Nvidia Corporation Halt context switching method and system
US9081609B2 (en) * 2005-12-21 2015-07-14 Xerox Corporation Image processing system and method employing a threaded scheduler
JP2008098911A (ja) * 2006-10-11 2008-04-24 Sony Corp 画像処理装置および方法、並びにプログラム
KR100791411B1 (ko) * 2006-12-07 2008-01-07 한국전자통신연구원 그래픽스 처리장치 및 방법
JP2008299610A (ja) * 2007-05-31 2008-12-11 Toshiba Corp マルチプロセッサ
US8754895B2 (en) * 2008-09-09 2014-06-17 Sony Corporation Pipelined image processing engine
JP5185242B2 (ja) * 2009-12-04 2013-04-17 株式会社東芝 コンパイル装置
JP5632651B2 (ja) * 2010-05-19 2014-11-26 スパンション エルエルシー 半導体回路及び設計装置
JP5051327B1 (ja) * 2012-03-22 2012-10-17 富士ゼロックス株式会社 画像処理装置及びプログラム
JP6378515B2 (ja) 2014-03-26 2018-08-22 株式会社メガチップス Vliwプロセッサ
US9710876B2 (en) 2015-01-16 2017-07-18 Intel Corporation Graph-based application programming interface architectures with equivalency classes for enhanced image processing parallelism
US9818166B2 (en) 2015-01-16 2017-11-14 Intel Corporation Graph-based application programming interface architectures with producer/consumer nodes for enhanced image processing parallelism
JP6724908B2 (ja) * 2015-05-12 2020-07-15 日本電気株式会社 アクセラレータ制御装置、アクセラレータ制御方法およびプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5197140A (en) * 1989-11-17 1993-03-23 Texas Instruments Incorporated Sliced addressing multi-processor and method of operation
KR100186916B1 (ko) * 1994-02-14 1999-05-01 모리시다 요이치 신호처리장치
WO1995028686A1 (en) * 1994-04-15 1995-10-26 David Sarnoff Research Center, Inc. Parallel processing computer containing a multiple instruction stream processing architecture
KR0173247B1 (ko) * 1995-12-20 1999-03-20 배순훈 파이프 라인 구조를 가지는 다중 프로세서 화상 처리장치
US6567564B1 (en) * 1996-04-17 2003-05-20 Sarnoff Corporation Pipelined pyramid processor for image processing systems
DE19832831A1 (de) * 1997-12-05 1999-06-10 Hewlett Packard Co Dynamisches Disponieren von Arbeit in einem mehrstufigen Prozessor
CN1112654C (zh) * 1998-06-25 2003-06-25 松下电器产业株式会社 图像处理装置
US6212611B1 (en) * 1998-11-03 2001-04-03 Intel Corporation Method and apparatus for providing a pipelined memory controller

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102981961A (zh) * 2005-06-30 2013-03-20 英特尔公司 用于微拼接的存储器访问的存储器控制器接口
CN102981961B (zh) * 2005-06-30 2016-08-31 英特尔公司 用于微拼接的存储器访问的存储器控制器接口
CN108701029A (zh) * 2016-02-29 2018-10-23 奥林巴斯株式会社 图像处理装置

Also Published As

Publication number Publication date
KR20030064239A (ko) 2003-07-31
US6762764B2 (en) 2004-07-13
EP1333381A2 (en) 2003-08-06
TW569149B (en) 2004-01-01
US20030137518A1 (en) 2003-07-24
JP2003216943A (ja) 2003-07-31
EP1333381A3 (en) 2010-11-10

Similar Documents

Publication Publication Date Title
CN1434380A (zh) 图像处理装置和方法以及用于该装置的编译程序
JP7210078B2 (ja) プログラム可能な最適化を有するメモリネットワークプロセッサ
CN1148647C (zh) 数据处理系统及其控制方法
Kapasi et al. The Imagine stream processor
US7200837B2 (en) System, method and software for static and dynamic programming and configuration of an adaptive computing architecture
CN108268278A (zh) 具有可配置空间加速器的处理器、方法和系统
CN1272705C (zh) 包括纯量算术逻辑单元的单指令多数据处理机
Page Reconfigurable processor architectures
KR20220042424A (ko) 재구성가능 아키텍처들을 위한 컴파일러 플로우 로직
US20230394615A1 (en) Task execution in a simd processing unit with parallel groups of processing lanes
Javaid et al. Optimal synthesis of latency and throughput constrained pipelined MPSoCs targeting streaming applications
US20160239461A1 (en) Reconfigurable graph processor
Sunitha et al. Performance improvement of CUDA applications by reducing CPU-GPU data transfer overhead
Gou et al. SAMS multi-layout memory: providing multiple views of data to boost SIMD performance
Balasubramanian et al. CRIMSON: Compute-intensive loop acceleration by randomized iterative modulo scheduling and optimized mapping on CGRAs
KR20190101409A (ko) 이미지 프로세서 런타임 효율성을 개선하기 위한 프로그램 코드 변환
Lee et al. NP-CGRA: Extending CGRAs for efficient processing of light-weight deep neural networks
CN118035618B (zh) 数据处理器、数据处理方法、电子设备、存储介质
Yang et al. ISOSceles: Accelerating sparse CNNs through inter-layer pipelining
WO2016024508A1 (ja) マルチプロセッサ装置
Song et al. Gpnpu: Enabling efficient hardware-based direct convolution with multi-precision support in gpu tensor cores
CN1297889C (zh) 信息处理装置以及机器语言程序变换装置
Guo Mapping applications to a coarse-grained reconfigurable architecture
CN1650257A (zh) 互换地址寄存器所存内容的方法和设备
CN102184090A (zh) 一种动态可重构处理器及其固定数的调用方法

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication