Microprocesador o microcontrolador mejorados.

Un dispositivo de procesador, en particular un microcontrolador o un microprocesador, que comprende:

una memoria de datos de registros

(560, 750) que comprende un espacio físico de direcciones, siendo la memoria de datos (560, 750) accesible a través de una pluralidad de bancos secuenciales de memoria (110x) que definen un espacio lineal de direcciones, en el que por lo menos un subconjunto de los bancos de memoria (110x) están organizados de modo que cada banco de memoria (110x) del subconjunto, comprende por lo menos una primera y una segunda área de memoria (120, 130, 140, 150), en el que dicha primera área de memoria (120, 130) comprende unos registros de función especial mapeados en memoria y dentro del espacio lineal de direcciones las segundas áreas de memoria (140, 150) forman un bloque no consecutivo de memoria; caracterizado por

una unidad de ajuste de dirección (540, 630) que, cuando se utiliza un intervalo predefinido de dirección virtual, se configura para traducir una dirección virtual dentro del intervalo de direcciones virtuales en una dirección física para acceder a dichas segundas áreas de memoria (140, 150) de tal manera que se forma un bloque linealizado de memoria virtual (300) al mapear unas respectivas direcciones virtuales a unas direcciones físicas de una pluralidad de segundas áreas de memoria (140, 150).

Tipo: Patente Internacional (Tratado de Cooperación de Patentes). Resumen de patente/invención. Número de Solicitud: PCT/US2009/051251.

Solicitante: MICROCHIP TECHNOLOGY INCORPORATED.

Nacionalidad solicitante: Estados Unidos de América.

Dirección: 2355 WEST CHANDLER BOULEVARD CHANDLER, ARIZONA 85224-6199 ESTADOS UNIDOS DE AMERICA.

Inventor/es: JULICHER,JOSEPH, STEEDMAN,SEAN, DELPORT,VIVIEN, ZDENEK,JERROLD S.

Fecha de Publicación: .

