0% encontró este documento útil (0 votos)
23 vistas23 páginas

Apple M1 y la Unidad de Control en Procesadores

Apple presentó sus primeros ordenadores con procesadores propios Apple Silicon basados en ARM. El primer chip se llama M1 y estará en un MacBook Air, MacBook Pro y Mac Mini. Esto marca el adiós a los chips de Intel y mayor control por parte de Apple sobre sus componentes.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
23 vistas23 páginas

Apple M1 y la Unidad de Control en Procesadores

Apple presentó sus primeros ordenadores con procesadores propios Apple Silicon basados en ARM. El primer chip se llama M1 y estará en un MacBook Air, MacBook Pro y Mac Mini. Esto marca el adiós a los chips de Intel y mayor control por parte de Apple sobre sus componentes.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

La unidad de control

Introducción

El ciclo de instrucciones y la unidad de control

Referencias
LECCIÓN 1 de 3

Introducción

Bye bye Intel

Comienza una nueva era para Apple. La compañía de Cupertino


ha presentado este martes sus primeros ordenadores con los
procesadores Apple Silicon, basados en la arquitectura ARM y
diseñados por la propia tecnológica. El primer chip de este tipo
se llama M1 y de momento vendrá incorporado en tres
dispositivos: un MacBook Air, un MacBook Pro y el Mac Mini. De
esta forma, Apple dice adiós a los chips de Intel, basados en la
arquitectura x86 y por los que llevaba apostando los últimos 15
años, y pasa a tener un mayor control de los componentes de
sus dispositivos.

Apple aprovechó la WWDC 2020 (Worldwide Developers


Conference) en junio para explicar que dejaría de depender de
los procesadores de Intel. En los últimos meses también ha
presentado los nuevos iPad, los Apple Watch, los iPhone 12 y el
altavoz inteligente HomePod Mini. La semana pasada anunció,
con su ya tradicional “one more thing” (una cosa más), que este
martes haría un lanzamiento adicional.

Horas antes de que empezara la presentación, como también


viene siendo habitual, la tienda de Apple estaba cerrada y
mostraba el siguiente mensaje: “Enseguida volvemos. Estamos
haciendo algunos cambios en el Apple Store. Pásate más tarde”.
Tim Cook, CEO de Apple, ha sido el encargado de dar el
pistoletazo de salida de este evento virtual: “Es hora de hablar
sobre los Mac. Nos encantan los Mac. Están en nuestro ADN. Es
la herramienta que utilizamos para construir nuestra fenomenal
línea de productos”.

Lo primero en llegar ha sido el Apple M1. Se trata del primer


procesador propio de Apple para Mac. Fabricado con tecnología
de cinco nanómetros, este chip con 16 000 millones de
transistores y ocho núcleos estará próximamente en el corazón
de algunos ordenadores de Apple. La compañía de Cupertino ha
asegurado que el M1 ofrece más rendimiento por vatio que
nunca. En concreto, ha afirmado que permite el doble de
rendimiento que los chips más potentes de otros portátiles con
un consumo un tercio menor. Aún es pronto para analizar ese
rendimiento que Apple promete y si estos chips serán capaces
de seguir el ritmo de los mejores procesadores de compañías
como Intel y AMD.
Si es así, el anuncio podría suponer un punto de inflexión para la
compañía de la manzana. Apple lleva años perfeccionando sus
procesadores. El resultado ha sido una arquitectura escalable
diseñada para el iPhone, el iPad y el Apple Watch. A partir de
esta arquitectura, Apple ha diseñado ahora sus propios chips
para los Mac. Esta arquitectura común a todos los productos de
la marca facilitará mucho a los desarrolladores la programación
y la optimización de apps para todo el ecosistema, según la
compañía…. (Rubio, 10 de noviembre de 2020,
https://elpais.com/tecnologia/2020-11-10/adios-a-intel-asi-son-
los-primeros-mac-con-procesadores-apple-silicon.html).

C O NT I NU A R
LECCIÓN 2 de 3

El ciclo de instrucciones y la unidad de control

Emprenderemos este estudio asumiendo lo


siguiente:

