You are on page 1of 25

Marco Terico Estructura Interna Del Computador

Unidad central de procesamiento o CPU

La unidad central de procesamiento o CPU (por el acrnimo en ingls de central processing unit), o simplemente el procesador o microprocesador, es el componente en una computadora digital que interpreta las instrucciones y procesa los datos contenidos en los programas de la computadora. Las CPU proporcionan la caracterstica fundamental de la computadora digital (la programabilidad) y son uno de los componentes necesarios encontrados en las computadoras de cualquier tiempo, junto con el almacenamiento primario y los dispositivos de entrada/salida. Se conoce como microprocesador el CPU que es manufacturado con circuitos integrados. Desde mediados de los aos 1970, los microprocesadores de un solo chip han reemplazado casi totalmente todos los tipos de CPU, y hoy en da, el trmino "CPU" es aplicado usualmente a todos los microprocesadores.

Historia de la CPU

Casi todos los CPU tratan con estados discretos, y por lo tanto requieren una cierta clase de elementos de conmutacin para diferenciar y cambiar estos estados. Antes de la aceptacin comercial del transistor, los rels elctricos y los tubos de vaco (vlvulas termoinicas) eran usados comnmente como elementos de conmutacin. Aunque stos tenan distintas ventajas de velocidad sobre los anteriores diseos puramente mecnicos, no eran fiables por varias razones. Por ejemplo, hacer circuitos de lgica secuencial de corriente directa requera hardware adicional para hacer frente al problema del rebote de contacto. Por otro lado, mientras que los tubos de

vaco no sufren del rebote de contacto, stos deben calentarse antes de llegar a estar completamente operacionales y eventualmente fallan y dejan de funcionar por completo. Generalmente, cuando un tubo ha fallado, el CPU tendra que ser diagnosticado para localizar el componente que falla para que pueda ser reemplazado. Por lo tanto, los primeros computadores electrnicos, (basados en tubos de vaco), generalmente eran ms rpidas pero menos confiables que las computadoras electromecnicas, (basadas en rels). Las computadoras de tubo, como el EDVAC, tendieron en tener un promedio de ocho horas entre fallas, mientras que las computadoras de rels, (anteriores y ms lentas), como el Harvard Mark I, fallaban muy raramente.

Al final, los CPU basados en tubo llegaron a ser dominantes porque las significativas ventajas de velocidad producidas generalmente pesaban ms que los problemas de confiabilidad. La mayor parte de estos tempranos CPU sncronos corran en frecuencias de reloj bajas comparadas con los modernos diseos microelectrnicos, (ver ms abajo para una exposicin sobre la frecuencia de reloj). Eran muy comunes en este tiempo las frecuencias de la seal del reloj con un rango desde 100 kHz hasta 4 MHz, limitado en gran parte por la velocidad de los dispositivos de conmutacin con los que fueron construidos.

CPU de transistores y de circuitos integrados discretos

La complejidad del diseo de los CPU se increment a medida que varias tecnologas facilitaron la construccin de dispositivos electrnicos ms pequeos y confiables. La primera de esas mejoras vino con el advenimiento del transistor. Los CPU transistorizados durante los aos

1950 y los aos 1960 no tuvieron que ser construidos con elementos de conmutacin abultados, no fiables, y frgiles, como los tubos de vaco y los rels elctricos. Con esta mejora, fueron construidos CPUs ms complejos y ms confiables sobre una o varias tarjetas de circuito impreso que contenan componentes discretos (individuales). Durante este perodo, gan popularidad un mtodo de fabricar muchos transistores en un espacio compacto. El circuito integrado (IC) permiti que una gran cantidad de transistores fueran fabricados en una simple oblea basada en semiconductor o "chip". Al principio, solamente circuitos digitales muy bsicos, no especializados, como las puertas NOR fueron miniaturizados en ICs. Los CPU basadas en estos IC de "bloques de construccin" generalmente son referidos como dispositivos de pequea escala de integracin "small-scale integration" (SSI). Los circuitos integrados SSI usualmente contenan transistores que se contaban en nmeros de mltiplos de diez. Construir un CPU completo usando ICs SSI requera miles de chips individuales, pero todava consuma mucho menos espacio y energa que diseos anteriores de transistores discretos. A medida que la tecnologa microelectrnica avanz, en los IC fue colocado un nmero creciente de transistores, disminuyendo as la cantidad de ICs individuales necesarios para un CPU completo. Los circuitos integrados MSI y el LSI (de mediana y gran escala de integracin) aumentaron el nmero de transistores a cientos, y luego a miles.

