Está en la página 1de 193

Estructura y Programación de Computadoras (EPC)

Unidad I
Estructura de la máquina

Profesor: Gustavo Camacho Palacios


acm: Association for Computing Machinery

http://www.acm.org/

Ciencias Informática Ing. en Computación TIC

Estructura y Programación de Computadoras gcp-2014-2


Estructura y Programación de Computadoras

Unidad I: Estructura de la máquina


Objetivo: El alumno explicará los conceptos que le
permitan analizar funcionalmente los distintos elementos,
tanto de software como de hardware que constituyen una
computadora y su repercusión en las características de
operación del sistema.

gcp-2014-2
Estructura y Programación de Computadoras

Unidad I: Estructura de la máquina


1. Bloques funcionales de una computadora: Memoria, procesador
central, dispositivos de entrada/salida.
2. Bloques funcionales de un procesador: Unidad de control, Unidad
Aritmética y Lógica, Decodificador, Registro de direcciones,
Registro de datos, Apuntador a la pila, Contador del programa,
Registro de instrucción, Registro de banderas, Registros de
propósito general y Mecanismo de interrupción.
3. Funcionamiento de una computadora: Ciclos de obtención,
interpretación y ejecución de una instrucción.
4. Esquemas de direccionamiento: Máquinas de '3+1', '3', '2', '1' y '0'
direcciones.
5. Modos de direccionamiento inmediato, directo, indirecto, registro,
relativo al PC e indexado.
gcp-2014-2
Unidad I: Estructura de la máquina

¿Qué es una computadora?


(Computadora u ordenador)

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
¿Qué es una computadora?

Una computadora o computador (del inglés computer y este


del latín computere: calcular), también se conoce como
ordenador (del francés ordinateur y este del latín ordinator:
aquel que ordena y establece)

• Calcular
• Ordenar

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
¿Qué es una computadora?

• “En un sentido general, computadora es todo aparato o máquina


destinada a procesar información, entendiéndose por proceso a las
sucesivas fases, manipulaciones o transformaciones que sufre la
información para resolver un problema determinado.” Anasagasti (2004).

• “En su forma más simple, una computadora contemporánea es una


calculadora electrónica veloz, que acepta información digitalizada de
‘entrada’, la procesa de acuerdo con un ‘programa’ almacenado en su
‘memoria’ y produce la información resultante de ‘salida’.” Hamacher
(1988).

• “Una computadora digital consiste en un sistema de procesadores


interconectados, memorias y dispositivos de entrada/salida.” Tanenbaum
(2000).

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

¿Qué es una computadora digital actual?

Es una máquina o dispositivo electrónico que


procesa información digitalizada binaria a través de
un programa almacenado en su memoria. EPC
(2014).

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

Tipos de computadoras
Desde el punto de vista de la forma en que se representa la
información en la computadora, existen dos formas muy
diferentes, que da lugar a dos clases de computadoras:

• Las computadoras digitales


• Las computadoras analógicas

En las computadoras digitales la información está representada


mediante un sistema digital de tipo binario, esto es, un sistema
que sólo reconoce dos estados distintos, que suelen denominare
“1” y “0”. Cada uno de los dígitos de esta representación binaria
recibe el nombre de bit y puede tomar los valores de “1” o “0”.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
Tipos de computadoras
• Toda la información que maneja la computadora es de forma binaria.
Tanto datos como direcciones.
• ¿Cómo distingue la computadora entre un dato y una dirección?
• ¿Cómo distingue la computadora entre un dato que es numérico y dato
que es carácter (letras).
• Por ejemplo, si se tiene este dato en forma binaria:

01100001

Puede representar una dirección de memoria 61xH (hexadecimal)


Puede representar un número 97 (en decimal)
Puede representar una letra “a” (ASCII)

• ¿Por qué la necesidad de convertirlos o utilizar distintos sistemas


numéricos?
Estructura y Programación de Computadoras gcp-2014-2
Unidad I: Estructura de la máquina

En computación se utilizan modelos por capas


para explicar y analizar diversos sistemas.

Por ejemplo:

• Modelo OSI
• Modelo TCP/IP
• Sistema Operativo
• La computadora

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

Hay que hacer la distinción de los siguientes términos:

• Arquitectura,
• Organización,
• Estructura,
• Funcionamiento.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

Computadora

Transistor Compuertas

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

Computadora

Microcomputadoras

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

¿Por qué estudiar la organización y la


arquitectura de las computadoras?

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

¿Por qué estudiar la organización y arquitectura de las computadoras?

• La computadora (dispositivo físico) se encuentra en el


corazón de los programas académicos relacionados a la
computación. Sin ella, la mayoría de las disciplinas de la
computación hoy en día sería una rama de las matemáticas
teóricas.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

¿Por qué estudiar la organización y arquitectura de las computadoras?

• Para ser un profesional en cualquier campo de la


computación hoy en día, uno no debe considerar a la
computadora como una caja negra que ejecuta programas
por arte de magia.
• Todos los estudiantes de Ingeniería en Computación deben
en cierta medida, analizar y comprender los componentes
funcionales de un sistema computacional, sus características,
su rendimiento y sus interacciones.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

¿Por qué estudiar la organización y arquitectura de las computadoras?

• También sus implicaciones prácticas: medidas de


rendimiento.

• Los estudiantes necesitan entender la organización y


arquitectura de la computadora con el fin de estructurar un
programa para que se ejecute de manera más eficiente en
una máquina real.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
Otras razones:
1. En muchas ocasiones (que debería ser en todas), a un ingeniero en
computación se le pide seleccionar el quipo de cómputo con la mejor
relación precio/rendimiento para utilizarlo en una empresa o proyecto.

Para poder dar su opinión el ingeniero debe conocer la relación que hay
entre los diversos componentes del equipo de cómputo: CPU, memoria,
discos, dispositivos de I/O, conexiones de red, etc., además de otras
variables como: número de usuarios (totales y concurrentes), las
aplicaciones que se van a correr en el equipo (Bases de datos, Servicios
Web, Transaccional, etc.).

Conocer las implicaciones de gastar más en distintas alternativas como un


caché grande o una velocidad de reloj mayor, es esencial para tomar esta
decisión.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
Otras razones:
2. Es necesario conocer que existen una gran diversidad de CPU para distintos sistemas de
cómputo, que van desde:

Teléfonos inteligentes, tabletas, microcomputadoras (Raspberry Pi, Gooseberry, etc.) y


portátiles. Actualmente utilizan procesadores ARM con S.O. Android ó iOS, principalmente.

Portátiles (ultrabooks, netbooks, etc.) y PC de escritorio: Actualmente utilizan procesadores


x86: Intel o AMD y con S.O. Windows, Mac OS ó Linux, principalmente.

Estaciones de Trabajo y Servidores: Oracle/SUN-Enterprise-Series-UltaSparc-Solaris, HP-


Superdome-PA-Risc-HP-UX, IBM-POWER-AIX, SGI-MIPS-IRIX/SGI-Intel-Xeon-Linux.
Procesadores RISC principalmente (propietarios) y CISC (Intel - Xeon e Itanium, AMD –
Opteron).

Mainframe: IBM-Z-series, Unisys-ClearPath, HP-NonStop, Fujitsu/Siemens, Hitachi, NEC.


Utilizan procesadores propietarios, S.O. propietarios o una variante de Linux.

Super Computadoras: Cray, anteriormente utilizaba procesadores vectoriales y S.O. UNICOS


(Unix), hoy en día muchas utilizan procesadores x86 (Intel-Xeon) y S.O. - Linux.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
www.top500.org - noviembre 2013

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
www.top500.org

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
www.top500.org

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
www.top500.org

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
www.top500.org
The ShenWei series of microprocessors was developed primarily for
the use of the military of the People's Republic of China. The
original microarchitecture is believed to be inspired by DEC Alpha.

ShenWei SW-3

• Third generation, 2010


• 16-core, 64-bit RISC
• 975–1200 MHz
• 65 nm process
• 140.8 GFLOPS @ 1.1 GHz
• Max memory capacity: 16 GB
• Peak memory bandwidth: 68 GB/s
• Quad-channel 128-bit DDR3
Estructura y Programación de Computadoras gcp-2014-2
Unidad I: Estructura de la máquina
www.top500.org – Junio 2013

MPP o procesamiento paralelo masivo


(Massively Parallel Processing), cada
CPU tiene su memoria.

Cluster de SMP

SMP o multiprocesamiento
simétrico (Symmetric
Multiprocessing), todas las CPU
acceden a la misma memoria.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
www.top500.org – Junio 2013

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
www.top500.org – Junio 2013

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
www.top500.org – Junio 2013

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
Otras razones:

3. Los conceptos utilizados en la organización y arquitectura


de computadoras tienen aplicación en otras materias.

En particular, la forma en la que la computadora ofrece un


soporte organizacional y arquitectural a los lenguajes de
programación y funciones en principio propias del
sistema operativo, refuerza los conceptos de estas áreas.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
Otras razones:
Sistemas Operativos
Lenguajes
Uso personal (PC):
Windows, Mac OS X,
Linux

Uso móvil:
Android, iOS, FireFox OS

Empresarial:
Unix: Solaris,
HP-UX, AIX, IRIX,
Linux.
Z OS.

Super cómputo:
Unix/Linux
Estructura y Programación de Computadoras gcp-2014-2
Unidad I: Estructura de la máquina
Otras razones:
Lenguajes Sistemas Operativos
Uso personal (PC):
Windows, Mac OS X

