CN1153136C - 执行来自多个指令源的指令的处理器和方法 - Google Patents
执行来自多个指令源的指令的处理器和方法 Download PDFInfo
- Publication number
- CN1153136C CN1153136C CNB008028206A CN00802820A CN1153136C CN 1153136 C CN1153136 C CN 1153136C CN B008028206 A CNB008028206 A CN B008028206A CN 00802820 A CN00802820 A CN 00802820A CN 1153136 C CN1153136 C CN 1153136C
- Authority
- CN
- China
- Prior art keywords
- processor
- instruction
- command source
- interface arrangement
- ppu
- 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
Links
- 238000000034 method Methods 0.000 title claims description 17
- 230000008901 benefit Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 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
-
- 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/3802—Instruction prefetching
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Microcomputers (AREA)
Abstract
一种用于执行来自多个指令源(2;6)的指令的内部处理器(1),其中,接口装置(11)可连接到至少一个外部指令源(2),允许交错执行来自指令源(2;6)的指令,其执行过程由外部指令源进行控制。
Description
技术领域
本发明一般涉及执行来自多个指令源的指令的处理器和方法,更具体地说,它涉及处理器,其中处理器的执行过程由外部处理器来控制。
背景技术
传统处理器即CPU通常包括至少一个处理单元和一个程序控制单元,这些单元包括各种处理和控制电路,还包括一组寄存器,用于暂时存储指令、存储器地址以及数据等。程序控制单元中的控制电路负责包括如下步骤的机器或指令周期:取指令、对操作码进行解码以及将信息路由选择到预定的实体,并为CPU的全部操作提供适当的控制信号。程序指令和数据从主存储器中取出。
但是在某些情况下,却需要对集成在通用芯片或专用芯片上的处理器进行控制。例如,在芯片的测试阶段或者甚至在芯片的实操作中,需要完全控制处理器的执行过程并读取处理器的内部状态信息。
美国专利US-A-5 410 544公开了一种设备,它用于测试包含了经内部总线与寄存器相连接的处理器的装置。在一个实施例中,这种设备对带有处理器的快闪存储器单元提供外部控制。对处理器进行编程,使其能够执行一种算法,该算法在被执行时会对所述装置进行操作。当处理器执行算法时,内部总线被处理器用来访问状态数据。该设备包括设置在所述装置外部的外部处理器、设置在所述装置上的接口装置和开关。该接口装置与内部和外部处理器相连接,用于接收许多来自外部处理器的命令。可以从外部处理器发送到接口装置单元的指令的示例是读取状态或读取存储器。这些命令中包含了能够指示处理器去执行储存在处理器中的算法的能力。通过发出另一个命令,即“陷阱门”命令,外部处理器就可以控制某些寄存器,从而由处理器来模拟算法的执行。
发明内容
根据本发明,提供一种布置在芯片上的改进处理器,它允许以透明且有效的方式从外部处理器来进行控制。
这个目的可以由处理器来实现,使得可以按照本发明执行来自多个指令源的指令。布置在处理器中的接口装置可以与至少一个外部指令源相连接,使得可以交错执行来自多个指令源的指令,执行过程由外部指令源来控制。
根据本发明,提供了一种用于执行来自多个指令源的指令的处理器,其特征在于:一个接口装置可连接到至少一个外部指令源,允许交错执行来自所述指令源的指令,其执行过程由所述外部指令源进行控制。
在上述处理器中,所述接口装置连接到所述处理器的程序寄存器,用于由所述外部指令源对所述处理器执行顺序控制。
所述接口装置可以连接到所述处理器的指令寄存器,用于由所述外部指令源对所述处理器执行顺序控制。
上述处理器还可以包括一个主存储装置,使所述处理器从其中获取指令。
在上述处理器中,一个外部处理器可以连接到所述接口装置并提供指令给所述处理器。
本发明还提供了一种在处理器中执行来自多个指令源的指令的方法,其特征在于所述方法包括以下步骤:对于外部指令源提供的每条指令,对所述指令进行解码并执行;而如果外部指令源未提供指令,就从另一个指令源取指令,对所述指令进行解码并执行。
在所述方法中,还可以包括以下步骤:从由所述外部指令源确定的所述另一个指令源的存储单元取指令。
本发明的一个优点在于外部处理器可以有效地控制处理器的操作,并可以用处理器同样的方式来访问处理器的内部状态。
为了更详细地说明本发明及其优点和功能,下面将结合附图对最佳实施例进行详细说明。
附图说明
图1是根据本发明的处理器框图,该处理器与外部处理器相连接;
图2是图1中处理器中指令周期的流程图。
具体实施方式
参考图1,图1中说明了一个能够解释并执行程序的处理器1或CPU。在某些情况下,这种处理器集成在通用芯片或专用芯片上。因此,根据本发明的处理器就称作处理器。根据本发明的处理器被设计成由另一个称作外部处理器2的处理器来控制。
与通用处理器类似,本发明的一个实施例包括数据处理单元3和程序控制单元4。处理单元3又包括各种处理电路(图中未标出),程序控制单元4包括各种控制电路5。高速寄存器也包含在处理器1中,用于暂时储存指令、存储器地址以及数据。程序控制单元4取指令、对操作码进行解码以及生成用于处理器其它组件的控制信号并通过处理器各部分(寄存器、存储器等)来对数据和信息进行路由。为了使各元件保持同步,时钟电路(图中未示出)被用来产生定时信号。
在实施例中,程序和数据储存在主存储器和片上(on chip)主存储器6中。数据传送在存储器6和数据寄存器7之间进行,所用的存储器地址储存在地址寄存器8中。要解码及执行的指令的操作码储存在指令寄存器9中。要执行的下一条指令的地址储存在另一个称作程序计数器10的寄存器中。
在处理器的指令周期期间出现连续动作或操作,将在图2的流程图中进行说明。
根据本发明,如果指令已由外部处理器2提供,则要执行的下一条指令(操作码或操作数)则从接口装置11中取出,并加载到程序控制单元4的指令寄存器9中。外部处理器可以为处理器1提供连续指令,即指令流。但是,如果外部处理器2没有提供任何指令,则下一条指令则从主存储器6、RAM或高速缓冲存储器中取出。该指令由控制电路5来进行解码和解释,并由数据处理单元来执行。结果保存在数据处理单元3的适当寄存器中或主存储器6中。
这样,通过两种指令源,即主存储器6和经接口装置11连接的外部处理器2,提供了两种不同的指令流。这两种指令流几乎是完全独立的。程序计数器10是可用于两种指令流之间的唯一直接交互作用(the only directinteraction)。
当指令由外部处理器提供时,这些指令由处理器经接口装置11取出并执行。如果外部处理器2没有再提供指令,则为处理器1的程序计数器提供下一条指令的地址,处理器1的正常操作继续进行。在取出下一条指令之后,程序计数器10自动递增。因此,外部处理器2可以有效地控制处理器的操作。但反过来却不行。
为了进行适当的操作,外部处理器在某些情况下可能需要接口装置11的反馈信息。
尽管通过本发明的具体实施例描述了本发明,然而显然本发明提供了一种完全能满足上述目标和优点的处理器,或者,对本领域的技术人员来说,显然可以进行修改和变化。
如上所述,在本发明的其它实施例中,处理器可以是通用或专用芯片的一部分。这样,在某些情况下的处理器具有完全不同的设计并例如包括:诸如专用寄存器的附加寄存器,以方便分支控制;提供对一个以上指令进行同时处理的装置;以及各种数据处理能力等。但是,处理器仍具有某种接口装置,使得所述处理器可以至少从两种不同源获取其指令,其中一种源控制处理器的执行过程。
Claims (10)
1.一种用于执行来自多个指令源(2;6)的指令的处理器,其特征在于:接口装置(11)可连接到至少一个外部指令源(2),允许交错执行来自所述指令源(2;6)的指令,其执行过程由所述外部指令源进行控制。
2.根据权利要求1的处理器,其特征在于:所述接口装置(11)连接到所述处理器(1)的程序寄存器(10),用于由所述外部指令源(2)对所述处理器(1)执行顺序控制。
3.根据权利要求1或2的处理器(1),其特征在于:所述接口装置(11)连接到所述处理器(1)的指令寄存器(9),用于由所述外部指令源(2)对所述处理器(1)执行顺序控制。
4.根据权利要求1或2的处理器(1),其特征在于主存储装置(6),使所述处理器从其中获取指令。
5.根据权利要求1或2的处理器(1),其特征在于外部处理器连接到所述接口装置(11)并提供指令给所述处理器(1)。
6.根据权利要求3的处理器(1),其特征在于主存储装置(6),使所述处理器从其中获取指令。
7.根据权利要求3的处理器(1),其特征在于外部处理器连接到所述接口装置(11)并提供指令给所述处理器(1)。
8.根据权利要求4的处理器(1),其特征在于外部处理器连接到所述接口装置(11)并提供指令给所述处理器(1)。
9.一种在处理器(1)中执行来自多个指令源(2;6)的指令的方法,其特征在于所述方法包括以下步骤:
对于外部指令源(2)提供的每条指令,对所述指令进行解码并执行;
而如果外部指令源(2)未提供指令,就从另一个指令源(6)取指令,对所述指令进行解码并执行。
10.根据权利要求9的方法,其特征在于包括以下步骤:
从由所述外部指令源(2)确定的所述另一个指令源(6)的存储单元取指令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE9900118A SE514785C2 (sv) | 1999-01-18 | 1999-01-18 | Processor och metod för att exekvera instruktioner från flera instruktionskällor |
SE99001182 | 1999-01-18 | ||
SE9900118-2 | 1999-01-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1337023A CN1337023A (zh) | 2002-02-20 |
CN1153136C true CN1153136C (zh) | 2004-06-09 |
Family
ID=20414117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB008028206A Expired - Lifetime CN1153136C (zh) | 1999-01-18 | 2000-01-13 | 执行来自多个指令源的指令的处理器和方法 |
Country Status (10)
Country | Link |
---|---|
EP (1) | EP1177499B1 (zh) |
JP (1) | JP2002535749A (zh) |
KR (1) | KR100705872B1 (zh) |
CN (1) | CN1153136C (zh) |
AT (1) | ATE413645T1 (zh) |
AU (1) | AU2335700A (zh) |
DE (1) | DE60040733D1 (zh) |
ES (1) | ES2316347T3 (zh) |
SE (1) | SE514785C2 (zh) |
WO (1) | WO2000042506A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7617383B2 (en) | 2006-02-16 | 2009-11-10 | Vns Portfolio Llc | Circular register arrays of a computer |
KR20090003217A (ko) | 2006-02-16 | 2009-01-09 | 브이엔에스 포트폴리오 엘엘씨 | 컴퓨터들의 어레이 간의 자원들의 할당 |
EP1821211A3 (en) * | 2006-02-16 | 2008-06-18 | Technology Properties Limited | Cooperative multitasking method in a multiprocessor system |
TW200817925A (en) | 2006-03-31 | 2008-04-16 | Technology Properties Ltd | Method and apparatus for operating a computer processor array |
US7555637B2 (en) | 2007-04-27 | 2009-06-30 | Vns Portfolio Llc | Multi-port read/write operations based on register bits set for indicating select ports and transfer directions |
CN102033736A (zh) * | 2010-12-31 | 2011-04-27 | 清华大学 | 一种指令集可扩展处理器的控制方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2215873A (en) * | 1988-03-23 | 1989-09-27 | Benchmark Technologies | Inter-processor status communication |
US5410544A (en) * | 1993-06-30 | 1995-04-25 | Intel Corporation | External tester control for flash memory |
-
1999
- 1999-01-18 SE SE9900118A patent/SE514785C2/sv not_active IP Right Cessation
-
2000
- 2000-01-13 WO PCT/SE2000/000040 patent/WO2000042506A1/en active IP Right Grant
- 2000-01-13 JP JP2000594015A patent/JP2002535749A/ja active Pending
- 2000-01-13 KR KR1020017008841A patent/KR100705872B1/ko active IP Right Grant
- 2000-01-13 ES ES00902227T patent/ES2316347T3/es not_active Expired - Lifetime
- 2000-01-13 AT AT00902227T patent/ATE413645T1/de not_active IP Right Cessation
- 2000-01-13 AU AU23357/00A patent/AU2335700A/en not_active Abandoned
- 2000-01-13 CN CNB008028206A patent/CN1153136C/zh not_active Expired - Lifetime
- 2000-01-13 EP EP00902227A patent/EP1177499B1/en not_active Expired - Lifetime
- 2000-01-13 DE DE60040733T patent/DE60040733D1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
SE514785C2 (sv) | 2001-04-23 |
ATE413645T1 (de) | 2008-11-15 |
EP1177499A1 (en) | 2002-02-06 |
KR20010101498A (ko) | 2001-11-14 |
SE9900118L (sv) | 2000-07-19 |
CN1337023A (zh) | 2002-02-20 |
WO2000042506A1 (en) | 2000-07-20 |
JP2002535749A (ja) | 2002-10-22 |
ES2316347T3 (es) | 2009-04-16 |
SE9900118D0 (sv) | 1999-01-18 |
EP1177499B1 (en) | 2008-11-05 |
KR100705872B1 (ko) | 2007-04-09 |
DE60040733D1 (de) | 2008-12-18 |
AU2335700A (en) | 2000-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6542985B1 (en) | Event counter | |
US5408626A (en) | One clock address pipelining in segmentation unit | |
DE68928812T2 (de) | Vorrichtung zur Auflösung von einer variablen Anzahl von möglichen Speicherzugriffskonflikten in einem Pipeline-Rechnersystem und Verfahren dazu | |
DE69927456T2 (de) | Verwaltung eines FIFO zur Abalufverfolgung | |
US5446849A (en) | Electronic computer which executes squash branching | |
Marwedel | Tree-based mapping of algorithms to predefined structures | |
CN1484786A (zh) | 在单指令多数据通路结构中的非整数倍大小阵列循环处理 | |
US5689694A (en) | Data processing apparatus providing bus attribute information for system debugging | |
EP0080901A2 (en) | Data processing apparatus | |
CN1153136C (zh) | 执行来自多个指令源的指令的处理器和方法 | |
GB2024475A (en) | Memory access controller | |
KR100194850B1 (ko) | 디지털 신호 처리 장치 | |
JPH0527971A (ja) | 情報処理装置 | |
CN1841315A (zh) | 多指令集数据处理系统内的条件分支指令编码 | |
US20010016899A1 (en) | Data-processing device | |
US5689670A (en) | Data transferring system with multiple port bus connecting the low speed data storage unit and the high speed data storage unit and the method for transferring data | |
CA2333563C (en) | Method and apparatus for distributing commands to a plurality of circuit blocks | |
JP2522562B2 (ja) | プログラマブルコントロ―ラ | |
JP2522561B2 (ja) | プログラマブルコントロ―ラ | |
KR20010011683A (ko) | 중앙연산처리장치 | |
JPH01310462A (ja) | マイクロコンピュータ応用装置 | |
JPH06301537A (ja) | 命令フェッチ回路 | |
JPH03141429A (ja) | 電子計算機 | |
KR19990026795A (ko) | 마이크로프로세서 | |
JPH03119424A (ja) | 情報処理方式及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
C10 | Entry into substantive examination | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20040609 |