Los computadores basados en transistores tenan varias ventajas distintas sobre sus predecesores. Aparte de facilitar una creciente confiabilidad y un ms bajo consumo de energa, los transistores tambin permitan al CPU operar a velocidades mucho ms altas debido al corto tiempo de conmutacin de un transistor en comparacin a un tubo o rel. Gracias tanto a la creciente confiabilidad como a la dramticamente incrementada velocidad de los elementos de conmutacin que por este tiempo eran casi exclusivamente transistores, fueron obtenidas frecuencias de reloj del CPU de decenas de megahertz. Adems, mientras que los CPU de transistores discretos y circuitos integrados estaban en fuerte uso, comenzaron a aparecer los nuevos diseos de alto rendimiento como procesadores vectoriales SIMD (Single Instruction Multiple Data) (Simple Instruccin Mltiples Datos). Estos tempranos diseos experimentales dieron lugar ms adelante a la era de los supercomputadoras especializados.

Microprocesadores Es un circuito microscpico que interpreta y ejecuta instrucciones. El CPU se ocupa del control y el proceso de datos en las computadoras. Generalmente, el CPU es un microprocesador fabricado en un chip, un nico trozo de silicio que contiene millones de componentes electrnicos. El microprocesador del CPU est formado por una unidad aritmtico-lgica que realiza clculos y comparaciones, y toma decisiones lgicas (determina si una afirmacin es cierta o falsa mediante las reglas del lgebra de Boole); por una serie de registros donde se almacena informacin temporalmente, y por una unidad de control que interpreta y ejecuta las instrucciones. Para aceptar rdenes del usuario, acceder a los datos y presentar los resultados, el CPU se comunica a travs de un conjunto de circuitos o conexiones llamado bus. El bus conecta el CPU a los dispositivos de almacenamiento (por ejemplo, un disco duro), los dispositivos de entrada (por ejemplo, un teclado o un mouse) y los dispositivos de salida (por ejemplo, un monitor o una impresora).

Evolucin Del Microprocesador

Microprocesador 4004 (1971)

Es el primer microprocesador introducido por Intel en 1971, no era un procesador muy poderoso, solo poda sumar y restar. Aun as era una revolucin Tecnolgica ya que estaba integrado en un solo chip.

Microprocesador 4040 (1974) Sucesor del 4004

Fue diseado por Federico Faggin y Tom Innes, Fue el primeramente en juegos, Pruebas, Desarrollos y equipos de control.

Microprocesador 8008 (1972)

Este diseo era aceptable para utilizarlo como controlador de un terminal, Pero no para tareas, por lo que pocos ordenadores se basaron en l. Pero emplearon el mejorado Intel 8080.

Microprocesador 8080 (1974)

Fue usado en muchos de los primeros microcomputadores, Tales como la Altar 8800.

Microprocesador 8086-8088 (1978-1979)

Son los primeros microprocesadores de 16 bits diseados por Intel, Fueron el inicio y los miembros de la arquitectura x86.

Ambos ejecutaban el mismo conjunto de instrucciones, Se diferencian en que el 8086 tiene un bus de 16 bits y el 8088 un bus de 8 bits. El 8088 fue usado en el primer ordenador personal de IBM. Microprocesador 80186-80188 (1982)

Estos microprocesadores aportaron mejoras al 8086 y 8088 e integraron circuitos perifricos.

Microprocesador 80286 o 286 (1982)

Fue el primero en ser usado en pc clnicos.

Microprocesador 386 Dx (1985)

Fue el primer chip x86 capaz de manejar juegos de datos de 32 Bits.

Microprocesador 486 (1989)

Fue el primero en ofrecer u coprocesador matemtico integrado, La ventaja que ofreca era que las operaciones matemticas complejas era realizadas por el coprocesador de manera independiente al funcionamiento del procesador central.

De este modelo surgieron 8 versiones de 486: Intel 80486-SX Intel 80486 DX2 Intel 80486 5X2 Intel 80486-SL Intel 80486-SL-NM Intel 80486 DX4 Intel 80487 o 80487-5X Intel 80486 Over Drive

Microprocesador Intel Pentium (1993)

El Pentium es un agama de procesadores de quinta generacin con arquitectura x86. Con la aparicin de este procesador se llev a cabo con un movimiento econmico, acabando con la competencia que hasta entonces produca procesadores equivalentes.

Con Intel Pentium surge una gran familia:

Nace el conjunto de instrucciones MMX el cual brindaba un mejor manejo de usos multimedia y ofreca velocidades de hasta 233 MHz. Intel Pentium Pro Intel Pentium II Intel Xeon Intel Pentium III Intel Pentium 4

Intel Pentium M Intel Pentium D Intel Pentium Dual Core

