# data[].attributes.body
Arquitectura Equipo de Yael

ERNESTO DANIEL FLORES AYLLON
FRANCISCO AMIL SANDOVAL
RAMÍREZ LÓPEZ DANIEL
GARCÍA CUESTA YAEL

# data[].attributes.attachment_link.readable_text
Von Neumann describió el fundamento de todo ordenador electrónico con programas almacenados. Describía, a diferencia de como pasaba anteriormente, cómo podía funcionar un ordenador con sus unidades conectadas permanentemente y su funcionamiento estuviera coordinado desde la unidad de control (la CPU). Aunque la tecnología ha avanzado mucho y aumentado la complejidad de la arquitectura inicial, la base de su funcionamiento es la misma y probablemente lo seguirá siendo durante mucho tiempo.

Muchas formas de procesamiento concurrente ya están en uso incluso en las computadoras de bajo perfil. Cualquier sistema con periféricos o interfaz de red ya tiene múltiples procesadores cooperando.

Las estaciones de trabajo con dos o más CPU han estado en el mercado desde hace tiempo, y ahora surgen las computadoras personales con múltiples CPU. El procesamiento paralelo se ve ampliamente como la clave para superar los límites de rendimiento y confiabilidad dictados por las leyes físicas y las restricciones en los procesos de fabricación para circuitos integrados.

Estas arquitecturas se desarrollaron en las primeras computadoras electromecánicas y de tubos de vacío. Hay dos arquitecturas distintas relacionadas con el uso y distribución de la memoria: Arquitectura de von Neumman y Arquitectura Harvard.

Arquitectura de von Neumann: Tradicionalmente los sistemas con microprocesadores se basan en esta arquitectura, en la cual la unidad central de proceso (CPU), está conectada a una memoria principal única (casi siempre sólo RAM) donde se guardan las instrucciones del programa y los datos. A dicha memoria se accede a través de un sistema de buses único (control, direcciones y datos).

En un sistema con arquitectura Von Neumann el tamaño de la unidad de datos o instrucciones está fijado por el ancho del bus que comunica la memoria con la CPU. Así un microprocesador de 8 bits con un bus de 8 bits, tendrá que manejar datos e instrucciones de una o más unidades de 8 bits (bytes) de longitud. Si tiene que acceder a una instrucción o dato de más de un byte de longitud, tendrá que realizar más de un acceso a la memoria.

El tener un único bus hace que el microprocesador sea más lento en su respuesta, ya que no puede buscar en memoria una nueva instrucción mientras no finalicen las transferencias de datos de la instrucción anterior.

Las principales limitaciones que nos encontramos con la arquitectura Von Neumann son:

La limitación de la longitud de las instrucciones por el bus de datos, que hace que el microprocesador tenga que realizar varios accesos a memoria para buscar instrucciones complejas.

La limitación de la velocidad de operación a causa del bus único para datos e instrucciones que no deja acceder simultáneamente a unos y otras, lo cual impide superponer ambos tiempos de acceso

Los ordenadores con arquitectura Von Neumann constan de las siguientes partes:

Arquitectura Harvard: Este modelo, que utilizan los Microcontroladores PIC, tiene la unidad central de proceso (CPU) conectada a dos memorias (una con las instrucciones y otra con los datos) por medio de dos buses diferentes.

Una de las memorias contiene solamente las instrucciones del programa (Memoria de Programa), y la otra sólo almacena datos (Memoria de Datos).

Ambos buses son totalmente independientes lo que permite que la CPU pueda acceder de forma independiente y simultánea a la memoria de datos y a la de instrucciones. Como los buses son independientes estos pueden tener distintos contenidos en la misma dirección y también distinta longitud.

Tambien la longitud de los datos y las instrucciones puede ser distinta, lo que optimiza el uso de la memoria en general.

Para un procesador de Set de Instrucciones Reducido, o RISC (Reduced Instrucción Set Computer), el set de instrucciones y el bus de memoria de programa pueden diseñarse de tal manera que todas las instrucciones tengan una sola posición de memoria de programa de longitud.

Además, al ser los buses independientes, la CPU puede acceder a los datos para completar la ejecución de una instrucción, y al mismo tiempo leer la siguiente instrucción a ejecutar.

Ventajas de esta arquitectura:

El tamaño de las instrucciones no está relacionado con el de los datos, y por lo tanto puede ser optimizado para que cualquier instrucción ocupe una sola posición de memoria de programa, logrando así mayor velocidad y menor longitud de programa.

