Introducción a la Familia Intel - Organización del Computador II

Anuncio
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.
Descargar