La unidad central de procesamiento (CPU) - Info Basica

Info

02.05.2012 a las 20:23 hs 0 531 0

La expresión "unidad central de proceso"es, en términos generales, una descripción de una cierta clase de máquinas de lógicaque pueden ejecutar complejos programas de computadora. Esta amplia definiciónpuede fácilmente ser aplicada a muchos de los primeros computadores queexistieron mucho antes que el término "CPU" estuviera en amplio uso.Sin embargo, el término en sí mismo y su acrónimo han estado en uso en la industriade la informática por lo menos desde el principio de los años 1960.

La CPU también es la llamada unidad central deprocesamiento (por el acrónimo en inglés de central processing unit), osimplemente el procesador o microprocesador, es el componente del computador yotros dispositivos programables, que interpreta las instrucciones contenidas enlos programas y procesa los datos. Los CPU proporcionan la característicafundamental de la computadora digital (la programabilidad) y son uno de loscomponentes necesarios encontrados en las computadoras de cualquier tiempo,junto con el almacenamiento primario y los dispositivos de entrada/salida. Seconoce como microprocesador el CPU que es manufacturado con circuitosintegrados.

La forma, el diseño y la implementación de los CPUha cambiado drásticamente desde los primeros ejemplos, pero su operaciónfundamental ha permanecido bastante similar.

Los primeros CPU fueron diseñados a la medida comoparte de una computadora más grande, generalmente una computadora única en suespecie. Sin embargo, este costoso método de diseñar los CPU a la medida, parauna aplicación particular, ha desaparecido en gran parte y se ha sustituido porel desarrollo de clases de procesadores baratos y estandarizados adaptados parauno o muchos propósitos.

Esta tendencia de estandarización comenzógeneralmente en la era de los transistores discretos, computadoras centrales, ymicrocomputadoras, y fue acelerada rápidamente con la popularización delcircuito integrado (IC), éste ha permitido que sean diseñados y fabricados CPUmás complejos en espacios pequeños (en la orden de milímetros). Tanto laminiaturización como la estandarización de los CPU han aumentado la presenciade estos dispositivos digitales en la vida moderna mucho más allá de lasaplicaciones limitadas de máquinas de computación dedicadas.

Esta tendencia de estandarización comenzógeneralmente en la era de los transistores discretos, computadoras centrales, ymicrocomputadoras, y fue acelerada rápidamente con la popularización delcircuito integrado (IC), éste ha permitido que sean diseñados y fabricados CPUmás complejos en espacios pequeños (en la orden de milímetros). Tanto laminiaturización como la estandarización de los CPU han aumentado la presenciade estos dispositivos digitales en la vida moderna mucho más allá de lasaplicaciones limitadas de máquinas de computación dedicadas.

Los microprocesadores modernos aparecen en todo,desde automóviles, televisores, neveras, calculadoras, aviones, hasta teléfonosmóviles o celulares, juguetes, entre otros.


¿Qué es una CPU?

Definición de CPU.
CPU, abreviatura de Central Processing Unit (unidadde proceso central), se pronuncia como letras separadas. La CPU es el cerebrodel ordenador. A veces es referido simplemente como el procesador o procesadorcentral, En ordenadores grandes, las CPU requieren uno o más tableros decircuito impresos. En los ordenadores personales y estaciones de trabajopequeñas, la CPU está contenida en un solo chip llamado microprocesador.

Dos componentes típicos de una CPU son

La unidad de lógica/aritmética (ALU), que realiza operacionesaritméticas y lógicas.