Uso móvil:
Android, iOS

Empresarial:
Unix: Solaris,
HP-UX, AIX, IRIX,
Linux.
Z OS.

Super cómputo:
Unix: Linux

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

Organización, Arquitectura y
Estructura de una Computadora

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora
Arquitectura – el qué puede hacer la computadora
La arquitectura de una computadora se refiere a los atributos de un sistema
que son visibles a un programador, o para decirlo de otra manera, aquellos
atributos que tienen un impacto directo en la ejecución lógica de un programa.
Arquitectura:
POWER de IBM
Arquitectura:
SPARC de
SUN/ORACLE

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora
Organización – el cómo lo hace la computadora
La organización de una computadora se refiere a las unidades funcionales y sus
interconexiones, que dan lugar a especificaciones arquitectónicas; conjunto de
instrucciones, número de bits para representar tipos de datos, mecanismos de E/S y
técnicas de direccionamiento de memoria.

Entre los atributos de organización se incluyen aquellos detalles de hardware


transparentes al programador, tales como señales de control, interfaces entre el
computador y los periféricos y la tecnología de la memoria usada.

Netra SPARC SPARC Enterprise SPARC T- SPARC


T-Series Servers M-Series Servers Series Servers SuperCluster T4-4
Estructura y Programación de Computadoras gcp-2014-2
Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora
Entre los ejemplos de atributos arquitectónicos se encuentran el conjunto de
instrucciones, el número de bits usados para representar varios tipos de datos
(por ejemplo, números, caracteres), mecanismos de E/S y técnicas para
direccionamiento de memoria.

Ejemplo en el diseño arquitectónico de una computadora es si está tendrá la


instrucción de multiplicar.

Una cuestión de organización es si esa instrucción será implementada por


una unidad especializada en multiplicar o por un mecanismo que haga un uso
iterativo de la unidad de suma del sistema.

La decisión de organización puede estar basada en la frecuencia prevista del


uso de la instrucción de multiplicar, la velocidad relativa de las dos
aproximaciones y el costo y el tamaño físico de una unidad especializada en
multiplicar.
Estructura y Programación de Computadoras gcp-2014-2
Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora
Ejemplo:
IBM definió la arquitectura de su IBM-PC y a partir de sus especificaciones de
desarrollaron diferentes organizaciones de computadoras compatibles con esta
arquitectura.
La organización de una computadora debe ser diseñada para implementar las
especificaciones de una arquitectura particular, un estudio exhaustivo de la
organización requiere también un análisis detallado de la arquitectura.

1981

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora

1973: XEROX PALO ALTO 1984: Macintosh

1973

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora

La mejor presentación de la computación


se dio en diciembre de 1968 por Douglas
Engelbarty es conocida como la madre de
todas las presentaciones.

http://www.1968demo.org/

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora

En otoño de 1968, en una conferencia de expertos en


informática, Doug Engelbart hizo una presentación que
duró 90 minutos. Además de hacer la primera demostración
pública del ratón, incluyó una conexión en pantalla con su
centro de investigación, es decir, fue la primera vídeo-
conferencia de la historia y es recordada con el título de «la
madre de todas las demos».

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora

Después de 43 años, algunas de esas novedades que Engelbart


presentaba esa mañana del 68 seguimos utilizándolas, más populares
que nunca:

• El ratón: Engelbart aprovechó la demostración para dar a conocer


también un nuevo cacharro que permitía moverse libremente por la
interfaz a través de un cursor (que como se puede ver en la
presentación era tan sólo un diminuto punto).
• Copiar/Pegar: una funcionalidad que utilizamos decenas de veces al
día.
• El concepto hyperword: que permite interactuar no sólo con los
enlaces, sino también con las palabras.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora

Estructura y funcionamiento

Una computadora es un sistema complejo; las computadoras


de hoy en día contienen millones de componentes
electrónicos básicos. ¿Cómo podríamos describirlos
claramente? La clave está en reconocer la naturaleza jerárquica
de la mayoría de los sistemas complejos, incluyendo la
computadora. Un sistema jerárquico es un conjunto de
subsistemas interrelacionados cada uno de los cuales, a su
vez, se organiza en una estructura jerárquica hasta que se
alcanza el nivel más bajo del subsistema elemental.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora
Estructura y funcionamiento
La naturaleza jerárquica de los sistemas complejos es esencial tanto para
su diseño como para su descripción. El diseñador necesita tratar
solamente con un nivel particular del sistema a la vez. En cada nivel el
sistema consta de un conjunto de componentes y sus interrelaciones. El
comportamiento en cada nivel depende solo de una característica
abstracta y simplificada del sistema que hay en el siguiente nivel más
bajo. De cada nivel al diseñador le importa la estructura y el
funcionamiento:
Estructura: el modo en que los componentes están interrelacionados.
Funcionamiento: la operación de cada componente individual como
parte de la estructura.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora

Familia de computadoras

• Se dice que un conjunto de sistemas de computadoras forma una


familia cuando todas ellos tienen la misma arquitectura y diferentes
estructuras.

• El concepto diferenciado entre Arquitectura y Estructura de una


computadora surge en los años 60 con el lanzamiento al mercado de la
familia IBM 360.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora
Familia de computadoras
• Cada estructura tiene una relación rendimiento/costo diferente.
Generalmente las gamas altas de la familia tienen mayor rendimiento y
costo.
• Con la familia de computadores surge el concepto de
compatibilidad.

Un programa escrito para un modelo se puede ejecutar en otro


modelo de la serie con la única diferencia del tiempo de ejecución.
La compatibilidad entre diferentes miembros de la familia es
ascendente. Es decir funciona con programas escritos en una gama
inferior que se ejecutan en una superior. Lo contrario no siempre
es cierto.
Estructura y Programación de Computadoras gcp-2014-2
Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora

Las características de una familia son:

• Repertorio de instrucciones similar o idéntico


• Velocidad en incremento
• Nº de puertos I/O en incremento
• Tamaño de la memoria creciente
• Costo creciente

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora

La arquitectura puede sobrevivir muchos años, pero su


organización cambia con la evolución de la tecnología.

Generalmente es el procesador el que marca el cambio de la


organización o estructura de la computadora, por ejemplo en
los procesadores Intel para PC, con el 8088, 8086, 286, 386,
486, Pentium, PentiumX, Core, Core2, Core i3, Core i5, Core
i7, etc.

Sin embargo desde las PC que usaban el 8088 hasta las


actuales Core i7 mantienen la misma arquitectura.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
SPARC microprocessor specifications
Modelo Frecuencia Versión de Año Cores * Threads Process Transistores Die size IO Pins Power Voltaje L1 Dcache L1 Icache L2 Cache L3 Cache
[MHz] la Arquitectura Per Core = Total [µm] [millones] [mm²] [W] [V] [k] [k] [k] [k]
Threads
macro
microSPARC I 40–50 V8 1992 1*1=1 0.8 0.8 225? 288 2.5 5 2 4 nada nada
SuperSPARC I 33–60 V8 1992 1*1=1 0.8 3.1 -- 293 14.3 5 16 20 0-2048 nada
HyperSPARC A 40–90 V8 1993 1*1=1 0.5 1.5 -- -- -- 5? 0 8 128-256 nada
microSPARC II 60–125 V8 1994 1*1=1 0.5 2.3 233 321 5 3.3 8 16 nada nada
HyperSPARC B 90–125 V8 1994 1*1=1 0.4 1.5 -- -- -- 3.3 0 8 128-256 nada
SuperSPARC II 75–90 V8 1994 1*1=1 0.8 3.1 299 -- 16 -- 16 20 1024-2048 nada
HyperSPARC C 125–166 V8 1995 1*1=1 0.35 1.5 -- -- -- 3.3 0 8 512-1024 nada
TurboSPARC 160–180 V8 1995 1*1=1 0.35 3.0 132 416 7 3.5 16 16 512 nada
UltraSPARC I (Spitfire) 143–167 V9 1995 1*1=1 0.47 5.2 315 521 30 @167 MHz 3.3 16 16 512-1024 nada
UltraSPARC I (Hornet) 200 V9 1998 1*1=1 0.42 5.2 265 521 -- 3.3 16 16 512-1024 nada
HyperSPARC D 180–200 V8 1996 1*1=1 0.35 1.7 -- -- -- 3.3 16 16 512 nada
UltraSPARC IIs (Blackbird) 250–400 V9 1997 1*1=1 0.35 5.4 149 521 25 @250 MHz 2.5 16 16 1024 or 4096 nada

UltraSPARC IIs (Sapphire-Black) 360–480 V9 1999 1*1=1 0.25 5.4 126 521 21 @400 MHz 1.9 16 16 1024–8192 nada

UltraSPARC IIi (Sabre) 270–360 V9 1997 1*1=1 0.35 5.4 156 587 21 1.9 16 16 256–2048 nada

