Está en la página 1de 74

IC-1400.

Fundamentos de Organización
de Computadoras

Tema 3
Arquitectura de Computadoras

Profesor: Ing. Emmanuel Ramírez S.


Agenda

1. Actores importantes en la arquitectura de


computadoras y sus aportes

2. Arquitectura de von Neumann y arquitectura de


Harvard

3. Estructura de la Unidad Central de Procesamiento

4. Jerarquía de Memoria
1. Actores importantes en la arquitectura de computadoras y sus aportes

❑ Generación 0 – computadoras mecánicas (1642-1945)

Inventó una máquina capaz


de sumar y restar

Blaise Pascal (1623-1662)

Inventó una máquina capaz


de sumar, restar, multiplicar
y dividir

Gottfried Leibniz (1646-1716)


3
1. Actores importantes en la arquitectura de computadoras y sus aportes

❑ Generación 0 – computadoras mecánicas (1642-1945)

Inventó la máquina analítica que tenía


Un almacén (memoria)
Un molino (unidad de cómputo),
La sección de entrada (lector de tarjetas)
La sección de salida (salidas perforadas
e impresas)

Charles Babbage(1792-1871)

4
1. Actores importantes en la arquitectura de computadoras y sus aportes

❑ Generación 0 – computadoras mecánicas (1642-1945)

Rediseñó la máquina analítica de Babagge


con relés y cintas de papel perforadas
para la entradas y salidas.
Se dieron los inicios de la era electrónica…

Howard H. Aiken (1900-1973)

MARK I MARK 2
5
1. Actores importantes en la arquitectura de computadoras y sus aportes

❑ Generación 1 – Tubos al vacío (1945-1955)

Se construye COLOSSUS (entro en operación en 1943) para decodificar los


mensajes de la máquina ENIGMA durante la SEGUNDA GUERRA MUNDIAL.

Alan Turing (1912-1954) Fuente: https://www.bbc.com/mundo/noticias/2014/02/140205_tecnologia_colossus_primera_computador

Colossus, una de las primeras


computadoras de
Electrónica digital del mundo
6
1. Actores importantes en la arquitectura de computadoras y sus aportes

❑ Generación 1 – bulbos al vacío (1945-1955)

Se construye ENIAC (Electronic Numeric Integrator and Computer) en


1946.

❖ Proyecto en Respuesta a necesidades militares del gobierno de USA.

❖ Curiosidades:
❖ Máquina Decimal
❖ Pesaba 30 Toneladas
❖ Ocupaba 15 mil pies cuadrados
❖ Contenía 18000 tubos de vacío
❖ Mil veces más veloz que sus predecesoras
electromecánicas
❖ Primera computadora electrónica
❖ Inició su construcción en 1943 y finalizó en 1946

Fuente: http://museo.inf.upv.es/es/eniac/

7
1. Actores importantes en la arquitectura de computadoras y sus aportes

❑ Generación 1 – bulbos al vacío (1945-1955)

❑ Deficiencias de la ENIAC

❖ La tarea de cargar y modificar programas para la ENIAC era


extremadamente tediosa.

❖ Se programaba mediante la conexión y desconexión de cables.

❑ Una nueva visión…

Surge la idea conocida como “concepto del programa


almacenado”, se le atribuye a JOHN VON NEUMANN y consistió
en almacenar el programa y los datos en una zona de
MEMORIA.
8
1. Actores importantes en la arquitectura de computadoras y sus aportes

❑ Generación 1 – bulbos al vacío (1945-1955)

❖ En 1946 von Neumann y sus colegas, en el Instituto de Estudios


Avanzados de Princeton, se avocaron al diseño de un nuevo
computador de programa almacenado, que llamaron IAS.

La gran
mayoría de
las
computador
as actuales
se basan en
esta
arquitectura!

Estructura del Computador IAS (Máquina de Von Neumann) 9


1. Actores importantes en la arquitectura de computadoras y sus aportes

❑ Generación 2 – transistores (1955-1965)

❖ Se sustituyen las válvulas al vacío por transistores.


❖ Los transistores son más baratos, disipan menos calor y son más
pequeños.
❖ Inventado en Laboratorios Bell en 1948.
❖ Se introdujeron:
❖ Lenguajes de Programación de Alto Nivel.
❖ Se proporcionó un software del sistema con
el computador.
❖ Aumentó el procesamiento de los
computadores y se disminuyó su
tamaño. Fuente: https://www.autodesk.com/products/fusion-360/blog/transistors-101-detailed-introduction/