La unidad de control (CU), que extrae instruccionesde la memoria, las descifra y ejecuta, llamando a la ALU cuando es necesario.
Casi todos los CPU tratan con estados discretos, ypor lo tanto requieren una cierta clase elementos de conmutación paradiferenciar y cambiar estos estados. Antes de la aceptación comercial del transistor,los relés eléctricos y los tubos de vacío (válvulas termoiónicas) eran usadoscomúnmente como elementos de conmutación. Aunque éstos tenían distintasventajas de velocidad sobre los anteriores diseños puramente mecánicos, no eranfiables por varias razones. Por ejemplo, hacer circuitos de lógica secuencialde corriente directa requería hardware adicional para hacer frente al problemadel rebote de contacto. Por otro lado, mientras que los tubos de vacío nosufren del rebote de contacto, éstos deben calentarse antes de llegar a estarcompletamente operacionales y eventualmente fallan y dejan de funcionar porcompleto. Generalmente, cuando un tubo ha fallado, el CPU tendría que serdiagnosticado para localizar el componente que falla para que pueda serreemplazado. Por lo tanto, los primeros computadores electrónicos, (basados entubos de vacío), generalmente eran más rápidas pero menos confiables que lascomputadoras electromecánicas, (basadas en relés). Las computadoras de tubo,como el EDVAC, tendieron en tener un promedio de ocho horas entre fallas,mientras que las computadoras de relés, (anteriores y más lentas), como elHarvard Mark I, fallaban muy raramente . Al final, los CPU basados en tubollegaron a ser dominantes porque las significativas ventajas de velocidadproducidas generalmente pesaban más que los problemas de confiabilidad. Lamayor parte de estos tempranos CPU síncronos corrían en frecuencias de relojbajas comparadas con los modernos diseños microelectrónicos, (ver más abajopara una exposición sobre la frecuencia de reloj). Eran muy comunes en estetiempo las frecuencias de la señal del reloj con un rango desde 100 kHz hasta 4MHz, limitado en gran parte por la velocidad de los dispositivos de conmutacióncon los que fueron construidos CPU, memoria de núcleo, e interfaz de bus externode un MSI PDP-8/I.

La complejidad del diseño de los CPU se incrementóa medida que varias tecnologías facilitaron la construcción de dispositivoselectrónicos más pequeños y confiables. La primera de esas mejoras vino con eladvenimiento del transistor. Los CPU transistor izados durante los años 1950 ylos años 1960 no tuvieron que ser construidos con elementos de conmutaciónabultados, no fiables, y frágiles, como los tubos de vacío y los releeseléctricos. Con esta mejora, fueron construidos CPU más complejos y másconfiables sobre una o varias tarjetas de circuito impreso que conteníancomponentes discretos (individuales).

Durante este período, ganó popularidad un método defabricar muchos transistores en un espacio compacto. El circuito integrado (IC)permitió que una gran cantidad de transistores fueran fabricados en una simpleoblea basada en semiconductor o "chip". Al principio, solamentecircuitos digitales muy básicos, no especializados, como las puertas NOR fueronminiaturizados en IC. Los CPU basadas en estos IC de "bloques deconstrucción" generalmente son referidos como dispositivos de pequeña escalade integración "small-scale integration" (SSI). Los circuitosintegrados SSI, como los usados en el computador guía del Apoyo (Apoyo GuidanceComputer), usualmente contenían transistores que se contaban en números demúltiplos de diez. Construir un CPU completo usando IC SSI requería miles dechips individuales, pero todavía consumía mucho menos espacio y energía quediseños anteriores de transistores discretos. A medida que la tecnologíamicroelectrónica avanzó, en los IC fue colocado un número creciente detransistores, disminuyendo así la cantidad de IC individuales necesarios paraun CPU completo. Los circuitos integrados MSI y el LSI (de mediana y granescala de integración) aumentaron el número de transistores a cientos, y luegoa miles.

En 1964, IBM introdujo su arquitectura decomputador System/360, que fue usada en una serie de computadores que podíanejecutar los mismos programas con velocidades y desempeños diferentes. Esto fuesignificativo en un tiempo en que la mayoría de las computadoras electrónicaseran incompatibles entre sí, incluso las hechas por el mismo fabricante. Parafacilitar esta mejora, IBM utilizó el concepto de microprograma, a menudollamado "micro código", ampliamente usado aún en los CPU modernos .La arquitectura System/360 era tan popular que dominó el mercado del mainframedurante las siguientes décadas y dejó una herencia que todavía aún perdura enlas computadoras modernas, como el IBM Series. En el mismo año de 1964, DigitalEquipment Corporation.

