Arquitectura de Computadores

9

Click here to load reader

Transcript of Arquitectura de Computadores

Page 1: Arquitectura de Computadores

Arquitectura de computadoras

En ciencias de la computación y la ingeniería , la arquitectura de computadores es un conjunto de disciplinas que describen un sistema informático mediante la especificación de las partes y sus relaciones.

Por ejemplo, en un nivel alto, arquitectura de la computadora puede estar preocupado con la forma en la unidad de procesamiento central actúa (CPU) y la forma en que utiliza la memoria del ordenador . Algunos (2011) arquitecturas informáticas de moda incluyen computación en clúster y no uniforme a memoria .

Arquitectos informáticos utilizan computadoras para diseñar nuevos equipos. Emulación de software se puede ejecutar programas escritos en un conjunto de instrucciones propuesto. Si bien el diseño es muy fácil de cambiar en esta etapa, compilador diseñadores colaboran a menudo con los arquitectos, lo que sugiere mejoras en el sistema de instrucción. Emuladores modernos pueden medir el tiempo en ciclos de reloj: el consumo de energía estimado en julios y dar estimaciones realistas de tamaño de código de bytes. Estos afectan a la comodidad del usuario, la vida de una batería, y el tamaño y el costo de la mayor parte física de la computadora: su memoria. Es decir, que ayudan a estimar el valor de un diseño por ordenador.

Historia 

La primera arquitectura de la computadora fue documentado en la correspondencia entre Charles Babbage y Ada Lovelace , que describe la máquina analítica . Otro ejemplo temprano fue John Von Neumann papel 's 1945, primer borrador de un informe sobre el EDVAC , que describe una organización de elementos lógicos. IBM utilizado este para desarrollar el 701, primera IBM de la empresa comercial informático almacenado programa , entregado a principios de 1952.

El término "arquitectura" en la literatura equipo se puede remontar a la labor de Lyle R. Johnson, Mohammad Usman Khan y Frederick P. Brooks, Jr., en 1959 los miembros del departamento de Organización de la máquina en el centro principal de investigación de IBM. Johnson tuvo la oportunidad de escribir una comunicación de la investigación propia sobre el estiramiento , un IBM desarrollado supercomputadora para el Laboratorio Científico de Los Alamos. Describir el nivel de detalle para la discusión de la computadora lujosamente adornada, señaló que su descripción de formatos, tipos de instrucciones, parámetros de hardware y mejoras de velocidad se encontraban en el nivel de la "arquitectura del sistema" - un término que parece más útil que la "organización de la máquina . "

Posteriormente, Brooks, un diseñador Stretch, comenzó el Capítulo 2 del libro (Diseño de un sistema de computadora:. Stretch Proyecto, ed W. Buchholz, 1962), escribiendo, "Arquitectura de computadores, como el resto de la arquitectura, es el arte de la determinación de las necesidades de el usuario de una estructura y diseño para satisfacer esas necesidades tan eficazmente como sea posible dentro de las limitaciones económicas y tecnológicas ".

Brooks pasó a contribuir al desarrollo del IBM System/360 (ahora llamado IBM zSeries ) línea de computadoras, en el que "la arquitectura" se convirtió en un sustantivo que define "lo que el usuario necesita saber". Más tarde, los usuarios de computadoras llegaron a utilizar el término de muchas maneras menos explícitas.

Page 2: Arquitectura de Computadores

Subcategorías [ edit ]

La disciplina de la arquitectura de la computadora tiene tres categorías principales: [ 1 ]

Arquitectura del conjunto de instrucciones  o ISA. El ISA se definen los códigos que un procesador central lee y actúa sobre. Es el lenguaje de máquina (o lenguaje ensamblador ), incluyendo el conjunto de instrucciones , tamaño de la palabra , los modos de dirección de memoria , registros del procesador , y los formatos de datos y de direcciones.

Microarquitectura  , también conocido como la organización Computer describe las rutas de datos, elementos de procesamiento de datos y elementos de almacenamiento de datos, y describe cómo deben aplicar la ISA. [ 2 ] El tamaño de un ordenador caché de CPU por ejemplo, es un problema de organización que por lo general no tiene nada que ver con la ISA.

Diseño del sistema incluye todos los otros componentes de hardware dentro de un sistema de computación. Estos incluyen:

1. Rutas de datos, tales como buses ordenador e interruptores2. Controladores de memoria  y jerarquías3. El procesamiento de datos que no sea la CPU, tales como acceso directo a

