Está en la página 1de 78

INTEGRANTES:

Roger Rivero Cortez Diego B. Orellana Montero


Miguel A. Vallejos Rodriguez Luis Edgar Arcani Ribera

DOCENTE: Ing. José Machicado Terán


SEMESTRE: Quinto
GESTION: 2 - 2023
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

1. INTRODUCCION
1.1. La arquitectura de una CPU se refiere a la forma en que sus componentes
están diseñados e interconectados para llevar a cabo las diversas tareas de
procesamiento requeridas por una computadora. Incluye el conjunto de
instrucciones, la cantidad de núcleos, los niveles de caché, la frecuencia del
reloj y los diferentes tipos de registros. El conjunto de instrucciones es el
conjunto de comandos que una CPU puede ejecutar, y cada arquitectura de
CPU tiene su propio conjunto exclusivo de instrucciones.
La arquitectura de una CPU influye en el rendimiento de una computadora al
determinar qué tan rápido y eficientemente se pueden llevar a cabo ciertas
tareas. Diferentes tareas requieren diferentes tipos de cálculos, que pueden o
no ser compatibles con una arquitectura de CPU en particular.
Hay varios tipos diferentes de arquitecturas de CPU, incluidos RISC
(Computación de conjunto de instrucciones reducido) y CISC (Computación de
conjunto de instrucciones complejo). Las arquitecturas RISC tienen una menor
cantidad de instrucciones, que son más simples y rápidas de ejecutar, mientras
que las arquitecturas CISC tienen una mayor cantidad de instrucciones más
complejas, que potencialmente pueden realizar más cálculos en un solo ciclo
de instrucción.
La arquitectura de la CPU es un factor clave para determinar el rendimiento
general y las capacidades de un sistema informático. Las diferentes
arquitecturas de CPU están optimizadas para diferentes tipos de aplicaciones y
cargas de trabajo, y elegir la arquitectura correcta puede ser fundamental para
lograr el mejor rendimiento posible.
1.2. La arquitectura IA-32, también conocida como Intel Architecture de 32 bits, es
la arquitectura de conjunto de instrucciones de los procesadores de Intel y su
diseño se basa en la compatibilidad con versiones anteriores de las CPU.
Mientras que la arquitectura IA-64, también conocida como Intel Itanium, es una
arquitectura procesadora de 64 bits que fue desarrollada por Intel y HP para ser
utilizada en servidores empresariales y estaciones de trabajo de alta gama.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

Por otro lado, la arquitectura ARM es una familia de arquitecturas de


procesadores RISC muy populares en dispositivos móviles, como smartphones
y tablets, así como en otros dispositivos de baja potencia y bajo costo. El diseño
RISC de ARM los hace altamente eficientes, por lo que también se utilizan en
otros dispositivos integrados, como routers y controladores industriales.
Finalmente, Atmel es una empresa que produce microcontroladores y sistemas
embebidos, que generalmente se utilizan en aplicaciones industriales y de
automatización. Estos dispositivos están diseñados para ser altamente
eficientes y confiables, lo que los hace adecuados para su uso en aplicaciones
críticas.
2. OBJETIVOS
2.1. Objetivo general
 Comprender la estructura y funcionamiento de las computadoras modernas,
desde sus componentes físicos hasta su programación y ejecución de
instrucciones.
2.2. Objetivos específicos:
 Identificar y describir los componentes principales de una computadora,
como el procesador, la memoria, el almacenamiento y los dispositivos de
entrada y salida.
 Analizar la arquitectura de un procesador, incluyendo su conjunto de
instrucciones, modos de direccionamiento, unidades funcionales y
pipelines.
 Comprender los conceptos de sistema operativo, compilación, enlazado y
ejecución de programas en una computadora.
 Evaluar el desempeño de una computadora mediante técnicas de medición
y benchmarking, y comparar diferentes arquitecturas y configuraciones.
 Conocer las tendencias y desafíos actuales en la arquitectura de
computadoras
3. MARCO TEORICO
El marco teórico lo clasificaremos en dos partes que vendrían a ser LA
ARQUITECURA DE LA CPU y ARQUITECTURAS INTEL IA-32, IA-64

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

ARM y ATMEL.
3.1. Arquitectura de la CPU
La arquitectura de CPU se refiere a la manera en que están diseñados
físicamente los procesadores o CPU (Central Processing Unit) de una
computadora. Esto incluye la organización interna de la CPU, la forma en que se
comunican con la memoria y otros componentes del sistema, y las instrucciones
que pueden ejecutar.
3.1.1. Características de la taxonomía de Flynn

La Taxonomía de Flynn es una clasificación para arquitecturas de computadoras


establecida por el profesor Michael Flynn en 1966. El método de Flynn se basa
en el número de instrucciones y de la secuencia de datos que la computadora
utiliza para procesar información. Puede haber secuencias de instrucciones
sencillas o múltiples y secuencias de datos sencillas o múltiples. Esto da lugar a
4 tipos de computadoras, de las cuales solamente dos son aplicables a las
computadoras paralelas:
a) Una instrucción, un dato (SISD) En computación, SISD (del inglés
Single Instruction, Single Data, en español: "una instrucción, un
dato") es un término que se refiere a una arquitectura computacional en
la que un único procesador ejecuta un sólo flujo de instrucciones, para
operar sobre datos almacenados en una única memoria.
Según Michael J. Flynn, SISD puede tener características del
procesamiento concurrente. La carga de instrucciones y la ejecución

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

segmentada de instrucciones son ejemplos comunes encontrados en las


computadoras SISD más modernas.
Características:
 La CPU procesa únicamente una instrucción por cada ciclo de reloj
 Únicamente un dato es procesado en cada ciclo de reloj
 Es el modelo más antiguo de computadora y el más extendido

b) Múltiples instrucciones, un dato (MISD) En computación, MISD (del


inglés Multiple Instruction, Single Data, en español: "múltiples
instrucciones, un dato") es un tipo de arquitectura computacional
(particularmente de computación paralela) donde muchas unidades
funcionales realizan diferentes operaciones en los mismos datos. Las
arquitecturas segmentadas pertenecen a este tipo, aunque en un
extremo se podría llegar a decir que los datos son diferentes después
de ser procesados por cada etapa en el pipeline, con lo cual no entraría
en esta categoría.

Las máquinas tolerantes a fallos ejecutan la misma instrucción


redundantemente para detectar y corregir errores, utilizando task
replication, son consideradas de este tipo. No existen muchos ejemplos
de esta arquitectura dado que las técnicas más comunes de
procesamiento de datos en paralelo suelen ser más apropiadas para
MIMD y SIMD. Específicamente, facilitan el escalamiento y el uso de
recursos computacionales mejor que MISD.

Características del modelo MISD:

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

 Cada unidad ejecuta una instrucción distinta


 Cada unidad procesa el mismo dato
 Aplicación muy limitada en la vida real

c) Una instrucción, múltiples datos (SIMD) En computación, SIMD (del


inglés Single Instruction, Multiple Data, en español: "una
instrucción, múltiples datos") es una técnica empleada para
conseguir paralelismo a nivel de datos. Los repertorios SIMD consisten
en instrucciones que aplican una misma operación sobre un conjunto
más o menos grande de datos. Es una organización en donde una única
unidad de control común despacha las instrucciones a diferentes
unidades de procesamiento. Todas éstas reciben la misma instrucción,
pero operan sobre diferentes conjuntos de datos. Es decir, la misma
instrucción es ejecutada de manera sincronizada por todas las unidades
de procesamiento.

Características del modelo SIMD:

 Todas las unidades ejecutan la misma instrucción


 Cada unidad procesa un dato distinto
 Todas las unidades operan simultáneamente

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

d) Múltiples instrucciones, múltiples datos (MIMD) En computación,


MIMD (del inglés Multiple Instruction, Multiple Data, en español
"múltiples instrucciones, múltiples datos") es una técnica empleada
para lograr paralelismo. Las máquinas que usan MIMD tienen un
número de procesadores que funcionan de manera asíncrona e
independiente. En cualquier momento, cualquier procesador puede
ejecutar diferentes instrucciones sobre distintos datos. La arquitectura
MIMD pueden utilizarse en una amplia gama de aplicaciones como el
diseño asistido, simulación, modelado y en interruptores. Las
computadoras MIMD pueden categorizarse por tener memoria
compartida o distribuida, clasificación que se basa en cómo el
procesador MIMD accede a la memoria. La memoria compartida de las
máquinas puede estar basada en buses, extensiones, o de tipo
jerárquico. Las máquinas con memoria distribuida pueden tener
esquemas de interconexión en hipercubo o malla Características del
modelo MIMD:

 Cada unidad ejecuta una instrucción distinta  Cada unidad


procesa un dato distinto

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

Cuadro Sinóptico

3.1.2. Características de La Taxonomía De Shore


La taxonomía de Shore que al igual que la de Flynn, clasifica los computadores
en función del número de elementos; pero mientras que la taxonomía de Flyn
pretende clasificarlos por la organización del software (Instrucciones de datos),
la clasificación de Shore lo hace por la estructura del hadware (Unidad de control
de proceso y memoria de datos e Instrucciones).
Existen tres métodos para considerar la estructura de memoria de un
multiprocesador: memoria físicamente compartida, memoria lógicamente
compartida, físicamente distribuida, y memoria distribuida.
a) En un multiprocesador con memoria físicamente compartida, todos
los procesadores comparten una memoria común. Los procesos que
se ejecutan en procesadores diferentes pueden comunicarse leyendo y
escribiendo valores en la memoria compartida.
b) Los multiprocesadores con memoria lógicamente compartida, y
físicamente distribuida representan un compromiso entre las otras dos
estrategias. En estas máquinas cada procesador tiene una memoria

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

local, es decir, la memoria se encuentra físicamente distribuida, a la que


otros procesadores pueden tener acceso directo, es decir, se encuentra
lógicamente compartida.
c) En un multiprocesador de memoria distribuida, cada procesador
tiene su propia memoria. Los procesadores no tienen acceso directo a
la memoria de los otros, por lo que los procesos que se ejecutan en
otros procesadores deben intercambiar mensajes para comunicarse
entre sí.
Cuadro Sinóptico

3.1.3. Características, diferencias y aplicaciones de la Arquitectura Von


Neumann y la Arquitectura Harvard. a) Arquitectura Von Neumann
Conocida como modelo de Von Neumann o arquitectura de
computadoras basada en la descrita en 1945 por el
matemático y físico John Von Neumann y otros, en el primer
borrador de un informe sobre el EDVAC.
A pesar de ser la más utilizada en nuestros días es la más
lenta que la arquitectura de Harvard, esto se debe a su
flexibilidad para el uso de diferentes tipos de programas.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

b) Arquitectura Harvard
El termino proviene de la computadora Harvard Mark I, que almacenaba las
instrucciones en cintas perforadas y los datos en interruptores.
El tener una memoria de programa y una memoria de datos la hace una
arquitectura mucho más estable y con más velocidad, aunque no se tan
utilizada.
Tabla Comparativa

VON NEUMANN HARVARD

Características
Se caracteriza por disponer de una sola Se caracteriza de disponer dos
memoria principal donde se almacenan memorias independientes una, que
datos e instrucciones de forma contiene solo instrucciones y otra, solo
indistinta. A dicha memoria se accede a datos. Ambas disponen de sus
través de un sistema de buses único respectivos sistemas de buses de
(direcciones, datos y control). acceso y es posible realizar
operaciones de acceso (lectura o
escritura) simultáneamente en ambas
memorias.

Diferencias
 Un solo bus de datos comunica.  Son dos buses independientes.
 Es la más utilizada, aunque es más  Mayor velocidad aunque no es tan
lenta. utilizada.

 No se pueden realizar operaciones


simultáneamente.

Aplicaciones

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

Es la más utilizada en PC, consolas, Las máquinas de arquitectura Harvard


tabletas y teléfonos móviles a día de relativamente puras se utilizan
hoy. Dado que todos ello se encuentra principalmente en aplicaciones cuyas
organizados entre ellos usando una compensaciones, como los costes y el

serie de tipos de componentes en ahorro de energía de la omisión de


común. caché, superan las desventajas de
programación que vienen con tener
espacios de direcciones de código y
datos diferentes.

3.1.4. Origen y Características de las siguientes tecnologías de set de


instrucciones.
a) Set de Instrucciones Reducidas para Computadora RISC
(ReducedInstruction Set Computer).

RISC (del inglés: Reduced Instruction Set Computer), en español


computador con conjunto de instrucciones reducidas, es un tipo de diseño
de CPU generalmente utilizado en microprocesadores o
microcontroladores.
Características:
 Conjunto de instrucciones reducido y simple
 Arquitectura load/store
 Pocos modos simples de direccionamiento
 Pocos tipos de datos soportados
 Gran número de registros de propósito general
 Formatos de instrucción simples y uniformes
 Longitud de instrucción fija
b) Set de Instrucciones Complejas para Computadora CISC
(ComplexInstruction Set Computer).

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

La tecnología de CISC, nació de la mano de Intel, creador en 1971 del


primer microchip que permitía el nacimiento de la informática personal.
Más concretamente, seria en 1972 cuando aparecía el 8080, primer chip
capaz de procesar 8 bits, suficiente para representar números y letras con
la posibilidad de colocar todos los circuitos en un solo chip y la capacidad
de manejar números y letras nacería la cuarta generación de ordenadores,
conocido como PC u ordenadores personales.
Características:
 Gran cantidad de instrucciones y modos de direccionamiento
 Instrucciones complejas y de longitud variable
 Soporta gran cantidad de tipos de datos
 Implementación de instrucciones de alto nivel lo más directamente
posible
 Compatibilidad con miembros anteriores de la familia
c) Tecnología de instrucciones para computadora VLIW (Very Long
Instruction Word).
Esta arquitectura de CPU implementa una forma de paralelismo o nivel de
instrucción. Es similar a las arquitecturas superescalares, ambos usan
varias unidades funcionales (por ejemplo, varios ALUs, multiplicadores,
etc.) para lograr el paralelismo.
Características: Los procesadores con arquitecturas VLIW se caracterizan
como su nombre indica, por tener juegos de instrucciones muy simples en
cuanto a número de instrucciones diferentes, pero muy grandes en cuanto
al tamaño de cada instrucción. Esto es así porque en cada instrucción se
especifica el estado de todas y cada una de las funcionales del sistema,
con el objetivo de simplificar el diseño del hardware al dejar todo el trabajo
de planificar el código en manos del programador/compilador, en
oposición a un procesador superescalar, en el que es el hardware en
tiempo de ejecución el que planifica las instrucciones.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

d) Modelo de “procesamiento de instrucciones explícitamente en


paralelo” (EPIC – Explicitly Parallel Instruction Computing).
Procesamiento de instrucciones explícitamente en paralelo (del inglés
EPIC: Expliciitly parallel instruction computing) es un paradigma de
programación que comenzó a investigarse a principios de los años 80 y se
convirtió en una patente estadounidense 4.847,75 (Gordon Morrison).
Características: Integra características de RISC y VLIW. <br> - Uso de
instrucciones muy largas con múltiples operaciones, pero con
dependencias explícitas entre ellas. <br> - Mayor cantidad de registros y
pipeline de instrucciones optimizado. <br> - El compilador es más
complejo.
3.1.5. Explique el acceso a la memoria del sistema en procesadores de la
familia intel 80x86, mediante:
a) Segmentación de memoria (segmentation)
Sistema de gestión de memoria en un sistema operativo.
La segmentación es una técnica de gestión de memoria que pretende
acercarse más al punto de vista del usuario. Los programas se
desarrollan, generalmente en torno a un núcleo central (principal) desde
el que se bifurca a otras partes (rutinas) o se accede a zonas de datos
(tablas, pilas, etc.).
En los procesadores de la Familia Intel 80x86, el acceso a la memoria del
sistema se realiza a través de la segmentación de memoria. En este
esquema de memoria, la memoria del sistema se divide en segmentos,
que son bloques de memoria contiguos y tienen una longitud variable.
Cada segmento está identificado por una dirección base y un tamaño
máximo. Para acceder a una dirección de memoria en un segmento, se
debe sumar la dirección base del segmento a la dirección lógica del
programa.
El procesador 80x86 utiliza dos registros de segmento, el registro de
segmento de código (CS) y el registro de segmento de datos (DS), que
apuntan a los segmentos de código y de datos, respectivamente.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

