CN101479712A - 用于接口连接处理器和协处理器的方法和装置 - Google Patents
用于接口连接处理器和协处理器的方法和装置 Download PDFInfo
- Publication number
- CN101479712A CN101479712A CNA200780024086XA CN200780024086A CN101479712A CN 101479712 A CN101479712 A CN 101479712A CN A200780024086X A CNA200780024086X A CN A200780024086XA CN 200780024086 A CN200780024086 A CN 200780024086A CN 101479712 A CN101479712 A CN 101479712A
- Authority
- CN
- China
- Prior art keywords
- instruction
- processor
- coprocessor
- address
- produced
- 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
- 238000000034 method Methods 0.000 title claims description 80
- 230000004044 response Effects 0.000 claims description 16
- 238000004891 communication Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 29
- 230000002457 bidirectional effect Effects 0.000 description 25
- 238000003780 insertion Methods 0.000 description 13
- 230000037431 insertion Effects 0.000 description 13
- 238000005070 sampling Methods 0.000 description 11
- 230000008901 benefit Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 239000004020 conductor Substances 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
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/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
-
- 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
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- 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
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/321—Program or instruction counter, e.g. incrementing
-
- 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
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)
- Advance Control (AREA)
- Multi Processors (AREA)
Abstract
协处理器(14)可以被用于执行可以从主或通用处理器(12)卸载的一个或多个特定操作。允许该处理器(12)和协处理器(14)之间的有效通信和连接是重要的。在一个实施例中,协处理器(14)产生并提供指令(200,220)至处理器(12)中的指令流水线(20)。因为协处理器(14)产生的指令是处理器的标准指令集的一部分,所以容易保持高速缓存(70)一致性。同样,协处理器(14)中的电路(102)可以对数据执行操作,而协处理器(14)中的电路(106)同时产生处理器指令(200,220)。
Description
技术领域
本发明一般地涉及接口连接(interface),更具体地涉及处理器与协处理器的接口连接。
背景技术
协处理器经常被用于执行可以从主或通用处理器上卸载的一个或多个指定操作。因此,允许该处理器和协处理器之间的有效通信和连接是重要的。此外,在很多***中,处理器利用一个或多个等级的高速缓存通过减少对较低速存储器的访问来增加***的效率。
附图说明
通过示例的方式来示出本发明,但是本发明不限于附图所示。附图中相同的标号表示相似的部件,附图中:
图1以框图的形式示出了根据一个实施例的数据处理***;
图2以框图的形式示出了根据一个实施例的图1中的协处理器14的一部分;
图3以框图的形式示出了根据一个实施例的指令;
图4以框图的形式示出了根据一个实施例的指令;
图5以框图的形式示出了根据一个实施例的图1中的存储器54的一部分;
图6以表格形式示出了根据一个实施例的当访问图5的循环缓冲器55中的采样时,图4的地址偏移量228指向何处;
图7以框图形式示出了根据一个实施例的图1的***10的存储映射;
图8以表格形式示出了根据一个实施例的示例的指令流;以及
图9以表格形式示出了根据一个实施例的图8的指令流如何由图1的处理器12和协处理器14产生并执行。
本领域的技术人员应该理解,图中的部件是为了简洁和清楚而示出的,并且不必然地按比例画出。例如,图中一些部件的尺寸相对于其他部件可以被放大以有助于提高对本发明的实施例的理解。
具体实施方式
参考图1,在***10中,保持存储在存储器54中、存储在高速缓存70中、被处理器12所使用的以及被协处理器14所使用的信息之间的一致性是非常重要的。注意到通过允许协处理器14直接将处理器指令***处理器12的指令解码路径,由此可以保证高速缓存70和存储器54之间的一致性。因为处理器12以与对待任何其他指令一样的方式对待由协处理器14***的指令,而不论这些指令是从何处得到的(例如,存储器54),所以可以保证高速缓存70和存储器54的一致性。协处理器14产生作为处理器12的标准指令集的一部分的一个或多个指令。协处理器14可以以任何期望的方式产生这些处理器指令。例如,可以使用状态机、组合逻辑、或任何其他类型的电路来确定处理器指令的一个或多个部分,而其中一个或多个部分可以使用查询表来确定。协处理器14可以使用产生指令的任何其他方法。此外,由协处理器14产生的指令可以是任何类型的指令。
在一个实施例中,协处理器14产生发送给处理器12执行的加载和存储指令。处理器12因此对存储器54执行加载和存储指令,这要求检索协处理器14执行一个或多个选择的协处理器功能所需的数据。处理器12可以包括旁路控制电路28,其在协处理器启动加载指令期间被处理器12使用,以将数据从存储器54直接传送至协处理器14,而不将所检索到的数据存储在寄存器24中。类似的,处理器12可以在协处理器启动存储指令期间使用旁路控制电路28,以将数据从协处理器14直接传送到存储器54,而不从寄存器24检索将被存储的数据。在一个实施例中,高速缓存电路不知道何时发生旁路。该旁路仅允许了一条使数据直接来自/去往协处理器14而不是来自/去往处理器寄存器24的路径。注意在该实施例中,不论加载或存储指令是否由协处理器14产生,高速缓存70都以相同的方式操作。因此,以电路和处理时间的最小花费来保持高速缓存70、存储器54、处理器12和协处理器14之间的一致性。然而,如果期望保持高速缓存一致性,可替换的实施例可以不具有旁路或可以以不同的方式来处理旁路。
参考图1,在一个实施例中,协处理器14通过导线44监视处理器12的程序计数器值17,以确定何时程序计数器值17落入预定的地址范围内。在一个实施例中,处理器12的程序计数器17位于指令地址产生器16中,而对于替换实施例来说,其可以位于处理器12的任何地方。在一个实施例中,协处理器14使用基地址寄存器122来存储基地址,基地址可以与程序计数器值17的选择位进行比较(例如通过比较器120),从而确定程序计数器值17是否落入预定范围内。在可选实施例中,基地址寄存器122和比较器120可以位于***10的任何地方(例如,在处理器12中),以及信号可以从比较器120提供至协处理器14以指示何时发生匹配(即,程序计数器值17在预定范围内)。
如果处理器12的程序计数器值17不在预定范围内,则协处理器14什么都不作,并继续监视程序计数器值17。然而,如果处理器12的程序计数器值17在预定范围内,则协处理器14使用程序计数器值17来选择多个将被执行的操作中的一个(见图7)。可选实施例可以仅具有一个将被协处理器14执行的操作,因此可以使用程序计数器值17作为使能器而不是作为使能器和选择器。
参考图7,程序计数器地址17的地址“A”使协处理器14选择协处理器功能1;程序计数器地址17的地址“A+100”使协处理器14选择协处理器功能2;以及程序计数器地址17的地址“A+150”使协处理器14选择协处理器功能3。可选实施例可以使用任何数量的协处理器功能。此外,协处理器功能(例如,1、2、和3)可以是任何功能。可以被使用的一些公知的协处理器功能是滤波功能、Verterbi算法、快速傅立叶变换、以及相关功能。然而,代替或除了这些示例,可以使用其他协处理器功能。注意,***存储器映射中从“A”至“A+300”的地址空间为协处理器14保留并且不具有对应的物理存储电路(即,存储器54和协处理器14不具有对应于从“A”至“A+300”的地址空间的存储电路)。在大多数的现有技术的***中,从程序计数器17所指向的地址位置获取下一个指令。然后将所获取的指令存储在指令流水线20中,直到其被处理器12执行。注意,可替换的实施例可以不具有指令流水线20,但是取而代之的是立即执行所获取的指令。注意,处理器12使用执行单元26和寄存器24来执行大部分的指令。
在示出的实施例中,当程序计数器寄存器17包含从“A”至“A+300”的值时,协处理器14被使能,并使用程序计数器值17以确定要执行哪个协处理器功能。参考图9,协处理器14然后例如通过执行空操作(NOP)指令或乘法累积(MAC)指令来使用功能电路102去执行协处理器功能。协处理器14也在内部从处理器12的指令集中产生一个或多个指令,然后指令从协处理器14传送至处理器12(例如,通过指令导线42)。注意,由协处理器14产生的处理器12指令没有被存储在由处理器12所产生的指令获取地址处,取而代之的是由协处理器在内部产生。协处理器14可以以任何期望的方式产生这些处理器12指令。例如,处理器12指令的一个或多个部分可以使用状态机、组合逻辑或其他类型的电路来确定,而一个或多个部分可以使用查询表来确定。在图2示出的实施例中,协处理器14使用指令产生器106来产生将通过导线42被传送至处理器12的处理器指令。注意在一个实施例中,由协处理器14产生并提供给处理器12的指令是处理器12的标准指令集的一部分,并且不是与处理器/协处理器接口相关的特定指令。
通过产生由处理器12来执行的指令,协处理器14可以使用处理器12的任何处理能力,并且可以指引一序列的处理器12运算来辅助执行协处理器算法。以该方式,由于去除了多余的协处理器硬件,所以协处理器14可以被简化,并且相反,协处理器14可以指引处理器12的执行活动以支持期望的协处理功能。在许多协处理操作中,需要来自存储器54的一致性数据以实现协处理功能。在示出的实施例中,通过产生由处理器12执行的标准处理器12加载和存储指令,且因为处理器12代表协处理器14来执行正常的存储器操作码转移,所以实现了数据一致性。此外,由于当执行任何其他标准加载或存储指令时,这些存储器存取看来好像与处理器12所产生的正常存储器存取一样,所以保证了存储器管理逻辑的适当操作。协处理器12也可以利用任何其他的处理器12资源,例如乘法单元、以及除法单元、浮点单元、或任何可以通过执行标准处理器12指令而被使用的资源。
参考图2和图3,在一个实施例中,指令产生器106具有用于产生操作码字段202的操作码字段产生器110,用于产生一个或多个地址偏移量字段208的地址偏移量字段产生器112,用于产生一个或多个即时字段210的即时字段产生器114,用于产生其他字段206的其他指令字段产生器118,以及用于产生寄存器字段204的寄存器字段产生器118。因为指令字段204、206、208和210可以是可选的,或对于一些实施例是不被使用的,所以可替换实施例可以不实现产生器112、114、116和118。
参考图2~图4,在一个实施例中,指令产生器106产生用于处理器12的加载指令、存储指令、以及“从子程序返回”指令。对于“从子程序返回”指令,操作码字段产生器110产生用于操作码字段202的从子程序返回操作码,并且因为不需要指令字段204、206、208和210,所以没有使用电路112、114、116和118。对于加载或存储指令,操作码字段产生器110产生加载/存储操作码222,寄存器字段产生器118产生源/目的地寄存器字段224和基地址字段226,以及地址偏移量字段产生器114产生地址偏移量字段228。在示出的实施例中,对于加载或存储指令,因为不需要指令字段206和210,所以电路114和116没有被使用。
图5和图6示出了当协处理器14被用来对存储在存储器54中的循环缓冲中的数据采样执行操作时,由协处理器14中的地址偏移量字段产生器112所产生的地址值的示例。图5示出了被用作循环缓冲55的存储器54的一部分在地址位置“B”存储采样1、在地址位置“B+1”存储采样2、在地址位置“B+2”存储采样3、以及在地址位置“B+3”存储采样4。参考图4,协处理器14产生用于操作码字段222的加载操作码,产生作为基地址寄存器字段226的地址“B”,以及产生作为地址偏移量字段228的“0”。然后通过指令导线42从协处理器14传送加载指令并***指令流水线20。然后处理器12使用解码电路22来对该***的加载指令进行解码。该***的加载指令然后被处理器12执行。
该***的加载指令使得处理器12访问存储器54以获取地址位置“B”处的采样1。然后所获取的采样1或者被加载在协处理器14中(例如,在寄存器104中),或者既加载到协处理器14又加载到处理器12中(例如在寄存器24中)。注意,***的指令的格式与由处理器12所执行的任何其他加载指令的格式相同。在示出的实施例中,除了使用旁路控制电路28,被协处理器14***的加载指令对于处理器12来说是透明的。在***加载指令期间可以使用旁路控制电路28来将从存储器54获取的数据直接加载到协处理器14中,而不是加载到处理器寄存器24中。协处理器14可以使用控制信号(例如控制信号76之一)来向处理器12的控制器30表明:响应于执行加载指令的处理器12,旁路控制电路28应当被用来将获取的数据直接传送到协处理器14。控制电路30可以使用一个或多个控制信号29来控制旁路控制电路28。
参考图4,注意对于一个实施例,如果旁路控制电路28将加载/存储数据直接传送至协处理器14或从协处理器14直接传送加载/存储数据并旁路处理器12,则可以不使用***加载/存储指令的源/目的地寄存器字段224。然而,对于替换实施例,如果旁路控制电路28将加载/存储数据直接发送至协处理器14或从协处理器14直接传送加载/存储数据,同时也发送至处理器12或从处理器12传送,则***加载/存储指令的源/目的地寄存器字段224仍然被使用。
继续图5和图6中的示例,协处理器14产生用于操作码字段222的加载操作码,产生作为基地址寄存器字段226的地址“B”,以及产生作为地址偏移量字段228的“1”。该加载指令然后被从协处理器14发送,并通过指令导线42***指令流水线20。处理器12然后使用解码电路22来对该***的加载指令进行解码。该***的加载指令然后被处理器12执行,并且从存储器54获取采样2并加载到寄存器104中。
继续图5和图6中的示例,协处理器14产生用于操作码字段222的加载操作码,产生作为基地址寄存器字段226的地址“B”,以及产生作为地址偏移量字段228的“2”。该加载指令然后被从协处理器14传送并通过指令导线42***指令流水线20。然后处理器12使用解码电路22对该***加载指令进行解码。该***加载指令然后被处理器12执行,并且从存储器54中获取采样3并加载到寄存器104中。
继续图5和图6中的示例,协处理器14产生用于操作码字段222的加载操作码,产生作为基地址寄存器字段226的地址“B”,以及产生作为地址偏移量字段228的“3”。该加载指令然后被从协处理器14传送并通过指令导线42***指令流水线20。然后处理器12使用解码电路22对该***加载指令进行解码。该***加载指令然后被处理器12执行,并且从存储器54中获取采样4并加载到寄存器104中。
协处理器14使用功能电路102(见图2)来执行一个或多个对采样1~4的操作。然后所获得的计算值被存储在寄存器104中。协处理器14产生用于操作码字段222的存储操作码,产生作为基地址寄存器字段226的地址“C”,以及产生作为地址偏移量字段228的“0”。该存储指令然后从协处理器14被传送并通过指令导线42***指令流水线20。然后处理器12使用解码电路22以对该***存储指令进行解码。该***存储指令然后被处理器12执行,并且使用旁路控制电路28从寄存器104中获取值1并存储在存储器54中。可替换实施例可以使协处理器14在处理器12中源寄存器(例如寄存器24之一)中存储值1,从而不需要旁路控制电路28。到此,对循环缓冲器中存储的输入采样集合执行协处理器操作的第一迭代已经被完成。以类似的方式执行第二迭代,不同仅在于,在用于加载指令的地址偏移量字段228中的偏移量为1,2,3和0,以及在用于存储指令的地址偏移量字段228中的偏移量为1。以类似的方式执行第三迭代,不同仅在于,在用于加载指令的地址偏移量字段228中的偏移量为2,3,0和1,以及在用于存储指令的地址偏移量字段228中的偏移量为2。
图8以表格的形式示出了根据一个实施例的示例的指令流。在该示出的实施例中,程序计数器17的内容列在左栏中,以及对应的将被处理器12所执行的指令列在右栏中。注意在示出的采样指令流中,前两个指令由处理器12从存储器54获取。接下来的指令集由协处理器14产生(见图2中的电路106),并通过指令导线42被直接传送到指令流水线20。列表中最后的指令集再次由处理器12从存储器54获取。注意,协处理器14可以被用来产生任何期望类型的供处理器12执行的指令。
在图8中,在程序计数器值A-75处获取至子程序指令的分支。该至子程序指令的分支可以被用来“调用”特定协处理器功能,类似于“调用”软件功能的作用。该分支的目的地落在由协处理器14执行特定功能所使用的地址的范围内。地址A+100对应于期望的协处理器功能,功能2,并且用于向协处理器提供信号来开始期望的功能。当标准处理器12指令被协处理器14提供至处理器12时,处理器12将继续增加程序计数器以支持由协处理器执行期望的功能2。一旦完成期望的功能,当程序计数器值达到表示期望功能已完成的A+140时,协处理器14提供“从子程序返回”指令。处理器12然后返回到地址A-74处的先前的指令流。
图9以表格的形式示出了根据一个实施例的、图8的指令流是如何被图1的处理器12和协处理器14产生并执行的。可替换的实施例可以以任何期望的方式产生并执行指令。图9中示出的示例仅用于描述一个可能的替换例。
图9示出了当协处理器14同时执行两个功能:产生未来的处理器12指令和执行协处理器操作时,将由处理器12执行的指令。左栏示出了将被处理器12执行的指令。箭头表示协处理器14已经产生并提供给处理器12供处理器12执行的指令。中间栏示出了被协处理器14产生的、被传送至处理器12供处理器12执行的指令。右栏示出了被协处理器14同时执行的协处理器操作。因此,在协处理器14使用功能电路102来同时执行其自己的指令或执行其自己的操作时,协处理器14可以使用指令产生电路106产生用于处理器12的指令。
注意,通过使用协处理器14来产生作为处理器12的指令集的一部分的标准指令并将标准指令***指令流水线20,处理器12所使用的保持一个或多个高速缓存70的缓存一致性的正常机制仍然可以被使用,而不需要额外的电路或复杂性。因此,协处理器14可以将指令***处理器12的指令流水线20以使处理器12执行至协处理器14中的寄存器104的加载和存储以及来自协处理器14中的寄存器104的加载和存储。因为处理器12正在以与处理器12执行从存储器54(见图1)获取的加载和存储指令相同的方式来执行由协处理器14所产生的加载和存储指令,所以处理器12在保持高速缓存一致性方面没有或几乎没有执行成本。
附图描述
图1示出了根据一个实施例的数据处理***10。在所示出的实施例中,***10包括通过导线58双向耦合到协处理器14的处理器12。在一个实施例中,导线58包括指令导线42、地址导线44、控制导线58、地址导线46和数据导线48。在一个实施例中,***10还包括双向耦合到总线32的存储控制器52和其他电路56。存储控制器52双向耦合到一个或多个存储器,例如存储器54。存储器54可以是能够存储信息的任何类型的电路或存储介质。在替换实施例中,存储控制器52可以耦合到多个存储器,这些存储器可以是相同类型的存储器,也可以是不同类型的存储器(例如非易失性、动态随即存取存储器等)。协处理器14也通过导线78双向耦合到总线32。
在一个实施例中,处理器12包括指令地址产生器16、数据地址产生器18、指令流水线20、解码电路22、多个寄存器24、执行单元26、旁路控制电路28、控制电路30、以及高速缓存70。可替换实施例在处理器12中可以使用更多、更少或不同的电路部分。在一个实施例中,控制电路30通过导线76双向耦合到协处理器14、通过导线77双向耦合到指令地址产生器16、通过导线79双向耦合到数据地址产生器18、通过导线81双向耦合到指令流水线20、通过导线83双向耦合到解码电路22、通过导线85双向耦合到寄存器24、通过导线87双向耦合到寄存器24和执行单元26、被耦合为通过导线29向旁路控制电路28提供控制信号、以及通过导线89双向耦合到高速缓存70。
在一个实施例中,协处理器14通过地址导线44双向耦合到指令地址产生器16、通过指令导线42双向耦合到指令流水线20、通过地址导线46双向耦合到数据地址产生器18、通过数据导线48双向耦合到寄存器24、以及通过数据导线50双向耦合到旁路控制电路28。在一个实施例中,旁路控制电路28通过导线91双向耦合到寄存器24。在一个实施例中,数据地址产生器18通过导线36双向耦合到总线32,以及指令流水线20通过导线38双向耦合到总线32。在一个实施例中,高速缓存70通过导线74双向耦合到执行单元26。在一个实施例中,指令地址产生器16包括程序计数器17。在一个实施例中,程序计数器17是指向当前执行指令的寄存器。在一个实施例中,控制电路30包括指令获取电路19。
***10的可替换实施例可以使用电路的不同模块或部分来实现处理器12。图1示出的处理器12的实施例仅是许多个可能的处理器12实施例中的一个。例如,处理器12的可替换实施例可以不具有高速缓存或不具有多级高速缓存、可以不具有指令流水线或不具有期望深度的指令流水线、可以具有多个执行单元(例如26)等。此外,处理器12的结构可以以任何期望的方式布置。其他电路56可以包括任何可以想到的期望电路。存取控制器52可以是任何类型的电路。在一个实施例中,控制器52可以包括DMA(直接存储器存取)电路。在一个实施例中,图1示出的电路可以形成在单个集成电路上。在可替换实施例中,图1示出的电路可以形成在多个集成电路上。***10可以被用于任何期望的应用。
图2示出了图1的协处理器14的一部分的一个实施例。在图2所示的实施例中,协处理器14包括控制电路100、功能电路102、寄存器104、以及指令产生器106。在一个实施例中,控制电路100包括比较器120,其被耦合为从地址信号44接收第一地址值,以及被耦合为从基地址寄存器122接收第二地址值。比较器120将这两个接收到的地址值进行比较并确定它们是否匹配。控制电路100双向耦合到功能电路102、双向耦合到寄存器104、以及双向耦合到指令产生器106。在一个实施例中,指令产生器106包括操作码字段产生器110、地址偏移量字段产生器112、即时字段产生器114、另一指令字段产生器116、以及寄存器字段产生器118。注意,在指令产生器电路106中的电路110、112、114、116和118可以被用来产生图3的指令200中的对应字段。
仍然参考图2,指令产生器106耦合到指令导线42用于提供一个或多个指令。寄存器104耦合到数据导线50以接收或提供数据。寄存器104还双向耦合到功能电路102。协处理器14的可替换实施例可以使用电路的不同模块或部分来实现协处理器14的各个部分。图2中示出的协处理器14的实施例仅是协处理器14的多个可能的实施例中的一个。例如,功能电路102可以被实施为执行任何类型或任何数量的期望功能。
图3示出了可以由协处理器14(见图2中的指令产生器106)产生的指令200的一个实施例。图3中示出的该指令200的实施例包括识别该指令的操作码字段202、表示该指令中涉及的一个或多个寄存器的一个或多个寄存器字段204(在可替换实施例中可以实现或不实现)、一个或多个其他字段206(在可替换实施例中可以实现或不实现)并具有任何期望的功能、用于表示地址偏移量的一个或多个地址偏移量字段208(在可替换实施例中可以实现或不实现)、以及用于提供作为该指令的一部分的即时值的一个或多个即时字段210(在可替换实施例中可以实现或不实现)。可替换实施例可以使用任何期望数量的这些字段和这些字段的组合或任何期望的额外字段(未示出)。
图4示出了可以由协处理器14的一些实施例产生的指令220的一个实施例。图4示出的指令220的实施例包括标识该指令是加载指令还是存储指令的加载/存储操作码字段222、用于指定用于加载指令的目的地寄存器或用于存储指令的源寄存器的源/目的地寄存器字段224、提供用于存储器存取的基地址的基地址寄存器字段226、以及用于提供存储器存取(见图1中的存储器54)的地址偏移量的地址偏移量字段228。可替换的实施例可以使用任何期望数量的这些字段或这些字段的组合。
图5示出了被用于实现循环缓冲器55的图1的存储器54的一部分的一个实施例。
图6以表格的形式示出了根据一个实施例的当访问图5的循环缓冲器55中的采样时,图4的地址偏移量字段228指向何处。在示出的实施例中,采样1~4分别表示已经存储在图1的存储器54中的地址位置B到B+3中的输入数据。诸如图4中所示的加载指令220的多个加载指令可以由协处理器14产生并被***处理器12的指令流水线20中(见图2)。处理器12然后可以执行由协处理器14产生的加载指令220。由处理器12执行的该加载指令220可以加载处理器12和/或协处理器14中的寄存器(例如,图2中的寄存器104)。协处理器14的功能电路102(见图2)然后可以被用来对输入数据执行一个或多个计算或操作。
仍然参考图6,一旦由协处理器14确定结果值或多个结果值,则协处理器14可以使用指令产生电路106(见图2)来产生一个或多个存储指令220。这些存储指令220可以通过指令导线42被提供至处理器12的指令流水线。由处理器12执行的存储指令220可以将值1~3从处理器12中的寄存器和/或协处理器14中的寄存器(例如图2中的寄存器104)传送到存储器54(见图1)。然后存储器54中的位置C至C+2存储该结果值1~3。
以上已经描述了图7~9。
在上述说明书中,已经参考特定实施例描述了本发明。然而,本领域的技术人员应该明白,在不偏离在下面权利要求中阐明的本方面的范围的情况下,可以对本发明作出各种修改和改变。因此,说明书和附图应被理解为示意性的而不是限制性的,并且所有这样的改变都应包括在本发明的保护范围内。
上面描述了关于特定实施例的好处、优点、以及解决问题的方案。然而,这些好处、优点、解决问题的方案以及使任何好处、优点、以及解决方案能够实现或变的更显著的任何部件不被解释为是任何权利要求或所有权利要求的决定性的、必须的、必需的特征或部件。如在此所使用的术语“包括”或其任何其他变形都旨在覆盖非排他的包括,从而包括部件列表的过程、方法、物件、或装置不仅包括这些部件,而且包括没有明白列出或这些过程、方法、物件或装置固有的部件。
附加声明以支持SC14981TH。
1.一种用于将协处理器接口连接到处理器的方法,所述处理器解码并执行第一指令集,所述方法包括:
所述协处理器产生所述第一指令集的至少一个指令;以及
所述协处理器将所产生的所述第一指令集的至少一个指令提供至所述处理器用于解码并执行。
2.根据声明1所述的方法,进一步包括:
所述处理器解码并执行所产生的所述至少一个指令。
3.根据声明1所述的方法,其中所述协处理器产生所述第一指令集的所述至少一个指令包括:
从在所述第一指令集中定义的多个操作码中选择操作码;以及
提供所选择的操作码作为所产生的至少一个指令的至少一部分。
4.根据声明3所述的方法,其中所述协处理器产生所述第一指令集的所述至少一个指令包括:
计算对应于所选择的操作码的至少一个操作码字段;以及
提供所选择的操作码和所计算的操作码字段作为所产生的至少一个指令的至少一部分。
5.根据声明4所述的方法,其中计算所述至少一个操作码字段包括计算地址偏移量字段。
6.根据声明4所述的方法,其中计算所述至少一个操作码字段包括计算即时字段。
7.根据声明4所述的方法,其中计算所述至少一个操作码字段包括计算寄存器字段。
8.根据声明1所述的方法,其中所述协处理器产生所述至少一个指令是运行时间执行的。
9.根据声明1所述的方法,其中所产生的至少一个指令不存储在由所述处理器产生的指令获取地址处。
10.根据声明1所述的方法,其中所述协处理器在将所产生的至少一个指令提供至所述处理器之前,等待预定长度的时间间隔。
11.根据声明1所述的方法,其中所述协处理器产生所述至少一个指令包括:
所述协处理器提供多个指令,所述多个指令中的每个指令在所述第一指令集中,其中所述多个指令中的指令序列由所述协处理器在运行时间确定。
12.根据声明11所述的方法,其中所述协处理器从指令列表中选择所述多个指令中的每个指令。
13.一种用于将协处理器接口连接到处理器的方法,所述处理器解码并执行第一指令集,所述第一指令集包括存储指令和加载指令,所述方法包括:
所述协处理器选择对应于所述存储指令或所述加载指令的操作码;
所述协处理器计算对应于所选择的操作码的地址偏移量;
所述协处理器将所选择的操作码和所计算的地址偏移量作为产生的指令提供给所述处理器;以及
所述处理器解码并执行所产生的指令。
14.根据声明13所述的方法,其中,所选择的操作码对应于所述加载指令,所述方法进一步包括:
响应于所述处理器执行所产生的指令,所述协处理器接收数据值;以及
所述协处理器使用所述数据值来执行协处理器功能。
15.根据声明14所述的方法,其中所选择的操作码对应于所述存储指令,所述方法进一步包括:
所述协处理器执行协处理器功能并得到结果值;以及
所述协处理器提供将被存储在由所产生的指令表示的位置处的所述结果值。
16.根据声明13所述的方法,其中所产生的指令不存储在由所述处理器产生的指令获取地址处。
17.根据声明13所述的方法,进一步包括:
所述协处理器选择对应于所述存储指令或所述加载指令的第二操作码;
所述协处理器计算对应于所选择的第二操作码的第二地址偏移量;
所述协处理器将所选择的第二操作码和所计算的第二地址偏移量作为第二产生的指令提供给所述处理器;以及
所述处理器解码并执行所述第二产生的指令,所述第二产生的指令不存储在由所述处理器产生的指令获取地址处。
18.一种数据处理***,包括:
处理器,具有用于解码并执行指令集的指令的解码和执行电路,以及具有用于产生获取地址的指令获取电路;以及
协处理器,耦合到所述处理器,所述协处理器具有用于产生所述指令集的至少一个指令的指令产生电路;
其中,在第一操作模式中,所述处理器解码并执行存储在由所述处理器产生的所述获取地址处的所述指令集的指令,以及在第二操作模式中,所述处理器解码并执行由所述协处理器的所述指令产生电路产生的所述指令集的指令。
19.根据声明18所述的数据处理***,其中由所述协处理器的所述指令产生电路产生的所述指令集的所述指令不存储在由所述处理器产生的获取地址处。
20.根据声明19所述的数据处理***,其中响应于由所述处理器的所述指令获取电路产生的获取地址,提供由所述指令产生电路产生的所述指令集的所述指令。
附加声明以支持SC14982TH。
1.一种用于通过协处理器为处理器实现滤波器的方法,所述方法包括:
所述协处理器产生用于加载多个输入采样的多个加载指令;
将所产生的所述多个加载指令提供至所述处理器;
所述处理器解码并执行所产生的所述多个加载指令;
响应于所述处理器解码并执行所产生的所述多个加载指令,所述协处理器接收所述多个输入采样;以及
所述协处理器使用所述多个输入采样来执行滤波器操作。
2.根据声明1所述的方法,其中所述处理器解码并执行指令集,以及其中所产生的多个加载指令在所述指令集内。
3.根据声明1所述的方法,其中所产生的多个加载指令不存储在由所述处理器产生的获取地址处。
4.根据声明1所述的方法,进一步包括:
响应于使用所述多个输入采样执行滤波器操作,所述协处理器获取计算值;
所述协处理器产生存储指令;
所述协处理器将所产生的存储指令提供给所述处理器;以及
所述处理器解码并执行所产生的存储指令以存储所述计算值。
5.根据声明4所述的方法,其中所产生的存储指令不存储在由所述处理器产生的获取地址处。
6.根据声明4所述的方法,其中所述处理器解码并执行指令集,以及其中所产生的存储指令在所述指令集中。
7.根据声明1所述的方法,其中所述协处理器产生所述多个加载指令包括:
计算用于所述多个加载指令的每个加载指令的地址偏移量字段。
8.根据声明7所述的方法,其中计算用于所述多个加载指令的每个加载指令的所述地址偏移量字段是基于至少一个滤波器特性而执行的。
9.根据声明8所述的方法,其中所述至少一个滤波器特性选自包括滤波器操作类型、滤波器长度、输入/输入采样的数量、以及抽头数量的组。
10.根据声明1所述的方法,其中所述协处理器基于所述滤波器操作动态地确定将被产生的所述多个加载指令。
11.根据声明1所述的方法,进一步包括:
所述协处理器产生用于加载多个滤波器系数的多个第二加载指令;
将所产生的所述多个第二加载指令提供给所述处理器;
所述处理器解码并执行所产生的所述多个第二加载指令;以及
响应于所述处理器解码并执行所产生的所述多个第二加载指令,所述协处理器接收多个滤波器系数;以及
所述协处理器使用所述多个输入采样和所述多个滤波器系数来执行所述滤波器操作。
12.根据声明1所述的方法,其中由所述协处理器实现的所述滤波器包括FIR滤波器。
13.一种用于通过协处理器为处理器实现滤波器的方法,所述方法包括:
确定所述滤波器的至少一个特性,所述滤波器的所述至少一个特性选自包括滤波器类型、所述滤波器长度、以及所述滤波器的当前状态的组;
所述协处理器基于所述滤波器的所述至少一个特性产生指令序列,其中产生所述指令序列包括使用所述滤波器的所述至少一个特性计算所述指令序列中的每个指令的地址偏移量字段;
所述协处理器将所产生的所述指令序列提供给所述处理器;以及
所述处理器解码并执行所产生的所述指令序列。
14.根据声明13所述的方法,其中所产生的所述指令序列包括至少一个产生的加载指令,其中,响应于所述处理器解码并执行所产生的加载指令,所述协处理器接收输入采样。
15.根据声明14所述的方法,进一步包括:
所述协处理器使用所述输入采样来执行滤波器操作。
16.根据声明14所述的方法,其中所产生的指令序列包括至少一个产生的存储指令,其中,响应于所述处理器解码并执行所产生的所述存储指令,存储由所述协处理器计算出的输出值。
17.根据声明13所述的方法,进一步包括:
所述协处理器执行滤波器操作以获得计算值;以及其中所产生的所述指令序列包括至少一个产生的存储指令,其中所述处理器解码并执行所述产生的存储指令以存储由所述协处理器提供的所述计算值。
18.根据声明13所述的方法,其中产生所述指令序列包括使用所述滤波器的多个滤波器特性来计算所述指令序列中的每个指令的所述地址偏移量字段。
19.一种数据处理***,包括:
协处理器,用于为处理器实现滤波器,所述协处理器包括:
指令产生器,用于产生用于加载多个输入采样的多个加载指令、用于产生用于存储多个计算值的多个存储指令、以及用于将所产生的所述多个加载指令和所产生的所述多个存储指令提供给所述处理器,所述指令产生器包括地址偏移量字段产生器,其用于计算用于每个所产生的多个加载指令和用于每个所产生的多个存储指令的地址偏移量;以及
功能电路,用于使用所述多个输入采样执行滤波器操作以获得所述多个计算值;以及
处理器,耦合到所述协处理器,所述处理器包括解码和执行电路,其用于解码并执行所产生的所述多个加载指令以将所述输入采样提供给所述协处理器,以及用于解码并执行所产生的所述多个存储指令以存储所述多个计算值。
20.根据声明19所述的数据处理***,其中所产生的多个加载指令和所产生的多个存储指令不存储在由所述处理器产生的获取地址处。
附加声明以支持SC14983TH。
1.一种用于将处理器接口连接到协处理器的方法,所述协处理器能够执行多个协处理器操作,所述方法包括:
所述处理器执行从目标地址获取的指令;
响应于所述处理器执行从所述目标地址获取的所述指令,所述协处理器启动所述多个协处理器操作中的一个协处理器操作,其中,所述多个协处理器操作中的所述一个协处理器操作是基于所述目标地址的至少一部分来选择的。
2.根据声明1所述的方法,进一步包括:
在所述处理器执行从所述目标地址获取的所述指令之前,所述处理器对导致到所述目标地址的流改变的指令进行解码。
3.根据声明2所述的方法,其中导致到所述目标地址的流改变的指令是分支指令。
4.根据声明2所述的方法,其中到所述目标地址的流改变的指令是至子程序指令的分支。
5.根据声明4所述的方法,进一步包括:
所述协处理器在启动所述多个协处理器操作中的所述一个协处理器操作之后完成所述多个协处理器操作中的所述一个协处理器操作;
将从子程序返回指令提供给所述处理器;以及
所述处理器解码并执行所述从子程序返回指令。
6.根据声明1所述的方法,进一步包括:
响应于从所述目标地址获取的所述指令,所述协处理器将第一指令提供给所述处理器;以及
所述处理器执行并解码所述第一指令。
7.根据声明6所述的方法,进一步包括:
所述处理器执行从在所述目标地址之后的第二指令地址获取的第二指令;
响应于从所述第二指令地址获取的所述第二指令,所述协处理器将第二指令提供给所述处理器;以及
所述处理器执行并解码所述第二指令。
8.根据声明7所述的方法,其中所述第二指令包括流指令的改变。
9.根据声明8所述的方法,其中所述第二指令导致到所述第一指令地址之后的地址的流的改变。
10.根据声明1所述的方法,其中所述多个协处理器操作中的每个协处理器操作对应于至少一个指令地址,所述至少一个指令地址不存取物理存储器阵列位置。
11.一种将处理器接口连接到协处理器的方法,所述协处理器能够执行多个协处理器操作,所述方法包括:
所述处理器从存储器获取多个指令;
所述处理器执行所述多个指令,其中所述多个指令的第一指令包括具有目标地址的分支指令;
所述处理器执行从所述目标地址获取的指令;
响应于所述处理器执行从所述目标地址获取的所述指令,所述协处理器向所述处理器提供至少一个指令;以及
所述处理器解码并执行所述至少一个指令。
12.根据声明11所述的方法,进一步包括:
使用所述目标地址选择多个协处理器操作中的一个协处理器操作,其中由所述协处理器提供给所述处理器的所述至少一个指令包括加载或存储执行所选择的协处理器操作所使用的数据的指令。
13.根据声明11所述的方法,其中所述分支指令包括至子程序指令的分支,以及由所述协处理器提供给所述处理器的至少一个指令包括从子程序返回指令。
14.根据声明11所述的方法,其中执行所述协处理器向所述处理器提供所述至少一个指令,使得响应于由所述处理器产生的指令获取地址,所述至少一个指令的每个指令被提供给所述处理器。
15.根据声明14所述的方法,其中所述指令获取地址落在地址的预定范围内,所述方法进一步包括:
所述协处理器基于所述目标指令落在所述地址的预定范围中的位置来选择所述多个协处理器操作中的一个协处理器操作。
16.根据声明15所述的方法,其中由所述协处理器提供至所述处理器的所述至少一个指令包括到第二目标地址的流指令的改变,所述第二目标地址位于所述地址的预定范围之外。
17.根据声明15所述的方法,其中所述地址的预定范围不对应于任何物理存储位置。
18.一种数据处理***,包括:
处理器,具有用于解码并执行指令集的指令的解码和执行单元,以及具有用于产生获取地址的指令获取电路;以及
协处理器,耦合到所述处理器,所述协处理器具有指令产生电路,其用于产生所述指令集中的指令并在所述获取地址落在地址的预定范围中时将所产生的指令提供至所述处理器。
19.根据声明18所述的数据处理***,其中所述协处理器进一步包括:
功能电路,用于执行所述至少一个协处理器操作,在由所述指令获取电路产生的获取地址落在所述地址的预定范围中时,所述协处理器启动所述至少一个协处理器操作,所述协处理器基于所述获取地址落在所述地址的预定范围内的位置来选择所述至少一个协处理器操作。
20.根据声明18所述的数据处理***,进一步包括:
基寄存器地址,用于存储所述地址的预定范围的基地址;以及
比较器,用于将获取地址与所述基地址进行比较。
21.根据声明18所述的数据处理***,其中所述地址的预定范围不对应于任何物理存储位置。
Claims (9)
1.一种用于将协处理器接口连接到处理器的方法,所述处理器解码并执行第一指令集,所述方法包括:
所述协处理器产生所述第一指令集的至少一个指令;以及
所述协处理器将所产生的所述第一指令集的所述至少一个指令提供至所述处理器用于解码并执行。
2.一种用于将协处理器接口连接到处理器的方法,所述处理器解码并执行第一指令集,所述第一指令集包括存储指令和加载指令,所述方法包括:
所述协处理器选择对应于所述存储指令或所述加载指令的操作码;
所述协处理器计算对应于所选择的操作码的地址偏移量;
所述协处理器将所选择的操作码和所计算的地址偏移量作为产生的指令提供给所述处理器;以及
所述处理器解码并执行所产生的指令。
3.一种数据处理***,包括:
处理器,具有用于解码并执行指令集的指令的解码和执行电路,以及具有用于产生获取地址的指令获取电路;以及
协处理器,耦合到所述处理器,所述协处理器具有用于产生所述指令集的至少一个指令的指令产生电路;
其中,在第一操作模式中,所述处理器解码并执行存储在由所述处理器产生的所述获取地址处的所述指令集的指令,以及在第二操作模式中,所述处理器解码并执行由所述协处理器的所述指令产生电路产生的所述指令集的指令。
4.一种用于通过协处理器为处理器实现滤波器的方法,所述方法包括:
所述协处理器产生用于加载多个输入采样的多个加载指令;
将所产生的多个加载指令提供至所述处理器;
所述处理器解码并执行所产生的多个加载指令;
响应于所述处理器解码并执行所产生的所述多个加载指令,所述协处理器接收所述多个输入采样;以及
所述协处理器使用所述多个输入采样来执行滤波器操作。
5.一种用于通过协处理器为处理器实现滤波器的方法,所述方法包括:
确定所述滤波器的至少一个特性,所述滤波器的所述至少一个特性选自包括滤波器类型、滤波器长度、以及所述滤波器的当前状态的组;
所述协处理器基于所述滤波器的所述至少一个特性产生指令序列,其中产生所述指令序列包括使用所述滤波器的所述至少一个特性来计算所述指令序列中的每个指令的地址偏移量字段;
所述协处理器将所产生的所述指令序列提供给所述处理器;以及
所述处理器解码并执行所产生的所述指令序列。
6.一种数据处理***,包括:
协处理器,用于为处理器实现滤波器,所述协处理器包括:
指令产生器,用于产生用于加载多个输入采样的多个加载指令、用于产生用于存储多个计算值的多个存储指令、以及用于将所产生的所述多个加载指令和所产生的所述多个存储指令提供给所述处理器,所述指令产生器包括地址偏移量字段产生器,用于计算用于所产生的所述多个加载指令的每一个和用于所产生的所述多个存储指令的每一个的地址偏移量;以及
功能电路,用于使用所述多个输入采样执行滤波器操作以获得所述多个计算值;以及
处理器,耦合到所述协处理器,所述处理器包括解码和执行电路,用于解码并执行所产生的所述多个加载指令以将所述输入采样提供给所述协处理器,以及用于解码并执行所产生的所述多个存储指令以存储所述多个计算值。
7.一种用于将处理器接口连接到协处理器的方法,所述协处理器能够执行多个协处理器操作,所述方法包括:
所述处理器执行从目标地址获取的指令;
响应于所述处理器执行从所述目标地址获取的所述指令,所述协处理器启动所述多个协处理器操作中的一个协处理器操作,其中,所述多个协处理器操作中的所述一个协处理器操作是基于所述目标地址的至少一部分来选择的。
8.一种将处理器接口连接到协处理器的方法,所述协处理器能够执行多个协处理器操作,所述方法包括:
所述处理器从存储器获取多个指令;
所述处理器执行所述多个指令,其中所述多个指令的第一指令包括具有目标地址的分支指令;
所述处理器执行从所述目标地址获取的指令;
响应于所述处理器执行从所述目标地址获取的所述指令,所述协处理器提供至少一个指令至所述处理器;以及
所述处理器解码并执行所述至少一个指令。
9.一种数据处理***,包括:
处理器,具有用于解码并执行指令集的指令的解码和执行电路,以及具有用于产生获取地址的指令获取电路;以及
协处理器,耦合到所述处理器,所述协处理器具有指令产生电路,其用于产生所述指令集的指令,并在所述获取地址落在地址的预定范围中时将所产生的指令提供至所述处理器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/426,628 US20070300042A1 (en) | 2006-06-27 | 2006-06-27 | Method and apparatus for interfacing a processor and coprocessor |
US11/426,628 | 2006-06-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101479712A true CN101479712A (zh) | 2009-07-08 |
Family
ID=38846364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA200780024086XA Pending CN101479712A (zh) | 2006-06-27 | 2007-04-24 | 用于接口连接处理器和协处理器的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20070300042A1 (zh) |
KR (1) | KR20090023418A (zh) |
CN (1) | CN101479712A (zh) |
WO (1) | WO2008002716A2 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101895743A (zh) * | 2010-03-11 | 2010-11-24 | 宇龙计算机通信科技(深圳)有限公司 | 一种处理器间编解码数据的传输方法、***及可视电话 |
CN104424033A (zh) * | 2013-09-02 | 2015-03-18 | 联想(北京)有限公司 | 一种电子设备及数据处理方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7698542B2 (en) * | 2006-08-25 | 2010-04-13 | Infineon Technologies Ag | Circuit and method for comparing program counter values |
CN102043609B (zh) * | 2010-12-14 | 2013-11-20 | 东莞市泰斗微电子科技有限公司 | 一种浮点协处理器及相应的配置、控制方法 |
US10733141B2 (en) * | 2018-03-27 | 2020-08-04 | Analog Devices, Inc. | Distributed processor system |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4882674A (en) * | 1985-03-05 | 1989-11-21 | Wang Laboratories, Inc. | Apparatus and method for control of one computer system by another computer system |
US5053949A (en) * | 1989-04-03 | 1991-10-01 | Motorola, Inc. | No-chip debug peripheral which uses externally provided instructions to control a core processing unit |
EP0624844A2 (en) * | 1993-05-11 | 1994-11-17 | International Business Machines Corporation | Fully integrated cache architecture |
US5790881A (en) * | 1995-02-07 | 1998-08-04 | Sigma Designs, Inc. | Computer system including coprocessor devices simulating memory interfaces |
US5960209A (en) * | 1996-03-11 | 1999-09-28 | Mitel Corporation | Scaleable digital signal processor with parallel architecture |
US6223277B1 (en) * | 1997-11-21 | 2001-04-24 | Texas Instruments Incorporated | Data processing circuit with packed data structure capability |
US6480952B2 (en) * | 1998-05-26 | 2002-11-12 | Advanced Micro Devices, Inc. | Emulation coprocessor |
US6446221B1 (en) * | 1999-05-19 | 2002-09-03 | Arm Limited | Debug mechanism for data processing systems |
US6526430B1 (en) * | 1999-10-04 | 2003-02-25 | Texas Instruments Incorporated | Reconfigurable SIMD coprocessor architecture for sum of absolute differences and symmetric filtering (scalable MAC engine for image processing) |
US20010052053A1 (en) * | 2000-02-08 | 2001-12-13 | Mario Nemirovsky | Stream processing unit for a multi-streaming processor |
WO2001063434A1 (en) * | 2000-02-24 | 2001-08-30 | Bops, Incorporated | Methods and apparatus for dual-use coprocessing/debug interface |
US6938132B1 (en) * | 2002-04-04 | 2005-08-30 | Applied Micro Circuits Corporation | Memory co-processor for a multi-tasking system |
US6986023B2 (en) * | 2002-08-09 | 2006-01-10 | Intel Corporation | Conditional execution of coprocessor instruction based on main processor arithmetic flags |
US7395410B2 (en) * | 2004-07-06 | 2008-07-01 | Matsushita Electric Industrial Co., Ltd. | Processor system with an improved instruction decode control unit that controls data transfer between processor and coprocessor |
JP4211751B2 (ja) * | 2005-03-25 | 2009-01-21 | セイコーエプソン株式会社 | 集積回路装置 |
-
2006
- 2006-06-27 US US11/426,628 patent/US20070300042A1/en not_active Abandoned
-
2007
- 2007-04-24 CN CNA200780024086XA patent/CN101479712A/zh active Pending
- 2007-04-24 WO PCT/US2007/067287 patent/WO2008002716A2/en active Application Filing
- 2007-04-24 KR KR1020087031623A patent/KR20090023418A/ko not_active Application Discontinuation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101895743A (zh) * | 2010-03-11 | 2010-11-24 | 宇龙计算机通信科技(深圳)有限公司 | 一种处理器间编解码数据的传输方法、***及可视电话 |
CN101895743B (zh) * | 2010-03-11 | 2013-11-13 | 宇龙计算机通信科技(深圳)有限公司 | 一种处理器间编解码数据的传输方法、***及可视电话 |
CN104424033A (zh) * | 2013-09-02 | 2015-03-18 | 联想(北京)有限公司 | 一种电子设备及数据处理方法 |
CN104424033B (zh) * | 2013-09-02 | 2018-10-12 | 联想(北京)有限公司 | 一种电子设备及数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2008002716A2 (en) | 2008-01-03 |
WO2008002716A3 (en) | 2008-07-24 |
US20070300042A1 (en) | 2007-12-27 |
KR20090023418A (ko) | 2009-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101479712A (zh) | 用于接口连接处理器和协处理器的方法和装置 | |
US6611909B1 (en) | Method and apparatus for dynamically translating program instructions to microcode instructions | |
JPH1124929A (ja) | 演算処理装置およびその方法 | |
KR100875377B1 (ko) | 처리 시스템에서 스택 팝 및 푸쉬 동작들을 수행하는 장치 및 방법 | |
US7805590B2 (en) | Coprocessor receiving target address to process a function and to send data transfer instructions to main processor for execution to preserve cache coherence | |
EP3289444A1 (en) | Explicit instruction scheduler state information for a processor | |
US20120089818A1 (en) | Decoding instructions from multiple instructions sets | |
US20030159019A1 (en) | Prediction of instructions in a data processing apparatus | |
US20080244224A1 (en) | Scheduling a direct dependent instruction | |
US6807626B1 (en) | Execution of a computer program | |
US8285976B2 (en) | Method and apparatus for predicting branches using a meta predictor | |
NO167114B (no) | Lagerprogrammerbar styring. | |
US20160378492A1 (en) | Decoding Information About a Group of Instructions Including a Size of the Group of Instructions | |
US20070220235A1 (en) | Instruction subgraph identification for a configurable accelerator | |
US7139903B2 (en) | Conflict free parallel read access to a bank interleaved branch predictor in a processor | |
KR20010070512A (ko) | 데이터 처리 장치 | |
CN101587467B (zh) | 一种应用于可重构计算架构的重构信息发送引擎 | |
JP3490005B2 (ja) | 命令制御装置及びその方法 | |
CN110383232B (zh) | 具有序列处理单元的存储器控制*** | |
US20130205171A1 (en) | First and second memory controllers for reconfigurable computing apparatus, and reconfigurable computing apparatus capable of processing debugging trace data | |
JPH09218786A (ja) | 情報処理装置 | |
CN105308557B (zh) | 一种数据处理装置及方法 | |
CN109783717A (zh) | 查询任务处理方法、***、服务器集群及装置、计算机可读存储介质 | |
US8677099B2 (en) | Reconfigurable processor with predicate signal activated operation configuration memory and separate routing configuration memory | |
US6430682B1 (en) | Reliable branch predictions for real-time applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 |
Open date: 20090708 |