Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

CUESTIONARIO-ARQUITECTURA

INVESTIGACION DE ARQUITECTURA DE CMPUTADORAS
by

Juan Carlos Yaca Maemo

on 26 October 2012

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of CUESTIONARIO-ARQUITECTURA

photo credit Nasa / Goddard Space Flight Center / Reto Stöckli Principios:
•Los datos y las instrucciones se almacenan en una sola memoria de lectura/escritura.
•Los contenidos de esta memoria se direccionan indicando su posición, sin considerar el tipo de dato que contiene
•La ejecución se produce siguiendo una secuencia de instrucción tras instrucción
Estructura:
ARQUITECTURA DE LA CPU
(Optimización del rendimiento del sistema) 1.ESTABLECER LA DIFERENCIA ENTRE LA “ARQUITECTURA VON NEUMANN” Y LA “ARQUITECTURA HARVARD”. 2.DESCRIBA LO QUE ES UN SISTEMA DE PROGRAMA ALMACENADO. 3.REALIZAR UNA TABLA COMPARATIVA DE LAS SIGUIENTES FILOSOFIAS DE DISEÑO DE SET DE INSTRUCCIONES PARA COMPUTADORA: 4.ESTABLEZCA UN CLASIFICACIÓN GENERAL DEL SET DE INSTRUCCIONES TÍPICO DE UN PROCESADOR DE LA FAMILIA INTEL 80X86. (INCLUIR EJEMPLOS) 5.ESTABLEZCA UNA CLASIFICACIÓN GENERAL DE LOS MODOS DE DIRECCIONAMIENTO (MANERA DE ACCEDER A LOS DATOS), PARA UN PROCESADOR TÍPICO DE LA FAMILIA INTEL 80X86. (INCLUIR EJEMPLOS) 6.ESTABLEZCA LAS CARACTERÍSTICAS DE LOS SIGUIENTES MÉTODOS DE DISTRIBUCIÓN DEL ESPACIO DE MEMORIA: 1)Segmentación (segmentation) 2) Paginamiento (paging), utilizando como modelo procesadores de la Familia Intel 80x86. 7.DESCRIBA LAS CARACTERÌSTICAS DE LA TECNOLOGÍA RANDOM LOGIC (LÓGICA CABLEADA - HARDWIRED LOGIC) UTILIZADA EN LA UNIDAD DE CONTROL DE ALGUNOS PROCESADORES. 8.DESCRIBA LAS CARACTERÌSTICAS DE TECNOLOGIA DE MICROCÓDIGO (MICROCODE EMULATION) UTILIZADA EN LA UNIDAD DE CONTROL DE ALGUNOS PROCESADORES. 9.DESCRIBA LAS CARACTERISTICAS DE LA ARQUITECTURA IA-32 (INTEL ARCHITECTURE 32) INCLUIR UN LISTADO DE PROCESADORES. 10.DESCRIBA LAS CARACTERISTICAS DE LA ARQUITECTURA IA-64 (INSTRUCTION ARQUITECTURE-64). INCLUIR LISTADO 11.DESCRIBA COMO SE DECODIFICA (DECODE) Y EJECUTA (EXECUTE) UNA INSTRUCCIÓN. UTILIZAR COMO EJEMPLO LAS SIGUIENTES INSTRUCCIONES ASSEMBLER: MOV, ADD, LOOP, Y JNZ (JUMP IF NOT ZERO) 12.ESTABLEZCA EL CONCEPTO DE “PROCESAMIENTO DE INSTRUCCIONES EN PARALELO” (PARALLEL PROCESSING) 13.ESTABLEZCA EN QUE CONSISTE LA COLA DE PRE-EXTRACCIÓN (PREFETCH QUEUE) O APROVECHAMIENTO DE DE CICLOS DE BUS NO UTILIZADOS. (UNUSED BUS CYCLES). 14.DESCRIBA EL FUNCIONAMIENTO DE UN PIPELINE TÍPICO (SUPERPOSICIÓN EN LA EJECUCIÓN DE MÚLTIPLES INSTRUCCIONES - OVERLAPPING THE EXECUTION OF MULTIPLE INSTRUCTIONS). 15.ESTABLEZCA LOS PROBLEMAS ASOCIADOS CON EL USO DE PIPELINE (TUBERIAS). POR EJEMPLO BLOQUEOS EN EL PIPELINE (STALLS IN A PIPELINE) O AZAR (HAZARDS) EN EL USO DE PIPELINE. 16.ESTABLEZCA LA OPERACIÓN SUPERESCALAR (SUPERSCALAR OPERATION) DE UN PROCESADOR (EJECUCIÓN DE INSTRUCCIONES EN PARALELO). 17.ESTABLEZCA EL CONCEPTO DE “EJECUCIÓN DE INSTRUCCIONES FUERA DE ORDEN” (OUT OF ORDER EXECUTION) 18.ESTABLEZCA EL CONCEPTO DE “RENOMBRADO DE REGISTROS” (REGISTER RENAMING), EN LA EJECUCIÓN DE INSTRUCCIONES. 19.ESTABLEZCA EL CONCEPTO DE MULTIPROCESAMIENTO DE INSTRUCCIONES (MULTIPROCESSING). 20.ESTABLEZCA EN QUE CONSISTE LA TECNOLOGÍA HYPER-THREADING (MULTI-HILO Ó MULTI-HEBRA). EL USO DE UN SOLO PROCESADOR FÍSICO QUE ACTÚA COMO MÚLTIPLES PROCESADORES LÓGICOS, POR EJEMPLO EN LOS PROCESADORES PENTIUM/4.. 21.DESCRIBA LAS CARACTERISTICAS DE LOS PROCESADOR MULTINÚCLEO (CORE). POR EJ. PENTIUM/4 CORE 2 DUO, PENTIUM/4 QUAD CORE, I3, I5 EI7. INTRODUCCION. INTEL CORE 2 DUO: el primer procesador multinúcleo para escritorio El nuevo procesador de Intel de lamarca Core 2 sale al mercado en 2006 evolucionando tras los modelos Pentium hacia una arquitectura informática que supone una mejora en el rendimiento de los ordenadores. Los primeros en salir a la venta fueron los de un solo núcleo y a ellos les siguieron los de dos y cuatro núcleos para profesionales.
Las características que hacen de este tipo de procesador un avance tecnológico se refieren a capacidad de realizar los procesos de decodificación, ejecución, buses y caché en etapas más eficaces permitiendo que el consumo de energía se reduzca al mismo tiempo que aumenta la velocidad de los procesos.
El procesador Intel Core 2 Duo se empezó a usar en ordenadores de sobremesa de gama alta y más tarde se aplica también a los portátiles consiguiendo un consumo de energía reducido a un 40% con respecto a la primera gama de procesadores. Al mismo tiempo, las placas base, los módulos de memoria y las tarjetas gráficas han evolucionado para adaptarse a la nueva tecnología Intel, de modo que pueda mejorarse el rendimiento del ordenador.
La tecnología Core 2 Duo es apta para sistemas operativos Windows, Mac o Lynux y está siendo utilizada por empresas como Apple, Dell o HP para crear sus ordenadores.
A partir de 2010 la gama Core 2 se usa en ordenadores de gama baja, dando paso a latecnología Core i3, i5 e i7 para ordenadores de gama baja, media y alta, respectivamente, y portátiles. Esta gama de procesadores tiene la capacidad de adaptar la velocidad de procesamiento según se necesite de forma automática a través del procesamiento multitarea de hasta 8 hilos que aumentan la rapidez. MICROPROCESADOR INTEL CORE 2 DUO E6600 "CONROE". Un microprocesador multinúcleo es aquel que combina dos o más procesadoresindependientes en un solo paquete, a menudo un solo circuito integrado. Un dispositivo dedoble núcleo contiene solamente dos microprocesadores independientes. En general, los microprocesadores multinúcleo permiten que un dispositivo computacional exhiba una cierta forma del paralelismo a nivel de thread (thread-level parallelism) (TLP) sin incluir múltiples microprocesadores en paquetes físicos separados. Esta forma de TLP se conoce a menudo como multiprocesamiento a nivel de chip (chip-level multiprocessing) o CMP.
Multiprocesamiento es un Procesamiento simultáneo con dos o más procesadores en un computador, o dos o más computadores que están procesando juntos. Cuando se usa dos o más computadores, se unen con un canal de alta velocidad y comparten la carga de trabajo general entre ellos. En caso de que uno falle el otro se hace cargo. El multiprocesamiento también se efectúa en computadores de propósitos especiales, como procesadores vectoriales, los cuales proveen procesamiento simultáneo de conjunto de datos. Aunque los computadores se construyen con diversas características que se superponen, como ejecutar instrucciones mientras se ingresan y se sacan datos, el multiprocesamiento se refiere específicamente a la ejecución de instrucciones simultáneas. TERMINOLOGÍA Hay una cierta discrepancia en la semántica por la cual son definidos los términos "multinúcleo" y el "doble núcleo". Más comúnmente ellos son usados para referirse a una cierta clase de unidad central de proceso (CPU), pero algunas veces también se aplican aprocesadores de señal digital (DSPs) y a SoC. Además, algunos usan estos términos únicamente para referirse a los microprocesadores multinúcleo que están fabricados en un mismo chip de circuito integrado. Estas personas generalmente prefieren referirse a los microprocesadores en chips separados en el mismo paquete por otro nombre, como "multi chip module", "double core", "dual core" o "twin core". EJEMPLOS DE PROCESADORES MULTINÚCLEO Se verá un resumen de los principales procesadores multinúcleo de la actualidad. Se comienza por Intel, mostrando los procesadores multinúcleo que ha sacado al mercado, luego viene AMD, y por último se muestra al nuevo procesador Cell, que próximamente va a salir en la PlayStation 3. PROCESADORES MULTINÚCLEO DE INTEL
Actualmente Intel esta fabricando procesadores de doble núcleo. Comenzó fabricando los Pentium D en el 2005, luego en el 2006 lanzó los Core Duo y el Core 2 Duo.
PENTIUM D
Los Pentium D están conformados por dos procesadores Pentium 4 Prescott sin Hyperthreading. Luego Intel sacó el Pentium Extreme Edition (No confundir con el Pentium 4 Extreme Edition) que era un procesador que tenía los procesadores P4 Prescott, con la tecnología Hyperthreading, lo que hacia que el software viera cuatro procesadores. Las características de los Pentium D son: Proceso de fabricación de 90nm
TIenen la tecnología EM64T, que permite trabajar con 64 bits de forma nativa
UTilizan núcleos SmithField (basados en los Prescott), cada uno de ellos tiene una memoria caché L2 de 1MB
Van desde 2.80GHz, del modelo menos potente, hasta 3.20GHz para el modelo más potente. El procesador que contiene dos núcleos Prescott se llama Smithfield. Los nuevos procesadores de doble núcleo Pentium D se llaman Presler, están construidos con tecnología de fabricación de 65nm y van desde 2.8 hasta 3.73Ghz. Tienen una caché L2 por cada núcleo de 2MB (4MB en total). CORE DUO
Los procesadores Core Duo es una versión para los portátiles, implementa 2MB de caché de memoria compartida para ambos núcleos. Están hechos con la tecnología de 65nm. Su velocidad va desde 1.20 hasta 2.33Ghz. El FSB (bus del sistema) va desde 533Mhz del modelo menos potente hasta 667Mhz para los demás. El gasto de energía va desde 9.0w hasta 31w. Por los datos se ve que tienen una gran relación rendimiento/energía. CORE 2 DUO
Esta nueva familia de procesadores de Intel esta basado en la microarquitectura Core, que reemplaza a la antigua microarquitectura Netburst que fue aplicada en los demás procesadores y que ya estaba llegando a sus límites.
La arquitectura Core proviene de la arquitectura que produjo al Pentium M (utilizado por los Intel Centrino), que destaca por el gran rendimiento que obtiene de la poca energía que gasta. El Pentium M además proviene del Pentium III, y este del Pentium Pro (Los Pentium 4 son una rama genealógica aparte).
Las subfamilias del Core 2 Duo son: Merom, para portátiles.
Conroe, para equipos de sobremesa.
WoodCrest, para servidores. Los Core 2 Duo, recién han salido en julio del 2006. Además de la versión normal, hay una versión extrema. No se tienen todos los datos disponibles, pero ya se han probado algunos de ellos.
Los Core 2 Duo que han sido probados, por la mayoría de testeadores, son el Core 2 Extreme X6800, el Core 2 Duo E6700 y el E6600. En las pruebasestos procesadores demuestran tener más rendimiento que el más poderoso procesador del AMD, el AMD FX-62. Los mas fuertes (X6800 y E6700) vencen en casi todo al FX-62, en algunas pruebas por un margen considerable y el tercero (E6600) esta muy cerca. PROCESADORES MULTINÚCLEO DE AMD
Antes de sacar sus procesadores multinúcleo al mercado, AMD ya había conseguido un gran éxito con su procesador Athlon 64, que incorporaba la capacidad de direccional 64 bits de memoria, la tecnología HyperTransport que era un nuevo bus bastante rápido que eliminaba cuellos de botella anteriores, y otras tecnologías; este procesador fue tomado como base para la construcción de su procesador de doble núcleo Athlon 64 X2, que salió al mercado a partir del 2005.
AMD fue el primero en sacar la tecnología de 64 bits, y también fue la primera en sacar los procesadores de doble núcleo para servidores, portátiles ycomputadoras de escritorio. Han tenido un gran éxito, pero con la aparición de los Core 2 Duo de Intel, basados en su exitoso Pentium M Centrino, la iniciativa vuelve a las manos de Intel en todos los frentes. Hay que esperar a que AMD saque sus nuevos procesadores K8L, de 4 núcleos y con tecnologías mejoradas, como el HyperTransport 3 y una caché L3. PROCESADOR CELL
El procesador Cell, es un procesador multi-núcleo diseñado por las empresas IBM, Sony y Toshiba desde el marzo del 2001. Este procesador va a ser usado inicialmente por la PlayStation 3, pero se tiene previsto usarlo también en los productos electrónicos que fabrican estas empresas, que van desde televisores de alta definición hasta ordenadores. Los componentes del procesador son: 1 Power Processor Element (PPE).
8 Synergistic Processor Elements (SPEs).
Bus de Interconexión de los Elementos (EIB).
Controlador de Acceso Directo a Memoria (DMAC).
2 Controladores de Memoria Rambus XDR.
Una interfaz Rambus FlexIO (Input / Output). Otras características de este procesador son: Fabricación en 90nm (nanómetros).
Frecuencia de trabajo desde 3.2 GHz.
1,3 Voltios.
Operación a 85ºC con un disipador.
El prototipo tiene 221mm2.
Utiliza la tecnología SOI (Silicio sobre aislante) Otras características que tiene el Cell es que es escalable, fue diseñado para poder trabajar con otros Cell. Un PPC de un Cell tiene el potencial de comunicarse con un PPC o un SPE de otro Cell que se encuentre en la misma placa madre, en la misma red o en cualquier parte del mundo si ambos estos conectados a Internet. OTROS PROCESADORES Otros procesadores multinúcleo importantes que han salido son: el PowerPC G5 para las Apple.
El UltraSparc T1 Niagara, poderoso procesador para servidores, que genera un gran ahorro de energía por su relación rendimiento/energía. Su fabricante Sun Microsystems antes también ha sacado buenos procesadores multinúcleo para sus servidores. HYPERTHREADING (también conocido como HT Technology) es una marca registrada de la empresa Intel para denominar su implementación de la tecnología Multithreading Simultáneo también conocido como SMT. Permite a los programas preparados para ejecutar múltiples hilos (multi-threaded) procesarlos en paralelo dentro de un único procesador, incrementando el uso de las unidades de ejecución del procesador. INTEL PENTIUM 4 @ 3.80GHZ CON TECNOLOGÍA "HYPER-THREADING". Esta tecnología consiste en simular dos procesadores lógicos dentro de un único procesador físico. El resultado es una mejoría en el rendimiento del procesador, puesto que al simular dos procesadores se pueden aprovechar mejor las unidades de cálculo manteniéndolas ocupadas durante un porcentaje mayor de tiempo. Esto conlleva una mejora en la velocidad de las aplicaciones que según Intel es aproximadamente de un 30%. RENDIMIENTO La tecnología HyperThreading tiene grandes capacidades de procesamiento y rapidez. Algunas de sus ventajas son: mejora el apoyo de código “multi-hilos”, que permite ejecutar múltiples hilos simultáneamente, mejora de la reacción y el tiempo de respuesta.
De acuerdo con el primer informe de Intel, los Pentium 4 que incorporan esta tecnología tienen un rendimiento entre un 15% y un 30% superior al de los procesadores sin HyperThreading, y utilizan sólo un 5% más de recursos.
Hyperthreading simula de cara a los programas que existen dos microprocesadores. El sistema operativo ha de estar preparado para utilizar esta tecnología. Las versiones de Windows superiores a Windows 2000 o las deLinux (con kernels SMP) pueden usar esta tecnología.
Esta tecnología es invisible para el sistema operativo y los programas. Todo lo que se requiere para aprovechar Hyper-Threading es multiprocesamiento simétrico (SMP) en apoyo del sistema operativo. Al simular procesadores lógicos diferentes aparecen en el sistema como dos procesadores separados. FAMILIAS DE PROCESADORES INTEL QUE INCORPORAN LA TECNOLOGÍA HYPER THREADING Intel Pentium 4
Intel Pentium 4 Extreme Edition
Intel Pentium D Extreme Edition
Intel Core i3
Intel Core i3 Sandy Bridge
Intel Core i7
Intel Core i7 Sandy Bridge
Intel Core i7 Extreme Edition
Intel Atom N270
Intel Atom N450
Intel Atom N550
Intel Atom N570
Itel Xeon MP CONCEPTOS DE MULTIPROCESO: La industria informática, ha tenido siempre un objetivo primordial, repetido a lo largo de toda su cadena (fabricantes de semiconductores, fabricantes de sistemas y usuarios): la búsqueda de la velocidad. Para alcanzar este objetivo se han invertido ingentes cantidades de recursos, hasta alcanzar los límites físicos del silicio.
Obviamente, la velocidad va ligada a las prestaciones, y por lo general, la primera ha sido la principal medida para decidirse por un sistema u otro. Sin embargo, por muy evidente que parezca, y dados los límites físicos de los semiconductores, las prestaciones pueden no estar forzosamente ligadas a la velocidad. Hoy es posible construir sistemas, que aún teniendo procesadores más "lentos" que otros, ofrezcan unas prestaciones significativamente superiores. Son los sistemas multiprocesador, que como su denominación indica, incorporan varios procesadores para llevar a cabo las mismas funciones.
No es un concepto nuevo, ya que los "minicomputadores" construidos por compañías como NCR, Sequent y Stratus, ya empleaban varios nodos de proceso como alternativas económicas a otros productos de otras compañías. Sin embargo, aquellos sistemas aún duplicaban recursos caros del sistema, como memoria y dispositivos de entrada/salida, y por tanto, confinaban a los sistemas multiprocesador al mundo de los sistemas de alto nivel. El multiproceso no es algo difícil de entender: más procesadores significa mas potencia computacional. Un conjunto de tareas puede ser completado más rápidamente si hay varias unidades de proceso ejecutándolas en paralelo. Esa es la teoría, pero otra historia es la práctica, como hacer funcionar el multiproceso, lo que requiere unos profundos conocimientos tanto del hardware como del software. Es necesario conocer ampliamente como están interconectados dichos procesadores, y la forma en que el código que se ejecuta en los mismos ha sido escrito para escribir aplicaciones y software que aproveche al máximo sus prestaciones.
Para lograrlo, es necesario modificar varias facetas del sistema operativo, la organización del código de las propias aplicaciones, así como los lenguajes de programación.
Es difícil dar una definición exacta de un sistema multiprocesador, aunque podemos establecer una clasificación de los sistemas de procesadores en: SISD o secuencia única de instrucciones y datos (Single Instruction, Single Data): una sola secuencia de instrucciones opera sobre una sola secuencia de datos (caso típico de los ordenadores personales).
SIMD o secuencia única de instrucciones y múltiple de datos (Single Instruction, Multiple Data): una sola secuencia de instrucciones opera, simultáneamente, sobre múltiples secuencias de datos (array processors).
MISD o múltiples secuencias de instrucciones y única de datos (Multiple Instruction, Single Data): múltiples secuencias de instrucciones operan, simultáneamente, sobre una sola secuencia de datos (sin implementaciones útiles actualmente).
MIMD o múltiples secuencias de instrucciones y datos (Multiple Instruction, Multiple Data): múltiples secuencias de instrucciones operan, simultáneamente, sobre múltiples secuencias de datos. Los sistemas multiprocesadores pueden ser clasificados con mayor propiedad como sistemas MIMD. Ello implica que son máquinas con múltiples y autónomos nodos de proceso, cada uno de los cuales opera sobre su propio conjunto de datos. Todos los nodos son idénticos en funciones, por lo que cada uno puede operar en cualquier tarea o porción de la misma. origen
el nacimiento u origen de la arquitectura von neumann surge a raíz de una colaboración en el proyecto eniac del matemático de origen húngaro, john von neumann. este trabajaba en 1945 en el laboratorio nacional los álamos cuando se encontró con uno de los constructores de la eniac. compañero de albert einstein, kurt gödel y alan turing en princeton, von neumann se interesó por el problema de la necesidad de recablear la máquina para cada nueva tarea.
en 1949 había encontrado y desarrollado la solución a este problema, consistente en poner la información sobre las operaciones a realizar en la misma memoria utilizada para los datos, escribiéndola de la misma forma, es decir en código binario. su "edvac" fue el modelo de las computadoras de este tipo construidas a continuación. se habla desde entonces de la arquitectura de von neumann, aunque también diseñó otras formas de construcción. el primer computador comercial construido en esta forma fue el univac i, fabricado en 1951 por la sperry-rand corporation y comprado por la oficina del censo de estados unidos.
la arquitectura de von neumann es una familia de arquitecturas de computadoras que utilizan el mismo dispositivo de almacenamiento tanto para las instrucciones como para los datos (a diferencia de la arquitectura harvard).
ARQUITECTURA HARVARD: Esteructura: Aplicaciones: •Microcontroladores
•Equipamiento de propósito especifico
A von neuman se le acredita el desarrollo de la idea de controlar la operación del hardaware mediante la manipulación de las ideas de las señales de control.
Las primeras maquinas (ejemplo: la ENIAC) tenia que ser cableadas físicamente para modificar la tarea que se estaba ejecutando (computo).
Von neuman uso la memoria de la computadora para almacenar la manipulación de la secuencia de señales de control que se requerían para desempeñar una tarea (progamacion de software).
La arquitectura de von neuman ha sido la base para virtualmente todas las computadoras diseñadas desde la primera generación.
Las características de la arquitectura de von neuman:
-ambos datos e instrucciones (secuencias de control) se almacenan en una sola memoria de letura/escritura (read/whrite). No se puede diferenciar enter datos e instrucciones al examinar una posición de memoria (localizacion)
-los contenidos de la memoria son direccionados por su ubicación (localizacion), sin importar el tipo de dato contenido allí
-la ejecución ocurre en un modo secuencial mediante la lectura de instrucciones consecutivas desde la mamoria.
Aplicaciones: •Microprocesadores
•Equipamiento de propósito general
Los ordenadores con esta arquitectura constan de cinco partes: La unidad aritmético-lógica o ALU, la unidad de control, la memoria, un dispositivo de entrada/salida y el bus de datos que proporciona un medio de transporte de los datos entre las distintas partes. ARQUITECTURA VON NEUMANN: introduccion de programa almacenado.
Los programas almacenados dieron a las computadoras una flexibilidad y confiabilidad tremendas, haciéndolas más rápidas y menos sujetas a errores que los programas mecánicos. Una computadora con capacidad de programa almacenado podría ser utilizada para varias aplicaciones cargando y ejecutando el programa apropiado. Hasta este punto, los programas y datos podrían ser ingresados en la computadora sólo con la notación binaria, que es el único código que las computadoras "entienden".
El siguiente desarrollo importante en el diseño de las computadoras fueron los programas intérpretes, que permitían a las personas comunicarse con las computadoras utilizando medios distintos a los números binarios. En 1952 Grace Murray Hopper una oficial de la Marina de EE.UU., desarrolló el primer compilador, un programa que puede traducir enunciados parecidos al inglés en un código binario comprensible para la maquina llamado COBOL (Common Business-Oriented Language). Dando paso así a unas generaciones de del futuro.
EL CONCEPTO DEL PROGRAMA ALMACENADO
El concepto del programa almacenado, un concepto teórico muy importante que fue establecido por el matemático John von Neumann el 30 de junio de 1945 en un borrador sobre el diseño de la EDVAC. A diferencia de los primeros computadores, von Neumann proponía que tanto el programa como sus datos fueran almacenados en la memoria del computador. Esto no solo simplificaba la labor de programación al no tener que llevar a cabo el recableado del computador sino que además libraba y generalizaba el diseño del hardware para hacerlo independiente de cualquier problema y enfocado al control y ejecución del programa. Este concepto fue tan importante y decisivo que dio lugar al concepto de la arquitectura de von Neumann, aún presente en nuestros días.
Descripción del concepto de programa almacenado
Los primeros computadores constaban de programas almacenados. Algunos muy simples siguen utilizando este diseño, por ejemplo, una calculadora es un computador que tiene un programa almacenado. Puede hacer operaciones matemáticas simples, pero no puede ser usada como procesador de textos o videoconsola.
Cambiar el programa que contenían los dispositivos que usaban esta tecnología requería reescribir, reestructurar y/o rediseñar el dispositivo. Los primeros computadores no estaban lo suficiente programados cuando fueron diseñados. La tarea de reprogramar, cuando era posible, era un proceso laborioso, empezando con notas en papel y siguiendo con detallados diseños de ingeniería. Y tras esto llegaba el a veces complicado proceso de reescritura y reestructuramiento físico del computador.
El concepto de programa almacenado cambió por completo, se pensó en un computador que en su diseño contenía un conjunto de instrucciones que podían ser almacenadas en memoria, o sea, un programa que detallaba la computación del mismo.
El diseño de un programa almacenado también daba la posibilidad a los programas de ser modificados ellos mismos durante su ejecución. Uno de los primeros motivos para su creación fue la necesidad de un programa que incrementara o modificara las direcciones de memoria de algunas instrucciones, las cuales tenían que ser hechas manualmente en los primeros diseños.
Esto se volvió menos importante cuando el índice de registros y el direccionamiento indirecto se convirtieron en algo habitual en la arquitectura de computadores. El código automodificable fue en gran parte ganando posiciones.
A gran escala, la habilidad de tratar instrucciones como datos es lo que hacen los ensambladores, compiladores y otras herramientas de programación automáticas. Se pueden "escribir programas para escribir programas".
Existen inconvenientes en el diseño de Von Neumann. Las modificaciones en los programas podía ser algo perjudicial, por accidente o por diseño. En algunos simples diseños de computador con programas almacenados, un mal funcionamiento del programa puede dañar el computador. Otros programas, o el sistema operativo, posiblemente puedan llevar a un daño total en el ordenador.
1)RISC - REDUCED INSTRUCTION SET COMPUTER), TECNOLOGÍA RISC:
La comparación que antes hemos realizado entre CISC y RISC es algo simple, ya que no es sólo una cuestión de diferencias en el conjunto de instrucciones, puesto que es fundamental resaltar el mejor uso y aprovechamiento de los recursos del silicio, es decir, menor tiempo de diseño y empleo de menor número de transistores, lo que redunda en menor número de errores de diseño y menor tiempo de ejecución para instrucciones individuales.
Las características comunes a todos los procesadores RISC, fuente de sus capacidades de altas prestaciones, son:
a)Modelo de conjunto de instrucciones Load/Store (Cargar/Almacenar). Sólo las instrucciones Load/Store acceden a memoria; las demás operaciones en un RISC, tienen lugar en su gran conjunto de registros. Ello simplifica el direccionamiento y acorta los tiempos de los ciclos de la CPU, y además facilita la gestión de los fallos de paginas (page faults) en entornos de memoria virtual. Además, permite un elevado nivel de concurrencia a consecuencia de la independencia de las operaciones de Load/Store de la ejecución del resto de las instrucciones.
b)Arquitectura no destructiva de tres direcciones. Los procesadores CISC destruyen la información que existe en alguno de los registros, como consecuencia de la ejecución normal de instrucciones; esto es debido a su arquitectura de dos direcciones, por la cual el resultado de una operación sobrescribe uno de los registros que contenía a los operandos. Por contra, las instrucciones RISC, con tres direcciones, contienen los campos de los dos operandos y de su resultado. c)Instrucciones simples, de formato fijo, con pocos modos de direccionamiento. Las instrucciones simples reducen de manera muy significativa el esfuerzo para su descodificación, y favorecen su ejecución en pipelines. Las instrucciones de longitud fija, con formatos fijos, implican que los campos de códigos de operación (opcodes) y de los operandos están siempre codificados en las mismas posiciones, permitiendo el acceso a los registros al mismo tiempo que se está descodificando el código de operación. Todas las instrucciones tienen una longitud equivalente a una palabra y están alineadas en la memoria en límites de palabra (word boundaries), ya que no pueden ser repartidas en pedazos que puedan estar en diferentes páginas.
d)Ausencia de microcódigo. El microcódigo no se presta a la ejecución en ciclos únicos, ya que requiere que el hardware sea dedicado a su interpretación dinámica. La programación en microcódigo no hace que el software sea más rápido que el programado con un conjunto de instrucciones simples. Todas las funciones y el control, en los procesadores RISC, están "cableados" (hardwired), para lograr una máxima velocidad y eficiencia.
e)Ejecución en conductos (pipelined). Las instrucciones simples, de formato fijo y ciclo único permiten que las diferentes etapas de los ciclos de ejecución (búsqueda o fetch, descodificación, ejecución, y escritura del resultado o result write-back) para instrucciones múltiples, se puedan realizar simultáneamente, de un modo más simple y eficaz.
f)Ejecución en ciclos únicos (single-cycle). El resultado directo de los conjuntos de instrucciones que ofrecen los procesadores RISC, es que cada instrucción puede ser ejecutada en un único ciclo de la CPU. Esto invalida la creencia de que las microinstrucciones en microcódigo, creadas para ser ejecutadas en un solo ciclo de procesador, son más rápidas que las instrucciones del lenguaje ensamblador. Ya que el caché esta construido partiendo de la misma tecnología que el almacenamiento de control del microprograma, una única instrucción puede ser ejecutada a la misma velocidad que una microinstrucción. La ejecución en ciclos únicos también simplifica la gestión de las interrupciones y los conductos (pipelines).
Por otra parte, en resumen utilizan instrucciones muy simples:
Utiliza instrucciones muy simples (escogidas)
Cualquier operación debe ser expresada como una secuencia de estas pocas instrucciones
El lenguaje tiene un set pequeño de instrucciones
Las instrucciones son simples, por tanto la ejecución es rápida
La circuitería es mas simple (que las de las maquinas CIS )
Para cualquier operación se requiere varias instrucciones elementales
RISC frente a CISC:
Existen varios mitos que contraponen las ventajas de la tecnología RISC frente a la CISC, que es importante descalificar:
a)Los procesadores RISC ofrecen peor soporte para los lenguajes de alto nivel o HLL (High Level Language) que lo CISC. Esta creencia se argumenta en que un conjunto de instrucciones de "alto nivel" (CISC) es mejor soporte para lenguajes de alto nivel. Sin embargo, la característica fundamental de los lenguajes de alto nivel, implica que el programador sólo interacciona con el ordenador a través del propio lenguaje de alto nivel (programación, depuración, mensajes del sistema, etc.), por lo que todos los problemas a "bajo nivel", deben de ser transparentes y desconocidos para el. Por ello, son de nulas consecuencias para el programador y los lenguajes de alto nivel, como se implementan las funciones, en función del tipo de CPU.
b)Es más complicado escribir compiladores RISC que CISC. Dado que los procesadores CISC tienen un mayor número de instrucciones y modos de direccionamiento, existen por tanto más formas de hacer la misma tarea, lo que puede confundir tanto al compilador como al que lo escribe. Por ello, subjetivamente es posible escoger una forma de hacerlo poco adecuada, por el tipo de instrucciones o por el tiempo de ejecución que requieren. En cambio, en un procesador RISC, hay menos opciones, por lo que el compilador es más simple, aunque se genere, habitualmente, un 20-30% más código; a cambio, se consigue un incremento de la velocidad de hasta un 500%.
RESUMIENDO:
No es un hecho meramente académico, sino puramente comercial y económico. La "era RISC" ha alcanzado a todos los fabricantes de semiconductores: AMD, Intel, MIPS, Motorola, ROSS, ...; y todos ellos son productos usados por fabricantes de ordenadores y estaciones de trabajo: Apple, DEC, HP, IBM, SUN, etc. y sus correspondientes clónicos.
El tiempo de diseño de estos productos se reduce sensiblemente, lo que disminuye su coste final, y por tanto, se incrementan sus expectativas, al poder llegar al mercado en un tiempo más adecuado, y con menos posibilidades de errores.
Además, son globalmente más eficaces, de menores dimensiones y más bajo consumo, ofreciendo siempre claras ventajas técnicas frente a los más avanzados CISC.
Actualmente, las estaciones de trabajo RISC multiprocesadoras de mayor éxito, se basan en diferentes versiones de la tecnología SPARC: superSPARC e HyperSPARC.
Esta claro que el futuro pertenece a los RISC y a los sistemas multiprocesador, a no ser que la física y la electrónica logren superar las barreras tecnológicas para incrementar muy por encima de las cotas actuales, las velocidades y prestaciones de una única CPU.
También cabe esperar, y por que no, la pronta aparición de otras tecnologías que compitan con CISC y RISC.
2)CISC - COMPLEX INSTRUCTION SET COMPUTER), Utilizan instrucciones muy complejas (especificas y descriptivas)
•el set contiene un amplio surtido de instrucciones (una para cada caso particular)
•las instrucciones se ejecutan lenta por ser complejas (la circuitería del procesador también es complejo)
•para un trabajo especifico se requiere pocas instrucciones(siempre hay una que resuelve el problema)
3)VLIW ( VERY LONG INSTRUCTION WORD) 4) EPIC - EXPLICITLY PARALLEL INSTRUCTION COMPUTING). 1)Instrucciones de carga de registros y direcciones MOV (transferencia)
XCHG (intercambiar)
LAT (traduccion)
LEA (carga dirección efectiva)
LDS (carga un puntro utilizando DS)
LES (carga un puntero utilizando ES)
LAHF (carga AH con los indicadores)
SAHF (carga AH en los indicadores)
2)Instrucciones de manipulación del registro de estado CLC (baja el indicador de acarreo)
CLD (baja el indicador de direccion)
CLI (baja el indicador de interrupcion)
CMC (completa el indicador de acarreo)
STC (pone a uno el indicador de acarreo)
STD (pone a uno el indicador de direccion)
STI (pone a uno el indicador de interrupcion)
3)Instrucciones de manejo de la pila •POP (extraer de la pila)
•PUSH (introducir en la pila)
•POPF (extraer los indicadores de la pila)
•PUSHF (introducir los indicadores en la pila)
4)Instrucciones de transferencia de control Incondicional: oCALL (llamada subrutina)
oJMP (salto)
oRET / RETF (retorno de subrutina)
Condicional: oJA/JNBE salto si mayor (above), sino menor o igual (not below or equal), si CF=0 y ZF=0 +
oJAE/JNB salto si mayor o igual (above or equal), si no menor (not below), si CF=0 +
oJB/JNAE/JC salto si menor (below), sino superior ni igual (not above or equal), si acarreo, si CF=1 +
oJBE/JNA salto si menor o igual (not below or equal), sino mayor (not above), si CF=1 o ZF=1 +
oJCXZ salto si CX=0
oJE/JZ salto si igual (equal), si cero (zero), si ZF=1
oJG/INLE salto si mayor (greater), sino menor ni igual (not les sor equal), si ZF=0 y SF=0
oJGE/JNL salto si mayor o igual (grater or equal), sino menor (not less), si SF=0
oJL/JNGE salto si menor (less), sino mayor ni igual (not greater), si SF<>OF
oJLE/JNG salto si menor o igual (lessor equal), sino mayor (not greater), si ZF=0 y SF<>OF
oJNC salto sino acarreo, si CF=0
oJNE/JNZ salto sino igual, sino cero, si ZF=0
oJNO salto sino desbordamiento, si OF=0
oJNP/JPO salto sino paridad, si paridad impar, si PF=0
oJNS salto sino signo, si positivo, si SF=0
oJO saLto si desbordamiento, si OFF=1
oJP/JPE salto si paridad, si paridad par, si PF=1
Gestion de bucle: LOOP (bucle)
LOOPE/LOOPZ (bucle si igual, si cero Z=1 y CX<>0)
LO PNE/LOOPNZ bucle sino igual, sino cero Z=0 y CX<>0
INT (interrupcion)
INTO (interrupción por desbordamiento)
IRET (retorno de interrupcion
5)Instrucciones de entrada salida •IN (entrada)
•OUT (salida)
6)Instrucciones aritméticas Suma: oAAA (ajuste ASCII para la suma)
oADC (suma con acarreo)
oADD (suma)
oAA (ajuste decimal para la suma)
oINC (incrementar)
oAAS (ajuste ASCII para la resta)
oCMP (comparacion)
oDAS (ajuste decimal para la resta)
oDEC (decrementar)
oNEG (negacion)
oSBB (resta con acarreo)
oSUB (resta)
oAAD (ajuste ASCII para la division)
oDIV (división sin signo)
oIDIV (división entera)
Multiplicación: oAAM (ajuste ASCII para la multiplicacion)
oIMUL (multiplicación entera con signo)
oMUL (multiplicación sin signo)
División: Conversiones: oCBW (conversion de byte en palabra)
oCWD (conversion de palabra a doble palabra)
7)Instrucciones de manipulación de cadenas 8)Instrucciones de operaciónes lógicas a nivel de bit 9)Instrucciones de control de procesador 10)Instrucciones de rotación y desplazamiento RCL (rotación a la izquierda con acarreo)
RCR (rotación a la derecha con acarreo)
ROL (rotación a la izquierda)
ROR (rotación a la derecha)
SAL/SHL (desplazamiento aritmético a la izquierda)
SAR (desplazamiento aritmético a la derecha)
SHR (desplazamiento lógico a la derecha)
oNOP (operación nula)
oESC (salida a un coprocesador)
oHLT (parada hasta interrupción o reset)
oLOCK (bloquea los buses)
oWAIT (espera)
AND ( y logico)
NOT (no logico)
OR (o logico)
TEST (comparación logica)
XOR (o esclusivo)
CMPS/CMPSB/CMPSW (compara cadenas)
LODS/LODSB/LODSW (cargar cadena)
MOVS/MOVSB/MOVSW (mover cadena)
SCAS/SCASB/SCASW (explorar cadenas)
STOS/STOSB/STOSW (almacena cadena)
Los llamados modos de direccionamiento son las diferentes maneras de especificar en informática un operando dentro de una instrucción en lenguaje ensamblador
Un modo de direccionamiento especifica la forma de calcular la dirección de memoria efectiva de un operando mediante el uso de la información contenida en registros y / o constantes, contenida dentro de una instrucción de la máquina o en otra parte
DIRECCIONAMIENTO INMEDIATO:
El oprando es una constante situada detrás del código de la instrucción. Sin embargo, como registro destino no se puede indicar uno de segmento (habra que utilizar uno de datos como paso intermedio)
DIRECCIONAMIENTO DE REGISTRO:
Los operandos, necesariamente de igual tamaño, están contenidos en los registros indicados en la instruccion
DIRECCIONAMIENTO DIRECTO O ABSOLUTO:
El oprenado esta situado en la dirección indicada en la instrucción, relativa al segmento que se trate
DIRECCIONAMIENTO INDIRECTO:
El operando se encuentra en una dirección señalada por un registro de segmento*16 mas un registro base o indice
IDIRECTO CON INDICE O INDEXADO:
El oprando se encuentra en una dirección determinada por la suma de un registro de segmento*16, un registro de índice y un desplazamiento de 8 o 16 bits
INDIRECTO CON BASE E INDICE O INDEXADO A BASE:
El oprando se encuentra en una dirección especificada por la suma de un registro de segmento*16, uno de base, uno de índice y opcionalmente un desplazamiento de 8 o 16 bits.
http://www.amd.com/es.wikipedia.org/wiki/AMD64
http://www.faq-mac.com/mt/archives/011150.php
http://www.fayerwayer.com/archivo/2006/07/que_tal_es_el_intel_core_duo_2.php
http://www.amd.com/es.wikipedia.org/wiki/AMD64
http://www.faq-mac.com/mt/archives/011150.php
http://www.fayerwayer.com/archivo/2006/07/que_tal_es_el_intel_core_duo_2.php
http://www.amd.com/es.wikipedia.org/wiki/AMD6 http://www.amd.com/es.wikipedia.org/wiki/AMD64
http://www.faq-mac.com/mt/archives/011150.php
http://www.fayerwayer.com/archivo/2006/07/que_tal_es_el_intel_core_duo_2.php
http://www.amd.com/es.wikipedia.org/wiki/AMD64
http://www.faq-mac.com/mt/archives/011150.php
http://www.fayerwayer.com/archivo/2006/07/que_tal_es_el_intel_core_duo_2.php
http://www.amd.com/es.wikipedia.org/wiki/AMD64
http://www.faq-mac.com/mt/archives/011150.php
http://www.fayerwayer.com/archivo/2006/07/que_tal_es_el_intel_core_duo_2.php
http://www.amd.com/es.wikipedia.org/wiki/AMD64
http://www.faq-mac.com/mt/archives/011150.php
http://www.fayerwayer.com/archivo/2006/07/que_tal_es_el_intel_core_duo_2.php
http://www.amd.com/es.wikipedia.org/wiki/AMD64
http://www.faq-mac.com/mt/archives/011150.php
http://www.fayerwayer.com/archivo/2006/07/que_tal_es_el_intel_core_duo_2.php
http://www.amd.com/es.wikipedia.org/wiki/AMD64
http://www.faq-mac.com/mt/archives/011150.php
http://www.fayerwayer.com/archivo/2006/07/que_tal_es_el_intel_core_duo_2.php
http://www.amd.com/es.wikipedia.org/wiki/AMD64

http://www.amd.com/es.wikipedia.org/wiki/AMD64
http://www.faq-mac.com/mt/archives/011150.php
http://www.fayerwayer.com/archivo/2006/07/que_tal_es_el_intel_core_duo_2.php
http://www.amd.com/es.wikipedia.org/wiki/AMD64
http://www.faq-mac.com/mt/archives/011150.php
http://www.fayerwayer.com/archivo/2006/07/que_tal_es_el_intel_core_duo_2.php
Full transcript