El tiempo de acceso a las instrucciones puede superponerse con el de los datos, logrando una mayor velocidad en cada operación.

Desventajas en general de las arquitecturas clásicas

La principal desventaja de esta arquitectura; el bus de datos y direcciones único se convierte en un cuello de botella por el cual debe pasar toda la información que se lee de o se escribe a la memoria, obligando a que todos los accesos a esta sean secuenciales.

Limita el grado de paralelismo (acciones que se pueden realizar al mismo tiempo) y por lo tanto, el desempeño de la computadora.

Este efecto se conoce como el cuello de botella de Von Newman.

Video ilustrativo arquitectura clasica

Arquitecturas segmentadas

Las arquitecturas segmentadas o con segmentación del cauce buscan mejorar el desempeño realizando paralelamente varias etapas del ciclo de instrucción al mismo tiempo.

Generalidades

Un ciclo de instrucción (también llamado ciclo de fetch-and-execute o ciclo de fetch-decode-execute en inglés) es el período que tarda la unidad central de proceso (CPU) en ejecutar una instrucción de lenguaje máquina.

Comprende una secuencia de acciones determinada que debe llevar a cabo la CPU para ejecutar cada instrucción en un programa.

Cada instrucción del juego de instrucciones de una CPU puede requerir diferente número de ciclos de instrucción para su ejecución.

Un ciclo de instrucción está formado por uno o más ciclos máquina.
¿Qué es la segmentación o pipelining?

La segmentación (pipelining)es una técnica de implementación por la cual se solapa la ejecución de múltiples instrucciones.Hoy día, la segmentación es la técnica de implementación clave utilizada para hacer CPU rápidas.
La segmentación es como una línea de ensamblaje: cada etapa de la segmentación completa una parte de la instrucción. Como en una línea de ensamblaje de automóviles, el trabajo que va a realizar en una instrucción se descompone en partes más pequeñas, cada una de las cuales necesita una fracción del tiempo necesario para completar la instrucción completa. Cada uno de estos pasos se define como etapa de la segmentación o segmento. Las etapas están conectadas, cada una a la siguiente, para formar una especie de cauce las instruccione se entran por un extremo, son procesadas a través de las etapas y salen por el otro extremo.
La productividad de la segmentación está determinada por la frecuencia con que una instrucción salga del cauce. Como las etapas están conectadas entre sí, todas las etapas deben estar listas para proceder al mismo tiempo. El tiempo requerido para desplazar una instrucción, un paso, a lo largo del cauce es un ciclo máquina. La duración de un ciclo máquina está determinada por el tiempo que necesita la etapa más lenta (porque todas las etapas progresan a la vez). Con frecuencia, el ciclo máquina es un ciclo de reloj (a veces dos, o raramente más), aunque el reloj puede tener múltiples fases.
El objetivo del diseñador es equilibrar la duración de las etapas de la segmentación. Si las etapas están perfectamente equilibradas, entonces el tiempo por instrucción de la máquina segmentada -suponiendo condiciones ideales es igual a:

Tiempo por instrucción en la máquina no segmentada

Número de etapas de la segmentación

Bajo estas condiciones, la mejora de velocidad debida a la segmentación es igual al número de etapas. Sin embargo, habitualmente, las etapas no están perfectamente equilibradas; además, la segmentación involucra algún gasto.
Así, el tiempo por instrucción en la máquina segmentada no tendrá su valor mínimo posible, aunque pueda estar próximo (digamos en un 10 por 100).

La segmentación consigue una reducción en el tiempo de ejecución medio por instrucción. Esta reducción se puede obtener decrementando la duración del ciclo de reloj de la máquina segmentada o disminuyendo el número de ciclos de reloj por instrucción, o haciendo ambas cosas. Normalmente, el mayor impacto está en el número de ciclos de reloj por instrucción, aunque el ciclo de reloj es, con frecuencia, más corto en una máquina segmentada (especialmente en supercomputadores segmentados). En las secciones de segmentación segmentada avanzada de este capítulo veremos qué profundidad de segmentación se puede utilizar para decrementar el ciclo de reloj y mantener un CPI bajo.

La segmentación es una técnica de implementación, que explota el paralelismo entre las instrucciones de un flujo secuencial. Tiene la ventaja sustancial que, de forma distinta a algunas técnicas de aumento de velocidad, no es visible al programador.

Unifunción: ejecutan un único proceso.