Clasificación Internacional de Patentes:

  • SECCION G — FISICA > COMPUTO; CALCULO; CONTEO > TRATAMIENTO DE DATOS DIGITALES ELECTRICOS (computadores... > Acceso, direccionamiento o asignación en sistemas... > G06F12/06 (Direccionamiento de un bloque físico de posiciones, p. ej. por dirección de base, direccionamiento de módulos, extensión del espacio de dirección, especialización de memoria (G06F 12/08 tiene prioridad))
  • SECCION G — FISICA > COMPUTO; CALCULO; CONTEO > TRATAMIENTO DE DATOS DIGITALES ELECTRICOS (computadores... > Disposiciones para el control por programa, p. ej.... > G06F9/30 (Disposiciones para ejecutar instrucciones máquina, p. ej. decodificación de instrucciones (para ejecutar microinstrucciones G06F 9/22; para ejecutar subprogramas G06F 9/40))

PDF original: ES-2541923_T3.pdf

 

google+ twitter facebook

Fragmento de la descripción:

Microprocesador o microcontrolador mejorados

El campo técnico de la presente solicitud está relacionado con microprocesadores o microcontroladores.

Los microcontroladores constituyen generalmente un sistema en un chip y comprenden un microprocesador y una pluralidad de componentes periféricos. Existe una gran variedad de tale microprocesador/microcontroladores que tienen arquitecturas de 8 bits, 16 bits y 32 bits. El microprocesador/microcontroladores existentes, tales como los microcontroladores de 8 bits, fabricados por Microchip Technology Inc. permiten una arquitectura flexible. Tal microprocesador/microcontroladores pueden comprender una arquitectura Harvard, en la que las memorias de datos y de programas están separadas. El microprocesador/microcontroladores de este tipo pueden comprender además un sistema específico de bancos que permite el acceso a la memoria de datos. Con este fin, generalmente, la memoria de datos se divide en una pluralidad de bancos y un registro de selección de datos define cuál de los bancos está seleccionado y es accesible en ese momento. Para proporcionar tal acceso de microprocesador/microcontroladores a ciertos registros, tal como un registro de función especial, un archivo de registro o cualquier otro registro, el esquema de bancos puede diseñarse para mapear en memoria una pluralidad de tales registros en la mayoría de los bancos. Por tanto, un reducido número de ubicaciones de memoria dentro de la mayoría de los bancos se pueden utilizar como un área de memoria de uso general. La Fig. 1 explica de manera más clara este concepto común. Un espacio físico de memoria 1 se divide en una pluralidad de bancos de memoria 11í.. 11n, en donde, generalmente, para una unidad de procesamiento central solo es accesible un banco cada vez. En el lado derecho de la FIG. 1 se muestra un ejemplo de un solo banco de memoria y su ejemplo de estructura. Por ejemplo, un primer intervalo de memoria 12 del banco 11X puede mapearse en memoria a unos registros comunes de función especial central (SFR, special function registers) y las áreas de memoria adyacentes o siguientes 13 a otros SRF utilizados para periféricos. La siguiente área de memoria 14 comprende unos registros de uso general (GPR, general purpose registers) y un área de memoria 15 se utiliza para la memoria común. En una realización, tal como un microprocesador/microcontroladores de 8 bits, cada banco tiene 128 bytes y el área de memoria 12 incluye 12 SFR centrales comunes, el área de memoria 13 incluye 2 SFR, el área de memoria 14 incluye 8 GPR y el área de memoria 15 incluye 16 bytes. Pueden aplicarse otras implementaciones con diferentes esquemas de mapeo de memoria de SFR u otros registros, y depende del diseño de arquitectura.

Además del acceso a la memoria 1 mediante este esquema de bancos, pueden implementarse unos registros de función especial que permiten acceder indirectamente al total o a una parte más grande de la memoria alineada 1. Sin embargo, los SFR o en otras implementaciones, otros registros que están mapeados en memoria a por lo menos una pluralidad de bancos no permiten una sola área de memoria continua más grande.

El documento EP 918279 divulga una arquitectura de microcontrolador con una memoria de datos de registro y un esquema de bancos en el que la memoria mapea todos los registros de función especial a un solo banco y permite el acceso a este único banco mediante instrucciones especiales. Sin embargo, esto exige una lógica adicional significativa y el diseño de grandes bancos de memoria para albergar todos los registros de función especial. El documento EP 992887 divulga un acceso a memoria utilizando calificadores de bytes.

Por tanto, existe la necesidad de una mejor arquitectura de un microprocesador/microcontroladores que utilice un esquema de acceso a bancos. Este y otros objetivos se pueden lograr mediante un procesador y un procedimiento según las reivindicaciones independientes. Unas mejoras adicionales se caracterizan en las reivindicaciones dependientes.

Según una realización, un dispositivo de procesador puede comprender una memoria de datos que comprende un espacio lineal de direcciones, la memoria de datos es accesible a través de una pluralidad de bancos de memoria, en donde por lo menos un subconjunto de los bancos de memoria se organizan de tal manera que cada banco de memoria del subconjunto comprende por lo menos una primera y una segunda área de memoria, en donde las segundas áreas de memoria de una pluralidad de bancos de memoria consecutivos forman un bloque de memoria no consecutiva, y una unidad de ajuste de direcciones que, cuando se utiliza un intervalo predefinido de direcciones, traduce una dirección dentro del intervalo predefinido de direcciones para acceder a dichas segundas áreas de memoria de tal manera que a través de la dirección una pluralidad de segundas áreas de memoria forman un bloque de memoria lineal continuo.

Según una realización adicional, el procesador puede comprender además un decodificador de direcciones para activar la unidad de ajuste de direcciones. Según una realización adicional, el procesador puede comprender además un multiplexor que tiene una primera y una segunda entrada que reciben una dirección y una dirección ajustada y es controlado por un comparador de direcciones que recibe dicha dirección. Según una realización adicional, la primera área de memoria puede comprender unos registros de función especial. Según una realización adicional, la segunda área de memoria puede comprender unos registros de uso general. Según una realización adicional, la segunda área de memoria puede comprender un área de memoria común. Según una realización adicional, la segunda área de memoria puede comprender unos registros de uso general. Según una realización adicional, el procesador puede ser un microcontrolador o un microprocesador. Según una realización adicional, la primera área de memoria puede comprender unos registros de función especial central y cada banco de memoria

del subconjunto puede comprender una tercera área de memoria que comprende unos registros de función especial para dispositivos periféricos. Según una realización adicional, la unidad de ajuste de direcciones puede comprender una primera unidad de decodificador para acceder a una columna de la distribución de celdas de memoria y una pluralidad de pares de decodificadores de fila, en donde cada par de decodificadores de fila se asocia con una fila de la distribución de celdas de memoria y comprende un primer decodificador de fila y un segundo decodificador de fila. Según una realización adicional, uno de dichos decodificadores de fila puede responder a dicha dirección. Según una realización adicional, cada decodificador de fila puede emitir una señal de selección de fila que se combina mediante una puerta O acoplada con la distribución de celdas de memoria.

Según otra realización, un dispositivo de procesador puede comprender una memoria de datos que comprende un espacio lineal de memoria, la memoria de datos es accesible a través de una pluralidad de bancos de memoria, una pluralidad de registros de función especial, en donde se utilizan por lo menos dos registros de función especial para formar una dirección concatenada; un espacio predefinido de direcciones que comprende un primer espacio de direcciones al que se mapea una memoria de datos física y un segundo espacio de direcciones al que se mapean en memoria unas áreas parciales de direcciones de memoria de una pluralidad de bancos de memoria de tal manera que las áreas parciales de direcciones de memoria de la pluralidad de bancos de memoria forman un bloque de memoria lineal continua.

Según una realización adicional, el procesador puede comprender además una unidad de ajuste de direcciones que... [Seguir leyendo]

 


Reivindicaciones:

1. Un dispositivo de procesador, en particular un microcontrolador o un microprocesador, que comprende:

una memoria de datos de registros (56, 75) que comprende un espacio físico de direcciones, siendo la memoria de datos (56, 75) accesible a través de una pluralidad de bancos secuenciales de memoria (11 Ox) que definen un espacio lineal de direcciones, en el que por lo menos un subconjunto de los bancos de memoria (11x) están organizados de modo que cada banco de memoria (11 Ox) del subconjunto, comprende por lo menos una primera y una segunda área de memoria (12, 13, 14, 15), en el que dicha primera área de memoria (12, 13) comprende unos registros de función especial mapeados en memoria y dentro del espacio lineal de direcciones las segundas áreas de memoria (14, 15) forman un bloque no consecutivo de memoria; caracterizado por

una unidad de ajuste de dirección (54, 63) que, cuando se utiliza un intervalo predefinido de dirección virtual, se configura para traducir una dirección virtual dentro del intervalo de direcciones virtuales en una dirección física para acceder a dichas segundas áreas de memoria (14, 15) de tal manera que se forma un bloque linealizado de memoria virtual (3) al mapear unas respectivas direcciones virtuales a unas direcciones físicas de una pluralidad de segundas áreas de memoria (14, 15).

2. Un dispositivo de procesador según la reivindicación 1, en el que la memoria de datos de registro se forma en una distribución de celdas de memoria (75), el dispositivo de procesador comprende además:

una pluralidad de registros de función especial, en la que se utilizan por lo menos dos registros de función especial para formar una dirección concatenada; y

un primer espado de direcciones al que se mapea la pluralidad de bancos de memoria (1x) de tal manera que las direcciones de la segunda área de memoria (14, 15) se mapean a la dirección física de la memoria de datos de registro y un segundo espacio de dirección al que se mapean en memoria dichas segundas áreas de memoria (14, 15) de tal manera que las segundas áreas de memoria (14, 15) forman dicho bloque virtual de memoria linealizado (3) en dicho segundo espacio de direcciones, en el que la unidad de ajuste de direcciones comprende una primera unidad decodificadora (73) para acceder a una columna de la distribución de celdas de memoria (75) y una pluralidad de pares de decodificadores de fila (74x), en el que cada par de decodificadores de fila (74x) está asociado con una fila de la distribución de celdas de memoria (75) y comprende un primer decodificador de fila (742) y un segundo decodificador de fila (744) para acceder a dicha memoria de datos ya sea a través de dicho primer o dicho segundo espacio de direcciones.

3. El procesador según la reivindicación 1, que comprende además un decodificador de direcciones (53, 62) para activar la unidad de ajuste de dirección (54, 63).

4. El procesador según la reivindicación 1 o 3, que comprende además un multiplexor (61) que tiene una primera y una segunda entradas que reciben una dirección y una dirección ajustada y una salida acoplada a dicha memoria de datos (1, 2, 56, 75) y que es controlada por un comparador de direcciones (62) que recibe dicha dirección.

5. El procesador según una de las reivindicaciones precedentes, en el que cada banco de memoria de dicha pluralidad de bancos de memoria (11x), en particular dicha primera área de memoria de cada banco de memoria (11 Ox), comprende unos registros de función especial mapeados en memoria.

6. El procesador según una de las reivindicaciones precedentes, en el que cada banco de memoria de dicha pluralidad de bancos de memoria (11x), en particular dicha segunda área de memoria de cada banco de memoria, comprende unos registros de uso general.

7. El procesador según la reivindicación 1, en el que cada banco de memoria de dicha pluralidad de bancos de memoria (11x) comprende un área de memoria común.

8. El procesador según la reivindicación 1, en el que por lo menos un subconjunto de bancos de memoria (11 Ox) comprende otros registros de función especial mapeados en memoria.

9. El procesador según la reivindicación 2, en el que los primeros decodificadores de fila (742) responden a las direcciones dentro de dicho primer espacio de direcciones y los segundos decodificadores de fila (744) responden a las direcciones dentro de dicho segundo espacio de direcciones.

1. El procesador según la reivindicación 9, en el que cada decodificador de fila (742, 744) emite una señal de selección de fila que se combina mediante una puerta O (746) acoplada con la distribución de celdas de memoria (75).

11. Un procedimiento para acceso a memoria de datos en un procesador (5) utilizando un esquema de acceso a bancos de memoria, comprendiendo el procedimiento las etapas de:

proporcionar una memoria de datos de registros (1, 2, 56, 75) que tiene un espacio físico de direcciones,

definir un espacio lineal de direcciones de datos mediante una pluralidad de bancos consecutivos de memoria de registro (11x) en el que una unidad de procesamiento central (51) accede a dicho espacio lineal de direcciones de datos directamente a través de uno de dichos bancos de memoria (11 Ox), en el que por lo menos un subconjunto de los bancos de memoria (11 Ox) se organiza de tal manera que cada banco de memoria (11 Ox) del subconjunto comprende por lo menos una primera y una segunda área de memoria (12, 13, 14, 15), en el que dicha primera área de memoria (12, 13) comprende unos registros de función especial mapeados en memoria y las segundas áreas de memoria (14, 15) se mapean a unas direcciones físicas de dicha memoria de datos de registro (1, 2, 56, 75) en el que una pluralidad de segundas áreas de memoria (14, 15) forman un bloque no consecutivo de memoria; caracterizado por la etapa de,

cuando se utiliza un intervalo predefinido de direcciones virtuales, traducir una dirección virtual dentro del intervalo de direcciones virtuales en una dirección física para acceder a dichas segundas áreas de memoria (14, 15) de tal manera que se forma un bloque linealizado de memoria virtual (3).

12. El procedimiento según la reivindicación 11, en el que se utilizan por lo menos dos registros de función especial para formar una dirección concatenada que representa la dirección.

13. El procedimiento según la reivindicación 11 o 12, en el que el subconjunto tiene menos bancos de memoria (11 Ox) que la pluralidad de bancos de memoria.

14. El procedimiento según la reivindicación 11 o 12, en el que el bloque linealizado de memoria virtual (3) está formado por las segundas áreas de memoria de todos los bancos de memoria (11x) que comprenden una segunda área de memoria (12, 13, 14, 15).

15. El procedimiento según una de las reivindicaciones precedentes 11-14, en el que cada banco de memoria (11 Ox) comprende además un área de memoria común (15).

16. El procedimiento según una de las reivindicaciones precedentes 11-15, en el que en por lo menos el subconjunto de bancos de memoria (11 Ox), cada banco de memoria comprende unos registros de función especial mapeados en memoria (12, 13), unos registros de uso general (14) y un área de memoria común

(15).