Además, hay otros registros de segmento, como el registro de segmento


de pila (SS) y el registro de segmento extra (ES), que se pueden utilizar
para acceder a otros segmentos de memoria.
La segmentación de memoria presenta algunas limitaciones, como el
hecho de que la dirección lógica de un programa puede no corresponder
directamente con la dirección física de la memoria, lo que puede afectar
el rendimiento. Además, la gestión de los segmentos de memoria puede
ser compleja y puede llevar a problemas de fragmentación de memoria.

b) Paginamiento (paging)
Prácticamente el único mecanismo que se usa hoy en día para
implementar espacios de direcciones virtuales es paginamiento. En este
mecanismo una página es un bloque de memoria de tamaño fijo y
potencia de 2 (típicamente 4 KB u 8 KB). La idea es que el espacio de
direcciones virtuales y el espacio de direcciones reales se particionan en
páginas del mismo tamaño.
El acceso a la memoria del sistema en procesadores de la familia Intel
80x86 mediante paginamiento se realiza mediante una unidad de
administración de memoria llamada MMU (Memory Management Unit),
que traduce las direcciones lógicas de la memoria en direcciones físicas.
El paginamiento en la familia Intel 80x86 divide la memoria en bloques
fijos llamados páginas, y estas páginas son asignadas a los procesos en

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

ejecución según sea necesario. Cada página tiene un número de página


y un número de marco de página, que identifica su ubicación física en la
memoria.
Cuando se accede a una dirección lógica de memoria, la MMU busca en
la tabla de páginas para determinar la página correspondiente y su
número de marco de página física. Luego, se concatena el número de
marco de página con el desplazamiento de la dirección lógica para
obtener la dirección física en la memoria.
La tabla de páginas se mantiene en la memoria principal y se accede a
ella a través de una estructura de datos llamada directorio de páginas,
que se ubica en una dirección de memoria específica y es compartido por
todos los procesos en ejecución.
El paginamiento es una técnica utilizada por los procesadores para
acceder a la memoria. En lugar de acceder a la memoria de manera
secuencial, como en el caso de la segmentación, se divide la memoria en
pequeñas partes llamadas páginas. Cada página tiene un tamaño fijo y
se numeran de manera secuencial.
Cuando un programa necesita acceder a un dato que no se encuentra en
memoria, se produce una interrupción que indica al sistema operativo que
debe buscar el dato en disco. El sistema operativo carga entonces la
página necesaria desde el disco a la memoria y actualiza la tabla de
páginas para indicar que esa página se encuentra ahora en memoria.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

3.1.6. Explique las siguientes tecnologías, utilizadas para implementar la


decodificación (Decode) de instrucciones) en la Unidad de Control (U.C.)
de los microprocesadores:
a) Tecnología Random Logic (lógica cableada – hardwired logic)
La tecnología random logic, se construye con puertas lógicas utiliza
decodificadores, cerraduras, contadores y la lógica de otros dispositivos
para mover la información y operar en esos datos.
El enfoque de la random logic tiene la ventaja de que es posible diseñar
CPUs más rápidas, son más rápidas que las velocidades de memoria
típica.
Características:
 Tiene un diseño muy complicado
 Circuitos complejos
 Difícil de modificar
 Es mucho más rápida que una lógica almacenada
b) Tecnología de Microcódigo (Microcode Emulation)
El microcódigo es un conjunto de microinstrucciones de un microprograma
que componen el cronograma de una instrucción, dentro del nivel más
interno de programación, rozando la frontera entre hardware y software.
Una microprograma implementa un conjunto de instrucciones de CPU, así
como las declaraciones de un lenguaje de alto nivel son compiladas a una

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

serie de instrucciones de máquina, en una CPU utilizando microcódigo,


cada instrucción de maquina es implementada por una serie de
microinstrucciones, a veces llamadas microprograma o microcódigo.
3.1.7. Explique el concepto de “procesamiento de instrucciones en
paralelo” (parallel processing).
Es un proceso empleado para acelerar el tiempo de ejecución de un programa
dividiéndolo en múltiples trozos que se ejecutaran al mismo tiempo, cada uno
en sus propios procesadores.
El procesamiento en paralelo se basa principalmente en multiprocesadores
fuertemente acoplados que cooperan para la realización de los procesos.
Sus características son:
 Posee dos o más procesadores de uso general similares y de
capacidades comparables.
 Todos los procesadores comparten el acceso a una memoria global
 También puede utilizarse algunas memorias locales (privadas como la
cache).
El procesamiento paralelo implica una serie de dificultades a nivel programación
de software la ventaja del procesamiento en paralelo es ejecuta procesos en
donde cada procesador se encargar de uno u otro y aceleran de esta forma el
cálculo.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

3.1.8. Describa el funcionamiento de un pipeline típico (superposición en


la ejecución de múltiples instrucciones - overlapping the execution of
multiple instructions).
La arquitectura en pipeline (basada en filtros) consiste en ir transformando un
flujo de datos en un proceso comprendido por varias fases secuenciales,
siendo la entrada de cada una la salida de la anterior.
Esta arquitectura es muy común en el desarrollo de programas para el
intérprete de comandos, ya que se pueden concatenar comandos fácilmente
con tuberías (pipe). También es una arquitectura muy natural en el paradigma
de programación funcional, ya que equivale a la composición de funciones
matemáticas.
En lugar de esperar a que se complete una instrucción antes de comenzar la
siguiente, el pipeline divide la ejecución de cada instrucción en varias etapas y
las procesa simultáneamente.
El pipeline consta típicamente de 5 etapas:
 Etapa de búsqueda de instrucciones (Instruction Fetch)
 Etapa de decodificación de instrucciones (Instruction Decode)
 Etapa de ejecución (Execution)
 Etapa de acceso a memoria (Memory Access)
 Etapa de escritura en registro (Write-back)
Cada etapa se encarga de una tarea específica, y una instrucción se mueve
de una etapa a otra hasta que se completa. Cuando se inicia la ejecución de
una instrucción, la siguiente instrucción en la secuencia se mueve a la etapa
de decodificación, y así sucesivamente. De esta manera, varias instrucciones
se procesan simultáneamente en diferentes etapas.
El objetivo del pipeline es aumentar la eficiencia del procesamiento, ya que
mientras una instrucción está siendo ejecutada en una etapa, se puede
procesar la siguiente instrucción en otra etapa. Esto reduce el tiempo total de
procesamiento y aumenta la velocidad de ejecución.
Sin embargo, el pipeline también puede generar problemas como los conflictos
de datos y los saltos condicionales, que pueden retrasar el procesamiento y

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

reducir la eficiencia. Para solucionar estos problemas, se utilizan técnicas


como la ejecución fuera de orden y la predicción de saltos.

3.1.9. Explicar los problemas asociados con el uso de pipeline (tuberías o


segmentación) y superpipeline. por ejemplo:

Pipeline (tuberas o segmentación) y Superpipeline son estrategias para


mejorar el rendimiento de los procesadores al permitir la ejecución de varias
instrucciones en paralelo. Sin embargo, estas técnicas también presentan
algunos problemas y son los siguientes:
a) Profundidad del pipeline (Pipeline depth)
El término de "profundidad del pipeline" es una técnica para ejecutar varias
instrucciones al mismo tiempo en un procesador de computadora. Cuanto
mayor sea la profundidad, mayor será la cantidad de instrucciones que se
pueden ejecutar en paralelo, pero también aumentará la latencia de la
instrucción. Si la profundidad del pipeline es demasiado grande, los ciclos
de reloj pueden ser más largos, lo que reducirá el rendimiento.
b) Dependencias de los datos (Data dependencies)
La dependencia de datos se produce cuando una instrucción necesita el
resultado de otra instrucción anterior antes de poder continuar. Si no se
pueden satisfacer estas dependencias de datos, el pipeline debe
detenerse y esperar a que se completen las instrucciones anteriores. Esto

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

se conoce como peligro de datos y puede reducir significativamente el


rendimiento del pipeline.
c) Ramificado (branching)
Para que el pipeline tenga incremento de velocidad debe tomarse en
cuenta que existe la probabilidad que en un determinado instante exista
las instrucciones de salto condicional pueden causar problemas en el
pipeline, ya que no se sabe de antemano qué instrucciones se ejecutarán
después de una instrucción de salto. Si se produce una instrucción de
salto, se deben vaciar las instrucciones posteriores del pipeline y cargar
nuevas instrucciones en su lugar. Esto puede llevar tiempo y reducir el
rendimiento del pipeline.
d) Stalls in a Pipeline o Hazards (Peligros de tuberías)
Hay situaciones, denominadas peligros, que impiden que se ejecute la
siguiente instrucción en el flujo de instrucciones durante su ciclo de reloj
designado. Los peligros reducen el rendimiento de la aceleración ideal
obtenida al canalizar. Hay tres clases de peligros:
 Peligros Estructurales. Surgen de conflictos de recursos cuando el
hardware no puede admitir todas las combinaciones posibles de
instrucciones en ejecución superpuesta simultánea.
 Riesgos de datos. Surgen cuando una instrucción depende del
resultado de una instrucción anterior de una manera que queda
expuesta por la superposición de instrucciones en la canalización.
 Peligros de control Surgen del encauzamiento de ramales y otras
instrucciones que modifican el PC.

Los peligros en las tuberías pueden hacer que sea necesario detener la
tubería. El procesador puede detenerse en diferentes eventos:

 Un fallo de caché. Un error de caché detiene todas las instrucciones


en la canalización tanto antes como después del instructal = quer
que causa el error.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

 Un peligro en la tubería. La eliminación de un peligro a menudo


requiere que se permita que algunas instrucciones en la tubería
continúen mientras que otras se retrasan. Cuando la instrucción se
detiene, toda la instrucción emitida después de la instrucción
detenida también se detiene. Las instrucciones emitidas antes de la
instrucción atascada deben continuar, ya que de lo contrario el
peligro nunca desaparecerá.
3.1.10. Explique las características y problemas asociados con la
operación superescalar (superscalar operation) de un procesador
(ejecución de instrucciones en paralelo).
La operación superescalar en un procesador que permite la ejecución paralela
de instrucciones. Esto se logra al tener múltiples instrucciones en paralelo por
ciclo de reloj en un solo núcleo del procesador.
Algunas de sus características son:
 Ejecución especulativa: El procesador puede predecir el resultado de
una instrucción antes de que se complete y continuar con la ejecución de
instrucciones siguientes. Si la predicción es incorrecta, el resultado se
descarta y el procesador vuelve a empezar.
 Ejecución fuera de orden: Las instrucciones se ejecutan en un orden
lógico, sin embargo, pueden completarse en un orden diferente al de su
llegada. Esto permite que se eviten los cuellos de botella y se maximice
el potencial de paralelismo del procesador.
 Varios puertos de ejecución: El procesador contiene múltiples puertos
de ejecución, cada uno responsable de una instrucción específica en una
unidad de ejecución específica. Esto permite que varias instrucciones se
ejecuten simultáneamente.
 Renombramiento de registros: Permite que varias instrucciones utilicen
el mismo registro sin interrumpirse entre sí.
 Buffer de instrucción: Para que el procesador pueda ejecutar
instrucciones en paralelo, se carga un buffer con una serie de
instrucciones que se ejecutarán en el siguiente ciclo de reloj.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

Los beneficios de la operación superescalar son que puede aumentar el


rendimiento y la velocidad del procesador, ya que se pueden ejecutar más
instrucciones en menos tiempo. Sin embargo, también existen problemas
potenciales en este enfoque.
 Uno de los principales desafíos con la operación superescalar es
garantizar que las instrucciones se ejecuten correctamente, a pesar de su
concurrencia. Esto puede complicarse por el hecho de que algunas
instrucciones pueden depender de los resultados de otras, y es posible
que estas dependencias no siempre sean fáciles de identificar. Además,
el uso de múltiples unidades de ejecución también puede aumentar la
complejidad del procesador, lo que puede generar mayores costos de
producción y potencialmente introducir nuevas fuentes de errores.
 Otro problema potencial con la operación superescalar es que puede ser
difícil garantizar que todas las unidades de ejecución se utilicen de
manera efectiva. En algunos casos, ciertas unidades pueden estar
infrautilizadas mientras que otras están sobre utilizadas, lo que puede
generar desequilibrios que, en última instancia, reducen las ganancias de
rendimiento del enfoque superescalar.
En general, la operación superescalar puede ofrecer beneficios significativos
en términos de rendimiento y velocidad, pero también presenta nuevos
desafíos para los diseñadores de procesadores y requiere una gestión
cuidadosa de las dependencias y los recursos para garantizar un rendimiento
óptimo.
3.1.11. Explique la diferencia entre paralelismo en las instrucciones y
paralelismo de la máquina en una operación superescalar.
El paralelismo en las instrucciones y el paralelismo de la máquina son dos
conceptos relacionados pero diferentes en el contexto de la operación
superescalar:
En una operación superescalar, se busca aprovechar el paralelismo que existe
en el conjunto de instrucciones para ejecutar varias instrucciones en paralelo
en un solo ciclo de reloj.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

 El paralelismo en las instrucciones se refiere a la capacidad de ejecutar


múltiples instrucciones en paralelo si no dependen una de otra. El
paralelismo de la máquina se refiere a la capacidad de ejecutar múltiples
operaciones en paralelo en la máquina.
 En operaciones superescalares, se busca principalmente explotar el
paralelismo en las instrucciones, es decir, ejecutar en paralelo dos o más
instrucciones si no tienen dependencias entre sí, con el objetivo de
mejorar el rendimiento del procesador. Por otro lado, el paralelismo de la
máquina se refiere a la capacidad de la máquina para ejecutar de manera
simultánea múltiples operaciones en diferentes etapas del pipeline. En
resumen, el paralelismo en las instrucciones se refiere a la libertad que
tienen las instrucciones para ejecutarse sin depender una de la otra,
mientras que el paralelismo de la máquina se refiere a la capacidad de la
máquina para ejecutar varias tareas de forma simultánea. En una
operación superescalar se busca aprovechar el paralelismo en las
instrucciones para mejorar el rendimiento de la máquina
3.1.12. Describa las tres técnicas de hardware que se pueden usar en un
procesador superescalar para aumentar sus prestaciones:
Es importante tener en cuenta que estas técnicas se utilizan de manera
conjunta en los procesadores modernos y que su rendimiento depende
también de la efectividad de otros circuitos, como el cache y la memoria
principal. Las técnicas de hardware que se pueden utilizar en un procesador
superescalar para aumentar sus prestaciones son las siguientes:
a) Duplicación de recursos
Las técnicas de hardware que se pueden utilizar en un procesador
superescalar para aumentar sus prestaciones incluyen la duplicación de
recursos y la utilización de diversas técnicas que permiten la ejecución
simultánea de varias instrucciones escalares en paralelo. Las técnicas
de hardware más comunes en un procesador superescalar incluyen la
especulación dinámica, la ejecución fuera de orden y la renombrado de
registros.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