10
1. Actores importantes en la arquitectura de computadoras y sus aportes

❑ Generación 3 – circuitos integrados (1965-1980)

❖ Se inventa el circuito integrado en 1958, por parte de Robert


Noyce comenzando la era de la micro-electrónica.

❖ Comenzó progresivamente la densidad de encapsulación de


componentes.

❖ Se cumplió la LEY DE MOORE (de Gordon Moore, en 1965, fundador de


Intel): El número de transistores que se podrán integrar en un solo chip
se duplicará cada año. (En realidad es cada 18 meses).

Fuente: https://www.steren.cr/circuito-integrado-shift-register.html 11
1. Actores importantes en la arquitectura de computadoras y sus aportes

❑ Ley de MOORE Gráficamente

Fuente: [1]

12
1. Actores importantes en la arquitectura de computadoras y sus aportes

❑ Generación 4 – integración a muy grande escala (1980-?)

❖ Se potencia la VLSI (integración a muy grande escala, Very Large


Scale Integration).

Fuente: https://micro.magnet.fsu.edu/chipshots/cyrix/6x86polylarge.html

❖ Se integran millones de transistores en un único CHIP.

❖ Disminuyen los tamaños de las computadoras, aumentan las


prestaciones, disminuyen los costos. Nace la era del computador
personal.
13
2. Arquitectura Von Neumann y Arquitectura de Harvard

❑ Arquitectura de Von Neumann

CPU
(Unidad de Procesamiento Central)

Unidad de
Control

Dispositivo ALU Dispositivo


de Entrada de Salida
Registros
MAR MDR PC IR
ACC

Unidad de Memoria
Datos Programa
14
2. Arquitectura Von Neumann y Arquitectura de Harvard

❑ Arquitectura de Hardvard

CPU
(Unidad de Procesamiento Central)

Unidad de
Control

Dispositivo ALU Dispositivo


de Entrada de Salida
Registros

Unidad de Unidad de
Memoria Memoria

Datos Programa
15
2. Arquitectura Von Neumann y Arquitectura de Harvard

❑ Arquitectura de Von Neumann (Definiciones)

❖ UC (Unit Control): La Unidad de Control se encarga de buscar instrucciones de


la memoria principal y determinar su tipo.

❖ ALU (Arithmetic Logic Unit): La Unidad Aritmético y Lógica realiza


operaciones como suma, resta, multiplicación, división, AND, OR, NOT, entre
otras.

❖ PC (Program Counter): Es el Contador de Programa, un registro de suma


importancia que apunta siempre a la próxima instrucción.

❖ IR (Instruction Register): Es el Registro de Instrucciones, que contiene la


instrucción que se está ejecutando.

❖ MDR (Memory Data Register) El Registro de Dato de Memoria, en este se lee


o escribe un dato a un bus de datos para que llegue a la memoria o a un puerto
de E/S. También conocido como MBR (Memory Buffer Register).

❑ MAR (Memory Address Register): El Registro de Dirección de Memoria, en


este se almacena la dirección de memoria del dato copiado en el MDR. 16
2. Arquitectura Von Neumann y Arquitectura de Harvard

❑ Funcionamiento del Computador


Memoria Principal

Disco
Carga el Programa en 101010101
Memoria
010101010
Fichero Ejecutable 101010010
101010101001010 101010101
010101010
101
La instrucción se El PC almacena la
transfiere al IR para dirección de la siguie
su ejecución CPU Instrucción

Carga de PC
un
IR
Programa
MAR
MDR
17
2. Arquitectura Von Neumann y Arquitectura de Harvard

❑ Funcionamiento del Computador (Arquitectura von Neumann)

El modo de funcionamiento de un computador consiste en la ejecución


continua de instrucciones.

Se pueden identificar 4 fases de ejecución de una instrucción:

1. Lectura de instrucción (ciclo


fetch)

2. Decodificación de la
instrucción
3. Ejecución de la instrucción

4. Determinación de la
siguiente instrucción

18
2. Arquitectura Von Neumann y Arquitectura de Harvard

❑ Funcionamiento del Computador (Arquitectura von Neumann)

1. Lectura de instrucción (ciclo fetch)

1. El PC obtiene la dirección de la siguiente instrucción en la


memoria principal.
2. PC es transferido hacia el MAR.
3. El contenido de la posición de memoria del MAR se
transfiere al MBR.
4. El MBR transfiere el contenido al IR. Y el PC se incrementa.

1. MAR←PC
2. MBR←[ MAR ]
3. IR←MBR
4. PC←PC + 1
19
2. Arquitectura Von Neumann y Arquitectura de Harvard

