Traducción del artículo de Ken Shirriff
Casi todos los teléfonos inteligentes usan un procesador basado en el chip ARM1 introducido en 1985. Se han utilizado más de diez mil millones de núcleos ARM en una variedad de dispositivos, incluido uno de los mayores fracasos de Apple, la Newton Pocket PC y uno de sus éxitos más rotundos, el iPhone. En este artículo, consideraremos las partes clave del procesador ARM1: describiremos la estructura general del chip, veremos cómo están organizados los transistores y cómo funcionan, interactuando entre sí para almacenar y procesar datos, y también veremos la
simulación visual de este microprocesador y descubriremos qué sucede. dentro de ARM1 durante su funcionamiento.

Descripción general del chip ARM1
El microprocesador ARM1 está construido a partir de bloques funcionales, cada uno de los cuales tiene un propósito específico. Los registros almacenan datos, ALU realiza operaciones aritméticas simples, los decodificadores de comandos determinan cómo ejecutar cada comando, y así sucesivamente. En comparación con la mayoría de los procesadores, el circuito del chip ARM1 es simple y cada bloque de función se distingue bien. A modo de comparación, el diseño de los chips, como 6502 o Z-80, se optimiza manualmente para evitar puntos vacíos en el sustrato. En estos procesadores, los bloques funcionales están pegados, lo que los hace difíciles de entender.
Los componentes principales del chip ARM1. Los contactos sin marcar son señales de control diferentes.Ahora verá una imagen que muestra las partes funcionales más importantes del microprocesador ARM. El procesamiento real tiene lugar en la parte inferior del chip, que se refiere a la ruta de datos. El chip procesa 32 bits a la vez, por lo que su estructura incluye 32 capas horizontales: 31 bits desde la parte superior, 0 bits desde la parte inferior. Varios buses de datos operan horizontalmente para comunicar varios componentes del chip. En la imagen puede ver una gran sección de veinticinco registros. El contador de instrucciones (decimoquinto registro) está a la izquierda de la sección de registro, y el registro cero está a la derecha. Nueve de los veinticinco registros son opcionales, ya que hay copias de algunos registros para usar en el manejo de interrupciones.
Todos los cálculos tienen lugar en la unidad de lógica aritmética (ALU), que se encuentra a la derecha del bloque de registro. ALU realiza 16 operaciones diferentes: suma, suma con transferencia, sustracción, suma lógica, etc. ALU utiliza dos entradas de 32 bits y produce 32 bits en la salida. Puede leer más sobre el dispositivo ALU
aquí . A la derecha de la ALU hay un dispositivo de desplazamiento de 32 bits. Este gran componente realiza una operación de desplazamiento cíclico de entrada binaria. A la izquierda están las líneas de dirección que proporcionan acceso a las direcciones en la memoria a través de contactos de dirección. A la derecha hay líneas de datos que leen y escriben valores de datos en la memoria.
La unidad de control se encuentra en la parte superior. Las líneas de control se dibujan verticalmente desde la unidad de control hasta el siguiente diagrama de línea de datos. Estas señales seleccionan los registros, le dicen a la ALU qué operación realizar, etc. El circuito de decodificación de instrucciones procesa cada instrucción y genera las señales de control necesarias. La unidad de decodificación de registro procesa los bits de selección de registro en la instrucción y genera señales de control para seleccionar los registros necesarios.
Datos de contacto
Los cuadrados alrededor del exterior de la imagen son los pads que conectan el procesador al mundo exterior. La foto a continuación muestra la carcasa de ochenta y cuatro pines del microprocesador ARM1. Los contactos chapados en oro están conectados a las almohadillas en un chip de silicio dentro de la caja.
Procesador ARM1 instalado en el sistema de evaluación ARM de AcornLa mayoría de los sitios se utilizan para líneas de dirección y líneas de datos que conducen a la memoria. El chip tiene 26 líneas de dirección que le permiten acceder a 64 megabytes de memoria y 32 líneas de datos, lo que le permite leer o escribir 32 bits a la vez. Las líneas de dirección están en la esquina inferior izquierda, y las líneas de datos están en la derecha. En el modelo de simulación del chip, puede ver que las señales se envían a las líneas de dirección de memoria y que la información de la memoria se lee a lo largo de las líneas de datos. El lado derecho del simulador muestra la dirección y los valores de datos presentados en formato hexadecimal. Si conoce el sistema de números hexadecimales, puede correlacionar fácilmente estos valores con los estados de contacto.
Cada esquina del chip tiene una línea de alimentación (+) y una línea de tierra (-), que proporciona un voltaje de suministro de 5 voltios, que es necesario para el funcionamiento del chip. Varias señales de control se encuentran en la parte superior del chip. En el simulador, es fácil notar dos señales de reloj que establecen el pulso del reloj. Las frecuencias de la fase 1 y la fase 2 se alternan, proporcionando la señal de reloj necesaria para el funcionamiento del chip. En nuestra simulación visual, se activa aproximadamente dos veces por segundo, pero el chip real tiene una frecuencia de 8 megahercios, que es más de un millón de veces más rápido. Preste atención al nombre del fabricante "ACORN" en el chip en lugar de 82 pines.
Dos señales de tiempoHistorial del procesador ARM
El microprocesador ARM1 fue diseñado en 1985 por los ingenieros Sophie Wilson y Steve Farber de Acorn Computers. Inicialmente, el chip se llamaba Acorn RISC Machine y estaba destinado a ser un coprocesador para la computadora
BBC Micro .
Sophie Wilson y Steve FarberEn total, se produjeron varios cientos de microprocesadores ARM1, por lo que podría pensar que se perdió en las entrañas de la historia de los microprocesadores de la década de 1980. Sin embargo, el primer chip ARM1 condujo a una arquitectura ARM sorprendentemente exitosa, con más de 50 mil millones de chips. Que paso
A principios de la década de 1980, la investigación científica sugirió que si simplifica el conjunto de instrucciones para el procesador, los desarrolladores obtendrán un mejor rendimiento: el procesador será más simple pero más rápido: una computadora con un conjunto de instrucciones reducido o RISC (computadora con conjunto de instrucciones reducido). La investigación en
Stanford y
Berkeley inspiró a los desarrolladores de ARM a elegir la arquitectura RISC. Además, dado el pequeño equipo de desarrollo de Acorn, elegir RISC fue una solución práctica.
En una computadora basada en RISC, el conjunto de instrucciones se limitaba a las más utilizadas, optimizadas para un alto rendimiento y ejecutadas en un solo ciclo de reloj. Las instrucciones, a su vez, son de un tamaño fijo que simplifica la lógica de las instrucciones de decodificación. Un procesador RISC requiere muchos menos circuitos para el control de comandos y la decodificación, lo que le permite colocar más componentes en el chip.
La simplicidad del diseño RISC es obvia cuando se comparan los microprocesadores ARM1 e Intel 80386 lanzados en el mismo año: ARM1 tenía aproximadamente veinticinco mil transistores, y 80386 tenía doscientos setenta y cinco mil. A continuación hay dos fotos de los procesadores en la misma escala. El área del cristal ARM1 es de cincuenta milímetros cuadrados, en comparación con los ciento cuatro milímetros cuadrados de la 386a.


