Círculos de proporción Funcionamiento
Regla de cálculo Funcionamiento
Procesos de cálculo manual y automático
Elementos de una máquina de Turing
Funcionamiento de una máquina de Turing
Ejemplo de programa en una máquina de Turing Máquina de Turing para sumar dos números Estado actual Símbolo leído Operación siguiente Comentarios s0 b R s0 Buscando el primer 1 s0 1 R s1 Primer 1 encontrado s1 1 R s1 Buscando blanco de separación s1 b 1 s2 Blanco encontrado, se cambia por 1 s2 1 L s2 Buscando blanco de la izquierda s2 b R s3 Hallado blanco, cambiar el 1 siguiente s3 1 b s4 Se cambia el primer 1 por blanco s4 b H s0 Fin del proceso
Esquema del funcionamiento de una instrucción
m = número máximo almacenable en una palabra; {2^nº de bits-1} n = tamaño de la memoria; p = número de registros del procesador; type palabra = 0..m; dir = 0..n-1; memoria = array[0..n-1] of palabra; registros = array[0..p-1] of palabra; procedure interprete (var mem:memoria; var regs:registros; inicio:dir) var pc, dirdato: dir; ir, dato: palabra; haydato, fin: boolean; tipoinstr: integer; begin pc := inicio; fin := false; while not fin do begin ir := mem[pc]; pc := pc + 1; determinatipo (ir, tipoinstr, haydato); if haydato then begin determinadirdato (dirdato); dato := mem[dirdato] end ejecuta (tipoinstr, dato, mem, regs, pc, fin) const end
#define n tamaño de la memoria #define p número de registros del procesador typedef .... palabra; /* char, int, long int, etc.*/ typedef palabra *direccion; typedef palabra memoria[n]; typedef palabra registros[p]; interprete (memoria mem; direccion inicio; registros regs){ direccion pc, dirdato; palabra ir, dato; int haydato, fin, tipoinstr; pc = inicio; fin = 0; while (!fin){ ir = *pc; pc++; determinatipo (ir, &tipoinstr, &haydato); if (haydato){ determinadirdato (&dirdato); dato = *dirdato; } ejecuta (tipoinstr, &dato, mem, regs, &pc, &fin);
Concepto de máquina virtual Lenguaje Li+1 Lenguaje Li Máquina virtual de nivel i Máquina virtual de nivel i+1
Niveles de un computador actual
Modelo de programación del PDP-11
Modelo de programación de la arquitectura VAX
Estructura de los computadores de las series IBM 360/370/390
Organización de la memoria del HP-3000
Modelo de programación del microprocesador Z-80
Modelo de programación del microprocesador MC68000
Comparación de la familia de microprocesadores de Motorola MC68xxx Nombre Año Bus de datos Espacio de direcciones Comentarios 68000 1979 16 16 M Primer miembro de la familia 68008 1982 8 4 M Bus de datos de 8 bits 68010 1983 16 16 M Memoria virtual 68012 1983 16 2 G Mayor espacio direccionable 68020 1984 32 4 G CPU de 32 bits 68030 1987 32 4 G Incorpora manejo de memoria 68040 1989 32 4 G Coprocesador y memoria caché incorporada
Modelo de programación del microprocesador i8086
Modelo de programación de los microprocesadores i80386 e i80486
Comparación de la familia de microprocesadores de Intel Nombre Año Bus de datos Espacio de direcciones Comentarios 8086 1978 16 1 M Primer microprocesador de 16 bits 8088 1980 8 1 M Bus de datos de 8 bits 80186 1982 16 1 M 8086 + gestión de E/S 80188 1982 16 1 M 8088 + gestión de E/S 80286 1982 16 16 M 8086+ gestión de memoria 80386 1985 32 64 T Registros de 32 bits 80386SX 1988 16 64 T 80386 con bus de 16 bits 80386SL 1990 16 64 T 80386SX de bajo consumo para portátiles 80486 1989 32 64 T 80386 + Coprocesador y memoria caché incorporada 80486SX 1991 32 64 T 80486 sin coprocesador
Últimos microprocesadores de la familia Intel Nombre Año Bus de datos Comentarios Pentium 1993 32 Técnicas de ejecución paralela (superescalar) y núcleo RISC Pentium Pro 1995 32 Predicción de bifurcaciones, ejecución especulativa Pentium II 1997 32 Incorporación de instrucciones MMX Celeron 1998 32 Versión de menos prestaciones del Pentium II Xeon 1998 32 Versión del Pentium II para servidores Pentium III 1999 32 Ampliación del juego de instrucciones de punto flotante Pentium 4 2000 32 Ampliación de las instrucciones multimedia (SSE) Itanium 2001 64 Nueva arquitectura de 64 bits. Técnicas VLIW Itanium 2 2002 64 Aumento de la profundidad de segmentación
Modelo de programación de la Arquitectura Alpha
Concepto de ventanas de registros solapadas Ventana de registros 1 R1 R2 R3 R0 Ventana de registros 2 R1 R2 R3
Banco de registros con ventanas cíclicas solapadas
Modelo de programación de la Arquitectura SPARC