❑ Funcionamiento del Computador (Arquitectura von Neumann)

2. Decodificación de la Instrucción

La UC lee el contenido de IR y decodifica la operación asociada


a la instrucción analizando, para ello, el código de operación
de la instrucción.
Cod. Operación Operando
Ensamblado
LD A, 01H

Hexadecimal

20
2. Arquitectura Von Neumann y Arquitectura de Harvard

❑ Funcionamiento del Computador (Arquitectura von Neumann)

3. Ejecución de la Instrucción

La UC activa las señales necesarias para realizar dicha acción.

Esta fase se divide en 3 etapas:

1. Se realiza la lectura de los operandos asociados a la acción.


• Si los operandos están almacenados en memoria, son
transferidos al procesador a través del bus de datos y
almacenados en registros.

2. Se ejecuta la operación especificada en la instrucción (por ejemplo


sumar dos registros).

3. El resultado generado se almacena, ya sea en un registro del


procesador (por ejemplo el Acumulador AC) o en la memoria
principal.
21
2. Arquitectura Von Neumann y Arquitectura de Harvard

❑ Funcionamiento del Computador (Arquitectura von Neumann)

4. Determinación de la siguiente instrucción

En un programa se asume que las instrucciones se ejecutan de manera


ordenada, es decir, tras ejecutar una instrucción concreta se carga y ejecuta
la siguiente instrucción contigua en memoria, esto implica incrementar el
contenido de PC para que almacene la dirección donde se encuentra la
siguiente instrucción a ejecutar. Sin embargo, en ciertas situaciones se
realizan saltos en el programa, pasando a ejecutarse otra instrucción
situada en una posición de memoria diferente.

La UC tiene la tarea de determinar, tras la ejecución de cada instrucción,


cuál es la posición de memoria que alberga la siguiente instrucción a
ejecutar.

22
2. Arquitectura Von Neumann y Arquitectura de Harvard

❑ Funcionamiento del Computador (Arquitectura von Neumann)

https://www.youtube.com/watch?v=jFDMZpkUWCw

23
3. Estructura de la Unidad Central de Procesamiento

❑ El CPU y la Unidad de Control – Diagrama de Alto Nivel

24
3. Estructura de la Unidad Central de Procesamiento

❑ Diagrama de bloques de la Unidad de Control Bus


de
Control

IR (Registro de
Instrucción)
Señales de Control
Internas del CPU

Banderas n
(flags)

Unidad de Control
Reloj Señales de Control
Desde el bus de Control

Señales de Control
hacia el bus de Control

25
3. Estructura de la Unidad Central de Procesamiento

❑ Diagrama de bloques de la Unidad de Control

❑ Del diagrama anterior se tienen como entradas:

❑ Reloj: Es el ciclo del procesador o también conocido como el periódo de reloj.


❑ Registro de Instrucción (IR): Almacena la instrucción actual (es decir el código de
operación y el modo de direccionamiento).
❑ Banderas: Están presentes en la ALU y determinan el estado de cada una de las operaciones
lógico-aritméticas que se van realizando.
❑ Señales de Control provenientes del Bus de Control: Señales provenientes del bus para
su respectivo control.

❑ Del diagrama anterior se tienen como salidas:


❑ Señales de control internas al procesador: Se subdividen en dos, las que mueven los
datos de un registro hacia otro y las que activan funciones específicas de la ALU.
❑ Señales de control hacia el bus de control: Se subdividen en dos, señales que controlan
la memoria y las señales que controlan los dispositivos de E/S.

26
3. Estructura de la Unidad Central de Procesamiento

❑ El concepto de Micro-Operación

❑ Un programa se divide en un conjunto de instrucciones.


❑ Cada instrucción, posee un ciclo de instrucción (Fetch-Decode-Execute-
Determinación del siguiente salto), el mismo a un nivel más en detalle puede
ser subdividido en Fetch-Indirect-Execute-Interrupt.
❑ Sobre cada una de las fases del ciclo de instrucción, existen pequeños pasos
(que involucran pequeñas operaciones y movimientos en los registros del
procesador) a éstas operaciones se les conoce con el nombre de micro-
operaciones.

27
Fuente: [2]
3. Estructura de la Unidad Central de Procesamiento

❑ La primera fase del Ciclo de Instrucción (el Fetch o ciclo de búsqueda o


captación)

❑ El Fetch ocurre al inicio de cada ciclo de instrucción, consiste en buscar una