memoria (DMA)4. Temas diversos tales como la virtualización , multiprocesamiento y software

de funciones.

Algunos arquitectos de empresas como Intel y AMD utilizan distinciones más sutiles:

MacroArquitectura: capas arquitectónicas más abstractos de la microarquitectura, por ejemplo ISA

Arquitectura del conjunto de instrucciones (ISA): que el anterior pero sin:o Asamblea ISA: un ensamblador inteligente puede convertir un lenguaje

ensamblador abstracto común a un grupo de máquinas en poco diferente lenguaje de máquina para diferentes implementaciones

Programador MacroArquitectura Visible: herramientas de lenguaje de alto nivel, tales como compiladores puede definir una interfaz consistente o contrato para los programadores que utilizan ellos, abstraer diferencias subyacentes ISA, CASD y microarquitecturas. Por ejemplo, la C , C + + o Java estándares definen diferente Programmer MacroArquitectura Visible - aunque en la práctica la microarquitectura C para un equipo en particular incluye

CASD (microcódigo Instruction Set Architecture), una familia de máquinas con diferentes microarquitecturas nivel de hardware, pueden compartir una arquitectura microcódigo común, y por lo tanto una CASD.

Pin Arquitectura: Las funciones de hardware que el microprocesador debe proporcionar a una plataforma de hardware, por ejemplo, el 86 pins A20m, FERR / IGNNE o un color. Además, los mensajes que el procesador debe emitir para que externos caches pueden ser invalidadas (vaciado). Funciones arquitectura Pin son más

Page 3: Arquitectura de Computadores

flexibles que las funciones de ISA porque el hardware externo puede adaptarse a las nuevas codificaciones, o cambiar de un alfiler a un mensaje. El término "arquitectura" se ajusta, porque las funciones deben ser proporcionados para los sistemas compatibles, incluso si los cambios detallados método.

Papel [ edit ]

Definición [ editar ]

El propósito es diseñar un equipo que maximiza el rendimiento mientras se mantiene el consumo de energía en el cheque, cuesta bajo en relación con la cantidad de rendimiento esperado, y también es muy fiable. Por esto, muchos aspectos deben ser considerados, que incluye Escenografía Instrucción, Organización Funcional, diseño lógico e implementación. La aplicación consiste en Diseño de circuitos integrados, Packaging, energía y refrigeración. Optimización del diseño requiere estar familiarizado con los compiladores, sistemas operativos Diseño lógico y embalaje.

Arquitectura del conjunto de instrucciones [ edit ]

Artículo principal: arquitectura del conjunto de instrucciones

Una arquitectura del conjunto de instrucciones (ISA) es la interfaz entre el software y el hardware del ordenador y también puede ser vista como vista del programador de la máquina. Los ordenadores no entiendenlenguajes de alto nivel que tienen pocos, si los hay, los elementos del lenguaje que se traducen directamente en una máquina nativos de códigos de operación . Un procesador sólo entiende las instrucciones codificadas de alguna forma numérica, por lo general como números binarios . Las herramientas de software, tales como compiladores , traducen lenguajes de alto nivel, como C en instrucciones.

Además de las instrucciones, el ISA define los elementos del equipo que están disponibles para un programa-por ejemplo, los tipos de datos , registros , modos de direccionamiento y la memoria. Instrucciones localizar operandos con índices Registro (o nombres) y modos de direccionamiento de memoria.

La ISA de un ordenador se describe generalmente en un libro o folleto pequeño, que describe cómo se codifican las instrucciones. También, puede definir (vagamente) mnenonic nombres cortos para las instrucciones. Los nombres pueden ser reconocidos por una herramienta de desarrollo de software llamado un ensamblador . Un ensamblador es un programa informático que traduce un formato legible de la ISA en un soporte informático.desensambladores también están ampliamente disponibles, por lo general en depuradores , programas de software para aislar y corregir fallos en los programas informáticos binarios.

NIA varían en calidad e integridad. Unos buenos compromisos ISA entre programador conveniencia (más operaciones pueden ser mejor), el costo de la computadora para interpretar las instrucciones (más barato es mejor), la velocidad de la computadora (más rápido, mejor), y el tamaño del código (menor es mejor). Por ejemplo, un ISA-instrucción individual es posible, barato y rápido (por ejemplo, restar y salta si es cero. Fue utilizado realmente en la SSEM ), pero no era conveniente o útil para que los programas pequeños. Organización de la memoria define cómo interactúan con las instrucciones de la memoria, y también cómo las diferentes partes de la memoria interactuar unos con otros.

