CN1983166A - 多阶层加速器架构的处理器系统及其操作方法 - Google Patents
多阶层加速器架构的处理器系统及其操作方法 Download PDFInfo
- Publication number
- CN1983166A CN1983166A CN200610171715.9A CN200610171715A CN1983166A CN 1983166 A CN1983166 A CN 1983166A CN 200610171715 A CN200610171715 A CN 200610171715A CN 1983166 A CN1983166 A CN 1983166A
- Authority
- CN
- China
- Prior art keywords
- accelerator
- address
- instruction
- main
- order
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 17
- 239000000872 buffer Substances 0.000 claims description 58
- 238000012545 processing Methods 0.000 abstract description 19
- 230000010365 information processing Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- 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/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/509—Offload
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
- Executing Machine-Instructions (AREA)
Abstract
一种数字信号处理系统,以使处理器可对多个多阶层架构的加速器进行存取。该系统包括一主加速器耦接于一处理器与多个次加速器之间,该处理器可藉由传送一个仅包含主加速器识别码字段的指令对至少一个次加速器进行存取。主加速器根据储存在地址指针缓存器的地址选择至少一个次加速器中的一个。可存取的次加速器的数量依据地址指针缓存器的寻址能力决定,且不会影响处理器指令的编码空间。处理器也可利用指令中包含的立即值或偏移地址来更新或修改在地址指针缓存器的地址。
Description
技术领域
本发明涉及一种具有多阶层加速器架构的处理器系统及操作方法,特别是有关于一种数字信号处理(digital signal processing,DSP)系统,其具有一主加速器桥接于一数字信号处理器与多个次加速器间,此主加速器可协助数字信号处理器存取该至少一个次加速器。
背景技术
处理器(例如一般用途的微处理器、微电脑、或数字信号处理器)根据操作程序来处理数据。现今的电子装置通常将处理任务分配至不同的处理器。举例来说,移动式通信装置通常包括数字信号处理(digital signal processing,DSP)单元用以进行数字信号处理,例如语音编码/译码以及调变/解调变。移动式通信装置还包括一般用途的微处理单元,用以进行通信协议处理。
数字信号处理单元可与加速器整合以执行特定的任务,例如波形等化,以进一步地最佳化数字信号处理单元的效能。如图1所示,美国专利编号5,987,556揭露一种包含一个用于数字信号处理的加速器的数据处理装置,此数据处理装置包括微处理器核心120、加速器140与其输出缓存器142、内存112、以及中断控制器121。加速器140通过数据总线、地址总线、以及读取/写入控制线连接至微处理器核心120。加速器140通过读取/写入控制线而受微处理器核心120所控制,以依据地址总线的数据地址自微处理器核心120读取数据或将数据写入至微处理器核心120。当具有高优先权的中断要求传送至微处理器核心120且由微处理器核心120所承认时,先前技术的数据处理装置可利用中断控制器121来终止加速器140与微处理器核心120间的数据存取。然而,此微处理器核心120缺乏识别不同加速器的能力,因此数据处理装置的功能被限制了。
因此,提供一种具有处理不同加速器的能力的数字信号处理系统是一待解决的课题,使其可避免发生不明确处理又不占用过度的指令设定编码空间。
发明内容
本发明提供一种数字信号处理系统,其具有存取与识别多个加速器的能力。此外,本发明提供一种数字信号处理系统,其具有多个多阶层架构的加速器,以帮助加速器的选择。
承上,本发明提供一种数字信号处理系统,其具有一主加速器桥接于一数字信号处理器与共享一通用指令集多个次加速器间,其中,该主加速器可协助数字信号处理器存取该多个次加速器中至少一个。
在本发明的一实施例中,主加速器包含一地址指针缓存器,其包含一可寻址的地址字段对应至该至少一个次加速器;以及一解码器,用以接收数字信号处理器传送的指令,以控制地址指针缓存器。假使数字信号处理器打算存取某一特定的次加速器,数字信号处理器将发布一个包含阶层1(L1)加速器识别码与存取指令的L1加速器指令。主加速器会根据地址指针缓存器的子集地址选择特定的次加速器。或者,数字信号处理器可发送一L1加速器指令以及一偏移地址,以修改或更新地址指针缓存器的内容。
在本发明的另一实施例中,主加速器也可传送控制信号至该至少一个次加速器,以选择特定的次加速器、设定数据传送尺寸、设定存取型态、以及指示参数传送模式。
本发明的又一实施例提供一种多阶层架构且使用一通用加速器指令集的计算机系统,此计算机系统包括处理器、主加速器与多个次加速器。处理器用以传送一选自该通用加速器指令集的指令;主加速器则连接至处理器,以接收指令;次加速器则通过主加速器连接至处理器。其中,主加速器包括:一地址产生器,包含一主地址集;以及一解码器,用以控制地址产生器依据指令与主地址集的中对应的主地址以产生对应至一选中的次加速器的次地址。
本发明的又一实施例提供一种操作方法,适用于一多阶层架构系统,此多阶层架构系统包括一处理器以及共享一通用指令集的多个加速器。本实施例的方法包括:将该至少一个加速器对应至一地址集;自处理器接收一选自通用指令集的指令,该指令包含一字段元对应至地址集中的一个地址;以及依据该地址存取加速器其中一者。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举一较佳实施例,并配合所附图式,作详细说明如下。
附图说明
图1表示具有加速器的习知数据处理装置。
图2表示根据本发明实施例的具有多阶层加速器架构的数字信号处理系统的示意图。
图3表示根据本发明实施例的多阶层加速器架构的L1加速器的示意图。
图4表示根据本发明实施例的关于三个相异的L2加速器的地址对应表。
图5表示根据本发明实施例的与一多阶层加速器架构的操作相关的信号波形。
图6表示根据本发明另一实施例的与一多阶层加速器架构的操作相关的信号波形。
图7表示根据本发明另一实施例的与一多阶层加速器架构的操作相关的信号波形。
图8表示根据本发明另一实施例的在多阶层加速器架构中并列的两L1加速器示意图。
图9表示根据本发明实施例的多阶层加速器架构的数字信号处理器系统的操作方法流程图。
具体实施方式
图2绘示本发明一实施例的具有多阶层加速器架构的数字信号处理系统。在此数字信号处理系统中,数字信号处理器(digital signal processor,DSP)10具有简易的一般加速器指令组,且通过一加速器接口60连接至阶层1(Level-1,L1)加速器20。L1加速器20通过一个加速器本地总线70连接至多个阶层2(Level-2,L2)加速器30A至30N。本实施例的多阶层加速器架构包括L1加速器20与L2加速器30A至30N,两者通过加速器本地总线70相连接。此外,为了更明确地说明,L1加速器可与“主加速器”替换使用,而L2加速器可与“次加速器”替换使用。
本实施例的多阶层加速器架构提供了一些相较于先前技术将加速器直接连接于处理器的作法的优点。此类的应用举凡MicroDSP1.x架构,其可利用上至四个加速器接口支持多个加速器。其中一个优点是,使用一个较小且一般的L1加速器指令组即可充分地支持多个L2加速器,因此不需要针对每一新的L2加速器定义新的加速器指令。而在先前技术中,则需要对于每一个新的加速器定义新的加速器指令组。另一个优点是可支持大量的L2加速器,而先前技术所支持的加速器数量相形备受限制。支持大量L2加速器的方式藉由标准内存对应输入/输出方法;L1加速器内包含一或多个32-位L1地址指针,而所有的L2加速器皆对应至此加速器地址空间(藉由L1加速器地址指针寻址),且数字信号处理器可使用此一般L1加速器指令集来存取该等L2加速器。与L1加速器结合后,L2加速器可设计来取代先前技术的加速器,如此一来数字信号处理器即可藉由发送L1加速器指令来执行(例如开始、控制、及/或监控)简易的单一周期任务或较复杂的多周期任务,而此L1加速器指令由L1加速器接口通过加速器本地总线传送至合适的L2加速器。上述的单一周期任务。例如,反转在数字信号处理器内的多个缓存器的一者内部的特定数量的最低有效位(LSB),而多周期任务则例如,MPEG-4编码中计算与一区块的影像数据相关的运动向量。由数字信号处理器至L2加速器的控制与数据信息,以及由L2加速器返回至数字信号处理器的数据信息,皆流过多阶层加速器架构内相同的接口及总线(加速器接口60与加速器本地总线70)。
在本实施例的多阶层加速器架构中,该等L2加速器30A至30N不需要加速器识别码(ID),且数字信号处理器指令组的编码空间可有效被利用。在一实施例中,若MicroDSP.1.x指令组使用4个位元来表示一个L1加速器识别码,则仅需整体指令组编码空间的16分的1(大约6%),即足以支持所有的硬件加速器,而剩余整体指令组编码空间的16分的15(大约94%)则可使用在数字信号处理器核心的内部指令组方面。L2加速器30A至30N的存取(读取/写入)通过L1加速器20的地址指针以及数字信号处理器10所提供的偏移地址(drift address)来执行。
L2加速器30A至30N的每一者皆对应至一地址数据段,此地址数据段是受L1加速器20的地址指针所寻址的总加速器地址空间的子集(subset)。L1加速器20首先识别数字信号处理器所传送的指令的L1加速器识别码。假使此预设位宽度(例如4位)的L1加速器识别码出现在指令中,L1加速器20则辩认此指令为加速器指令,且L1加速器20将协助数字信号处理器10存取特定的L2加速器。
或者,L1加速器20可根据加速器指令局部地更新本身的内容,例如,调整其L1地址指针缓存器。在存取L2加速器30的情况下,L1加速器20可根据加速器指令来驱动加速器本地总线信号;本地总线地址可直接受L1地址指针缓存器的驱动,或受L1地址指针缓存器的内容与加速器指令所提供的信息两者的结合驱动。若需改变L1地址指针缓存器的内容时,其内容由L1加速器指令所包含的值来更新或修正。
图2与图2示意根据本发明实施例的L1加速器20的示意图。L1加速器20通过加速器接口总线60连接至数字信号处理器10。加速器接口总线60包括一个24位元的加速器指令总线AIN[23:0]、一个32位L1写入数据总线AWD[31:0]、以及一个32位L1读取数据总线ARD[31:0]。本实施例的指令总线及数据总线的总线宽度仅为说明的用,而非用来限制本发明。其它的总线宽度也可依实际的系统要求来做选择。
L1加速器20通过加速器本地总线70连接至多个L2加速器30A至30N。加速器接口总线70包括32位地址总线LAD[31:0]、控制总线LCTRL、32位L2写入数据总线LWD[31:0]、以及32位L2读取数据总线LRD[31:0]。
如图3所示,L1加速器20包括解码器22、地址产生器24、写入缓冲器26、以及读取多工器28。解码器22通过AIN总线接收来自数字信号处理器10的指令,且对接收的指令进行译码。地址产生器24受解码器22所控制,以输出L2地址至LAD总线。写入缓冲器26也受解码器22所控制,以作为AWD总线与LWD总线间的缓冲。读取多工器28则多工处理该等L2加速器所驱动的所有LRD总线。地址产生器24包括32位地址指针缓存器(PTR)240以储存32位地址。写入缓冲器26包含32位写入数据缓存器260。假使指令中包含L1加速器识别码,则解码器22将识别接收的指令为加速器指令。
根据本发明的一实施例,该等L2加速器30A至30N的存取由地址产生器24所产生的LAD地址来确认。LAD地址可藉由驱动地址指针缓存器(PTR)240的内容到地址总线LAD[31:0]上来产生;或者藉由连结地址指针缓存器240的最高有效位(MSB)与加速器指令中作为分页模式(page-mode)立即偏移地址的一部分地址位而产生。地址指针缓存器可依加速器指令的指示后置增值(post-increment)。地址的产生与指针后置增值与否由解码器22所控制,解码器22也可驱动控制总线LCTRL的多个控制信号,这些控制信号可依照加速器指令的指示来控制L2加速器存取的执行。
图4表示三个相异的L2加速器30A、30B、以及30C的地址对应表的实施例。L2加速器30A至30C所提供的加速器任务可藉由传送适当的加速器指令至L1加速器而受数字信号处理器10所控制与监测,而L1加速器可传送控制与数据信息至L2加速器30内适当的地址位置。L1加速器可以任何方向或同时双向在数字信号处理器10与任一个L2加速器之间传送与加速器指令相关的数据。
地址指针缓存器(PTR)240的内容可由下列两个L1加速器指令的实施例来指派或更新:
1.“awr ptr.hi,#uimm16”
此L1加速器指令将16位的无符号立即值#uimm16写入至L1加速器中L1地址指针缓存器(PTR)240的最高16个位。
2.“awr ptr.lo,#uimm16”
此L1加速器指令将16位的无符号立即值#uimm16写入至L1加速器中L1地址指针缓存器(PTR)240的最低16个位。
前述的“立即值”指此值直接被编码至L1加速器指令。例如,24位的L1加速器指令可为下面形式:
1100 0010
其中,前四个位为L1加速器的识别码,且在框线内的“D”表示16位无符号立即值。
根据上述的地址分配指令来设定L1加速器20的L1地址指针缓存器(PTR)240的内容即可助于选择特定的L2加速器30x来执行数据存取。
对于数字信号处理器10而言,通过加速器本地总线70对L2加速器进行数据存取可如下面两个实施例的方式来实现,其中每一个实施例皆包含一个示范的指令与相关的信号波形。
范例1:将数据写入至L2加速器30A,并对L1地址指针缓存器(PTR)240作后置增值,。
本范例的L1加速器指令为“awr ptr++,#uimm16”。
此L1加速器指令写入16位的无符号立即值至L1地址指针缓存器(PTR)240所包含的L2加速器地址。接着,对L1地址指针缓存器(PTR)240的地址加1作后置增值。举例而言,假使L1地址指针缓存器(PTR)240的内容为0xF7FF:8000,数字信号处理器10发送该指令即可连续地将数个区块的16位无符号数据写入至L2加速器30A的内部输入缓存器。
图5表示自数字信号处理器10至L2加速器的写入操作相关的信号波形图。图标中以大写字母A为开头的信号组与数字信号处理器10及L1加速器20间的加速器接口总线60相关;而其它数据与控制信号则与加速器本地总线70相关。地址总线LAD[31:0]为一32位总线,且由L1加速器20所驱动。LRNW信号表示其为读取非写入的信号,而LSEL_x信号为一个选择信号,用以指示L1加速器20通过加速器总线来对该等L2加速器其中的一者作存取。在图标中,*PTR表示在L1地址指针缓存器(PTR)240内的值需驱动至地址总线LAD[31:0]。LSEL_x信号为选择信号,以选择启动该等L2加速器其中的一者。在一特定时间内,L2加速器30A至30N中只有一者被选择,且此选择依据地址总线LAD[31:0]上的地址的一部分最高有效位。被LSEL_x信号所选中的L2加速器将对加速器本地总线70上的信号进行译码,且将#uimm16数据写入至其多个内部输入缓存器的一者,该缓存器依据地址总线LAD[31:0]上的地址的部分最低有效位决定。在图标中,LSEL_x与LRNW信号通过控制总线所传送。
再参阅图3,地址控制器24包括后置增值单元242及第一多工器244。后置增值单元242用来对L1地址指针缓存器(PTR)240的地址执行后置增值操作。第一多工器244则受解码器22所控制,选择性地将后置增值单元242的输出或L1写入数据总线AWD[31:0]的数据传送至L1地址指针缓存器(PTR)240,因此L1地址指针缓存器(PTR)240的内容可被修改。地址控制器24更包括一个第二多工器246,用以选择性地将L1地址指针缓存器(PTR)240的部份最低有效位或加速器指令总线AIN[23:0]的一部分传送到地址总线LAD[31:0]的最低有效位部分。根据图3,L1加速器20的写入缓冲器26包括一个第三多工器262及写入数据缓存器260。L2写入数据总线LWD[31:0]受到写入数据缓存器260所驱动,且包含加速器接口60的加速器指令总线AIN[23:0]与L1写入数据总线AWD[31:0]的数据的组合。解码器22通过控制总线LCTRL传送数据尺寸信号LSIZE,且此数据尺寸信号LSIZE表示加速器本地总线70所传送的数据为1字节、2字节、或4字节。
此范例的指令可以2阶段管线(2-stage pipeline)处理来实现。在第一周期(译码周期)内,L1加速器指令自数字信号处理器10传送至加速器指令总线AIN[23:0],且地址总线LAD[31:0]与控制总线LCTRL可根据加速器指令的内容被驱动。在第二周期(执行周期)内,16位无符号数据被驱动至L2写入数据总线LWD[31:0]上的16个较低位,即LWD[15:0]。
范例2:将数据自L2加速器30A移动至数字信号处理器的内部缓存器。
本范例的L1加速器指令为“ard GRx,#addr8”。
此L1加速器指令将数据由L2加速器移动至数字信号处理器10的一内部缓存器GRx(一个16位缓存器)。其中,PTR[31:8]与#addr8(8位立即地址值)连接的连续值可指定一个特定的L2加速器地址。
图6示意与此范例操作相关的信号波形图。LSEL_x信号为选择复数该等L2加速器的一者的选择信号。在给定的时间内,只有L2加速器30A至30N的一者被选中,其选择依据地址总线LAD[31:0]上的地址值决定。被选中的L2加速器,例如L2加速器x,将根据地址总线LAD的一部分最低有效位,来选择应驱动其多个内部缓存器的中何者的内容至L2读取数据总线LRD上,以回传到L1加速器10。地址总线LAD的最低有效位部分由数字信号处理器10所传送的偏移地址“#addr8”所驱动。L1加速器20将传送读取数据至L1读取数据总线ARD上,以回传至数字信号处理器10的内部缓存器GRx。此读取数据则可此般写入至数字信号处理器10的内部缓存器GRx。
根据图3,L1加速器20的多工器28用以自对应至L2加速器30A至30N的多个读取数据总线LRD_A至LRD_N中选择适当的读取总线。被选中的读取数据总线LRD_x被驱动至L1读取数据总线ARD,且此选择依据L2选择信号LSEL_x。
举例来说,上述24位L1加速器指令可为下面形式:
1100 1100
XXXX 0000
其中,以字母“A”所表示的位是代表由数字信号处理器10所传送的偏移地址#addr8的8位立即值。以字母“X”所表示的位是代表在数字信号处理器10内16个一般缓存器GR0至GR15其中的一者。
由上述两个例子可得知,本发明的指令操作不须指派任何加速器识别码至任何一个L2加速器,取而代的的是在L1加速器内设置具有弹性的地址产生器24,即可选择L2加速器与L2加速器内的位置。L1地址指针缓存器(PTR)240的位数量也可修改(除了32位),以支持更小或更大的L2加速器地址空间。
在上述两个范例中,仅有4位(例如在范例中起始位序列1100)被用来当作L1加速器识别码,L1加速器指令组可缩减至一个数量相对较少(32或更少)的一般指令组,然而其弹性足以支持大量且多种相异的L2加速器。下一个范例将说明此种类型一般但仍功用极大的L1加速器指令的可变通性。
范例3:L2加速器地址的参数控制写入-读取操作(参阅图7)。
此范例的一般L1加速器指令为“ardp GRx,#addrX,#uimm4”。
此L1加速器指令将储存在数字信号处理器10的内部缓存器GRx的数据传送至由PTR[31:X]与X位立即偏移地址#addrX相结合的连续值所指定的L2加速器地址。内部缓存器GRx的内容受数字信号处理器驱动至L1写入数据总线AWD[15:0]上,且在下一(执行)时脉周期由L1加速器传送至L2写入数据总线LWD[15:0]上。同样地,L1加速器在下一(执行)时脉周期也将被数字信号处理器驱动至加速器指令总线AIN[23:0]的4位立即参数值传送至L2写入数据总线LWD[19:16]上。此外,L1加速器也指示被选中的L2加速器在执行时脉周期内驱动某部份的16位数据返回至其对应的L2读取数据总线LRD_x[15:0],以在执行时脉周期结束时更新内部缓存器GRx。因此,此加速器指令同时利用了加速器接口的写入及读取数据总线与加速器本地总线。另需注意,是否使用4位的参数值完全取决于L2加速器,而非受限于L1加速器指令本身的定义。在L1加速器指令的译码周期期间,加速器本地总线信号LPRM被驱动(高位准),以表示此类的指令正出现在加速器本地总线。
此范例的L1加速器指令可用来实现一或多个L2加速器内多种相异的单一周期任务。举例来说,当指令传送至一特定L2加速器地址时,此指令可表示内部缓存器GRx的16位内容的部份最低有效位(例如4位参数值)应该执行位反置(bit-reversed)。而传送至其它特定L2加速器地址的其它指令可表示对L2写入数据总线LWD[15:0]所提供的数据执行其它完全相异的操作(或者,对储存在特定L2加速器地址位置的数据执行操作),且在此执行时脉周期结束时,此操作的结果将被记录至内部缓存器GRx。
图7表示与L1加速器指令相关的信号波形图。图中以大写字母A为开头的信号与介于数字信号处理器10与L1加速器20间的加速器接口总线60相关的信号;而以大写字母L为开头的其它数据与控制信号则为与加速器本地总线70相关的信号。
在图6及7中,LSEL_x、LPRM、以及LRNW信号通过控制总线LCTRL所传送。LSEL_x信号为选择信号用以选择该等L2加速器的中一者。LPRM信号为参数指示信号,逻辑“1”表示在L2写入数据总线LWD[19:16]上发生由一参数所控制的写取/读入传输。LRNW信号表示加速器本地总线70上的读取与写入传输的触发与否,逻辑“1”表示读取传输,而逻辑“0”表示写入传输。
在一范例中,假使此系统为JPEG(Joint Photographic Experts Group,静态影像压缩标准)译码系统,L2加速器可以是可变长度解码器(variable lengthdecoder,VLD)30A、DCT/IDCT(离散余弦转换/反离散余弦转换)加速器30B、以及颜色转换加速器(color conversion accelerator)30C。
图8表示根据本发明另一实施例,采用多阶层加速器架构的数字信号处理系统示意图。本实施例为可并列发送指令的数字信号处理器的架构。图8的数字信号处理器10可以并列方式来发送两个加速器指令(L1加速器指令)。在此情况下,这两个加速器指令以并列方式来存取L2加速器30A至30N其中一者或二者,且需要提供两个加速器本地总线70A及70B。
本发明所提供的L1加速器的操作可以图9的流程图来总结说明。此方法提供了通过一个L1加速器相互桥接的处理器与多个L2加速器之间的指令解释及控制的流程。
在第一个步骤S100:建立L1地址指针缓存器(PTR)240的子集地址(subset address)与连接至L1加速器的多个L2加速器间的对应关系。
在下一步骤S200:自数字信号处理器10读取指令。
在下一步骤S220:检查L1加速器识别码存在与否来识别此指令是否为L1加速器指令。若此指令非L1加速器指令,则执行步骤S222;若次指令确为L1加速器指令,则执行步骤S240。
在步骤S222:于数字信号处理器10内部执行此指令,且可依需要对连接至数字信号处理器的其它装置(例如SRAM内存)执行存取。
在步骤S240:识别此L1加速器指令是否需对一L2加速器进行存取。假使是,则执行步骤S242;假使否,则执行步骤S250。
在步骤S242:依据L1地址指针缓存器(PTR)240的地址选择其指定的L2加速器,接着继续进行步骤S260。
在步骤S250:识别此L1加速器指令是否为执行L1地址指针缓存器(PTR)240的地址的修改。假使是,则执行步骤S252。
在步骤S252:根据L1加速器指令所包含的信息修改在L1地址指针缓存器(PTR)240的地址。
在下一步骤S260:识别该指令的L2加速器存取是否为参数控制存取。假使是,执行步骤S262;假使否,则执行步骤S264。
在步骤S262:以参数控制存取来执行L2加速器存取,其执行方式请参考范例3的说明。的后执行步骤S280。
在步骤S264:执行L2加速器数据存取,其执行方式请参考范例1及2的说明。的后执行步骤S280。
在下一步骤S280:检查是否需执行后置增值。假使是,则于下一步骤S282执行后置增值;否则,回到步骤S200。
综上所述,本发明具有以下优点:
1.由L1加速器所提供的加速器指令组仅需设计一次,且可供数字信号处理器用来联系多个阶层2加速器。因此,不需要针对单一L2加速器重新设计加速器指令组。此组装方法无须因应新的L2加速器而更新。
2.所有的L2加速器通过一般L1加速器指令组来控制,取代了专用的加速器指令组。因此,L2加速器不需要包含任何指令码对应关系,简化了其设计以及其在数字信号处理次系统中的可再使用性。
3.L1加速器的内部地址指针缓存器可支持非常大量的L2加速器。L2加速器则不需要分门别类,全部聚集在L1加速器内的一点。此项可支持非常大量的L2加速器的特点简化了设计分隔及可再使用性。
4.当仅使用单一L1加速器时,加速器识别码则非必要的,且数字信号处理指令组的编码空间可有效地被利用。假设指令中有4位被用来指示一个L1加速器识别码,那么整体24位指令组编码空间的16分的1(大约6%),足以支持所有的硬件加速器,而整体24位指令组编码空间的16分的15(大约94%)则可使用在数字信号处理器核心指令组。
本发明虽以较佳实施例揭露如上,然其并非用以限定本发明的范围,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当视后附的申请专利范围所界定者为准。
Claims (17)
1.一种主加速器,桥接于一处理器与共享一通用指令集的多个次加速器之间,该主加速器包括:
一地址指针缓存器,包含一地址,该地址的一个地址字段指向一选中的次加速器;以及
一解码器,用以接收传送自该处理器的指令,以控制该地址指针缓存器。
2.如权利要求1所述的主加速器,还包含:
一多工器,用以选择性传送该地址与该指令的一部分至该选中的次加速器;以及
一后置增值单元,用以在该指令执行完毕后对该地址执行一后置增值操作。
一数据缓冲器,耦接于该处理器与该选中的次加速器之间,用以缓冲数据存取。
3.如权利要求1所述的主加速器,其中该解码器依据该指令内的一偏移地址调整该地址。
4.如权利要求1所述的主加速器,其中该解码器根据该地址对该选中的次加速器内至少一个内部缓存器进行存取。
5.如权利要求1所述的主加速器,其中该解码器传送下列信号的任意组合至该选中的次加速器:
一控制信号,用以设定该选中的次主加速器为启动;
一数据尺寸信号,用以表示欲存取的数据大小;
一参数控制信号,用以表示一单一周期的参数控制操作;以及
一存取信号,用以表示一读取或写入操作。
6.如权利要求1所述的主加速器,其中该主加速器通过一指令总线与一第一数据总线连接至该处理器,并通过一地址总线、一控制总线与一第二数据总线连接至该至少一个次主加速器。
7.一种多阶层架构且使用一通用加速器指令集的计算机系统,包括:
一处理器,用以传送一选自该通用加速器指令集的指令;
一主加速器,连接至该处理器,并接收该指令;以及
多个次加速器,通过该主加速器连接至该处理器;
其中,该主加速器包括:
一地址产生器,包含一主地址集;以及
一解码器,用以控制该地址产生器依据该指令与该主地址集中一对应的主地址以产生对应至一选中的次加速器的次地址。
8.如权利要求7所述的计算机系统,其中该地址产生器包含一地址指针缓存器,用以储存该主地址集。
9.如权利要求7所述的计算机系统,其中对应至该次地址的该选中的次加速器依据该主加速器的控制执行该指令指示的操作。
10.如权利要求9所述的计算机系统,其中该编码器传送下列信号的任意组合至该次加速器:
一控制信号,用以设定该选中的次主加速器为启动;
一数据尺寸信号,用以表示欲存取的数据大小;
一参数控制信号,用以表示一参数控制操作,其中该参数控制操作可于单一时间周期内写入数据至该选中的次加速器,并自该选中的次加速器读取数据;以及
一存取信号,用以表示一读取或写入操作。
11.如权利要求7所述的计算机系统,其中该次地址为下列项目的任意组合:
该主地址连接该指令中一偏移地址;
依据该指令的该偏移地址调整后的该主地址;
该主地址中对应至该选中的次加速器的一地址字段的一个子集。
12.如权利要求7所述的计算机系统,其中该主加速器通过一指令总线连接至该处理器,并通过一地址总线与一控制总线连接至该至少一个次加速器。
13.一种操作方法,适用于一多阶层架构系统,该多阶层架构系统包括一处理器以及共享一通用指令集的多个加速器,该方法包括:
将该至少一个加速器对应至一地址集;
自该处理器接收一选自该通用指令集的指令,该指令包含一字段对应至该地址集的一个地址;以及
依据该地址存取该至少一个加速器中的一个。
14.如权利要求13所述的操作方法,其中该存取的步骤更包括:
依据该指令提供一控制信号至该加速器。
15.如权利要求14项所述的操作方法,其中该控制信号为下列信号的任意组合:
一启动控制信号,用以设定一选中的次加速器为启动;
一数据尺寸信号,用以表示欲存取的数据大小;
一参数控制信号,用以表示一单一时间周期的参数控制操作;以及
一存取信号,用以表示一读取或写入操作。
16.如权利要求13所述的操作方法,还包括:
在该存取的步骤结束后,对该地址进行后置增值。
17.如权利要求13所述的操作方法,还包括:
依据该指令的一偏移值修改该地址集的该地址。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US75162605P | 2005-12-19 | 2005-12-19 | |
US60/751,626 | 2005-12-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1983166A true CN1983166A (zh) | 2007-06-20 |
CN100451952C CN100451952C (zh) | 2009-01-14 |
Family
ID=38165727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101717159A Active CN100451952C (zh) | 2005-12-19 | 2006-12-19 | 多阶层加速器架构的处理器系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20070139424A1 (zh) |
CN (1) | CN100451952C (zh) |
TW (1) | TWI335521B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104750637A (zh) * | 2013-12-31 | 2015-07-01 | 国际商业机器公司 | 用于加速器的可扩展输入/输出数据机制 |
CN102047316B (zh) * | 2008-05-30 | 2016-08-24 | 先进微装置公司 | 具有分布式第一阶缓存系统及集中式第二阶缓存的着色组合 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9582287B2 (en) * | 2012-09-27 | 2017-02-28 | Intel Corporation | Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions |
CN104142907B (zh) * | 2013-05-10 | 2018-02-27 | 联想(北京)有限公司 | 增强型处理器、处理方法和电子设备 |
US10599441B2 (en) * | 2017-09-04 | 2020-03-24 | Mellanox Technologies, Ltd. | Code sequencer that, in response to a primary processing unit encountering a trigger instruction, receives a thread identifier, executes predefined instruction sequences, and offloads computations to at least one accelerator |
WO2019245416A1 (en) * | 2018-06-20 | 2019-12-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and supporting node for supporting process scheduling in a cloud system |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5524223A (en) * | 1994-01-31 | 1996-06-04 | Motorola, Inc. | Instruction accelerator for processing loop instructions with address generator using multiple stored increment values |
US6829697B1 (en) * | 2000-09-06 | 2004-12-07 | International Business Machines Corporation | Multiple logical interfaces to a shared coprocessor resource |
US7430652B2 (en) * | 2003-03-28 | 2008-09-30 | Tarari, Inc. | Devices for performing multiple independent hardware acceleration operations and methods for performing same |
US7714870B2 (en) * | 2003-06-23 | 2010-05-11 | Intel Corporation | Apparatus and method for selectable hardware accelerators in a data driven architecture |
-
2006
- 2006-12-19 CN CNB2006101717159A patent/CN100451952C/zh active Active
- 2006-12-19 US US11/613,170 patent/US20070139424A1/en not_active Abandoned
- 2006-12-19 TW TW095147640A patent/TWI335521B/zh active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102047316B (zh) * | 2008-05-30 | 2016-08-24 | 先进微装置公司 | 具有分布式第一阶缓存系统及集中式第二阶缓存的着色组合 |
CN104750637A (zh) * | 2013-12-31 | 2015-07-01 | 国际商业机器公司 | 用于加速器的可扩展输入/输出数据机制 |
CN104750637B (zh) * | 2013-12-31 | 2018-04-06 | 国际商业机器公司 | 用于加速器的可扩展输入/输出数据机制 |
Also Published As
Publication number | Publication date |
---|---|
US20070139424A1 (en) | 2007-06-21 |
TW200731093A (en) | 2007-08-16 |
CN100451952C (zh) | 2009-01-14 |
TWI335521B (en) | 2011-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100451952C (zh) | 多阶层加速器架构的处理器系统及其操作方法 | |
CA2231362C (en) | A data maximizing serial to parallel bus interface in a data processing system and method therefor | |
TWI279715B (en) | Method, system and machine-readable medium of translating and executing binary of program code, and apparatus to process binaries | |
US20050198471A1 (en) | Micro-controller for reading out compressed instruction code and program memory for compressing instruction code and storing therein | |
US20090259789A1 (en) | Multi-processor, direct memory access controller, and serial data transmitting/receiving apparatus | |
CN1332407A (zh) | 用以执行多重指令组的数据处理装置 | |
WO2002079971A1 (en) | Programmable cpu/interface buffer structure using dual port ram | |
JPH0652102A (ja) | データ転送装置 | |
CN1818856A (zh) | 具有加速器的数字信号系统及其操作方法 | |
KR100721091B1 (ko) | 플렉서블 범용 입/출력 시스템 | |
US5640545A (en) | Frame buffer interface logic for conversion of pixel data in response to data format and bus endian-ness | |
US5634013A (en) | Bus bridge address translator | |
US7376777B2 (en) | Performing an N-bit write access to an M×N-bit-only peripheral | |
JPH10207717A (ja) | マイクロコンピュータ | |
JPH09231071A (ja) | コンピュータ装置 | |
US6408372B1 (en) | Data processing control device | |
EP0383342A2 (en) | Microprocessor | |
JP3096576B2 (ja) | メモリ制御回路とその回路を内蔵した集積回路素子 | |
KR20070060854A (ko) | 멀티 채널 직접 메모리 접근 제어기 | |
US20090235010A1 (en) | Data processing circuit, cache system, and data transfer apparatus | |
US5682521A (en) | Microprocessor control system which selects operating instructions and operands in an order based upon the number of transferred executable operating instructions | |
CN1234550B (zh) | 一种输入/输出总线系统 | |
US8639860B2 (en) | Data transfer system and data transfer method | |
US20040162924A1 (en) | Apparatus and method for transmitting data by means of direct memory access medium | |
KR100196270B1 (ko) | 마이크로프로세서 |
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 |