instrucción en memoria y cargarla en los registros respectivos, los principales son:

❖ PC (Program Counter): Es el Contador de Programa, apunta siempre a la próxima


instrucción a captar.

❖ IR (Instruction Register): Es el Registro de Instrucciones, que contiene la instrucción


que se está ejecutando actualmente.

❖ MBR (Memory Data Register) El Registro de Dato de Memoria, esta conectado a las
líneas de datos del bus del sistema. Contiene el valor a almacenar en memoria o el último
valor leído en memoria. También conocido como MDR (Memory Data Register).

❑ MAR (Memory Address Register): El Registro de Dirección de Memoria, especifica la


dirección de memoria de una operación de lectura o escritura. Esta conectado a las líneas
de dirección del bus del sistema.

28
4. Jerarquías de Memoria

❑ Jerarquías de Memoria

Los elementos de almacenamiento en un computador se pueden clasificar de la


siguiente manera:

• En relación a su ubicación: la memoria puede ser interna al CPU o puede ser


externa.

• En relación a su capacidad: que se refiera a la cantidad de información que


puede almacenar. Para las memorias internas, la capacidad se expresa en
términos de bytes; para las externas, en Mbytes, Gbytes, Tbytes.

• El método de acceso: el cual puede ser secuencial (registros o buffer), directo


(disco), aleatorio (memoria principal), asociativa (caché). Se profundizarán los
métodos de acceso más adelante.

• Las prestaciones: son características que se miden por el tiempo de acceso, el


tiempo de ciclo de memoria o la velocidad de transferencia.

• La tecnología: que hace referencia al tipo de medios físicos para construir el


sistema de memoria; por ejemplo semiconductora, magnética, óptica.

29
4. Jerarquías de Memoria
Entre más abajo en la jerarquía:
1. El tiempo de acceso aumenta.
2. La capacidad de almacenamiento
❑ Jerarquías de Memoria aumenta.
3. El costo por bit disminuye
Clasificación por
Ubicación, Tiempo
de Acceso y Costo

Fuente: [1]

30
4. Jerarquías de Memoria

❑ Jerarquías de Memoria

❑ Los primeros dos niveles de la pirámide que son: los Registros y el


Cache, se encuentran dentro de la CPU.

❑ En el tercer nivel se encuentra la memoria principal, que está fuera del


CPU así como el caché de disco.

❑ En los niveles inferiores de la pirámide se encuentran almacenamientos de


mayor capacidad tales como el Disco Magnético, Disco Óptico, Cinta
Magnéticas y otros periféricos.
El tiempo de acceso (o latencia): Se entiende de
dos maneras diferentes según el tipo de memoria.
❑ A menor jerarquía: Para las de acceso aleatorio es el tiempo que tarda
en la lectura o escritura desde el momento en que
❖ Disminuye el costo se hizo el direccionamiento. Para las memorias que
no son de acceso aleatorio es el tiempo que tarda el
❖ Aumenta la capacidad mecanismo en posicionarse sobre la localidad de
❖ Aumenta el tiempo de acceso memoria para la lectura o escritura.

❖ Disminuye la frecuencia de accesos por parte del CPU

31
4. Jerarquías de Memoria

❑ Jerarquías de Memoria

❑ Las restricciones en cuanto al uso de un tipo de memoria se responden


con 3 preguntas:
❑ Qué tan grande?
❑ Qué tan rápida?
❑ Qué tan cara?

❑ Aquí surge un dilema: Un diseñador de computadoras no puede


únicamente utilizar componentes de memoria rápidos ya que eso
encarecería el precio, tampoco puede utilizar componentes de memoria
lentos ya que esto no sería una estrategia efectiva.

❑ Una alternativa viable es combinar todas las tecnologías y disminuir la


frecuencia de los accesos a memoria por parte del procesador, de ahí la
idea de utilizar la memoria cache.

32
4. Jerarquías de Memoria

❑ Memoria Principal

❑ Existen esencialmente dos tipos de memorias semiconductoras:

❑ RAM (cuyas siglas en inglés son Random Access Memory): Memorias de


acceso aleatorio, que son volátiles porque al suspender la energía se
elimina la información almacenada.
❑ Se subdividen en: SRAM (siglas en inglés de Static RAM), DRAM
(siglas en inglés de Dynamic RAM).

❑ ROM (cuyas siglas en inglés son Read Only Memory): Memorias de solo
lectura, que no son volátiles y son formadas por matrices de resistencias,
diodos o transistores.
❑ Se subdividen en: PROM (siglas en inglés de Programable ROM),
EPROM (siglas en inglés de Erasable Programmable ROM), EEPROM
(siglas en inglés de Electrically Erasable Programmable ROM).

