CN1146785C - 并行数据处理 - Google Patents

并行数据处理 Download PDF

Info

Publication number
CN1146785C
CN1146785C CNB008009430A CN00800943A CN1146785C CN 1146785 C CN1146785 C CN 1146785C CN B008009430 A CNB008009430 A CN B008009430A CN 00800943 A CN00800943 A CN 00800943A CN 1146785 C CN1146785 C CN 1146785C
Authority
CN
China
Prior art keywords
instruction
data
processor
instruction word
data processing
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.)
Expired - Lifetime
Application number
CNB008009430A
Other languages
English (en)
Other versions
CN1306641A (zh
Inventor
M・杜兰顿
M·杜兰顿
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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
Priority claimed from US09/282,325 external-priority patent/US6349378B1/en
Priority claimed from US09/333,633 external-priority patent/US6405301B1/en
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN1306641A publication Critical patent/CN1306641A/zh
Application granted granted Critical
Publication of CN1146785C publication Critical patent/CN1146785C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30116Shadow registers, e.g. coupled registers, not forming part of the register space
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Image Processing (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

一种数据处理设备(DPA)包括多个用于执行并行运算(O)的数据处理器(P)。处理器执行的操作由送到数据处理器(P)的指令字(IW)确定。该种数据处理设备(DPA)包括根据指令字组合软件(IWCS)进行的指令字组合(VLIW)的控制处理器(CP)。指令字组合定义了并行处理的运算。指令字组合软件的存储比诸如VLIW的存储通常需要较小的空间。从这点所节省的成本通常比相关的处理指令字组合的控制处理器所需成本要多。因此,上文描述的数据处理会产生较好的性能价格比。

Description

并行数据处理
技术领域
本发明涉及一种数据处理设备(DPA)包括多个用于执行并行运算(0)的数据处理器(P)。处理器执行的操作由送到数据处理器(P)的指令字(IW)确定。
技术背景
专利号为0,373,714的欧洲专利文件(律师记录号PHN12.762)描述的数据处理器包括多个并行运算的处理器单元。数据处理器进一步包括每一个处理器单元单元的程序存储器。程序存储器包括宏指令。激活的宏指令控制处理器单元的运算。程序存储器连接到两个线上。在这些线上,存储器的复位信号可以使如地址计数器回到初始位置。因此各种程序的开始都被同步了。按这种连接,还可以出现初始化信息,在此可以寻址到一个给定地址的按顺序写满程序信息的存储区。
发明内容
本发明的一个目的是提供一种性能价格比较好的数据处理设备。
下述的方面是本发明考虑的要点。通常数据处理设备通过一系列处理步骤来完成某种数据处理功能。在处理步骤中,每一个处理器完成一项特定的运算。因此,在每一个处理步骤中,存在一个指令字给每一个处理器。在处理步骤中的指令字组合可以认为是一个超长指令字(VLIW)。
在技术背景中,提到了每一个处理器单元的程序存储器并且每一个程序存储器包括一个用于每一个处理步骤的指令字。也就是,程序存储器可以看作是每一个处理步骤所包含的VLIW的全部。相应地,程序存储器相对比较大,因此,它们的成本耗费高。特别是当存在许多处理步骤或许多处理器应用时。如果处理步骤和处理器都较多时,就更甚了。
更进一步,因为在技术背景中提到的程序存储器相对较大,将它们和数据处理单元放在一个单一的集成电路中的可能性不大。在程序存储器和组成数据处理单元的集成电路之间必须是总线系统。总线系统在每一个过程步骤中必须携带一个VLIW。从而总线系统必须在单位时间内携带相对较多的数据。因此相对来说它是昂贵的。
根据本发明,种数据处理设备包括根据指令字组合软件进行的指令字组合的控制处理器。指令字组合定义了并行处理的运算。也就是,控制字组合构成了VLIW。
指令字组合软件的存储比诸如VLIW的存储通常需要较小的空间。从这点所节省的成本通常比相关的处理指令字组合的控制处理器所需成本要多。因此,上文描述的数据处理会产生较好的性能价格比。
如果数据处理设备是集成电路形式本发明尤其会产生较好的性能价格比。这意味着控制处理器形成了集成电路部分,因此VLIW产生于集成电路内部。相应地,位于外部存储器和集成电路之间的总线系统并不需要携带VLIW。这就放松了总线系统成本较高的带宽的要求。
本发明的另一个优点涉及以下方面。连续送到数据处理器的一系列VLIW确定了数据处理设备所执行的数据处理器的功能。假设数据处理设备要执行一个不同的数据处理功能。在那种情况下,一个新系列的VLIW必须送到数据处理器。如果这样的VLIW存储于程序存储器中,如同背景技术中所述,程序存储器中的VLIW需要被新的VLIW所代替。通常这将耗费较多的劳动和时间。相反,在本发明中,只有所写程序中的指令字需要被新的指令字组合程序代替即可。相比上述替换一系列VLIW来说这将大大减少劳动和时间的耗费。因此本发明可以更广泛地简单的使用。
可以任选用来实施本发明以展示本发明优点的本发明的和附加的特征根据以下附图是显见的,并参照附图加以说明。
附图说明
附图1a,1b示出了如权利要求1中所述的本发明的基本特征的概念图。
附图2,3和4示出了分别如权利要求2,3,和4中所述的附加特征的概念图。
附图5示出了根据本发明的多媒体处理器的例子的方框图。
附图6示出了用于附图5中多媒体处理器的视频输出单元的编程方案的矩阵。
附图7示出了视频输出单元必须输送到显示设备的帧的概念图。
附图8示出了施加到视频输出单元内的主控制处理器的一系列主要的指令的流程图。
附图9示出了主控制处理器的实施方框图。
附图10示出了主控制处理器的各种类型指令和这些指令中的各个位之间的关系表。
具体实施方式
下面叙述涉及参考符号。在所有附图中实物用字母参考表示。在一个图中可能会出现几个相同的实物。在那种情况下,给字母参考增加数字或下标来区分实物。当数字或下标的意义不重要时(是无关值),为了方便可以将它们省略或用*号代替。这也适用于权利要求的叙述中。
附图1a,1b用实线示出了本发明的基本特征。一种数据处理设备(DPA)包括多个用于执行并行运算(0)的数据处理器P。处理器执行的操作0由送到数据处理器(P)的指令字(IW)确定。该种数据处理设备DPA包括根据指令字组合软件IWCS进行的指令字组合(VLIW)的控制处理器CP。指令字组定义了并行处理的运算0。附图1a示出了一个在时间T=t[i]时施加到数据处理器P的指令字组VLIW[x]。附图1b示出了一个在时间T=t[i+1]时施加到数据处理器P的不同的控制字组VLIW[y]。
为了方便地实现附图1a,1b中所述的特征,必须考虑下面各点。在原理上,数据处理设备DPA能够执行不同的数据处理功能。每一个数据处理功能通常需要一个连续施加的具体的VLIW系列。为每一个数据处理功能单独产生指令字组合软件IWCS的是可能的。用于具体数据处理功能的指令字组合软件IWCS的接着产生所需要的VLIW系列。
在实际中,数据处理设备通常用于处理一种具体的数据形式,如,视频数据。在这种应用中,数据处理设备应该能够执行的不同的数据处理功能之间存在某种程度的共性。也就是,尽管不同的数据处理功能需要不同的VLIW系列,不同的VLIW系列将具有共同的单元,即成为VLIW或VLIW子系列的单元。
附图2示出的下列特征可以任意地应用于附图1a,1b。数据处理设备包括用于存储指令字组合子程序SROU的程序存储器PMEM。指令字组合子程序SROU使控制处理器CP至少产生一个指令字组合VLIW。
附图2的特征具有以下优点。一系列用于数据处理功能的VLIW可以被描述成是一系列将被执行的子程序。因此,可以通过确定一个新的子程序系列来得到新的数据处理功能。这将比独立产生指令字组合程序要少费时少费力。相应地,附图2中所述的特征可以方便使用。
附图2中所述特征的另一个优点涉及下列方面。用子程序系列来描述用于数据处理功能的VLIW系列所需要的数据相对较少。因此,它用来存储这些数据的存储器空间也相对较小。更进一步数据必须施加到控制处理器的比率相对较低。这就缓解了对通过控制处理器接收数据的任何总线系统的要求。因此,附图2中所述的特征可以减低成本。
为了方便地实现附图1a,1b中所述的特征,还必须进一步考虑下面各点。在实际中,数据处理器P通常有一个控制寄存器,控制寄存器的内容确定了数据处理器P的运算。因此,控制处理器CP可以通过将指令字IW写入到各个控制寄存器来编写一个VLIW。在实际中,控制处理器CP在每个时钟周期内仅能够写入到相对较少的控制寄存器。例如,控制处理器CP在每一个时钟周期内仅能够写入到一个控制寄存器。因此,控制处理器CP需要几个周期来编写一个VLIW。实际上,控制处理器接着每时钟周期产生一个过度的VLIW。
假设当控制处理器CP已经将指令字IW写入到控制寄存器且该指令字IW立即产生效力。在那种情况下,在控制处理器CP编写VLIW时,应该没有任何的数据处理。这是为了阻止过度的VLIW影响数据处理。相应地,如果指令字IW立即产生效力,新的VLIW可以要求一个相对长的数据处理暂停。这特别地会发生在当新的VLIW与前面的VLIW大不相同的情形中。
附图3示出的下列特征可以任意地应用于附图1a,1b。数据处理器P有一个前寄存器FREG,控制处理器CP可以将指令字IW写入前寄存器FREG中。进一步数据处理器P有一个阴影寄存器,阴影寄存器的内容确定了数据处理器P的运算。阴影寄存器SREG接收来自前寄存器的指令字IW以响应来自控制处理器CP的加载命令LC。
附图3的特征具有以下优点。当控制处理器CP已经将指令字IW写入到前寄存器FREG中时,指令字并不马上发生效力。指令字仅当它被传输到阴影寄存器时才发生效力。相应地,在数据处理器P根据当前存储在阴影寄存器SREG中的VLIW来处理数据的同时,主控制处理器MCP可以写指令字到前寄存器中,并因此编写一个新的VLIW。仅当指令字被从前寄存器FREG传输到阴影寄存器时,任何数据的处理必须停止。这个传输可以并行地进行,因此仅在一个时钟周期内即可完成传输。相应地,数据处理设备可以投入相对高的百分比的时间用于进行上述的数据处理。因此,附图3中所述的特征有利于数据处理的效率。
为了有利地实现附图1a,1b中所述的特征,已进一步考虑下面各点。在此之前曾经提到控制处理器CP可以通过将指令字写入到属于各个数据处理器的控制寄存器中来编写VLIW。在实际中,控制处理器CP将包括一个代数逻辑单元用于执行属于指令字组合软件IWSC的指令。这个指令字组合软件IWSC可以包括写指令,用来将每一个指令字IW写入到控制寄存器。在那种情况下,代数逻辑单元需要执行相对较多的写指令以便来编写VLIW。因此该代数逻辑单元用于执行其他类型的指令的时间就相对较少。
附图4示出的下列特征此外可以任意地应用于附图1a,1b。控制处理器CP包括直接存储器存取电路DMAC。直接存储器存取电路DMAC可以自动地从存储器MEM中将指令字IW的块B传输到各个数据处理器P中。
附图4的特征具有以下优点。如果需要写一个相对大的指令字IW系列,控制处理器CP可以利用直接存储器存取电路DMAC。建立指令字IW传输的直接存储器存取电路DMAC通常需要较少的指令。因为直接存储器存取电路DMAC可以自动地执行传输,则控制处理器CP的其他部分,例如,代数逻辑单元,就可以执行其他任务。相应地,附图4中所述的特征可以有效地利用控制处理器CP。
附图5示出了一个多媒体处理器的例子,其中综合了此前附图1-4中所述的特征。多媒体处理器处理包括编码视频数据的输入数据IN,从而在其他事情之间,提供适于在显示设备上显示的视频数据流。多媒体处理器包括主接口MIF,主总线HWY,中央处理单元CPU,主指令存储器REG和各种主处理器。图中示出了两个主处理器:视频解码器VDEC和视频输出单元HDVO。视频输出单元包括主控制处理器MCP和下列数据处理单元:接口IF,读纵横XB/W,写纵横XB/R,存储器块B,处理器P,和流出电路SO。流出电路SO包括缓存器BUF,多路复用器MUX和控制器CON。每一个数据处理单元有一个控制寄存器。这些控制寄存器在附图5中没有示出,它们的结构如附图3所示。即,控制寄存器包括前寄存器和阴影寄存器。
多媒体处理器基本地运算如下。中央处理单元CPU通过主指令字来控制多媒体处理器的各种单元。主接口MIF从诸如外部主存储器的单元处取得输入数据。在附图5中该存储器未示出。视频解码器VDEC将包含在输入数据内达到编码数据进行解码。相应地,可以获得解码后的视频数据,这些解码后的视频数据可以暂时存储在外部主存储器中。视频输出单元HDVO将已解码的视频数据送到具体的显示设备进行显示。而且,视频输出单元HDVO可以将解码后的视频数据与其他的视频数据进行综合进而可以提供画中画或混合的特点。
现在进一步详细解释视频输出单元HDVO的运算。视频输出单元HDVO交替地执行配置步骤和处理步骤。在配置步骤里,主控制处理器MCP提供一个加载命令给数据处理单元的控制寄存器。此前曾提到每一个控制寄存器包括一个前寄存器和一个阴影寄存器,如附图3所示。因此,阴影寄存器响应加载命令加载一个包含在前寄存器中的指令字。相应地,这个指令字将确定与在进行配置步骤的处理步骤期间相关的数据处理单元的运算。例如,加载到纵横XB/W和XB/R的阴影寄存器的指令字一方面确定了存储器块MB和处理器P的连接,另一方面也确定了接口IF,流出电路SO和处理器P之间的连接。当控制寄存器的阴影寄存器已经加载了指令字时,它就提供一个已配置信号给主控制处理器MCP。当主控制处理器MCP接收到所有数据处理单元的控制寄存器的已配置信号时,它就提供一个开始处理的信号给处理器P。这个开始处理的信号标志着处理步骤的开始。
在处理步骤里,每一个处理器P处理一个存储在存储器块MB中的具体数目的象素,存储器块MB和处理器P是相连的。在一个处理步骤中处理器P处理的象素的数目不超过256。所处理的象素的数目可以通过诸如指令字来确定。在处理器处理象素的同时,主控制处理器MCP可以通过写新指令字到数据处理单元的前寄存器来编写一个新的VLIW。当处理器P完成了规定的象素的处理后,它将停止处理并产生一个运算完成信号给主控制处理器MCP。当所有的处理器P都将运算完成信号加到主控制处理器MCP后处理步骤就结束了。然后,主控制处理器MCP将执行一个新的配置步骤。
相应地,视频输出单元HDVO通过块方法处理已解码的视频数据。例如,在第一个处理步骤中,接口IF通过写纵横XB/W写一个256象素的块到存储器块MB1。在第二个处理步骤中,处理器P1从存储器块MB1中读取这个256象素的块并处理它。处理器P1可以是,例如,产生属于同一线上的几个象素的加权综合的水平视频滤波器。相应地,处理器P1提供水平滤波后的象素块并将其写入到存储器块MB2。在第三个处理步骤内,处理器P2从存储器块MB2内读取处理过的水平滤波的象素块并处理它。处理器P2可以是,例如,产生属于相邻的线上的相关象素的加权综合的垂直视频滤波器。如果水平滤波后的象素块属于一条线,处理器P2就读取其他的属于相邻线的水平滤波后的象素块。相应地,处理器P2提供一个水平和垂直滤波后的象素块并将其写入到存储器块MB3中。还可能有进一步的步骤即处理器P3或P4,或二者都有,进一步处理包括在存储器块MB3中的经过水平和垂直滤波后的象素块。例子中的方法,假设水平和垂直滤波后的象素块已经准备好形成部分视频流VDS。相应地,在第四处理步骤中,所关心的块将从存储器块MB3传输到流出单元电路SO的缓存BUF中。
流出电路SO通常接收每一个处理步骤中处理后的象素块并将它存储在缓存BUF中。流出电路SO将处理后的象素从其缓存器读出并提供给视频数据流VDS。控制器CON已经知道视频数据流VDS所需要的格式,例如,行频率,场频率,每行的象素数,及每场的行数。控制器使处理后的象素可以在适当的瞬间以所需的比率从缓存BUF中读出。控制器进一步控制多路复用器MUX,多路复用器MUX接收象素和几个控制信号,诸如,水平和垂直同步HS,VS。相应地,合适的控制信号在适当的瞬间被插入到象素间。
实际上,视频输出单元HDVO是一个数据处理链,它包括数据处理单元:接口IF,读取纵横XB/W,写入XB/W纵横,存储器块MB,处理器P,和流出电路SO。主控制处理器MGP确定数据处理链的组成。它还确定链中每一个单元的数据处理的特点。主控制处理器MCP通过将适当的指令字写入到数据处理单元的控制寄存器来完成上述任务。从比喻的角度来看,主控制处理器MCP可以看作是装有各种机器的产品大厅的领班。产品大厅就象视频输出单元HDVO且机器就象视频输出单元HDVO内的数据处理单元。领班编写产品线并指令机器该做什么。生产线就象数据处理链。
假设视频输出单元HDVO根据每帧线数和每线的象素数必须将一个单一的视频信号从一种格式转换成另一种格式。这可以通过包括适当的水平和垂直滤波的数据处理链达到。在格式转换的开始,在数据处理链充分运算之前必须首先被充满象素。在格式转换结束后,在数据处理链停止或它可能断掉之前必须要被清空。
例如,当转换的视频信号的第一个象素块被送到视频输出单元HDVO时,只应激活在数据处理链的开始部分的数据处理单元。在那时,存储器块MB可能还没有充满该帧。通过每一个处理步骤,越来越多的存储器块将被充满象素并且越来越多的数据处理单元被激活。这一直持续到数据处理链中的每一个存储器块都被充满象素为止。然后数据处理链充分运算并且流出电路SO可以开始提供象素。
附图6说明用于视频输出单元HDVO的编程原理。附图6时一个矩阵。这个矩阵的列代表数据处理单元。更具体地,一个列代表和数据处理单元相关的阴影寄存器。矩阵的行代表处理步骤PS。矩阵的单元代表指令字。一个VLIW是属于矩阵某个行的单元的组合,也就是,一个VLIW是用于某个处理步骤PS的的指令字的组合。VLIW确定了数据处理单元相关的可以并行执行的运算。
主控制处理器MCP可以用各种方法编写VLIW。例如,主控制处理器MCP可以通过将指令字写入到每一个控制寄存器来为一个具体的处理步骤编写一个VLIW。但是,主控制处理器MCP也可以通过将指令字写入到一个或多个特定的控制寄存器,而不是将指令字写入到其余的控制寄存器来编写VLIW。后者控制寄存器保留前以处理步骤中得到的指令字。
附图6中示出的矩阵可以相当于显示中的诸如帧的显示。处理步骤PS[1]是为了显示一个帧所执行的第一个处理步骤,处理步骤PS[N]是最后的处理步骤。例如,假设一个具有700行且每行1024个象素的帧。进一步假设,在一个处理步骤中,典型地256输出象素传输到流出电路SO。这就意味着在每个视频信号中每线典型地需要4个处理步骤PS并且,相应地每帧将有四次700个处理步骤,即每帧需要2800个处理步骤:N=2800。
最初的几个处理步骤PS用于形成显示一个帧的初始相位以及最后的几个处理步骤用于形成关闭相位。正如这以前所述,处理链必须一步一步地被充满和清空。这就是说,在初始相位和关闭相位中,至少存在一个数据处理单元在其中的一个处理步骤中的一个指令字被后续的处理步骤中的不同的指令字所代替。这进一步说明,在初始相位和关闭相位中,每一个处理步骤会存在不同的VLIW。在初始相位和关闭相位之间的处理步骤也可以要求各种不同的VLIW。如果在整个帧都使用相同的处理链,则在初始相位和关闭相位之间的所有处理步骤就可以使用一个单一的VLIW。这种情况会发生在,例如,如果视频输出单元HDVO仅需要将一个单一的视频信号从一种形式转换到另一种形式时。
附图7说明视频输出单元HDVO需要转送给显示设备的一个帧。这个帧包括插入了子画面SPIC的主画面MPIC。附图7进一步示出了在帧中的不同帧域FZ1-FZ6。每一个帧域FZ涉及一个根据附图5中所示的主控制处理器MCP所执行控制动作的具体的相位。
在帧域FZ1,主控制处理器MCP建立用于显示主画面MPIC的处理链。在帧域FZ2,主控制处理器MCP保持后一个的处理链。帧域FZ2包括X行,X是整数。在帧域FZ3,主控制处理器MCP将用于显示主画面MPIC的处理链断掉并建立一个用于显示插入了子画面SPIC的主画面MPIC的处理链。在帧域FZ4,主控制处理器MCP保持后一个处理链。帧域FZ4包括Y行,Y是整数。在帧域FZ5,主控制处理器MCP将用于显示插入了子画面SPIC的主画面MPIC的处理链断掉并建立一个用于显示主画面MPIC的处理链。在帧域FZ6,主控制处理器MCP保持后一个处理链。帧域FZ6包括Z行,Z是整数。
附图8示出了一系列传输到主控制处理器MCP的主指令MI1-MI8,这样主控制处理器MCP就可以执行此前所述的控制动作。主指令MI1使主控制处理器MCP执行存储于内部存储器的子程序STRT-MAIN。主指令MI1可以是,诸如,子程序STRT-MAIN的开始地址。子程序STRT-MAIN的执行产生一系列用于帧域FZ1中处理步骤的VLIW。对于每一个处理步骤,产生不同的VLIW并将其送到视频输出单元HDVO的数据处理单元。这个VLIW系列使显示主画面的处理链按照处理步骤一步一步建立起来。
主指令MI2使主控制处理器MCP连续执行X次子程序MAIN:XxMAIN。子程序MAIN的执行产生一个用于包含于一行内的处理步骤的VLIW。相应地,这个VLIW用于整个帧域FZ2内。它使数据处理单元执行显示主画面MPIC所需的处理。
主指令MI3使主控制处理器MCP执行子程序END-MAIN。子程序END-MAIN的执行产生一系列用于包含在帧域FZ3上部分的处理步骤的VLIW。对于每一个处理步骤,将产生不同的VLIW并送到视频输出单元HDVO的数据处理单元。这个VLIW系列使显示主画面的处理链按照处理步骤一步一步地被断掉。
主指令MI4使主控制处理器MCP执行子程序STRT-PIP。子程序STRT-PIP的执行产生一系列用于包含在帧域FZ3下部分的处理步骤的VLIW。对于每一个处理步骤,将产生不同的VLIW并送到视频输出单元HDVO的数据处理单元。这个VLIW系列使显示带子画面SPIC插入的主画面的处理链按照处理步骤一步一步建立起来。
主指令MI5使主控制处理器MCP连续执行Y次子程序PIP:YxPIP。子程序PIP的执行产生一个用于包含于一行内的处理步骤的VLIW。相应地,这个VLIW用于整个帧域FZ4内。它使数据处理单元执行显示带子画面SPIC插入的主画面MPIC所需的处理。
主指令MI6使主控制处理器MCP执行子程序END-PIP。子程序END-PIP的执行产生一系列用于包含在帧域FZ5上部分的处理步骤的VLIW。对于每一个处理步骤,将产生不同的VLIW并送到视频输出单元HDVO的数据处理单元。这个VLIW系列使显示带子画面SPIC插入的主画面的处理链按照处理步骤一步一步地被断掉。
主指令MI7使主控制处理器MCP再次执行此前已经描述过的子程序STRT-MAIN。主指令MI8使主控制处理器MCP连续执行Z次子程序MAIN:ZxMAIN。此前已经描述过了的子程序MAIN。
前面已经提到过,从比喻的角度来看,主控制处理器MCP可以看作是装有各种机器的产品大厅的领班。产品大厅就象视频输出单元HDVO且机器就象视频输出单元HDVO内的数据处理单元。从这种比喻的方法来看,主指令MI可以看作是领班从管理者那里接收到的生产命令。领班将生产命令翻译成机器的指令。多个指令同时执行,即相对VLIW来说是并行地。
主指令MI1可以看作是启动产品A的生产线的命令。主指令MI2可以看作是在这个生产线上生产产品A的X个样品的命令。主指令MI3和MI4可以看作是停止产品A的生产线并启动产品B的生产线的命令。主指令MI5可以看作是在这个生产线上生产产品B的Y个样品的命令,等等。
附图9示出了附图5中所示的主控制处理器MCP的实施方框图。主控制处理器MCP通过附图5所示的主总线HWY和视频输出单元HDVO外部的单元进行通信。例如,主控制处理器MCP可以通过主总线HWY接收主指令。主控制处理器MCP通过控制总线CBUS和视频输出单元HDVO内部的数据处理单元进行通信。例如,主控制处理器可以通过控制总线CBUS将指令字发送给数据处理单元。主控制处理器MCP可以进一步通过连接XC接收和发送数据到视频输出单元HDVO的存储器块MB。
主控制处理器MCP包括主总线接口HWYINT,控制总线接口CBUSINT,代数逻辑单元ALU,包括程序计数器PC在内的寄存器REG组件,中断单元IU组件,计算堆栈CSTCK,返回堆栈RSTCK,程序存储器PMEM,数据存储器DMEM和直接存储器存取电路DMAC。计算堆栈CSTCK和返回堆栈RSTCK各有一个堆栈指针。堆栈指针确定了和堆栈相关的顶位置和第二位置。计算堆栈CSTCK的顶位置和第二位置从此处以后称分别为TOS和SOS。返回堆栈RSTCK的顶位置和第二位置从此处以后称分别为TOR和SOR。
主控制处理器MCP基本地运算如下。程序计数器PC包含一个随着每一个时钟周期典型地增加的程序计数数值。程序计数数值可以通过在程序计数器PC中写入一个新的程序计数数值来改变。程序计数数值可以为程序存储器PMEM建立一个地址,在程序存储器PMEM中存储了用于主控制处理器MCP的指令。这些指令从此处以后称为MCP指令。一个MCP指令确定了代数逻辑单元ALU所要执行的运算。它进一步可以确定控制返回堆栈RSTCK和计算堆栈的运算,在后面会更详细的说明。此前所述的产生VLIW的子程序是由MCP指令集形成的。
下面是用于MCP指令的语法的例子。一个MCP指令包括24位:b23-b0。位23确定MCP指令是有条件的还是无条件的。如果一个MCP指令的位23的数值是0(零)则这个MCP指令是无条件的。无条件的MCP指令总是被执行的。如果一个MCP指令的位b23的数值是1(一)则这个MCP指令是有条件的。仅当某个寄存器的最低有效位的值为0(零)时有条件MCP指令才被执行。位b22,b21,和b12用来区分不同类型的MCP指令。任何类型的MCP指令都可以时无条件的或有条件的。如果MCP指令的位b22的值位1(一)则该MCP指令时0型指令。0型指令用于将数据写入到内部存储器区,例如,内部存储器区可以是寄存器。0型指令的位b21-b12构成要写入的数据。位b11-b0确定数据写入的存储器区的地址。如果存储器区的大小多于十位,则数据是扩展的标志。
如果位b22和b21都是零(0)则MCP指令是1型指令或1A型指令。1型和1A型指令用于处理数据。MCP指令是1型指令,如果此外位b12的值为零(0)。1型指令的位b11-b0确定一个地址。存储于该地址的数据形成代数逻辑单元ALU的输入数据。MCP指令是1A型指令,如果位b12的值为一(1)。1A型指令的位b11-b0代表数据。这个数据形成代数逻辑单元ALU的输入数据。在这个数据被送到代数逻辑单元ALU之前,可以被标志扩展成一个16位二进制字。
1型或1A型指令包括一个由b20-b17形成的操作码(opcode)部分。操作码部分根据代数逻辑单元ALU对其输入数据所执行的处理运算以及在何处存储该处理运算的结果来确定一个运算。结果或者写入到TOS或者写入到程序计数器PC。1型指令有16种不同的运算且1A型指令也有16种不同的运算。例如,一个运算可以使输入数据和TOS中的数据进行AND组合运算并将AND的结果写入到TOS。其他运算可以进行NOR,XOR,NAND,OR,XNOR组合运算。
如果位b22是零(0)且b21是一(1)则MCP指令是2型指令。2型指令用于数据传输。2型指令包括一个由位b20-b17形成的传输控制部分。传输控制部分确定了传输数据的源和目的。更具体地,位b18-b17确定源,位b20-b19确定该数据的目的地址。数据有四个源:TOS,SOS,TOR或程序计数器PC。目的有四个地址:TOS的内容,SOS的内容,MCP指令自身的位b11-b0带或不带一个附加的检索值。
0型,1型,和1A型指令基本产生用于附图5中所示的视频输出单元HDVO的数据处理单元的指令字。2型数据指令主要用于传输产生用于控制数据处理单元中控制寄存器的指令字。后面的MCP指令,象以前一样,是输出的MCP指令。
1,1A和2型的MCP指令包括由位b16-b13形成的堆栈控制部分。计算堆栈CSTCK根据位b16-b15控制,而返回堆栈RSTCK根据位b14-b13控制。对计算堆栈CSTCK有四个控制动作,而对返回堆栈RSTCK有四个控制动作。位b16-b15和位b14-b13的值确定执行四个相应控制动作中的哪一个动作。
计算堆栈CSTCK的四个控制动作是Nop,Cpy,Psh和Pop。Nop控制动作不改变计算堆栈CSTCK。Cpy控制动作将TOS的内容复制到SOS。这个复制动作是在代数逻辑单元ALU执行MCP指令之前完成的。Psh控制动作递增堆栈指针。结果,堆栈的位置在指令前是TOS,在指令后则变成SOS。指令前TOS的内容在指令后被复制到一个新位置的TOS。如果由MCP指令内另一个部分确定的运算修改了TOS,则所复制的内容可以被重写。Pop控制动作递减堆栈指针。结果,堆栈的位置在指令前是SOS,在指令后则变成TOS。
返回堆栈RSTCK的四个控制动作是Rnop,Rpc,Rpsh和Rpop。Rnop控制动作不改变返回堆栈RSTCK。控制动作Rpc递增堆栈指针。一个常值被加到程序计数值上并将这个加法的结果复制到TOR。这个常值和实施有关。动作Rpsh递增堆栈指针。结果,堆栈的位置在指令前是TOR,在指令后则变成SOR。指令前TOR的内容在指令后被复制到一个新位置的TOR。如果由MCP指令内另一个部分确定的运算修改了TOR,则所复制的内容可以被重写。Rpop控制动作递减堆栈指针。结果,堆栈的位置在指令前是SOR,在指令后则变成TOR。
应该注意的是堆栈指针在算术逻辑单元执行MCP相关的指令时是递增的,而在之后则是递减的。因此,压栈型(push-type)MCP指令立即后跟一个出栈(pop-type)型MCP指令将使堆栈指令不变。
还应该注意的是,在原理中,此前所述的任何与堆栈相关的控制动作是独立于型1和1A指令部分的操作码所定义的运算而执行的。任何与堆栈相关的控制动作也是独立于型2指令的操作码所定义的数据传输而执行的。因此,许多组合都是可能的。如果操作码部分定义的运算涉及堆栈位置的内容更新,例如TOR,且在MCP的堆栈控制部分定义了涉及在同一堆栈位置的内容更新的堆栈控制动作,具有优先权是操作码部分。
附图10示出了此前所述的MCP指令的各种类型和包含在这些指令中的位b23-b21以及b12间的关系。在附图10中,用于指示MCP指令的各种类型的参考字母是:UNCOND指示无条件指令,CON指示有条件指令以及TP0,TP1,TP1A分别指示型0,型1,型1A和型2指令。附图10还包括指示后四个MCP指令性质的参考字母。型0指令负责写入数据:WRT。型1指令负责从内部存储器中读出数据并处理该数据:RD-PROC。型1A指令负责处理包含在指令中的数据,即,它负责立即处理数据IPROC。型2指令负责数据传输TRNSF。附图10还包括指示操作码部分的字母参考:OPC,传输控制部分的字母参考:WOPC,以及堆栈控制部分的字母参考:STC。
MCP指令可以使附图9中的直接存储器存储电路DMAC执行直接存储器存储部分。在直接存储器存储部分中,直接存储器存储电路DMAC自动地传输包含在存储器中的指令字块以控制在附图7中所示的视频输出单元HDVO内的各种数据处理单元的寄存器中的指令字块。MCP指令定义一个开始地址以及直接存储器存储的模式。共有三种直接存储器存储模式。
在第一种直接存储器存储模式中,直接存储器存储电路DMAC将指令字写入到具有连续地址的控制寄存器的范围内。该块的第一指令字被写入到具有开始地址的控制寄存器中,第二指令字被写入到其地址是开始地址加一的地址的控制寄存器中,等等。
在第二种直接存储器存储模式中,直接存储器存储电路DMAC将首先读出一个样板。该样板使一个二进制字,它的各位对应在控制寄存器范围内不同的且具有连续地址的控制寄存器。该范围开始于起始地址。实际上,直接存储器存储电路DMAC按照位顺序读出样板并将块中的第一指令字写入到对应所读出的值为一(1)的第一位的控制寄存器,以及将块中的第二指令字写入到对应所读出的值为一(1)的第二位的控制寄存器,等等。
在第三种直接存储器存储模式中,直接存储器存储电路DMAC在将指令字写入到控制寄存器之前读出一个偏移值。指令字被写入到其地址是控制寄存器在先写入的地址加上偏移值的控制寄存器。该块的第一指令字被写入到寄存器中,该寄存器的地址是开始地址加上第一读出的偏移值。
主控制处理器MCP最好使用直接存储器存储电路DMAC来编写一个与前面的VLIW截然不同的VLIW,或如果没有前面的VLIW。例如,直接存储器存储部分可以用来初始化视频输出单元HDVO。直接存储器存储部分阻止主控制处理器MCP自己写入相对多的指令字到控制寄存器。主控制处理器MCP代表,假设它可以,该任务到直接存储器存储电路DMAC。直接存储器存储电路DMAC将接着利用控制总线CBUS来写入指令字到控制寄存器中。因此,在直接存储器存储部分期间,主控制处理器MCP中的其他单元不能存取控制总线CBUS。
主控制处理器MCP不需要使用直接存储器存储电路DMAC来编写一个与前面的VLIW相似的VLIW。这样相似的VLIW可以通过改写相应的几个控制寄存器的内容来编写。主控制处理器MCP可以接着直接写入新的指令字到适当的控制寄存器。
因此,从编程的角度看,有两种方法编写VLIW。第一种方法是利用一个或多个MCP指令使主控制处理器MCP写入新的指令字到特定的控制寄存器。这种方法最好使用在编写相似的VLIW中。第二中方法使利用MCP指令使主控制处理器MCP初始化直接存储器存储部分。这种方法最好用于编写与前一VLIW截然不同的VLIW。或初始化视频输出单元HDVO。
此前的附图以及它们的描述说明了但并不局限本发明。则在所附的专利要求书的范围内会有很多可替代的实例,这一点是很明显的。考虑到这点,特做下述结束注释。
包括附图1所示的组合软件IWCS的指令字可以被包含在例如存储器中。它还可以在工厂就已经被写入到存储器中。但是,用户从指令载体上拷贝包括软件IWSC的指令字到存储器也是可能的。相应地,用户能使如附图1中的数据处理设备DPA执行某一功能。包含包括软件IWSC的指令字的信息载体可以是,例如,磁盘。包括软件IWSC的指令字也可以通过象互连网的通信网络得到。
在各种单元上存在许多物理地展宽功能或功能元件。从这点看,附图是很直观的。每一个仅代表本发明的一个可能的实施例。因此,尽管一个附图展示了作为不同方框的不同功能的部件,并不排除实施某些功能部件或全部的功能部件作为一个单一物理单元。
权利要求书中的任何参考标志都限制在权利要求内的解释。

Claims (5)

1.一种数据处理设备(DPA),包括多个用于执行并行运算(0)的数据处理器(P),由处理器执行的操作(0)由施加到数据处理器(P)的指令字(IW)定义,其特征是,该种数据处理设备(DPA)包括根据指令字组合软件(IWCS)进行的指令字组合(VLIW)的控制处理器(CP),指令字组合(VLIW)定义了并行处理的运算。
2.如权利要求书1中的数据处理设备,其特征是,数据处理设备包括用于存储指令字组合子程序(SROU)的程序存储器(PMEM),指令字组合子程序使控制处理器(CP)至少产生一个指令字组合。
3.如权利要求书1中的数据处理设备,其特征是,数据处理器(P)有一个前寄存器(FREG),控制处理器(CP)可以将指令字(IW)写入前寄存器(FREG)中,以及一个阴影寄存器(SREG),其内容确定了数据处理器(P)的运算,阴影寄存器(SREG)接收来自前寄存器(FREG)的指令字(IW)以响应来自控制处理器(CP)的加载命令(LC)。
4.如权利要求书1中的数据处理设备,其特征是,控制处理器(CP)包括直接存储器存取电路(DMAC),用于自动地从存储器(MEM)中将指令字(IW)的块(B)传输到若干数据处理器(P)中。
5.一种使数据处理设备(DPA)执行数据处理的方法,数据处理设备(DPA)包括控制处理器(CP)和多个处理器(DP),该方法包括步骤:控制处理器(CP)执行指令字(VLIW)的组合,所述指令字定义拟由多个处理器中的至少两个处理器执行的操作;和
由所述至少两个处理器并行执行所述组合操作。
CNB008009430A 1999-03-31 2000-03-09 并行数据处理 Expired - Lifetime CN1146785C (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US09/282,325 1999-03-31
US09/282,325 US6349378B1 (en) 1999-03-31 1999-03-31 Data processing using various data processors
US09/333,633 US6405301B1 (en) 1999-06-15 1999-06-15 Parallel data processing
US09/333,633 1999-06-15

Publications (2)

Publication Number Publication Date
CN1306641A CN1306641A (zh) 2001-08-01
CN1146785C true CN1146785C (zh) 2004-04-21

Family

ID=26961376

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB008009430A Expired - Lifetime CN1146785C (zh) 1999-03-31 2000-03-09 并行数据处理

Country Status (7)

Country Link
EP (1) EP1088266B1 (zh)
JP (1) JP2002541546A (zh)
KR (1) KR20010052436A (zh)
CN (1) CN1146785C (zh)
DE (1) DE60042230D1 (zh)
TW (1) TW504644B (zh)
WO (1) WO2000060457A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2397140A (en) * 2003-01-13 2004-07-14 Advanced Risc Mach Ltd Data processing performance control
GB2397667A (en) * 2003-01-27 2004-07-28 Imagination Tech Ltd Multiple register load using a very long instruction word
CN1809810B (zh) 2003-06-25 2010-06-09 皇家飞利浦电子股份有限公司 指令控制数据处理设备
CN101526893B (zh) * 2008-03-06 2014-02-19 华为技术有限公司 一种超长指令字指令并行执行方法及装置
US8731891B2 (en) * 2011-07-28 2014-05-20 Saudi Arabian Oil Company Cluster 3D petrophysical uncertainty modeling
US8924596B1 (en) * 2013-12-06 2014-12-30 Concurrent Ventures, LLC System and method for dividing and synchronizing a processing task across multiple processing elements/processors in hardware

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1338957A3 (en) * 1993-11-05 2003-10-29 Intergraph Corporation Software scheduled superscalar computer architecture
US5787302A (en) * 1996-05-15 1998-07-28 Philips Electronic North America Corporation Software for producing instructions in a compressed format for a VLIW processor
US6313845B1 (en) * 1998-06-30 2001-11-06 3Dlabs Inc. Ltd. Method and apparatus for transporting information to a graphic accelerator card

Also Published As

Publication number Publication date
TW504644B (en) 2002-10-01
CN1306641A (zh) 2001-08-01
JP2002541546A (ja) 2002-12-03
EP1088266B1 (en) 2009-05-20
KR20010052436A (ko) 2001-06-25
EP1088266A1 (en) 2001-04-04
DE60042230D1 (de) 2009-07-02
WO2000060457A1 (en) 2000-10-12

Similar Documents

Publication Publication Date Title
KR101791811B1 (ko) 가속기들의 낮은-레이턴시 인보크를 위한 장치 및 방법
US7437534B2 (en) Local and global register partitioning technique
US6718457B2 (en) Multiple-thread processor for threaded software applications
CN1148647C (zh) 数据处理系统及其控制方法
USRE40509E1 (en) Methods and apparatus for abbreviated instruction sets adaptable to configurable processor architecture
US20060242388A1 (en) Processor with register dirty bit tracking for efficient context switch
TWI501150B (zh) 無指令解碼而排程指令的方法和裝置
US6343348B1 (en) Apparatus and method for optimizing die utilization and speed performance by register file splitting
US20090013151A1 (en) Simd type microprocessor
CN1811745A (zh) 使能/禁止控制simd处理器切片的方法和设备
JP6967597B2 (ja) 設定可能な数のアクティブなコアを有する画像処理プロセッサおよびサポートする内部ネットワーク
CN103226463A (zh) 用于使用预解码数据调度指令的方法和装置
CN1794168A (zh) 信息处理设备、信息处理方法、半导体器件及计算机程序
CN101432760A (zh) 管理位平面资源的方法和装置
CN1146785C (zh) 并行数据处理
CN1160620C (zh) 带算术逻辑单元和堆栈的数据处理器
CN1650257A (zh) 互换地址寄存器所存内容的方法和设备
CN1151432C (zh) 包含寄存器堆栈的数据处理器 、数据处理方法以及一种控制器
CN114675888A (zh) 用于加载矩阵操作加速器瓦片的指令的装置、方法和系统
US6405301B1 (en) Parallel data processing
CN101739234B (zh) 指令模式识别装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: NXP CO., LTD.

Free format text: FORMER OWNER: ROYAL PHILIPS ELECTRONICS CO., LTD.

Effective date: 20070831

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20070831

Address after: Holland Ian Deho Finn

Patentee after: Koninkl Philips Electronics NV

Address before: Holland Ian Deho Finn

Patentee before: Koninklike Philips Electronics N. V.

CX01 Expiry of patent term

Granted publication date: 20040421

CX01 Expiry of patent term