Está en la página 1de 31

Manipulación de Datos

La unidad central de procesamiento (CPU). Codificación y


almacenamiento de programas. Lenguaje de máquina. Ejecución de
programas. Máquina ideal.

75.01 | 95.01 Computación Curso Prof. Servetto 1


La unidad central de procesamiento (CPU)
• La CPU consiste de tres partes:
• La unidad aritmético-lógica (UAL), que realiza operaciones con datos.
• La unidad de control (UC), que contiene circuitos para coordinar las
actividades de la máquina.
• La unidad de registros, que contiene celdas de almacenamiento de datos
(similares a las de la memoria principal), llamadas registros, que se usan para
almacenar temporalmente información dentro de la CPU.
Algunos registros son de propósito general, mientras que otros son de
propósito especial. Los de propósito general sirven para almacenar
temporalmente los datos de entrada y los resultados para operaciones de la
UAL.

75.01 | 95.01 Computación Curso Prof. Servetto 2


La unidad central de procesamiento (CPU)
• Para realizar una operación con datos almacenados en la memoria
principal, la UC debe transferirlos desde celdas de la memoria a
registros de propósito general, informar a la UAL cuáles registros
contienen los datos de entrada y cuál recibirá el resultado, y activar la
circuitería adecuada dentro de ella para que realice la operación.
• Para la transferencia de patrones de bits entre celdas de la memoria
principal y registros de la CPU, éstas están conectadas mediante una
colección de cables llamada bus, a través del cual la CPU extrae (lee)
datos proveyendo la dirección de una celda y la señal de lectura, y
almacena (escribe) datos proveyendo tanto un dato como la dirección
de una celda y la señal de escritura.

75.01 | 95.01 Computación Curso Prof. Servetto 3


CPU Memoria Principal

Bus

Registros

75.01 | 95.01 Computación Curso Prof. Servetto 4


La unidad central de procesamiento (CPU)

Ejemplo Pasos del proceso


La suma de dos valores almacenados 1. Tomar uno de los valores a sumar
de la memoria y ubicarlo en un
en la memoria principal requiere registro.
mucho más que la mera ejecución 2. Tomar el otro valor a sumar de la
de la operación de suma: los valores memoria y ubicarlo en otro registro.
deben transferirse desde la memoria 3. Activar el circuito de suma con los
principal a registros de la CPU, registros usados en 1 y 2 y designar
otro registro para mantener el
sumarse ubicando el resultado en un resultado.
registro, y luego transferirse el 4. Almacenar el resultado en
resultado a una celda de memoria. memoria.

75.01 | 95.01 Computación Curso Prof. Servetto 5


Memoria Caché
• Los registros se usan para mantener datos inmediatamente requeridos por
un programa para ordenar una operación; la memoria principal se usa para
mantener datos que un programa requerirá en un futuro cercano; la
memoria secundaria se usa para mantener datos que un programa
probablemente no requiera en un futuro cercano.
• La memoria caché es una porción de memoria de alta velocidad (varios
cientos de KB) localizada dentro de la CPU donde ésta intenta mantener
copia de una parte de la memoria principal de interés actual.
• La transferencia de datos que normalmente debe hacerse entre registros y
la memoria principal se hace entre registros y la memoria caché, y los
cambios realizados en la memoria caché se transfieren colectivamente a la
memoria principal en momentos más oportunos. De esta forma la CPU
ejecuta sus operaciones más rápidamente, ya que no debe demorarse en la
comunicación con la memoria principal.
75.01 | 95.01 Computación Curso Prof. Servetto 6
Codificación y almacenamiento de programas
• En las primeras computadoras, los datos se almacenaban en la
memoria principal y los pasos que cada dispositivo de la CPU debía
ejecutar debían ir indicándose en un tablero de clavijas.
• La unidad de control de las computadoras actuales está diseñada para
extraer programas codificados en patrones de bits de la memoria
principal, decodificar las instrucciones, y ejecutarlas.
• El programa que una máquina ejecute puede cambiarse tan sólo
cambiando el contenido de la memoria principal.
• La colección de instrucciones que comprende el sistema de
codificación se denomina lenguaje de máquina. Una instrucción
expresada en este lenguaje se llama instrucción de máquina.
75.01 | 95.01 Computación Curso Prof. Servetto 7
Lenguaje de Máquina
Repertorio de instrucciones. Instrucciones aritmético-lógicas. Comunicación con
otros dispositivos.

