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 PDF

Info

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
Application number
ES00902227T
Other languages
English (en)
Inventor
Stefan Sandstrom
Stefan Lundberg
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.)
Axis AB
Original Assignee
Axis AB
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
Application filed by Axis AB filed Critical Axis AB
Application granted granted Critical
Publication of ES2316347T3 publication Critical patent/ES2316347T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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
    • 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/3802Instruction prefetching
    • 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/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent 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

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.
Campo de la invenció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.
Descripción de la técnica anterior
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.
Sumario de la invención
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.
Breve descripción de los dibujos
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.
Descripción detallada de la invención
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.
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.
ES00902227T 1999-01-18 2000-01-13 Procesador y metodo de ejecucion de instrucciones desde varias fuentes de instruccion. Expired - Lifetime ES2316347T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
SE9900118 1999-01-18
SE9900118A SE514785C2 (sv) 1999-01-18 1999-01-18 Processor och metod för att exekvera instruktioner från flera instruktionskällor

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
SE514785C2 (sv) 2001-04-23
CN1153136C (zh) 2004-06-09
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
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
CN102236621B (zh) 计算机接口信息配置系统及方法
TWI476597B (zh) 資料處理裝置及半導體積體電路裝置
WO2007113346A1 (es) Deteccion de errores transitorios mediante nueva ejecucion selectiva
JP2010500679A (ja) プロセッサ内のマルチスレッド間通信
KR900016866A (ko) 데이타 처리 시스템
US20020188830A1 (en) Bit replacement and extraction instructions
US5617553A (en) Computer system which switches bus protocols and controls the writing of a dirty page bit of an address translation buffer
Myers et al. Microprocessor technology trends
ES2316347T3 (es) Procesador y metodo de ejecucion de instrucciones desde varias fuentes de instruccion.
US20050132345A1 (en) Automatic task distribution in scalable processors
JPS62226231A (ja) プロセツサ
US8694975B2 (en) Programming system in multi-core environment, and method and program of the same
JP2511151B2 (ja) デ―タ処理装置
EP1372065B1 (en) System large scale integrated circuit (LSI), method of designing the same, and program therefor
JP2578182B2 (ja) デ−タ処理装置及びデ−タ処理システム
KR102629550B1 (ko) 분산된 데이터센터의 적응형 메모리 일관성
JPS6362778B2 (es)
JPH1020959A (ja) 低消費電力マイクロプロセッサ
JPS59206968A (ja) Eprom搭載型マイクロコンピユ−タ
JPS63156231A (ja) リ−ドオンリ−メモリ内命令の変更方法
JP2004021422A (ja) マイクロコンピュータ
JP2004199333A (ja) マイクロコンピュータおよびその評価装置
JPH0277848A (ja) マイクロコンピュータ
Barton Hardware implementation of a synchronization state buffer in VHDL
JPS644836A (en) Overflow preventing system for data flow controller