Multifunción: pueden ejecutar varios procesos:

Estáticos: en un instante determinado sólo pueden ejecutar uno.

Dinámicos: pueden ejecutar simultáneamente varios procesos.

Lineal: a cada etapa sólo le puede seguir otra etapa concreta.

No lineal: se pueden establecer recorridos complejos de las etapas.

Segmentación de instrucciones

Arquitectura DLX.

Encauzamiento de instrucciones en el DLX.

Parones:

1. por dependencia estructural,

2. por dependencia de datos,

3. por dependencia de control.

Múltiples unidades funcionales.

Ejemplo: el MIPS R4000.

Formato de instrucciones DLX
La arquitectura del conjunto de instrucciones DLX fue presentada por primera vez en la obra "Computer Architecture: A Quantitative Approach" de Jonh Hennessy y Dave Patterson. Según sus autores, DLX es el segundo computador poliinsaturado del mundo. Se ha elegido la arquitectura del DLX sobre la base de observaciones de las primitivas utilizadas con más frecuencia en los programas. Las instrucciones más sofisticadas (y menos críticas en cuanto a rapidez) son implementadas por software mediante la ejecución de instrucciones múltiples.

Direcciones de memoria de 32 bits

- Modelo de memoria "BIG-ENDIAN"

Tamaño de las transferencias de datos

Datos e instrucciones alineados en memoria

- La dirección de memoria donde se ubica un dato ha de ser múltiplo de su tamaño. Ciclos de cada instrucción Ejecución de instrucciones en 5 ciclos

IF: Búsqueda de instrucción

- Búsqueda de una instrucción de la memoria de instrucciones

ID: Búsqueda de registros y decodificación de instrucciones

EXE: Ejecución o cálculo de dirección

MEM: Acceso a la memoria de datos.

WB: Escribir datos en el archivo de registros.

Ejecución instrucciones segmentadas

Lección sobre la segmentación

La segmentación no ayuda en la realización de una única tarea, ayuda en la realización de una carga de trabajo.

Se pueden realizar múltiples tareas simultáneamente utilizando diferentes recursos.

La velocidad se incrementa si se aumenta el número de segmentos.

La razón de segmentación está dada por el segmento más lento.

El desbalance en el largo de los segmentos reduce la velocidad (speedup)

El tiempo en llenar y vaciar los segmentos reduce la velocidad.

Almacén para las dependencias.

Consiste en dedicar unidades específicas del procesador a cada una de las partes del ciclo de instrucción y ejecutarlas paralelamente.

Mejora dramáticamente el rendimiento debido a que en los procesadores modernos tienen hasta 14 etapas en el ciclo de instrucción.

La unidad de control se subdivide en dos o más unidades funcionales, cada una encargada de llevar a cabo una parte del ciclo de instrucción.

Se comunican a través de una cola de instrucciones (Pipeline).

Todas las instrucciones son del mismo largo

Pocos formatos de instrucciones

Los operandos con memoria solo aparecen en las instrucciones de carga y almacene.

Riesgos: Hay situaciones en la segmentación cuando la siguiente instrucción no se puede ejecutar en el próximo ciclo de reloj.

Hay tres riesgos:

1. Riesgos estructurales

2. Riesgos de control

3. Riesgos de datos

Los riesgos en la segmentación pueden hacer necesario detenerla. La diferencia principal entre detenciones en una máquina segmentada y en una no segmentada se presenta porque hay múltiples instrucciones ejecutándose a la vez. Una detención en una máquina segmentada requiere, con frecuencia, que prosigan algunas instrucciones, mientras se retardan otras. Normalmente, cuando una instrucción está detenida, todas las instrucciones posteriores a esta instrucción también se detienen. Las instrucciones anteriores a la instrucción detenida pueden continuar, pero no se buscan instrucciones nuevas durante la detención.

El hardware no puede manejar la combinación de instrucciones que deben ejecutarse en el mismo ciclo. (suponiendo que se cuenta con una única memoria)

Ejemplo: IF y MEM no pueden ejecutarse en el mismo ciclo ya que ambas necesitan accesar datos de la memoria.

Riesgo de control

- Cuando se producen saltos condicionales

Los riesgos en el control ocurren porque el procesador no "sabe" lo suficiente.

- Saltos incondicionales

Atascamiento (Stall): se puede retrasar la ejecución de la unidad de salto después de que se conozca la información.

Predicción (predict): se puede predecir esta información en forma temprana.