La duplicación de recursos en un procesador superescalar consiste en


agregar unidad de ejecución y registro adicional para que las
instrucciones puedan ser procesadas simultáneamente. Esto aumenta la
cantidad de instrucciones que se pueden procesar al mismo tiempo, lo
que acelera el proceso.
La especulación dinámica en un procesador superescalar permite iniciar
la ejecución de varias instrucciones a la vez, apoyando la hipótesis de
que los resultados de estas instrucciones independientes serán
necesarios en el futuro, y cancelar las instrucciones que fueron
ejecutadas en vano.
El renombrado de registros permite reutilizar los registros que no tienen
uso en ese momento para procesar nuevas instrucciones, lo que reduce
la latencia y mejora el rendimiento.
En general, se buscan técnicas que mejoren la capacidad de
procesamiento en paralelo, la reducción de latencia, y la disminución de
la cantidad de recursos inoperables.
b) Emisión desordenada
Esta técnica implica emitir instrucciones fuera de orden para aprovechar
mejor los recursos del procesador. En lugar de ejecutar instrucciones en
el orden en que aparecen en el programa, el procesador puede emitir
instrucciones en función de la disponibilidad de recursos.
c) Renombramiento de registros.
Una técnica de hardware que se puede utilizar en un procesador
superescalar para aumentar sus prestaciones es el renombramiento de
registros, que es una técnica de ejecución fuera de orden. Esta técnica
implica asignar nombres nuevos a los registros fuente y destino de una
instrucción y mantener un mapa de renombramiento que indica qué
registro físico se corresponde con cada registro renombrado. De esta
manera, se permite la ejecución de instrucciones en paralelo y se evita
la espera de instrucciones que dependen de otras que aún no han
terminado de ejecutarse. Además del renombramiento de registros, otras

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

técnicas que se pueden utilizar en procesadores superescalares incluyen


la especulación de control, la predicción de saltos, la ejecución fuera de
orden y la ejecución especulativa.
3.1.13. Explique las políticas de emisión de instrucciones de los
procesadores superescalares:
a) Emisión en orden y finalización en orden
La política de emisión en orden y finalización es una de las metodologías
que se utilizan en los procesadores superescalares para ejecutar
múltiples instrucciones en paralelo. En esta política, las instrucciones se
emiten y se completan en el mismo orden en el que se reciben. Las
instrucciones se emiten en un orden secuencial, es decir, la máquina
emite la instrucción n-ésima sólo después de emitir la instrucción n-
1ésima. De esta manera, se garantiza que se mantenga una secuencia
coherente de las instrucciones en la aplicación.
La principal ventaja de esta política es que es fácil de implementar y que
mantiene la coherencia del orden de ejecución de las instrucciones. La
desventaja es que puede generar cuellos de botella de rendimiento en
las secciones de código que dependen fuertemente de los resultados de
las instrucciones anteriores. Es por eso que otras políticas de emisión y
finalización también se utilizan en los procesadores superescalares,
como la emisión en orden y finalización desordenada o la emisión
desordenada y finalización en orden, que buscan resolver algunos de
esos cuellos de botella y mejorar el rendimiento.
b) Emisión en orden y finalización desordenada
La política de emisión en orden y finalización desordenada es una de las
políticas de emisión de instrucciones utilizadas en algunos procesadores
superescalares. En esta política, las instrucciones se emiten en orden,
es decir, en el mismo orden en que se reciben, pero se ejecutan en
desorden, lo que significa que las instrucciones que no tienen
dependencias mutuas pueden ejecutarse en paralelo.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

Por ejemplo, suponga que tenemos tres instrucciones: A, B y C. En una


política de emisión en orden y finalización desordenada, se emitirían en
ese orden. Si no hay dependencias entre ellas, las instrucciones B y C
podrían ejecutarse en paralelo, por lo que la instrucción C podría
terminar antes que B. Pero la política garantiza que la instrucción A
termine antes que B y C.
Esta política permite una mayor explotación del paralelismo a nivel de
instrucción, ya que permite que las instrucciones que no tienen
dependencias se ejecuten en paralelo. Sin embargo, puede generar
algunos problemas, como la especulación de instrucciones, que ocurre
cuando se emiten instrucciones suposiciones basándose en supuestos
que podrían ser incorrectos y la dependencia entre las instrucciones
podría dar lugar al fallo del cálculo o de la aplicación.
c) Emisión desordenada y finalización desordenada.
La emisión desordenada permite que las instrucciones sean emitidas sin
seguir necesariamente su orden en el programa. Esto implica que
instrucciones que no estén relacionadas entre sí puedan ser emitidas en
paralelo, lo que puede aumentar el paralelismo en el procesamiento.
Por otro lado, la finalización desordenada permite que las instrucciones
que han completado su ejecución puedan ser terminadas en desorden.
De esta manera, si hay alguna instrucción con latencia larga, las
instrucciones independientes que se encuentran en el buffer de
finalización pueden ir siendo eliminadas de forma desordenada, con lo
que se puede liberar el buffer a un ritmo mayor, evitando así desperdiciar
recursos y mejorando así el desempeño del procesamiento.
En general, la emisión desordenada y finalización desordenada son
técnicas que permiten mejorar el paralelismo en el procesamiento
superescalar, aumentando así la tasa de instrucciones procesadas por
ciclo de reloj.
3.1.14. Explique en qué consiste el multiprocesamiento de instrucciones
(multiprocessing).

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

El multiprocesamiento de instrucciones es una técnica utilizada en


arquitecturas de hardware de computadoras que permite procesar múltiples
instrucciones en paralelo utilizando varios procesadores o núcleos. Esta
técnica se utiliza para mejorar el rendimiento y la eficiencia de los sistemas
informáticos, ya que permite la ejecución simultánea de varias tareas y reduce
el tiempo de espera.
En los sistemas de multiprocesamiento de instrucciones, cada procesador o
núcleo es capaz de ejecutar su propio conjunto de instrucciones en paralelo
con los demás procesadores o núcleos. Esto significa que el sistema puede
realizar varias tareas al mismo tiempo, lo que mejora el rendimiento general
del sistema.
Además de la ejecución en paralelo de instrucciones, también se pueden
utilizar diferentes técnicas de división de trabajo en sistemas
multiprocesadores. Por ejemplo, pueden utilizarse diferentes núcleos para el
procesamiento de datos y otros núcleos para el procesamiento de entrada y
salida (E/S) para reducir el tiempo de espera.
En resumen, el multiprocesamiento de instrucciones permite procesar
múltiples instrucciones en paralelo y mejorar el rendimiento y la eficiencia de
los sistemas de computadoras.
3.1.15. Describa la clasificación general de los modos de direccionamiento
(acceso a datos), para procesadores de la familia intel 80x86. (incluir
ejemplos)
 Implícito la instrucción no especifica una dirección, sino que utiliza una
posición predefinida, tal como el registro de la pila. Por ejemplo:
PUSH AX ; apila el valor de AX en la pila
POP CX ; desapila el valor de la pila y lo copia en CX
 Inmediato la instrucción contiene el valor de los datos requeridos en sí
misma. Por ejemplo:
MOV AX, 2 ; mueve el valor 2 a la posición de memoria especificada por
AX

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

 Por Registro la instrucción contiene la dirección de la memoria donde


se encuentran los datos. Por ejemplo:
MOV AX, [1234h]; mueve el valor almacenado en la dirección de
memoria 1234h a AX
 Directo la instrucción contiene la dirección de la memoria donde se
encuentran los datos. Por ejemplo:
MOV AX, [1234h]; mueve el valor almacenado en la dirección de
memoria 1234h a AX
 Indirecto Mediante Registro la instrucción contiene la dirección de un
registro que a su vez contiene la dirección donde se encuentran los
datos. Por ejemplo:
MOV BX, 1234h
MOV AX, [BX]; mueve el valor almacenado en la dirección de memoria
1234h a AX
 Relativo A Base En este modo de direccionamiento, se utiliza una
dirección base y un desplazamiento para calcular la dirección del
operando. Por ejemplo:
la instrucción "MOV AX, [BX+2]" que se utiliza para mover el valor
contenido en la dirección de memoria apuntada por BX más un
desplazamiento de 2 al registro AX.
 Directo Indexado En este modo de direccionamiento, se utiliza un
registro de índice y una dirección base para calcular la dirección del
operando. Por ejemplo:
la instrucción "MOV AX, [SI+1000h]" que se utiliza para mover el valor
contenido en la dirección de memoria apuntada por el registro de índice
SI más una dirección base de 1000h al registro AX.
 Indexado Relattvo A Base En este modo de direccionamiento, se
utiliza una dirección base, un registro de índice y un desplazamiento
para calcular la dirección del operando. Por ejemplo:

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

la instrucción "MOV AX, [BX+SI+2]" que se utiliza para mover el valor


contenido en la dirección de memoria apuntada por BX más el registro
de índice SI más un desplazamiento de 2 al registro AX.
 Direccionamiento De Cadenas Este modo de direccionamiento se
utiliza para operaciones en cadenas de caracteres, como, por ejemplo:
las operaciones de búsqueda o comparación. En este caso, se utiliza el
registro SI como índice y el registro DI como apuntador a la cadena. Por
ejemplo, la instrucción "REP”
3.1.16. Explique el funcionamiento de un procesador:
a) Modo Real (real-address mode)
En el modo real, un procesador ejecuta instrucciones de forma
secuencial y procesa datos en bloques de tamaño fijo. En este modo,
el procesador no tiene acceso a la memoria virtual ni a las capacidades
de protección de memoria del sistema operativo. Por lo tanto, un
programa en modo real tiene acceso potencial a todo el sistema y
puede hacer uso de todas las direcciones de memoria disponibles.
En lugar de tener un sistema de memoria paginada como en el modo
protegido, el procesador en modo real usa una tabla de vectores de
interrupción para manejar las interrupciones. Esta tabla contiene las
direcciones de memoria donde se encuentran las rutinas de manejo de
interrupciones. Además, el procesador en modo real tiene acceso a un
conjunto limitado de instrucciones de entrada/salida (I/O), que permiten
a los programas enviar y recibir datos a dispositivos de hardware
conectados.
En resumen, en modo real, el procesador no tiene control de acceso a
los recursos del sistema y el programa tiene acceso libre a todas las
áreas de la memoria. Esto hace que el modo real sea menos seguro
que el modo protegido, pero permite un acceso más rápido a los
recursos del sistema.
b) Modo Protegido (protected mode)

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

En el modo protegido, el procesador se ejecuta con una mayor


seguridad y protección de memoria, permitiendo la ejecución de
múltiples procesos simultáneamente. En este modo, el procesador
utiliza la paginación de memoria para asignar áreas de memoria
protegidas a diferentes procesos, impidiendo que uno de ellos pueda
acceder a la memoria asignada a otro.
Además, el modo protegido permite la ejecución de código en modo
usuario y modo núcleo (kernel mode), lo que promueve la separación
de privilegios y la seguridad del sistema. En el modo usuario, los
programas tienen acceso limitado a los recursos del sistema, mientras
que en el modo núcleo se tienen todos los privilegios para acceder a
cualquier recurso del sistema.
En resumen, el modo protegido ofrece mayor seguridad y protección
de memoria para los procesos en ejecución y promueve la separación
de privilegios y la seguridad del sistema.
c) Modo Gestión del Sistema (system management mode)
En modo gestión del sistema, el procesador de un ordenador opera en
modo privilegiado, también conocido como modo kernel o modo
supervisor. En este modo, el procesador tiene acceso total a los
recursos del sistema, incluyendo la memoria y los dispositivos de
entrada y salida. El kernel del sistema operativo se ejecuta en este
modo, lo que le permite gestionar cada recurso y aplicación que se
ejecuta en el sistema.
El kernel del sistema operativo funciona como una capa intermedia
entre las aplicaciones y los componentes de hardware del sistema.
Cuando una aplicación del usuario necesita acceder a un recurso,
como un archivo guardado en el disco, envía una solicitud al kernel del
sistema operativo a través de una API. El kernel del sistema operativo
luego accede al recurso y devuelve los datos solicitados a la aplicación.
En modo gestión del sistema, el procesador tiene el control total sobre
los recursos del sistema, lo que significa que puede realizar

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

operaciones y asignaciones de recursos críticos con prioridad. Esta


función es importante, ya que permite evitar que las aplicaciones se
interrumpan entre sí y afecten el rendimiento del sistema.
En resumen, el modo gestión del sistema es el modo en el que el
procesador de un ordenador opera en condiciones de máxima
potencia, para obtener y gestionar los recursos del sistema operativo
en su totalidad y de forma óptima. El kernel del sistema operativo se
ejecuta en este modo para gestionar el acceso de las aplicaciones a
los recursos del sistema y garantizar la estabilidad y seguridad del
sistema en general.
d) además del uso de Tablas de Descriptores
El funcionamiento de un procesador se describe en términos de la
ejecución de instrucciones. Una tabla de descriptores es una estructura
de datos que el procesador utiliza para entender y administrar la
memoria. La tabla de descriptores se utiliza en tiempo de ejecución
para ubicar datos y código en la memoria y para asegurarse de que el
procesador acceda a ella de la manera correcta.
El procesador tiene una tabla de descriptores global (GDT) que
mantiene los descriptores para todos los segmentos de memoria del
sistema, incluidos los segmentos de sistema y usuario. Cada proceso
que se ejecuta en el procesador tiene su propia tabla de descriptores
locales (LDT) que mantiene los descriptores para los segmentos de
memoria asignados a ese proceso en particular. La tabla de
descriptores le permite al procesador saber cómo acceder a la memoria
para cada proceso en particular y para cada segmento de memoria. La
tabla de descriptores incluye información importante, como el tamaño
de la memoria asignada al proceso, su ubicación en la memoria y los
permisos de acceso. Los descriptores también pueden indicar si una
página de memoria está presente en la memoria física o si debe
cargarse desde el disco.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

En resumen, las tablas de descriptores son una estructura de datos


importante utilizada por el procesador para administrar la memoria y
asegurarse de que los datos y el código se accedan de manera segura
y eficiente
3.1.17. Explique la diferencia de las especificaciones de acceso a memoria
little- endian y big-endian.
Little-endian y big-endian son dos formas de almacenar tipos de datos de
varios bytes, como números enteros y números de punto flotante en la
memoria de la computadora.
 En un sistema little-endian, el byte menos significativo de los datos se
almacena primero, seguido del siguiente byte menos significativo, y así
sucesivamente, y el byte más significativo se almacena en último lugar.
 En un sistema big-endian, el byte más significativo se almacena
primero, seguido del siguiente byte más significativo, y así
sucesivamente, y el byte menos significativo se almacena en último
lugar.
La diferencia entre estas dos especificaciones es importante cuando se
transfieren datos entre sistemas con diferentes órdenes de bytes. Si un sistema
little-endian envía datos a un sistema big-endian, los datos aparecerán en un
orden diferente al esperado y viceversa. Es importante asegurarse de que los
dos sistemas estén de acuerdo en el orden de los bytes para que los datos se
puedan interpretar correctamente.
En términos de acceso a la memoria, la endianidad de un sistema afecta la
forma en que un programa debe acceder a datos de varios bytes al leerlos o
escribirlos en la memoria. Por ejemplo, en un sistema big-endian, el programa
debe leer o escribir primero el byte más significativo de un tipo de datos de
varios bytes, mientras que en un sistema little-endian, primero debe
leer/escribir el byte menos significativo.
3.2. Arquitecturas Intel IA-32, IA-64 ARM y ATMEL
Las arquitecturas IA-32 e IA-64 son conjuntos de instrucciones desarrollados
y fabricados por Intel y son utilizados en procesadores de computadoras

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