Page 4: Arquitectura de Computadores

Computer organización [ edit ]

Artículo principal: microarquitectura

Organización Computer ayuda a optimizar los productos basados en el desempeño. Por ejemplo, los ingenieros de software necesitan saber la capacidad de procesamiento de los procesadores. Es posible que necesite optimizar software con el fin de sacar el mayor rendimiento con el menor gasto. Esto puede requerir un análisis muy detallado de la organización informática. Por ejemplo, en un decodificador multimedia, los diseñadores pueden necesitar para organizar la mayoría de los datos que se procesan en la ruta de datos más rápida y los diversos componentes se supone que estar en su lugar y la tarea consiste en estudiar la estructura organizativa para verificar opera las piezas de la computadora.

Organización ordenador también ayuda a planificar la selección de un procesador para un proyecto en particular. Proyectos multimedia pueden necesitar acceso a datos muy rápida, mientras que el software de supervisión pueda tener interrupciones rápidas. A veces ciertas tareas necesitan componentes adicionales también. Por ejemplo, un ordenador con capacidad de virtualización necesita memoria virtual hardware para que la memoria de los diferentes equipos simulados puede mantenerse separado. Organización y funciones de la computadora también afectan el consumo de energía y el costo del procesador.

Implementación [ edit ]

Una vez que se describen un conjunto de instrucciones y micro-arquitectura, una máquina práctica debe ser diseñado. Este proceso de diseño se llama la aplicación . Aplicación generalmente no se considera la definición de arquitectura, sino de hardware de diseño de ingeniería . La aplicación se puede dividir en varios pasos (no totalmente distinta):

Implementación Lógica diseña los bloques definidos en la micro-arquitectura en (principalmente) el nivel de registro de transferencia y la puerta lógica nivel.

Implementación de circuitos hace transistor diseños a nivel de elementos básicos (puertas, multiplexores, cierres, etc), así como de algunos bloques más grandes ( ALU , caches, etc) que pueden aplicarse a este nivel, o incluso (en parte) a nivel físico , por razones de rendimiento.

Implementación física dibuja circuitos físicos. Los diferentes componentes del circuito se colocan en un chip plano o en un tablero y los cables que los conectan se enrutan.

Validación del diseño a prueba el equipo en su conjunto para ver si funciona en todas las situaciones y todos los horarios. Una vez que se inicia la aplicación, las primeras validaciones de diseño son simulaciones utilizando emuladores lógica. Sin embargo, esto es por lo general demasiado lenta para ejecutar programas realistas. Así que, después de hacer las correcciones, los prototipos se construyen utilizando Gate Arrays-programables en campo ( FPGAs ). Muchos proyectos de hobby paran en esta etapa. El paso final es para probar circuitos integrados prototipo. Los circuitos integrados pueden requerir varios rediseños para solucionar los problemas.

Para las CPUs , todo el proceso de aplicación es a menudo llamado diseño de la CPU .

Los objetivos de diseño [ edit ]

Page 5: Arquitectura de Computadores

La forma exacta de un sistema informático depende de las limitaciones y objetivos. Arquitecturas de computadora por lo general fuera de las normas de comercio, el poder frente al rendimiento, coste, capacidad de memoria, latencia (latencia es la cantidad de tiempo que le toma a la información de un nodo a viajar a la fuente) y el rendimiento.  A veces, otros factores, como las características, tamaño, peso, confiabilidad y capacidad de ampliación, también son factores.

El esquema más común hace un análisis en profundidad y el poder se da cuenta de cómo mantener bajo consumo de energía, manteniendo al mismo tiempo un rendimiento adecuado.

Rendimiento [ edit ]

El rendimiento del equipo moderno es a menudo descrito en MIPS por MHz (millones de instrucciones por millones de ciclos de reloj ). Esto mide la eficiencia de la arquitectura en cualquier velocidad de reloj. Desde un reloj más rápido se puede hacer que un equipo más rápido, esto es una medida útil, ampliamente aplicable. Equipos históricos tuvieron PMI / MHz tan bajo como 0.1 (Ver instrucciones por segundo ). Procesadores modernos simples alcanzan fácilmente cerca de 1. superescalares procesadores pueden llegar a cuatro y cincuenta y siete minutos, ejecutando una serie de instrucciones por ciclo de reloj. Y CPUs multicore procesamiento vectorial puede multiplicar esta nueva actuando sobre una gran cantidad de datos por instrucción, que tienen varias CPUs ejecutan en paralelo.