Ocurren porque una instrucción depende del resultado de una instrucción previa en el segmento.

NOTA: las instrucciones "add" o "sub" no escriben el resultado hasta el estado WB. * Ejemplo:

Algunas veces se puede resolver (o reducir) atascamientos para los riesgos de datos utilizando la técnica adelantamiento (forwarding)

Referencia bibliográfica sobre este tema de segmentación:

Libro Arquitectura de computadores

John L. Hennessy ( Universidad de Stanford)

David A. Patterson ( Universidadde California en Berkeley)

Primera edición, capítulo 6, página 269

Arquitecturas de multiprocesamiento

Cuando se desea incrementar el desempeño más allá de lo que permite la técnica de segmentación del cauce (límite teórico de una instrucción por ciclo de reloj), se requiere utilizar más de un procesador para la ejecución del programa de aplicación.

El alto rendimiento y bajo coste de los microprocesadores inspiraron un renovado interés en los multiprocesadores en los años ochenta. Varios microprocesadores se pueden colocar sobre un bus común porque:

de procesadores en dicho multiprocesador.

son mucho más pequeños que los procesadores multichip,

las caches pueden disminuir el tráfico del bus y los protocolos de coherencia pueden mantener caché y memoria consistente.

El tráfico por procesador y el ancho de banda del bus determinan el número
Un reloj del sistema reside en la tarjeta madre. Éste envía una señal a todos los componentes de la computadora en ritmo, como un metrónomo. Generalmente, este ritmo se genera como una onda cuadrada, como la siguiente:

Por ejemplo, cuando un reloj del sistema de 100MHZ interactúa con un CPU de 400MHZ, cada dispositivo entiende que cada ciclo de reloj del sistema es igual a cuatro ciclos de reloj del CPU; éstos utilizan un factor de cuatro para sincronizar sus acciones. Tamaño de la palabra = Una palabra es la cantidad de datos que la CPU puede procesar en un ciclo de reloj.

Cada onda en esta señal mide un ciclo de reloj.

Si el reloj del sistema funciona a 100MHZ, esto significa que hay 100 millones de ciclos del reloj en un segundo.

Cada acción en la computadora se marca con un tiempo mediante estos ciclos del reloj y para realizarse, cada acción toma cierto número de ciclos del reloj.

Cuando se procesa una solicitud de la memoria, por ejemplo, el controlador de la memoria puede informar al procesador que los datos requeridos llegarán en seis ciclos de reloj. Es posible que el CPU y otros dispositivos funcionen más rápido o más lento que el reloj del sistema.

Un procesador de 8 bits puede manejar 8 bits cada vez. Los procesadores pueden ser, hasta ahora, de 8-, 16-, 32-, o 64- bits.

Cuanto más grande sea el número = más rápida será la procesamiento

Las CPUs de multiprocesamiento se clasifican de la siguiente manera:

SISO - (Single Instruction, Single Operand ), computadoras independientes.

SIMO - (Single Instruction, Multiple Operand ), procesadores vectoriales.

MISO - (Multiple Instruction, Single Operand ), no implementado

MIMO - (Multiple Instruction, Multiple Operand ) sistemas SMP, Clusters

Son computadoras pensadas para aplicar un mismo algoritmo numérico a una serie de datos matriciales, en especial en la simulación de sistemas físicos complejos, tales como simuladores para predecir el clima, explosiones atómicas, reacciones químicas complejas, etc., donde los datos son representados como grandes números de datos en forma matricial sobre los que se deben de aplicar el mismo algoritmo numérico.

Sistemas SMP (procesadores simétricos)

En los sistemas SMP (Simetric Multiprocesesors), varios procesadores comparten la misma memoria principal y periféricos de I/O, normalmente conectados por un bus común.

Se conocen como simétricos, ya que ningún procesador toma el papel de maestro y los demás de esclavos, sino que todos tienen derechos similares en cuanto al acceso a la memoria y periféricos y ambos son administrados por el sistema operativo.

La lectura de conferencias y artículos de revistas desde los últimos veinte años puede dejar a uno desalentado;se ha gastado demasiado esfuerzo para tan poco impacto. Hablando con optimismo, estos artículos actúan como puzzle y, cuando se colocan juntos, lógicamente, forman los fundamentos de la siguiente generación de computadores. Desde un punto de vista más pesimista, si el 90 por 100 de las ideas desaparecieran no se notaría.

