ES2316347T3 - Procesador y metodo de ejecucion de instrucciones desde varias fuentes de instruccion. - Google Patents
Procesador y metodo de ejecucion de instrucciones desde varias fuentes de instruccion. Download PDFInfo
- Publication number
- ES2316347T3 ES2316347T3 ES00902227T ES00902227T ES2316347T3 ES 2316347 T3 ES2316347 T3 ES 2316347T3 ES 00902227 T ES00902227 T ES 00902227T ES 00902227 T ES00902227 T ES 00902227T ES 2316347 T3 ES2316347 T3 ES 2316347T3
- Authority
- ES
- Spain
- Prior art keywords
- instructions
- instruction
- processor
- internal processor
- external
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 secondary processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a secondary 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
Un procesador interno (1) para la ejecución de instrucciones desde varias fuentes de instrucciones (2; 6), en donde el mencionado procesador interno (1) comprende una memoria principal (6), y caracterizada por los medios de interfaz (11) conectables al menos a una fuente externa de instrucciones (2), permitiendo la ejecución del entrelazado de instrucciones desde las mencionadas fuentes de instrucciones (2; 6), controladas por la mencionada fuente (2) de instrucciones externa, en donde el procesador interno está configurado para: cada una de las instrucciones suministradas por una fuente (2) externa de instrucciones, capturando la instrucción desde los medios de interfaz (11), decodificando y ejecutando la mencionada instrucción; o bien si no se suministra ninguna instrucción por una fuente (2) externa de instrucciones, capturando una instrucción de la memoria principal (6), decodificando y ejecutando la mencionada instrucción.
Description
Procesador y método de ejecución de
instrucciones desde varias fuentes de instrucción.
La presente invención está relacionada en
general con un procesador y con un método de ejecución de
instrucciones procedentes de varias fuentes de instrucciones, y más
particularmente con un procesador interno, en donde la ejecución del
procesador interno está controlada por un procesador externo.
Un procesador convencional o CPU comprende
normalmente al menos una unidad de proceso y una unidad de control
que incluye varios circuitos de procesamiento y control, así como
también un conjunto de registros, que tienen por fin el
almacenamiento temporal de instrucciones, direcciones de la memoria,
y datos. Los circuitos de control en la unidad de control son
responsables en la máquina o en el ciclo de instrucciones que
comprenden la captura de instrucciones, códigos operativos de
decodificación, información de enrutado hacia la entidad deseada, y
proporcionando señales de control apropiadas para todas las acciones
de la CPU. Las instrucciones de los programas y los datos son
capturados desde una memoria principal.
No obstante, en algunos casos se desea controlar
un procesador integrado en un chip de propósito general o especial.
Por ejemplo, durante la fase de pruebas o incluso durante la
operación real del chip, se desea tener el control completo de la
ejecución y de la información de lectura del estado interno del
procesador.
El documento
US-A-5410544 expone un aparato para
comprobar una unidad que comprende un procesador interno acoplado a
un registro mediante un bus interno. En una realización, el aparato
proporciona un control externo en una unidad de memoria de tipo
Flash que tiene un procesador interno. El procesador interno está
programado de forma que pueda ejecutar un algoritmo que pueda
ejecute una operación en la unidad cuando se ejecute. Se utiliza un
bus interno por el procesador interno para tener acceso a un estado
de datos cuando el procesador interno esté ejecutando el algoritmo.
El aparato comprende un procesador externo dispuesto externamente a
la unidad y una interfaz y un conmutador dispuestos en la unidad. La
interfaz está acoplada a los procesadores interno y externo,
destinada a la recepción de una pluralidad de órdenes desde el
procesador externo. Ejemplos de órdenes que pueden ser enviadas
desde el procesador externo a la unidad de interfaz es el estado de
lectura o la lectura de la memoria. Se incluye en las órdenes la
capacidad de ordenar al procesador interno de que ejecute un
algoritmo que haya sido almacenado dentro del procesador interno.
Mediante la emisión de otra orden de
"puerta-trampa", el procesador externo puede
tomar el control de algunos registros y simular por tanto la
ejecución de algoritmos mediante el procesador interno.
De acuerdo con la presente invención, se
proporciona un procesador interno mejorado configurado en un chip,
el cual permite el control desde un procesador externo de una forma
transparente y eficiente.
Este objeto se obtiene mediante un procesador
interno, que permite la ejecución de instrucciones desde varias
fuentes de instrucciones de acuerdo con la invención. Una interfaz
dispuesta en el procesador es conectable al menos a una fuente de
instrucciones externa, permitiendo la ejecución con el entrelazado
de instrucciones desde varias fuentes de instrucciones, cuya
ejecución está controlada por la fuente externa de
instrucciones.
Una ventaja de la presente invención es que el
procesador externo puede controlar la operación del procesador
interno de una forma eficiente, y tiene el acceso al estado interno
del procesador interno de la misma forma que el propio procesador
interno.
Con el fin de exponer la invención con más
detalles, así como las ventajas y características de la invención,
se hacen referencias en la siguiente descripción detallada de la
realización preferida, con respecto a los dibujos adjuntos, en los
cuales:
la figura 1 es un diagrama de bloques de un
procesador interno, de acuerdo con la invención, conectado a un
procesador externo; y
la figura 2 es un diagrama de flujo del ciclo de
instrucciones en el procesador interno de la figura 1.
Con referencia a la figura 1, se muestra un
procesador o una CPU 1 capaz de interpretar y ejecutar programas. En
algunos casos, tal como un procesador que está integrado en un chip
de propósito general o especial. En consecuencia, el procesador de
acuerdo con la invención se denomina como un procesador interno. El
procesador interno de acuerdo con la invención está diseñado para
estar controlado por otro procesador denominado como un procesador
externo 2.
De forma similar a un procesador de propósito
general, una realización de la presente invención comprende una
unidad 3 de proceso de datos, y una unidad 4 de control de
programas. La unidad de procesamiento 3 comprende además distintas
clases de circuitos de procesamiento no mostrados en los dibujos, y
en donde la unidad de control 4 comprende varios circuitos de
control 5. Los registros de alta velocidad se encuentran incluidos
también en el procesador 1, para el almacenamiento temporal de las
instrucciones, direcciones de la memoria, y datos. La unidad de
control 4 captura las instrucciones, decodificando los códigos
operativos, y genera las señales de control para los demás
componentes del procesador, y realiza el enrutamiento de los datos y
de la información a través de las distintas partes del procesador:
registros, memoria, etc. Con el fin de sincronizar los distintos
componentes, se utiliza un circuito de conmutación con reloj, no
mostrado en los dibujos, para generar las señales de sincronización
en el tiempo.
Los programas y datos están almacenados en una
memoria principal, y en una memoria principal 6 del chip en la
realización. Tiene lugar una transferencia de datos entre la memoria
6 y un registro de datos 7, y en donde la dirección de la memoria
utilizada está almacenada en un registro de direcciones 8. El código
de operación de una instrucción a decodificar y ejecutar está
almacenado en un registro de instrucciones 9. La dirección de la
siguiente instrucción a ejecutar se almacena incluso en otro
registro denominado como el contador del programa 10.
Durante el ciclo de instrucciones del
procesador, tiene lugar una secuencia de acciones o de operaciones,
que se ilustran mediante el diagrama de flujo en la figura 2.
De acuerdo con la invención presente, la
siguiente instrucción a ejecutar (código operativo y operando) se
captura desde la interfaz 11 si se proporciona una instrucción por
el procesador externo 2, y se carga en el registro 9 de
instrucciones en la unidad de control 4. El procesador externo puede
proporcionar al procesador interno 1 con una secuencia de
instrucciones, es decir, un flujo de instrucciones. No obstante, si
no se proporcionan instrucciones por el procesador externo 2, la
siguiente instrucción se captura desde la memoria principal 6,
memoria RAM o memoria caché. La instrucción se decodifica y se
interpreta por los circuitos de control 5, y ejecutándose por la
unidad de procesamiento de datos. Los resultados se colocan en un
registro adecuado en la unidad 3 de proceso de datos, o bien en la
memoria principal 6.
Así pues, los dos flujos distintos de
instrucciones se suministran por los medios de dos fuentes de
instrucciones: la memoria principal 6 y el procesador externo 2 a
través de la interfaz 11. Estos dos flujos de instrucciones son casi
completamente independientes. El contador de programas 10 es la
única interacción directa disponible entre los dos flujos de
instrucciones.
Aunque las instrucciones se suministran por el
procesador externo, se capturan por el procesador interno por medio
de la interfaz 11, y siendo entonces ejecutadas. Cuando no se
suministran instrucciones adicionales por el procesador externo 2,
se suministra al contador del programa del procesador interno 1 con
una dirección de la siguiente instrucción, y se procede con la
operación normal del procesador interno. El contador del programa 10
se incrementa automáticamente después de que la siguiente
instrucción haya sido capturada. En consecuencia, el procesador
externo 2 puede controlar la operación del procesador interno de una
forma eficiente, aunque no en sentido inverso.
Con el fin de operar de una forma apropiada, el
procesador externo puede en algunos casos necesitar de una
información de realimentación procedente de la interfaz 11.
Aunque la invención se ha descrito por medio de
una realización específica de la misma, es evidente que la presente
invención proporciona un procesador que cumple totalmente con los
objetivos y ventajas anteriormente expuestos, y en donde las
alternativas, modificaciones y variaciones son evidentes para los
técnicos especializados en la técnica.
Tal como se ha mencionado anteriormente, el
procesador puede ser una parte de un chip de propósito general o
especial, en otras realizaciones de la invención. Así pues, el
procesador en algunos casos tiene un diseño completamente diferente,
y comprende por ejemplo unos registros adicionales, tales como los
registros de propósito especial para facilitar el control de las
ramificaciones, que facilita el procesamiento simultáneo de más de
una instrucción, y de distintas clases de capacidades de
procesamiento de datos, etc. No obstante, el procesador tiene
todavía una interfaz que habilita al menos dos fuentes distintas a
partir de las cuales el procesador captura sus instrucciones, en
donde una de las fuentes controla la ejecución del procesador
interno.
Claims (5)
1. Un procesador interno (1) para la ejecución
de instrucciones desde varias fuentes de instrucciones (2; 6), en
donde el mencionado procesador interno (1) comprende una memoria
principal (6), y caracterizada por los medios de interfaz
(11) conectables al menos a una fuente externa de instrucciones (2),
permitiendo la ejecución del entrelazado de instrucciones desde las
mencionadas fuentes de instrucciones (2; 6), controladas por la
mencionada fuente (2) de instrucciones externa, en donde el
procesador interno está configurado para:
cada una de las instrucciones suministradas por
una fuente (2) externa de instrucciones, capturando la instrucción
desde los medios de interfaz (11), decodificando y ejecutando la
mencionada instrucción; o bien si no se suministra ninguna
instrucción por una fuente (2) externa de instrucciones,
capturando una instrucción de la memoria
principal (6), decodificando y ejecutando la mencionada
instrucción.
2. Un procesador interno de acuerdo con la
reivindicación 1, en donde la mencionada interfaz (11) está
conectada a un registro del programa (10) del mencionado procesador
(1) interno, para la ejecución del control de secuencia del
mencionado procesador interno (1) por la mencionada fuente (2)
externa de
instrucciones.
instrucciones.
3. Un procesador interno (1) de acuerdo con la
reivindicación 1 ó 2, en donde la mencionada interfaz (11) está
conectada a un registro de instrucciones (9) del mencionado
procesador interno (1), para la ejecución del control de secuencia
del mencionado procesador interno (1) por la mencionada fuente (2)
externa de instrucciones.
4. Un método de ejecución de instrucciones desde
varias fuentes de instrucciones (2; 6) en un procesador interno (1),
que comprende una memoria principal (6) y medios de interfaz (11)
conectables al menos a una fuente (2) externa de instrucciones,
caracterizado porque tiene las etapas de:
para cada instrucción provista por una fuente
externa (2) de instrucciones, la captura de la instrucción desde
los medios (11) de interfaz, decodificando y ejecutando la
mencionada instrucción; o bien en el caso de que no se suministre
ninguna instrucción por una fuente (2) externa de instrucciones,
capturar una instrucción de la memoria principal
(6), decodificando y ejecutando la mencionada instrucción.
5. Un método de acuerdo con la instrucción 4,
que comprende además la etapa de:
capturar una instrucción desde una posición en
la memoria principal (6), cuya posición esté determinada por la
fuente (2) externa de instrucciones.
Applications Claiming Priority (2)
| 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 |
| SE9900118 | 1999-01-18 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2316347T3 true ES2316347T3 (es) | 2009-04-16 |
Family
ID=20414117
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES00902227T Expired - Lifetime ES2316347T3 (es) | 1999-01-18 | 2000-01-13 | Procesador y metodo de ejecucion de instrucciones desde varias fuentes de instruccion. |
Country Status (10)
| Country | Link |
|---|---|
| EP (1) | EP1177499B1 (es) |
| JP (1) | JP2002535749A (es) |
| KR (1) | KR100705872B1 (es) |
| CN (1) | CN1153136C (es) |
| AT (1) | ATE413645T1 (es) |
| AU (1) | AU2335700A (es) |
| DE (1) | DE60040733D1 (es) |
| ES (1) | ES2316347T3 (es) |
| SE (1) | SE514785C2 (es) |
| WO (1) | WO2000042506A1 (es) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2007098024A2 (en) | 2006-02-16 | 2007-08-30 | Vns Portfolio Llc | Allocation of resources among an array of computers |
| EP1821211A3 (en) * | 2006-02-16 | 2008-06-18 | Technology Properties Limited | Cooperative multitasking method in a multiprocessor system |
| US7617383B2 (en) | 2006-02-16 | 2009-11-10 | Vns Portfolio Llc | Circular register arrays of a computer |
| 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 not_active Ceased
- 2000-01-13 CN CNB008028206A patent/CN1153136C/zh not_active Expired - Lifetime
- 2000-01-13 KR KR1020017008841A patent/KR100705872B1/ko not_active Expired - Lifetime
- 2000-01-13 AU AU23357/00A patent/AU2335700A/en not_active Abandoned
- 2000-01-13 EP EP00902227A patent/EP1177499B1/en not_active Expired - Lifetime
- 2000-01-13 ES ES00902227T patent/ES2316347T3/es not_active Expired - Lifetime
- 2000-01-13 JP JP2000594015A patent/JP2002535749A/ja active Pending
- 2000-01-13 DE DE60040733T patent/DE60040733D1/de not_active Expired - Lifetime
- 2000-01-13 AT AT00902227T patent/ATE413645T1/de not_active IP Right Cessation
Also Published As
| Publication number | Publication date |
|---|---|
| AU2335700A (en) | 2000-08-01 |
| KR20010101498A (ko) | 2001-11-14 |
| CN1337023A (zh) | 2002-02-20 |
| KR100705872B1 (ko) | 2007-04-09 |
| EP1177499B1 (en) | 2008-11-05 |
| CN1153136C (zh) | 2004-06-09 |
| DE60040733D1 (de) | 2008-12-18 |
| SE9900118L (sv) | 2000-07-19 |
| JP2002535749A (ja) | 2002-10-22 |
| EP1177499A1 (en) | 2002-02-06 |
| WO2000042506A1 (en) | 2000-07-20 |
| SE9900118D0 (sv) | 1999-01-18 |
| ATE413645T1 (de) | 2008-11-15 |
| SE514785C2 (sv) | 2001-04-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TW201530320A (zh) | 資料處理裝置及半導體積體電路裝置 | |
| US5446849A (en) | Electronic computer which executes squash branching | |
| KR900016866A (ko) | 데이타 처리 시스템 | |
| US20020188830A1 (en) | Bit replacement and extraction instructions | |
| KR970012203A (ko) | 트레이스 함수와 그에 따른 방법을 실행하기 위한 데이타 처리 시스템 | |
| WO2007113346A1 (es) | Deteccion de errores transitorios mediante nueva ejecucion selectiva | |
| RU2002129004A (ru) | Запоминание операндов стека в регистре | |
| Myers et al. | Microprocessor technology trends | |
| ES2316347T3 (es) | Procesador y metodo de ejecucion de instrucciones desde varias fuentes de instruccion. | |
| US7765533B2 (en) | Automatic task distribution in scalable processors | |
| JPS62226231A (ja) | プロセツサ | |
| EP1372065B1 (en) | System large scale integrated circuit (LSI), method of designing the same, and program therefor | |
| JP2511151B2 (ja) | デ―タ処理装置 | |
| JP2578182B2 (ja) | デ−タ処理装置及びデ−タ処理システム | |
| CN119847597B (zh) | 电子装置以及用以管理微操作的方法 | |
| JP2883465B2 (ja) | 電子計算機 | |
| JPH06324906A (ja) | シングルチップマイクロコンピュータ | |
| JPS59206968A (ja) | Eprom搭載型マイクロコンピユ−タ | |
| JPS63156231A (ja) | リ−ドオンリ−メモリ内命令の変更方法 | |
| Bruggeman | A new architecture design paradigm: type-safe instruction set architectures | |
| Monchaud et al. | Behaviour display system for a microprogrammed processor | |
| Barton | Hardware implementation of a synchronization state buffer in VHDL | |
| JPS644836A (en) | Overflow preventing system for data flow controller | |
| JPS62147545A (ja) | 情報処理装置における転送命令処理方式 | |
| JPH10198572A (ja) | 半導体集積回路装置 |