33
4. Jerarquías de Memoria

❑ Memoria Principal o Primaria

❑ La memoria es la parte de la computadora donde los programas y


los datos son almacenados.

❑ La unidad básica de memoria es el bit, que puede ser a su


vez un 1 o un 0.

❑ La aritmética binaria es utilizada por las computadoras ya


que es más sencillo distinguir entre dos valores.

❑ Las memorias consisten de un número de celdas. Cada


celda tiene una dirección (address) utilizado para referirse
a esta.

❑ Si una memoria tiene n celdas tiene de 0 a n-1 direcciones.

34
4. Jerarquías de Memoria

❑ Memoria Principal o Primaria

❑ Las direcciones de memoria se expresan como números binarios,


si una dirección de memoria tiene m bits, el número máximo
direccionable será 2m bits.

❑ Una celda de memoria es la unidad direccionable más pequeña.


Actualmente la mayoría de los fabricantes utilizan una celda de 8
bits (1 byte).

❑ Los bytes se agrupan en “palabras”. Estas pueden ser


agrupaciones de 16, 32 o 64 bits.

35
4. Jerarquías de Memoria

❑ Organización de la Memoria

Fuente: [1]

Ejemplo de 3 maneras de organizar una memoria


36
de 96 bit.
4. Jerarquías de Memoria

❑ Organización de la Memoria

Fuente: [1]

Ejemplo de número de bits por celda para algunos computadoras


históricamente comerciales.
37
4. Jerarquías de Memoria

❑ Organización de la Memoria

❑ Los bytes en una palabra pueden ser ordenados ya sea de


izquierda a derecha o de derecha a izquierda.

❑ Si son ordenados de izquierda a derecha, el ordenamiento recibe


el nombre de big endian.

❑ Si son ordenados de derecha a izquierda, el ordenamiento recibe


el nombre de little endian.

38
Fuente: [1]
4. Jerarquías de Memoria

❑ Organización de la Memoria

Fuente: [1]

(a) Un registro personal en un computador con big endian.


(b) El mismo registro en un computador con little endian.
(c) El resultado de transferir de big endian a little endian.
(d) El resultado de realizar byte-swapping(c).
39
4. Jerarquías de Memoria

❑ Códigos de Corrección de Errores

❑ Ocasionalmente pueden ocurrir errores en las memorias de los


computadoras debido a picos de voltajes u otras causas.

❑ El proceso de manejar errores se puede realizar agregando bits


extra para chequeo de las palabras en memoria.

❑ Por ejemplo: si una palabra en memoria tiene m bits de datos y r


bits de revisión o chequeo. Entonces la longitud total será: n = m
+ r. Esta unidad de n bits se conoce como codeword.

❑ El número de bits en la cual dos codewords difieren se conoce


como la Distancia de Hamming.
❑ Ejemplo: Se tienen dos codewords 10001001 y 10110001, al realizar un XOR
lógico, se obseva que d=3.

40
4. Jerarquías de Memoria

❑ Algoritmo de Hamming

❑ El algortimo de Hamming puede ser utilizado para construir un


corrector de errores para cualquier tamaño de palabra de
memoria.

❑ Se puede detectar un error en un bit y corregirlo.

❑ Las posiciones de los bits que son potencias de dos, se le


conocen con el nombre de bits de paridad, al resto se le conocen
como bits de datos.

❑ En una palabra de 12 bits, deben existir 4 bits de paridad. Dichos


bits seran:
❑ Bit 1
❑ Bit 2
❑ Bit 4
❑ Bit 8

41
4. Jerarquías de Memoria

❑ Algoritmo de Hamming

❑ Cada bit de paridad comprueba las posiciones de bit específicas;


el bit de paridad se establece de modo que el número total de
1s en las posiciones revisadas sea par.

❑ Para un codeword de 21 bits. Las posiciones revisadas son:

Bit 1 chequea los bits 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21.
Bit 2 chequea los bits 2, 3, 6, 7, 10, 11, 14, 15, 18, 19.
Bit 4 chequea los bits 4, 5, 6, 7, 12, 13, 14, 15, 20, 21.
Bit 8 chequea los bits 8, 9, 10, 11, 12, 13, 14, 15.
Bit 16 chequea los bits 16,17,18,19,20,21.

42
4. Jerarquías de Memoria

❑ Algoritmo de Hamming