Una razón para que esto ocurra se denomina el "síndrome de von Neumann". Esperando inventar un nuevo modelo de computación que revolucione el cálculo, los investigadores están luchando para llegar a ser conocidos como el von Neumann del siglo XXI. Otra razón es de gusto: los investigadores, con frecuencia, seleccionan problemas que no tienen interés para los demás. Incluso cuando se seleccionan problemas importantes, hay frecuentemente una falta de evidencia experimental para demostrar convincentemente
el valor de la solución. Además, cuando se seleccionan problemas importantes y se demuestran las soluciones, las soluciones propuestas pueden ser muy caras en relación con sus beneficios. A veces este gasto se mide como coste/rendimiento -la mejora del rendimiento no es digna del coste añadido.

Aquellas son las ideas que requieren nuevas aplicaciones de los programadores, que deben aprender nuevos lenguajes de programación y modelos de computación, y deben inventar nuevas estructuras de datos y algoritmos.

Las ideas revolucionarias son más fáciles de publicar que las ideas evolutivas, pero para que se adopten deben tener recompensas mucho mayores. Las caches son un ejemplo de una mejora evolutiva. Cinco años después de la primera publicación sobre las caches, casi todas las compañías de computadores estaban diseñando una máquina con cache. Las ideas RISC están más cerca de la mitad del espectro; para ellas se necesitaron casi diez años para que muchas compañías tuviesen un producto RISC. Un ejemplo de arquitectura de computador revolucionaria es la Connection Machine. Cada programa que se ejecuta eficientemente en esa máquina era sustancialmente modificado o escrito especialmente para ella, y los programadores necesitaban aprender un nuevo estilo de programación para ella. Thinking Machines fue fundada en el año de 1983, pero tan sólo unas pocas compañías ofrecían ese estilo de máquina.

Hay valor en proyectos que no afectan a la industria de computadores a causa de lecciones que documentan esfuerzos futuros. El pecado no es tener una arquitectura nueva que no sea un éxito comercial; el pecado está en no evaluar cuantitativamente las fortalezas y debilidades de las nuevas ideas.

Los compiladores del futuro tienen dos desafíos sobre las máquinas del futuro:

Organización de los datos para reducir los gastos de jerarquía de memoria y de comunicación, y

Explotación del paralelismo.
Los programas del futuro gastarán un porcentaje mayor de tiempo de ejecución esperando la jerarquía de memoria cuando crezca el desnivel entre la duración del ciclo de reloj de los procesadores y el tiempo de acceso a memoria principal Los compiladores que organizan códigos y datos para reducir los fallos de caché pueden conducir a mejoras mayores de rendimiento que las optimizaciones tradicionales de hoy día. Mejoras adicionales son posibles con la posibilidad de prebúsqueda de datos en una caché antes de que los necesite el programa. Una proposición interesante es que al extender los lenguajes de programación existentes con operaciones sobre arrays, un programador puede expresar el paralelismo con cálculo sobre arrays completos, dejando al compilador que organice los datos en los procesadores para reducir la cantidad de comunicaciones.

La computación cuántica es un paradigma de computación distinto al de la computación clásica. Se basa en el uso de qubits en lugar de bits, y da lugar a nuevas puertas lógicas que hacen posibles nuevos algoritmos. Una misma tarea puede tener diferente complejidad en computación clásica y en computación cuántica, lo que ha dado lugar a una gran expectación, ya que algunos problemas intratables pasan a ser tratables. Mientras un computador clásico equivale a una máquina de Turing, un computador cuántico equivale a una máquina de Turing cuántica.

En la computación digital un bit sólo puede tomar dos valores: 0 ó 1. En cambio, en la computación cuántica, intervienen las leyes de la mecánica cuántica, y la partícula, el qubit, puede estar en superposición coherente: puede ser 0, puede ser 1 y puede ser 0 y 1 a la vez (dos estados ortogonales de una partícula subatómica). Eso permite que se puedan realizar varias operaciones simultáneamente, según el número de qubits. El número de qubits indica la cantidad de bits que pueden estar en superposición. Con los bits convencionales si teníamos un registro de tres bits había ocho valores posibles, y el registro sólo podía tomar uno de esos valores. En cambio, si tenemos un vector de tres qubits, la partícula puede tomar ocho valores distintos a la vez gracias a la superposición cuántica. Así, un vector de tres qubits permitiría un total de ocho operaciones paralelas.