UltraSPARC IIi (Sapphire-Red) 333–480 V9 1998 1*1=1 0.25 5.4 -- 587 21 @440 MHz 1.9 16 16 2048 nada
13 max
UltraSPARC IIe (Hummingbird) 400–600 V9 2000 1*1=1 0.18 Al -- -- 370 1.5-1.7 16 16 256 nada
@500 MHz
UltraSPARC IIi (IIe+) 550–650 V9 2002 1*1=1 0.18 Cu -- -- 370 17.6 1.7 16 16 512 nada
UltraSPARC III 600 V9 2001 1*1=1 0.18 Al 29 330 1368 53 1.6 64 32 8192 nada
UltraSPARC III 750–900 V9 2001 1*1=1 0.13 Al 29 -- 1368 -- 1.6 64 32 8192 nada
UltraSPARC IIIcu 1002–1200 V9 2001 1*1=1 0.13 Cu 29 -- 1368 -- 1.6 64 32 8192 nada
UltraSPARC IIIi 1064–1593 V9 2003 1*1=1 0.13 87.5 206 959 52 1.3 64 32 1024 nada
UltraSPARC IV 1050–1350 V9 2004 1*2=2 0.13 66 356 1368 108 1.35 64 32 16384 nada
UltraSPARC IV+ 1500 V9 2005 1*2=2 0.09 295 336 1368 90 1.1 64 64 2048 32768
UltraSPARC T1 1000–1200 V9 / UA 2005 2005 4*8=32 0.09 300 380 1933 72 1.3 8 16 3072 nada
SPARC64 V (Zeus) 1350-2160 V9 2004 1*2=2 0.13 191 290 269 40 1.2 128 128 2048 nada
SPARC64 VI (Olympus) 2150-2400 V9 2007 2*2=4 0,09 540 422 -- 120 -- 128 128 6144 nada
SPARC64 VII 2700 V9 2008 4*2=8 -- -- -- -- -- -- 128 128 6144 nada

Arquitectura SPARC – SUN/ORACLE: Todas utilizan el sistema operativo Solaris

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

90’s

2000’s

Actual
generación
Que distingue a estos equipos, además de su alto nivel
de cómputo: Alta disponibilidad y tolerante a fallas
Servidores SUN/Oracle con procesadores SPARC. Todas utilizan el sistema operativo Solaris.
Estructura y Programación de Computadoras gcp-2014-2
Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora

Descripción y análisis de una computadora

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora

En términos de descripción y análisis de una computadora,


tenemos dos opciones:

1. Empezar por lo más bajo y construir una descripción


completa (iniciando con los transistores) o
2. Comenzar con una visión desde arriba y descomponer el
sistema en subpartes.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora

La experiencia a partir de muchos campos nos ha enseñado


que la descripción de arriba abajo (top-down) es la más clara y
efectiva.

Es decir la computadora se describe de arriba hacia abajo,


comenzando con los componentes principales del sistema,
describiendo su estructura y funcionamiento, y se sigue así
sucesivamente hacia capas más bajas de la jerarquía.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora
Funcionamiento

Tanto la estructura como el funcionamiento de una computadora son


en esencia sencillos. La figura 1 señala las funciones básicas que una
computadora puede llevar a cabo.

En términos generales hay cuatro funciones básicas:

1. Procesamiento de datos
2. Almacenamiento de datos
3. Transferencias de datos
4. Control

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora

Funcionamiento

La computadora, por supuesto, tiene que ser capaz de procesar datos.


Los datos de I/O pueden adoptar una gran variedad de formas, y el
rango de los requisitos de procesado es amplio.

Sin embargo veremos que hay solo unos pocos métodos o tipos
fundamentales de procesado de datos y sólo una forma de representar
los datos en el interior de la computadora.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora

Convertir las señales de I/O


a un formato digital binario.

Algún dispositivo de
memoria.
Figura 1. Una visión funcional de una computadora gcp-2014-2
Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora

A este nivel general de discusión, el número de operaciones


posibles que pueden ser realizadas es pequeño.

Las siguientes figuras se muestran los cuatro posibles tipos


de operaciones.

Figura 1. Una visión funcional de una computadora gcp-2014-2


Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora

La computadora puede funcionar


como un dispositivo de
transferencia de datos (figura
2a), simplemente transfiriendo
datos de un periférico o línea de
comunicación a otro.

Figura 2.a.

Figura 2. gcp-2014-2
Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora

También pueden funcionar como un


dispositivo de almacenamiento
de datos (figura 2b), con datos
transferidos desde un entorno
externo al almacén de datos de la
computadora (leer) y viceversa
(escribir).

Figura 2.b.

Figura 2. gcp-2014-2
Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora
Los dos diagramas siguientes muestran operaciones que implican
procesamiento de datos, o bien almacenado (figura 2c) o en
tránsito entre el almacén y el entorno externo (figura 2d).

Figura 2.c. Figura 2.d.


Figura 2. gcp-2014-2
Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora
Estructura
La figura 3 es la representación más sencilla posible de una computadora. La
computadora es una entidad que interactúa de alguna manera con su entorno.
En general, todas sus conexiones con el entorno pueden ser clasificadas como
dispositivos periféricos o líneas de comunicación.

Figura 3. gcp-2014-2
Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora

Estructura
La computadora, además tiene una estructura interna (figura 4). En
donde hay cuatro componentes estructurales principales:

1. Unidad Central de Procesamiento (CPU, Central Processing


Unit): controla el funcionamiento de la computadora y lleva a cabo
sus funciones de procesamiento de datos. Frecuentemente se le
llama simplemente procesador.
2. Memoria principal: almacena datos.
3. E/S: transfiere datos entre el computador y el control externo.
4. Sistema de interconexión (bus): es un mecanismo que permite la
comunicación entre el CPU, la memoria principal y la E/S.

gcp-2014-2
Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora

Figura 4. gcp-2014-2
Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora
Puede que haya uno o más de cada uno de estos componentes.
Tradicionalmente ha habido solo un CPU. En los últimos años ha habido un
uso creciente de varios procesadores en un solo sistema.

El componente más complejo es el CPU, su estructura se muestra en la figura


5. Sus principales componentes estructurales son:

• Unidad de control: controla el funcionamiento del CPU y por tanto de la


computadora.
• Unidad Aritmética-lógica (ALU: Arithmetic Logic Unit): lleva a cabo
las funciones de procesamiento de datos del procesador.
• Registros: proporcionan almacenamiento interno en el CPU.
• Interconexiones CPU: son mecanismo que proporcionan comunicación
entre la unidad de control, la ALU y los registros.

Figura 4. La computadora: estructura de nivel superior gcp-2014-2


Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora

Figura 5. La Unidad Central de Procesamiento (CPU) gcp-2014-2


Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora

Hay varias aproximaciones para la implementación de la unidad de


control (por hardware o por software).

Una unidad de control microprogramada (por hardware) actúa


ejecutando microinstrucciones que definen la funcionalidad de la unidad
de control. Con esta aproximación, la estructura de la unidad de control
puede ser como la mostrada en la figura 1.6.

Figura 5. La Unidad Central de Procesamiento (CPU) gcp-2014-2


Unidad I: Estructura de la máquina
Organización, Arquitectura y Estructura de una Computadora

Figura 6. La Unidad de Control gcp-2014-2


Unidad I: Estructura de la máquina
Arquitecturas de computadoras

John Von Neumann


Fue un matemático húngaro-estadounidense que realizó
contribuciones fundamentales en física cuántica, análisis
funcional, teoría de conjuntos, ciencias de la
computación, economía, análisis
numérico, cibernética, hidrodinámica, estadística y muchos
otros campos.

Creo los autómatas celulares junto a Ulam.

Figura x. Unidades funcionales básicas de una computadora gcp-2014-2


Unidad I: Estructura de la máquina
Arquitecturas de computadoras
Básicamente existen dos arquitecturas de una computadora digital y que
definen en gran medida la estructura u organización de la computadora.

1. Arquitectura de Von Neumann


2.Arquitectura Harvard

Figura x. Unidades funcionales básicas de una computadora gcp-2014-2


Unidad I: Estructura de la máquina

Arquitectura Von Neumann: Es una familia de arquitecturas que


utilizan el mismo dispositivo de almacenamiento (memoria) tanto para
las instrucciones como para los datos. Ideada en 1946 y terminado en
1952.

La mayoría de las computadoras modernas están basados en esta


arquitectura.

Arquitectura de Von Neumann gcp-2014-2


Unidad I: Estructura de la máquina

Originalmente el termino arquitectura Harvard hacia referencia a las


arquitecturas de computadoras que utilizaban dispositivos del
almacenamiento físicamente separados para las instrucciones y para los
datos.

Arquitectura Harvard gcp-2014-2


Unidad I: Estructura de la máquina
Descripción del funcionamiento de la arquitectura de Von Neumann
Consta de:
1. Una memoria principal que
almacena tanto datos como
instrucciones.
2. Una unidad aritmética-lógica
(ALU) capaz de hacer
operaciones con datos
binarios.
3. Una unidad de control que
interpreta las instrucciones en
memoria y provoca su
ejecución.
4. Un equipo de entrada y salida
(E/S) dirigido por la unidad de
control.
Funcionamiento de la máquina de Von Neumann gcp-2014-2
Unidad I: Estructura de la máquina
Descripción del funcionamiento de la arquitectura de Von Neumann

Consideraciones de Von Neumann para crear su estructura de


computadora:

1. Tendrá que realizar las operaciones aritméticas básicas o


elementales (suma, resta, multiplicación y división) y lógicas (unión,
intersección y complemento). Por lo que tendrá elementos
especializados para realizar éstas operaciones. (ALU)
2. El control del dispositivo, es decir, la secuencia adecuada de las
operaciones, debe ser realizado eficientemente por un control
central.