Desde la introduccin del primer microprocesador, el Intel 4004, en 1970, y del primer microprocesador ampliamente usado, el Intel 8080, en 1974. Esta clase de CPUs ha desplazado casi totalmente el resto de los mtodos de implementacin de la Unidad Central de Proceso. Los fabricantes de mainframes y minicomputadores de ese tiempo lanzaron programas de desarrollo de ICs propietarios para actualizar sus ms viejas arquitecturas de computador, y eventualmente produjeron microprocesadores con conjuntos de instrucciones que eran compatibles hacia atrs con sus ms viejos hardwares y softwares. Combinado con el advenimiento y el eventual vasto xito de la computadora personal, el trmino "CPU" es aplicado ahora casi exclusivamente a los microprocesadores.

Las generaciones previas de CPUs fueron implementadas como componentes discretos y numerosos circuitos integrados de pequea escala de integracin en una o ms tarjetas de circuitos. Por otro lado, los microprocesadores son CPUs fabricados con un nmero muy pequeo de ICs; usualmente solo uno. El tamao ms pequeo del CPU, como resultado de estar implementado en una simple pastilla, significa tiempos de conmutacin ms rpidos debido a factores fsicos como el decrecimiento de la capacitancia parsita de las puertas. Esto ha permitido que los microprocesadores sncronos tengan tiempos de reloj con un rango de decenas de megahertz a varios gigahertz. Adicionalmente, como ha aumentado la capacidad de construir transistores excesivamente pequeos en un IC, la complejidad y el nmero de transistores en un simple CPU tambin se han incrementado dramticamente.

Operacin del CPU

La operacin fundamental de la mayora de los CPU, es ejecutar una secuencia de instrucciones almacenadas llamadas "programa". El programa es representado por una serie de nmeros que se mantienen en una cierta clase de memoria de computador. Hay cuatro pasos que casi todos los CPU de arquitectura de von Neumann usan en su operacin: fetch, decode, execute, y writeback, (leer, decodificar, ejecutar, y escribir).

El primer paso, leer (fetch), implica el recuperar una instruccin, (que es representada por un nmero o una secuencia de nmeros), de la memoria de programa. La localizacin en la memoria del programa es determinada por un contador de programa (PC), que almacena un nmero que identifica la posicin actual en el programa. En otras palabras, el contador de programa indica al CPU, el lugar de la instruccin en el programa actual. Despus de que se lee una instruccin, el Contador de Programa es incrementado por la longitud de la palabra de instruccin en trminos de unidades de memoria. Frecuentemente la instruccin a ser leda debe ser recuperada de memoria relativamente lenta, haciendo detener al CPU mientras espera que la instruccin sea retornada.

La instruccin que el CPU lee desde la memoria es usada para determinar qu deber hacer el CPU. En el paso de decodificacin, la instruccin es dividida en partes que tienen significado para otras unidades del CPU. La manera en que el valor de la instruccin numrica es interpretado est definida por la arquitectura del conjunto de instrucciones (el ISA) del CPU. A menudo, un grupo de nmeros en la instruccin, llamados opcode, indica qu operacin realizar. Las partes restantes del nmero usualmente proporcionan informacin requerida para esa instruccin, como por ejemplo, operandos para una operacin de adicin. Tales operandos se

pueden dar como un valor constante (llamado valor inmediato), o como un lugar para localizar un valor, que segn lo determinado por algn modo de direccin, puede ser un registro o una direccin de memoria. En CPUs e ISAs ms abstractos y complicados, es frecuentemente usado un microprograma para ayudar a traducir instrucciones en varias seales de configuracin para el CPU. Este microprograma es a veces reescribible de tal manera que puede ser modificado para cambiar la manera en que el CPU decodifica instrucciones incluso despus de que haya sido fabricado.

Despus de los pasos de lectura y decodificacin, es llevado a cabo el paso de la ejecucin de la instruccin. Durante este paso, varias unidades del CPU son conectadas de tal manera que ellas pueden realizar la operacin deseada. Si, por ejemplo, una operacin de adicin fue solicitada, una unidad aritmtico lgica (ALU) ser conectada a un conjunto de entradas y un conjunto de salidas. Las entradas proporcionan los nmeros a ser sumados, y las salidas contendrn la suma final. La ALU contiene la circuitera para realizar operaciones simples de aritmtica y lgica en las entradas, como adicin y operaciones de bits (bitwise). Si la operacin de adicin produce un resultado demasiado grande para poder ser manejado por el CPU, tambin puede ser ajustada una bandera (flag) de desbordamiento aritmtico localizada en un registro de banderas (ver abajo la seccin sobre rango de nmeros enteros).