Como cabe esperar, el número de operaciones es exponencial con respecto al número de qubits. Para hacerse una idea del gran avance que esto supone, un computador cuántico de 30 qubits equivaldría a un procesador convencional de 10 teraflops (millones de millones de operaciones en coma flotante por segundo), cuando actualmente las computadoras trabajan en el orden de gigaflops (miles de millones de operaciones en coma flotante por segundo). Desde una perspectiva práctica, y asumiendo un planteamiento "Informático" de la cuestión, los asuntos que nos interesan de la computación cuántica pueden resumirse en los siguientes puntos: Soporte Físico, Transmisión de Datos, Algoritmos Cuánticos y Arquitecturas y Modelos.

Microsoft, IBM y Google ven enormes oportunidades y retos en llevar la computación cuántica a enfrentar los mayores problemas del mundo. ¿Suena pretenciosa la frase? En estas empresas aseguran que podrán resolver cuestiones como el calentamiento global y las enfermedades.

La computación cuántica se refiere a la capacidad de aprovechar las partículas subatómicas para realizar operaciones muy complejas. Los estados múltiples significan básicamente que una computadora cuántica puede procesar muchas cosas en paralelo porque cada partícula subatómica es multitarea.

# data[].attributes.attachment_link.title
Tarea 3 - Modelos de Arquitectura de Cómputo - Arquitectura de Computadoras

# data[].attributes.attachment_link.description
Von Neumann describió el fundamento de todo ordenador electrónico con programas almacenados. Describía, a diferencia de como pasaba anteriormente, cómo podía funcionar un ordenador con sus unidades conectadas permanentemente y su funcionamiento estuviera coordinado desde la unidad de control (la CPU).

# data[].attributes.attachment_link.description
ARQUITECTURA DE COMPUTADORAS SEGMENTADAS PIPE-LINE A continuación, se hace mención de algunos equipos de cómputo que utilizaron este modelo de arquitectura segmentada: -CRAY-1 desarrollada por Cray Research -STREH desarrollada por IBM -L'ARC desarrollada por UNIVAC -S/360

# data[].attributes.attachment_link.description
OCR Specification Reference Section 1.1 Why do we disable comments? We want to ensure these videos are always appropriate to use in the classroom. However, we value your feedback, and are happy to consider amendments due to inaccuracies. Please get in touch with us directly at: admin@craigndave.co.uk

# data[].attributes.headline
Limita el grado de paralelismo (acciones que se pueden realizar al mismo tiempo) y por lo tanto, el desempeño de la computadora. 

# data[].attributes.subject
Limita el grado de paralelismo (acciones que se pueden realizar al mismo tiempo) y por lo tanto, el desempeño de la computadora. 

# data[].attributes.headline
La principal desventaja de esta arquitectura;  el bus de datos y direcciones único se convierte en un cuello de botella por el cual debe pasar toda la información que se lee de o se escribe a la memoria, obligando a que todos los accesos a esta sean secuenciales.

# data[].attributes.subject
La principal desventaja de esta arquitectura;  el bus de datos y direcciones único se convierte en un cuello de botella por el cual debe pasar toda la información que se lee de o se escribe a la memoria, obligando a que todos los accesos a esta sean secuenciales.

# data[].attributes.headline
Desventajas en general de las arquitecturas clásicas

# data[].attributes.subject
Desventajas en general de las arquitecturas clásicas

# data[].attributes.headline
Tambien la longitud de los datos y las instrucciones puede ser distinta, lo que optimiza el uso de la memoria en general.

# data[].attributes.subject
Tambien la longitud de los datos y las instrucciones puede ser distinta, lo que optimiza el uso de la memoria en general.

# data[].attributes.headline
Como los buses son independientes estos pueden tener distintos contenidos en la misma dirección y también distinta longitud.

# data[].attributes.subject
Como los buses son independientes estos pueden tener distintos contenidos en la misma dirección y también distinta longitud.

# data[].attributes.headline
Ambos buses son totalmente independientes lo que permite que la CPU pueda acceder de forma independiente y simultánea a la memoria de datos y a la de instrucciones.

# data[].attributes.subject
Ambos buses son totalmente independientes lo que permite que la CPU pueda acceder de forma independiente y simultánea a la memoria de datos y a la de instrucciones.

# data[].attributes.headline
Una de las memorias contiene solamente las instrucciones del programa (Memoria de Programa), y la otra sólo almacena datos (Memoria de Datos).

