martes, 4 de noviembre de 2008

TEMA 2. Funcionamiento del ordenador (2).
Contenido

OBJETIVOS. 2
1. ARQUITECTURA VON NEUMANN. 3
UNIDAD CENTRAL DE PROCESO (CPU). 4
TIPOS DE CPU. 5
- CISC (Complex Instruction-Set Computer). 7
- RISC (Reduced Instruction-Set Computer). 7
LOS REGISTROS (REGISTROS INTERNOS). 10
REGISTROS VISIBLES AL USUARIO. 11
REGISTROS DE CONTROL Y DE ESTADO. 12
LA MEMORIA PRINCIPAL (RAM). 12
UNIDAD DE CONTROL (UC). 15
UNIDAD ARITMETICO-LOGICA (ALU). 15
BUSES DE COMUNICACIÓN. 18
EJECUCION DE UNA INSTRUCCIÓN. 19
2. EVOLUCION DE LOS MICROPROCESADORES. 19
DIAGRAMA DE BLOQUES DE LAS CPU ACTUALES. 19


OBJETIVOS.
Los objetivos del tema son los siguientes:
- Conocer los inicios de la informática.
- Arquitectura Von Neumann.
- CPU y sus componentes.
- Funcionamiento de los componentes de la CPU.
- Componentes actuales de la CPU.

1. ARQUITECTURA VON NEUMANN.
John Von Neumann fue quien describió el fundamento teórico de construcción de un ordenador eléctrico con programa almacenado.
La idea principal era conectar permanente las unidades del ordenador, siendo coordinado su funcionamiento bajo un control central.
Esta arquitectura es la que se usa actualmente, con pequeños cambios.









UNIDAD CENTRAL DE PROCESO (CPU).
- Celebro del ordenador.
- Controla todo el sistema.
- Ejecuta las instrucciones de los programas.
- La potencia de un ordenador se mide por la CPU.
- Sus componentes principales son:
o Unidad de Control (UC). Interpreta y ejecuta las instrucciones.
o Unidad Aritmético-Lógica (ALU). Realiza las operaciones aritmética (sumas, restas, multiplicaciones, divisiones) y lógicas (and, or, xor).
o Registros. Memorias internas para almacenar datos intermedios y realizar operaciones.
- Se usan los buses para comunicar la CPU con los dispositivos de almacenamiento, dispositivos de Entrada (ratones, teclado, impresora) y Salida (monitor, impresora).
- Los buses son caminos a través de los cuales las instrucciones y los datos circulan entre las distintas unidades.









TIPOS DE CPU.
Cuando se diseñan los microprocesadores se intenta que sean los más rápido posible y que se ejecuten las máximas instrucciones a la vez.

Hay 2 tipos de diseño:

- CISC (Complex Instruction-Set Computer).
o Primera tecnología de CPU.
o Adoptada por Intel (8088). La usaban los primeros PC (Personal Computer) lanzados por IBM.
o Este sistema se basa en la microprogramación. Consiste en que a cada instrucción le corresponde un microprograma situado en una sección de memoria del circuito integrado del microprocesador.
o Instrucciones muy complejas.
o Muy rápido procesando código complejo.
o Cada instrucción necesita varios ciclos de reloj.
o Microprocesadores:
 INTEL. Celeron, Pentium II, Pentium III, Pentium IV.
 AMD. Duron, Athlon.
- RISC (Reduced Instruction-Set Computer).
o Instrucciones muy simples, minimizando el su número y complejidad.
o La mayoría de instrucciones solo usan un ciclo de reloj.
o Se usan en servidores, grandes aplicaciones industriales.
o Gran rendimiento y fiabilidad.
o Se está empezando a usar en Apple, ordenadores de mano, maquinas de juegos, y otros aparatos domésticos.
o Ejemplos de equipos RISC.
 Sistemas MIPS. Millones de instrucciones por segundo de 1992.
 SPARC, de la empresa Sun.
 PowerPC, de Apple, Motorola e IBM.
Para ejecutar una tarea se necesitan más instrucciones en los micros RISC que CISC, ya que en RISC las instrucciones son más elementales; sin embargo, son mas rápidos, fiables y potentes.
El mercado se decanta por la tecnología CISC, por varias razones:
o CISC, tiene coste razonable, mientras que RISC se emplea para equipos de alta gama.
o CISC, sus prestaciones son suficientes para el usuario medio.
o El software (programas) CISC y RISC son incompatible.


