Anda di halaman 1dari 25

ORGANIZACIN DE UNA

COMPUTADORA
Introduccin
Las computadoras se usan en diversas aplicaciones
(i d t i oficinas,
(industria,
fi i
h
hogares, ciencia,
i
i etc.)
t )
La primera computadora digital electrnica fue construida
durante la segunda guerra mundial (1942) para resolver
problemas cientficos: ENIAC

Caracteristicas de la ENIAC (primera generacin)

300 multiplicaciones por segundo y 5000 sumas


18000 tubos de vaco
Ocupaba 1800 sq feets (~200 m2)
Problemas:
- Costo (~600000 dlares),
- Tamao,
T

- Potencia y refrigeracin
- Confiabilidad (alta frecuencia de fallos)

E
Esto
t se fue
f solucionando
l i
d en lla segunda
d generacin
i con ell
transistor, y luego con los circuitos integrados y el aumento
en la densidad de integracin.

En 1945 Von Neumann introdujo la idea de programa almacenado.


Para lograr funciones especificas, los chips eran muy caros.
Para cada cambio en las condiciones del sistema se necesitaba
prcticamente un nuevo diseo.
La solucin p
para esto fue disear un circuito q
que p
pueda realizar muchas
funciones distintas, segn la combinacin de unos y ceros (cdigo) que
tenga en determinados terminales.
Ejemplo: sumar dos nmeros, compararlos, almacenarlos, etc.
cdigo de
operacin

Salidas
Entradas

El valor codificado indica que se debe hacer (instruccin).


g sean las instrucciones q
que se le p
pida y el orden de estas,, el circuito
Segn
realizar distintas tareas.
Esto es esencialmente, lo que hace un microprocesador.

En 1971 Intel introdujo el primer microprocesador (de 4-bits): el 4004


1972 Intel crea el 8008 Primer P de 8-bits
1974-77 aparecen otros P de 8 bits de otras compaas: Motorola (6800), Zilog
(Z80) e Intel (8085)
1978-79 aparecen los P de 16 bits 8086 y el 68000
En los 80 siguen apareciendo P con mejor performace y aparece el 1 Risc
En los 90 Intel introduce el Pentium y en 1999 el Pentium III a 500 Mhz.
2003 Intel comercializa el Pentium IV a 3
3.2
2 Ghz
Ghz.
En cuanto a la tecnologa usada es principalmente del tipo CMOS, la densidad de
integracin crece 50% por ao y la frecuencia del clock ha crecido desde ~1
1 Mhz al
comienzo a varios Ghz actualmente.
Un P esta compuesto por elementos estudiados en cursos anteriores: registros,
contadores, ALU, etc. (hardware)
Software es el conjunto de instrucciones (programa) que se le da al P para
ejecutar.
Un P solo entiende
entiende un conjunto determinado de instrucciones,
instrucciones las cuales llegan
al l para ser ejecutadas, a travs de unos y ceros.
Este lenguaje de unos y ceros es el llamado lenguaje de mquina

Existe un lenguaje mas fcil de comprender llamado Assembler


Ejemplo: La instruccin encargada de sumarle uno a un registro del P
(en este caso el registro A):
Lenguaje de mquina
00010110

Assembler
INC A

Cada
P tiene su assembler p
particular,, q
que en algunos
g
casos es compatible
p
con
otros procesadores.
Los lenguajes superiores como C, Pascal Basic no dependen del P donde se
ejecuten, mientras que el assembler s.
Existen programas que traducen los lenguajes superiores a assembler o lenguaje
de mquina para un dado P. Estos son los llamados compiladores:
Lenguaje superior (Ej. C)

general

Assembler
especfico del P
Lenguaje de mquina

UNIDAD DE COMPUTO
Vamos a llamar unidad de cmputo a un sistema que tiene la capacidad de poder
realizar por s solo una determinada tarea
tarea, consistente en:
- recibir informacin (del exterior),
- procesarla,
- tomar decisiones,
decisiones y
- brindar informacin o dar rdenes (al exterior).
Estructura bsica:
Mem.
de
Progr.