personales y servidores. La arquitectura IA-32 es de 32 bits y fue introducida


en 1985, mientras que la IA-64 es de 64 bits y fue lanzada en 2001. ARM es
una familia de arquitecturas diseñadas por ARM Holdings y se utiliza en una
amplia variedad de dispositivos móviles, incluyendo teléfonos inteligentes,
tablets y sistemas embebidos. Mientras tanto, Atmel es una empresa que
desarrolla y fabrica microcontroladores, y sus arquitecturas tienen diversas
características dependiendo del modelo específico.
3.2.1. Describa Los Siguientes Elementos De La Arquitectura Interna De
Procesador 80386

El microprocesador 80386 es un procesador de 32 bits que tiene la capacidad


de realizar operaciones de 32 bits en un ciclo. Tiene un bus de datos y de
direcciones de 32 bits cada uno. Así tiene la capacidad de direccionar 4 GB
(o 2 32) de memoria física.

El 80386 posee la capacidad de canalización de 3 etapas, por lo que realiza


la búsqueda, la decodificación y la ejecución simultáneamente junto con la
administración de memoria y el acceso al bus. Por tanto, todas estas unidades
funcionan en paralelo. Esta técnica de canalización conduce a una reducción
en el tiempo de procesamiento general, lo que aumenta el rendimiento de todo
el sistema.

La multitarea y la capacidad de protección son las dos características clave


del microprocesador 80386, tiene hardware interno dedicado que permite
realizar múltiples tareas.

Fue diseñado por Intel en octubre de 1985 y fue una versión mejorada del
microprocesador 80286.

Arquitectura del PROCESADOR 80386

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

 Bus Interface Unit (Unidad de interfaz de bus): La unidad de interfaz de


bus o BIU tiene un bus de datos bidireccional de 32 bits, así como un bus de
direcciones de 32 bits. Cada vez que el sistema genera una necesidad de
instrucción o una extracción de datos, la BIU genera señales (de acuerdo con
la prioridad) para activar el bus de datos y direcciones a fin de recuperar los
datos de la dirección deseada.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

La BIU conecta los dispositivos periféricos a través de la unidad de memoria


y también controla la interfaz de los buses externos con los coprocesadores.

 Code Prefetch Unit (Unidad de captura previa de código): Esta unidad


recupera las instrucciones almacenadas en la memoria haciendo uso de los
buses del sistema. Cada vez que el sistema genera una necesidad de
instrucción, la unidad de captación previa de código obtiene esa instrucción
de la memoria y la almacena en una cola de captación previa de 16 bytes.
Entonces, para acelerar la operación, esta unidad obtiene las instrucciones
por adelantado y la cola almacena estas instrucciones. La secuencia en la
que se obtienen las instrucciones y se almacenan en la cola depende del
orden en que existen en la memoria.
Como esta unidad obtiene una palabra doble en un solo acceso. Por lo tanto,
en tal caso, no es necesario que cada vez se obtenga una única instrucción,
ya que la instrucción obtenida puede ser parte de dos instrucciones
diferentes.

Cabe señalar aquí que la captación previa de código tiene una prioridad más
baja que la transferencia de datos. Como cada vez que el sistema genera
una necesidad de transferencia de datos, inmediatamente el precapturador
de códigos deja el control de los buses. Para que la BIU pueda transferir los
datos requeridos. Pero la precarga de la instrucción y su almacenamiento
en la cola reduce la espera de la próxima instrucción a casi cero.

 Instruction Decode Unit (Unidad de decodificación de instrucciones):


Sabemos que las instrucciones en la memoria se almacenan en forma de
bits. Entonces, esta unidad decodifica las instrucciones almacenadas en la
cola de captación previa. Básicamente, el decodificador cambia el código de
lenguaje de máquina a lenguaje ensamblador y lo transfiere al procesador
para su posterior ejecución.
 Execution Unit (Unidad de Ejecución): Las instrucciones decodificadas se
almacenan en la cola de instrucciones. Por lo tanto, estas instrucciones se

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

proporcionan a la unidad de ejecución para ejecutar las instrucciones. La


unidad de ejecución controla la ejecución de las instrucciones decodificadas.
Esta unidad tiene una ALU de 32 bits, que realiza la operación sobre datos
de 32 bits en un ciclo. Además, consta de 8 registros de propósito general y
8 de propósito especial. Estos se utilizan para el manejo de datos y el cálculo
de la dirección de desplazamiento
 Control Unit (Unidad de control): Contiene microcódigo y hardware
paralelo para multiplicar, dividir y calcular rápidamente direcciones efectivas.
 Data Unit: Realiza las operaciones de datos solicitadas por la unidad de
control.
 Protection Test Unit: La unidad de prueba de protección verifica las
violaciones de segmentación bajo el control del microcódigo.
 Segmentation Unit: La unidad de segmentación juega un papel vital en el
microprocesador 80836. Ofrece un mecanismo de protección para proteger
el código o los datos presentes en la memoria de los programas de aplicación.
Brinda protección de 4 niveles a los datos o códigos presentes en la memoria.
A cada información en la memoria se le asigna un nivel de privilegio de PL0
a PL3. Aquí, PL0 tiene la prioridad más alta y PL3 tiene la prioridad más baja.

Supongamos que se necesita acceder a un archivo (ya sea de datos o de


código) almacenado en la memoria en PL0. Entonces solo aquellos
programas que están trabajando en PL0 podrán acceder a ese archivo.
Mientras que otros programas no podrán acceder al mismo. Además, si un
archivo está presente en PL1, los programas de PL0 y PL1 pueden acceder
a él. Como PL0 tiene mayor prioridad que PL1. Entonces, por motivos de
protección, la parte principal del sistema operativo se almacena en PL0
mientras que PL3 contiene los programas de usuario. Brindar protección a
los datos o códigos dentro del sistema es el factor más ventajoso que brindó
por primera vez el microprocesador 80386.

 Paging Unit: La unidad de paginamiento opera solo en modo protegido y


cambia la dirección lineal a una dirección física. Como el programador solo

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

proporciona la dirección virtual y no la dirección física. La unidad de


segmentación controla la acción de la unidad de paginación, ya que la unidad
de segmentación tiene la capacidad de convertir la dirección lógica en
dirección lineal al momento de ejecutar una instrucción. Básicamente, cambia
el mapa de tareas general en páginas y cada página tiene un tamaño de 4K.
Esto permite el manejo de tareas en forma de páginas en lugar de segmentos.

La unidad de paginación admite multitarea. Esto es así porque no se


requiere la memoria física para contener todo el segmento de ninguna tarea.
A pesar de esto, sólo la parte del segmento que se necesita ejecutar
actualmente debe almacenarse en esa memoria cuya dirección física es
calculada por la unidad de paginación. Como resultado, esto reduce el
requisito de memoria y, por lo tanto, libera la memoria para otras tareas. Por
lo tanto, con esto obtenemos una forma efectiva de administrar la memoria
para admitir la multitarea.

3.2.2. El 80386 introduce el concepto de Unidad de Gestión de Memoria


(del inglés Memory Management Unit, MMU). Explique las características
y funcionamiento de dicha unidad dentro de la familia de procesadores
Intel.
a) Concepto de la Unidad de Gestión de Memoria (MMU)
La unidad de administración de memoria (MMU) de una computadora es
el hardware físico que maneja sus operaciones de memoria virtual y
almacenamiento en caché. La MMU generalmente se encuentra dentro
de la unidad central de procesamiento (CPU) de la computadora, pero a
veces opera en un chip integrado (IC) separado. Todas las entradas de
solicitud de datos se envían a la MMU, que a su vez determina si los datos
deben recuperarse del almacenamiento RAM o ROM.
b) Funcionamiento

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

La unidad de manejo de memoria (MMU) consiste en una unidad de


segmentación (similar a la del 80286) y una unidad de paginamiento
(nuevo en este microprocesador).

Entre las funciones de este dispositivo se encuentran la traducción de las


direcciones lógicas (o virtuales) a direcciones físicas (o reales), la
protección de la memoria, el control de caché y, en arquitecturas de
computadoras más simples (especialmente en sistemas de 8 bits), bank
switching.

Cuando la CPU intenta acceder a una dirección de memoria lógica, la


MMU realiza una búsqueda en una memoria caché especial llamada
Buffer de Traducción Adelantada (TLB, Translation Lookaside Buffer),
que mantiene la parte de la tabla de páginas usada hace menos tiempo.

En esta memoria se mantienen "entradas de la tabla de páginas"


(llamadas PTE, por sus siglas en inglés Page Table Entry), donde se
pueden rescatar las direcciones físicas correspondientes a algunas
direcciones lógicas, de forma directa. Cuando la dirección requerida por
la CPU se encuentra en el TLB, su traducción a dirección real o física es
entregada, en lo que se conoce como "acierto en el TLB" (TLB hit).

En otro caso, cuando la dirección buscada no se encuentra en el TLB


(fallo en el TLB), la MMU busca en la tabla de páginas del proceso
utilizando el número de página como entrada a la misma. En la entrada
de la tabla de páginas del proceso se encuentra un bit de presencia, que

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

indica si la página buscada está en memoria principal. Si el bit de


presencia está activado, se carga esta PTE en el TLB y se devuelve la
dirección física. En caso contrario, se informa al sistema operativo de la
situación, mediante un "fallo de página".

Es el sistema operativo el encargado de realizar los ajustes necesarios


(esto es, cargar la página en memoria física) usando uno de los algoritmos
de reemplazo de páginas, para continuar con la ejecución desde la
instrucción que causó el fallo. Un beneficio fundamental de la MMU es la
posibilidad de implementar protección de memoria, evitando que los
programas accedan a porciones de memoria prohibidas. Por ejemplo, se
puede evitar que un programa acceda o modifique sectores de memoria
de otros programas.
La memoria se organiza en uno o más segmentos de longitud variable,
con tamaño máximo de 4 gigabytes. Estos segmentos, como se vio en la
explicación del 80286, tienen atributos asociados, que incluyen su
ubicación, tamaño, tipo (pila, código o datos) y características de
protección.

Entre las funciones de este dispositivo se encuentran la traducción de las


direcciones lógicas (o virtuales) a direcciones físicas (o reales), la
protección de la memoria, el control de caché y, en arquitecturas de
computadoras más simples (especialmente en sistemas de 8 bits), bank
switching.

Características: La unidad de administración de memoria realiza tres


funciones principales:

• Gestión de memoria de hardware


• Gestión de memoria del sistema operativo (SO)
• Gestión de la memoria de la aplicación

La gestión de la memoria de hardware se ocupa de la memoria RAM y la


memoria caché del sistema, la gestión de la memoria del sistema

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

operativo regula los recursos entre los objetos y las estructuras de datos,
y la gestión de la memoria de la aplicación asigna y optimiza la memoria
entre los programas.

La MMU también incluye una sección de memoria que contiene una tabla
que hace coincidir las direcciones virtuales con las direcciones físicas,
denominada buffer de traducción (TLB).

3.2.3. ¿Cuál fue el mayor aporte del microprocesador Intel 80486 DX


respecto a las generaciones de microprocesadores anteriores?

La diferencia principal son que los i486 tienen un conjunto de instrucciones


optimizado, una unidad de coma flotante y un caché unificado integrados en
el propio circuito integrado del microprocesador y una unidad de interfaz de
bus mejorada. Estas mejoras hacen que los i486 sean el doble de rápidos que
un i386 e i387 a la misma frecuencia de reloj.

Este microprocesador es básicamente un 80386 con el agregado de una


unidad de punto flotante compatible con el 80387 y un caché de memoria de
8 KBytes. Por lo tanto los bloques que componen el 80486 son los siguientes:

 Unidad de ejecución: Incluye los registros de uso general de 32 bits,


la unidad lógico-matemática y un barrel shifter de 64 bits. La unidad
de ejecución está mejorada con lo que se necesita un sólo ciclo de
reloj para las instrucciones más frecuentes.
 Unidad de segmentación: Incluye los registros de segmento, los
cachés de información de descriptores y la lógica de protección. No
tiene diferencias con respecto al 80386.
 Unidad de paginación: Es la encargada de traducir las direcciones
lineales (generadas por la unidad anterior) en direcciones físicas.
Incluye el buffer de conversión por búsqueda (TLB). Los últimos
modelos (DX4, algunos DX2) soportan páginas de 4MB aparte de las
de 4KB del 80386.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

 Unidad de caché: La evolución de las memorias hizo que el tiempo


de acceso de las mismas decrecieran lentamente, mientras que la
velocidad de los microprocesadores aumentaba exponencialmente.
Por lo tanto, el acceso a memoria representaba el cuello de botella. La
idea del caché es tener una memoria relativamente pequeña con la
velocidad del microprocesador. La mayoría del código que se ejecuta
lo hace dentro de ciclos, con lo que, si se tiene el ciclo completo dentro
del caché, no sería necesario acceder a la memoria externa. Con los
datos pasa algo similar: también ocurre un efecto de localidad. El
caché se carga rápidamente mediante un proceso conocido como
"ráfaga", con el que se pueden transferir cuatro bytes por ciclo de reloj.
Más abajo se da información más detallada de esta unidad.
 Interfaz con el bus: Incluye los manejadores del bus de direcciones
(con salidas de A31-A2 y BE0# a BE3# (mediante esto último cada
byte del bus de datos se habilita por separado)), bus de datos de 32
bits y bus de control.
 Unidad de instrucciones: Incluye la unidad de prebúsqueda que le
pide los bytes de instrucciones al caché (ambos se comunican
mediante un bus interno de 128 bits), una cola de instrucciones de 32
bytes, la unidad de decodificación, la unidad de control, y la ROM de
control (que indica lo que deben hacer las instrucciones).
 Unidad de punto flotante: Incluye ocho registros de punto flotante de
80 bits y la lógica necesaria para realizar operaciones básicas, raíz
cuadrada y trascendentes de punto flotante. Es tres o cuatro veces
más rápido que un 386DX y 387DX a la misma frecuencia de reloj.
Esta unidad no está incluida en el modelo 486SX.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

3.2.4. Explique las características (tipos y tareas) de los Coprocesadores


Matemáticos o Unidades de Punto Flotante (x87 FPU) de un
microprocesador típico.

El x87 es un subconjunto de coma flotante del conjunto de instrucciones de la


arquitectura x86. Se originó como una extensión del conjunto de instrucciones
del 8086 en la forma de un coprocesador opcional de coma flotante que
trabajó en paralelo con el correspondiente CPU x86. Estos microchips tenían
nombres que terminaban en "87" (8087, 80287, 80387).}

El conjunto de instrucciones x87 incluye instrucciones para operaciones de


coma flotante básicas tales como adición, sustracción y comparación, como
también para operaciones numéricas más complejas, como el cálculo de la
función tangente y su inversa.

• Tareas; el coprocesador matemático es un procesador especial que


sirve como complemento del microprocesador principal.
El coprocesador matemático puede encargarse de operaciones como
la aritmética de punto flotante, gráficos, procesamiento de señales,
procesamiento de cadenas, encriptación, del filtro de Savitzky–Golay
(método para cálculo de derivadas), etc.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