# data[].attributes.subject
Una de las memorias contiene solamente las instrucciones del programa (Memoria de Programa), y la otra sólo almacena datos (Memoria de Datos).

# data[].attributes.headline
Modelo de arquitectura de una computadora: clásica

# data[].attributes.subject
Modelo de arquitectura de una computadora: clásica

# data[].attributes.body
Este describe una arquitectura de diseño para un computador digital electrónico con partes que constan de una unidad de procesamiento que contiene una unidad aritmético lógica y registros del procesador.

# data[].attributes.body
• Es una técnica de implementación por medio
de la cual se puede traslapar la ejecución de
instrucciones.
• En la actualidad la segmentación es una de las
tecnologías utilizadas para hacer procesadores
más rápidos.

# data[].attributes.headline
Arquitectura Harvard: Este modelo, que utilizan los Microcontroladores PIC, tiene la unidad central de proceso (CPU) conectada a dos memorias (una con las instrucciones y otra con los datos) por medio de dos buses diferentes.

# data[].attributes.subject
Arquitectura Harvard: Este modelo, que utilizan los Microcontroladores PIC, tiene la unidad central de proceso (CPU) conectada a dos memorias (una con las instrucciones y otra con los datos) por medio de dos buses diferentes.

# data[].attributes.headline
Los ordenadores con arquitectura Von Neumann constan de las siguientes partes:

# data[].attributes.subject
Los ordenadores con arquitectura Von Neumann constan de las siguientes partes:

# data[].attributes.headline
Arquitectura en Pipeline (Basada en Filtros)

# data[].attributes.subject
Arquitectura en Pipeline (Basada en Filtros)

# data[].attributes.body
Consiste en ir transformando un flujo de datos en un proceso
comprendido por varias fases secuenciales, siendo la entrada de cada una la salida. Este tipo de Arquitectura surge por la necesidad de aumentar velocidad en el Procesador.

# data[].attributes.headline
En un sistema con arquitectura Von Neumann el tamaño de la unidad de datos o instrucciones está fijado por el ancho del bus que comunica la memoria con la CPU. Así un microprocesador de 8 bits con un bus de 8 bits, tendrá que manejar datos e instrucciones de una o más unidades de 8 bits (bytes) de longitud. Si tiene que acceder a una instrucción o dato de más de un byte de longitud, tendrá que realizar más de un acceso a la memoria.El tener un único bus hace que el microprocesador sea más lento en su respuesta, ya que no puede buscar en memoria una nueva instrucción mientras no finalicen las transferencias de datos de la instrucción anterior.

# data[].attributes.subject
En un sistema con arquitectura Von Neumann el tamaño de la unidad de datos o instrucciones está fijado por el ancho del bus que comunica la memoria con la CPU. Así un microprocesador de 8 bits con un bus de 8 bits, tendrá que manejar datos e instrucciones de una o más unidades de 8 bits (bytes) de longitud. Si tiene que acceder a una instrucción o dato de más de un byte de longitud, tendrá que realizar más de un acceso a la memoria.El tener un único bus hace que el microprocesador sea más lento en su respuesta, ya que no puede buscar en memoria una nueva instrucción mientras no finalicen las transferencias de datos de la instrucción anterior.

# data[].attributes.headline
Arquitectura de von Neumann: Tradicionalmente los sistemas con microprocesadores se basan en esta arquitectura, en la cual la unidad central de proceso (CPU), está conectada a una memoria principal única (casi siempre sólo RAM) donde se guardan las instrucciones del programa y los datos. A dicha memoria se accede a través de un sistema de buses único (control, direcciones y datos).

# data[].attributes.subject
Arquitectura de von Neumann: Tradicionalmente los sistemas con microprocesadores se basan en esta arquitectura, en la cual la unidad central de proceso (CPU), está conectada a una memoria principal única (casi siempre sólo RAM) donde se guardan las instrucciones del programa y los datos. A dicha memoria se accede a través de un sistema de buses único (control, direcciones y datos).

# data[].attributes.headline
Estas arquitecturas se desarrollaron en las primeras computadoras electromecánicas y de tubos de vacío. Hay dos arquitecturas distintas relacionadas con el uso y distribución de la memoria: Arquitectura de von Neumman y Arquitectura Harvard.

# data[].attributes.subject
Estas arquitecturas se desarrollaron en las primeras computadoras electromecánicas y de tubos de vacío. Hay dos arquitecturas distintas relacionadas con el uso y distribución de la memoria: Arquitectura de von Neumman y Arquitectura Harvard.