Contando instrucciones en lenguaje máquina sería engañoso porque pueden hacer diferentes cantidades de trabajo en diferentes NIA. La "instrucción" en las mediciones estándar no es un recuento de instrucciones de lenguaje de máquina reales de la ISA, pero una unidad histórica de la medición, por lo general basado en la velocidad de la VAX arquitectura de ordenador.

Históricamente, muchas personas miden la velocidad de un equipo de la velocidad de reloj (normalmente en MHz o GHz). Esto se refiere a los ciclos por segundo del reloj principal de la CPU. Sin embargo, esta métrica es algo engañoso, como una máquina con una velocidad de reloj más alta puede no necesariamente tener un mayor rendimiento. Como resultado de ello los fabricantes se han alejado de la velocidad de reloj como una medida del rendimiento.

Otros factores que influyen en la velocidad, como la combinación de las unidades funcionales , autobuses velocidad, memoria disponible y el tipo y el orden de las instrucciones de los programas que se ejecutan.

En un ordenador personal típico, la manera más sencilla y confiable para acelerar el rendimiento suele añadir memoria de acceso aleatorio (RAM). Más RAM aumenta la probabilidad de que los datos que se necesitan o un programa es en la memoria RAM, de modo que el sistema es menos probable que tenga que mover datos de la memoria del disco. El disco suele ser diez mil veces más lento que la RAM, ya que tiene partes mecánicas que deben desplazarse para acceder a sus datos.

Hay dos tipos principales de velocidad, latencia y el rendimiento. La latencia es el tiempo entre el inicio de un proceso y su finalización. El rendimiento es la cantidad de trabajo realizado por unidad de tiempo. latencia de interrupción es el tiempo de respuesta máxima garantizada de que el sistema electrónico de un evento ( por ejemplo, cuando la unidad de disco termina moviendo algunos datos).

Page 6: Arquitectura de Computadores

El rendimiento se ve afectado por una muy amplia gama de opciones de diseño - por ejemplo, pipelining un procesador por lo general hace peor latencia (más lento) pero hace que el rendimiento mejor. Los equipos que mecanismo de control por lo general necesitan bajas latencias de interrupción. Estos equipos funcionan en un tiempo real, el medio ambiente y no si la operación no se completa en un período de tiempo especificado. Por ejemplo, los frenos antibloqueo controlados por computadora deben comenzar el frenado en un breve periodo de tiempo predecible después de que se detecta el pedal del freno.

El rendimiento de un equipo se puede medir utilizando otros parámetros, dependiendo de su dominio de aplicación. Un sistema puede ser depende de la CPU (como en el cálculo numérico), de E / S de la envolvente(como en una aplicación webserving) o memoria obligado (como en la edición de vídeo). El consumo de energía se ha convertido en importante en servidores y dispositivos portátiles como laptops.

Benchmarking trata de tomar todos estos factores en cuenta al medir el tiempo que un ordenador necesita para funcionar a través de una serie de programas de prueba. Aunque la evaluación comparativa muestra las fortalezas, no puede ayudar a uno a elegir un ordenador. A menudo, las máquinas de medición divididos en diferentes medidas. Por ejemplo, un sistema puede manejar aplicaciones científicas con rapidez, mientras que otro puede jugar juegos de video populares con mayor suavidad. Además, los diseñadores pueden agregar características especiales a sus productos, de hardware o software, que permiten un punto de referencia específico para ejecutar con rapidez, pero no ofrecen ventajas similares a las tareas generales.

Consumo de energía [ edit ]

Artículo principal: la electrónica de baja potencia

El consumo de energía es otra medida que es importante en los ordenadores modernos. La eficiencia energética a menudo puede ser objeto de comercio para la velocidad o menor costo. La medida típica en este caso es MIPS / W (millones de instrucciones por segundo por vatio).

Circuitos modernos tienen menos energía por transistor como el número de transistores por chip crece. Por lo tanto, la eficiencia energética ha aumentado en importancia. Diseños recientes de procesadores como el Intel Core 2 ponen más énfasis en el aumento de la eficiencia energética. También, en el mundo de la informática integrada, la eficiencia de energía ha sido durante mucho tiempo y sigue siendo un objetivo importante junto a rendimiento y la latencia.