El paso final, la escritura (writeback), simplemente "escribe" los resultados del paso de ejecucin a una cierta forma de memoria. Muy a menudo, los resultados son escritos a algn registro interno del CPU para acceso rpido por subsecuentes instrucciones. En otros casos los resultados pueden ser escritos a una memoria principal ms lenta pero ms barata y ms grande. Algunos tipos de instrucciones manipulan el contador de programa en lugar de directamente producir datos de resultado. stas son llamadas generalmente "saltos" (jumps) y facilitan comportamientos como bucles (loops), la ejecucin condicional de programas (con el uso de saltos condicionales), y funciones en programas. Muchas instrucciones tambin cambiarn el estado de dgitos en un registro de "banderas". Estas banderas pueden ser usadas para influenciar cmo se comporta un programa, puesto que a menudo indican el resultado de varias operaciones. Por ejemplo, un tipo de instruccin de "comparacin" considera dos valores y fija un nmero, en el registro de banderas, de acuerdo a cul es el mayor. Entonces, esta bandera puede ser usada por una posterior instruccin de salto para determinar el flujo de programa.

Representacin de nmeros

Diseo e implementacin. Rango de enteros. La manera en que una CPU representa los nmeros es una opcin de diseo que afecta las ms bsicas formas en que el dispositivo funciona. Algunas de las primeras calculadoras digitales usaron, para representar nmeros internamente, un modelo elctrico del sistema de numeracin decimal comn (base diez). Algunas otras computadoras han usado sistemas de numeracin ms exticos como el ternario (base tres). Casi todas las CPU modernas representan los nmeros en forma binaria, en donde cada dgito es representado por una cierta cantidad fsica de dos valores, como un voltaje "alto" o "bajo".

Con la representacin numrica estn relacionados el tamao y la precisin de los nmeros que una CPU puede representar. En el caso de una CPU binaria, un bit se refiere a una posicin significativa en los nmeros con que trabaja una CPU. El nmero de bits (o de posiciones numricas, o dgitos) que una CPU usa para representar los nmeros, a menudo se llama "tamao de la palabra", "ancho de bits", "ancho de ruta de datos", o "precisin del nmero entero" cuando se ocupa estrictamente de nmeros enteros (en oposicin a nmeros de coma flotante). Este nmero difiere entre las arquitecturas, y a menudo dentro de diferentes unidades de la misma CPU. Por ejemplo, una CPU de 8 bits maneja un rango de nmeros que pueden ser representados por ocho dgitos binarios, cada dgito teniendo dos valores posibles, y en combinacin los 8 bits teniendo 2^8 256 nmeros discretos. En efecto, el tamao del nmero entero fija un lmite de hardware en el rango de nmeros enteros que el software corre y que la CPU puede usar directamente.

El rango del nmero entero tambin puede afectar el nmero de posiciones en memoria que la CPU puede direccionar (localizar). Por ejemplo, si una CPU binaria utiliza 32 bits para representar una direccin de memoria, y cada direccin de memoria representa a un octeto (8 bits), la cantidad mxima de memoria que la CPU puede direccionar es 2^32 octetos, o 4 GB. sta es una vista muy simple del espacio de direccin de la CPU, y muchos diseos modernos usan mtodos de direccin mucho ms complejos como paginacin para localizar ms memoria que su rango entero permitira con un espacio de direccin plano.

Niveles ms altos del rango de nmeros enteros requieren ms estructuras para manejar los dgitos adicionales, y por lo tanto, ms complejidad, tamao, uso de energa, y generalmente costo. Por ello, no es del todo infrecuente, ver microcontroladores de 4 y 8 bits usados en aplicaciones modernas, aun cuando estn disponibles CPU con un rango mucho ms alto (de 16, 32, 64, e incluso 128 bits). Los microcontroladores ms simples son generalmente ms baratos, usan menos energa, y por lo tanto disipan menos calor. Todo esto pueden ser consideraciones de diseo importantes para los dispositivos electrnicos. Sin embargo, en aplicaciones del extremo alto, los beneficios producidos por el rango adicional, (ms a menudo el espacio de direccin adicional), son ms significativos y con frecuencia afectan las opciones del diseo. Para ganar algunas de las ventajas proporcionadas por las longitudes de bits tanto ms bajas, como ms altas, muchas CPUs estn diseadas con anchos de bit diferentes para diferentes unidades del dispositivo. Por ejemplo, el IBM Sistem/370 us una CPU que fue sobre todo de 32 bits, pero us precisin de 128 bits dentro de sus unidades de coma flotante para facilitar mayor exactitud y rango de nmeros de coma flotante. Muchos diseos posteriores de CPU usan una mezcla de ancho de bits similar, especialmente cuando el procesador est diseado para usos de propsito general donde se requiere un razonable equilibrio entre la capacidad de nmeros enteros y de coma flotante.

Frecuencia de reloj