# data[].attributes.headline
Las computadoras son máquinas de arquitectura Von Neumann cuando:

# data[].attributes.subject
Las computadoras son máquinas de arquitectura Von Neumann cuando:

# data[].attributes.body
>Tanto los programas como los datos se almacenan en una memoria en común. .

>Cada celda de memoria de la máquina se identifica con un número único, llamado dirección.

> Las diferentes partes de la información (los comandos y los datos) tienen diferente modos de uso, pero la estructura no se representa en memoria de manera codificada.

# data[].attributes.headline
Esto se conoce como el cuello de botella Von Neumann y muchas veces limita el rendimiento del sistema.

# data[].attributes.subject
Esto se conoce como el cuello de botella Von Neumann y muchas veces limita el rendimiento del sistema.

# data[].attributes.body
Otro ejemplo

# data[].attributes.headline
El significado ha evolucionado hasta ser cualquier computador de programa almacenado en el cual no pueden ocurrir una extracción de instrucción y una operación de datos al mismo tiempo, ya que comparten un bus en común.

# data[].attributes.subject
El significado ha evolucionado hasta ser cualquier computador de programa almacenado en el cual no pueden ocurrir una extracción de instrucción y una operación de datos al mismo tiempo, ya que comparten un bus en común.

# data[].attributes.headline
°Cada celda de memoria de la máquina se identifica con un número único, llamado dirección

# data[].attributes.subject
°Cada celda de memoria de la máquina se identifica con un número único, llamado dirección

# data[].attributes.headline
 Los programas ,los datos se almacenan en una memoria en común. Esto hace posible la ejecución de comandos de la misma forma que los datos

# data[].attributes.subject
 Los programas ,los datos se almacenan en una memoria en común. Esto hace posible la ejecución de comandos de la misma forma que los datos

# data[].attributes.headline
unidad aritmético lógica y registros del procesador

# data[].attributes.subject
unidad aritmético lógica y registros del procesador

# data[].attributes.body
Procesos y características.

# data[].attributes.headline
ARQUITECTURA DE COMPUTADORAS SEGMENTADAS    

# data[].attributes.subject
ARQUITECTURA DE COMPUTADORAS SEGMENTADAS    

# data[].attributes.body
Buscan mejorar el desempeño realizando paralelamente varias etapas del ciclo de instrucción al mismo tiempo.  El procesador se divide en varias unidades funcionales independientes y se dividen entre ellas el procesamiento de las instrucciones.

# data[].attributes.attachment_link.readable_text
Esta arquitectura es similar al uso de una cadena de montaje en una fábrica de manufacturación. Una cadena de montaje saca partida del hecho de que el producto pasa atreves de varias etapas de producción. Extendiendo el proceso de producción de una cadena de montaje se puede trabajar sobre los productos en varias etapas como segmentación porque como en una tubería o cause en un extremo nuevo entradas se aceptan antes de que algunas entradas aceptadas con anterioridad aparezcan como salidas en el otro extremo.

Pipeline o tubería es un conjunto de elementos procesadores de datos conectados en serie en donde la salida de un elemento es la entrada del siguiente. Los elementos de pipeline son generalmente ejecutados en paralelos, en esos casos, debe haber un almacenamiento tipo buffer insertado entre elementos

# data[].attributes.attachment_link.description
Esta arquitectura es similar al uso de una cadena de montaje en una fábrica de manufacturación. Una cadena de montaje saca partida del hecho de que el producto pasa atreves de varias etapas de producción.

# data[].attributes.attachment_link.title
Arquitectura de Computadoras: Segmentadas o Pipeline

# data[].attributes.headline
      Cada programa se ejecuta de forma secuencial que, en el caso de que no haya instrucciones especiales, comienza con la primera instrucción.

# data[].attributes.subject
      Cada programa se ejecuta de forma secuencial que, en el caso de que no haya instrucciones especiales, comienza con la primera instrucción.

# data[].attributes.body
Dispositivos de entrada
Dispositivos de proceso
Dispositivos de almacenamiento
Dispositivos de salida

# data[].attributes.headline
 °Memoria para almacenar datos como instrucciones °Almacenamiento masivo externo             °Mecanismos de entrada y salida.  

# data[].attributes.subject
 °Memoria para almacenar datos como instrucciones °Almacenamiento masivo externo             °Mecanismos de entrada y salida.  