Funcionamiento de la máquina de Von Neumann gcp-2014-2


Unidad I: Estructura de la máquina
Descripción del funcionamiento de la arquitectura de Von Neumann

Consideraciones de Von Neumann para crear su estructura de


computadora:

3. Cualquier dispositivo que realice secuencias largas y complicadas de


operaciones, debe tener una memoria considerable.
Von Neumann hace una analogía de los primeros componentes con
el funcionamiento de una neurona.
El dispositivo tiene que estar dotado con la habilidad de mantener
contacto con la entrada y la salida.

Como se ha dicho, todas las computadoras de hoy en día, tienen la


misma estructura general y funcionamiento que la indicada en la
máquina de Von Neumann (hay excepciones)

Funcionamiento de la máquina de Von Neumann gcp-2014-2


Unidad I: Estructura de la máquina

1.1 Bloques funcionales de una computadora: Memoria, procesador


central, dispositivos de entrada/salida y buces.

Hay cuatro componentes estructurales básicos principales:

1. Unidad Central de Procesamiento (CPU): Controla el


funcionamiento de la computadora y lleva a cabo las funciones de
procesamiento de datos. Frecuentemente se le llama procesador o
microprocesador.

2. Memoria principal (RAM: Random Acces Memory): Almacena


datos e instrucciones.

gcp-2014-2
Unidad I: Estructura de la máquina

1.1 Bloques funcionales de una computadora: Memoria, procesador


central, dispositivos de entrada/salida y buces.
Hay cuatro componentes estructurales básicos principales:

3. El sistema de Entrada y Salida (E/S): Son interfaces para


comunicarse con la computadora.
La entrada, hacen la traducción de una acción humana a una
secuencia que pueda manipular la computadora (en lo general).
La salida, la computadora traduce los datos que maneja
internamente a una manera que el humano pueda entender
(generalmente)- texto, imágenes, etc.

4. Sistema de interconexión (bus del sistema): es un mecanismo


interno de la computadora que permite la comunicación entre el
CPU, la memoria y la E/S.
gcp-2014-2
Unidad I: Estructura de la máquina

1.1 Bloques funcionales de una computadora: Memoria, procesador


central, dispositivos de entrada/salida.

Bloques funcionales gcp-2014-2


Unidad I: Estructura de la máquina

1.1 Bloques funcionales de una computadora: Memoria, procesador


central, dispositivos de entrada/salida y buces.

Bloques funcionales gcp-2014-2


Unidad I: Estructura de la máquina

1.1 Bloques funcionales de una computadora: Memoria, procesador


central, dispositivos de entrada/salida y buces.

CPU gcp-2014-2
Unidad I: Estructura de la máquina

1.1 Bloques funcionales de una computadora: Memoria, procesador


central, dispositivos de entrada/salida y buces.

CPU gcp-2014-2
Unidad I: Estructura de la máquina

Ejemplo de familia de computadoras gcp-2014-2


Unidad I: Estructura de la máquina

HP Integrity Superdome 2 HP Integrity Superdome 2


HP Integrity Superdome 2 - 16 Socket – 32 Socket
– 8 Socket
Product information » View data sheet (PDF 489 KB)

Processors/Core 16/128 16/128 32/256


per system
designed to scale from 8 to 256
cores
Processor/Core 8/64 16/128 32/256
per partition
Microprocessor type Intel® Itanium® 9560 8c Intel® Itanium® 9560 8c Intel® Itanium® 9560 8c
Intel® Itanium® 9540 8c Intel® Itanium® 9540 8c Intel® Itanium® 9540 8c
Intel® Itanium® 9350 4c Intel® Itanium® 9350 4c Intel® Itanium® 9350 4c
Intel® Itanium® 9340 4c Intel® Itanium® 9340 4c Intel® Itanium® 9340 4c

Memory Min/Max Minimum: 32GB (8 x 4GB) Minimum: 32GB (8 x 4GB) Minimum: 32GB (8 x 4GB)
Maximum: 2TB (256 x 8GB) Maximum: 2TB (256 x 8GB) Maximum: 4 TB (512 x 8GB)
External I/O slots 48 external PCIe x8 Gen2 96 external PCIe x8 Gen2 96 external PCIe x8 Gen2

Internal I/O slots 24 PCIe Mezzanine 24 PCIe Mezzanine 48 PCIe Mezzanine


16 Type II and 8 Type I, 16 Type II and 8 Type I, PCIe x8 32 Type II and 16 Type I, PCIe x8
PCIe x8 Gen2 Gen2 Gen2
Built-in Networking 32 10 GbE ports 32 10 GbE ports 64 10 GbE ports
Pass-through or Switch Pass-through or Switch Pass-through or Switch
interconnect module interconnect module interconnect module
Operating systems HP-UX 11i v3 HP-UX 11i v3 HP-UX 11i v3

gcp-2014-2
Unidad I: Estructura de la máquina

Pruebas de rendimiento sobre enteros gcp-2014-2


Unidad I: Estructura de la máquina

Pruebas de rendimiento sobre números decimales gcp-2014-2


Unidad I: Estructura de la máquina

Pruebas de rendimiento de java gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un PROCESADOR: Unidad de control,
Unidad Aritmética y Lógica, Decodificador, Registro de
direcciones, Registro de datos, Apuntador a la pila, Contador del
programa, Registro de instrucción, Registro de banderas, Registros de
propósito general y Mecanismo de interrupción.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un procesador

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un procesador

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un procesador

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un procesador
PassMark - CPU Mark
High End CPUs - Updated 13th of February 2013 http://cpubenchmark.net

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un procesador

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un procesador

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un PROCESADOR o CPU:
Esta compuesta por la Unidad de Control y la Unidad Aritmético-Lógico y
Registros, Cache L1 y L2, si existe un cache L3 generalmente esta fuera.

Es donde se ejecutan las instrucciones sobre los datos.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un PROCESADOR o CPU:
Memoria Cache:

La memoria caché es una clase de memoria RAM de acceso aleatorio de alta


velocidad, situada entre el microprocesador y la RAM; se presenta de forma
temporal y automática para el usuario, que proporciona acceso rápido a los
datos de uso más frecuente.

En el CPU se utilizan memorias cache para datos y para instrucciones.

Hay de tres tipos L1, L2 y L3. Generalmente L1 y L2 están integradas al CPU.

L1 su velocidad de acceso es similar o igual a la de un registros (la más veloz).

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un PROCESADOR o CPU:
Memoria Cache:

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
SPARC microprocessor specifications
Modelo Frecuencia Versión de Año Cores * Threads Process Transistores Die size IO Pins Power Voltaje L1 Dcache L1 Icache L2 Cache L3 Cache
[MHz] la Arquitectura Per Core = Total [µm] [millones] [mm²] [W] [V] [k] [k] [k] [k]
Threads
macro
microSPARC I 40–50 V8 1992 1*1=1 0.8 0.8 225? 288 2.5 5 2 4 nada nada
SuperSPARC I 33–60 V8 1992 1*1=1 0.8 3.1 -- 293 14.3 5 16 20 0-2048 nada
HyperSPARC A 40–90 V8 1993 1*1=1 0.5 1.5 -- -- -- 5? 0 8 128-256 nada
microSPARC II 60–125 V8 1994 1*1=1 0.5 2.3 233 321 5 3.3 8 16 nada nada
HyperSPARC B 90–125 V8 1994 1*1=1 0.4 1.5 -- -- -- 3.3 0 8 128-256 nada
SuperSPARC II 75–90 V8 1994 1*1=1 0.8 3.1 299 -- 16 -- 16 20 1024-2048 nada
HyperSPARC C 125–166 V8 1995 1*1=1 0.35 1.5 -- -- -- 3.3 0 8 512-1024 nada
TurboSPARC 160–180 V8 1995 1*1=1 0.35 3.0 132 416 7 3.5 16 16 512 nada
UltraSPARC I (Spitfire) 143–167 V9 1995 1*1=1 0.47 5.2 315 521 30 @167 MHz 3.3 16 16 512-1024 nada
UltraSPARC I (Hornet) 200 V9 1998 1*1=1 0.42 5.2 265 521 -- 3.3 16 16 512-1024 nada
HyperSPARC D 180–200 V8 1996 1*1=1 0.35 1.7 -- -- -- 3.3 16 16 512 nada
UltraSPARC IIs (Blackbird) 250–400 V9 1997 1*1=1 0.35 5.4 149 521 25 @250 MHz 2.5 16 16 1024 or 4096 nada

UltraSPARC IIs (Sapphire-Black) 360–480 V9 1999 1*1=1 0.25 5.4 126 521 21 @400 MHz 1.9 16 16 1024–8192 nada

UltraSPARC IIi (Sabre) 270–360 V9 1997 1*1=1 0.35 5.4 156 587 21 1.9 16 16 256–2048 nada