Entrad
E
t d
a

Mem.
de
Datos

Unidad de
Control

ALU

S lid
Salida

Elementos bsicos de una computadora


P
Arithmetic
L i
Logic
Unit
Input/Output
(comunicacin
con el exterior)

Memorias
Registers

Control

Clock

(programa,
datos etc.)
datos,
etc )

Elementos bsicos: descripcin de cada bloque


BLOQUE DE LA UNIDAD ARITMTICO LGICA (ALU)
Es el rea del P donde se realizan todas las operaciones aritmticas y lgicas
lgicas.
Puede realizar muchas operaciones que se seleccionan mediante lneas de
entrada manejadas por el rea de control del P
Los operandos
p
y los datos resultantes se almacenan en registros
g
o en memoria.
El nmero de bits con que opera una ALU vara con el P, existiendo de 4, 8, 16,
32 y 64 bits.
BLOQUE DE REGISTROS
Son elementos que almacenan datos en forma temporaria.
Son flip-flops o registros de un bit agrupados de a 8, 16, 32 64 bits dependiendo
del procesador
procesador.
Existen registros especiales (para tareas especficas) y registros de uso general.
Se usan en general como paso de los datos entre la CPU y la memoria y entre la
CPU y los dispositivos de entrada-salida.
Almacenan por ejemplo: los datos que se quieren operar en la ALU, la direccin de
la prxima instruccin, la direccin de memoria donde est un dato especifico, etc.
No todos los registros del microprocesador son accesibles para el programador.

RELOJ (CLOCK)
Los microprocesadores
p
son,, en general,
g
, circuitos secuenciales sincrnicos.
El clock es el encargado de fijar la seal que con la cual se sincronizarn todas las
tareas de la unidad de cmputo.
La frecuencia del clock debe ser lo mas estable posible y normalmente queda
determinada por un cristal
cristal.
Casi todos los nuevos procesadores tienen el circuito oscilador dentro del chip y
solo se debe colocar externamente el cristal.
BUSES
Las distintas partes se vinculan entre si por lneas elctricas que solo pueden tener
2 estados (digitales).
( g
)
Estas lneas forman parte de alguno de los siguientes grupos:
Bus de datos

Tiene cdigo de instrucciones o datos

Bus de direcciones

Tiene la direccin desde donde se quiere lee o escribir

Bus de control

Es el responsable de llevar las seales que controlan y


sincronizan la unidad de cmputo

BLOQUE DE CONTROL
Es el encargado de controlar el flujo de informacin de datos entre las distintas
partes de la unidad de cmputo.
Interpreta que tarea debe realizar el P cuando llega una nueva instruccin y
orquesta las seales de control necesarias para realizarla.
Manda a leer o escribir datos de la memoria o de los dispositivos de entrada/salida
haciendo uso de las seales del bus de control, habilitando algunos bloques e
inhibiendo otros.
Selecciona que direccin se debe colocar en el bus de direcciones.

Memoria
prog.
p
g

P
Datos
Direcciones
Control

Memoria
datos

Entrada.

Salida

Instrucciones de un P
Algunas de las instrucciones tpicas de los P son:
Incrementar
I
t en uno ell contenido
t id de
d un registro
i t d
dell P
P
Sumar el contenido de dos registros del P
Cargar el valor que tiene un perifrico de entrada en un registro del P
Sacar p
por un p
perifrico de salida el contenido de un registro
g
del
P
Como sumaria dos valores que llegan por un perifrico de entrada?

El hardware indispensable para ejecutar un programa sera el P y la memoria.


Ejemplo:
j p si q
queremos sumar los 10 p
primeros nmeros ( 1 + 2+3...+10 )
teniendo ademas dos instrucciones, una que borre un registro y otra que
sume uno a ese registro.
El problema es que no se ve el resultado (es necesario un dispositivo de salida).
Si queremos sumar los N primeros nmeros naturales es necesario una entrada,
para saber N.

Como se ejecuta la primer instruccin