Como especialista en sistemas de información,


debes ser capaz de entender cómo se desarrollan en
bajo nivel (es decir, hardware) cada una de las
instrucciones que defines en los lenguajes de
programación, y entender el porqué de la necesidad
de los códigos tipo ensamblador que permiten la
traducción de lenguajes de programación a
operaciones matemáticas que un circuito puede
ejecutar.

Continuando con la visión de los autores Orenga y Manonellas (s. f.),


analizaremos, en esta lectura, la función de la unidad de control del
procesador y la secuencia llevada a cabo para conseguir que el procesador
ejecute una instrucción determinada.

Ciclo de ejecución de una instrucción

El ciclo de ejecución es la secuencia de operaciones que se hace


para ejecutar cada una de las instrucciones. Lo dividimos en
cuatro fases principales:

1. Lectura de la instrucción.

2. Lectura de los operandos fuente.

3. Ejecución
de la instrucción y almacenamiento del operando
de destino.

4. Comprobación de interrupciones.

Las fases principales del ciclo de ejecución son comunes a la


mayoría de los computadores actuales y las diferencias
principales se encuentran en el orden en el que se realizan
algunas de las operaciones de cada fase o en el que se realizan
algunas de las operaciones en otras fases. En cada fase se
incluyen una o varias operaciones que hay que hacer. Para llevar
a cabo estas operaciones, nombradas microoperaciones, es
necesaria una compleja gestión de las señales de control y de la
disponibilidad de los diferentes elementos del procesador, tarea
realizada por la unidad de control.

Veamos las operaciones principales que se realizan


habitualmente en cada una de las cinco fases del ciclo de
ejecución de las instrucciones:

Fase 1. Lectura de la instrucción.

Las operaciones realizadas en esta fase son las siguientes:

1. Leerla instrucción. Cuando leemos la instrucción, el registro


contador del programa (PC) nos indica la dirección de
memoria donde está la instrucción que hemos de leer. Si el
tamaño de la instrucción es superior a la palabra de la
memoria, hay que hacer tantos accesos a la memoria como
sean necesarios para leerla completamente y cargar toda
esta información en el registro de instrucción (IR).

2. Decodificar la instrucción. Se identifican las diferentes partes


de la instrucción para determinar qué operaciones hay que
hacer en cada fase del ciclo de ejecución. Esta tarea la realiza
la unidad de control del procesador leyendo la información
que hemos cargado en el registro de instrucción (IR).

3. Actualizar el contador del programa. El contador del programa


se actualiza según el tamaño de la instrucción, es decir, según
el número de accesos a la memoria que hemos hecho para
leer la instrucción.
Las operaciones de esta fase son comunes a los diferentes
tipos de instrucciones que encontramos en el juego de
instrucciones.

Fase 2. Lectura de los operandos fuente.

Esta fase se debe repetir para todos los operandos fuente que
tenga la instrucción. Las operaciones que hay que realizar en
esta fase dependen del modo de direccionamiento que tengan
los operandos: para los más simples, como el inmediato o el
directo a registro, no hay que hacer ninguna operación; para los
indirectos o los relativos, hay que hacer cálculos y accesos a
memoria. Si el operando fuente es implícito, vamos a buscar el
dato en el lugar predeterminado por aquella instrucción.

Fase 3. Ejecución de la instrucción y almacenamiento del


operando de destino (resultado)

Las operaciones que hay que realizar en esta fase dependen del
código de operación de la instrucción y del modo de
direccionamiento que tenga el operando destino.

Ejecución de la instrucción: las operaciones que se llevan a


cabo son diferentes para cada código de operación. Durante
la ejecución, además de obtener el resultado de la ejecución
de la instrucción, se pueden modificar los bits de resultado de
la palabra de estado del procesador.
Almacenamiento del operando de destino (resultado): la
función básica es recoger el resultado obtenido durante la
ejecución y guardarlo en el lugar indicado por el operando, a
menos que el operando sea implícito, en cuyo caso se guarda
en el lugar predeterminado por aquella instrucción. El
operando de destino puede ser uno de los operandos fuente;
de esta manera, no hay que repetir los cálculos para obtener
la dirección del operando.