Por lo tanto, el coprocesador no es un procesador de propósito general.


Algunos coprocesadores no pueden buscar instrucciones desde la
memoria, ejecutar instrucciones de control de flujo, hacer operaciones
de entrada/salida, administrar la memoria, entre otras cosas, que sí
pueden hacer los procesadores de propósito general. l coprocesador
depende de un procesador anfitrión o "host" para entregarle
instrucciones al coprocesador. De todas maneras, en algunas
arquitecturas, el coprocesador tiene un funcionamiento más de
propósito general, pero con un limitado rango de funciones y siempre
bajo la supervisión del procesador principal. El uso de coprocesadores
disminuyó debido a la dificultad de integrar este con los nuevos
microprocesadores de altas velocidades. De todas maneras, hay un
resurgimiento de estos, especialmente para aquellos dedicados a los
gráficos, que cada vez son más complejos en los juegos.
• Las entidades que resuelven las operaciones básicas de suma,
producto, cociente y raíz cuadrada han sido diseñadas como módulos
independientes entre sí, con el objeto de permitir la implementación
separada de cada una de ellas. Es posible, por tanto, generar
“bitstreams” diferentes con unos u otros módulos para cargar en la
parte dinámica aquella que se adapte mejor a las necesidades del
algoritmo. Implementación de un control lógico que gestione el
enrutamiento de los datos y que permita obtener operaciones
derivadas de los bloques básicos tales como la resta, la potencia al
cuadrado y la inversa.
• Inclusión de un registro en el que se almacena el último resultado
obtenido para que pueda usarse como operador en la siguiente
operación, con objeto de reducir la cantidad de ciclos de
escrituralectura.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

El modelo funcional de la FPU dispone básicamente de tres entradas


(además de las señales de reloj, inicio y reset), a saber: op_a y op_b que se
corresponden con los operandos expresados en coma flotante de simple
precisión (32 bits) y operación que representa directamente la operación a
realizar (8 bits). La unidad dispone de un registro interno de 32 bits que
memoriza el último resultado hallado. El diseño permite usar este registro en
el caso de que uno de los operandos implicados corresponda al resultado de
la operación anterior, lo que permite ahorrar un ciclo de escritura.

Por otro lado, la FPU dispone de dos salidas donde se indica el resultado de
la operación expresado en coma flotante de simple precisión (32 bits) y una
señal adicional que indica que el cálculo ha concluido y que se encuentra
disponible para ser leído por el microprocesador.

3.2.5. Describa la Arquitectura Interna de un microprocesador PENTIUM


Intel.

El Pentium, último procesador de Intel en el momento de escribirse estas


líneas, se diferencia respecto al 486 en el bus de datos (ahora de 64 bits, lo
que agiliza los accesos a memoria) y en un elevadísimo nivel de optimización
y segmentación que le permite, empleando compiladores optimizados,

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

simultanear en muchos casos la ejecución de dos instrucciones consecutivas.


Posee dos cachés internas, tiene capacidad para predecir el destino de los
saltos y la unidad de coma flotante experimenta elevadas mejoras. Sin
embargo, bajo DOS, un Pentium básico sólo es unas 2 veces más rápido que
un 486 a la misma frecuencia de reloj. Comenzó en 60/90 MHz hasta los
166/200/233 MHz de las últimas versiones (Pentium Pro y MMX), que, junto a
diversos clones de otros fabricantes, mejoran aún más el rendimiento. Todos
los equipos Pentium emplean las técnicas DX, ya que las placas base típicas
corren a 60 MHz. Para hacerse una idea, por unas 200000 pts de 1997 un
equipo Pentium MMX a 233 MHz es cerca de 2000 veces más rápido en
aritmética entera que el IBM PC original de inicios de la década de los 80; en
coma flotante la diferencia aumenta incluso algunos órdenes más de
magnitud. Y a una fracción del coste (un millón de pts de aquel entonces que
equivale a unos 2,5 millones de hoy en día). Aunque no hay que olvidar la
revolución del resto de los componentes: 100 veces más memoria (central y
de vídeo), 200 veces más grande el disco duro... y que un disco duro moderno
transfiere datos 10 veces más deprisa que la memoria de aquel IBM PC
original. Por desgracia, el software no ha mejorado el rendimiento, ni
remotamente, en esa proporción: es la factura pasada por las técnicas de
programación cada vez a un nivel más alto (aunque nadie discute sus
ventajas).

Arquitectura

a) Unidad de enteros superescalar.


El Pentium se basa en un diseño superescalar. Esto significa que en
su interior hay más de una unidad de ejecución dedicadas a realizar
las mismas funciones. En el caso del Pentium tenemos dos unidades
de enteros de 32 bits que operan en paralelo. Ambas constan de una
segmentación de instrucciones de cinco etapas: Prefetch de
instrucciones, Decodificación, Cálculo de la dirección efectiva,
ejecución y escritura de los resultados. Cada una de ellas es capaz

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

de funcionar independientemente de la otra. El resultado es como


existieran dos procesadores del tipo 486 trabajando al mismo tiempo,
por lo que el Pentium podría proporcionar dos resultados enteros por
ciclo de reloj.
Cada unidad de proceso interno tiene su propia unidad
aritméticológica, su circuito de generación de direcciones exclusivo y
un interfaz especifico con la memoria caché de datos. Los resultados
de las operaciones se almacenan en la caché interna y no se
transfieren a la memoria principal a no ser que sea necesario.
Sin embargo, ambas unidades son exactamente iguales. Una de ellas
es más completa que la otra ya que puede ejecutar todo tipo de
instrucciones. La otra sólo realiza operaciones simples y del núcleo
RISC. No puede ejecutar instrucciones de compatibilidad, aquellas
que precisan de la ejecución de un microprograma interno. Este
microcódigo también ha sido mejorado respecto al que incorporan el
486. El bloqueo en la ejecución paralela de instrucciones se realiza
de forma totalmente transparente al software y al usuario
Este bloqueo se produce también cuando existen dependencias entre
los operandos de las instrucciones. Por ejemplo, si una instrucción
realiza una operación que deja el resultado en el registro EDX, la
siguiente si utiliza el registro EDX como uno de los operandos origen
para cualquier otra operación.
De cualquier forma, el Pentium intenta paralelizar al máximo la
ejecución de las instrucciones, siempre que se cumplan todos los
requisitos para garantizar la integridad de los datos. Valores medidos
indican que el procesador Pentium es capaz de ejecutar una media
de 1´3 instrucciones por cada ciclo de reloj, rompiendo, por tanto, la
mítica barrera de conseguir la ejecución de una instrucción en cada
ciclo de reloj.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

b) Funcionamiento del Pipeline.


El prefetcher manda una dirección a la code cache (caché de
instrucciones), la cual comprueba si esta existe. Si está presente, una
línea de información (32 bytes) es mandada a uno de los buffers de
prefetch. Este buffer de prefetch transfiere las instrucciones a la
unidad decodificadora donde son decodificadas. Inicialmente las
instrucciones están decodificadas para determinar si pueden ser
pares. Si lo son, una instrucción irá al “U” pipeline, y la otra ira al “V”
pipeline. Las instrucciones serán pares si no existen dependencias
entre ellas. (Se dice que existe dependencias entre instrucciones
cuando una instrucción deba de completar su ejecución antes de que
la otra comience.) Existe en esta arquitectura un predictor de branch
que va mirando si una instrucción de este tipo se pudiera producir.

Cuando se predice un branch, la dirección de esta instrucción es


demandada por la code cache. Si se encuentra allí, una línea de
código se manda al otro prefetch buffer de tal manera que se impida
ningún retraso cuando la instrucción branch se produzca. Si no se da
ninguna instrucción de este tipo ambos pipelines de instrucciones son
tratados conjuntamente, realizando los prefetchings linealmente. Con
esta arquitectura se pueden entrar y salir dos instrucciones en cada
etapa del pipeline. A esto en inglés se denomina Pairing instrucción,
lo cual permite ejecutar dos instrucciones al mismo tiempo en cada
unidad de ejecución. El pipeline que se utiliza en el Pentium es de
cinco etapas, como lo hacían los procesadores más antiguos de intel,
como el 486. Durante el primer ciclo de reloj un par de instrucciones
realizan el prefetch. en el segundo ciclo de reloj, las dos instrucciones
se tratan en paralelo en cada uno de los “U” o “V” pipelines, mientras
otro par de instrucciones hacen el prefetch. Después de realizar el
fetch de las instrucciones pasan a la etapa de decodificación, tercer
ciclo de reloj. En el último ciclo de reloj las dos instrucciones son

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

ejecutadas. Esto quiere decir que el máximo número de instrucciones


que puede ejecutar el procesador Pentium son dos.
Como he indicado anteriormente existen dos unidades de ejecución
dedicados respectivamente a cada uno de los pipelines. Cada unidad
de ejecución maneja un conjunto de registros, cuando se finaliza el
resultado de un cómputo, la información es escrita en estos registros.
Mientras las unidades de ejecución no terminen de escribir los datos
ninguna otra instrucción se podrá ejecutar.

c) Unidades de memoria cache.


La memoria caché está dividida en dos subsistemas de memoria en
dos subsistemas de memoria caché totalmente independientes.
Ambos son del mismo tamaño, ocho Koctetos. Uno se dedica a
almacenar las instrucciones y el otro, los datos. Así pues, tenemos
dos memorias caché, una para código y otra para datos. Este
esquema acelera las prestaciones y la capacidad de transferencia del
procesador. Por ejemplo, durante la pre búsqueda, las instrucciones
se obtienen de la memoria caché de instrucciones. Si hubiera una
única memoria caché, no podría realizarse un acceso a un dato al
mismo tiempo. Con memorias caché independientes para
instrucciones y datos, ambas operaciones, de búsqueda y acceso a
datos, pueden realizarse simultáneamente.
Ambas están organizadas como memorias asociativas de dos vías,
mucho más eficiente que si fueran de correspondencia directa. El
tamaño de la línea es de 32 octetos, el doble que, en el 486, ya que
el bus externo del Pentium es de 64 bits, el doble que en el 486. De
esta forma, en un acceso de tipo ráfaga se puede llenar una línea
completa de la caché, igual que ocurría con el 486. Los dos buses
independientes que abastecen a la caché interna, desde la unidad de
bus externo, son de 64 bits cada uno.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

Cada caché tiene su propio interfaz con cada una de las unidades de
enteros, por lo que se puede proveer de datos o instrucciones al
mismo tiempo a las dos unidades de ejecución para la realización de
dos operaciones independientes en un mismo ciclo de reloj. El bus
que parte de la caché de datos es de 64 bits. El que conecta la caché
de instrucciones con los registros de pre búsqueda de instrucciones
es de 256bits. Cuando se precisa almacenar instrucciones o datos en
la caché correspondiente y ésta está totalmente ocupada con valores
válidos, se usa el algoritmo ppseudo-LRU para sustituir la línea que
tenga menos probabilidad de ser nuevamente referenciada.
Las cachés son del tipo escritura obligada (“Write back”) por lo que
los resultados de las operaciones o actualizaciones no se transfieren
a la memoria principal, sino que se quedan dentro del procesador
Pentium hasta que sea preciso actualizar aquella. Esta técnica es
mucho más eficiente que la utilizada en el 486, tipo de escritura
inmediata, donde los datos se almacenan en la caché y en la memoria
principal al mismo tiempo.
En el tipo de escritura obligada, las operaciones se terminan antes,
al no existir la fase de escritura en memoria principal. Existen dos
situaciones en las que se producen este tipo de escrituras. Uno de
los casos es cuando hay que eliminar de la caché para introducir otros
nuevos, cuando ésta se halla totalmente llena. Entonces, los datos a
reemplazar tienen que ser escritos en la memoria principal, antes de
nada.
La otra situación se da cuando otro procesador, DMA o maestro de
bus intenta acceder a una posición de memoria cuyo dato está
almacenado en la caché interna del Pentium. Como el dato puede no
puede estar actualizado, este acceso se detiene hasta que el
procesador escribe el dato en la memoria principal Una vez que ésta
se ha actualizado, se permite que continué el acceso del otro maestro
de bus al dato ya actualizado. En sistemas multiprocesador hay que

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

asegurar la consistencia de los datos entre la memoria principal y las


memorias cache de todos los procesadores que integren el sistema
multiprocesador. Para ello, la caché de datos utiliza el protocolo
MESI.
De cualquier modo, el Pentium puede configurarse dinámicamente
para trabajar con esquemas de caché del tipo escritura inmediata, si
es necesario. El uso de una memoria caché de segundo nivel
aumentará significativamente las prestaciones. Para equipos de
sobremesa 128 o 256 Koctetos es un valor óptimo. En el caso de
servidores de redes de área local, 256 o 512 Koctetos es el valor más
recomendable.
d) Unidad de interconexión con el bus.
El procesador Pentium tiene el mismo rango de direccionamiento que
los 386 y 486, esto es debido que también utiliza bus de direcciones
de 64 bits. El subsistema de memoria debe estar ordenado en ocho
grupos de ocho bits cada uno, es decir 64bits, para adecuarse al bus
del procesador.
Si el bus de memoria es de 128 bits, los resultados serán mejores se
la memoria está organizada en dos bancos de 64 bits cada uno, de
forma que un acceso se haga en un banco y el siguiente al otro
banco, para permitir la recuperación de los chips de memoria y
obtener un mejor tiempo de acceso.
Existe una diferencia en el tamaño de la página de memoria con la
que puede trabajar el Pentium. Además del clásico tamaño de página
de 4 Koctetos, el Pentium tiene una posibilidad de trabajar con
tamaños de página de 4Moctetos. Este tamaño tan grande es ideal
en entornos gráficos, adaptadores de vídeo del tipo “Frame Buffer” y
sistemas operativos multitarea. Evita una elevada frecuencia de
cambio de las páginas y, además, hace que disminuya en gran
medida la probabilidad de ausencia en memoria de la página pedida.
Con el uso cada vez mayor de grandes objetos, que ocupan gran

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

cantidad de memoria esta nueva característica eleva el rendimiento


en gran medida. Lo más importante es que estas ventajas resultan
transparentes al software de aplicación.
Al ser la caché interna del tipo escritura obligada, la ocupación del
bus externo por el procesador es mucho menor. Los valores que se
obtienen dependen del tipo de aplicación y el diseño del subsistema
de memoria. Como ejemplo de referencia, para un sistema ideal, sin
estados de espera, la ocupación del bus, es aproximadamente, del
15% cuando se utiliza AUTOCAD sobre dos, un 17% para una
aplicación Unix y un 28% para la hoja de cálculo Excel sobre
Windows.
En cuanto al tipo de ciclos del bus, los valores medios corresponden
a un 36% de pre búsqueda de instrucciones, un 21% de lecturas de
datos, un 36% de escrituras de datos y el 7% restante son escrituras
obligadas de datos. El tipo de ciclo de bus de ráfaga permite cargar
256 bits en la caché de datos de una vez. El bus externo de 64 bits
es capaz de transferir datos entre la memoria y el procesador a
velocidad que pueden llegar a 528 Moctetos por segundo. Esto
significa que, por ejemplo, el contenido completo de un disco fijo de
100Moctetos pasaría por este bus en menos de un quinto de
segundo. Esta velocidad de transferencia es superior en más de tres
veces al ancho de banda del bus de un 486 a 50MHz (160 Moctetos).
El bus del procesador Pentium funciona en un modo llamado
Pipeline. En este modo, se puede comenzar un segundo ciclo de bus
antes de que haya terminado el primero. Con ello, se da más tiempo
al subsistema de memoria para decodificar la dirección del siguiente
acceso, con lo que los chips de memoria pueden ser más lentos y,
por tanto, más baratos.
El uso de un bus local de altas prestaciones, como puede ser el PCI,
permite obtener el máximo rendimiento en aplicaciones intensivas en
gráficos, entrada/salida en disco, accesos a red local, etc. En la

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