75.01 | 95.01 Computación Curso Prof. Servetto 8


Repertorio de instrucciones
• La lista de instrucciones de máquina que una CPU puede decodificar y
ejecutar es bastante corta: con muy pocas tareas elementales se
puede conseguir toda la capacidad teórica de una computadora. Se
puede agregar instrucciones para abreviar tareas complejas, pero que
no incrementan las capacidades fundamentales de la máquina.
• Hay dos filosofías de diseño de CPU: las diseñadas con un conjunto
mínimo de instrucciones originan las RISC (reduced instruction set
computers –computadoras con conjunto reducido de instrucciones), y
las que incluyen un gran número de instrucciones complejas, dan
nombre a las CISC (complex instruction set computers –computadoras
con conjunto complejo de instrucciones).

75.01 | 95.01 Computación Curso Prof. Servetto 9


Repertorio de instrucciones
Arquitecturas RISC Arquitecturas CISC
• Son eficientes (bajo consumo), rápidas y • Las CISC lidian mejor con las crecientes
menos costosas de producir. complejidades del software actual, pero
• Ejemplos de esta arquitectura son los aunque sus costos de producción se han ido
procesadores PowerPC, desarrollados por una reduciendo con el tiempo, consumen mucha
alianza entre Apple, IBM y Motorola, y usados energía eléctrica.
en la Apple Macintosh; la compañía Advanced • Un ejemplo de arquitectura CISC son los
Risc Machine (ARM) diseñó una arquitectura procesadores Intel, o sus equivalentes de
RISC en la que se basan procesadores AMD (Advanced Micro Devices, Inc.), que se
(producidos por Qualcomm y Texas encuentran en casi todas las computadoras
Instrument) que se encuentran en de escritorio y laptop (Apple está
controladores de juegos, televisores digitales, desarrollando actualmente computadoras
sistemas de navegación, computadoras de basadas en productos Intel).
automóviles, teléfonos celulares e
inteligentes, etc.
75.01 | 95.01 Computación Curso Prof. Servetto 10
Repertorio de instrucciones
• Independientemente de la arquitectura del procesador, las instrucciones de
máquina se pueden categorizar en tres grupos:
• De transferencia de datos: implican mover datos de un lugar a otro mediante un
proceso de copia o clonación de patrones. El pedido de llenar un registro de
propósito general con el contenido de una celda de memoria se denomina “cargar”
(load), y el inverso, “almacenar” (store). En este grupo se distinguen también los
comandos de comunicación con periféricos, llamados instrucciones de
entrada/salida (I/O –input/output).
• Aritmético-lógicas: implican pedir a la UC que requiera a la UAL operaciones
aritméticas básicas u operaciones booleanas con los contenidos de dos registros, o el
corrimiento (shift) o rotación (rotate) del contenido de un registro.
• De control: dirigen la ejecución de un programa en vez de manipular datos,
indicando saltos (jumps) condicionales o incondicionales a una instrucción distinta de
la siguiente del programa.

75.01 | 95.01 Computación Curso Prof. Servetto 11


Instrucciones aritmético-lógicas
Operaciones lógicas
• Combinan dos cadenas de bits para producir otra cadena como
resultado, todas del tamaño de registros de propósito general.
• Generalmente se utilizan para aislar o alterar parte de la cadena de
bits contenida en un registro, configurando un patrón en otro registro
denominado máscara. Por ejemplo:
• Para conocer o cambiar el signo de un número en complemento a 2
• Para conocer o cambiar el signo de un número en punto flotante
• Para aislar el exponente en exceso o la mantisa de un número en punto
flotante

75.01 | 95.01 Computación Curso Prof. Servetto 12


Instrucciones aritmético-lógicas
Operaciones lógicas - Ejemplos
• Conocer el signo de un número en complemento a 2 de 8 bits:
bbbbbbbb 00001010 (10) 11110110 (-10)
AND 10000000 10000000 10000000
b0000000 00000000 (0  +) 10000000 (128  -)
• Cambiar el signo de un número en complemento a 2 de 8 bits:
1. Se invierten los bits de la cadena
2. Se suma 1 a la cadena invertida
00001010 (10) 11110110 (-10)
XOR 11111111 11111111
11110101 (-11) 00001001 ( 9)
+ 00000001 ( 1) 00000001 ( 1)
11110110 (-10) 00001010 (10)