Fase 4. Comprobación de interrupciones

Las interrupciones son el mecanismo mediante el cual un


dispositivo externo al procesador puede interrumpir el programa
que está ejecutando el procesador con el fin de ejecutar otro
programa (una rutina de servicio a la interrupción o RSI) para dar
servicio al dispositivo que ha producido la interrupción. La
petición de interrupción se efectúa activando alguna de las
líneas de petición de las que dispone el procesador.

En esta fase se verifica si se ha activado alguna línea de petición


de interrupción del procesador en el transcurso de la ejecución
de la instrucción. Si no se ha activado ninguna, continuamos el
proceso normalmente; es decir, se acaba la ejecución de la
instrucción en curso y se empieza la ejecución de la instrucción
siguiente. En caso contrario, hay que transferir el control del
procesador a la rutina de servicio de interrupción que debe
atender esta interrupción y hasta que no se acabe no podemos
continuar la ejecución de la instrucción en curso.
Para atender la interrupción, es necesario llevar a cabo algunas
operaciones (intentaremos almacenar la mínima información
para que el proceso sea tan rápido como se pueda) para
transferir el control del procesador a la rutina de servicio de
interrupciones, de manera que, después, lo podamos recuperar
con la garantía de que el procesador estará en el mismo estado
en el que estaba antes de transferir el control a la rutina de
servicio de interrupción:

Almacenar el contador del programa y la palabra de estado


(generalmente, se guardan en la pila).

Almacenar la dirección donde empieza la rutina para atender


la interrupción en el contador del programa.

Ejecutar la rutina de servicio de interrupción.

Recuperar el contador del programa y la palabra de estado.

Esta fase, actualmente, está presente en todos los


computadores, ya que todos utilizan E/S para interrupciones y
E/S para DMA. (Orenga y Manonellas, pp. 9-11).

Piensa y repasa los conceptos de interrupciones de


los módulos anteriores. ¿Qué tipos de interrupciones
existen? ¿Enmascarable y...?
Estrategias de segmentación

La segmentación es como una cadena de montaje. En cada


etapa de la cadena se lleva a cabo una parte del trabajo total y
cuando se acaba el trabajo de una etapa, el producto pasa a la
siguiente y así sucesivamente hasta llegar al final. Si hay N
etapas, se puede trabajar sobre N productos al mismo tiempo y,
si la cadena está bien equilibrada, saldrá un producto acabado
en el tiempo que se tarda en llevar a cabo una de las etapas. De
esta manera, no se reduce el tiempo que se tarda en hacer un
producto, sino que se reduce el tiempo total necesario para
hacer una determinada cantidad de productos porque las
operaciones de cada etapa se efectúan simultáneamente….
(Orenga y Manonellas, p. 12).

Figura 1: Instrucciones sin segmentar

Fuente: Orenga y Manonellas, s. f., p. 12.


Si consideramos que el producto es una instrucción y las etapas
son cada una de las fases de ejecución de la instrucción, que
llamamos etapa de segmentación, hemos identificado los
elementos y el funcionamiento de la segmentación. Son
necesarias nueve etapas para ejecutar las tres instrucciones.
(Orenga y Manonellas, p. 12).

Si ahora, en cambio, identificamos aquellas instrucciones no dependientes


entre sí, podemos segmentar la ejecución de cada instrucción de la siguiente
forma:

Figura 2: Instrucciones segmentadas

Fuente: Orenga y Manonellas, s. f., p. 12.

Son necesarias cinco etapas para ejecutar las tres


instrucciones. Se ha reducido el tiempo total que se tarda en
ejecutar las tres instrucciones, pero no el tiempo que se tarda en
ejecutar cada una de las instrucciones. Si se quiere implementar
la segmentación para mejorar el rendimiento de un procesador,
hay que tener en cuenta algunas cuestiones que implicarán
cambios en el diseño del procesador. Las más importantes son
las siguientes:

¿Cómo hay que segmentar para que las etapas estén bien
equilibradas (que todas tengan la misma duración)?

¿Qué recursos son necesarios en cada etapa para que todas se


puedan ejecutar simultáneamente?