Digital Equipment Corporation (DEC) introdujo otrocomputador que sería muy influyente, dirigido a los mercados científicos y deinvestigación, el PDP-8. DEC introduciría más adelante la muy popular línea delPDP-11, que originalmente fue construido con IC SSI pero eventualmente fueimplementado con componentes LSI cuando se convirtieron en prácticos. En fuertecontraste con sus precursores hechos con tecnología SSI y MSI, la primeraimplementación LSI del PDP-11 contenía un CPU integrado únicamente por cuatrocircuitos integrados LSI.

Los computadores basados en transistores teníanvarias ventajas frente a sus predecesores. Aparte de facilitar una crecientefiabilidad y un menor consumo de energía, los transistores también permitían alCPU operar a velocidades mucho más altas debido al corto tiempo de conmutaciónde un transistor en comparación a un tubo o relé. Gracias tanto a estacreciente fiabilidad como al dramático incremento de velocidad de los elementosde conmutación que por este tiempo eran casi exclusivamente transistores, sefueron alcanzando frecuencias de reloj del CPU de decenas de megahertz. Además,mientras que los CPU de transistores discretos y circuitos integrados se usabancomúnmente, comenzaron a aparecer los nuevos diseños de alto rendimiento comoprocesadores vectoriales SIMD (Single Instruction Múltiple Data) (SimpleInstrucción Múltiples Datos). Estos primeros diseños experimentales dieronlugar más adelante a la era de las supercomputadoras especializadas, como loshechos por Cray Inc.

Desde la introducción del primer microprocesador,el Intel 4004, en 1970, y del primer microprocesador ampliamente usado, elIntel 8080, en 1974, esta clase de CPUs ha desplazado casi totalmente el restode los métodos de implementación de la Unidad Central de Proceso. Losfabricantes de mainframes y minicomputadores de ese tiempo.

Las generaciones previas de CPUs fueronimplementadas como componentes discretos y numerosos circuitos integrados depequeña escala de integración en una o más tarjetas de circuitos. Por otrolado, los microprocesadores son CPUs fabricados con un número muy pequeño deIC; usualmente solo uno. El tamaño más pequeño del CPU, como resultado de estarimplementado en una simple pastilla, significa tiempos de conmutación másrápidos debido a factores físicos como el decrecimiento de la capacitanciaparásita de las puertas. Esto ha permitido que los microprocesadores síncronostengan tiempos de reloj con un rango de decenas de megahercios a varios giga hercios.Adicionalmente, como ha aumentado la capacidad de construir transistoresexcesivamente pequeños en un IC, la complejidad y el número de transistores enun simple CPU también se ha incrementado dramáticamente. Esta tendenciaampliamente observada es descrita por la ley de Moore, que ha demostrado hastala fecha, ser una predicción bastante exacta del crecimiento de la complejidadde los CPUs y otros IC.

Mientras que, en los pasados sesenta años hancambiado drásticamente, la complejidad, el tamaño, la construcción, y la formageneral del CPU, es notable que el diseño y el funcionamiento básico no hacambiado demasiado. Casi todos los CPU comunes de hoy se pueden describir conprecisión como máquinas de programa almacenado de von Neumann.

A medida que la ya mencionada ley del Moorecontinúa manteniéndose verdadera, se han presentado preocupaciones sobre los límitesde la tecnología de transistor del circuito integrado. La miniaturización extremade puertas electrónicas está causando los efectos de fenómenos que se vuelvenmucho más significativos, como la electromigración, y el subumbral de pérdida.Estas más nuevas preocupaciones están entre los muchos factores que hacen ainvestigadores estudiar nuevos métodos de computación como la computadoracuántica, así como ampliar el uso de paralelismo, y otros métodos que extiendenla utilidad del modelo clásico de von Neumann.

Operación del CPU

La operación fundamental de la mayoría de los CPU,es ejecutar una secuencia de instrucciones almacenadas llamadas"programa". El programa es representado por una serie de números quese mantentienen en una cierta clase de memoria de computador. Hay cuatro pasosque casi todos los CPU de arquitectura de von Neumann usan en su operación:fetch, decode, execute, y writeback, (leer, decodificar, ejecutar, y escribir).

