
1. El lenguaje del Computador
1.1. Instrucciones
1.2. Juego de instrucciones
1.3. Hardware y compilador sencillos de construir
1.3.1. Maximizar el rendimiento
1.3.2. Minimizar el costo y la potencia
2. Operaciones Aritméticas
2.1. Von Nuemann
2.2. ALU (Unidad Aritmética Lógica)
2.2.1. Operaciones
2.2.1.1. Aritméticas
2.2.1.2. Lógicas
2.2.1.3. Desplazamiento
2.2.2. Simple sumador-restador
2.2.3. Descomposición en pasos elementales
2.2.4. Ejecuta rápidamente esos pasos
2.3. Circuitos que contienen ALUs
3. Sistemas Numéricos
3.1. Complemento a uno
3.2. Signo-magnitud
3.3. Sistemas decimales
3.4. Preferencia por el complemento a dos
4. Tipos de operadores
4.1. Circuito capaz de realizar:
4.1.1. Operaciones aritméticas de números enteros
4.1.1.1. suma
4.1.1.2. resta
4.1.1.3. multiplicación
4.1.1.4. división
4.1.2. Operaciones lógicas de bits
4.1.2.1. AND, NOT,OR, XOR, NOR
4.1.3. Operaciones de desplazamiento de bits
4.1.3.1. Desplazar o rotar
4.1.3.2. A izquierda o a derecha
4.1.3.3. Con o sin extensión de signo
5. Ámbito de aplicación del operador
5.1. General
5.1.1. Realiza diferentes operaciones
5.2. Especializado
5.2.1. Realiza una operación con cierta complejidad
5.2.2. Ejemplo: Coprocesador matemático
6. Realización del operador
6.1. Operador combinacional
6.1.1. Realiza una o varias operaciones
6.1.2. Sin memoria / Resultado se vuelca en un registro
6.1.3. Tiempo
6.2. Operador secuencial
6.2.1. Funciona por fases
6.2.2. Necesita memoria
6.2.3. Algoritmos de cálculo propio
7. Principios de Hardware
7.1. I. La simplicidad favorece la regularidad
7.2. II. Más pequeño es más rápido
7.3. III. Haz que el caso más común sea rápido
7.4. IV. Un buen diseño demanda buenos compromisos
8. Operaciones del Hardware del computador
8.1. MIPS emplea una notación rígida
8.1.1. Cada instrucción aritmética realiza una única operación
8.1.2. Siempre tiene 3 variables
9. Operandos y registros
9.1. Operandos de las instrucciones aritméticas son limitados
9.2. Número de variables limitadas
9.3. MIPS
9.3.1. Tiene 32 registros de 32 bits
9.3.2. A un grupo de 32 bits se denomina palabra
9.3.3. Representar un registro utiliza el símbolo $
9.3.4. Restricciones de alineamiento
9.3.4.1. Direcciones múltiplo de s = 4
9.3.4.2. B modulo s = 0
9.3.5. Operandos en memoria
9.3.6. Campos de una instrucción
9.3.6.1. op
9.3.6.1.1. Operación básica de la instrucción
9.3.6.2. rs
9.3.6.2.1. Registro del 1er operando
9.3.6.3. rt
9.3.6.3.1. Registro del 2do operando
9.3.6.4. rd
9.3.6.4.1. Registro del operando destino
9.3.6.5. shamt
9.3.6.5.1. Desplazamiento
9.3.6.6. funct
9.3.6.6.1. Seleccionar una operación
10. Diseño de un repertorio e instrucciones
10.1. CISC
10.1.1. Gran número de instrucciones complejas
10.2. RISC
10.2.1. Pocas instrucciones y muy básicas
10.2.2. Modos de direccionamiento
10.2.2.1. Inmediato
10.2.2.2. Indirecto con desplazamiento
10.3. Tipo de almacenamiento
10.3.1. Pila
10.3.1.1. Operandos implícitos
10.3.2. Acumulador
10.3.2.1. Uno de los operandos es implícito
10.3.3. Registros de propósito general (GPR)
10.3.3.1. Operandos se especifican de forma explícita
10.4. Tipo y tamaño de los operandos
10.5. Conjunto de operaciones soportadas
10.6. Instrucciones de control de flujo
10.6.1. Saltos condicionales
10.6.1.1. Comparaciones entre registros
10.6.2. Saltos incondicionales
10.6.3. Alternativas de salto
10.6.3.1. Direccionamiento relativo al PC
10.6.3.2. Direccionamiento indirecto con registro
11. Tipos de almacenamiento de los operandos GPR
11.1. Registro - Registro
11.1.1. 3 operandos en los registros
11.1.2. Codificaciónn sencilla
11.2. Registro - Memoria
11.2.1. Al menos 1 en los registros
11.3. Memoria - Memoria
11.3.1. 2 o 3 operandos en memoria
11.3.2. Complica la codificación
12. Modos de direccionamiento básicos
12.1. Inmediato
12.1.1. Operando dentro de la instrucción
12.2. Registro
12.2.1. ID Registro que almacena el operando
12.3. Directo
12.3.1. Dirección de memoria que almacena el operando
12.4. Indirecto
12.4.1. ID Registro ->Dirección de memoria/Operando
12.5. Indirecto con desplazamiento
12.5.1. Operando inmediato + Cont. Registro = Dir.Memoria
13. Interpretación de las direcciones de memoria
13.1. Little Endian
13.1.1. Byte menos significativo en la posición más significativa
13.2. Big Endian
13.2.1. Byte menos significativo en la posición menos significativa
13.3. Middle Endian
13.3.1. Trabaja con ambas ordenaciones
14. Representación de instrucciones del computador
14.1. Codificación del repertorio de instrucciones
14.1.1. Longitud variable
14.1.2. Longitud fija
14.1.3. Híbrida
14.2. Instrucciones tipo I(Inmmediate)
14.2.1. Load/Store
14.2.1.1. Registro fuente (RS)
14.2.1.1.1. Acceso a memoria
14.2.1.2. Registro destino(RT)
14.2.1.2.1. Registro datos
14.2.1.3. Inmediato
14.2.1.3.1. Desplazamiento dirección de memoria
14.2.2. Aritmético-lógicas
14.2.2.1. Registro fuente (RS)
14.2.2.1.1. Operando 1
14.2.2.2. Registro destino (RT)
14.2.2.2.1. Registro destino de la operación
14.2.2.3. Inmediato
14.2.2.3.1. Operando 2, directamente su valor
14.2.3. Saltos condicionales/incondicionales
14.2.3.1. Registro fuente (RS)
14.2.3.1.1. Registro condición/ dirección salto
14.2.3.2. Registro destino (RT)
14.2.3.2.1. Registro condición / No se utiliza
14.2.3.3. Inmediato
14.2.3.3.1. Desplazamiento PC / 0
14.3. Instrucciones tipo R(Register)
14.3.1. Aritmético-lógicas
14.3.1.1. Registro-Registro
14.3.1.1.1. Registro fuente (RS)
14.3.1.1.2. Registro destino (RT)
14.3.1.1.3. RD
14.3.1.1.4. sa (Shift Amount)
14.3.1.1.5. function
14.4. Instrucciones tipo J(Jump)
14.4.1. Salto incondicional y retorno de procedimiento
14.4.1.1. opCode
14.4.1.1.1. Código de la operación
14.4.1.2. Instr_index
14.4.1.2.1. offset relativo al PC