La arquitectura de von Neumann
La arquitectura de von Neumann La arquitectura de von Neumann
Introducción a la Programación Tema 1: Conceptos Básicos para la Programación La arquitectura de von Neumann Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial 1 ¿Por qué surgen las computadoras? a.c. Abaco S XVII Pascal Leibnitz S XIX Babbage Programa 1945 Von Neumann Programa interno Ruptura de secuencia. PROCESADOR Y MEMORIA Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial 2
- Page 2 and 3: Introducción a la Programación ¿
- Page 4 and 5: La memoria Operaciones: Lectura: (
- Page 6 and 7: La unidad de control Ejecución de
- Page 8 and 9: Detalle de los componentes de un or
- Page 10 and 11: Los sistemas de numeración Inform
- Page 12 and 13: Sistemas de numeración DECIMAL ->
- Page 14 and 15: Representación de caracteres En c
Introducción a la Programación<br />
Tema 1:<br />
Conceptos Básicos para la<br />
Programación<br />
<strong>La</strong> <strong>arquitectura</strong> <strong>de</strong> <strong>von</strong> <strong>Neumann</strong><br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial 1<br />
¿Por qué surgen las<br />
computadoras?<br />
a.c. Abaco<br />
S XVII Pascal Leibnitz<br />
S XIX Babbage<br />
Programa<br />
1945 Von <strong>Neumann</strong><br />
Programa interno<br />
Ruptura <strong>de</strong> secuencia.<br />
PROCESADOR Y MEMORIA<br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial 2
Introducción a la Programación<br />
¿En qué consiste comunicar algo a la<br />
máquina?<br />
Periféricos<br />
Introducir <strong>de</strong> alguna manera las instrucciones en<br />
algún sitio al que pueda acce<strong>de</strong>r el “cerebro” <strong>de</strong> la<br />
máquina para compren<strong>de</strong>rlas y ejecutarlas.<br />
Memoria<br />
Representación<br />
Unidad <strong>de</strong> Control<br />
¿Qué es un lenguaje <strong>de</strong> programación?<br />
Un lenguaje directamente traducible a operaciones<br />
que algún componente <strong>de</strong> la máquina sea capaz <strong>de</strong><br />
realizar.<br />
Unidad Aritmético Lógica<br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial 3<br />
¿Que es una computadora?<br />
<strong>La</strong> memoria<br />
<strong>La</strong> unidad <strong>de</strong> control<br />
<strong>La</strong> Unidad Aritmético-Lógica<br />
<strong>La</strong> unidad <strong>de</strong> Entrada/Salida.<br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial 4
Detalle <strong>de</strong> los componentes <strong>de</strong><br />
un or<strong>de</strong>nador: Von <strong>Neumann</strong><br />
Unidad Aritmético Lógica<br />
Unidad <strong>de</strong> memoria<br />
buses buses<br />
Unidad <strong>de</strong> Control<br />
Unidad<br />
<strong>de</strong><br />
Entrada<br />
/ Salida<br />
ABSTRACCIÓN<br />
Periféricos<br />
Periféricos<br />
. . . .<br />
.<br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial 5<br />
<strong>La</strong> memoria<br />
Se encarga <strong>de</strong> almacenar el programa y los datos sobre los<br />
que éste <strong>de</strong>be actuar.<br />
Conjunto <strong>de</strong> celdas, accesibles directamente <strong>de</strong> manera individual<br />
mediante su Dirección (relación unívoca).<br />
Sobre cada celda <strong>de</strong> memoria, sólo operaciones <strong>de</strong> lectura<br />
(consulta) y escritura (sustitución) <strong>de</strong> la información<br />
almacenada<br />
El registro <strong>de</strong> direcciones (MAR): almacenará la dirección <strong>de</strong> la<br />
celda <strong>de</strong> memoria a la que se <strong>de</strong>sea acce<strong>de</strong>r.<br />
El registro <strong>de</strong> intercambio (MBR): almacenará la información que<br />
se <strong>de</strong>sea escribir (o leer) en (<strong>de</strong>) la celda <strong>de</strong> memoria<br />
direccionada.<br />
El dispositivo selector: encargado <strong>de</strong> establecer la comunicación<br />
física entre la celda <strong>de</strong> memoria indicada en el registro <strong>de</strong><br />
direcciones y el registro <strong>de</strong> intercambio.<br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial 6
<strong>La</strong> memoria<br />
Operaciones:<br />
Lectura: (transferir <strong>de</strong> la celda<br />
al MBR)<br />
DIR → MAR<br />
selector comunica<br />
(MAR) → MBR<br />
Escritura (copiar <strong>de</strong>l MBR a<br />
la celda):<br />
DIR → MAR<br />
INFO → MBR<br />
selector comunica<br />
MBR → (MAR)<br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial 7<br />
El procesador<br />
Leer secuencialmente <strong>de</strong> la memoria las<br />
instrucciones que componen el programa,<br />
i<strong>de</strong>ntificando para cada una <strong>de</strong> éllas, la operación a<br />
realizar y los operandos que intervienen.<br />
Ejecutar la operación i<strong>de</strong>ntificada sobre los datos<br />
adquiridos y guardar el resultado don<strong>de</strong><br />
corresponda.<br />
Unidad <strong>de</strong> control<br />
Unidad aritmético-lógica<br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial 8
<strong>La</strong> unidad <strong>de</strong> control<br />
Leer <strong>de</strong> la Memoria la instrucción <strong>de</strong>l programa<br />
que se ejecutará en cada momento e i<strong>de</strong>ntificar<br />
la operación a realizar.<br />
Buscar los operandos que intervienen en la<br />
operación.<br />
Informar a la Unidad Aritmético-Lógica <strong>de</strong> la<br />
operación a realizar y suministrarle los<br />
operandos.<br />
Guardar en la memoria el resultado <strong>de</strong> la<br />
operación realizada.<br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial 9<br />
<strong>La</strong> unidad <strong>de</strong> control<br />
El registro Contador <strong>de</strong> Programa (PC). Almacena la dirección <strong>de</strong><br />
memoria don<strong>de</strong> resi<strong>de</strong> la instrucción que se ejecutará a continuación.<br />
Cuando se inicia la ejecución <strong>de</strong> una instrucción, el contenido <strong>de</strong>l<br />
registro contador se incrementa siempre en una unidad.<br />
El registro <strong>de</strong> Instrucción (IR). Almacena la instrucción que se está<br />
ejecutando en cada momento.<br />
Formato <strong>de</strong> instrucción: Código_operación operando(s)<br />
dir_resultado<br />
OPS: operando(s): pue<strong>de</strong> haber uno o dos, en función <strong>de</strong> la<br />
operación, y serán valores o direcciones <strong>de</strong> memoria don<strong>de</strong><br />
realmente se encuentra el operando. Dir_resultado es la<br />
dirección <strong>de</strong> la celda <strong>de</strong> memoria don<strong>de</strong> se <strong>de</strong>be almacenar el<br />
resultado<br />
Secuenciador. Es un dispositivo que se encarga <strong>de</strong> interpretar la<br />
información contenida en el registro <strong>de</strong> instrucción. Una vez<br />
interpretada ésta, se encarga <strong>de</strong> activar en or<strong>de</strong>n los circuitos<br />
apropiados para que la operación se complete con éxito.<br />
El secuenciador “compren<strong>de</strong>” un conjunto limitado <strong>de</strong><br />
operaciones<br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial 10
<strong>La</strong> unidad <strong>de</strong> control<br />
Ejecución <strong>de</strong> una instrucción:<br />
Secuenciador activa circuitos para cargar<br />
instrucción en IR<br />
PC → MAR<br />
(MAR) →MBR<br />
MBR → IR<br />
PC + 1 → PC<br />
Secuenciador interpreta esta instrucción,<br />
transfiriendo a la UAL datos y operador si es<br />
necesario, y almacena el resultado<br />
Repetición <strong>de</strong>l ciclo<br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial 11<br />
<strong>La</strong> Unidad Aritmético-Lógica<br />
Almacenar temporalmente en sus registros<br />
los operandos que le suministra la Unidad <strong>de</strong><br />
Control.<br />
Realizar sobre ellos la operación aritmética<br />
(suma, resta) o lógica (and, or) que le indique<br />
la propia unidad <strong>de</strong> control.<br />
Almacenar temporalmente en sus registros el<br />
resultado <strong>de</strong> dicha operación.<br />
¿Cuántas operaciones tiene que ser<br />
capaz <strong>de</strong> ejecutar una U.A.L.?<br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial 12
<strong>La</strong> Unidad <strong>de</strong> Entrada/Salida.<br />
Sirve <strong>de</strong> intermediario entre la máquina y el<br />
mundo exterior, es <strong>de</strong>cir, se encarga <strong>de</strong><br />
comunicarse con el exterior, con objeto <strong>de</strong><br />
cargar el programa y los datos en la memoria<br />
y <strong>de</strong> notificar al usuario los resultados <strong>de</strong> los<br />
cálculos obtenidos.<br />
Periféricos.<br />
Entrada<br />
Salida<br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial 13<br />
Los buses<br />
Caminos físicos por los que circula la información.<br />
Sirven para que los distintos dispositivos se<br />
comuniquen entre sí y con el exterior.<br />
<strong>La</strong> velocidad <strong>de</strong> trabajo <strong>de</strong> la computadora vendrá<br />
dada, en cierta medida, por la cantidad <strong>de</strong> información<br />
que pueda viajar por el bus en un momento dado<br />
(Anchura <strong>de</strong> banda <strong>de</strong>l bus).<br />
control<br />
datos<br />
direcciones<br />
¿qué hace cada bus y con quién se comunica?<br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial 14
Detalle <strong>de</strong> los componentes <strong>de</strong> un<br />
or<strong>de</strong>nador: Von <strong>Neumann</strong><br />
Reg. Oper 1<br />
+/-<br />
Reg. Oper 2<br />
Acumulador<br />
Unidad Aritmético Lógica<br />
Reg.<br />
Direcciones<br />
MAR<br />
Selecto<br />
r<br />
Unidad <strong>de</strong><br />
memoria<br />
buses<br />
Secuenciador<br />
Reg.<br />
Intercambio<br />
MBR<br />
celdas<br />
<strong>de</strong><br />
memoria<br />
Reg. Instrucción<br />
Unidad<br />
<strong>de</strong><br />
Entrada /<br />
Salida<br />
Periféricos<br />
Periféricos<br />
. . . .<br />
.<br />
Reg.<br />
contador<br />
<strong>de</strong>l<br />
programa<br />
Unidad <strong>de</strong><br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial Control<br />
15<br />
Ejercicio (Utilizando fichas)<br />
Si suponemos la siguiente estructura <strong>de</strong> la memoria, y que en<br />
el registro contador <strong>de</strong> programa hay un 12, <strong>de</strong>cir todos los<br />
pasos que sigue la computadora para ejecutar el programa.<br />
DIRECC<br />
12<br />
13<br />
14<br />
18<br />
37<br />
43<br />
CONTENIDO<br />
Sumard18d37d43<br />
Añadir15d43<br />
Fin<br />
26<br />
18<br />
12<br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial 16
Ejercicio (Utilizando fichas)<br />
Si suponemos la siguiente estructura <strong>de</strong> la memoria, y que en<br />
el registro contador <strong>de</strong> programa hay un 71, <strong>de</strong>cir todos los<br />
pasos que sigue la computadora para ejecutar el programa.<br />
70<br />
71<br />
72<br />
73<br />
10<br />
11<br />
12<br />
13<br />
14<br />
15<br />
añadir 10d12<br />
restar d11 d12 d15<br />
añadir 20 d15<br />
Fin<br />
7<br />
8<br />
15<br />
9<br />
30<br />
25<br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial 17<br />
Representación <strong>de</strong> la información<br />
Los sistemas <strong>de</strong> numeración<br />
Representación <strong>de</strong> la información en una<br />
computadora (datos)<br />
Número enteros<br />
Números reales<br />
Caracteres<br />
Organización <strong>de</strong> la memoria<br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial 18
Los sistemas <strong>de</strong> numeración<br />
Información analógica<br />
Información digital ¿Por qué digital?<br />
0 , 1<br />
BIT: Cantidad <strong>de</strong> información que se pue<strong>de</strong> almacenar en<br />
una variable binaria.<br />
BYTE: Información que se pue<strong>de</strong> codificar con 8 bits. 2 8 =<br />
256 valores.<br />
KBYTE: 2 10 bytes = 1.024 bytes<br />
MBYTE: 2 10 Kbytes = 2 20 bytes = 1.048.576 bytes<br />
GBYTE: 2 10 Mbytes = 2 20 Kbytes = 2 30 bytes = 1.073.741.824<br />
bytes<br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial 19<br />
Los sistemas <strong>de</strong> numeración<br />
Necesitamos una sistemática <strong>de</strong> conversión(una<br />
cosa es el concepto y otra la representación<br />
número romanos)<br />
Sistema <strong>de</strong> numeración posicional<br />
d n-1....d 3d 2d 1d 0<br />
Su valor <strong>de</strong>cimal será<br />
d n-1 r n-1 + d n-2 r n-2 + ... + d 2 r 2 + d 1 r 1 + d 0 r 0<br />
don<strong>de</strong> r representa la base o raiz <strong>de</strong>l sistema<br />
<strong>de</strong> numeración.<br />
Es <strong>de</strong>cir:<br />
∑ − n 1<br />
i=<br />
0<br />
d<br />
i<br />
ir<br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial 20
Sistemas <strong>de</strong> numeración<br />
Decimal (base 10)<br />
0, 1, 2, 3, 4, 5, 6, 7, 8, 9<br />
327 10 = 3 x 100 + 2 x 10 + 7 =<br />
Binario (base 2)<br />
0, 1<br />
3 x 10 2 + 2 x 10 1 + 1 x 10 0<br />
1011 2 = 1 x 2 0 + 1 x 2 1 + 0 x 2 2 + 1 x 2 3 =<br />
11 10<br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial 21<br />
Sistemas <strong>de</strong> numeración<br />
Octal (base 8)<br />
0,1,2,3,4,5,6,7<br />
203 8 = 3 x 8 0 + 0 x 8 1 + 2 x 8 2 = 131 10<br />
Hexa<strong>de</strong>cimal (base 16)<br />
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F<br />
AC 16 = 10 x 16 1 + 12 x 16 0 = 172 10<br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial 22
Sistemas <strong>de</strong> numeración<br />
DECIMAL -> BINARIO<br />
Tenemos un número en <strong>de</strong>cimal N 10<br />
N 10 = d n-1 2 n-1 + d n-2 2 n-2 + ... + d 2 2 2 + d 1 2 + d 0<br />
=<br />
d 0<br />
2(dn-1 2n-2 + dn-2 2n-3 + ... + d2 2 + d1 ) + d0 2(2(dn-1 2n-3 + dn-2 2n-4 + ... + d2 ) + d1 ) +<br />
29 10 = 11101 2<br />
29 2<br />
1 14 2<br />
0 7 2<br />
1 3 2<br />
1 1<br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial 23<br />
Sistemas <strong>de</strong> numeración<br />
BINARIO OCTAL<br />
Agrupar <strong>de</strong> 3 en 3 (dcha -> izqda)<br />
BINARIO HEXADECIMAL<br />
Agrupar <strong>de</strong> 4 en 4<br />
Ejemplo<br />
N 10 = 29<br />
N 2 = 11101 = 11 101 => N 8 = 35<br />
3 5<br />
N 2 = 11101 = 1 1101 => N 16 = 1D 16<br />
1 13<br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial 24
Representación <strong>de</strong> la información en<br />
una computadora (datos)<br />
Numeros enteros<br />
Enteros sin signo<br />
Enteros con signo<br />
Magnitud y signo<br />
Complemento a 1<br />
Complemento a 2<br />
Exceso a M<br />
Numeros reales<br />
Caracteres<br />
ABSTRACCIÓN<br />
Coma fija<br />
Coma flotante<br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial 25<br />
Representación <strong>de</strong> caracteres<br />
Caracteres alfabéticos: <strong>La</strong>s letras<br />
mayúsculas y minúsculas <strong>de</strong>l alfabeto a..z,<br />
A..Z<br />
Caracteres numéricos: Los dígitios <strong>de</strong>l<br />
sistema <strong>de</strong>cimal 0..9<br />
Signos <strong>de</strong> puntuación: : ; . , ( ) “ ? ¿ ! ...<br />
Operadores aritméticos: + - = / *...<br />
Operadores lógicos: ≠∧∨⇔⇒ Caracteres especiales: ©←↑↓→....<br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial 26
Representación <strong>de</strong> caracteres<br />
En cualquier codificación <strong>de</strong> los caracteres que utilizemos <strong>de</strong>be<br />
verificarse:<br />
Unicidad <strong>de</strong> código (cada código equivaldrá a un carácter<br />
y viceversa).<br />
Or<strong>de</strong>n (los códigos guardarán los ór<strong>de</strong>nes establecidos<br />
para cada tipo <strong>de</strong> caracteres, es <strong>de</strong>cir, 0
Organización <strong>de</strong> la memoria<br />
Normalmente, los caracteres necesitan 8 bits, los números<br />
enteros 8 (128), 16 (33920) ó 32 (21.474.83.648) bits,<br />
<strong>de</strong>pendiendo <strong>de</strong> su precisión, y los números reales 32 ó 64 bits<br />
¿cuántos bits colocamos en cada posición direccionable? -> 1<br />
byte<br />
Palabra -> conjunto <strong>de</strong> bits necesarios para almacenar un entero<br />
<strong>de</strong> longitud normal.<br />
ABSTRACCIÓN<br />
Tamaño <strong>de</strong> la memoria o espacio <strong>de</strong> direcciones -> capacidad <strong>de</strong><br />
la memoria (el número <strong>de</strong> bytes disponibles)<br />
Tipos <strong>de</strong> memoria: RAM y ROM<br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial 29<br />
Pero, ¿qué es la tan nombrada<br />
abstracción?<br />
abstracción.(Del lat. abstractĭo, -ōnis).<br />
1. f. Acción y efecto <strong>de</strong> abstraer o abstraerse.<br />
abstraer.(Del lat. abstrahĕre).<br />
1. tr. Separar por medio <strong>de</strong> una operación intelectual<br />
las cualida<strong>de</strong>s <strong>de</strong> un objeto para consi<strong>de</strong>rarlas<br />
aisladamente o para consi<strong>de</strong>rar el mismo objeto en su<br />
pura esencia o noción.<br />
2. intr. Prescindir, hacer caso omiso. Abstraer <strong>de</strong><br />
examinar la naturaleza <strong>de</strong> las cosas. U. t. c. prnl.3.<br />
prnl. Enajenarse <strong>de</strong> los objetos sensibles, no aten<strong>de</strong>r a<br />
ellos por entregarse a la consi<strong>de</strong>ración <strong>de</strong> lo que se<br />
tiene en el pensamiento.<br />
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar<br />
Romay, Romay,<br />
Pedro J <strong>La</strong>ra Bercial 30