siguiente figura se puede ver el diagrama de bloques de un ordenador


Pentium haciendo uso de un bus PCI.
e) Monitor de prestaciones.
Desarrollar aplicaciones es cada vez más complejo y precisa de una
cuidadosa realización para evitar que la mayor parte del tiempo se
pierda en ciertas rutinas o selecciones del código que no son
excesivamente importantes. Para facilitar el trabajo de los
desarrolladores de software, el procesador Pentium incorpora un
monitor de prestaciones y una unidad de depuración software. El
procesador posee una serie de contadores internos y unidades de
rastreo y traza que permiten conocer su estado, el tiempo que se
emplea en la realización de operaciones y las instrucciones que se
ejecutan. Desde el exterior al procesador se puede interactuar con el
procesador con esta unidad vía unos puertos serie accesibles por
unas patillas específicas.
Se puede medir el número de ciclos que el procesador emplea en
operaciones internas que afectan a la lectura y escritura de datos, a
la presencia o ausencia de datos o código en las memorias caché
internas, las interrupciones o la utilización del bus. También es
posible conocer cuánto tiempo el procesador tiene que esperar hasta
que se consigue el control del bus externo. Así, es más fácil optimizar
el diseño del bus de memoria y del propio subsistema de memoria
para conseguir un sistema más rápido.
La unidad de traza detecta cuando se produce cierta condición de
bifurcación o los saltos a subrutinas o si la ejecución se produce en
determinada sección de código o que instrucción ha provocado una
interrupción, etc. Por tanto, es posible detectar los cuellos de botella
donde el sistema se ralentiza o la aplicación pierde una gran parte de
tiempo inútilmente, y optimizarlos para conseguir las mejores
prestaciones y el mejor tiempo de respuesta.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

Los desarrolladores de herramientas de software, como


compiladores, pueden optimizar el código generado para sacar
partido de la arquitectura superescalar y aumentar el paralelismo en
la ejecución de las instrucciones.
f) Unidad de redundancia funcional
Se emplean una serie de técnicas para asegurar la integridad de los
datos. La detección de errores se realiza tanto externamente como
internamente. Cada octeto del bus de datos lleva asociado un bit de
paridad, lo que hace un total de ocho bits de paridad para todo el bus
de datos. Los bits de paridad son comprobados por el procesador en
cada lectura. A su vez, el Pentium genera un bit de paridad por cada
octeto de los 64 bits que componen cada escritura hacia el exterior.
También el bus de direcciones añade un bit de paridad por cada
octeto. Así, hay cuatro bits de paridad para las direcciones que se
generan y comprueban en cada acceso de escritura o lectura,
respectivamente.
Mediante este método, el procesador Pentium es capaz de detectar
si se ha producido un error en el bus de direcciones o en el de datos.
Por tanto, el Pentium, no sólo detecta que el dato leído o escrito es
correcto, sino que también es capaz de saber si la dirección de
memoria es correcta.
Internamente, también se hacen controles de paridad en la cache
interna, en los registros internos y en la memoria ROM que almacena
el microcódigo. Hay otro tipo de recursos que asegura la fiabilidad del
procesador. Siempre, después de un re inicialización, se realiza un
autodiagnóstico interno que comprueba que, al menos, un 70 % de
los dispositivos internos funcionan adecuadamente.
El Pentium implementa un sistema de redundancia funcional de una
forma muy simple. Basta con poner dos procesadores Pentium en el
mismo bus, uno trabajando en el modo Maestro y el otro como
comprobador. Los dos procesadores ejecutan las mismas

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

instrucciones al mismo tiempo. El que actúa como comprobador


chequea cada resultado obtenido por el maestro con el suyo propio.
Si existe discrepancia, se produce una interrupción de máxima
prioridad que detiene el sistema y avisa que los dos procesadores no
están de acuerdo en los resultados de la ejecución del programa.
g) Unidad de predicción de bifurcaciones
El Pentium aumenta prestaciones mediante el empleo de una
pequeña caché especifica de 256 posiciones llamada BTB (“Branch
Target Buffer”). Esta es la encargada de hacer una predicción
dinámica de hacia dónde van a bifurcar las instrucciones de salto
condicional, consultando en la BTB las últimas 256 instrucciones de
ese tipo por las que el flujo de ejecución del código haya pasado.
Cuando una instrucción conduce a un salto, la BTB recuerda dicha
instrucción y la dirección del salto efectuado y predice en qué
dirección se va a producir el salto la próxima vez que se ejecute. Si
la predicción es correcta, la bifurcación se realiza en cero ciclos de
reloj, puesto que ésta ya se realizó, y se siguieron buscando
instrucciones en dicha dirección. Si falta la predicción hay una
penalización de tiempo pues hay que anular todas las operaciones
efectuadas con las instrucciones que seguían al salto, Intel calcula
una tasa de acierto en la predicción del 90%.
h) Unidad de coma flotante
Esta unidad se ha rediseñado totalmente respecto a la que se usa el
486. Sin embargo, mantiene compatibilidad 100% binaria con ella.
Incorpora un cauce segmentado de instrucciones de ocho etapas,
que permite obtener resultados partiendo de instrucciones de coma
flotante en cada ciclo de reloj. Las cuatro primeras etapas son las
mismas que se poseen las unidades de enteros. La quinta y la sexta,
corresponden a la ejecución de las instrucciones de coma flotante. La
séptima etapa se encarga de escribir el resultado en los registros

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

adecuados y la octava realiza el informe de posibles errores que se


hayan producido.
Esta unidad hace uso de nuevos algoritmos que aceleran la ejecución
de las operaciones e incluye elementos de hardware dedicados,
como son: un multiplicador, un sumador y un divisor. Instrucciones de
suma, multiplicación y carga de datos se ejecutan tres veces más
rápido que en un 486.
En cuanto al banco de registros de trabajo, el Pentium, como sus
predecesores, dispone de 16, ocho de los cuales actúan como
registros de propósito general (EAX, EBX, ECX, EDX, ESP, ESI,
EBP, EDI). Al igual que en el 386, 486, dispone de 6 registros de
segmento (CS, DS, EX, FS, GS, SS), un registro puntero de
instrucciones (EIP), y un registro de señalizadores (EFLAGS), con
señalizadores de control (TF, IF, ID, IOPL, NT, RF, VM, AC, VIF y
VIP), y señalizadores de estado (CF, PF, AF, ZF, SF, OF).
3.2.6. ¿Qué es la microarquitectura de un microprocesador?

La microarquitectura, abreviada como µarch o uarch, es el diseño fundamental


de un microprocesador. Incluye las tecnologías utilizadas, los recursos y los
métodos por los cuales el procesador está diseñado físicamente para ejecutar
un conjunto de instrucciones específico (ISA o arquitectura del conjunto de
instrucciones). En pocas palabras, es el diseño lógico de todos los
componentes electrónicos y las rutas de datos presentes en el
microprocesador, establecidos de una manera específica que permite la
ejecución óptima de las instrucciones. En la academia esto se llama
organización informática.

La microarquitectura es la representación lógica de cómo se diseña un


microprocesador para que las interconexiones entre los componentes (la
unidad de control, la unidad lógica aritmética, los registros y otros) interactúen
de manera optimizada. Esto incluye cómo los buses, las rutas de datos entre
componentes, se disponen para dictar las rutas más cortas y las conexiones

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

adecuadas. En los microprocesadores modernos a menudo hay varias capas


para lidiar con la complejidad. La idea básica es diseñar un circuito que pueda
ejecutar comandos y operaciones que se definen en un conjunto de
instrucciones.

Una técnica que se usa actualmente en microarquitectura es la ruta de datos


canalizada. Es una técnica que permite una forma de paralelismo que se
aplica en el procesamiento de datos al permitir que varias instrucciones se
superpongan en la ejecución. Esto se logra al tener múltiples canales de
ejecución que se ejecutan en paralelo o cerca de paralelo.

Las unidades de ejecución también son un aspecto crucial de la


microarquitectura. Las unidades de ejecución realizan las operaciones o
cálculos del procesador. La elección del número de unidades de ejecución, su
latencia y rendimiento es una consideración central del diseño
microarquitectónico. El tamaño, la latencia, el rendimiento y la conectividad
de las memorias dentro del sistema también son decisiones de
microarquitectura.

El diseño microarquitectura presta más atención a las restricciones que a la


capacidad. Una decisión de diseño de microarquitectura afecta directamente
lo que entra en un sistema; presta atención a cuestiones como:

 Actuación
 Área de chips / costo
 Complejidad lógica
 Facilidad de depuración
 Testabilidad
 Facilidad de conectividad
 El consumo de energía
 Fabricabilidad
3.2.7. Realizar una tabla comparativa de las características más
importantes de las Arquitectura IA-32 (Intel Architecture-32) y la
Arquitectura Intel® IA-64 (Instruction Arquitecture-64).

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

HISTORIA
8086, 8088 (1978) Procesadores con registros de 16 bits. Direccionamiento
de 20 bits (~1 MB de memoria). Introducen el concepto de
segmentación y operan en modo real.

Intel 286 (1982) Introducen la operación en modo protegido


Intel 386 (1985) Primer procesador con registros de 32 bits (IA-32) y
direccionamiento de 32 bits. Proporciona además el modo
“virtual 8086” para ejecutar código creado para procesadores
8086/8088.

Permite referenciar hasta 4 GB de memoria, modo


segmentado y modo flat (plano) y segmentación con
páginas de 4 KB.

Intel 486 (1989) Añade capacidad para ejecución de código en paralelo.


Contiene un caché nivel 1 de 8KB, la Unidad de Punto
flotante (X87 FPU) y capacidades para administración.

Intel Pentium (1993) Mejora la ejecución de código en paralelo (dos instrucciones


por ciclo de reloj). Incluye 8 KB de caché nivel 1 para datos
y 8 KB de caché nivel 1 para código.

Permite páginas de 4 MB, e incluye modo de procesador


dual.
Incluye además las extensiones multimedia (MMX).

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

Familia de procesadores Pentium Pro: Superscalar: tres instrucciones por ciclo de


Intel P6 reloj.
Además del caché nivel 1 incluye un caché nivel 2 de 128
KB.

Pentium II Xeon: Permite incluir hasta 2 MB de caché nivel 2

Intel Celeron: Procesadores de baja gama con 128 KB de


caché nivel 2.

Pentium III: Incluye las extensiones SSE (Streaming SMID


extensions), que extienden la funcionalidad MMX

Pentium III Xeon: Introduce mejoras en el desempeño.

3.2.8. Explique las características


a) El Set de Instrucciones de Propósito General (General
purpose) de un equipo actual de la familia Intel 80x86
incluye instrucciones para operaciones aritméticas básicas,
lógicas y de comparación, transferencia de datos, control de
flujo, entre otras. Además, incluye instrucciones para la
gestión de interrupciones, control de paginación de memoria
y protección de memoria.
b) La tecnología y set de instrucciones Intel® MMX™
(Multimedia Extensions) permite realizar operaciones de
procesamiento de multimedia en paralelo y de forma más
eficiente en el procesador. Incluye un conjunto de
instrucciones optimizadas para procesamiento de imagen,
sonido y vídeo.
c) Las extensiones del set de Instrucciones SSE
(Streaming SIMD Extensions) fueron introducidas a partir

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

de la Arquitectura IA-32 y permiten realizar operaciones en


paralelo en datos de punto flotante
y enteros mediante el uso de vectores. Las diferentes versiones de
SSE (SSE. SSE2, SSE3, SSSE3, SSE4 y AESNI) agregan nuevas
instrucciones y mejoras en el rendimiento.
d) Las extensiones del set de instrucciones Intel® AVX (Advanced
Vector Extensions) e Intel® AVX2 extensions agregan nuevas
instrucciones para operaciones de vector y mejoran el rendimiento de
las operaciones en punto flotante.
e) Las extensiones del set de instrucciones SSE de 128 y 256 bits
para realizar operaciones de multiplicación-suma fusionadas FMA
(Fused Multiple-Add) permiten realizar operaciones en paralelo en
vectores de 128 y 256 bits.
f) Las extensiones SMX (Safer Mode Extensions) implementadas
en las arquitecturas IA-64 (Intel 64) e IA-32 permiten aumentar la
seguridad de los sistemas mediante el aislamiento de procesos y la
prevención de ataques.
g) Las extensiones de manejo de máquinas virtuales
VirtualMachine Extensions (VMX) presentes en los modernos
procesadores de la Familia Intel 80x86 permiten la ejecución de
múltiples sistemas operativos en un mismo equipo de manera
eficiente.
h) Las extensiones de manejo transacciones de memoria
Transactional Synchronization Extensions (TSX-NI) permiten
realizar operaciones atómicas de manera más eficiente y segura,
evitando la necesidad de bloquear todo el proceso mientras se realiza
una operación de escritura o lectura en memoria.
3.2.9. Describa las características de 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.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

Hyper-Threading es una tecnología desarrollada por Intel para aumentar el


rendimiento de los procesadores al permitir que un solo procesador físico
actúe como múltiples procesadores lógicos. Esto se logra mediante el uso de
múltiples hilos o hebras en el procesador.

Cuando se utiliza la tecnología Hyper-Threading, cada núcleo físico del


procesador se divide en dos hilos lógicos, lo que permite que el procesador
maneje dos conjuntos de instrucciones simultáneamente. Esto significa que
el sistema operativo y las aplicaciones pueden enviar instrucciones a dos hilos
lógicos simultáneamente, lo que aumenta el rendimiento general del sistema.
Algunas de las características clave de la tecnología Hyper-Threading son:

Aumento del rendimiento: La tecnología Hyper-Threading puede aumentar


significativamente el rendimiento de las aplicaciones que utilizan múltiples
subprocesos, lo que mejora la capacidad de respuesta y la velocidad de
procesamiento del sistema.

Mayor eficiencia energética: Al utilizar múltiples hilos lógicos en lugar de


múltiples núcleos físicos, la tecnología Hyper-Threading permite que los
procesadores funcionen de manera más eficiente en términos de energía.

Compatibilidad con software existente: Los procesadores que utilizan la


tecnología Hyper-Threading son compatibles con software existente sin
necesidad de modificaciones, lo que facilita la integración en sistemas
existentes.

Reducción de la latencia: Al permitir que el procesador maneje dos conjuntos


de instrucciones simultáneamente, la tecnología Hyper-Threading reduce la
latencia del sistema y mejora la capacidad de respuesta.

Facilidad de implementación: La tecnología Hyper-Threading es fácil de


implementar en procesadores existentes, lo que permite que los fabricantes
de hardware puedan actualizar sus productos sin necesidad de hacer cambios
significativos en el diseño.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

La tecnología Hyper-Threading es una característica clave de los


procesadores modernos que permite a un solo procesador físico actuar como
múltiples procesadores lógicos. Esta tecnología mejora el rendimiento del
sistema, la eficiencia energética y la capacidad de respuesta, y es fácil de
implementar en sistemas existentes.

3.2.10. Describa las características de la MICRO ARQUITECTURA INTEL


CORE (Intel® Core™ Microarchitecture).