75.01 | 95.01 Computación Curso Prof. Servetto 13


Instrucciones aritmético-lógicas
Operaciones lógicas - Ejemplos
• Conocer el signo de un número en punto flotante de 8 bits:

bbbbbbbb 01101010 (2.5) 11101010 (-2.5)


AND 10000000 10000000 10000000
b0000000 00000000 (0  +) 10000000 (128  -)
• Cambiar el signo de un número en punto flotante de 8 bits:

01101010 ( 2.5) 11101010 (-2.5)


XOR 10000000 10000000
11101010 (-2.5) 00001001 ( 2.5)

75.01 | 95.01 Computación Curso Prof. Servetto 14


Instrucciones aritmético-lógicas
Operaciones lógicas - Ejemplos
• Aislar el exponente en exceso de 4 de un número en punto flotante
de 8 bits:

bbbbbbbb 01101010 (2.5)


AND 01110000 10000000
0bbb0000 01100000
• Aislar la mantisa de un número en punto flotante de 8 bits:

bbbbbbbb 01101010 ( 2.5)


AND 00001111 00001111
0000bbbb 00001010
75.01 | 95.01 Computación Curso Prof. Servetto 15
Instrucciones aritmético-lógicas
Operaciones de rotación y corrimiento de bits
• Mueven bits dentro de un registro de propósito general y se clasifican
según él sentido del movimiento (derecha o izquierda) y según el proceso
sea circular (rotación) o no (corrimiento).
• Generalmente se utilizan para alinear patrones o para efectuar
multiplicaciones o divisiones de números en complemento a 2 por
potencias de 2. Por ejemplo:
• Para justificar a derecha exponentes en exceso de números en punto flotante
• Para alinear una mantisa de un número en punto flotante según su exponente
• Para multiplicar o dividir un número en complemento a 2 por una potencia de 2
• Las operaciones de corrimiento a derecha pueden ser lógicas, si introducen
ceros a izquierda, o aritméticas (para números en complemento a 2), si
introducen bits iguales al del signo a izquierda.

75.01 | 95.01 Computación Curso Prof. Servetto 16


Instrucciones aritmético-lógicas
Ejemplo de rotación del patrón 65 (hexadecimal) un bit a la derecha

Patrón de bits original (65)16

Los bits se mueven una


posición a la derecha. El bit
menos significativo se cae
del extremo derecho y se
ubica en el hueco que
queda en el extremo
opuesto.

Patrón de bits final (B2)16

75.01 | 95.01 Computación Curso Prof. Servetto 17


Instrucciones aritmético-lógicas
Operaciones de rotación y corrimiento de bits - Ejemplos
• Para justificar a derecha exponentes en exceso de números en punto flotante de 8 bits, el
patrón 0bbb0000 (previamente aislado) se rota o corre a derecha 4 bits con igual
resultado: 00000bbb
• Para multiplicar un número en complemento a 2 de 8 bits por una potencia de 2, se corre
a izquierda el patrón tantos bits cuantos indique el exponente de la potencia:
00000111  1010 = 00011100 (7  4 = 28)
11111001  1010 = 11100100 (-7  4 = -28)
• Para dividir un número en complemento a 2 de 8 bits por una potencia de 2, se corre
aritméticamente a derecha el patrón tantos bits cuantos indique el exponente de la
potencia:
00010100 / 1010 = 00000101 (20 / 4 = 5)
11101100 / 1010 = 11111011 (-20 / 4 = -5)
11111001 / 101 = 11111100 (-7 / 2 = -3 )  es división entera

75.01 | 95.01 Computación Curso Prof. Servetto 18


Instrucciones aritmético-lógicas
Operaciones aritméticas
• Los procesadores con arquitectura RISC suelen incluir sólo a la suma,
ya que la resta se resuelve cambiando el signo del sustraendo y luego
sumando, la multiplicación se resuelve con sumas sucesivas, y la
división con restas; los procesadores CISC suelen incluir suma, resta,
multiplicación y división.
• Como las representaciones de los números varían según sean en
complemento a 2 o en punto flotante, los procesadores incluyen
operaciones aritméticas específicas para cada representación.

75.01 | 95.01 Computación Curso Prof. Servetto 19