Comparación de ambas tecnologías:





Ejemplos de programas:
En este enlace http://es.wikipedia.org/wiki/Programa_Hola_Mundo se pueden ver en los distintos lenguajes de programación.
En ensamblador seria:

LOS REGISTROS (REGISTROS INTERNOS).
- Celdas de memoria de alta velocidad que permiten a la CPU almacenar datos temporalmente mientras efectúa alguna operación
- Es la memoria interna del procesador.
- Los registros están formados por conjuntos de bits (8, 16, 32, …, múltiplos de 8).
- El tamaño indica en número de bits que podemos manipular a la vez.
- Cuando mayor sea el número de bits, más potente será el micro, ya que trabaja con más información. Las primeros PC tenían registros de 16 bits, y solo podían ejecutar software de 16 bits, como MS-DOS y el Windows 3.X.
- El 80386 fue el primer microprocesador de 32 bits.
- Los registros de la CPU se pueden dividir en 2 tipos:
o REGISTROS VISIBLES AL USUARIO.
o REGISTROS DE CONTROL Y DE ESTADO.
REGISTROS VISIBLES AL USUARIO.
- Estos registros pueden ser referenciados por lenguaje ensamblador o lenguaje maquina.
- Hay 3 tipos de registros.
o Registros de dirección. Contienen la dirección de memoria donde está el dato.
o Registros de datos. Se usan para contener datos.
o Registros de condición (FLAGS). También llamados flags. Indican el resultado de la última operación: negativo, nulo, overflow, underflow, cero, etc.


REGISTROS DE CONTROL Y DE ESTADO.
Son los registros que intervienen en la ejecución de la instrucción.
Hay 4 registros.
- Contador de programa (CP).
Contiene la instrucción que se va a ejecutar. Una vez que se lee se apunta a la siguiente a ejecutar.
- Registro de instrucción (RI).
Tiene el código de la instrucción actual.
- Registro de dirección de memoria (RDM).
Dirección de memoria donde se lee/almacena un dato. Para ello se usa el bus de direcciones.
- Registro de intercambio de memoria (RIM).
Registro donde se almacena o se lee un dato, usando del bus de datos.
FUNCIONAMIENTO.
- CP tiene la dirección de memoria de la instrucción a ejecutar.
- La dirección de CP es pasado al RDM.
- El dato que hay en la dirección de RDM se carga en RIM.
- El registro RIM se carga en el registro de RI.
- El registro CP apunta a siguiente dirección (CP = CP +1).

LA MEMORIA PRINCIPAL (RAM).
- RAM = “RANDOM ACCESS MEMORY”.
- Almacena:
o Programas = Secuencia de instrucciones a ejecutar.
o Datos = Datos que usan las programas.
- UC controla la manipulación de los datos y los programas.

- La RAM está formada por casillas (celdas) donde se almacenas datos e instrucciones.
- Cada casilla tiene 8 bits (byte).
- Si la memoria es de 1 K cuantos datos puedo almacenar?
- Y con 1 M?
- La memoria es volátil.
- Cada casilla de memoria se identifica por un número, llamado dirección. Ejemplo:
DIRECCION DATO
0000 3F
0001 45
0002 10
…. 00
FFFF 45
- Ejemplo de Lectura de memoria.

- Ejemplo de Escritura de memoria.

UNIDAD DE CONTROL (UC).
- Se encarga de ejecutar los programas y generar las señales de control para ejecutarlas.
- Realiza las siguientes operaciones:
o Extrae de la memoria principal la instrucción a ejecutar. Donde esta? Donde se almacena?
o La instrucción se compone de 2 zonas:
 Zona de operación. Instrucción a ejecutar.
 Zona de operandos. Dirección de memoria donde están los operandos. Ejemplo:


o Comprueba si hay que hacer alguna operación con la ALU.
o Si hay que sacar datos de la memoria, da las órdenes oportunas. Estos datos se encuentran en RI.
o Ordena a la ALU que haga la operación y almacena el resultado en el acumulador.
o PC apunta a la siguiente instrucción.
COMPONENTES DE LA UC.
- A parte del CP y el RI la UC tiene los siguientes componentes:
o Decodificador de instrucción (DI).
Extrae y analiza la instrucción a ejecutar y genera las señales para su ejecución.
o Reloj.
 Genera sucesión de impulsos eléctricos a intervalos constantes.
 Marca los tiempos de ejecución de cada instrucción y marca el ritmo de funcionamiento del decodificador de instrucción.
 La velocidad del reloj se mide en MHZ (megahercios), millones de ciclos por segundo. Los ordenadores tienen velocidades mayores a 1 GHz (gigahercio), es decir, mil millones de ciclos por segundo.

Si una instrucción se ejecuta en 1 ciclo de reloj, el micro ejecutaría mil millones de instrucciones.



o Secuenciador.
Genera órdenes o microordenes elementales, que sincronizadas con los impulsos de reloj hacen que se ejecute paso a paso y de manera ordenada la instrucción cargada en él.
- Medidas de velocidad de un procesador:
o Frecuencia de reloj.
o Numero de instrucción que se ejecutan por segundo (MIPS).
o Numero de operaciones matemáticas efectuadas por segundo.
UNIDAD ARITMETICO-LOGICA (ALU).
- Su función es operar con los datos que recibe de las ordenes de la UC.
- Realiza tanto operaciones aritméticas como lógicas.
- Para ello necesita la operación a realizar y los operando que se encuentran en la instrucción.
BUSES DE COMUNICACIÓN.
- Los buses son líneas eléctricas u ópticas por donde se comunican las distintas partes del ordenador.
- Los buses son cables por donde circulan bits en forma de información.
- Se usa una línea eléctrica para transmitir cada bit. Los primeros equipos solo podían transmitir 8 bits (8 líneas), los actuales usan 64 líneas (8 bytes) para transmitir la información.
- Hay 3 tipos:
o Bus de datos. Intercambia datos entre CPU y el resto de unidades. Por aquí van las instrucciones y los datos de los programas.
CPU BUS DE DATOS
8088, 80188 8 BITS
8086, 80186, 80286, 80386X 16 BITS
80386DX, 80486DX 32 BITS
PENTIUM II/III/IV 64 BITS
o Bus de direcciones.
 Transmite direcciones entre memoria y la CPU.
 Esta sincronizado con el bus de datos.
 Este bus nos va a decir a cuanta memoria podemos acceder. Por ejemplo si el bus tiene 10 líneas, podemos acceder a 210 = 1024 posiciones de memoria.
CPU BUS DE DIRECCIONES
8088, 80188 20 BITS
8086, 80186, 80286, 80386X 24 BITS
80386DX, 80486DX 32 BITS
PENTIUM II/III/IV 36 BITS
o Bus de control. Controla las unidades complementarias de la CPU, generando los impulsos eléctricos necesarios para gobernarlas.
-
EJECUCION DE UNA INSTRUCCIÓN.
- CPU ejecuta programas (conjunto de instrucciones) que están en memoria.
- Hay 2 fases.
o FASE DE BUSQUEDA.
 Busca de instrucción en MP y llevarla a UC para ejecutarla.
o FASE DE EJECUCION.
 Ejecuta la instrucción.
2. EVOLUCION DE LOS MICROPROCESADORES.
- A medida que evoluciona la electrónica los micros son más pequeños, integrando más componentes, siendo cada vez más rápidos.
- A la hora de elegir un micro hay que ver cuál es su uso: Ofimática, como maquina de juego o diseño grafico.
DIAGRAMA DE BLOQUES DE LAS CPU ACTUALES.
- Los primeros micros tenían los componentes básicos.
- A medida que van evolucionando se han ido aportando los siguientes componentes:
o FPU (Unidad de coma flotante). También conocido como coprocesador matemático. Realiza todas las operaciones en coma flotante.
o Cache del procesador (L1, L2, L3). Mirar apartado siguiente.
o FSB (Bus Frontal). Bus que conecta la CPU con la placa base. Interfaz entre la cache de nivel 2 del procesador y la placa base.
o BSB (Bus Posterior). Interfaz entre la cache de nivel 1 y el núcleo de procesador.
o Instrucciones especiales.
 Tecnología MMX. Extensión Multimedia (Video y gráficos). Solo enteros.
 Tecnología superescalar. Ejecutar más una instrucción en un ciclo de reloj.
 Técnica de pipelining (segmentación). Ejecutar una instrucción antes de que acabe la otra.
 Tecnología SSE (MMX-2). Entre otras cosas permite:
• Permite hacer cálculos matemáticos con número en coma flotante (MMX no permitía).
• Se pueden usar simultáneamente con la FPU o con instrucciones MMX.
• Optimizan la reproducción de video (MPEG-2), reconocimiento de voz, y acceso a la memoria.
 Tecnología SSE-2. Con Pentium IV aparece esta nueva tecnología. Supone 144 nuevas instrucciones (cálculos de doble precisión, 128 bits, en como flotante).
LA MEMORIA CACHE
Una memoria caché es una memoria en la que se almacenas una serie de datos para su rápido acceso. Existen muchas memorias caché (de disco, de sistema, incluso de datos, como es el caso de la caché de Google), pero en este tutorial nos vamos a centrar en la caché de los procesadores.

Básicamente, la memoria caché de un procesador es un tipo de memoria volátil (del tipo RAM), pero de una gran velocidad.
En la actualidad esta memoria está integrada en el procesador, y su cometido es almacenar una serie de instrucciones y datos a los que el procesador accede continuamente, con la finalidad de que estos accesos sean instantáneos. Estas instrucciones y datos son aquellas a las que el procesador necesita estar accediendo de forma continua, por lo que para el rendimiento del procesador es imprescindible que este acceso sea lo más rápido y fluido posible.

Hay tres tipos diferentes de memoria caché para procesadores:
Caché de 1er nivel (L1): Esta caché está integrada en el núcleo del procesador, trabajando a la misma velocidad que este. La cantidad de memoria caché L1 varía de un procesador a otro, estando normalmente entra los 64KB y los 256KB. Esta memoria suele a su vez estar dividida en dos partes dedicadas, una para instrucciones y otra para datos.
Caché de 2º nivel (L2): Integrada también en el procesador, aunque no directamente en el núcleo de este, tiene las mismas ventajas que la caché L1, aunque es algo más lenta que esta. La caché L2 suele ser mayor que la caché L1, pudiendo llegar a superar los 2MB. A diferencia de la caché L1, esta no está dividida, y su utilización está más encaminada a programas que al sistema.
Caché de 3er nivel (L3): Es un tipo de memoria caché más lenta que la L2, muy poco utilizada en la actualidad.
En un principio esta caché estaba incorporada a la placa base, no al procesador, y su velocidad de acceso era bastante más lenta que una caché de nivel 2 o 1, ya que si bien sigue siendo una memoria de una gran rapidez (muy superior a la RAM, y mucho más en la época en la que se utilizaba), depende de la comunicación entre el procesador y la placa base.
Para hacernos una idea más precisa de esto, imaginemos en un extremo el procesador y en el otro la memoria RAM. Pues bien, entre ambos se encuentra la memoria caché, más rápida cuanto más cerca se encuentre del núcleo del procesador (L1).
Las memorias caché son extremadamente rápidas (su velocidad es unas 5 veces superior a la de una RAM de las más rápidas), con la ventaja añadida de no tener latencia, por lo que su acceso no tiene ninguna demora... pero es un tipo de memoria muy cara.
Esto, unido a su integración en el procesador (ya sea directamente en el núcleo o no) limita bastante el tamaño, por un lado por lo que encarece al procesador y por otro por el espacio disponible.
En cuanto a la utilización de la caché L2 en procesadores multinucleares, existen dos tipos diferentes de tecnologías a aplicar.
Por un lado está la habitualmente utilizada por Intel, que consiste en que el total de la caché L2 está accesible para ambos núcleos y por otro está la utilizada por AMD, en la que cada núcleo tiene su propia caché L2 dedicada solo para ese núcleo.
La caché L2 apareció por primera vez en los Intel Pentium Pro, siendo incorporada a continuación por los Intel Pentium II, aunque en ese caso no en el encapsulado del procesador, sino externamente (aunque dentro del procesador).

Más información en:
- http://www.conozcasuhardware.com/quees/memcache.htm.
3. ACTIVIDADES.

- Ir a la página web http://www.cpuid.com/cpuz.php y bajar el programa CPU-Z. Ver las características de nuestro microprocesador.