Entre las características más importantes de la micro arquitectura Intel Core


se incluyen:

 Diseño multi-núcleo: Los procesadores Intel Core tienen varios núcleos


que permiten la ejecución simultánea de varias tareas.
 Hyper-Threading: Los procesadores Intel Core con Hyper-Threading
pueden procesar más tareas simultáneamente al permitir que cada núcleo
procese dos hilos en lugar de uno.
 Cache compartida: Los procesadores Intel Core tienen una caché
compartida que puede ser accedida por todos los núcleos, lo que aumenta
la eficiencia del procesamiento.
 Controlador de memoria integrado: Los procesadores Intel Core tienen
un controlador de memoria integrado que reduce la latencia de acceso a
la memoria y mejora el rendimiento.
 Conjunto de instrucciones mejorado: La micro arquitectura Intel Core
introduce nuevas instrucciones SSE4 y mejoras en las instrucciones
SSE3, lo que permite un procesamiento más rápido de datos multimedia
y gráficos.
 Ahorro de energía: La micro arquitectura Intel Core utiliza una tecnología
de administración de energía avanzada que reduce el consumo de
energía cuando el procesador está inactivo.
 Procesamiento de 64 bits: La micro arquitectura Intel Core es
compatible con el procesamiento de 64 bits, lo que permite a los

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

procesadores manejar grandes cantidades de memoria y realizar cálculos


complejos más rápidamente.
3.2.11. Realizar un breve resumen (CARACTERÍSTICAS, INNOVACIÓN y
APORTE TECNOLÓGICO) de la evolución histórica de la Arquitectura
IA32 e INTEL® 64, Tomando como referencia el siguiente listado:
a) Intel 8086/88: Fue el primer procesador de la familia x86, con una
velocidad de reloj de 4.77 MHz y una arquitectura de 16 bits. Fue utilizado
en la primera PC de IBM, lo que lo convierte en el procesador que inició
la revolución de la informática personal
b) Intel 80286: Fue el primer procesador de la familia x86 en introducir el
modo protegido de memoria, lo que permitió la ejecución de múltiples
tareas y la protección de la memoria del sistema. También introdujo la
memoria caché de nivel 1.
c) Intel 80386: Fue el primer procesador de la familia x86 en introducir una
arquitectura de 32 bits, lo que mejoró significativamente el rendimiento del
procesador y permitió la ejecución de sistemas operativos de 32 bits.
d) Intel 80486-DX: Fue el primer procesador de la familia x86 en incluir una
unidad de coma flotante integrada y en incorporar una caché de nivel 2
en el propio procesador.
e) Intel Pentium, Pentium II, Pentium III, Pentium Pro y Xeon: Estos
procesadores introdujeron mejoras significativas en la velocidad de reloj,
la memoria caché y la arquitectura de pipelining, lo que mejoró
significativamente el rendimiento del procesador y lo hizo más eficiente
en la ejecución de múltiples tareas.
f) The Intel® Pentium® 4 Processor Family (2000-2006): Introdujo una
arquitectura de pipeline más profunda, lo que aumentó la velocidad de
reloj, pero también generó problemas de calentamiento y consumo
energético.
g) The Intel Core™ Solo Processors (2006-2007): Introdujo la
microarquitectura Intel Core, que se caracterizó por un mejor rendimiento
y un menor consumo energético en comparación con el Pentium 4.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

h) The Intel® Dual Core™: Estos procesadores introdujeron la tecnología


de procesamiento multihilo, lo que permitió a un solo procesador físico
actuar como dos procesadores lógicos.
i) The Intel® Xeon® Processor 5100, 5200, 5300, 5400, 7400 Series:
Estos procesadores mejoraron significativamente el rendimiento y la
eficiencia energética en los servidores empresariales, y fueron los
primeros procesadores en introducir la tecnología Intel® QuickAssist.
j) The Intel® Core™ 2 Duo y Core 2 Quad Processor Family(2007):
Estos procesadores introdujeron la microarquitectura Intel Core 2, que
mejoró significativamente el rendimiento y la eficiencia energética en
comparación con la generación anterior.

La evolución histórica de la Arquitectura IA-32 e Intel® 64 se caracteriza


por una serie de mejoras significativas en la velocidad de reloj, la
eficiencia energética, la capacidad de procesamiento y la introducción de
nuevas tecnologías

3.2.12. Describir los componentes de un Microprocesador Multinúcleo


(Multi Core).

Los componentes principales de un microprocesador multinúcleo incluyen:

 Núcleos de procesamiento: son los componentes que realizan las


tareas de procesamiento en paralelo. Cada núcleo tiene su propia unidad
de control, unidad aritmético-lógica (ALU) y registros.
 Caché: cada núcleo tiene su propia memoria caché, que es una memoria
de alta velocidad utilizada para almacenar datos y programas que se
utilizan con frecuencia. La caché permite un acceso más rápido a los
datos y reduce la necesidad de acceder a la memoria principal.
 Controlador de memoria: es el componente que administra el acceso a
la memoria principal. Permite a los núcleos acceder a la memoria de
manera simultánea y coordinar el uso de los recursos del sistema.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

 Interconexión: es el componente que conecta los núcleos, la caché y el


controlador de memoria. Proporciona una vía de comunicación de alta
velocidad entre los componentes del procesador y permite que los
núcleos compartan datos y recursos.
 Controlador de E/S (Entrada/Salida): es el componente que administra
el acceso a los dispositivos de entrada y salida, como el disco duro, el
teclado y el mouse. Permite a los núcleos realizar operaciones de
entrada/salida de manera simultánea.
Cabe destacar que la arquitectura interna y componentes específicos
pueden variar dependiendo del modelo y fabricante del microprocesador
multinúcleo.

En un microprocesador multinúcleo, cada núcleo es una unidad de


procesamiento independiente y autónoma, capaz de ejecutar tareas de
forma simultánea y paralela. Los núcleos comparten el acceso a la
memoria y otros recursos, lo que permite que el sistema aproveche mejor
los recursos y aumente su rendimiento.

El procesador multinúcleo utiliza una técnica llamada "multitasking" o


"multiprocesamiento" para asignar tareas a los distintos núcleos. En
general, el sistema operativo divide las tareas en pequeños fragmentos y
las asigna a los distintos núcleos de forma equilibrada, para que todos los
núcleos trabajen a la vez y de forma coordinada en la ejecución de las
tareas.

Además, los microprocesadores multinúcleo suelen incorporar


tecnologías como el Hyper-Threading, que permite que cada núcleo
pueda procesar dos hilos de ejecución simultáneamente, aumentando
aún más su capacidad de procesamiento.

Los microprocesadores multinúcleo trabajan internamente mediante la


asignación de tareas a cada núcleo, lo que permite su ejecución

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

simultánea y paralela, lo que mejora el rendimiento y la eficiencia del


sistema en su conjunto.
3.2.13. ¿Qué función cumple el IGP (Integrated Graphics Processor)
dentro del microprocesador, y a que se llama APU (Accelerated
Processing Unit)

El IGP (Integrated Graphics Processor) es un componente integrado dentro


del microprocesador que se encarga de procesar las tareas gráficas en una
computadora. A diferencia de las tarjetas gráficas independientes, el IGP
comparte la memoria RAM del sistema y utiliza parte de la capacidad de
procesamiento del CPU para llevar a cabo sus tareas.

Por otro lado, una APU (Accelerated Processing Unit) es un tipo de


microprocesador que combina en un mismo chip el CPU y el IGP. La ventaja
de una APU es que se logra un mejor rendimiento en tareas gráficas, ya que
el IGP está diseñado específicamente para trabajar en conjunto con el CPU
en la misma arquitectura.

Las APUs son comúnmente utilizadas en dispositivos móviles, como tablets y


laptops, donde se busca una combinación eficiente de rendimiento y consumo
de energía. Algunos ejemplos de APUs son la serie A de AMD y la serie Ryzen
de AMD.

3.2.14. Realizar una breve descripción de las características más


importantes en la evolución de las diferentes GENERACIONES de las
familias de MICROPROCESADORES MULTINUCLEO (Multicore) actuales
(contemporáneos).
a) Intel® Core™ i3 Processor Family: Diseñado para ofrecer un buen
rendimiento en aplicaciones de uso diario, este procesador cuenta con
dos o cuatro núcleos y es adecuado para usuarios que utilizan
principalmente aplicaciones de productividad, navegación web y
multimedia. También cuenta con tecnología Intel® Hyper-Threading

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

que permite a cada núcleo procesar dos hilos de datos al mismo


tiempo.
b) Intel® Core™ i5 Processor Family: Este procesador está diseñado
para ofrecer un mejor rendimiento en tareas más intensivas como la
edición de video y juegos de alta gama. Cuenta con cuatro o seis
núcleos y una frecuencia de reloj más alta que la familia i3. También
cuenta con la tecnología Intel® Turbo Boost que aumenta
automáticamente la frecuencia de reloj cuando se necesita un mayor
rendimiento.
c) Intel® Core™ i7 Processor Family: Diseñado para ofrecer un alto
rendimiento en aplicaciones exigentes como la edición de video y los
juegos de última generación, este procesador cuenta con seis a ocho
núcleos y una frecuencia de reloj más alta que la familia i5. También
cuenta con tecnologías avanzadas como la tecnología Intel®
HyperThreading y la tecnología Intel® Turbo Boost Max que selecciona
automáticamente el núcleo más rápido para la carga de trabajo más
intensiva.
d) Intel® Core™ i9 Processor Family: Diseñado para usuarios que
requieren un rendimiento extremo en tareas intensivas como la edición
de video 4K, la realidad virtual y los juegos de alta gama, este
procesador cuenta con ocho a dieciocho núcleos y una frecuencia de
reloj aún más alta que la familia i7. También cuenta con tecnologías
avanzadas como la tecnología Intel® Turbo Boost Max 3.0 que
selecciona automáticamente el núcleo más rápido para la carga de
trabajo más intensiva y la tecnología Intel® Hyper-Threading que
permite a cada núcleo procesar dos hilos de datos al mismo tiempo.

En general, las características más importantes de estas familias de


microprocesadores multinúcleo son la mejora del rendimiento, la
eficiencia energética y el soporte para nuevas tecnologías como la
inteligencia artificial y el aprendizaje profundo.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

3.2.15. Explique las características más importantes y aplicaciones de la


ARQUITECTURA ARM (ADVANCED RISC MACHINE)

Algunas de las características más importantes y aplicaciones de la


arquitectura ARM son las siguientes:
 Eficiencia energética: La arquitectura ARM es conocida por su
eficiencia energética, lo que la hace adecuada para dispositivos
portátiles que requieren una larga duración de batería.
 Diseño modular: La arquitectura ARM se basa en un diseño modular,
lo que significa que los fabricantes pueden personalizar y adaptar los
procesadores ARM para satisfacer las necesidades específicas de sus
dispositivos.
 Soporte de sistemas operativos múltiples: La arquitectura ARM es
compatible con una variedad de sistemas operativos, incluyendo
Android, iOS, Windows y Linux.
 Escalabilidad: La arquitectura ARM se puede escalar fácilmente para
satisfacer las necesidades de dispositivos de diferentes tamaños y
capacidades.
 Bajo costo: La arquitectura ARM es rentable, lo que la hace atractiva
para dispositivos de bajo costo como microcontroladores y dispositivos
de Internet de las cosas (IoT).

Algunas de las aplicaciones de la arquitectura ARM incluyen:

 Dispositivos móviles: La mayoría de los teléfonos inteligentes y


tabletas utilizan procesadores ARM debido a su eficiencia energética y
compatibilidad con sistemas operativos móviles.
 IoT: La arquitectura ARM se utiliza en una variedad de dispositivos de
IoT, como sensores, medidores y cámaras de seguridad.
 Sistemas embebidos: La arquitectura ARM se utiliza en sistemas
embebidos como routers, decodificadores de televisión y consolas de
videojuegos.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

 Servidores: La arquitectura ARM también se está utilizando en


servidores de bajo consumo energético para centros de datos y
aplicaciones en la nube.
3.2.16. Explique las características más importantes de los
microcontroladores usados en las plataformas arduino

Los microcontroladores utilizados en las plataformas Arduino son


componentes esenciales para la creación de prototipos y proyectos
electrónicos. A continuación, se presentan las características más
importantes de algunos de los microcontroladores más utilizados en las
plataformas Arduino:

• ATmega168: es un microcontrolador de 8 bits que se utiliza en la placa


Arduino Diecimila y cuenta con 16KB de memoria flash, 1KB de
memoria SRAM y 512 bytes de memoria EEPROM. Es capaz de
manejar una velocidad de reloj de hasta 20 MHz y cuenta con 23 pines
de entrada/salida.
• ATmega328: es un microcontrolador de 8 bits que se utiliza en la placa
Arduino Uno y cuenta con 32KB de memoria flash, 2KB de memoria
SRAM y 1KB de memoria EEPROM. Es capaz de manejar una
velocidad de reloj de hasta 20 MHz y cuenta con 14 pines digitales de
entrada/salida y 6 pines analógicos.
• ATmega2560: es un microcontrolador de 8 bits que se utiliza en la
placa Arduino Mega y cuenta con 256KB de memoria flash, 8KB de
memoria SRAM y 4KB de memoria EEPROM. Es capaz de manejar
una velocidad de reloj de hasta 16 MHz y cuenta con 54 pines digitales
de entrada/salida y 16 pines analógicos.
• ATmega32U4: es un microcontrolador de 8 bits que se utiliza en la
placa Arduino Leonardo y cuenta con 32KB de memoria flash, 2.5KB
de memoria SRAM y 1KB de memoria EEPROM. Es capaz de manejar
una velocidad de reloj de hasta 16 MHz y cuenta con 20 pines digitales
de entrada/salida y 12 pines analógicos.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

• ATmega2560: un microcontrolador de 8 bits basado en RISC de la


familia AVR de Atmel. Tiene 256 KB de memoria flash y 8 KB de RAM,
y es utilizado en la placa Arduino Mega 2560.
• SAM3X8E: un microcontrolador de 32 bits basado en ARM Cortex-M3
de la familia SAM3 de Atmel. Tiene 512 KB de memoria flash y 96 KB
de RAM, y es utilizado en la placa Arduino Due.
• ESP8266: un microcontrolador de 32 bits basado en Tensilica Xtensa
LX106 de la empresa china Espressif Systems. Tiene 4 MB de memoria
flash y es utilizado en la placa Arduino Uno WiFi Rev2.
• ATSAMD21G18A: un microcontrolador de 32 bits basado en ARM
Cortex-M0+ de la familia SAMD21 de Atmel. Tiene 256 KB de memoria
flash y 32 KB de RAM, y es utilizado en la placa Arduino Zero.

Los microcontroladores utilizados en las plataformas Arduino son capaces de


manejar una amplia variedad de tareas, desde la lectura de sensores hasta el
control de actuadores. Además, su facilidad de programación y su bajo costo
los hacen una opción popular para la creación de prototipos y proyectos
electrónicos.

Estos son solo algunos ejemplos de los microcontroladores utilizados en las


plataformas Arduino. Cada uno tiene sus propias características y
especificaciones, y son seleccionados por sus capacidades y adecuación a
las necesidades del proyecto en cuestión.

3.2.17. Explique que es un Raspberry Pi y las características más


importantes de los MICROCONTROLADORES usados en dichos
Miniordenadores (Ej. microcontrolador RP2040)

Raspberry Pi es un miniordenador de bajo costo desarrollado por la Fundación