❑ Calculando el Código Hamming para 8 bits de datos: 10011010:

❑ Paso 1, colocar los bits de paridad según cada una de las


posiciones:

❑ 2^0 = 1
❑ 2^1 = 2
❑ 2^2 = 4
❑ 2^3 = 8

❑ Paso 2, el codeword generado sería de 8 + 4 = 12 bits

43
4. Jerarquías de Memoria

❑ Algoritmo de Hamming

❑ Calculando el Código Hamming para 8 bits de datos: 10011010:

❑ Paso 3, los bits de paridad del Código Hamming se empiezan a


agregar.
❑ Si la cantidad de 1s es par se coloca un 0 en la paridad.
❑ Si la cantidad de 1s es impar se coloca un 1 en la paridad.

❑ Calculando la paridad 1: Chequea los bits 1, 3, 5, 7, 9, 11

P1 = 0, debido a que la cantidad de 1s es par.

44
4. Jerarquías de Memoria

❑ Algoritmo de Hamming

❑ Calculando el Código Hamming para 8 bits de datos: 10011010:

❑ Calculando la paridad 2: Chequea los bits 2, 3, 6, 7, 10, 11.

P2 = 1, debido a que la cantidad de 1s es impar.

❑ Calculando la paridad 4: Chequea los bits 4, 5, 6, 7, 12.

P4 = 1, debido a que la cantidad de 1s es impar.


45
4. Jerarquías de Memoria

❑ Algoritmo de Hamming

❑ Calculando el Código Hamming para 8 bits de datos: 10011010:

❑ Calculando la paridad 8: Chequea los bits 8,9,10,11,12.

P8 = 0, debido a que la cantidad de 1s es par.

Finalmente, el codeword sería:

46
4. Jerarquías de Memoria

❑ Algoritmo de Hamming

❑ Detectando errores con el Algoritmo de Hamming

❑ Supóngase el caso de que el bit de datos d10 tuvo un error y en vez de ser
un 0 fue un 1.

Lo que se realiza para descubrir el bit con error es volver a recalcular el Código
Hamming con las paridades ya obtenidas.

Al realizar lo anterior, se detecta que las paridades incorrectas son p2 y p8, por lo tanto
se detecta que el error es 2 + 8 = 10, es decir, el décimo bit.

47
4. Jerarquías de Memoria

❑ Práctica en Clase

Ejercicio 1. Calcule los codewords con Código Hamming de los siguientes


mensajes:

a. 0110
b. 0001
c. 1010
d. 010101
e. 110110

Ejercicio 2. Revise si los siguientes mensajes son correctos y en caso de


que no, encuentre el error:

a. 1010101
b. 1111101
c. 0111001
d. 10110010011
e. 11101001001

48
4. Jerarquías de Memoria

❑ Los registros son pequeñas memorias de alta velocidad y poca capacidad


que son utilizados por el CPU para almacenar y/o leer diversos tipos de
información en el menor tiempo posible.

❑ Básicamente los registros dentro del procesador tienen dos roles:

❑ Registros Visibles al Usuario: Son utilizados por la computador o el


programador en el lenguaje ensamblador para minimizar las referencias
hacia la memoria principal.

❑ Registros de Estado y Control: Son utilizados por la UC para controlar


la operación del procesador y por programas privilegiados del Sistema
Operativo para controlar la ejecución de los programas.

49
4. Jerarquías de Memoria

❑ Clasificación de los Registros

❑ Registros Visibles al Usuario


❑ Registros de Propósito Específico (se mencionarán en la siguiente filmina)
❑ Registros de Datos
❑ Registros de Dirección (Ejemplo: Punteros a Segmentos, Punteros a la Pila,
Registros de Índice)
❑ Registros de Códigos de Condición (Ejemplo: Registro de Banderas de la ALU).

❑ Registros de Estado y Control


❑ Program Counter (PC) Register
❑ Memory Address Register (MAR)
❑ Memory Buffer Register (MBR)
❑ Instruction Register (IR)

50
4. Jerarquías de Memoria

❑ Ejemplos de Registros de Propósito General para un procesador 8086 de


INTEL

51
4. Jerarquías de Memoria

❑ El elemento básico de un memoria semiconductora es la celda de


memoria que permite almacenar 1 bit de información.

❑ La memoria principal está formada por un conjunto de celdas que se


agrupan, el ancho puede oscilar entre 8 bits o 64 bits.

❑ Dichas celdas presentan las siguientes características:


❑ Presentan dos estados 1 y 0.
❑ Pueden escribirse.
❑ Pueden leerse.