Diagrama mostrando como es decodificada unainstrucción del MIPS32. (MIPS Technologies 2005)
El primer paso, leer (fetch), implica el recuperaruna instrucción, (que es representada por un número o una secuencia de números),de la memoria de programa. La localización en la memoria del programa esdeterminada por un contador de programa (PC), que almacena un número queidentifica la posición actual en el programa. En otras palabras, el contador deprograma indica al CPU, el lugar de la instrucción en el programa actual.Después de que se lee una instrucción, el Contador de Programa es incrementadopor la longitud de la palabra de instrucción en términos de unidades dememoria. Frecuentemente la instrucción a ser leída debe ser recuperada dememoria relativamente lenta, haciendo detener al CPU mientras espera que lainstrucción sea retornada. Este problema es tratado en procesadores modernos engran parte por los cachés y las arquitecturas pipeline (ver abajo).

La instrucción que el CPU lee desde la memoria esusada para determinar qué deberá hacer el CPU. En el paso de decodificación, lainstrucción es dividida en partes que tienen significado para otras unidadesdel CPU.

La manera en que el valor de la instrucciónnumérica es interpretado está definida por la arquitectura del conjunto deinstrucciones (el ISA) del CPU. A menudo, un grupo de números en lainstrucción, llamados opcode, indica qué operación realizar. Las partesrestantes del número usualmente proporcionan información requerida para esainstrucción, como por ejemplo, operandos para una operación de adición. Talesoperandos se pueden dar como un valor constante (llamado valor inmediato), ocomo un lugar para localizar un valor, que según lo determinado por algún modode dirección, puede ser un registro o una dirección de memoria. En diseños másviejos las unidades del CPU responsables de decodificar la instrucción erandispositivos de hardware fijos. Sin embargo, en CPUs e ISAs más abstractos ycomplicados, es frecuentemente usado un microprograma para ayudar a traducirinstrucciones en varias señales de configuración para el CPU. Estemicroprograma es a veces reescribible de tal manera que puede ser modificadopara cambiar la manera en que el CPU decodifica instrucciones incluso despuésde que haya sido fabricado.

Después de los pasos de lectura y decodificación,es llevado a cabo el paso de la ejecución de la instrucción. Durante este paso,varias unidades del CPU son conectadas de tal manera que ellas pueden realizarla operación deseada. Si, por ejemplo, una operación de adición fue solicitada,una unidad aritmético lógica (ALU) será conectada a un conjunto de entradas yun conjunto de salidas. Las entradas proporcionan los números a ser sumados, ylas salidas contendrán la suma final. La ALU contiene la circuitería pararealizar operaciones simples de aritmética y lógica en las entradas, comoadición y operaciones de bits (bitwise). Si la operación de adición produce unresultado demasiado grande para poder ser manejado por el CPU, también puedeser ajustada una bandera (flag) de desbordamiento aritmético localizada en unregistro de banderas (ver abajo la sección sobre rango de números enteros).

El paso final, la escritura (writeback),simplemente "escribe" los resultados del paso de ejecución a unacierta forma de memoria. Muy a menudo, los resultados son escritos a algúnregistro interno del CPU para acceso rápido por subsecuentes instrucciones.

En otros casos los resultados pueden ser escritos auna memoria principal más lenta pero más barata y más grande. Algunos tipos deinstrucciones manipulan el contador de programa en lugar de directamenteproducir datos de resultado. Éstas son llamadas generalmente "saltos"(jumps) y facilitan comportamientos como |bucles (loops), la ejecucióncondicional de programas (con el uso de saltos condicionales), y funciones enprogramas. Muchas instrucciones también cambiarán el estado de dígitos en unregistro de "banderas". Estas banderas pueden ser usadas parainfluenciar cómo se comporta un programa, puesto que a menudo indican elresultado de varias operaciones. Por ejemplo, un tipo de instrucción de"comparación" considera dos valores y fija un número, en el registrode banderas, de acuerdo a cuál es el mayor. Entonces, esta bandera puede ser usadapor una posterior instrucción de salto para determinar el flujo de programa.

CPU Después de la ejecución de la instrucción y laescritura de los datos resultantes, el proceso entero se repite con elsiguiente ciclo de instrucción, normalmente leyendo la siguiente instrucción ensecuencia debido al valor incrementado en el contador de programa. Si lainstrucción completada era un salto, el contador de programa será modificadopara contener la dirección de la instrucción a la cual se saltó, y la ejecucióndel programa continúa normalmente. En CPUs más complejos que el descrito aquí,múltiples instrucciones pueden ser leídas, decodificadas, y ejecutadassimultáneamente.