La mayora de las CPU, y de hecho, la mayora de los dispositivos de lgica secuencial, son de naturaleza sncrona. Es decir, estn diseados y operan en funcin de una seal de sincronizacin. Esta seal, conocida como seal de reloj, usualmente toma la forma de una onda cuadrada peridica. Calculando el tiempo mximo en que las seales elctricas pueden moverse en las varias bifurcaciones de los muchos circuitos de una CPU, los diseadores pueden seleccionar un perodo apropiado para la seal del reloj.

Este perodo debe ser ms largo que la cantidad de tiempo que toma a una seal moverse, o propagarse, en el peor de los casos. Al fijar el perodo del reloj a un valor bastante mayor sobre el retardo de la propagacin del peor caso, es posible disear toda la CPU y la manera que mueve los datos alrededor de los "bordes" de la subida y bajada de la seal del reloj. Esto tiene la ventaja de simplificar la CPU significativamente, tanto en una perspectiva de diseo, como en una perspectiva de cantidad de componentes. Sin embargo, esto tambin tiene la desventaja que toda la CPU debe esperar por sus elementos ms lentos, aun cuando algunas unidades de la misma son mucho ms rpidas. Esta limitacin ha sido compensada en gran parte por varios mtodos de aumentar el paralelismo de la CPU.

Sin embargo, las solamente mejoras arquitectnicas no solucionan todas las desventajas de CPUs globalmente sncronas. Por ejemplo, una seal de reloj est sujeta a los retardos de cualquier otra seal elctrica. Velocidades de reloj ms altas en CPUs cada vez ms complejas hacen ms difcil de mantener la seal del reloj en fase (sincronizada) a travs de toda la unidad. Esto ha conducido que muchas CPU modernas requieran que se les proporcione mltiples seales de reloj idnticas, para evitar retardar una sola seal lo suficiente significativamente como para hacer a la CPU funcionar incorrectamente. Otro importante problema cuando la velocidad del reloj aumenta dramticamente, es la cantidad de calor que es disipado por la CPU. La seal del reloj cambia constantemente, provocando la conmutacin de muchos componentes (cambio de estado) sin importar si estn siendo usados en ese momento. En general, un componente que est cambiando de estado, usa ms energa que un elemento en un estado esttico. Por lo tanto, a medida que la velocidad del reloj aumenta, as lo hace tambin la disipacin de calor, causando que la CPU requiera soluciones de enfriamiento ms efectivas.

Paralelismo

La descripcin de la operacin bsica de un CPU ofrecida en la seccin anterior describe la forma ms simple que puede tomar un CPU. Este tipo de CPU, usualmente referido como subescalar, opera sobre y ejecuta una sola instruccin con una o dos piezas de datos a la vez. Este proceso da lugar a una ineficacia inherente en CPUs subescalares. Puesto que solamente una instruccin es ejecutada a la vez, todo el CPU debe esperar que esa instruccin se complete antes de proceder a la siguiente instruccin. Como resultado, el CPU subescalar queda "paralizado" en instrucciones que toman ms de un ciclo de reloj para completar su ejecucin. Incluso la adicin de una segunda unidad de ejecucin (ver abajo) no mejora mucho el desempeo. En lugar de un camino quedando congelado, ahora dos caminos se paralizan y aumenta el nmero de transistores no usados. Este diseo, en donde los recursos de ejecucin del CPU pueden operar con solamente una instruccin a la vez, solo puede, posiblemente, alcanzar el desempeo escalar (una instruccin por ciclo de reloj). Sin embargo, el desempeo casi siempre es subescalar (menos de una instruccin por ciclo).

Las tentativas de alcanzar un desempeo escalar y mejor, han resultado en una variedad de metodologas de diseo que hacen comportarse al CPU menos linealmente y ms en paralelo. Cuando se refiere al paralelismo en los CPU, generalmente son usados dos trminos para clasificar estas tcnicas de diseo.

El paralelismo a nivel de instruccin, en ingls Instruction Level Parallelism (ILP), busca aumentar la tasa en la cual las instrucciones son ejecutadas dentro de un CPU, es decir, aumentar la utilizacin de los recursos de ejecucin en la pastilla.

El paralelismo a nivel de hilo de ejecucin, en ingls Thread Level Parallelism (TLP), que se propone incrementar el nmero de hilos (efectivamente programas individuales) que un CPU pueda ejecutar simultneamente.

ILP: Entubado de instruccin y arquitectura superescalar

Uno de los ms simples mtodos usados para lograr incrementar el paralelismo es comenzar los primeros pasos de leer y decodificar la instruccin antes de que la instruccin anterior haya terminado de ejecutarse. sta es la forma ms simple de una tcnica conocida como instruction pipelining (entubado de instruccin), y es utilizada en casi todos los CPU de propsito general modernos. Al dividir la ruta de ejecucin en etapas discretas, la tubera permite que ms de una instruccin sea ejecutada en cualquier tiempo. Esta separacin puede ser comparada a una lnea de ensamblaje, en la cual una instruccin es hecha ms completa en cada etapa hasta que sale de la tubera de ejecucin y es retirada.