¿Cómo hay que tratar las instrucciones de salto para minimizar


los efectos en el rendimiento de la segmentación? (Orenga y
Manonellas, s. f., p. 12-13).

La unidad de control

Orenga y Manonellas (s. f.) manifiestan que

La unidad de control se puede considerar el cerebro del


computador. Como el cerebro, está conectada al resto de los
componentes del computador mediante las señales de control…
Es muy importante que un computador tenga unidades
funcionales muy eficientes y rápidas, pero si no se coordinan y
no se controlan correctamente, es imposible aprovechar todas
las potencialidades que se habían previsto en el diseño.

La función básica de la unidad de control es la ejecución de las


instrucciones, pero su complejidad del diseño no se debe a la
complejidad de estas tareas (que, en general, son muy
sencillas), sino a la sincronización que se debe hacer de ellas.

Como ya sabemos, ejecutar un programa consiste en ejecutar


una secuencia de instrucciones, y cada instrucción se lleva a
cabo mediante un ciclo de ejecución que consta de fases. Cada
una de las operaciones que hacemos durante la ejecución de
una instrucción la denominamos microoperación, y estas
microoperaciones son la base para diseñar la unidad de control.

La función básica de las microoperaciones es la transferencia de


información de un lugar del computador a otro, generalmente,
de un registro a otro, tanto si son internos al procesador como
externos. Este proceso de transferencia puede implicar solo
mover la información, pero también transformarla.
Identificamos tres tipos básicos de microoperaciones:

1. Transferencia interna: operaciones de transferencia entre


registros internos del procesador.

2. Transferencia
interna con transformación: operaciones
aritméticas o lógicas utilizando registros internos del
procesador.

3. Transferencia externa: operaciones de transferencia entre


registros internos del procesador y registros externos al
procesador o módulos externos al procesador (como el bus
del sistema o la memoria principal). (pp. 20-21).

Modos de direccionamiento:

Vimos que, en la fase 2, la ejecución dependerá de la instrucción, de la


situación de los operandos puestos a disposición del procesador.

El número de pasos que hay que hacer en esta fase depende del
número de operandos fuente y de los modos de
direccionamiento utilizados en cada operando. Si hay más de un
operando, hay que repetir el proceso para cada uno de los
operandos.

El modo de direccionamiento indica el lugar en el que está el


dato:

Si el dato está en la instrucción misma, no hay que hacer nada


porque ya lo tenemos en la misma instrucción. [Se llama
direccionamiento inmediato].

Si el dato está en un registro, no hay que hacer nada porque


ya lo tenemos disponible en un registro dentro del procesador.
[Se llama direccionamiento directo].

Si el dato está en la memoria, hay que llevarlo al registro MBR.


[Se llama direccionamiento relativo a registro]. (Orenga y
Manonellas, s. f., pp. 22-23).

Señales de control y temporización

Hemos visto que cada microoperación hace una tarea


determinada dentro del ciclo de ejecución de una instrucción. A
pesar de la simplicidad de estas microoperaciones, llevarlas a
cabo implica la activación de un conjunto de señales de control.
De manera general, entendemos una señal de control como una
línea física que sale de la unidad de control y va hacia uno o más
dispositivos del computador por los que circula una señal
eléctrica que representa un valor lógico 0 o 1 y según cuáles
sean los dispositivos a los que está conectado, es activo por
flanco o por nivel.

La mayor parte de los computadores tienen un funcionamiento


síncrono, es decir, la secuencia de operaciones es gobernada
por una señal de reloj. El período de esta señal de reloj (el tiempo
que tarda en hacer una oscilación entera), llamado también ciclo
de reloj, determina el tiempo mínimo necesario para hacer una
operación elemental en el computador. Consideraremos que
esta operación elemental es una microoperación. (Orenga y
Manonellas, s. f., p. 25.)

¿Recuerdas las unidades de medición del ciclo de


clock? Revisa las lecturas del módulo 2 para
recuperar los conceptos asociados al clock del
sistema.

Figura 3: Fases, pasos y ciclos de clock


Fuente: Orenga y Manonellas, s. f., p. 26.

