Introducción a la Familia Intel: El principio. Faggin y el 4004 Patricia Borensztejn Organización del Computador II Agosto 2016 La invención del microprocesador • Nada surge de la nada, todo tiene una historia. • Hoy vamos a escuchar a Federico Faggin, el entonces joven italiano que en el año 1970 se unió a Intel para desarrollar el primer procesador en un chip: el 4004. • La conferencia la dio en Berkeley, en febrero del 2014. • http://broom02.revolvy.com/main/index.php ?s=Self-aligned+gate&stype=videos El transistor: antes de ellos • Los tubos de vacío fueron para vuestros bisabuelos lo mismo que para ustedes el transistor del teléfono móvil : permitió la comunicación. • A mediados del siglo pasado los tubos de vacío inundaron el mercado mundial de radios, equipos de transmisión y redes de telefonía. • También, impactaron en el desarrollo de las primeras computadoras: ENIAC tenía 17500 tubos de vacío, que, como las bombillas eléctricas (que ya no se usan) se quemaban haciendo que la máquina se detuviera. Esto sucedía aproximadamente cada dos días. Y había que averiguar donde estaba la bombilla quemada, cosa que lográbamos en 15 minutos(entrevista a Eckert, 1989) • En 1949, luego de un intenso trabajo de varios años, William Shockley, junto con John Bardeen y Walter Brattain, inventan el transistor (en los Laboratorios Bell). El transistor • En 1949, luego de un intenso trabajo de varios años, William Shockley, junto con John Bardeen y Walter Brattain, inventan el transistor (en los Laboratorios Bell). De la electrónica a la microelectrónica ¿Do you keep track of transistors these days? When I have my first AM transistor radio with seven transistors I keep track of all the transistors… but not anymore… (Federico Faggin) Federico Faggin, Berkeley 2014 Circuitos Integrados Ley de Moore • 1964: Gordon Moore estaba trabajando en Fairchild Semiconductor justamente en el diseño de circuitos que pudieran tener mas de un transistor y había logrado en su laboratorio construir uno con 32 transistores, cuando un reportero de la revista Electronics le propuso que escribiera algo sobre el futuro de la industria electrónica Cramming more Components onto Integrated Circuits Ley de Moore hoy No hay ningún crecimiento exponencial que, en la práctica y mas allá de la teoría, sea infinito. (Simón Viñals, Director de Tecnología de Intel Iberia, 50 años de la Ley de Moore) Ley de Moore ¿como seguir? • Hoy la tecnología de fabricación de un transistor permite que su longitud sea de 14nm – Para dar un mínimo de contexto sobre las dimensiones tan extraordinarias de las que estamos hablando, el diámetro de una molécula de glucosa está en 1 nm, la insulina es un poco más grande, 5 nm, y la pared de una bacteria se queda en 10 nm. Un virus son 75 nm. • Por debajo de esa longitud, se ha conseguido construir transistores individuales, pero no aún integrarlos en circuitos • Hay muchas caminos abiertos: pasar de litografía planar a 3D (un chip arriba de otro), computación cuántica, molecular, en fin, el futuro, que son ustedes, lo irá diciendo… Computers • Computers didn´t come by the way of electronics, they come by the way of calculators, mechanical calculators like La Pascualina, de Blas Pascal. Federico Faggin Microelectronica RTL,DTL,TTL • Familias Lógicas de Circuitos Integrados. Se caracterizan por usar las mismas o compatibles niveles de tensiones. Cada circuito integraba unas pocas funciones lógicas que se conectaban entre sí para armar sistemas mas complejos. • Arriba, foto de una dual NOR gate (familia RTL) utilizada para construir la Apollo Guidance Computer (AGC) (la computadora que fue a la Luna) Fue una de las primeras aplicaciones de los circuitos integrados y fué desarrollado por Fairchild. 1969. Emerge MOS SSI, MSI, LSI,VLSI • Escalas de integración. – – – – Small Scale Integration: pocos…10? Medium Scale Integration: cientos. Long Scale Integration: decenas de cientos Very Long Scale Integration: decenas de miles. (Mediados de los 70) – UVLSI: mucho mas… • Los SSI y MSI podían ser testeados manualmente, luego se necesitó la ayuda de programas de computadoras. MOS Technology en 1968 Transistor MOS • Es un interruptor que deja o no pasar corriente entre dos terminales llamadas : S (source) y D (drain) en función del valor de la tensión eléctrica aplicada a la puerta G (Gate) • MOS: Metal Oxido Semiconductor Transistor El transistor • El sustrato es silicio: elemento semiconductor. • Al silicio se le agregan impurezas permitiendo que en el mismo sustrato haya regiones con distintas cargas eléctricas. El transistor • Como negativo y positivo se rechazan, esto impide que las cargas de un terminal alcancen al otro. De esta forma, no se tendría corriente eléctrica. El transistor • El terminal de puerta es el que permite el flujo de tensión entre los terminales S y D. Esta formado por un material muy conductor, separado del sustrato por un aislante. SGT: nueva tecnología para transistores MOS Silicon Gate Technology La síntesis de la microelectrónica y las computadoras Busicom Proyect 4004 Faggin y el 4004! I was very proud… • It didn´t look like any other chip that I have ever seen, I was very proud of it… It is really something I spent the rest of the night testing and everything I tested worked. So, I went home 4 o´clock in the morning, Elvia was waiting for me, Elvia, it works!! There are few times in life where you have worked so hard and with such passion like I did, where you really have a tremendous satisfaction and is intimus, is for you only because you can not share that, thou I share it with Elvia, but it is really something… (la noche que le entregaron el 4004) Intel le compra los derechos a Busicom para poder comercializar el 4004 El artículo publicado en Electronics MCS-4 Micro Computer System MCS-4 Micro Computer System • 4001: ROM – 256 x 8 bits. – Tiene dos modos de funcionamiento: Transfiere direcciones y datos al/del 4004 y funciona tambien como dispositivo de control de E/S • 4002: RAM 320 bits – 4 registros de 20 caracteres (4 bits) cada uno – Funciona como RAM y como vehículo de comunicación con dispositivos externos, para los cual tiene 4 líneas de salida • 4003: 10 bit serial in , parallel out Shift Register – Dedicado a líneas de comunucación con dispositivos de E/S, tales como teclados, displays, switches, impresoras, A/D converters, etc Ciclo de Ejecución de una instrucción • El MCS-4 usa un ciclo de instrucción de 10,8 microsegundos. • La CPU (4004) genera una señal SYNC para avisar el inicio de una instrucción y la envía a las ROM y RAM del sistema • A continuación envía los 12 bits de dirección (4K byte ROM) en tres ciclos (bus de datos es de 4 bits) (A1 A2 A3) • La ROM seleccionada envía al 4004 la instrucción en dos ciclos: OPR, OPA. (M1 M2) • La instrucción es interpretada y ejecutada en los siguientes 3 ciclos (X1 X2 X3) • Una instrucción requiere entre 8 y 16 ciclos de reloj 740KHz 6 10 𝑚𝑖𝑐𝑟𝑜𝑠𝑒𝑔𝑢𝑛𝑑𝑜𝑠 (un ciclo: = 1,35 microsegundos) 3 740 ∗ 10 𝑐𝑖𝑐𝑙𝑜𝑠 Ciclo de Ejecución de una instrucción MCS-4 Expandible • Agregándole algunas señales era posible expandir el sistema con 48 módulos de RAM y ROM Arquitectura del 4004 Arquitectura 4004 • ALU de 4 bits • Banco de 16 registros de 4 bits que pueden ser utilizados en pares • Un Acumulador • Un flag de Carry • Además: una pila para tres direcciones de retorno (12 bits) , un PC (12 bits), un puntero a dato (8 bits) Algunos Ejemplos Cargas de Valores Loading into Accumulator LDM - loads this value into Accumulator (i.e. ldm 11) LD - loads (copies) value of this register into Accumulator (i.e. ld r3) Exchange instruction also changes value of Accumulator but we list it in other section. Loading into Carry CLC - clears Carry flag (sets it to 0) STC - sets Carry flag (raises it to 1) CLB - clears both Carry and Accumulator Loading into Registers XCH - exchanges values between Accumulator and register (i.e. xch r8) FIM - loads 8-bit value into pair of registers (i.e. fim r4 $57) Aritméticas, la suma • Solo sumas, shifts e inversión de bits – ADD r2 ;; {carry, acc} <=acc+reg+cy – CMC ;;; carry<= 1-carry – CMA ;;; acc <= 1-acc • Ejemplo de suma de 8 bits: 0x59 + 0x38: fim r0 $59 ; r0 = 5 and r1 = 9 fim r2 $38 ; r2 = 3 and r3 = 8 ; ;;summing lower digits (9 and 8) clc ; carry = 0 ld r1 ; acc = r1 add r3 ; acc += r3 xch r1 ; store result back to r1 ; we do not clear carry after that! ; summing higher digits (5 and 3) ld r0 ; acc = r0 add r2 ; acc += r2 xch r0 ; store result to r0 Aritméticas, la resta • La resta es una suma con inversión del valor – SUB r3 ;;; acc<= acc + inversion(r3) + Carry • Es decir, hay que poner el Carry a 1 antes de usar la instrucción SUB • Además, el resultado de la operación pone el Carry a 1 si NO hay borrow, y a 0 en caso contrario… Memoria Externa: RAM • Si se quiere acceder a la memoria de datos externa primero debemos setear el valor del registro DATA POINTER (8 Bits) – SRC r2 - set data pointer to value of r2:r3 • A continuación tenemos disponibles las siguientes instrucciones: – WRM sends data from accumulator to the chosen memory cell (i.e. memory[dp] = acc) – RDM reads data from memory cell to accumulator (i.e. `acc = memory[dp]) – ADM adds memory cell to accumulator (similar to ADD) – SBM subtracts memory cell from accumulator (similar to SUB) Memoria Externa ROM • También podemos querer datos que están en ROM: – FIN loads a byte into register pair specified from the code memory pointed by R0:R1 – DB - not an instruction, but a directive used to store arbitrary bytes in the code rather than compiled instructions • Hay un emulador en : https://github.com/CodeAbbey/intel4004-emu/wiki Arquitecturas de los 70 El 8008: arquitectura de 8 bits • Si el 4004 no fue el primer microprocesador, entonces si lo fue el 8008 • CTC es Computer Terminal Corporation, que al final no le gustó! Intel compró la patente y lo comercializó 8008: introducido en 1972 Intel 8008 Arquitectura del 8008 • Datos: 8 señales bidireccionales. Para datos y direcciones • Señales de control: el procesador indica su estado • Permite ser interrumpido 8008: arquitectura de 8 bits Arquitectura del 8008 • IR: Instruction Register (8 bits) • Address Stack: son 8 registros de 14 bits que funcionan como pila para permitir anidamiento de subrutinas. El PC es uno de ellos. • Puntero a posición del PC (3 bits) • Scratch Pad Memory o Index Registers: son 6 de 8 bits. Se llaman … B,C,D,E, H y L (nombres ,algunos de ellos, que seguirán apareciendo…) • El Acumulador sigue existiendo. (se llama A, obvio) • La única manera de direccionar Memoria es usando los 14 bits (16 K bytes) de los registros concatenados H&L, en ese caso se llama registro M Arquitectura del 8008 • El espacio direccionable es de 16K bytes, pero puede extenderse… • La ALU soporta mas instrucciones que el 4004. Todas las instrucciones usan el A como operando. Es decir, son registro-acc. • Hay cuatro flags: Z, C, S y P. • Soporta Interrupciones • Dos registros temporales , a y b, se usan como entrada a la ALU • Increible, pero ya se ve la arquitectura actual de registros… viene del 1971!!!!! ¿¿¿45 años??? Formato de instrucciones: longitud variable Formato de Instrucciones Instrucciones Intel 8080 8080 • Este procesador generaría una patente registrada a nombre de Faggin y Shima y aunque Intel fue el principal productor del dispositivo, otros fabricantes (como AMD, Mitsubishi, NatSemi, NEC, Siemens, y Texas Instruments) también fabricarían, bajo licencia, sus propias versiones del Intel 8080 e incluso, tras el “telón de acero”, en la Unión Soviética y en la RDA (Alemania Oriental) también se fabricarían clones de este microprocesador (saltándose cualquier patente). 8080 • 16 líneas de direcciones y 8 de datos , lo cual mejora muchísimo su interface con memoria y con E/S. • Agrega mas señales a su interface • Aumenta el espacio direccionable a 16 bits (64K bytes) 8080 8080 • Aparece SP y desaparece la Pila de Direcciones de Retorno • Se pueden usar todos los registros de a pares: 16 bits • Tres modos de direccionamiento: directo, indirecto e inmediato – Directo: la dirección de memoria (16 bits) se especifica en la instrucción – Indirecto: la dirección de memoria esta en el par de registros especificado en la instrucción – Inmediato: el dato está en la instrucción • Aparece DAA: Decimal Adjust Arithmetic, para trabajar con numeros decimales (0:9) , ajuste después de una suma. Faggin se va de Intel y funda su propia compañía: Zilog, Inc • Se vendieron entre 2 y 20 billones de unidades del Z80. Computer on a Chip: the Microcontroller • Hoy se venden 10 microcontroladores por cada microprocesador! El poder de las ideas sencillas ¿Pueden tener conciencia las máquinas? • La conciencia tiene la habilidad de transformar informaciones en sensaciones: no hay ningún fenómeno físico que conozcamos que pueda hacer eso. • Uno toma señales eléctricas y las transforma en sensaciones, la sensación del sonido, el gusto del vino, la luz! Como lo hacemos? Nadie lo sabe! • Los filósofos llaman qualia a ese particular aspecto de la conciencia • You have qualia, you have understanding, you have decisions, and then you have identity: you know you are you: you could not get a machine to do that.