Sin embargo, la tubera introduce la posibilidad de una situacin donde es necesario terminar el resultado de la operacin anterior para completar la operacin siguiente; una condicin llamada a menudo como conflicto de dependencia de datos. Para hacer frente a esto, debe ser tomado un cuidado adicional para comprobar estas clases de condiciones, y si esto ocurre, se debe retrasar una porcin de la tubera de instruccin. Naturalmente, lograr esto requiere circuitera adicional, los procesadores entubados son ms complejos que los subescalares, pero no mucho. Un procesador entubado puede llegar a ser casi completamente escalar, solamente inhibido por las abruptas paradas de la tubera (una instruccin durando ms de un ciclo de reloj en una etapa).

Una mejora adicional sobre la idea del entubado de instruccin (instruction pipelining) condujo al desarrollo de un mtodo que disminuye incluso ms el tiempo ocioso de los componentes del CPU. Diseos que se dice que son superescalares incluyen una larga tubera de instruccin y mltiples unidades de ejecucin idnticas. En una tubera superescalar, mltiples instrucciones son ledas y pasadas a un despachador, que decide si las instrucciones se pueden o no ejecutar en paralelo (simultneamente). De ser as, son despachadas a las unidades de ejecucin disponibles, dando por resultado la capacidad para que varias instrucciones sean ejecutadas simultneamente. En general, cuanto ms instrucciones un CPU superescalar es capaz de despachar simultneamente a las unidades de ejecucin en espera, ms instrucciones sern completadas en un ciclo dado.

TLP: ejecucin simultnea de hilos

Otra estrategia comnmente usada para aumentar el paralelismo de los CPU es incluir la habilidad de correr mltiples hilos (programas) al mismo tiempo. En general, CPUs con alto TLP han estado en uso por mucho ms tiempo que los de alto ILP. Muchos de los diseos en los que Seymour Cray fue pionero durante el final de los aos 1970 y los aos1980 se concentraron en el TLP como su mtodo primario de facilitar enormes capacidades de computacin (para su tiempo). De hecho, el TLP, en la forma de mejoras en mltiples hilos de ejecucin, estuvo en uso tan temprano como desde los aos 1950 . En el contexto de diseo de procesadores individuales, las dos metodologas principales usadas para lograr el TLP son, multiprocesamiento a nivel de chip, en ingls chip-level multiprocessing (CMP), y el multihilado simultneo, en ingls simultaneous multithreading (SMT). En un alto nivel, es muy comn construir computadores con mltiples CPU totalmente independientes en arreglos como multiprocesamiento simtrico (symmetric

multiprocessing (SMP)) y acceso de memoria no uniforme (Non-Uniform Memory Access (NUMA)). Aunque son usados medios muy diferentes, todas estas tcnicas logran la misma meta: incrementar el nmero de hilos que el CPU(s) puede correr en paralelo.

Procesadores vectoriales y el SIMD

Un menos comn pero cada vez ms importante paradigma de CPU (y de hecho, de computacin en general) trata con vectores. Los procesadores de los que se ha hablado anteriormente son todos referidos como cierto tipo de dispositivo escalar.[14] Como implica su nombre, los procesadores vectoriales se ocupan de mltiples piezas de datos en el contexto de una instruccin, esto contrasta con los procesadores escalares, que tratan una pieza de dato por cada instruccin. Estos dos esquemas de ocuparse de los datos son generalmente referidos

respectivamente como SISD (Single Instruction, Single Data|) (Simple Instruccin, Simple Dato) y SIMD (Single Instruction, Multiple Data) (Simple Instruccin, Mltiples Datos). La gran utilidad en crear CPUs que se ocupen de vectores de datos radica en la optimizacin de tareas que tienden a requerir la misma operacin, por ejemplo, una suma, o un producto escalar, a ser realizado en un gran conjunto de datos. Algunos ejemplos clsicos de este tipo de tareas son las aplicaciones multimedia (imgenes, vdeo, y sonido), as como muchos tipos de tareas cientficas y de ingeniera. Mientras que un CPU escalar debe completar todo el proceso de leer, decodificar, y ejecutar cada instruccin y valor en un conjunto de datos, un CPU vectorial puede realizar una simple operacin en un comparativamente grande conjunto de datos con una sola instruccin. Por supuesto, esto es solamente posible cuando la aplicacin tiende a requerir muchos pasos que apliquen una operacin a un conjunto grande de datos.