Comunicación con otros dispositivos
Controladores
• La comunicación con otros dispositivos normalmente se maneja por
intermedio de otros aparatos denominados controladores, que
suelen ser placas de circuitos que se insertan en ranuras en la placa
madre (motherboard) y que se conectan vía cables al dispositivo
periférico dentro de la computadora o a un conector externo llamado
puerto.
• Los controladores suelen ser computadoras en sí, que se llaman
“dedicadas” o “esclavas”, con sus memorias principales y unidades
centrales de procesamiento, que ejecutan programas para dirigir las
actividades del dispositivo que controlan.

75.01 | 95.01 Computación Curso Prof. Servetto 20


Comunicación con otros
dispositivos
Conexión de controladores con la
computadora
Los controladores se comunican con la CPU de
la computadora mediante conexiones al bus que
conecta a la CPU con la memoria principal.
La CPU se comunica con los controladores
conectados al bus de la misma manera que se
comunica con la memoria principal, con
instrucciones equivalentes a las de “cargar” y
“almacenar”.

En las máquinas RISC, cada


controlador responde a referencias a
un único conjunto de direcciones Entrada/salida mapeada en memoria:
reservadas para sí, en un mecanismo
que se denomina entrada/salida
mapeada en memoria y que emplea
las mismas instrucciones para cargar
y escribir registros desde o en celdas
de memoria. Las máquinas CISC
incluyen instrucciones específicas de
entrada/salida.

75.01 | 95.01 Computación Curso Prof. Servetto 21


Comunicación con otros dispositivos
Interfaces
• Actualmente existen estándares como el universal serial bus (USB) y el FireWire,
para los cuales un solo controlador puede manejar diversos dispositivos
compatibles con estas interfaces. Por ejemplo ratones, teclados, impresoras,
escáneres, dispositivos portables de almacenamiento masivo, cámaras digitales y
teléfonos inteligentes suelen ser compatibles con puertos USB, y grabadoras de
video y dispositivos de almacenamiento masivo en línea suelen ser compatibles
con puertos FireWire (soportan tasas de transferencia más rápidas).
• Hay controladores que además de comunicarse con la CPU pueden comunicarse
con la memoria principal directamente cuando la CPU no usa el bus (durante
nanosegundos), y que se conocen como de acceso directo a memoria o DMA
(por direct memory access); por ejemplo, los controladores de sistemas de
almacenamiento magnético pueden tomar el contenido a escribir en un sector
directamente de la memoria principal o depositar en ella el contenido de la
lectura de un sector.
75.01 | 95.01 Computación Curso Prof. Servetto 22
Comunicación con otros dispositivos
Sincronización
• La transferencia de datos entre la computadora y los dispositivos
periféricos, aún aquellos que son sólo de entrada o sólo de salida, es
en realidad bidireccional, para intercambiar información sobre el
estado del dispositivo y coordinar sus actividades. Este diálogo
bidireccional se conoce como saludo (handshaking).
• El saludo a menudo involucra una palabra de estado (status word),
que es un patrón de bits generado por el dispositivo periférico para
reflejar su estado. Por ejemplo, en el caso de una impresora, la
palabra de estado puede reservar bits específicos para indicar si la
impresora está en línea, si no tiene papel, si tiene papel atascado y si
está lista para recibir datos.

75.01 | 95.01 Computación Curso Prof. Servetto 23


Comunicación con otros dispositivos
Formas de comunicación
• La transferencia de datos entre dispositivos de una computadora puede
realizarse sobre dos tipos de vías: paralelas y seriales.
• En la comunicación paralela se transfieren varias señales al mismo tiempo, cada una
en una línea separada; por ejemplo, el bus interno, que transfiere simultáneamente
direcciones, datos y señales de control.
• La comunicación serial se basa en la transferencia de señales una después de otra
sobre una línea simple; por ejemplo, USB y FireWire ofrecen transferencia de datos a
alta velocidad en distancias cortas, y para distancias un poco más largas se usan
conexiones Ethernet, bien por alambre o por ondas de radio. Para comunicaciones
rápidas de larga distancia se emplean líneas telefónicas con un servicio conocido
como DSL (digital suscriber line), que utiliza frecuencias sobre el rango audible para
transmitir datos digitalizados y deja el espectro de baja frecuencia para la
comunicación por voz, también la infraestructura de televisión por cable con
cablemódem, o enlaces satelitales vía transmisión de radio de alta frecuencia.