Diseño de la unidad de control

Según nos explica Stallings (2005), existen dos categorías para la


implementación de la UC: implementaciones cableadas e implementaciones
microprogramadas.

Una UC cableada es un circuito combinacional que transforma señales de


entrada en señales de salida, en este caso, las señales de control.

Estas entradas son:

registro de instrucción;

reloj;
indicadores;

señales de control de bus.

Para el registro de instrucción, se utiliza un decodificador de n entradas y

sn salidas. Esto permite tener una combinación de código diferente para


cada instrucción, la cual activa una salida diferente.

El reloj genera diferentes entradas, ya que, durante un único ciclo de


instrucción, la unidad de control emite señales diferentes.

Figura 4: UC cableada

Fuente: Stallings, 2005, p. 620.


El funcionamiento de una unidad de control cableada consiste en realizar un
circuito de lógica combinacional que responda a las operaciones booleanas
(lógicas) que comandan el comportamiento propio y el del procesador.
Imagina el nivel de complejidad para la UC de un procesador actual.

Para este problema, aparece en escena la llamada máquina de Wilkes o


unidad microprogramada. Esta metodología se basa en la utilización de una
memoria de control que almacena las microoperaciones necesarias para
ejecutar cada una de las instrucciones y en el concepto de microinstrucción.

Los autores Orenga y Manonellas (s. f.) señalan que

ya sabemos que la ejecución de una instrucción implica realizar


una serie de microoperaciones, y cada microoperación implica la
activación de un conjunto de señales de control, de las cuales
cada una puede ser representada por un bit.

La representación del conjunto de todas las señales de control


(combinación de ceros y unos) da lugar a lo que denominamos
palabra de control.


Llamamos microinstrucción a la notación utilizada para describir
el conjunto de microoperaciones que se realizan
simultáneamente en un mismo período y se representan con
una palabra de control.

Cada microinstrucción se almacena en una memoria de control


y, por lo tanto, cada una tiene asignada una dirección de
memoria diferente. (Orenga y Manonellas, s. f., pp. 29-30).

Figura 5: Microinstrucción

Fuente: Orenga y Manonellas, s. f., p. 30.

Para especificar la secuencia de ejecución de las


microinstrucciones, se necesita más información que la misma
palabra de control. Esta información adicional da lugar a dos
tipos básicos de microinstrucciones:

1. Microinstrucción
horizontal. Se añade a la palabra de control
un campo para expresar una condición y un campo para
especificar la dirección de la microinstrucción siguiente que
se tiene que ejecutar cuando se cumpla la condición.

2. Microinstrucciones verticales. Para reducir el tamaño de las


microinstrucciones horizontales, se codifican los bits de la
palabra de control, de manera que se reduce el número de
bits necesarios.

El inconveniente de este último tipo es que hace falta un


decodificador para traducir los códigos que aparecen en la
microinstrucción de señales de control individuales. El conjunto
de microinstrucciones necesarias para ejecutar una instrucción
da lugar a un microprograma (microcódigo o firmware). Como
cada instrucción realiza tareas diferentes, es necesario un
microprograma diferente para cada instrucción del juego de
instrucciones de la arquitectura. (Orenga y Manonellas, s. f., pp.
30-31).

Revisa las lecturas del módulo 2 y piensa qué tipo de


memorias están asociadas al firmware.

C O NT I NU A R
LECCIÓN 3 de 3

Referencias

Orenga, M. A. y Manonellas, G. E. (s. f.). El procesador. Recuperado de


https://www.exabyteinformatica.com/uoc/Informatica/Estructura_de_comp
utadores/Estructura_de_computadores_(Modulo_3).pdf

Rubio, I. (10 de noviembre de 2020). Adiós a Intel: así son los primeros Mac
con procesadores Apple Silicon. El País [versión digital]. Recuperado de
https://elpais.com/tecnologia/2020-11-10/adios-a-intel-asi-son-los-primeros-
mac-con-procesadores-apple-silicon.html

Stallings, W. (2005). Organización y arquitectura de computadores. Madrid,


ES: Prentice Hall.

C O NT I NU A R

También podría gustarte