2. Estas arquitecturas se desarrollaron en las
primeras computadoras electromecánicas y de
tubos de vacío.
Son la base de la mayoría de las arquitecturas
modernas.
5. Características
• Los datos y programas se almacenan en una
misma memoria de lectura-escritura
• Dichos contenidos se direccionan indicando su
posición sin importar su tipo
• El CPU se comunica a través de un solo bus
6. Componentes
• CPU: Unidad de Control, unidad aritmético
lógica (ALU) y registros.
• Memoria principal: Almacena programas y
datos.
• Sistema de Entrada/Salida
7. Ciclo de ejecución
• UC obtiene la proxima instrucción de memoria
(usando el registro PC)
• Se incremente el PC
• La instrucción es decodificada a un lenguaje que
entiende la ALU
• Obtiene de memoria los operandos requeridos
por la operación
• La ALU ejecuta y deja los resultados en registros o
en memoria
• Repetir el paso 1
8. Tipos de operaciones
• Procesador-memoria: Transferencia de datos
entre la CPU y la memoria
• Procesador-E/S: Transferencia de datos entre
la CPU y un modulo de E/S
• Procesamiento de datos: Alguna operación
aritmética o lógica sobre datos
• Control
9. Desventaja
• El bus de datos y direcciones único se
convierte en un cuello de botella. Por donde
tiene que pasar toda la información,
obligando a que todos los accesos a esta sean
secuenciales.
10. Cuello de Von Neumann
• El procesador ejecuta una instrucción por vez
• Comunicación con Memoria y E/S empeoran
las cosas
11. Arquitectura Harvard
• El programa se almacena como un código en
la memoria, pero no en el mismo espacio de
memoria ni en el mismo formato que los
datos.
12.
13. Mejora al modelo de Neumann
• El hecho de tener un bus separado del
programa y otro para los datos permite que
lea código operación de una instrucción, al
mismo tiempo que se lee la memoria de datos
para realizar la instrucción previa.
14.
15. • La velocidad de ejecución de los programas depende de
diversos factores. Una forma de aumentar esta velocidad es
hacer más rápidos a los circuitos con lo que se construyen los
procesadores y la memoria principal. No obstante, se debe
considerar el coste que supone una mejora y que el límite a
esta velocidad lo impone el estado del arte actual de la
tecnología.
16. • Otra posibilidad es organizar el hardware para poder ejecutar
más de una instrucción simultáneamente: concurrencia. La
concurrencia se puede obtener a dos niveles: al nivel del
procesador y al nivel de la instrucción (pipelining).
17. Modelos de arquitecturas de computo
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.
El procesador se divide en varias unidades funcionales
independientes y se dividen entre ellas el procesamiento de
las instrucciones.
18. En un procesador con segmentación del cause, cada una de estas
etapas se asigna a una unidad funcional diferente, la búsqueda a la
unidad de búsqueda y la ejecución a la unidad de ejecución. Estas
unidades pueden trabajar en forma paralela en instrucciones
diferentes. Estas unidades se comunican por medio de una cola de
instrucciones en la que la unidad de búsqueda coloca los códigos de
instrucción que ley! para que la unidad de ejecución los tome de la
cola y los ejecute.
19. Ejemplo
Para comprender mejor esto" supongamos que un procesador
simple tiene un ciclo de instrucción sencillo consistente
solamente en una etapa de búsqueda del código de instrucción y
en otra etapa de ejecución de la instrucción. En un procesador
sin segmentación del cauce" las dos etapas se realizarían de
manera secuencial para cada una de la instrucciones.
20. En un procesador con segmentación, la unidad de búsqueda
comenzaría buscando el código de la primera instrucción en el
primer ciclo de reloj. Durante el segundo ciclo de reloj, la unidad
de búsqueda obtendría el código de la instrucción, mientras que
la unidad de ejecución ejecuta la instrucción 2 y así
sucesivamente.
21. Con la implementación de este modelo se logró realizar más
procesos al mismo tiempo, sin embargo, esto no fue
sinónimo de rapidez.
Esto debido a que no todos los procesos se toman el mismo
tiempo para ejecutarse, lo que ocasiona una gran
competencia respecto al uso de los recursos del CPU.
23. • El proceso en pipeline o encadenado es similar al utilizado en
cualquier cadena de montaje y el nombre pipeline (tubería) se
debe al hecho de que como en una tubería, en la entrada se
aceptan nuevos elementos (instrucciones) antes de que los
previamente aceptados salgan por la salida.
24.
25.
26. Un ciclo fetch es un
conjunto de etapas que
utiliza el procesador
para ejecutar una
instrucción de máquina.
27. ETAPAS
• 1. Fetch de Instrucción
Realiza la búsqueda de la instrucción en memoria. El procesador extrae la dirección desde
el contador de programa, PC, para conocer la ubicación de esa instrucción. Luego se realiza
la lectura de la instrucción, quedando ésta en el registro de datos. El contador de programa
es incrementado en 1, para contener la dirección de la siguiente instrucción.
• 2. Decodificación.
El código de operación de la instrucción que se encuentra en el registro de datos (DR), se
deposita en el registro de instrucciones (IR). Luego, los circuitos de control interpretan ese
código de operación para determinar qué operación se va a ejecutar.
• 3. Fetch de Operando.
Realiza la búsqueda de un operando en memoria, si es necesario. Generalmente es la
misma instrucción quien proporciona la dirección del operando al procesador.
• 4. Ejecución de la Operación.
Una vez conocida la naturaleza de la instrucción, y eloperando ha sido extraído desde
memoria, el procesador ejecuta la operaciónindicada por el código contenida en la
instrucción.
28. • La ejecución de una instrucción podría descomponerse en las siguientes 5
etapas:
1. F: Alimentación de la instrucción (fetch)
2. D: Decodificación de la instrucción.
3. O: Extracción y cálculo de los operandos.
4. E: Ejecución (en la ALU).
5. W: Escritura del resultado (write).
31. Arquitectura de Multiprocesamiento
• Se trata de un tipo de arquitectura de ordenadores en el que dos o
más procesadores (CPU), en una computadora, ejecutan uno o
varios procesos (programas corriendo).
• Se caracteriza por el hecho de que varios microprocesadores
comparten el acceso a la memoria.
• Múltiples CPU´s pueden ser utilizados para ejecutar múltiples
procesos o múltiples hilos (Threads) dentro de un único proceso.
• Debe tener capacidad para gestionar la repartición de memoria
entre varios procesadores, pero también debe distribuir la carga de
trabajo.
32. Tipos de Multiprocesadores
Multiprocesadores con Memoria
Compartida:
• La memoria se organiza en uno o
varios módulos, compartidos por
todos los procesadores a través
de distintos tipos de
interconexión
• El acceso a los módulos por parte
de los procesadores se realiza en
paralelo
• Cada modulo solamente puede
atender una petición en cada
instante de tiempo.
Multiprocesadores con Memoria
Distribuida:
• La memoria se distribuye de manera
que dentro de cada procesador posee
uno o varios módulos de memoria
propia
• La memoria esta conectado mediante
una red de interconexión al resto de
procesadores.
• Cada procesador podrá acceder tanto
a su memoria local, como a la
memoria remota de cualquiera del
resto de procesadores.
33. ORGANIZACIÓN
La organización de un sistema multiprocesador puede clasificarse de la
siguiente forma:
Tiempo compartido o Bus Común.
Memoria Multipuerto.
Unidad de Control Central.
• En la organización de un sistema de multiprocesador, existen uno o más
CPUs.
• Cada una está auto contenida, incluyendo una unidad de control, ALU,
registro, y quizá una caché.
• Cada CPU tiene acceso a una memoria principal compartida y a los
dispositivos de E-S por medio de alguna forma de mecanismo de
interconexión..
• Los CPUs pueden comunicarse entre sí a través de la memoria. Así como
intercambiar señales de manera directa.
34. Bus de tiempo compartido
Es el mecanismo más simple para implementar un sistema
multiprocesador. Para facilitar las transferencias desde los
procesadores de E/S, se añaden las siguientes
características:
• Direccionamiento: Se pueden distinguir los módulos del
bus para determinar la fuente y el destino de los datos.
• Arbitraje: Es la utilización algún tipo de esquema de
prioridades para mediar peticiones de control del bus.
• Tiempo Compartido: Cuando un módulo está
controlando el bus, los módulos restantes no están
autorizados y deben suspender, si es necesario, la
operación hasta que se les asigne el acceso al bus.
La principal desventaja
• Todas las referencias a memoria pasan a través de un bus
común, por lo que la velocidad del sistema está limitada
por el ciclo de bus.
• Para mejorar esto, es conveniente equipar cada CPU con
una memoria caché.
35. Memoria Multipuerto
Permite el acceso independiente y
directo a los módulos de memoria
principal por parte de cada CPU y
módulo E/S
El método más utilizado es asignar
permanentemente prioridades
designadas a cada puerto de memoria
Cada procesador y cada I/O disponen
de caminos independientes a cada
módulo de memoria.
Tiene la posibilidad de configurar
porciones de memoria como
‘privadas’ de una CPU y/o un
módulo E/S.
Esto permite incrementar la
seguridad contra accesos no
autorizados y para el
almacenamiento de rutinas de
recuperación en áreas de
memoria no modificables por
otros procesadores.
36. Unidad de Control Central
• Proporciona canales de datos
separados para cada sentido entre
módulos independientes: CPU,
memoria y E/S.
• Memoriza las peticiones e
implementa funciones de arbitraje
y temporización.
• Puede pasar también mensajes de
control y estado entre CPUs, y
alertar de modificación de cachés.
• Toda la lógica de coordinación
del multiprocesador está
concentrada en la unidad de
control, los interfaces de I/O,
memoria y CPU
• La principal desventaja es la
complejidad de la unidad de
control, y la posibilidad de
convertirse en un ‘cuello de
botella’.
37. Multiproceso
Es conocido como el uso de múltiples procesos
concurrentes en un sistema en lugar de un único proceso
en un instante determinado.
Como la multitarea que permite a
múltiples procesos compartir una única
CPU, múltiples CPU’s pueden ser
utilizados para ejecutar múltiples hilos
dentro de un único proceso.
38. El multiproceso para tareas generales es difícil de conseguir debido a que
puede haber varios programas manejando datos internos a la vez.
Si se ejecutan dos copias de un programa en distintos procesadores, las
dos copias pueden interferir entre si intentando ambas leer o escribir su
estado al mismo tiempo.
Para evitar este problema se usa una variedad de técnicas de
programación incluyendo semáforos y otras comprobaciones y bloqueos
que permiten a una sola copia del programa cambiar de forma exclusiva
ciertos valores.
39.
40. MULTIPROCESADOR SIMÉTRICO Y ASIMÉTRICO
Los microprocesadores del sistema comparten los recursos del sistema,
como la entrada salida de memoria y disco.
Simétrico
Se distribuye uniformemente la carga de trabajo a los procesadores
disponibles, de modo que uno no esté inactivo mientras otro tiene un exceso
de trabajo con una tarea específica.
Las desventaja es que los
sistemas operativos que
soportan este tipo de
multiprocesamiento son más
difíciles de diseñar
41. El bus de alta velocidad del servidor proporciona
transferencia rápida de información entre los
segmentos de red. Cada CPU se dedica a una
función específica tal como entrada / salida de la
tarjeta de interfaz de red u operaciones con
archivos.
Asimétrico
Diferentes microprocesadores gobiernan las distintas tareas y recursos del
sistema.
El enfoque principal que adoptan es el incremento de
rendimiento del sistema para múltiples usuarios de
red en múltiples segmentos de red de área local.
42. SISTEMAS OPERATIVOS DE MULTIPROCESAMIENTO
Un sistema operativo de multiprocesamiento es aquel que permite
ejecutar varios procesos de forma concurrente.
Es responsabilidad del sistema operativo planificar su ejecución y
asignar recursos.
El usuario percibe un solo sistema operativo que controla los recursos
del sistema.
43. Las 7 principales funciones para un sistema operativo de
multiprocesamiento son:
Asignación y administración de recursos.
Protección de datos y tablas.
Prevención de auto bloqueo.
Terminación anormal.
Equilibrio de carga de E/S.
Equilibrio de carga del procesador.
Reconfiguración.
La importancia de este sistema reside en la operación llamada cambio de
contexto, que consiste en quitar un proceso de la CPU, ejecutar otro
proceso y volver a colocar el primero sin notar los cambios.
45. Arquitecturas RISC Y SISC
• Una de las primeras decisiones a la hora de diseñar
un microprocesador es decidir cual será su juego de instrucciones.
• Cuando hablamos de microprocesadores CISC, computadoras con un
conjunto de instrucciones complejo, del inglés complex instruction set
computer.
• RISC, computadoras con un conjunto de instrucciones reducido, del
inglés reduced instruction set computer, se piensa que los
atributos complejo y reducido describen las diferencias entre los
dos modelos de arquitectura para microprocesadores.
• La decisión es trascendente por dos razones:
• primero, el juego de instrucciones decide el diseño físico del
conjunto
• segundo, cualquier operación que deba ejecutarse en el
microprocesador deberá poder ser descrita en términos de
un lenguaje de estas instrucciones.
46.
47. Arquitectura RISC
En la arquitectura computacional, RISC (del inglés reduced
instruction set computer) es un tipo de microprocesador con las
siguientes características fundamentales:
• Instrucciones de tamaño fijo y presentadas en un reducido
número de formatos.
• Sólo las instrucciones de carga y almacenamiento acceden a la
memoria de datos.
las máquinas RISC protagonizan la tendencia actual de
construcción de microprocesadores. PowerPC, DEC Alpha, MIPS,
ARM, SPARC... son ejemplos de algunos de ellos.
La idea fue inspirada por el hecho de que muchas de las
características que eran incluidas en los diseños tradicionales de
CPU para aumentar la velocidad estaban siendo ignoradas por los
programas que eran ejecutados en ellas.
48. Características:
• Codificación uniforme de instrucciones, lo que permite una de
codificación más rápida.
• Un conjunto de registros homogéneo, permitiendo que cualquier
registro sea utilizado en cualquier contexto y así simplificar el diseño
del compilador.
• Modos de direccionamiento simple con modos más complejos
reemplazados por secuencias de instrucciones aritméticas simples.
• Los tipos de datos soportados en el hardware no se encuentran en
una máquina RISC.
• Los diseños RISC también prefieren utilizar como característica un
modelo de memoria Harvard, donde los conjuntos de instrucciones y
los conjuntos de datos están conceptualmente separados.
49. Arquitectura CISC
• En la arquitectura computacional, CISC (complex instruction set
computer) es un modelo de arquitectura de computadora.
• Tienen un conjunto de instrucciones que se caracteriza por ser muy
amplio y permitir operaciones complejas entre operandos situados
en la memoria o en los registros internos, en contraposición a la
arquitectura RISC.
• Este tipo de arquitectura dificulta el paralelismo entre instrucciones,
por lo que, en la actualidad, la mayoría de los sistemas CISC de alto
rendimiento implementan un sistema que convierte dichas
instrucciones complejas en varias instrucciones simples del tipo
RISC, llamadas generalmente microinstrucciones.
50. Entre las ventajas de CISC destacan las siguientes:
• Reduce la dificultad de crear compiladores.
• Permite reducir el costo total del sistema.
• Reduce los costos de creación de sftware.
• Mejora la compactación de código.
• Facilita la depuración de errores.
Ejemplo de microprocesadores basados en la tecnología CISC:
• Intel 8086, 8088, 80286, 80386, 80486.
• Motorola 68000, 68010, 68020, 68030, 6840.
Ejemplo de microprocesadores basados en la tecnología CISC:
• MIPS, Millions Instruction Per Second.
• PA-RISC, Hewlett Packard.
• SPARC, Scalable Processor Architecture, Sun Microsystems.
• POWER PC, Apple, Motorola e IBM.
51. VIDEO CISC Y RISC
• https://www.youtube.com/watch?v=hk2wgxu
vbaE