Esta sección describe lo que es referidogeneralmente como el "entubado RISC clásico" (Classic RISC pipeline),que de hecho es bastante común entre los CPU simples usados en muchosdispositivos electrónicos, a menudo llamados microcontroladores.

Diseño e implementación

Artículo principal: Diseño del CPU.
Con la representación numérica están relacionadosel tamaño y la precisión de los números que un CPU puede representar. En elcaso de un CPU binario, un bit se refiere a una posición significativa en losnúmeros con que trabaja un CPU. El número de bits (o de posiciones numéricas, odígitos) que un CPU usa para representar los números, a menudo se llama"tamaño de la palabra", "ancho de bits", "ancho deruta de datos", o "precisión del número entero" cuando se ocupaestrictamente de números enteros (en oposición a números de coma flotante.

Este número difiere entre las arquitecturas, y amenudo dentro de diferentes unidades del mismo CPU. Por ejemplo, un CPU de 8bits maneja un rango de números que pueden ser representados por ocho dígitosbinarios, cada dígito teniendo dos valores posibles, y en combinación los 8bits teniendo 28 ó 256 números discretos. En efecto, el tamaño del númeroentero fija un límite de hardware en el rango de números enteros que el softwarecorre y que el CPU puede usar directamente[7]
El rango del número entero también puede afectar elnúmero de posiciones en memoria que el CPU puede direccionar (localizar).

Porejemplo, si un CPU binario utiliza 32 bits para representar una dirección dememoria, y cada dirección de memoria representa a un octeto (8 bits), lacantidad máxima de memoria que el CPU puede direccionar es 232 octetos, o 4 GB.Ésta es una vista muy simple del espacio de dirección del CPU, y muchos diseñosmodernos usan métodos de dirección mucho más complejos como paginación para localizarmás memoria que su rango entero permitiría con un espacio de dirección plano.

Niveles más altos del rango de números enterosrequieren más estructuras para manejar los dígitos adicionales, y por lo tanto,más complejidad, tamaño, uso de energía, y generalmente costo. Por ello, no esdel todo infrecuente, ver microcontroladores de 4 y 8 bits usados enaplicaciones modernas, aun cuando están disponibles CPU con un rango mucho másalto (de 16, 32, 64, e incluso 128 bits). Los microcontroladores más simplesson generalmente más baratos, usan menos energía, y por lo tanto disipan menos calor.Todo esto pueden ser consideraciones de diseño importantes para losdispositivos electrónicos. Sin embargo, en aplicaciones del extremo alto, losbeneficios producidos por el rango adicional, (más a menudo el espacio dedirección adicional), son más significativos y con frecuencia afectan lasopciones del diseño. Para ganar algunas de las ventajas proporcionadas por laslongitudes de bits tanto más bajas, como más altas, muchas CPU están diseñadascon anchos de bit diferentes para diferentes unidades del dispositivo.

Porejemplo, el IBM System/370 usó un CPU que fue sobre todo de 32 bits, pero usóprecisión de 128 bits dentro de sus unidades de coma flotante para facilitarmayor exactitud y rango de números de coma flotante lógica secuencial, son de naturaleza síncrona.Es decir, están diseñados y operan en función de una señal de sincronización.Esta señal, conocida como señal de reloj, usualmente toma la forma de una ondacuadrada periódica. Calculando el tiempo máximo en que las señales eléctricaspueden moverse en las varias bifurcaciones de los muchos circuitos de un CPU,los diseñadores pueden seleccionar un período apropiado para la señal delreloj.

Este período debe ser más largo que la cantidad detiempo que toma a una señal moverse, o propagarse, en el peor de los casos. Alfijar el período del reloj a un valor bastante mayor sobre el retardo de lapropagación del peor caso, es posible diseñar todo el CPU y la manera que muevelos datos alrededor de los "bordes" de la subida y bajada de la señaldel reloj. Esto tiene la ventaja de simplificar el CPU significativamente,tanto en una perspectiva de diseño, como en una perspectiva de cantidad decomponentes. Sin embargo, esto también tiene la desventaja que todo el CPU debeesperar por sus elementos más lentos, aun cuando algunas unidades de la mismason mucho más rápidas. Esta limitación ha sido compensada en gran parte porvarios métodos de aumentar el paralelismo del CPU (ver abajo).

Sin embargo, las solamente mejoras arquitectónicasno solucionan todas las desventajas de CPUs globalmente síncronas. Por ejemplo,una señal de reloj está sujeta a los retardos de cualquier otra señaleléctrica. Velocidades de reloj más altas en CPUs cada vez más complejas hacen másdifícil de mantener la señal del reloj en fase (sincronizada) a través de todala unidad. Esto ha conducido que muchos CPU modernos requieran que se lesproporcione múltiples señales de reloj idénticas, para evitar retardar una solaseñal lo suficiente significativamente como para hacer al CPU funcionarincorrectamente. Otro importante problema cuando la velocidad del reloj aumentadramáticamente, es la cantidad de calor que es disipado por el CPU. La señaldel reloj cambia constantemente, provocando la conmutación de muchoscomponentes (cambio de estado) sin importar si están siendo usados en esemomento. En general, un componente que está cambiando de estado, usa más energíaque un elemento en un estado estático. Por lo tanto, a medida que la velocidaddel reloj aumenta, así lo hace también la disipación de calor, causando que elCPU requiera soluciones de enfriamiento más efectivas.

Un método de tratar la conmutación de componentesinnecesarios se llama el clock gating, que implica apagar la señal del reloj alos componentes innecesarios, efectivamente desactivándolos. Sin embargo, estoes frecuentemente considerado como difícil de implementar y por lo tanto no veuso común afuera de diseños de muy baja potencia. Otro método de trataralgunos de los problemas de una señal global de reloj es la completa remociónde la misma. Mientras que quitar la señal global del reloj hace, de muchasmaneras, considerablemente más complejo el proceso del diseño, en comparacióncon diseños síncronos similares, los diseños asincrónicos (o sin reloj) tienenmarcadas ventajas en el consumo de energía y la disipación de calor. Aunquealgo infrecuente, CPUs completas se han construido sin utilizar una señalglobal de reloj. Dos notables ejemplos de esto son el AMULET, que implementa laarquitectura del ARM, y el MiniMIPS, compatible con el MIPS R3000. En lugar deremover totalmente la señal del reloj, algunos diseños de CPU permiten aciertas unidades del dispositivo ser asincrónicas, como por ejemplo, usar ALUsasincrónicas en conjunción con pipelining superescalar para alcanzar algunasganancias en el desempeño aritmético. Mientras que no está completamente clarosi los diseños totalmente asincrónicos pueden desempeñarse a un nivelcomparable o mejor que sus contrapartes síncronas, es evidente que por lo menossobresalen en las más simples operaciones matemáticas. Esto, combinado con susexcelentes características de consumo de energía y disipación de calor, loshace muy adecuados para sistemas embebidos .

La descripción de la operación básica de un CPUofrecida en la sección anterior describe la forma más simple que puede tomar unCPU. Este tipo de CPU, usualmente referido como subescalar, opera sobre yejecuta una sola instrucción con una o dos piezas de datos a la vez.

Este proceso da lugar a una ineficacia inherente enCPUs subescalares. Puesto que solamente una instrucción es ejecutada a la vez,todo el CPU debe esperar que esa instrucción se complete antes de proceder a lasiguiente instrucción. Como resultado, el CPU subescalar queda"paralizado" en instrucciones que toman más de un ciclo de reloj paracompletar su ejecución. Incluso la adición de una segunda unidad de ejecución(ver abajo) no mejora mucho el desempeño. En lugar de un camino quedandocongelado, ahora dos caminos se paralizan y aumenta el número de transistoresno usados. Este diseño, en donde los recursos de ejecución del CPU puedenoperar con solamente una instrucción a la vez, solo puede, posiblemente,alcanzar el desempeño escalar (una instrucción por ciclo de reloj). Sinembargo, el desempeño casi siempre es subescalar (menos de una instrucción porciclo).

Las tentativas de alcanzar un desempeño escalar ymejor, han resultado en una variedad de metodologías de diseño que hacencomportarse al CPU menos linealmente y más en paralelo. Cuando se refiere alparalelismo en los CPU, generalmente son usados
dos términos para clasificarestas técnicas de diseño.

TLP: ejecución simultánea de hilos.

Otra estrategia comúnmente usada para aumentar elparalelismo de los CPU es incluir la habilidad de correr múltiples hilos(programas) al mismo tiempo. En general, CPUs con alto TLP han estado en usopor mucho más tiempo que los de alto ILP. Muchos de los diseños en los queSeymour Cray fue pionero durante el final de los años 1970 y los años1980 seconcentraron en el TLP como su método primario de facilitar enormes capacidadesde computación (para su tiempo). De hecho, el TLP, en la forma de mejoras enmúltiples hilos de ejecución, estuvo en uso tan temprano como desde los años1950 . En el contexto de diseño de procesadores individuales, las dosmetodologías principales usadas para lograr el TLP son, multiprocesamiento anivel de chip, en inglés chip-level multiprocessing (CMP), y el multihiladosimultáneo, en inglés simultaneous multithreading (SMT). En un alto nivel, esmuy común construir computadores con múltiples CPU totalmente independientes enarreglos como multiprocesamiento simétrico (symmetric multiprocessing (SMP)) yacceso de memoria no uniforme (Non-Uniform Memory Access (NUMA)). Aunqueson usados medios muy diferentes, todas estas técnicas logran la misma meta:incrementar el número de hilos que el CPU(s) puede correr en paralelo.

Los métodos de paralelismo CMP y de SMP son similaresuno del otro y lo más directo. Éstos implican algo más conceptual que lautilización de dos o más CPU completos y CPU independientes. En el caso delCMP, múltiples "núcleos" de procesador son incluidos en el mismopaquete, a veces en el mismo circuito integrado. Por otra parte, el SMPincluye múltiples paquetes independientes. NUMA es algo similar al SMP pero usaun modelo de acceso a memoria no uniforme. Esto es importante para loscomputadores con muchos CPU porque el tiempo de acceso a la memoria, de cadaprocesador, es agotado rápidamente con el modelo de memoria compartido del SMP,resultando en un significativo retraso debido a los CPU esperando por lamemoria. Por lo tanto, NUMA es considerado un modelo mucho más escalable,permitiendo con éxito que en un computador sean usados muchos más CPU que losque pueda soportar de una manera factible el SMP. El SMT se diferencia en algode otras mejoras de TLP en que el primero procura duplicar tan pocas porcionesdel CPU como sea posible. Mientras es considerada una estrategia TLP, suimplementación realmente se asemeja más a un diseño superescalar, y de hecho esfrecuentemente usado en microprocesadores superescalares, como el POWER5 deIBM. En lugar de duplicar todo el CPU.

Un menos común pero cada vez más importante paradigmade CPU (y de hecho, de computación en general) trata con vectores. Losprocesadores de los que se ha hablado anteriormente son todos referidos comocierto tipo de dispositivo escalar. Como implica su nombre, los procesadoresvectoriales se ocupan de múltiples piezas de datos en el contexto de unainstrucción, esto contrasta con los procesadores escalares, que tratan unapieza de dato por cada instrucción. Estos dos esquemas de ocuparse de los datosson generalmente referidos respectivamente como SISD (Single Instruction,Single Data|) (Simple Instrucción, Simple Dato) y SIMD (Single Instruction,Multiple Data) (Simple Instrucción, Múltiples Datos). La gran utilidad en crearCPUs que se ocupen de vectores de datos radica en la optimización de tareas quetienden a requerir la misma operación, por ejemplo, una suma, o un productoescalar, a ser realizado en un gran conjunto de datos. Algunos ejemplos clásicosde este tipo de tareas son las aplicaciones multimedia (imágenes, vídeo, y sonido),así como muchos tipos de tareas científicas y de ingeniería. Mientras que unCPU escalar debe completar todo el proceso de leer, decodificar, y ejecutarcada instrucción y valor en un conjunto de datos, un CPU vectorial puederealizar una simple operación en un comparativamente grande conjunto de datoscon una sola instrucción. Por supuesto, esto es solamente posible cuando laaplicación tiende a requerir muchos pasos que apliquen una operación a unconjunto grande de datos.

La mayoría de los primeros CPU vectoriales, como elCray-1, fueron asociados casi exclusivamente con aplicaciones de investigacióncientífica y criptografía. Sin embargo, a medida que la multimedia se desplazóen gran parte a medios digitales, ha llegado a ser significativa la necesidadde una cierta forma de SIMD en CPUs de propósito general. Poco después de quecomenzara a ser común incluir unidades de coma flotante en procesadores de usogeneral, también comenzaron a aparecer especificaciones e implementaciones deunidades de ejecución SIMD para los CPU de uso general. Algunas de estasprimeras especificaciones SIMD, como el MMX de Intel, fueron solamente paranúmeros enteros. Esto demostró ser un impedimento significativo para algunosdesarrolladores de software, ya que muchas de las aplicaciones que sebeneficiaban del SIMD trataban sobre todo con números de coma flotante.Progresivamente, éstos primeros diseños fueron refinados y rehechos en algunade las comunes, modernas especificaciones SIMD, que generalmente estánasociadas a un ISA. Algunos ejemplos modernos notables son el SSE de Intel y elAltiVec relacionado con el PowerPC (también conocido como VMX).

Vease Tambien
Arquitectura de CPU
Unidad de control
Unidad aritmético lógica
Unidad de punto flotante
Coprocesador
Bus interface unit
Unidad de gestión de memoria
Unidad de ejecución
Unidad de proceso
Registro (hardware)
Microcódigo
Barrel shifter
Microprocesador
CISC
RISC
Bus de computadora
Bus de datos
Bus de direcciones
Bus de control
Conjunto de instrucciones
Diseño de CPU
Estado de espera
Ingeniería de computación
Lista de procesadores AMD Athlon 64
Tipos de datos máquina
Socket de CPU
Voltaje del núcleo del CPU
Enfriamiento del CPU

Otro componente El Chasi

Una caja de la computadora (también conocido comoun chasis de la computadora, gabinete, caja, torre, recinto, la vivienda, launidad del sistema o el caso, simplemente) es la caja que contiene la mayoríade los componentes de un ordenador (generalmente sin la pantalla, teclado yratón). A computer case is sometimes incorrectly referred to metonymously as aCPU or hard drive referring to components housed within the case. Una caja dela computadora a veces se refiere incorrectamente al metonymously como la CPU ounidad de disco duro se refiere a los componentes alojados dentro del caso. CPUwas a more common term in the earlier days of home computers, when peripheralsother than the motherboard were usually housed in their own separate cases. CPUera un término más común en los primeros días de las computadoras en casa,cuando los periféricos que no sean de la placa base se encuentra por lo generalen sus casos por separado.

Algunas computadoras más, porque tienen varias unidadesde control que trabajan al mismo tiempo. Además, algunos computadores, usadosprincipalmente para investigación, son muy diferentes del modelo anterior, perono tienen muchas aplicaciones comerciales.
La Torre, en algunos casos vienen en mini-torre, dea mediados tamaños, en algunos casos son típicamente de 22 pulgadas de altura yla intención de pie en el suelo .Tienen lugar desde seis hasta diez bahías, elmas común tamaño de la placa Apple-Inc. ha producido también Mini computadoraque es similar en tamaño a un nivel CD-ROM.

Conclusiones

Con el presente trabajo arribamos a las siguientesconclusiones:
Conocer en detalles todas las operaciones que son capaces de realizar las CPU.Nos permite facilitar para la realización de nuestro trabajo y estudio un una investigación o escribir un texto o realizar un análisis estadístico, entre otros, y saber y observar la operación fundamental de la mayoría de los CPU, que posibilita ejecutar una secuencia de instrucciones almacenadas llamadas "programa".Los programas son representados por una serie de números que se mantienen en una memoria del computador.

interblink

Posteado por:

interblink

Administrador

0 Comentarios


Cargando comentarios espera un momento...
No tienes permisos para comentar.
Para comentar necesitas estar Registrado. O.. ya tienes usuario? Logueate!