Direccin de memoria

En informtica, una direccin de memoria es un identificador para una localizacin de memoria con la cual un programa informtico o un dispositivo de hardware pueden almacenar un dato para su posterior reutilizacin. Una forma comn de describir la memoria principal de un ordenador es como una coleccin de celdas que almacenan datos e instrucciones. Cada celda est identificada unvocamente por un nmero o direccin de memoria.

Para poder acceder a una ubicacin especfica de la memoria, la CPU genera seales en el bus de direccin, que habitualmente tiene un tamao de 32 bits en la mayora de mquinas actuales. Un bus de direccin de 32 bits permite especificar a la CPU 232 = 4.294.967.296 direcciones de memoria distintas. Debido a la estructura de 32 bits de un procesador comn como los de Intel, las direcciones de memoria se expresan a menudo en hexadecimal. Por ejemplo, para no tener que escribir 111111010100000000000010101100 podemos escribir 3F5000AC en hexadecimal.

En aplicaciones informticas las direcciones son asignadas por el sistema operativo a cada programa en ejecucin, asegurndose ste, comnmente por medio de un daemon, que las direcciones utilizadas por un ejecutable u otro proceso no se solapen o se escriba en posiciones protegidas de memoria, por ejemplo, en el sector de arranque. Los sistemas operativos actuales son comnmente diferenciados segn el ancho de palabra soportado por sus registros, es decir 32 y 64 bits. Estas cifras se refieren a la mxima capacidad que dichos sistemas operativos pueden direccionar, as un sistema de 32 bits podra acceder y direccionar, sin utilizar memoria virtual, un mximo de 232 posiciones de memoria, usualmente designadas por un cdigo hexadecimal.

Debido a esto, el rango de valores naturales que pueden ser almacenados en 32 bits es de 0 hasta 4.294.967.295 (0h - FFFFFFFFh). Para los sistemas de 64 bits, siguiendo el razonamiento anterior, obtendramos 264 posibilidades, lo que se traduce en un rango de valores desde 0 hasta 18.446.744.073.709.551.615 (0h- FFFFFFFFFFFFFFFFh).

Aspectos Generales sobre Memorias

Las unidades de memoria son mdulos conformados por un conjunto de cerrojos o condensadores agrupados de tal forma que almacenan varias palabras binarias de n bits. Cada una de ellas tiene la capacidad de almacenar un bit de informacin (1 o 0), y se conocen con el nombre de celdas de memoria. Las celdas o bits de memoria se ubican mediante la fila y la columna en la que se encuentra.

Las palabras binarias se identifican con una direccin la cual define la ubicacin dentro del arreglo y generalmente se designa con un nmero binario, octal o hexadecimal. En la mayora de las aplicaciones se asocian en grupos de ocho unidades para formar bytes y el tamao de las palabras en las memorias actuales est entre 4 y 64 bits. El parmetro bsico de una memoria es su capacidad, la cual corresponde al total de unidades que puede almacenar.

Ubicacin de la informacin en una memoria

Unidad de entrada-salida (E/S)

Elemento que proporciona un mtodo de comunicacin eficaz entre el sistema central y el perifrico.

Control y temporizacin Comunicacin con la CPU Funciones: Comunicacin con el dispositivo externo Almacn temporal de datos Deteccin de errores

Estructura del controlador E/S

Modos de Interconexin E/S CPU

Buses independientes E/S aislada Bus comn pero lneas de control separadas Bus nico E/S localizada en memoria

Tcnicas de Interaccin E/S Sistema

E/S controlada por programa E/S por interrupciones Acceso directo a memoria (DMA)

E/S controlada por programa

La CPU est pendiente en todo momento (sondeo constante mediante bucles) del estado de la E/S.

Prdida de tiempo en bucle de espera Inconvenientes Algunos programas no permiten estar en bucle Si varios perifricos muchos problemas

E/S controlada por interrupciones

Elimina bucles de sondeo, de forma que entre CPU y unidad de E/S existe una lnea de comunicacin HARDWARE que provoca que cuando un perifrico precisa de la atencin de la CPU la unidad de E/S enva un nivel o flanco de tensin que provoca una interrupcin en la CPU. Esta deja de hacer lo que estaba haciendo y salta a una subrutina (vector interrupcin) de respuesta a dicho perifrico.

A fin de cuentas tiene exactamente la misma funcin que una llamada a una subrutina, pero en lugar de efectuar dicha llamada va instruccin recogida en el cdigo del programa, dicha llamada se efecta al activar un nivel de tensin en una determinada patilla. Si se analiza el cdigo del programa almacenado en la memoria de una aplicacin se puede ver que estn las dos partes, la correspondiente a la aplicacin y a la interrupcin, pero entre ambos cdigos no se ve una relacin software.