Cuando alimentamos el P este pone siempre la misma direccin para leer la
primer instruccin (por ejemplo 0000h).
Lee lo que hay en el bus de datos y lo guarda en un registro especial llamado
registro de instruccin
instruccin.
Luego decodifica la instruccin y pasa a ejecutar la operacin solicitada.
Todo este proceso se llama opcode fetch (bsqueda del cdigo de operacin)
Qu pasa si no hay nada en esa direccin?
Una iinstruccin
U
t
i puede
d ttener mas d
de una palabra,
l b pero lla operacin
i ya esta
t
especificada en la primer palabra.
Incrementar
Incrementar un registro interno
interno ( INR B ) no necesita mas que una palabra
palabra.
La instruccin en lenguaje de mquina (para un procesador de 8 bits) podra ser:
00000100 04h
U iinstruccin
Una
t
i similar
i il pero para ell registro
i t A es:
Asembler:
INR A
Lenguaje de mquina: 00111100

Instrucciones de transferencia: MVI


Ejemplo de una instruccin donde se necesita mas de una palabra podra ser:
cargar
g el registro
g
A ((8 bits)) con un nmero de 8 bits
Esta instruccin tiene dos palabras, la primera (opcode) indica que se va a
cargar el registro A del P con un nmero de 8 bits, la segunda palabra dice de que
nmero se trata
trata.
Simblicamente:
A 4Bh
La instruccin en assembler es:
En lenguaje de mquina es:

MVI A,4Bh
00111110
01001011

= 3Eh
= 4Bh

Instrucciones de transferencia: LDA


cargar el acumulador con un dato que est en una direccin determinada
Cada
C
d P
P tiene
ti
un nmero

d
determinado
t
i d d
de l
lneas d
de di
direcciones,
i
por llo
tanto tiene la posibilidad de direccionar 2n posiciones:
8 bits
28
16 bit
bits 216
32 bits 232

256 posiciones
65536 (64K) posiciones
i i
4 Giga posiciones

Vamos a trabajar
j suponiendo
p
un
P de 8 bits de datos y 16 bits de direcciones.

Para cargar el registro A con lo que hay en una direccin cualquiera (de 16 bits)
por ejemplo:
163Fh = 0001 0110 0011 1111
En assembler:
LDA
direccin
Cuntas palabras de cdigo son necesarias?

Instrucciones de transferencia: LDA


LDA direccin
El primer byte indica el tipo de operacin (opcode), que en este caso le dice que hay
que cargar al reg. A el valor que est en una direccin, la cual viene en los prximos
2 bytes.
El siguiente byte indica los primeros 8 bits de la direccin donde est el dato y el
tercero la parte restante.
En lenguaje de mquina: 00111010
00010110
00111111
El assembler ser:

LDA 163Fh

Que paso con el valor que tena A?

= 3Ah
= 16h
= 3Fh

(opcode)
( t baja
(parte
b j di
dir.))
(parte alta dir.)
A (163Fh)
(
)

Instrucciones de transferencia: STA


transferir lo que est en el registro A en una direccin cualquiera
(por ejemplo la 3B01h = 0011 1011 0000 0001 )
(3B01h) A

Si bli
Simblicamente:
t

Aqu se escribe en la direccin 3B01 (de la RAM) el valor del registro A.


En asembler sera:

STA direccin

STA 3B01h
En binario:

00110010
00111011
00000001

= 32h
= 3Bh
= 01h

(opcode)

Instrucciones de transferencia: MOV


Otro tipo de instruccin es move que consiste en copiar el contenido de un registro
en otro:
MOV B,C
B C
La instruccin tendra un solo byte (el opcode) con el siguiente formato:
01DDDSSS
donde SSS es la fuente y DDD es el destino. Sera:
01 000 001

= 41h

Para hacer la asignacin en sentido contrario,


C B

MOV C, B
01 001 000

= 48h

Otras instrucciones: ADD

sumar
2 registros
i t
iinternos
t

El asembler es:

ADD C

En binario:

10000001

A A+C

= 81h

Y en este caso de nuevo basta con una sola palabra.