UltraSPARC IIi (Sapphire-Red) 333–480 V9 1998 1*1=1 0.25 5.4 -- 587 21 @440 MHz 1.9 16 16 2048 nada
13 max
UltraSPARC IIe (Hummingbird) 400–600 V9 2000 1*1=1 0.18 Al -- -- 370 1.5-1.7 16 16 256 nada
@500 MHz
UltraSPARC IIi (IIe+) 550–650 V9 2002 1*1=1 0.18 Cu -- -- 370 17.6 1.7 16 16 512 nada
UltraSPARC III 600 V9 2001 1*1=1 0.18 Al 29 330 1368 53 1.6 64 32 8192 nada
UltraSPARC III 750–900 V9 2001 1*1=1 0.13 Al 29 -- 1368 -- 1.6 64 32 8192 nada
UltraSPARC IIIcu 1002–1200 V9 2001 1*1=1 0.13 Cu 29 -- 1368 -- 1.6 64 32 8192 nada
UltraSPARC IIIi 1064–1593 V9 2003 1*1=1 0.13 87.5 206 959 52 1.3 64 32 1024 nada
UltraSPARC IV 1050–1350 V9 2004 1*2=2 0.13 66 356 1368 108 1.35 64 32 16384 nada
UltraSPARC IV+ 1500 V9 2005 1*2=2 0.09 295 336 1368 90 1.1 64 64 2048 32768
UltraSPARC T1 1000–1200 V9 / UA 2005 2005 4*8=32 0.09 300 380 1933 72 1.3 8 16 3072 nada
SPARC64 V (Zeus) 1350-2160 V9 2004 1*2=2 0.13 191 290 269 40 1.2 128 128 2048 nada
SPARC64 VI (Olympus) 2150-2400 V9 2007 2*2=4 0,09 540 422 -- 120 -- 128 128 6144 nada
SPARC64 VII 2700 V9 2008 4*2=8 -- -- -- -- -- -- 128 128 6144 nada

Memoria cache en los procesadores SPARC gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un PROCESADOR o CPU:

Ventajas del cache:

• Permite acelerar el procesamiento de las instrucciones de memoria en la


CPU.

• Los ordenadores tienden a utilizar las mismas instrucciones y en menor


medida, los mismos datos repetidamente, por ello la caché contiene las
instrucciones más usadas.

• Por lo tanto, a mayor instrucciones y datos la CPU pueda obtener


directamente de la memoria caché, tanto más rápido será el funcionamiento
del ordenador.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un procesador
La CPU (Central Processing Unit) o Unidad Central de Procesamiento
(UCP) o simplemente procesador o microprocesador es el “cerebro” de la
computadora.

Su función es ejecutar programas almacenados en la memoria principal


buscando sus instrucciones y examinándolas para después ejecutarlas una tras
otra.

Los componentes están conectados por un bus, que es una colección de


alambres paralelos para transmitir direcciones, datos y señales de control.

Los buses pueden ser externos a la CPU, cuando conectan a la memoria y a


los dispositivos de E/S, pero también internos.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un procesador: bus

Diagrama de conexión (buces) de un microprocesador Intel Pentium

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un procesador: bus
Hay dos tipos de buces: internos CPU y los externos
Por el método de envío de la información hay: bus paralelo o bus serie.
Bus serie:

En este los datos son enviados, bit a bit y se reconstruyen por medio de
registros o rutinas de software.

Está formado por pocos conductores y su ancho de banda depende de


la frecuencia.

Ejemplos de buces seriales externos es: USB.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un procesador: bus
Bus paralelo:

Es un bus en el cual los datos son enviados por bytes al mismo tiempo,
con la ayuda de varias líneas que tienen funciones fijas.

• Las líneas de dirección son las encargadas de indicar la posición de


memoria o el dispositivo con el que se desea establecer comunicación.
• Las líneas de control son las encargadas de enviar señales de arbitraje
entre los dispositivos. Entre las más importantes están las líneas de
interrupción, DMA y los indicadores de estado.
• Las líneas de datos transmiten los bits de forma aleatoria de manera
que por lo general un bus tiene un ancho que es potencia de 2.

Ejemplos: ISA, EISA, MCA, PCI, AGP, PCI-e, PCI-X., SCSI, SATA

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un procesador: bus

Northbridge Es el chip que controla


las funciones de acceso desde y hasta
microprocesador, AGP, o PCI-Express,
memoria RAM, vídeo integrado
(dependiendo de la placa) y
Southbridge.

Southbridge es el chip que se


encarga de coordinar los diferentes
dispositivos de entrada y salida y
algunas otras funciones de baja
velocidad dentro de la placa base.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un procesador: bus

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

1.2. Bloques funcionales de un procesador, se compone de varias partes:

• Registros, es un tipo de memoria de alta velocidad que sirve para


almacenar resultados temporales y cierta información de control. Los
registros puede leer y escribir a alta velocidad porque están dentro de la
CPU.

Registros importantes:

o PC (Program Counter) o Contador de Programa, que apunta a la


siguiente instrucción que debe buscar para ejecutarse.
o IR (Instruction Register) o Registro de Instrucciones, que contiene la
instrucción que se está ejecutando.

Casi todas las computadoras tienen varios registros más, algunos de


propósito general y otros para fines específicos.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

1.2. Bloques funcionales de un procesador, se compone de varias partes:

• La unidad de control, se encarga de buscar instrucciones


de la memoria principal y determina su tipo, entre otras
cosas.

• La unidad aritmética y lógica realiza operaciones como


suma y AND booleano necesarias para ejecutar las
instrucciones.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un procesador: Unidad de control

Tiene como función básica la ejecución de la siguiente


secuencia:

• Leer de la memoria principal la instrucción apuntada por el


contador de programa PC.
• Leer de la memoria principal de los datos asociados a la
instrucción
• Incrementar el contador de programa
• Decodificar la instrucción leída
• Hacer que se ejecute la instrucción

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un procesador: Unidad de Control
La tarea fundamental de UC es recibir información para interpretarla y
procesarla, mediante las órdenes que envía a los otros componentes del
ordenador.

Se encarga de traer de la RAM o Cache las instrucciones necesarias para


la ejecución de los programas y el procesamiento de los datos.

Además, la UC interpreta y ejecuta las instrucciones en el orden


adecuado para que cada una de ellas se procese en el debido instante y
de forma correcta.

Para realizar todas estas operaciones, la UC dispone de algunos


elementos, que son los registros. Además de los registros, tiene otros
componentes. Todos ellos se detallan a continuación:
Estructura y Programación de Computadoras gcp-2014-2
Unidad I: Estructura de la máquina
1. Registro de instrucción: Es el encargado de almacenar la instrucción que se está
ejecutando
2. Registro contador de programas: Contiene la dirección de memoria de la
siguiente instrucción a ejecutar
3. Controlador y decodificador: Se encarga de interpretar la instrucción para su
posterior proceso. Es el encargado de extraer el código de operación de la
instrucción en curso
4. Secuenciador: Genera las microórdenes necesarias para ejecutar la instrucción
5. Reloj: Proporciona una sucesión de impulsos eléctricos a intervalos constantes

1.2. Bloques funcionales de un procesador: Unidad de control gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un procesador: Unidad de Control

Además de estas cinco acciones, la unida de control


se encarga de resolver las situaciones anómalas o de
conflicto, que ocurren en la computadora y de
controlar la comunicación con los periféricos.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un procesador: Unidad de control
La información que utiliza la unidad de control para realizar su cometido
es la siguiente:

• La instrucción en ejecución
• El registro de estado
• El contador de periodos, accionado por un reloj
• Las señales de control y estado externo al CPU

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un procesador: ALU
La ALU es la parte de la computadora que realiza realmente las
operaciones aritméticas y lógicas con los datos.

El resto de los elementos de la computadora: unidad de control,


registros, memoria, E/S, están principalmente para suministrar datos a la
ALU, a fin de que esta los procese y para recuperar los resultados.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un procesador: ALU
Normalmente, los procesadores actuales tienen varias ALU’s en el
interior de la unidad de ejecución de números enteros. Se complementan
con una unidad de punto flotante.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un procesador: ALU

Operación que realiza la ALU:

Se pueden diseñarse para que hagan una gran variedad de operaciones,


siendo las más frecuentes las referenciadas a continuación:

• Aritméticas: Negación, Suma, Resta, Multiplicación, División.


• Lógicas: NOT, AND, OR, XOR
• Desplazamientos: Lógicos, Circulares, Aritméticos.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

RISC vs CISC

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
RISC versus CISC

• CISC (complex instruction set computer) Computadoras con un


conjunto de instrucciones complejo.

• RISC (reduced instruction set computer) Computadoras con un


conjunto de instrucciones reducido.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
RISC versus CISC
Característica CISC RISC
Juego de instrucciones Grande y complejo En general reducido y
simple
Unidad de control Software Hardware
Formato de Longitud variable Longitud fija
instrucciones
Número de registros de Reducido Grande
propósito general
Número de modos de Elevado Reducido
direccionamiento
Número de ciclos para Varios Uno
ejecutar la instrucción
Arquitectura Compleja Relativamente simple

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
RISC versus CISC

En un procesador tipo CISC, utiliza la microprogramación, lo que


significa que cada instrucción de máquina es interpretada por un
microprograma localizado en una memoria en el circuito integrado del
procesador.

En un procesador tipo RISC, debido a que se tiene un conjunto de


instrucciones simplificado, éstas se pueden implantar por hardware
directamente en la CPU, lo cual elimina el microcódigo y la necesidad de
decodificar instrucciones complejas.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
RISC versus CISC

En investigaciones hechas a mediados de la década de los setentas, con


respecto a la frecuencia de utilización de una instrucción en un CISC y al
tiempo para su ejecución, se observó lo siguiente:

• Alrededor del 20% de las instrucciones ocupa el 80% del tiempo total
de ejecución de un programa.
• Existen secuencias de instrucciones simples que obtienen el mismo
resultado que secuencias complejas predeterminadas, pero requieren
tiempos de ejecución más cortos.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
RISC versus CISC
1964 - Seymour Cray crea la primera computadora considerada RISC,
con un conjunto de instrucciones de 75 y en comparación con los 400
de un procesador intel 8086.

En 1980 en la Universidad de Berkeley crea el proyecto RISC y en 1981


entrega el procesador RISC-1 con 44,420 transistores en comparación
con los 100,000 transistores de un procesador CISC de la época.

Existen muchas ventajas de los procesadores RISC sobre los CISC, la


pregunta es:

¿Por qué siguieron evolucionado los procesadores CISC,


especialmente los de la familia x86?

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
RISC versus CISC

Respuesta
Compatibilidad binaria

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un PROCESADOR o CPU:

PROCESADOR o CPU

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un PROCESADOR o CPU:

• Unidad de Punto Flotante (FPU-Float Pont Unit):

Esta unidad del procesador está especializada en operaciones con números


decimales.

• Unidad de Procesamiento Gráfico (GPU- Graphics Processing Unit):

Es un coprocesador, es decir no esta integrado a la CPU.

En combinación con el CPU acelerar las operaciones de cálculo científico o


técnico de propósito general.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un PROCESADOR o CPU:

Unidad de Procesamiento Gráfico (GPU- Graphics Processing Unit):

La potencia de las GPU y su dramático ritmo de desarrollo reciente se deben a


dos factores diferentes:

• El primer factor es la alta especialización de las GPU, ya que al estar pensadas


para desarrollar una sola tarea, es posible dedicar más silicio en su diseño para
llevar a cabo esa tarea más eficientemente.

• Hace cálculos vectoriales, muy utilizados en ambientes científicos y de


representación gráfica.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un PROCESADOR o CPU:

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un PROCESADOR o CPU:

Ejemplo: Intel Xeon Phi

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.2. Bloques funcionales de un PROCESADOR o CPU:

Tarjetas gráficas

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

Villa Talea De Castro, Oaxaca

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

Tarea: Ensayo 2: Sistemas de numeración:


• Binario
• Octal
• Hexadecimal
• Decir dónde se ocupa para describir
una computadora.
• Para el 19 de febrero (por correo)

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

1.3 Funcionamiento de una computadora:


Ciclos de obtención, interpretación y
ejecución de una instrucción.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.3 Funcionamiento de una computadora: Ciclos de obtención,
interpretación y ejecución de una instrucción.
Memoria

CPU
E/S, registros,
memoria, etc.

En el modelo de von Neumann


Estructura y Programación de Computadoras gcp-2014-2
Unidad I: Estructura de la máquina
1.3 Funcionamiento de una computadora: Ciclos de una instrucción.
Las instrucciones dadas a una computadora …
Memoria

CPU
E/S, registros,
memoria, etc.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.3 Funcionamiento de una computadora: Ciclos de una instrucción.
… no son de alto nivel, son instrucciones muy simples …
Memoria

CPU
E/S, registros,
memoria, etc.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.3 Funcionamiento de una computadora: Ciclos de una instrucción.
… que el CPU puede entender directamente …
Memoria

CPU
E/S, registros,
memoria, etc.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.3 Funcionamiento de una computadora: Ciclos de una instrucción.
Ejemplos de INTRUCCIONES
Procesamiento de datos:
Suma R1 R2 R3 Suma el contenido de los registros R2 y R3 y ponlo
en el registro R1

Almacenamiento de datos:
Almacena R1 0xFFFF Guarda el dato 0xFFFF en el registro R1

Transferencia de datos (E/S)


EnviaE/S 200 0xFF2A Transfiere el datos 0xFF2A al dispositivo 200

Control de flujo del programa:


Saltar 0xA1F2 Ir a la posición de memoria 0xA1F2

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.3 Funcionamiento de una computadora: Ciclos de una instrucción.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.3 Funcionamiento de una computadora: Ciclos de una instrucción.
Lenguaje máquina

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.3 Funcionamiento de una computadora: Ciclos de una instrucción.
Lenguaje ensamblador

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.3 Funcionamiento de una computadora: Ciclos de una instrucción.
Compilación: estática vs dinámica.

Lenguaje de Lenguaje Lenguaje


alto nivel ensamblador máquina
Estructura y Programación de Computadoras gcp-2014-2
Unidad I: Estructura de la máquina
1.3 Funcionamiento de una computadora: Ciclos de una instrucción.
Información de una instrucción

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.3 Funcionamiento de una computadora: Ciclos de una instrucción.
Información de una instrucción

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.3 Funcionamiento de una computadora: Ciclos de una instrucción.
Ejemplo de instrucciones: MIPS

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.3 Funcionamiento de una computadora: Ciclos de una instrucción.
Información de una instrucción

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.3 Funcionamiento de una computadora: Ciclos de una instrucción.
Ubicaciones posibles:

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.3 Funcionamiento de una computadora: Ciclos de una instrucción.
Modelo de ejecución

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.3 Funcionamiento de una computadora: Ciclos de una instrucción.
Tipos de instrucciones

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

1.3 Funcionamiento de una computadora: Ciclos de una instrucción.

Un programa residente en memoria está formado por una secuencia de instrucciones.


El programa se ejecuta en la computadora recorriendo un ciclo para cada instrucción.
A su vez, cada ciclo de instrucción se divide en una secuencia de subciclos o fases.
En la forma más básica cada ciclo de instrucción consiste en las siguientes fases:
• Buscar una instrucción de la memoria,
• Decodificar la instrucción,
• Leer la dirección efectiva de la memoria si la instrucción tiene una dirección indirecta,
• Ejecutar la instrucción.
Cuando se termina el paso 4, el control regresa al paso 1 para buscar, decodificar y
ejecuta la siguiente instrucción.
Este proceso continúa en forma indefinida a menos que se encuentre una instrucción
HALT (alto).

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

1.3 Funcionamiento de una computadora: Ciclos de una instrucción.

Un ciclo de instrucción consiste en la captación de la


instrucción, seguida de ninguno o varios accesos a
operandos, ninguna o varios almacenamientos de
operandos, y la comprobación de las interrupciones (si
estas están habilitadas).

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

1.3 Funcionamiento de una computadora: Ciclos de una instrucción.

A un alto nivel, una computadora está constituida por CPU’s, memoria y


unidades de E/S, estos componentes se interconectan de modo que se
pueda llevar a cabo la función básica de la computadora:

¿Qué es ejecutar o procesar un programa?


A este nivel, se puede describir una computadora (1) mediante el
comportamiento de cada uno de sus componentes, es decir, mediante
los datos y las señales de control que un componente intercambia con
los otros y (2) mediante la estructura de interconexión y los controles
necesarios para gestionar el uso de dicha estructura.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

1.3 Funcionamiento de una computadora: Ciclos de una instrucción.

Entender la estructura y el funcionamiento a alto nivel permite hacerse


una idea de los cuellos de botella del sistema, los caminos alternativos,
la importancia de los fallos del sistema si hay un componente defectuoso
y la facilidad con que se pueden mejorar las prestaciones. En muchos
casos, los requisitos de mayor potencia y capacidad de funcionamiento
tolerante a fallos se satisfacen mediante cambios en el diseño más que
con un incremento en la velocidad y en la fiabilidad de los componentes
individuales.

Alta disponibilidad (servicios) vs tolerante a fallos (hardware)

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

1.3 Funcionamiento de una computadora: Ciclos de una instrucción.

Recordar que el diseño de von Neumann se base en tres conceptos


clave:

• Los datos y las instrucciones se almacenan en una sola memoria de


lectura-escritura.
• Los contenidos de esta memoria se direccionan indicando su
posición, sin considerar el tipo de dato contenidos en la misma.
• La ejecución se produce siguiendo una secuencia de instrucciones tras
instrucción (a no ser que dicha secuencia se modifique
explícitamente).

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

1.3 Funcionamiento de una computadora: Ciclos de una instrucción.

La función básica que realiza una computadora es la ejecución de un


programa, constituido por un conjunto de instrucciones almacenadas en
memoria.

El procesador es precisamente el que se encarga de ejecutar las


instrucciones especificadas en el programa.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

1.3 Funcionamiento de una computadora: Ciclos de una instrucción.

En su forma más simple, la ejecución de un programa consta de dos


etapas:

1. El procesador lee (capta u obtiene) la instrucción de memoria y la


ejecuta.
2. La ejecución del programa consiste en la repetición del proceso de
captación de instrucción y ejecución de instrucción.

La ejecución de la instrucción puede a su vez estar compuesta de cierto


número de pasos.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

1.3 Funcionamiento de una computadora: Ciclos de una instrucción.


El procesamiento que requiere una instrucción se denomina ciclo de
instrucción. Los dos pasos se denotan como ciclo de captación y
ciclo de ejecución.

Ciclo de instrucciones básicos

La ejecución del programa se detiene solo si la máquina se desconecta,


se produce algún tipo de error irrecuperable o ejecuta una instrucción
del programa que detiene a la computadora.
Estructura y Programación de Computadoras gcp-2014-2
Unidad I: Estructura de la máquina

1.3 Funcionamiento de una computadora: Ciclos de una instrucción.

Ciclos de obtención y ejecución

Al comienzo de cada ciclo de instrucción, la CPU capta una instrucción