❑ Las mismas tienen (al menos) 3 tipos de señales:


❑ Control: Para determinar si se va a realizar una Lectura o Escritura.
❑ Selección: Para activar la celda.
❑ Datos: Para almacenar o leer el valor almacenado.

52
4. Jerarquías de Memoria

❑ La Memoria Principal es una memoria semiconductora de tipo RAM, se le


conoce como Memoria de Acceso Aleatorio puesto que cualquier
dirección de memoria puede accederse.

❑ La Memoria Principal se puede subdividir en: SRAM y DRAM, la diferencia


principal radica en que la memoria DRAM debe tener “refrescamientos”
para mantener la carga en sus celdas.

❑ Estos refrescamientos se deben a la tecnología que utiliza, es deicr, la


memoria DRAM almacena los datos con un componente electrónico
denominado “capacitores o condensadores” los cuales conforme pasa
el tiempo pierden su carga por lo cual deben cargarse cada cierto tiempo
(usualmente los tiempos de refrescamiento son en términos de mili-
segundos).

❑ Por otra parte, la memoria SRAM emplea transistores para almacenar los
bits, éstos no pierden la carga y por lo tanto no requieren refrescamiento.

53
4. Jerarquías de Memoria

❑ Capacitores y Transistores
Capacitores Simbología de Capacitores

Condensadores Simbología de Transitores

54
4. Jerarquías de Memoria

❑ Estructura de la DRAM – Parte 1

❑ Los decodificadores tanto para la fila como para la columna, permiten seleccionar
cada una de las posiciones de individuales de cada celda de memoria.

Fuente: [3] 55
4. Jerarquías de Memoria

❑ Estructura de la DRAM – Parte 2

❑ Celda de Memoria

Fuente: [3]

❑ Para la escritura: SW1 y SW2 son cerrados y los demás permanecen abiertos.
❑ Para la lectura: Todos los switches son cerrados a excepción del SW1.

56
4. Jerarquías de Memoria

❑ Estructura de la DRAM – Parte 3

❑ Las memorias DRAM no poseen la señal de control denominada CS (Chip Select)


también conocida como ENABLE (EN). Por su parte tienen dos señales de control que
son RAS (row address strobe) y CAS (column address strobe) que también
permiten hacer el “refrescamiento”.

57
Fuente: [3]
4. Jerarquías de Memoria

❑ Diferencias entre SRAM y DRAM

SRAM DRAM
El almacenamiento es por El almacenamiento es por
medio de transistores capacitores
No requiere refrescamiento Requiere refrescamiento
para mantener la carga de
los capacitores y mantener
el almacenamiento
Son más rápidas que las Son más lentas que las
DRAM SRAM
Se utilizan tanto para Se utilizan más para la
memorias principales como construcción de memorias
para memorias CACHE principales.
Son más caras que las Son más baratas que las
DRAM SRAM
58
4. Jerarquías de Memoria

❑ Conceptos básicos de las memorias caché

Cuál es el objetivo de la Memoria Caché?

❑ Los CPUs son cada vez más veloces, utilizando tanto arquitecturas super-
escalares y técnicas de pipelining.

❑ En cambio, las memorias RAM o memorias principales aumentan,


principalmente de capacidad más que de velocidad.

❑ Dado que la memoria RAM no puede suplir una solicitud del CPU en el
tiempo requerido, debe entonces hacer retardos (delays) para poder
esperar.

❑ Dado que los delays o retardos consumen tiempos indeseables, se


requiere una memoria de más rápida velocidad que la memoria RAM. De
ahí el objetivo de la Memoria Caché.

59
4. Jerarquías de Memoria

❑ Conceptos básicos de las memorias caché

❑ La cache almacena copias de partes de la memoria principal, la idea de


esto es reducir los accesos, en la medida de lo posible, que el
procesador realice hacia la memoria principal.

Fuente: [2]

60
4. Jerarquías de Memoria

❑ Conceptos básicos de las memorias caché

❑ Existen diferentes tipos de Caché, estos son: Caché L1, Caché L2, Caché
L3 e incluso Caché L4 (a hoy año 2023).

❑ Los caches de nivel 1 tienen menor capacidad pero mayor velocidad que
los de nivel 2, mientras que los caches de nivel 2 tienen menor capacidad
pero mayor velocidad que los de nivel 3.

Fuente: [2] 61
4. Jerarquías de Memoria

❑ Funcionamiento de la Memoria Caché

Dir. de Memoria

0
1
Bloque de K palabras.
2
3
2^n
M=------
K