ULA 74181 MONTAJE

Muchos tipos de circuitos electrnicos necesitan realizar algn tipo de operacin aritmtica, as que incluso el circuito dentro de un reloj digital tendr una ALU minscula que se mantiene sumando 1 al tiempo actual, y se mantiene comprobando si debe activar el pitido del temporizador, etc. Por mucho, los ms complejos circuitos electrnicos son los que estn construidos dentro de los chips de microprocesadores modernos como el Intel Core Duo. Por lo tanto, estos procesadores tienen dentro de ellos un ALU muy complejo y poderoso. De hecho, un microprocesador moderno (y los mainframes) pueden tener mltiples ncleos, cada ncleo con mltiples unidades de ejecucin, cada una de ellas con mltiples ALU.

Unidad Lgica Aritmtica 74181 es un sistema que permite realizar operaciones lgicas como OR, ANDA entre otras y operaciones aritmticas, por ejemplo, la suma, resta, etc. Dentro de las ALU comerciales se encuentra el IC 74LS181.

La funcin de cada uno de los pines de este IC, se describe a continuacin:

Pines 2, 23, 21 y 19, respectivamente /A0 ... /A3, son las entradas de uno de los operandos, activos en BAJO.

Pines 1, 22,20 18, respectivamente / B0 ... /B3, entradas del los operandos restantes, activos en BAJO.

Pines 9, 10, 11 y 13, respectivamente /F0 ... /F3, son las salidas de la ALU, donde se tendrn los resultados de las entradas.

Pin 8 M, es una de las lneas de control; por medio de esta lneas se le indica al circuito la operacin a realizar, Si M=1 realiza operaciones lgicas y realiza operaciones aritmticas si M=0.

Pin 7 Cn, es la entrada de acarreo esta entrada deber ser 0 en operaciones aritmticas; en caso de ser un 1 habr que sumarlo a la funcin aritmtica que se seleccione.

Pin 14 A=B, es una salida de colector abierto e indica cundo las cuatro salidas est a nivel ALTO. Si se selecciona la operacin aritmtica de la resta es salida se activar cuando ambos operandos sean iguales.

Pin 17 /G, salida de generacin de acarreo. En operacin aritmtica de la suma, esta salida indica que la salida F es mayor o igual a 16, y en la resta F es menor que cero.

Pin 15 /P, salida de propagacin de acarreo. En la operacin aritmtica de la suma, esta salida indica que F es mayor o igual a 15 y en la resta que F es menor que cero.

Las salidas /G y /P se utilizan para acoplar varios circuitos integrados del tipo 74181 en cascada empleando el mtodo de propagacin en paralelo.

Pin 16 Cn+4 es la salida de acarreo.

Pines 6, 5, 4 y 3, respectivamente So ... S3, son las lneas de control del circuito; mediante stas se selecciona la funcin que ha de realizar el circuito.

Pin 24 = VCC

Pin 12 = GND

BIBLIOGRAFA

http://es.wikipedia.org/wiki/Unidad_central_de_procesamiento#CPU_de_transistores_y_de_circuito s_integrados_discretos

http://es.wikipedia.org/wiki/Direcci%C3%B3n_de_memoria

www.uned.es/ca-bergara/ppropias/transp_ent_sal.pdf

josecardenas.media.officelive.com/Documents/memorias_semiconductoras.doc

http://es.wikipedia.org/wiki/Unidad_aritm%C3%A9tico_l%C3%B3gica

http://www.geomundos.com/mexico/tecnologia/alu-74ls181_doc_13449.html

INDICE

Unidad central de procesamiento o CPU ........................................................................................... 1 Historia de la CPU ............................................................................................................................... 1 CPU de transistores y de circuitos integrados discretos ................................................................... 2 Microprocesadores ............................................................................................................................. 4 Operacin del CPU ............................................................................................................................ 10 Representacin de nmeros ............................................................................................................ 12 Frecuencia de reloj ........................................................................................................................... 14 Paralelismo ....................................................................................................................................... 15 ILP: Entubado de instruccin y arquitectura superescalar.............................................................. 15 TLP: ejecucin simultnea de hilos .................................................................................................. 17 Procesadores vectoriales y el SIMD ................................................................................................. 17 Direccin de memoria ...................................................................................................................... 18 Aspectos Generales sobre Memorias .............................................................................................. 19 Unidad de entrada-salida (E/S) ........................................................................................................ 20 Estructura del controlador E/S ......................................................................................................... 20 E/S controlada por programa........................................................................................................... 21 E/S controlada por interrupciones ................................................................................................... 21 ULA 74181 MONTAJE........................................................................................................................ 21 REFERENCIAS .................................................................................................................................... 23

You might also like