de memoria. En una CPU típica, se utiliza un registro llamado contador
de programa (PC, Program Counter) para seguir la pista de la instrucción
que debe captarse a continuación.

A no ser que se indique otra cosa, la CPU siempre incrementa el PC


después de captar cada instrucción, de forma que captará la siguiente
instrucción de la secuencia (es decir, la instrucción situada en la siguiente
dirección de memoria).

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

1.3 Funcionamiento de una computadora: Ciclos de una instrucción.

Ciclos de obtención y ejecución

La instrucción captada se almacena en un registro de la CPU conocido


como registro de instrucción (IR, Instruction Register). La instrucción se
escribe utilizando un código binario que especifica la acción que debe
realizar la CPU. La CPU interpreta la instrucción y lleva a cabo la acción
requerida.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

1.3 Funcionamiento de una computadora: Ciclos de una instrucción.

Ciclos de obtención y ejecución


En general, esta puede ser de cuatro tipos:

• Procesador-Memoria: deben transferirse datos desde la CPU a la memoria o


desde la memoria a la CPU.
• Procesador-E/S: deben transferirse datos a o desde el exterior mediante
transferencias entre CPU y un módulo de E/S.
• Procesamiento de Datos: la CPU ha de realizar alguna operación aritmética
o lógica con los datos.
• Control: una instrucción puede especificar que la secuencia de ejecución se
altere (como la instrucción de saltos).

La ejecución de una instrucción puede implicar una combinación de estas


acciones.
Estructura y Programación de Computadoras gcp-2014-2
Unidad I: Estructura de la máquina
1.3 Ciclos de obtención y ejecución - ejemplo:
Considérese una máquina hipotética que incluye las características
enumeradas en la siguiente figura:

Funcionamiento de una computadora: Ciclos de una instrucción. gcp-2014-2


Unidad I: Estructura de la máquina
1.3 Ciclos de obtención y ejecución - ejemplo:

El procesador posee un único registro de datos llamado acumulador


(AC).

El fragmento de programa suma el contenido de la palabra de memoria


en la dirección 940 con el contenido de la palabra de memoria en la
dirección 941 y almacena el resultado en esta última posición.

Funcionamiento de una computadora: Ciclos de una instrucción. gcp-2014-2


Unidad I: Estructura de la máquina
1.3 Ciclos de obtención y ejecución - ejemplo:
Se requieren tres instrucciones, que consumen tres ciclos de captación y tres de
ejecución:
• El contador de programa (PC) contiene el valor 300, la dirección de la primera
instrucción. Esta instrucción (el valor hexadecimal 1940) se carga en el registro de
instrucción (IR). Obsérvese que este proceso implicaría el uso del registro de
dirección de memoria (MAR) y el registro de datos de memoria (MBR). Por
simplicidad se han ignorado estos registros intermedios.
• Los primeros cuatro bits de IR (primer dígito hexadecimal) indican que el
acumulador (AC) se va a cargar. Los restantes 12 bits (tres dígitos hexadecimales)
especifican la dirección (940) que se va a cargar.
• EL registro PC se incrementa, y se capta la siguiente instrucción (5941) desde la
dirección 301.
• El contenido anterior de AC y el de la posición de memoria 941 se suman y el
resultado se almacena en AC.
• El registro PC se incrementa y se capta la siguiente instrucción (294) desde la
posición 302.
• El contenido de AC se almacena en la posición 941
Funcionamiento de una computadora: Ciclos de una instrucción. gcp-2014-2
Unidad I: Estructura de la máquina
1.3 Ciclos de obtención y ejecución - ejemplo:

Funcionamiento de una computadora: Ciclos de una instrucción. gcp-2014-2


Unidad I: Estructura de la máquina
1.3 Ciclos de obtención y ejecución - ejemplo:
En este ejemplo se necesitan tres ciclos de instrucción, cada uno con un
ciclo de captación y un ciclo de ejecución, para sumar el contenido de la
posición 940 y el contenido de la 941.

Con un conjunto de instrucciones más complejo, se hubieran necesitado


menos ciclos.

Así, en algunos procesadores se incluían instrucciones con más de una


dirección. De esta forma, el ciclo de ejecución de una instrucción
generaría más de una referencia a memoria. Además, en lugar de
referencia a memoria, una instrucción puede especificar una operación
de E/S.

Funcionamiento de una computadora: Ciclos de una instrucción. gcp-2014-2


Unidad I: Estructura de la máquina
1.3 Ciclos de obtención y ejecución:
El ciclo de ejecución de una instrucción puede ocasionar más de una referencia a
memoria. Además, una instrucción puede especificar una operación de E/S. Con estas
consideraciones adicionales en mente, la siguiente figura proporciona una visión más
detallada del ciclo de instrucción básico de la figura anterior.

Op. externas al CPU


(obtención)

Op. internas al CPU


(ejecución)

Funcionamiento de una computadora: Ciclos de una instrucción. gcp-2014-2


Unidad I: Estructura de la máquina
1.3 Ciclos de obtención y ejecución:
La figura tiene la forma de un diagrama de estados. Para un ciclo de
instrucción dado, algunos estados pueden no darse y otros pueden
visitarse más de una vez.
Los estados en la parte superior de la figura anterior ocasionan
intercambios entre el CPU y la memoria o un módulo de E/S. Los
estados en la parte inferior del diagrama solo ocasionan operaciones
internas a la CPU. El estado OAC aparece dos veces, puesto que una
instrucción puede ocasionar una lectura, una escritura o ambas cosas.
No obstante, la acción realizada en ese estado es la misma en ambos
casos y por eso sólo se necesita un único identificador de estado.
Los estados se describen a continuación:

Funcionamiento de una computadora: Ciclos de una instrucción. gcp-2014-2


Unidad I: Estructura de la máquina
1.3 Ciclos de obtención y ejecución:

• Cálculo de la dirección de la instrucción (IAC, Instruction Address


Calculation): determina la dirección de la siguiente instrucción a
ejecutar. Normalmente, esto implica añadir un número fijo a la
dirección de la instrucción previa. Por ejemplo, si las instrucciones
tienen un tamaño de 16 bits y la memoria se organiza en palabras de
16 bits, se suma 1 a la dirección previa. En cambio, si la memoria se
organiza en bytes (8 bits) direccionables individualmente, entonces
hay que sumar 2 a la dirección previa.
• Captación de instrucción (if, Instruction Fetch): la CPU lee la instrucción
desde su posición en memoria.

Funcionamiento de una computadora: Ciclos de una instrucción. gcp-2014-2


Unidad I: Estructura de la máquina
1.3 Ciclos de obtención y ejecución:
• Decodificación de la operación indicada en la instrucción (IOD,
Instruction Operation Decoding): analiza la instrucción para determinar el
tipo de operación a realizar y el (los) operando(s) a utilizar.
• Cálculo de la dirección del operador (OAC, Operand Address Calculation):
si la instrucción implica una referencia a un operando en memoria o
disponible mediante E/S, determina la dirección del operando.
• Captación de operando (OF, Operand Fetch): capta el operando desde
memoria o se lee desde el dispositivo de E/S.
• Operación con los datos (DO, Data Operation): realiza la operación
indicada en la instrucción.
• Almacenamiento de operando (OS, Operand Store): escribe el resultado en
memoria o lo saca a través de un dispositivo de E/S.

Funcionamiento de una computadora: Ciclos de una instrucción. gcp-2014-2


Unidad I: Estructura de la máquina
1.3 Ciclos de obtención y ejecución: Interrupciones

Prácticamente tolas las computadoras disponen de un mecanismo


mediante el que otros módulos (ES/, memoria) pueden interrumpir el
procesamiento normal del CPU.

Las interrupciones nos ayudan a comprender más claramente la esencia


del ciclo de instrucción y los efectos de las interrupciones en la
estructura de interconexión.

Funcionamiento de una computadora: Ciclos de una instrucción. gcp-2014-2


Unidad I: Estructura de la máquina
1.3 Ciclos de obtención y ejecución: Interrupciones
En la siguiente tabla enumera las clases de interrupciones más comunes.

Programa Generadas por alguna condición que se produce como resultado de


la ejecución de una instrucción, tal como desbordamiento aritmético
(overflow), división por cero, intento de ejecutar una instrucción
máquina inexistente e intento de acceder fuera del espacio de
memoria permitido para el usuario.
Temporización Generadas por un temporizador interno al procesador. Esto permite
al sistema operativo realizar ciertas funciones de manera regular.
E/S Generadas por un controlador de E/S, para indicar la finalización
sin problemas de una operación o para avisar de ciertas condiciones
de error.
Fallo de hardware Generadas por un fallo tal como la falta de potencia de alimentación
o un error de paridad en la memoria.

Funcionamiento de una computadora: Ciclos de una instrucción. gcp-2014-2


Unidad I: Estructura de la máquina
1.3 Ciclos de obtención y ejecución: Interrupciones

En primer lugar las interrupciones proporcionan una forma de mejorar


la eficiencia del procesador. Por ejemplo, la mayoría de los dispositivos
externos son mucho más lentos que el procesador. Supóngase que el
procesador está transfiriendo datos a una impresora utilizando el
esquema del ciclo de instrucción de la figura anterior.

Después de cada operación de escritura, el procesador tendrá que parar y


permanecer ocioso hasta que la impresora complete la escritura. La
longitud de esta pausa puede ser del orden de mucho cientos o incluso
miles de ciclos de instrucción que no implican acceso a memoria.
Claramente, esto supone un derroche en el uso del procesador.

