Académique Documents
Professionnel Documents
Culture Documents
2 Arquitectura RISC
2.3 Arquitectura CISC
2.4 Clasificación de arquitecturas a nivel de lenguaje maquina
El tipo de almacenamiento proporcionado para que los operandos estén en la CPU,
en contraposición a que estén en memoria, es el factor distintivo más importante
entre las arquitecturas a nivel lenguaje máquina.
• Máquinas de pila.
• Máquinas de acumulador.
• Máquinas de registros de propósito general.
Las máquinas más primitivas utilizaban arquitecturas estilo pila o acumulador, las
máquinas diseñadas en los últimos diez años utilizan una arquitectura de registros
de propósito general.
Arquitectura de acumulador
Dentro del computador, cada instrucción se representa por una secuencia de bits.
La instrucción esta dividida en campos correspondientes a los elementos
constructivos de la misma.
ADD: Sumar
SUB: Restar
MPY: multiplicar
DIV: Dividir
Tipos de instrucciones
Numero de direcciones
El número de direcciones por instrucciones es una decisión básica de diseño.
Menos direcciones significan instrucciones más primarias, lo que requiere un
procesador menos complejo. También da lugar a instrucciones más cortas.
Tipos de datos: los distintos tipos de datos con los que se efectúan
operaciones.
Tipos de operandos
Las instrucciones maquina operan con datos. Las categorías generales mas
importantes de los datos:
Direcciones
Números
Caracteres
Datos lógicos
NUMEROS
En coma flotante
En decimal
Caracteres
Datos lógicos
General
Entero
Ordinal
BCD empaquetado
Puntero de proximidad
Campo de bits
Cadena de bytes
Coma flotante
Tipo de operaciones
Clasificación
• Transferencia de archivos
Move(transferir): Transfiere una palabra o bloque desde un origen a un
destino.
Store(memorizar): transferir una palabra desde el procesador a memoria.
Load(cargar o capta): transfiere una palabra desde memoria a procesador.
Exchange(intercambiar): intercambia los contenidos de origen y destino.
Push(introduce a la pila): transfiere una palabra desde el origen hasta la
cabecera de la pila.
• Aritmética
Add(suma): calcula la suma de dos operadores.
Substract(restar): calcula la diferencia de dos operadores.
Multiply(multiplicación): calcula producto de dos operadores.
Divide(división): calcula cociente de dos operadores.
Absolute(valor absoluto): sustituye el operando por su valor absoluto.
Negate(opuesto): cambia el signo del operador
• Lógicas
AND(Y): Realiza una operación lógica Y.
OR(O): Realiza una operación lógica O.
NOT(COMPLEMENTO):realiza el complemento.
TEST(COMPROBAR):comprueba la condición especificada.
SHIFT(DESPLAZAMIENTO): desplaza el operando a la izquierda(derecha),
introduciendo valores constantes por el otro extremo.
ROTATE(ROTAMIENTO): desplaza el operando a la izquierda(derecha) de
forma cíclica.
• De conversión
Traslate(traducir): traducción de los valores de una sección de memoria
basada en una tabla de correspondencia.
Convert(Convertir): convierte el contenido de una palabra de un formato a
otro(de decimal empaquetado a binario).
• De E/S
INPUT(Entrada): transfiere datos desde un puerto o dispositivo de E/S al
destino.
OUTPUT(salir): transfiere datos desde el origen especificado a un puerto o
dispositivo de E/S.
START(iniciar E/S): transfiere instrucciones al procesador de E/S para
iniciar operaciones de E/S
TEST: transfiere información de estado desde el sistema de E/S al destino
especificado.
• De control de flujo
Jump(bufircacion o salto): carga el PC con la dirección especificada
Jump condicional(salto condicional): dependiendo de la condición, o carga
el pc con la dirección indicada, o no hace nada.
Jump to subrutina: guarda la información de control de programa en una
posición conocida y salta a la dirección indicada.
Execute(ejecutar): capta el operando de la dirección indicada y lo ejecuta
como una instrucción; no modifica el PC.
Skip(salto implicado): incrementa el PC de manera que se salte la
instrucción siguiente.
Halt(parar): detiene la ejecución del programa.
Transferencia de datos
• Mov
• Push
• Pusha
• Movsx
• Lea
Aritméticas
ADD
SUB
MUL
IDIV
Logicas
• AND
• BTS
• BST
• BSF
• SHL/SHR
• SAL/SAR
Control de flujos
• JMP
• CALL
• JEL/JZ
• LOOPE/LOOPZ
• INT/INTO
Direccionamiento inmediato
Características: Se
acepta cualquier base numérica El
símbolo de numeral (#) se utiliza para indicar en el operando que se trata de un
modo de direccionamiento inmediato. El
rango del operando podrá ser de 8bits (-256 a 255) y de 16bits (-32,768 a 65,535).
Tenga precaución pues existen casos especiales de inmediatos que no llevan
operando
Direccionamiento Directo
Direccionamiento de registro
El modo de registro es similar al modo directo. La diferencia clave entre los dos
modos es que el campo de dirección de la instrucción se refiere a un registro en
lugar de una posición de memoria. El direccionamiento de registro no tiene una
dirección eficaz. Tres o cuatro bits son utilizados como campo de dirección para
hacer referencia a los registros.
Direccionamiento de desplazamiento
1) Direccionamiento relativo
3) Direccionamiento de índice
Formatos de Instrucción
• Código de operación.
• Dirección de los operandos.
• Dirección del resultado.
• Dirección de la siguiente instrucción (casi siempre implícita).
• Tipos de representación de los operandos (casi siempre implícitos en el
código de operación).
Para simplificar su codificación y decodificación, el formato se divide en
campos:
INSTRUCCIONES.
CICLO DE EJECUCIÓN
Es el período de tiempo durante el cual un ordenador lee y procesa una instrucción
de lenguaje máquina de su memoria o la secuencia de acciones que la unidad
central (CPU) funciona para ejecutar cada instrucción de código de máquina en un
programa.
Nivel Jerárquico.
Tipos de registros:
Registros de propósito general
Registros de segmentos
Registros de bandera
Registros apuntadores
La unidad de disco duro o unidad de disco rígido (en inglés: hard disk
drive, HDD) es el dispositivo de almacenamiento de datos que emplea un sistema
de grabación magnética para almacenar archivos digitales. Se compone de uno o
más platos o discos rígidos, unidos por un mismo eje que gira a gran velocidad
dentro de una caja metálica sellada. Sobre cada plato, y en cada una de sus caras,
se sitúa un cabezal de lectura/escritura que flota sobre una delgada lámina de aire
generada por la rotación de los discos. Es memoria no volátil.
Transferen Transferen
cia de cia de
palabras bloques
Memoria
CPU Cache principal
Recibe la
dirección RA
de la CPU
Acceso a la memoria
¿esta en la no
principal para obtener el
cache el
bloque que contiene a
bloque que
RA
contiene a RA
si Asignar línea de cache
Captar la para el bloque de
palabra RA y memoria principal
entregarla a la
CPU
Cargar el bloqueo Proporcionar la
de memoria palabra RA a la
principal en la CPU
línea de cache
hecho
Organización típica de la cache
TAMAÑO DE LA CACHE
I=j modulo m
Donde
M=vxk
I = j modulo v
Donde
ALGORITMOS DE SUSTITUCION
Una vez llenado la cache, para introducir un nuevo bloque debe sustituirse uno
de los bloques existentes. Para el caso de correspondecia directa, solo hay una
posible línea para cada bloque particular y no hay elección posible. Para las
tecnicas asociativas se requieren algoritmos de sustitución. Para conseguir alta
velocidad, tales algoritmos deben implementarse en hardware. Se han probado
diversos algoritmos: el mas efectivo es probablemente el denominado
(LRU:utilizado menos recientemente): se sustituye el bloque que se ha
mantenido en la cache por mas tiempo sin haber sido referenciado. Otra
posibilidad es (FIFO: primero en entrar y primero en salir): se sustituye aquel
bloque del conjunto que ha estado mas tiempo en la cache. Otra posibilidad es
(LFU: utilizado menos frecuentemente): se sustituye aquel bloque del conjunto
que ha experimentado menos referencias.
POLÍTICA DE ESCRITURA
TAMAÑO DE LINEA
--a medida que un bloque se hace mas grande, cada palabra adicional esta mas
lejos de la requerida y por tanto es mas improbable que se necesario a corto
plazo.
NUMERO DE CACHES
--para un tamaño dado de cache, una unificada tiene una tasa de aciertos mayor
que una cache partida, ya que nivela automáticamente la carga entre captación
de instrucciones y de datos.
NIVELES DE LA CACHE
Nivel 1: Esta memoria cache es extremadamente rápida pero relativamente
pequeña y hoy día se encuentra integrada en el CPU (años atrás podía o no
estar integrada en el CPU). Todas las instrucciones se buscan primero aquí, si
no están presentes entonces se procede al siguiente nivel.
Nivel 2: Esta memoria cache es considerablemente más grande que L1 y
también está dentro del CPU (años atrás no lo estaba). Si las instrucciones no
fueron encontradas en el Nivel L1 entonces se buscan en este Nivel L2, este
tipo de memoria no es tan rápida como la usada en L1 por tanto es de esperar
un poco de latencia (demora).
Nivel 3: Este es un nivel de memoria especializada que ayuda a mejorar el
rendimiento de los Niveles de Cache L1 y L2. Es mucho más lenta que la
memoria L1 o L2, pero mucho más rápida que la memoria RAM del Sistema.
En el caso de los Procesadores con muchos Cores, cada uno de ellos tiene su
propio Cache L1 y Cache L2, pero, todos comparten el mismo Cache L3.
Cuando una instrucción es buscada en L3 se eleva a un cache de un nivel más
alto
3.3 Memoria primaria
Memorias de semiconductores
Se puede advertir que, si alimentamos un "1" (por ej. 5 volts) en las "salidas" S0 S1
S2 S3 obtendremos la secuencia de "1" de nuestro contador (programa).
Son ROMs programables y borrables. Son más caras que las PROM, pero pueden
borrarse y volver a grabarse. El borrado se hace sacando los chips de sus zócalos
en las plaquetas de memoria y exponiéndolos a luz ultravioleta de alta intensidad
durante 15 o 20 minutos. Son muy útiles cuando el software que se carga en ella
está en etapa de desarrollo. Desde el punto de vista de la computadoras son ROMs
ya que esta solo puede leer y no escribir en ellas.
2. DRAM Síncrona.
Las altas frecuencias de trabajo de los actuales procesadores han obligado a
las memorias a dar un salto importante en cuanto a velocidad se refiere, ya
que de nada sirve tener procesadores tan rápidos si se generan ciclos de
espera en la memoria, lo que da origen a los conocidos “cuellos de botella”.
Como respuesta a esta situación se han desarrollado las memorias SDRAM
cuya característica distintiva es soportar en factores de multiplicación la
frecuencia de los procesadores, proveyéndoles de un bus rápido y fiable.
Entre las distintas tecnologías desarrolladas siguiendo este principio
tenemos:
Si bien existen varios tipos de FF, consideraremos solo uno de ellos, que utilizaremos
en nuestras futuras descripciones: el Flip-Flop R-S.
Cada vez que se efectúa un acceso a una celda (para lectura o grabación) se realiza
el refresco de esa posición. Pero no es suficiente, dado que ciertas posiciones de
memoria pueden no ser accedidas por largo tiempo y, por lo tanto se necesita un
proceso adicional de refresco. Mediante este proceso, cada celda es refrescada a
breves intervalos de tiempo.
La figura muestra las curvas características de carga (grabación de un 1) y de
descarga (grabación de un 0) en una celda.
Una celda de memoria RAM dinámica es más simple que una estática y por lo tanto
más pequeña. Por lo tanto, la RAM dinámica es más densa (más celdas por unidad
de superficie) y más barata que la correspondiente SRAM. Por otra parte una DRAM
requiere de una circuitería para el refresco. En memorias grandes, el coste fijo de la
circuitería de refresco se ve más que compensado por el menor costo de las celdas
DRAM. Así, las DRAM son preferidas para memorias grandes. Un último detalle es
que las SRAM son generalmente algo más rápidas que las DRAM.