75.01 | 95.01 Computación Curso Prof. Servetto 24


Comunicación con otros dispositivos
Formas de comunicación
• Las comunicaciones seriales de larga distancia emplean una técnica
de multiplexación, que codifica los datos de manera que una vía
simple de comunicación sirve como si fuera una vía múltiple: los
modem (acrónimo de modulador-demodulador) convierten patrones
de bits en tonos que transmiten serialmente.
• La velocidad de transferencia de datos entre componentes de una
computadora se mide en bits por segundo (bps). USB y FireWire
proveen tasas de transferencia de varios cientos de Mbps, lo cual es
suficiente para la mayoría de las aplicaciones de multimedia. Los
enlaces DSL, por cable o satelitales ofrecen velocidades del orden de
los 54 Mbps.

75.01 | 95.01 Computación Curso Prof. Servetto 25


Ejecución de Programas
Registros de propósito especial. Ciclo de máquina.

75.01 | 95.01 Computación Curso Prof. Servetto 26


Registros de propósito especial
• Para que una computadora pueda seguir un programa almacenado en
su memoria, la CPU necesita cargar instrucciones, decodificarlas y
obedecerlas. El orden en que la CPU carga las instrucciones es el
mismo en el que están almacenadas en la memoria, a menos que el
mismo se vea alterado por una instrucción de salto.
• Para almacenar instrucciones, la CPU tiene un registro de propósito
especial llamado registro de instrucción, y para seguir el orden en
que ejecuta las instrucciones, otro llamado contador de programa,
que contiene la dirección de la próxima instrucción a ejecutarse.

75.01 | 95.01 Computación Curso Prof. Servetto 27


Ciclo de máquina
La CPU realiza su trabajo repitiendo continuamente un algoritmo de
tres pasos denominado ciclo de máquina, consistente en
1. Traer una instrucción (fetch): carga la instrucción almacenada en la
dirección que indica el contador de programa en el registro de instrucción, e
incrementa el contador de programa de manera que indique la dirección de
la siguiente instrucción.
2. Decodificar la instrucción: descompone la instrucción en los operandos que
implique su código de identificación.
3. Ejecutar la instrucción: activa los circuitos adecuados para realizar la tarea
requerida. Si la instrucción es de salto, carga en el contador de programa la
dirección de la próxima instrucción.

75.01 | 95.01 Computación Curso Prof. Servetto 28


Máquina Ideal
Arquitectura y lenguaje de máquina

75.01 | 95.01 Computación Curso Prof. Servetto 29


Arquitectura (RISC)
• Memoria principal con 256 celdas de 1 byte con direcciones
representadas en patrones hexadecimales desde el 00 al FF.
• CPU con 16 registros de propósito general de 1 byte, numerados de 0
a F con patrones hexadecimales.
• Contador de programa de 1 byte y registro de instrucción de 2 bytes.
• Valores enteros representados en complemento a 2 en 8 bits, y
fraccionarios representados en punto flotante en 8 bits.
• Entrada/salida en correspondencia con la memoria:
• Puerto de entrada en celda FE
• Puerto de salida en celda FF

75.01 | 95.01 Computación Curso Prof. Servetto 30


Lenguaje de máquina
Código Operandos Descripción
1 RXY Cargar en el registro R el contenido de la celda con dirección XY
2 RXY Cargar en el registro R el patrón XY
3 RXY Almacenar el contenido del registro R en la celda con dirección XY
4 0RS Copiar el contenido del registro R en el registro S
5 RST Sumar en complemento a 2 los contenidos de los registros S y T y dejar el resultado en R
6 RST Sumar en punto flotante los contenidos de los registros S y T y dejar el resultado en R
7 RST Disyunción (OR) de los contenidos de los registros S y T con resultado en registro R
8 RST Conjunción (AND) de los contenidos de los registros S y T con resultado en registro R
9 RST Disyunción exc. (XOR) de los contenidos de los registros S y T con resultado en registro R
A R0X Rotar a derecha el contenido del registro R, X veces
B RXY Saltar a la instrucción con dirección XY si el contenido del registro R es igual al del reg. 0
C 000 Parar la ejecución

75.01 | 95.01 Computación Curso Prof. Servetto 31

También podría gustarte