Raspberry Pi. Se trata de una placa de computadora con un microcontrolador
y todos los componentes necesarios para funcionar como un ordenador
básico. Estos miniordenadores se utilizan en proyectos de robótica, domótica,

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

sistemas de automatización del hogar, servidores web y multimedia, entre


otros.

El modelo más reciente de Raspberry Pi, el Raspberry Pi 4, utiliza un


microcontrolador Broadcom BCM2711 que cuenta con cuatro núcleos
CortexA72 y una frecuencia de reloj de hasta 1,5 GHz. Este microcontrolador
se basa en la arquitectura ARM y se fabrica utilizando un proceso de 28
nanómetros. Además, el Raspberry Pi 4 incluye entre 1 y 8 GB de memoria
RAM y ofrece conectividad WiFi, Bluetooth y Gigabit Ethernet.

Otro ejemplo es el microcontrolador RP2040, que fue desarrollado


específicamente para su uso en los modelos más recientes de Raspberry Pi.
Este microcontrolador cuenta con dos núcleos Cortex-M0+ y una frecuencia
de reloj de hasta 133 MHz. Además, incluye 264 KB de memoria RAM y 2 MB
de memoria flash para almacenamiento. El RP2040 también ofrece una
amplia variedad de periféricos integrados, incluyendo controladores de E/S,
convertidores analógico-digitales, controladores de temporización y
comunicación por radiofrecuencia.

Estos microcontroladores tienen la capacidad de ejecutar sistemas operativos


completos, incluyendo Raspbian, una versión de Linux optimizada para
Raspberry Pi. También se pueden programar en lenguajes como Python y C,
lo que hace que sean muy versátiles para una amplia variedad de
aplicaciones.

3.2.18. ¿Qué es un ordenador cuántico y cómo funciona?

Un ordenador cuántico es un tipo de ordenador que utiliza la mecánica


cuántica para procesar información. A diferencia de los ordenadores clásicos,
que utilizan bits para almacenar información, los ordenadores cuánticos
utilizan qubits (bits cuánticos) que pueden estar en una superposición de
estados, lo que les permite realizar cálculos de manera exponencialmente
más rápida que los ordenadores clásicos.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

En un ordenador cuántico, los qubits se representan mediante partículas


subatómicas como electrones o átomos, que pueden estar entrelazados entre
sí y tener una correlación cuántica que les permite procesar información de
manera paralela.

Aunque los ordenadores cuánticos todavía son una tecnología en desarrollo,


se espera que en el futuro puedan tener aplicaciones en áreas como la
criptografía, la simulación de sistemas complejos, la optimización de procesos
y la inteligencia artificial.

A diferencia de las computadoras clásicas, que utilizan bits (que pueden estar
en un estado de 0 o 1), los ordenadores cuánticos utilizan qubits (bits
cuánticos), que pueden estar en un estado de 0, 1 o una superposición de
ambos estados.

Esto permite que los ordenadores cuánticos realicen cálculos de manera


exponencialmente más rápida que los ordenadores clásicos para ciertos tipos
de problemas, como la factorización de números grandes o la optimización de
sistemas complejos.

Los ordenadores cuánticos utilizan circuitos cuánticos y algoritmos especiales


diseñados para aprovechar las propiedades cuánticas de los qubits. Los
qubits se manipulan y miden mediante técnicas complejas, como la
interferencia y el entrelazamiento cuántico.

Los ordenadores cuánticos todavía se encuentran en una fase experimental y


no están ampliamente disponibles para su uso general. Actualmente, sólo
algunas empresas y organizaciones tienen acceso a este tipo de tecnología,
y se espera que su uso se amplíe en los próximos años.

4. GLOSARIO
Acceso a la memoria se refiere al proceso de leer o escribir datos en la memoria
de un sistema. El acceso a la memoria se puede realizar mediante una variedad
de técnicas, incluidas la lectura y escritura directa de direcciones de memoria, el

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

uso de registros de acceso a la memoria y la administración de memoria virtual.


Actualización de tabla de páginas es la operación de actualizar la tabla de
páginas en un sistema de administración de memoria virtual para reflejar
cambios en la asignación de memoria.
Bits: En informática y otras disciplinas, unidad mínima de información, que
puede tener solo dos valores (cero o uno).
Bloques de memoria Son regiones contiguas de memoria que se utilizan para
almacenar datos o programas. Los bloques de memoria pueden ser de
diferentes tamaños y se pueden asignar a diferentes procesos o funciones.
Bloques fijos Son bloques de memoria de tamaño fijo que se utilizan en algunos
esquemas de gestión de memoria.
Bus de datos: es el término empleado en la informática para referirse a las
conexiones físicas o canales que permiten la circulación de los datos que genera
o utiliza un sistema informático para operar.
Carga de página se refiere al proceso de mover una página de memoria de
almacenamiento secundario (como un disco) a la memoria principal en un
sistema de administración de memoria virtual.
Ciclo de reloj es técnicamente un pulso sincronizado por un oscilador interno
Clusters Conjunto de computadoras interconectadas para realizar una tarea en
común.
Computadora personal es un tipo de microcomputadora diseñada en principio
para ser utilizada por una sola persona
Concatenación es la operación de unir dos o más objetos en secuencia. En el
contexto de la memoria, la concatenación se refiere a la unión de dos o más
bloques de memoria contiguos para formar un solo bloque más grande. Dato en
memoria se refiere a cualquier información almacenada en la memoria de un
sistema. Los datos en memoria pueden ser variables, constantes, código
ejecutable, estructuras de datos y otros tipos de información.
Dirección base Es la dirección inicial de un segmento de memoria en la que se
carga un programa o un conjunto de datos.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

Dirección física Es la dirección real de una ubicación de memoria en la memoria


física.
Dirección lógica Es la dirección de un segmento de memoria asignado a un
proceso o una función, que se utiliza en el espacio de direcciones virtuales.
Direcciones físicas de memoria Son las direcciones reales de las ubicaciones
de memoria en la memoria física.
Direcciones lógicas de memoria Son las direcciones utilizadas por un proceso
o función en su espacio de direcciones virtuales.
Directorio de páginas es una estructura de datos que se utiliza en la
administración de memoria virtual para organizar las tablas de páginas en un
sistema. El directorio de páginas es un índice que permite al sistema encontrar
rápidamente la tabla de páginas correspondiente para una dirección lógica dada.
Disco es un dispositivo de almacenamiento de datos no volátil utilizado en los
sistemas informáticos para almacenar archivos y datos. Los discos pueden ser
discos duros internos o externos, discos sólidos (SSD) o discos ópticos
(CD/DVD/Blu-Ray).
Ejecución secuencial es aquella en la que una instrucción o acción sigue a otra
en secuencia
Ejecución simultánea permite compartir los recursos de proceso para ejecutar
a la vez dos aplicaciones o dos hebras de la misma aplicación.
Familia Intel 80x86 Es una familia de microprocesadores de arquitectura x86
fabricados por Intel Corporation. Estos procesadores se han utilizado en una
amplia gama de sistemas informáticos, desde PCs hasta servidores y sistemas
embebidos.
Fragmentación de memoria Es un problema en la gestión de la memoria en el
que la memoria disponible está fragmentada en pequeñas piezas de memoria
no contiguas, lo que dificulta la asignación de segmentos de memoria más
grandes.
Gestión de segmentos de memoria Es el proceso de asignar y liberar
segmentos de memoria a procesos o funciones.

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

Hyper-Threading: es una innovación de hardware que permite que en cada


núcleo se ejecute más de un hilo. Más hilos significa que se puede hacer más
trabajo en paralelo.
Instrucción Acción de instruir o instruirse
Interrupción es un evento que interrumpe la ejecución normal de un programa.
En los sistemas informáticos, las interrupciones se utilizan comúnmente para
manejar eventos externos, como la entrada del usuario, las solicitudes de
entrada/salida y las excepciones de hardware.
Memoria principal se refiere a la memoria de acceso aleatorio (RAM) en un
sistema de computadora. La memoria principal es donde se almacenan los
programas y datos que se están utilizando actualmente en un sistema. MIMD
(Múltiple Instruction, Múltiple Data, en español) (múltiples instrucciones,
múltiples datos)
MISD (Multiple Instruction, Single Data) (múltiples instrucciones, un dato)
Número de marco de página Es el número de marco de página correspondiente
a una ubicación de memoria en un esquema de paginación. Número de página:
Es el número de página de una ubicación de memoria en un esquema de
paginación
Paginamiento: Es un esquema de gestión de memoria en el que la memoria se
divide en páginas de tamaño fijo y se asignan a procesos o funciones según sea
necesario.
Pipeline: Una serie de elementos de procesamiento de datos ordenados de tal
modo que la salida de cada uno es la entrada del siguiente, como quien dice una
cadena de montaje, pero en vez de orientada a la manufactura, orientada al
procesamiento de datos e instrucciones.
Procesador gráfico (GPU): es un procesador formado por muchos núcleos más
pequeños y especializados.
Procesador vectorial: es un diseño de CPU capaz de ejecutar operaciones
matemáticas sobre múltiples datos de forma simultánea

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

Procesador: Componente electrónico donde se realizan los procesos lógicos.


Procesamiento de datos: es "la acumulación y manipulación de elementos de
datos para producir información significativa."
Procesos en ejecución: Son los programas o funciones que se están
ejecutando en un momento dado.
Redes de computadoras: es un conjunto de equipos conectados por medio de
cables, señales, ondas o cualquier otro método de transporte de datos, que
comparten información
Registro de segmento de código (CS): Es un registro de la CPU que contiene
la dirección base del segmento de código actual en el que se está ejecutando un
programa.
Registro de segmento de datos (DS): Es un registro de la CPU que contiene
la dirección base del segmento de datos actual que se está utilizando para
almacenar datos.
Registro de segmento de pila (SS) Es un registro de la CPU que contiene la
dirección base del segmento de pila actual que se está utilizando para almacenar
la pila del programa.
Registro de segmento extra (ES) Es un registro de la CPU que se utiliza para
acceder a un segmento adicional de memoria de datos.
Segmentación de memoria Es un esquema de gestión de memoria en el que
se divide la memoria en segmentos lógicos o bloques de diferentes tamaños.
Cada segmento se asigna para una función específica, como el código, los
datos, la pila, etc.
SIMD (Single Instruction/Multiple Data) (Instrucción única/datos múltiples)
SISD (Single Instruction/Single Data) (Instrucción única/Datos únicos) Sistemas
de detección de errores permiten conocer si hubo o no un error en la cadena
de datos recibidos, pero no están en condiciones de subsanar dichos errores.
Sistemas multiprocesador El multiprocesamiento simétrico se entiende como
los sistemas que incluyen más de un procesador. Son capaces de ejecutar

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

diversos procesos de forma simultánea y, además, comparten una misma


memoria para el cumplimiento de sus funciones.
Superes calar: es el término utilizado para designar un tipo de microarquitectura
de procesador capaz de ejecutar más de una instrucción por ciclo de reloj. Tabla
de páginas es una estructura de datos que se utiliza en la administración de
memoria virtual para traducir direcciones lógicas de memoria a direcciones
físicas de memoria. La tabla de páginas mantiene un registro de qué páginas de
memoria física están asignadas a cada página de memoria lógica.
Tamaño máximo Es el tamaño máximo de un segmento de memoria que puede
ser asignado a un proceso o una función.
Taxonomía de Flynn es un computador que explota varios flujos de datos dentro
de un único flujo de instrucciones para realizar operaciones que pueden ser
paralelizadas de manera natural
Taxonomia: Ciencia que trata de los principios, métodos y fines de la
clasificación, generalmente científica
Técnica de acceso a la memoria se refiere a los métodos utilizados para leer y
escribir datos en la memoria de un sistema. Algunas técnicas comunes incluyen
el acceso directo a la memoria, la utilización de registros de acceso a la memoria
y la administración de memoria virtual.
Testabilidad: es un concepto que nace con ASIC (industria de semiconductores)
como un proceso que incorpora reglas y técnicas en el diseño de un producto
para facilitar su testeo.
Unidad de administración de memoria Es una unidad de hardware o software
que se encarga de gestionar la memoria del sistema.
Unidad de caché: sistema especial de almacenamiento de alta velocidad.
Puede ser tanto un área reservada de la memoria principal como un dispositivo
de almacenamiento de alta velocidad independiente.

5. BIBLIOGRAFIA

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

https://es.scribd.com/document/489392673/CIC500-Trabajo-Investigacion-
T1Introduccion-T2-Optimizacion-del-rendimiento-del-sistema-CPU-II-2020
http://compuarqui.blogspot.com/2015/02/cpu.html
https://so2014a.wordpress.com/2014/01/22/arquitecturas-del-computadorcuadros-
comparativos/
https://rgbysystem.wixsite.com/arquipc/single-post/2015/09/21/cuadrocomparativo
https://docplayer.es/9082739-Arquitecturas-cisc-y-risc.html
https://lsi.vc.ehu.eus/pablogn/docencia/manuales/SO/TemasSOuJaen/ADMINI
STRACIONDELAMEMORIA/5.3SegmentacionPaginada.htm
https://lsi.vc.ehu.eus/pablogn/docencia/manuales/SO/TemasSOuJaen/MEMO
RIAVIRTUAL/3Paginacionpordemanda.htm
https://prezi.com/vvezt07zxsmr/arquitectura-de-la-cpuoptimizacion-delrendimiento-
del-sistema/
https://dokumen.tips/download/link/procesamiento-paralelopptx.html
https://www.slideshare.net/JDavidMartinez1/arquitectura-de-loscomputadores-
34415009
https://es.wikipedia.org/wiki/Arquitectura_en_pipeline_%28inform%C3%A1tica
%29
https://es.wikipedia.org/wiki/Superescalar
https://eprints.ucm.es/id/eprint/9681/1/T31090.pdf
http://ocw.uv.es/ingenieria-y-arquitectura/sistemas-electronicos-para-
eltratamiento-de-la-informacion/seti_materiales/seti7_ocw.pdf
https://www.monografias.com/trabajos102/conceptos-arquitecturacomputadoras-
resumido-william-stallings/conceptos-arquitecturacomputadoras-resumido-william-
stallings2 https://es.scribd.com/document/637697400/CAC
https://es.wikipedia.org/wiki/Unidad_central_de_procesamiento
http://www.fdi.ucm.es/profesor/jjruz/ec-
is/temas/Tema%202Arquitectura%20del%20procesador.pdf
https://www.intel.la/content/dam/www/public/lar/xl/es/documents/datasheets/10 th-
gen-core-families-datasheet-vol-1-datasheet.pdf
https://axokoi.com/2020/05/06/big-endian-y-little-endian/
https://elehttps://www.saber.cic.ipn.mx/SABERv3/Repositorios/webVerArchivo/

ARQUITECTURA DE COMPUTADORA
UNIVERSIDAD AUTONOMA DEL BENI “JOSE BALLIVIAN”
FACULTAD DE INGENIER IA Y TECNOLOGIA

26112/2 https://es.wikipedia.org/wiki/Unidad_de_gestión_de_memoria

ctronicsdesk.com/80386-microprocessor.html

http://diccionario.sensagent.com/Intel%2080486/es-es/

https://es.wikipedia.org/wiki/Intel_80486

https://es.wikipedia.org/wiki/X87

file:///C:/Users/Jordi/Downloads/ArtC3ADculo20JCRA2009-V2.pdf

https://html.rincondelvago.com/procesadores-intel-pentium.html

https://es.theastrologypage.com/microarchitecture

ARQUITECTURA DE COMPUTADORA

También podría gustarte