Debido a la pequeña cantidad de transistores, el procesador ARM1 tenía poca potencia: aproximadamente una décima parte de un vatio en comparación con casi dos vatios en el 386º. La combinación de alto rendimiento y bajo consumo de energía hizo que las versiones posteriores de los microprocesadores ARM fueran muy populares para los sistemas integrados. Apple ha elegido un procesador ARM para su desafortunado sistema Pocket Newton. En 1990, Acorn Computers, Apple y el fabricante de chips VLSI Technology crearon Advanced RISC Machines para continuar desarrollando ARM.
Desde entonces, ARM se ha convertido en la arquitectura más popular con más de cincuenta mil millones de procesadores. La mayoría de los dispositivos móviles usan un microprocesador ARM. Por ejemplo, el procesador Apple A8 dentro del iPhone 6 usa el ARMv8-A de 64 bits. A pesar de sus humildes comienzos, ARM1 hizo la lista IEEE Spectrum
de 25 chips que conmocionaron al mundo y se convirtieron en los microprocesadores más influyentes según PC World de todos los tiempos.
Curiosamente, ARM no fabrica chips. En cambio, la propiedad intelectual de ARM tiene licencia para cientos de compañías diferentes que fabrican chips utilizando la arquitectura ARM.
Estructura de chip de bajo nivel
El microprocesador ARM1 consta de cinco capas. Si aumenta la escala del chip en el modelo de simulación, puede ver los componentes del chip creados a partir de estas capas. El modelo de simulación utiliza un color específico para cada capa y designa líneas de actividad con su color. La capa inferior consta de silicio, en el que se encuentran los transistores. Durante la producción, las áreas de silicio se modifican (alean) utilizando diversas impurezas. El silicio se puede dopar positivamente para formar un transistor P-MOS (azul) o negativamente para un transistor N-MOS (rojo). El silicio sin alear es básicamente un aislante (negro).
Simulator ARM1 presenta varias capas con sus propios colores.Las líneas de polisilicio marcadas en verde se aplican sobre silicio. Cuando el polisilicio cruza el silicio dopado, forma una puerta de transistor (amarilla). Finalmente, dos capas de metal, indicadas en gris, se ubican en la parte superior del polisilicio y proporcionan conductividad. Los cuadrados negros son contactos que forman enlaces entre diferentes capas.
Para nuestros propósitos, el transistor MOS puede considerarse como un interruptor controlado por puertas. Cuando está encendido (cerrado), el drenaje y la fuente en las regiones de silicio están conectados. Cuando está desconectado (abierto), el drenaje y la fuente están desconectados.
Estructura MOSFETComo la mayoría de los procesadores modernos, ARM1 se construyó utilizando la tecnología CMOS, que utiliza dos tipos de transistores MOS: canal N y canal P. Los MOSFET de canal N se activan solo cuando se aplica una señal de alto nivel a la puerta y la salida se pone a tierra. Los MOSFET de canal P se encienden cuando se aplica una señal de bajo nivel a la puerta y se aplican voltajes de hasta cinco voltios a la salida.
El concepto de un archivo de registro
El archivo de registro es un componente clave de ARM1 que almacena información dentro del chip. El archivo de registro consta de veinticinco registros, cada uno de los cuales contiene treinta y dos bits.
La siguiente imagen muestra dos transistores que forman un inversor. Si se ingresa una señal de alto nivel, el transistor N-MOS (rojo) se enciende, conectando la salida a tierra, de modo que la salida tenga una señal de bajo nivel. Si la entrada recibe una señal de bajo nivel, el transistor P-MOS (azul) se enciende, conectando la línea de alimentación a la salida, de modo que la salida tenga una señal de alto nivel. Por lo tanto, la salida es opuesta a la entrada, creando un inversor.
InversorLa combinación de dos inversores en un bucle forma un esquema de almacenamiento simple. Si en la salida del primer inversor 1, el segundo produce 0, que va a la entrada del primer inversor y se crea 1 en su salida: el circuito es estable. En consecuencia, el circuito permanecerá en este estado indefinidamente, "recordando" un bit, hasta que se transfiera a la fuerza a otro estado.
Dos inversores forman un registro que puede almacenar 1 bitPara crear dicho esquema en la celda de registro utilizada, se agregan líneas de lectura y escritura, así como líneas de selección para conectar la celda a las líneas del bus. Cuando se activa la línea de grabación, el bus se pone en contacto con el inversor, lo que le permite sobrescribir el valor actual con un nuevo bit. Del mismo modo, los transistores conectan el bit al bus de lectura cuando se activa la línea de selección correspondiente, lo que le permite leer el valor almacenado.
Esquema de un bit del archivo de registro ARM1Para crear un archivo de registro, la celda de registro debe repetirse 32 veces verticalmente para cada bit y 25 veces horizontalmente para formar cada registro. Cada registro tiene tres líneas horizontales: una línea de grabación y dos líneas de lectura. Cada registro tiene tres líneas de control verticales: una línea de selección de registro y dos líneas de selección de lectura. Al activar las líneas de control deseadas, se pueden leer dos registros y se puede escribir un registro a la vez. En el modelo de simulación, puede ver líneas de control verticales activas para seleccionar registros y bits de datos que se mueven en líneas de bus horizontales.
Al observar la celda de memoria en el simulador, puede determinar qué inversor está encendido y determinar si el bit 0 o 1. es igual. Si la entrada del inversor superior está activa, entonces el bit es cero. Si la entrada del inversor inferior está activa, entonces el bit es igual a uno. Por lo tanto, habiendo examinado cuidadosamente, puede leer los valores de los registros directamente desde el simulador.
Imagen del archivo de registro ARM1Dispositivo de cambio rápido
El dispositivo de cambio rápido realiza cambios binarios y es otro componente interesante de ARM1. La mayoría de las instrucciones usan un desplazador que le permite desplazar el argumento binario a la derecha, izquierda o alternar cualquier carácter (de 0 a 31 bits). Durante el inicio del simulador, puede ver líneas diagonales que se mueven hacia la derecha y hacia la izquierda en un cambio rápido.
La siguiente imagen muestra la estructura del dispositivo de corte. Los bits se desplazan verticalmente con respecto a los bits cero y treinta y uno. Los bits de salida se desplazan horizontalmente entre el bit cero desde la parte inferior y el bit treinta y uno desde la parte superior. Las líneas diagonales muestran dónde están conectadas las líneas verticales con las horizontales, generando un cambio en la salida. Las diferentes posiciones de la línea diagonal conducen a diferentes cambios. La línea diagonal superior desplaza los bits hacia la izquierda y la línea diagonal inferior hacia la derecha. Durante un turno, ambas diagonales están activas; puede ser imperceptible, pero en la parte de desplazamiento de la palabra, la parte se mueve hacia la derecha y, a menudo, hacia la izquierda.
Estructura de dispositivo de corte rápidoVamos a ampliar el área en el dispositivo de corte para ver mejor sus componentes principales. Contiene 32 por 32 secciones transversales de transistores, cada uno de los cuales conecta una línea vertical con una horizontal. Las puertas del transistor están conectadas por líneas de control diagonales; Los transistores a lo largo de la diagonal activa conectan las líneas verticales y horizontales correspondientes. Por lo tanto, al activar las diagonales correspondientes, las líneas de salida se conectan a las líneas de entrada desplazadas por un cierto número de bits. Como las líneas de entrada del microcircuito operan horizontalmente, existen 32 conexiones entre las líneas de entrada y las líneas de bits verticales correspondientes.
Una mirada más cercana al dispositivo de cambio rápido ARM1Conclusión
El microprocesador ARM1 ha llevado a una arquitectura de procesador ARM sorprendentemente exitosa, que es el corazón de su teléfono inteligente y de cualquier dispositivo móvil en general. La arquitectura RISC simple del chip ARM1 simplifica la comprensión de los circuitos del microprocesador en comparación con la estructura 80386. La fascinante simulación visual del microprocesador ARM ayuda a comprender lo que sucede dentro de él.
Nuestro video creado por este artículo:
Dentro de la CPU: ARM1