Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ing. Aeroespacial
Computadores
2
Informática
Arquitectura del Computador In g . A e r o e s p a c ia l
C o n tro la d o r C o n tro la d o r
Memoria d isc o v id e o
CPU Principal
E/S E/S
Bus
3
Informática
Arquitectura del Computador In g . A e r o e s p a c ia l
Bus (o canal)
Bus: el bus (o canal) es un sistema digital que transfiere datos entre los sistemas
de una computadora o entre computadoras. Está formado por cables, pistas en
un circuito impreso o conexiones en un circuito integrado.
Hay dos tipos de arquitecturas:
- Arquitectura de bus único: todas las unidades funcionales están conectadas al
mismo bus que es compartido por todos ellos. Es simple pero....
‣ Inconvenientes: el bus se convierte en un cuello de botella. Si dos dispositivos
usan el bus para transferirse información, los otros dispositivos tienen que esperar.
- Arquitectura de múltiples buses: hay varios buses, lo que permite que las
distintas unidades funcionales conectadas a estos buses se puedan comunicar
de forma simultánea. Incluso hay buses que conectan dispositivos concretos
(por ejemplo, el procesador de vídeo con la CPU).
‣ Esto permite tener distintos buses, con distintas velocidades y ancho de banda
(cantidad de información a transmitir)..
5
Informática
Arquitectura del Computador In g . A e r o e s p a c ia l
6
Informática
Arquitectura del Computador In g . A e r o e s p a c ia l
7
Organización de Computadores (I) Informática
In g . A e r o e s p a c ia l
8
Informática
Organización de la memoria In g . A e r o e s p a c ia l
Memoria
Memoria: dispositivo que almacena información con las siguientes operaciones
básicas:
- Escritura (write): almacenar (o actualizar) un ítem de información en la
memoria.
- Lectura (read): recuperar un ítem de información previamente almacenada en la
memoria.
Propiedad de la memoria: la operación de lectura siempre devuelve el valor de
la última operación de escritura.
Niveles de almacenamiento
- Memoria principal: memoria a corto-plazo. Almacena únicamente el/los
programa/s que la CPU está ejecutando y sus datos. Es memoria volátil: se
pierde su contenido cuando no tiene alimentación eléctrica.
- Memoria secundaria: comprende discos, memoria flash, lápices USB, CD’s,
discos remotos (dropbox) y otros. Es un almacenamiento a largo-plazo para los
programas y datos necesarios. Es una memoria no-volátil.
9
Informática
Organización de la memoria In g . A e r o e s p a c ia l
Jerarquía de la memoria
Niveles:
- Registros de la CPU - internos a la capacidad velocidad
CPU. - +
- Memoria cache - interna al CPU
procesador (datos e instrucciones regs.
muy usados)
memoria
- Memoria principal - almacena cache
programas en ejecución y sus datos.
memoria
- Memoria virtual - simula una gran principal
memoria.
memoria
- Memoria secundaria - Discos y virtual
dispositivos similares.
memoria
La capacidad se incrementa de arriba secundaria
a abajo y la velocidad aumenta de + -
abajo a arriba
10
Informática
Organización de la memoria In g . A e r o e s p a c ia l
Ejemplo
- Memoria 16 bytes
- El valor de la memoria en la
dirección F 16 es B6(h) 11
Informática
Organización de la memoria In g . A e r o e s p a c ia l
Capacidad de la memoria
Volumen de información que puede almacenar. Se suele medir en bytes, KB, MB, GB, TB.
- Es el número de filas (palabras de memoria) x número de bytes por fila.
‣ Ejem plo: Palabra de 1 byte. 6 M b m em oria → 6 × 2 20 bytes.
Accesos a memoria
Lectura: La CPU proporciona la Dirección, RD/WR=1, CS=1 y espera a
obtener los Datos
Escritura: La CPU proporciona Dirección, Datos, RD/WR=0, CS=1
Datos Datos
13
Informática
Organización de la memoria In g . A e r o e s p a c ia l
Clasificación de la memoria
14
Organización de Computadores (I) Informática
In g . A e r o e s p a c ia l
15
Informática
Organización de la CPU In g . A e r o e s p a c ia l
Subsistemas de la CPU
Banco de registros (Register bank): una memoria muy veloz de poca capacidad
que almacena los operandos de las instrucciones del lenguaje máquina.
17
Informática
Organización de la CPU In g . A e r o e s p a c ia l
R14
R15/SP
entradas
0xFFFF 0x0001 ALU
registros
temporales salidas ALU
opcode
ALU flags/banderas
V N Z C
0x0000 ...
PSR: Processor Status Register 18
Informática
Organización de la CPU In g . A e r o e s p a c ia l
19
Informática
Organización de la CPU In g . A e r o e s p a c ia l
22
Informática
Organización de la CPU In g . A e r o e s p a c ia l
24
Informática
Organización de la CPU In g . A e r o e s p a c ia l
Memoria cache
La capacidad de integración de los circuitos
digitales permite disponer en un mismo
circuito integrado (chip) de una memoria Memoria
ultra-rápida. Procesador principal
- Esta memoria es de reducida capacidad y
de acceso muy rápido al estar dentro del
mismo circuito.
Esta memoria almacena copias de los
CPU
bloques de memoria principal más
frecuentemente usados. Memoria
- Su contenido es un subconjunto muy
Cache ...
reducido de la memoria principal.
El objetivo es mejorar el tiempo medio de
acceso.
- Si el dato o instrucción está en la cache no
es necesario leerla de memoria principal
25
Informática
Organización de la CPU In g . A e r o e s p a c ia l
Memoria Cache
El funcionamiento de la memoria cache es el siguiente: cuando la CPU necesita
leer o escribir de una posición de memoria principal, comprueba primero si el
contenido de esa posición de memoria está en la cache.
- Si está en la cache, decimos que ha ocurrido un acierto (cache hit).
‣ La CPU lee o escribe inmediatamente en la memoria cache.
- Sino, es un fallo (cache miss).
‣ Entonces, tiene que cargar en la cache el contenido de la posición de memoria
principal. Si no hay espacio en la cache, se descarta algún bloque para hacerle
espacio. Este bloque, si se ha modificado anteriormente, se tiene que volver a escribir
en memoria principal.
- Este bloque “victima” se selecciona usando una política de sustitución.
‣ Política óptima: sustituir el bloque que menos se va a usar en el futuro. Problema....
predecir el futuro no es fácil.
‣ LRU (Least Recently Used): sustituye la entrada menos usada recientemente.
El rendimiento de la memoria cache depende del porcentaje de accesos que
resultan en acierto con respecto al total. Se conoce como tasa de éxito o hit rate
26
Informática
Organización de la CPU In g . A e r o e s p a c ia l
Memoria Cache
Las CPU modernas tienen distintas caches para instrucción y datos con el
objetivo de mejorar el rendimiento.
- Las caches de instrucciones son de lectura únicamente. No tenemos que volver
a escribir en memoria principal el bloque descartado.
Las cache de datos son actualmente multi-nivel, es decir, están organizadas
como una jerarquía de niveles (L1, L2, etc.)
27
Informática
Organización de la CPU In g . A e r o e s p a c ia l
Microprocesadores
Microprocesador: una CPU en un único chip.
- La tecnología actual permite integrar todos los sistemas de la CPU
(registros, ALU, CU, memorias caches) en un único chip
- Incluso puede incluir varios núcleos (multicores) que son varias CPU que
comparten memoria y cache.
28
Informática
Organización de la CPU In g . A e r o e s p a c ia l
Microprocesadores
El juego de instrucciones se considera la
definición del interface de una familia de
procesadores.
- Los procesadores Intel (Pentium, i5, i7) tienen
su juego de instrucciones diferentes al ARM7
por ejemplo.
- Dos microprocesadores con el mismo juego
de instrucciones se consideran compatibles.
‣ Ejemplos: Clones de Intel Pentium fabricados
por AMD o Cyrix, como AMD K5 o K6.
29
Informática
Organización de la CPU In g . A e r o e s p a c ia l
Microprocesadores
Evolución de la familia Intel
30
Informática
Organización de la CPU In g . A e r o e s p a c ia l
Microprocesadores
Evolución de la familia Intel
31
Informática
Ing. Aeroespacial
Computadores
Lenguaje máquina
Instrucciones de lenguaje máquina
La pila
Lenguajes y compiladores
Ejemplos
33
Informática
Lenguaje máquina In g . A e r o e s p a c ia l
Lenguaje máquina
Operandos de las instrucciones:
- Número de operandos: las instrucciones puede tener diferente número de
operandos:
‣ dos operandos: ADD R2,R0
‣ un operando: JNE 0x2000
‣ ningún operando: NOP
‣ ...
- Modos de direccionamiento: la forma en la cual los operandos son
especificados o interpretados:
‣ Direccionamiento de registro (Register addressing)
‣ Direccionamiento directo (Direct addressing)
‣ Direccionamiento indirecto por registro (Register indirect addressing)
‣ Direccionamiento inmediato (Immediate addressing)
‣ Direccionamiento implícito (Implicit addressing)
35
Informática
Lenguaje máquina In g . A e r o e s p a c ia l
0x4000 R2
...
36
Informática
Lenguaje máquina In g . A e r o e s p a c ia l
37
Informática
Lenguaje máquina In g . A e r o e s p a c ia l
6 4 6
2 opcode op1 PUSH reg
6 12
3 opcode RET
6 4 6
opcode op1
4 MOV reg,addr
op2 39
Organización de computadores (II) Informática
In g . A e r o e s p a c ia l
Lenguaje máquina
Instrucciones de lenguaje máquina
La pila
Lenguajes y compiladores
Ejemplos
40
Informática
Instrucciones de lenguaje máquina In g . A e r o e s p a c ia l
43
Informática
Instrucciones de lenguaje máquina In g . A e r o e s p a c ia l
44
Informática
Instrucciones de lenguaje máquina In g . A e r o e s p a c ia l
45
Informática
Instrucciones de lenguaje máquina In g . A e r o e s p a c ia l
46
Informática
Instrucciones de lenguaje máquina In g . A e r o e s p a c ia l
Condiciones
Flags
Mnemónico Inglés Descripción
comprobados
AL Always siempre, incondicional ninguno
EQ Equal Igual después de comparación Z==1
NE Not equal Distinto después de comparación Z==0
MI Minus Negativo después de comparación N==1
PL Plus Positivo o cero de comparación N==0
CS Carry set La última operación tuvo acarreo C==1
CC Carry clear La última operación no tuvo acarreo C==0
HS Higher or same Mayor o igual (sin signo) C==1
LO Lower Menor (sin signo) C==0
VS Signed overflow OR exclusiva de la acarreo de bits 14 y 15 V==1
VC No signed overfllow No hay overflow con signo. V==0
48
Organización de computadores (II) Informática
In g . A e r o e s p a c ia l
Lenguaje máquina
Instrucciones de lenguaje máquina
La pila
Lenguajes y compiladores
Ejemplos
49
Informática
La pila In g . A e r o e s p a c ia l
50
Informática
La pila In g . A e r o e s p a c ia l
Otras operaciones
NOP - no operation (sin operación, no hace nada).
STOP - para el procesador
51
Informática
La pila In g . A e r o e s p a c ia l
Subrutinas y funciones
CAL 0x240A: (call). LLama siempre (incondicionalmente) a la función que
comienza en la dirección 0x240A.
RET: retorno de función
CAL
[SP] ← PC;
SP ← SP-1;
PC ← 0x240A;
RET
(Pila) SP ← SP+1;
PC ← [SP] ;
52
Informática
La pila In g . A e r o e s p a c ia l
Funciones anidadas...
53
Informática
La pila In g . A e r o e s p a c ia l
Local
54
Organización de computadores (II) Informática
In g . A e r o e s p a c ia l
Lenguaje máquina
Instrucciones de lenguaje máquina
La pila
Lenguajes y compiladores
Ejemplos
55
Informática
Lenguajes y compiladores In g . A e r o e s p a c ia l
Lenguajes
Lenguaje de programación de alto nivel: lenguaje más cercano al ser humano, en el que
es más fácil implementar algoritmos.
- No es dependiente de un procesador o juego de instrucciones.
- en principio se puede usar en cualquier computador, pero generalmente depende del
sistema operativo. La librerías (funciones) que utiliza dependen del sistema operativo.
Componentes del lenguaje
- Sintaxis (forma): describe las combinaciones correctas de símbolos que se pueden usar
para escribir un programa.
- Semántica: el significado (lo que hace).
Paradigmas de programación
- Programación estructurada: C, Matlab, Javascript
‣ U n program a es un núm ero lim itado de estructuras (secuencias, condiciones y repeticiones). La
estructura m ás im portante son las funciones, que perm ite descom pone un program a en un
conjunto de bloques bien definidos. S e usa para construir niveles de abstracción m ás altos
ocultando los detalles internos (concepto de sistem a)
- Orientado a objetos: Java, C++, ...
- Otros
56
Informática
Lenguajes y compiladores In g . A e r o e s p a c ia l
Compiladores
Compilador (Compiler): es un programa que transforma el código fuente escrito
en un lenguaje de programación (el fuente) en otro lenguaje objeto (target),
normalmente lenguaje máquina.
- Fuente: (C, C++, Fortran...) -> destino: Intel, ARM, etc.
- Target: normalmente código máquina
57
Informática
Lenguajes y compiladores In g . A e r o e s p a c ia l
59
Informática
Lenguajes y compiladores In g . A e r o e s p a c ia l
60
Informática
Lenguajes y compiladores In g . A e r o e s p a c ia l
Intérpretes
Un intérprete es un programa que directamente ejecuta las instrucciones
escritas en un lenguaje de programación. No hay un proceso previo de
compilación ni de enlazado.
- Ejemplos: Matlab, Perl, Python.
En un lenguaje compilado hay dos fases importantes en su ciclo de vida:
- Tiempo de compilación: se hace una vez para generar el ejecutable. Se
necesita un compilador y el código fuente.
- Tiempo de ejecución: se puede ejecutar directamente. Ya no se necesita el
compilador ni el código fuente. Es la forma habitual de usar los programas.
En un lenguaje interpretado no existe esa fase de compilado; todo se hace en
tiempo de ejecución: se lee el fichero fuente, se analiza, se resuelve las
referencias externas (llamadas a funciones, etc.), se traducen las ordenes a
código máquina y se ejecutan,
- Más ineficiente
- Más portable
61
Informática
Lenguajes y compiladores In g . A e r o e s p a c ia l
62
Informática
Lenguajes y compiladores In g . A e r o e s p a c ia l
63
Organización de computadores (II) Informática
In g . A e r o e s p a c ia l
Lenguaje máquina
Instrucciones de lenguaje máquina
La pila
Lenguajes y compiladores
Ejemplos
64
Informática
Ejemplos In g . A e r o e s p a c ia l
Lenguaje ensamblador
//DATA segment (segmento de datos)
ORG 0x2000 TABLA SIMBOLOS
X: DWORD
X ≡ 0x2000
Y: DBYTE
Y ≡ 0x2001
//STACK segment (segmento de pila)
ORG 0x7000 STACK ≡ 0x7200
STACK: DWORD[512] START ≡ 0x4000
//CODE segment (segmento de código)
CASE2 ≡ 0x400A
ORG 0x4000
CASE1 ≡ 0x400E
START: LDR SP, STACK+512 //SP←Base pial - 0x4000
LDR R0, 200 //R0 ← 200 - 0x4002 END ≡ 0x4011
MOV X, R0 //0x2000 ← R0 - 0x4004
CMP R0, 100 //R0 > 100? - 0x4006
JGT CASE1 //Salta si > - 0x4008
//con signo
CASE2: LDR R1, 0 //R1←0 - 0x400A
JAL END //Salta siempre - 0x400C
CASE1: LDR R1, 1 //R1←1 - 0x400E
SHL R1, 1 //Despl. izq.R1 - 0x4010
END: NOP //No hacer nada - 0x4011
MOV Y, R1 //0x2001 ← R1 - 0x4012
65
Informática
Ejemplos In g . A e r o e s p a c ia l
Traduciendo sentencias if
ORG 0x2000 // DATA segment
x: DWORD
y: DWORD
ORG 0x4000 // CODE segment
START: LDR R0, 200 // R0 ← 200
MOV x, R0 // 0x2000 ← R0
LDR R1, 0 // R1 ← 0
MOV y, R1 // 0x2000 ← R1
CMP R0,100 // if R0>100?
JGT case1 //Jump signed GT case1
CMP R0,10 //if R0>10
JGT case2 //Jump signed GT case2
case3: MOV R2, 3 //else R2 ← 3
JAL END //Jump always END
case2: MOV R2, 2 //R2 ← 2
JAL END //Jump always END
case1: MOV R2, 1 //R2 ← 1
END: MOV y, R2 //0x2001 ← R2
66
Informática
Ejemplos In g . A e r o e s p a c ia l
67
Informática
Ejemplos In g . A e r o e s p a c ia l
68
Informática
Ejemplos In g . A e r o e s p a c ia l
70