Funcionamiento de una computadora: Ciclos de una instrucción. gcp-2014-2


Unidad I: Estructura de la máquina
1.3 Ciclos de obtención y ejecución: Interrupciones
Las interrupciones y el ciclo de instrucción
Con el uso de interrupciones, el procesador puede dedicarse a ejecutar
otras instrucciones mientras una operación de E/S está en curso.
Considérese el flujo de control de la figura b. Como antes, el programa
de usuario llega a un punto en el que realiza una llamada al sistema para
realizar una escritura (WRITE). El programa de E/S al que se llama en
este caso está constituido solo por el código de preparación y la orden
de E/S propiamente dicha. Después de que estas pocas instrucciones se
hayan ejecutado, el control se devuelve al programa de usuario. Mientras
tanto, el dispositivo externo está ocupado aceptando el dato de la
memoria de la computadora e imprimiéndolo. Esta operación de E/S
se realiza concurrentemente con la ejecución de instrucciones del
programa de usuario.
Funcionamiento de una computadora: Ciclos de una instrucción. gcp-2014-2
Unidad I: Estructura de la máquina

1.4. Esquema de direccionamiento:


Máquinas de '3', '2', '1' y '0'
direcciones.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.4. Esquema de direccionamiento: Máquinas de '3', '2', '1' y '0'
direcciones.
Recordar: el ciclo de la instrucción

Obtener instrucción de memoria (PC) y


guardad instrucción en IR.
Actualizar PC
Decodificar, determinar las acciones
que se requieran
Ejecutar las acciones requeridas (leer o
escribir en M o E/S, procesar en la
ALU, …

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
¿Qué debe especificar la instrucción?
Flujo de datos

¿Qué operación va a realizar? Add r0 r1 r2


•Opcod: add, mul, move, etc.
¿Dónde están los operandos?
•En registro del CPU, en celdas de memoria,
Add r0 r1 r2
en algúna E/S o parte de la instrucción
¿Dónde se guarda el resultado?
•En un registro, en memoria o va a E/S Add r0 r1 r2
¿Dónde está la próxima instrucción?
•En un registro o en memoria PC, memoria

Esquema de direccionamiento: Máquinas de '3+1', '3', '2', '1' y '0' direcciones. gcp-2014-2
Unidad I: Estructura de la máquina
Formato de instrucción

Esquema de direccionamiento: Máquinas de '3+1', '3', '2', '1' y '0' direcciones. gcp-2014-2
Unidad I: Estructura de la máquina
ISA de 3, 2, 1 y 0 direcciones

Esquema de direccionamiento: Máquinas de '3+1', '3', '2', '1' y '0' direcciones. gcp-2014-2
Unidad I: Estructura de la máquina
ISA de 3, 2, 1 y 0 direcciones

Esquema de direccionamiento: Máquinas de '3+1', '3', '2', '1' y '0' direcciones. gcp-2014-2
Unidad I: Estructura de la máquina
ISA de 3, 2, 1 y 0 direcciones

Esquema de direccionamiento: Máquinas de '3+1', '3', '2', '1' y '0' direcciones. gcp-2014-2
Unidad I: Estructura de la máquina
ISA de 3, 2, 1 y 0 direcciones

Esquema de direccionamiento: Máquinas de '3+1', '3', '2', '1' y '0' direcciones. gcp-2014-2
Unidad I: Estructura de la máquina

1.5. Modos de direccionamiento


inmediato, directo, indirecto,
registro, relativo al PC e
indexado.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina
1.5. Modos de direccionamiento inmediato, directo, indirecto, registro, relativo
al PC e indexado.

Recordar: para manipular tanto los datos como las direcciones


podemos utilizar los registros como la memoria.

Estructura y Programación de Computadoras gcp-2014-2


Unidad I: Estructura de la máquina

La referencia a un operando en una instrucción contiene o bien su valor


(inmediato) o una referencia a la dirección del operando.

Los diversos repertorios de instrucciones utilizan una gran variedad de


modos de direccionamiento.
Modos de direccionamiento inmediato, directo, indirecto, registro gcp-2014-2
Unidad I: Estructura de la máquina

Estos modos de direccionamiento incluyen:

1. El directo (la dirección del operando esta en el campo de


direcciones),
2. El indirecto (el campo de direcciones apunta a la posición
que contiene la dirección del operando),
3. A registro, indirecto con registro y diversos tipos de
desplazamiento en los que el valor de un registro se suma a
un valor de dirección para producir la dirección del
operando.

Modos de direccionamiento inmediato, directo, indirecto, registro gcp-2014-2


Unidad I: Estructura de la máquina

¿Por qué existen tantos modos de direccionamiento?

Por qué el campo o campos de direcciones en un formato de


instrucción usual está bastante limitado. Sería deseable poder
referenciar un rango elevado de posiciones de memoria
principal.

Modos de direccionamiento inmediato, directo, indirecto, registro gcp-2014-2


Unidad I: Estructura de la máquina

Para conseguir el objetivo de direccionar el mayor número de


elementos de una computadora, se utilizan diversas técnicas
de direccionamiento.

Todas ellas implican algún compromiso entre el rango de


direcciones y/o flexibilidad de direccionamiento de una parte
y por otra el número de referencias a memoria y/o la
complejidad de cálculo de las direcciones.

Modos de direccionamiento inmediato, directo, indirecto, registro gcp-2014-2


Unidad I: Estructura de la máquina

Los modos de direccionamiento más comunes:

• Inmediato
• Directo
• Indirecto
• Registro
• Indirecto con registro
• Con desplazamiento
• Pila

Modos de direccionamiento inmediato, directo, indirecto, registro gcp-2014-2


Unidad I: Estructura de la máquina

Notación utilizada en los modos de direccionamiento:

A = contenido de un campo de dirección en la instrucción


R = contenido de un campo de dirección en la instrucción que
pertenece a un registro
EA = dirección real (efectiva) de la posición que contiene el operando
que se referencia
(X) = contenido de la posición de memoria X o del registro X

Modos de direccionamiento inmediato, directo, indirecto, registro gcp-2014-2


Unidad I: Estructura de la máquina

En el direccionamiento inmediato, el operando


está presente en la propia instrucción:
Operando = A
Este modo puede utilizarse para definir y utilizar
constantes o para fijar valores iniciales de variables.
La ventaja del direccionamiento inmediato es que,
una vez captada la instrucción, no se requiere una
referencia a memoria para obtener el operando,
ahorrándose un ciclo de memoria o de caché en el
ciclo de instrucción.
La desventaja es que el tamaño del número está
restringido a la longitud del campo de direcciones
que, en la mayoría de los repertorios se instrucciones,
es pequeño comprando con la longitud de palabra.

Modos de direccionamiento inmediato, directo, indirecto, registro gcp-2014-2


Unidad I: Estructura de la máquina

En el direccionamiento directo, el campo


de direcciones contiene la dirección efectiva
del operando:

EA=A

Solo requiere una referencia a memoria y no


necesita ningún cálculo especial.

La limitación es que proporciona un espacio


de direcciones restringido.

Modos de direccionamiento inmediato, directo, indirecto, registro gcp-2014-2


Unidad I: Estructura de la máquina

El problema de direccionamiento directo es


que la longitud del campo de direcciones es
normalmente menor que la longitud de palabra,
limitando pues el rango de direcciones.

Una solución es hacer que el campo de


direcciones referencie la dirección de una
palabra de memoria, la cual contenga la
dirección completa del operando. Esto es que
se denomina direccionamiento indirecto:

EA=(A)

El paréntesis se interpreta como “contenido


de”.

Modos de direccionamiento inmediato, directo, indirecto, registro gcp-2014-2


Unidad I: Estructura de la máquina

El direccionamiento de registros es similar al


directo. La única diferencia es que el campo de
direcciones referencia a un registro en lugar de una
dirección de memoria principal:

EA=R

La ventaja del direccionamiento de registros son


que (1) solo es necesario un campo pequeño de
direcciones en la instrucción y (2) no se requieren
referencias a memoria. El tiempo de acceso a un
registro interno del procesador es mucho menor
que para la memoria principal. La desventaja del
direccionamiento a registros es que el espacio de
direcciones está muy limitado.

Modos de direccionamiento inmediato, directo, indirecto, registro gcp-2014-2


Unidad I: Estructura de la máquina

El direccionamiento indirecto con


registro es análogo al direccionamiento
indirecto. En ambos casos, la diferencia
estriba en si el campo de direcciones hace
referencia a una posición de memoria o a
un registro. Así, para el direccionamiento
indirecto con registro:

EA=(R)

El direccionamiento indirecto con registro


emplea una referencia menos a memoria
que el direccionamiento indirecto

Modos de direccionamiento inmediato, directo, indirecto, registro gcp-2014-2


Unidad I: Estructura de la máquina

Un modo muy potente de


direccionamiento combina la posibilidad
de los direccionamientos directo e
indirecto con registro.

Se conoce con distintos nombres,


dependiendo del contexto en que se
emplee, pero el mecanismo básico es el
mismo:

EA=A+(R)

Modos de direccionamiento inmediato, directo, indirecto, registro gcp-2014-2


Estructura y Programación de Computadoras (EPC)

Ingeni erí a en C omputa ci ó n

Profesor: M.U. Gustavo Camacho Palacios

También podría gustarte