Hay 4 registros internos en este P que se los identificar con el
siguiente cdigo:
A 111
C 001
B 000
D 010
En la instruccin anterior los tres ltimos bits del opcode indican que registro se
suma al A (dado que A siempre es uno de los sumandos).
Para sumar A + B el cdigo sera:
Assembler:
Binario:
a o

ADD
B
10000000
0000000

como multiplicara 2xA?

= 80
80h

Arquitecturas
De buses independientes:

DIR
DATOS
DIR

MEM.
MEM
DE
PROG

MEM.
DATOS

DIR

DATOS

DATOS

ENTR.

DIR
DATOS

SAL.

Este esquema no se usa ya que necesita muchas conexiones.

Arquitecturas
Con memoria de programa (instrucciones) y memoria de datos independientes
(tipo Harvard):
DIR
DATOS
DIR

MEM.
DE
PROG.

MEM.
DATOS

DATOS

ENTR.

SAL.

Tiene algunas aplicaciones (PICs).

Arquitecturas
Con memoria de programa y de datos comn (tipo von Neumann):
DIR
DATOS

MEM.
DE
PROG

Ejercicio:

MEM.
DATOS

ENTR.

SAL.

Veamos con un poco de detalle


el P por dentro y como se
ejecutan las siguientes
instrucciones:
INC
MOV
LDA
STA
MVI
ADD

Esta es la arquitectura mas frecuente y con la que vamos a trabajar.

B
A,B
dir
dir
A,dato
B

Instrucciones de salto: JMP


En general las instrucciones que debe ejecutar un P no ocupan lugares
consecutivos en la memoria de programa.
Existen instrucciones de salto que hacen que la prxima instruccin a ejecutar este
en cualquier lugar de la memoria.
Hay dos tipos de instrucciones de salto:
Salto incondicional
Salto condicional
Instrucciones de salto incondicional: No se debe cumplir ninguna condicin para que
se ejecute el salto.
Si queremos seguir nuestro programa en la direccin 0100h.
La instruccin en asembler ser:
JMP dir
di
donde dir esta formada por dos bytes.
E llenguaje
En
j d
de mquina:
i
11000011
00000001
00000000

= C3h
= 00h
= 01h

((opcode)
d )
(dir parte baja)
(dir parte alta)

Instrucciones de salto condicional: JZ y JNZ


Son aquellas donde la direccin de la prxima instruccin depende del resultado
de la ultima operacin de la ALU.
Ejemplos:
saltar si di cero
En asembler:

JZ dir

En lenguaje de mquina:
dir_L
dir_H

11001011
= CBh (opcode)
(parte baja de dir)
(parte alta de dir)

Esta instruccin salta a la direccin dir si la ltima operacin realizada por la ALU
di cero, caso contrario ejecuta la instruccin que est en PC+3.
Otra instruccin de este tipo es la siguiente:
JNZ dir
Aqu el salto se produce si la ltima operacin fue distinta de cero, en caso
contrario sigue en PC+3.

Resumen de las instrucciones vistas


ASSEMBLER

INC B
INC A
MVI A,dato
MVI B,dato
LDA dir
STA dir
ADD B
ADD C
MOV B,C
MOV C,B
MOV A,B
MOV B,A
DEC A
JMP dir
JZ dir
JNZ dir

HEXADECIMAL

04
3C
3E,dato
06,dato
3A,dir
32,dir
80
81
41
48
78
47
05
C3,dir
CB,dir
C2,dir

OPERACIN

B B+1
A A+1
A dato
B dato
A (dir)

(*)

(dir) A
AA
A+B
B
((*))
A A+C
(*)
BC
CB
A B
B A
A A-1
(*)
PC dir
PC dir si Z
Z=1,
1, PC PC
PC+3
3 si Z
Z=00
PC dir si Z=0, PC PC+3 si Z=1

Nota1: dato tiene una longitud de 8 bits y dir de 16 bits


Nota2: las instrucciones con (*) modifican el estado del flag Z. Si el resultado de la ltima operacin con
la ALU fue cero => Z=1 y si el resultado de la ltima operacin con ALU fue distinto de cero => Z=0.

Detalle de un P con Memoria, E/S y


decodificacin

Anda mungkin juga menyukai