2^n - 1 M es la cantidad de bloques.

62
4. Jerarquías de Memoria

❑ Funcionamiento de la Memoria Caché

Memoria Caché

La memoria caché está dividida en C líneas o particiones de K palabras.


Núm. de Bloque

0 Etiquetas Datos
1
2
3

C-1
Longitud del Bloque de K
palabras 63
4. Jerarquías de Memoria

❑ Funcionamiento de la Memoria Caché

Caché Memoria Principal


Dir. de Memoria

La cantidad de líneas o bloques de la memoria caché serán siempre, mucho menor


que la cantidad de direcciones o bloques de la memoria principal. 64
4. Jerarquías de Memoria

❑ Elementos de diseño de una Caché – Función de Correspondencia


Directa

❑ Uno de los tipos de funciones de correspondencia es la correspondencia directa,


donde cada bloque de memoria principal corresponde a solo una línea
posible de caché (es la técnica más sencilla).

65
Fuente: Propia.
4. Jerarquías de Memoria

❑ Elementos de diseño de una Caché – Función de Correspondencia


Directa

❑ En la correspondencia directa, la ubicación de un bloque se determinar por


medio de la siguiente fórmula:
El módulo es el
residuo de una
división entera.

Donde:
i: número de línea de caché.
j: número de dirección de memoria principal.
m: número de líneas en la caché.

i=?

j=384

m=128
66
Fuente: [2]
4. Jerarquías de Memoria

❑ Elementos de diseño de una Caché – Función de Correspondencia


Directa

Ejemplos:

Supóngase que el Cache tiene 128 líneas o bloques:

a) Si el CPU require la dirección de memoria 1000, a cuál línea de la cache


corresponde?

i=1000 mod 128=104

b) Ejercicio: Si el CPU require la dirección de memoria 1500, a cuál línea de la cache


corresponde?

( ) 90 ( ) 91 ( ) 92 ( ) 93

67
4. Jerarquías de Memoria

❑ Elementos de diseño de una Caché – Función de Correspondencia


Directa

Qué es el Bloque?
R/ Cada línea de la Memoria Caché se subdivide en bloques de K palabras.

Las palabras son agrupaciones (potencias de 2) de bytes.

En este ejemplo, cada


línea de Caché se subdivide en
1 bloques de 2 palabras. Esto varía!

68
4. Jerarquías de Memoria

❑ Elementos de diseño de una Caché – Función de Correspondencia


Directa

Cuando el CPU busca una dirección de Memoria, la dirección de memoria


dentro del caché se divide en tres campos:

Campo de Etiqueta: log2 (M/N), donde M es la cantidad de bloques de la memoria principal.

Campo de Palabra: log2 B, donde B es el tamaño de los bloques en palabras.

Campo de Bloque: log2 N, donde N es el tamaño del caché en bloques.

69
4. Jerarquías de Memoria

❑ Elementos de diseño de una Caché – Función de Correspondencia


Directa

Ejemplo #1: Se tiene una memoria principal de 4096 bloques, una memoria
cache de 128 bloques, el tamaño de bloque es de 16 palabras.

M=4096, B=16, N=128

Campo de Etiqueta: log2 (M/N), donde M es la cantidad de bloques de la memoria principal.


Ejemplo: log2(4096/128) = 5 bits.

Campo de Bloque: log2 N, donde N es el tamaño del caché en bloques.


Ejemplo: log2 128 = 7 bits.

Campo de Palabra: log2 B, donde B es el tamaño de los bloques en palabras.


Ejemplo: log2 16 = 4 bits.

70
4. Jerarquías de Memoria

❑ Elementos de diseño de una Caché – Función de Correspondencia


Directa

El Caché Miss: La dirección


solicitada por el CPU no
está en el bloque mapeado
por el Caché.

El Caché Hit: La dirección


solicitada por el CPU está
en el bloque mapeado por
el Caché.

Fuente: [2]

71
4. Jerarquías de Memoria

❑ Funcionamiento de la Memoria Caché


(Diagrama de Flujo)

RA: Read Address

72
Bibliografía

1.Tanenbaum, A. S. (2000). Organización de computadoras: UN


enfoque estructurado.

2. Abd-El-Barr, M., & El-Rewini, H. (2005). Fundamentals of


Computer Organization and Architecture. Hoboken, NJ: John Wiley &
Sons.

73
Fin de la Presentación:
IC-1400. Fundamentos de Organización de Computadoras – Tema 3

Gracias por su atención!

74

También podría gustarte