arquitectura_computadoras_clase_7_22092025.ppt

mviapiano 0 views 32 slides Oct 12, 2025
Slide 1
Slide 1 of 32
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32

About This Presentation

Arquitectura de computadoras para inteligencia artificial


Slide Content

Clase 7 Clase 7
Arquitectura de Arquitectura de
ComputadorasComputadoras

Arquitecturas:

Arquitectura de Von Neumann

Arquitectura Harvard

Arquitecturas:

Arquitectura de Von Neumann

Arquitectura Harvard

Almacenamiento (Memoria)Almacenamiento (Memoria)

Unidades de memoriaUnidades de memoria
•1 bit1 bit(puede tomar valores: 1 ó 0 - binarios)(puede tomar valores: 1 ó 0 - binarios)
•1 byte1 byte: 8 bits: 8 bits
•1 kilobyte (Kb)1 kilobyte (Kb) : 2: 2
1010
bytes bytes
•1 megabyte (Mb)1 megabyte (Mb) : 2: 2
1010
kilobytes: 2 kilobytes: 2
2020
bytes bytes
•1 gigabyte (Gb)1 gigabyte (Gb) : 2: 2
1010
megabytes: 2 megabytes: 2
3030
bytes bytes
•1 terabyte1 terabyte : 2: 2
1010
gigabytes: 2 gigabytes: 2
4040
bytes bytes
•1 petabyte1 petabyte : 2: 2
1010
terabytes: 2 terabytes: 2
5050
bytes bytes
•1 exabyte1 exabyte : 2: 2
1010
petabytes: 2 petabytes: 2
6060
bytes bytes
•1 zettabyte : 21 zettabyte : 2
1010
exabytes: 2 exabytes: 2
7070
bytes bytes
•1 yottabyte : 21 yottabyte : 2
1010
zettabytes: 2 zettabytes: 2
8080
bytes bytes

MemoriasMemorias

Memoria realMemoria real: Chips de memoria: Chips de memoria

Memoria virtualMemoria virtual: Archivos creados en : Archivos creados en
el disco rígido a modo de memoria el disco rígido a modo de memoria
adicional.adicional.
Tipos de memoriasTipos de memorias

-Memoria RAM-Memoria RAM

-Memoria ROM-Memoria ROM
Elemento o dispositivo que tiene como objetivo almacenar, guardar o
retener de forma permanente y/o temporal una cantidad de información.

•Como puedo “ver” que memoria tengo instalada en
mi equipo sin necesidad de desarmarlo, hay algún
comando??
•En windows WMIC memorychip (wmic memorychip get banklabel, capaity,
memorttype, typedetail, speed, manufacturer)
•En Linux DMIDECODE (sudo dmidecode –type memory | less)
• LSHW (sudo lshw –short)
•Con un software externo. CPUID

Memoria RAM
DRAM
Memoria dinámica
SRAM
Memoria estática
SDRAM
Síncrona
SDRAM DDR
Doble tasa de transferencia
Memoria caché
Memoria RAMMemoria RAM
(Memoria de acceso aleatorio)
• Requiere ser actualizada constantemente.
•Es un componente imprescindible para la computadora: su misión
consiste en tener preparadas las instrucciones y los datos para
que la CPU pueda procesarlos.

Es la más habitual y constituye la mayor parte de la
memoria de una computadora. Se trata de una memoria de
acceso aleatorio y volátil, por lo que al apagar el equipo se
pierde la información existente en ella.
SDRAM SDRAM
(síncrona)(síncrona)
La más utilizada. La más utilizada.
(168 contactos) (168 contactos)
SDRAM DDRSDRAM DDR Doble tasa de Doble tasa de
transferencia (184 transferencia (184
contactos)contactos)
Memoria DRAMMemoria DRAM
(Memoria dinámica)


No necesita actualizarse continuamenteNo necesita actualizarse continuamente

Es más caraEs más cara

Se utiliza en la Memoria CachéSe utiliza en la Memoria Caché
Memoria SRAMMemoria SRAM
(Memoria estática)

Memoria ROM
ROM PROM EPROM EEPROM
Memoria ROMMemoria ROM
(Memoria de sólo lectura)
• No se puede escribir en ella. Contiene
información grabada por el fabricante que no
desaparece al desconectar el equipo.
• Suele albergar la BIOS de cualquier placa base.


Memoria PROM
•Es programable
•Solo se puede programar una vez
Memoria EPROM
Es borrable y programable
Memoria EEPROM
Puede ser borrada y reprogramada eléctricamente.
También se denomina memoria flash, (cámaras
digitales, móviles, etc.)

Memoria FlashMemoria Flash
•Es una forma desarrollada de la memoria
EEPROM que permite que múltiples posiciones de
memoria sean escritas o borradas en una misma
operación de programación mediante impulsos
eléctricos, frente a las anteriores que solo
permiten escribir o borrar una única celda a la
vez.

Funcionamiento de la Memoria

Un modo sencillo de comprender el
funcionamiento de la memoria es asemejarlo con
un gran panel constituido por un conjunto de
casillas o células, denominadas posiciones de
memoria, en las que se almacenan los datos.

La computadora debe saber exactamente dónde
se encuentra cada dato en la memoria, por lo
que identifica cada posición de la memoria
mediante un número denominado dirección de
memoria.

Cada posición de memoria almacena un byte, lo
que hace pensar en la gran cantidad de
posiciones que serán necesarias para poder
almacenar instrucciones y datos; este es el
motivo por el que las computadora cada vez
disponen de mayor cantidad de memoria

Celda de memoria:
Se le llama celda de memoria al circuito más pequeño
que es capaz de almacenar la información de un bit. El dispositivo más
simple, el Flip-Flop D :
Un poco de terminología:

Palabra de memoria: Es un grupo de bits (ó celdas de memoria) que
representan un dato o una instrucción.
El “ancho” de la palabra puede ser desde 1 hasta N
bits
Por ejemplo el primer microprocesador (µp 4004) tenia una ancho de
palabra de 4 bits (NIBBLE).
El primer procesador comercial con un ancho de palabra (o bus de datos)
de 8 bits fue el µp 8086.
Byte: Es un grupo de 8 bits (unidad mínima de memoria que representa
un 0 o un 1).
Nibble: Es la mitad de un Byte, es decir una palabra de 4 bits.

01101001
11001001
10100110
10000111 Byte
0011
nibble -
00110011 nibble+
001110101100
01011010
00110011
Palabras
de 8 bits
Capacidad de memoria: Se llama así a la cantidad de información que se
puede almacenar en una memoria. La notación mas común es M palabras
de N bits.
Ejemplo : Una memoria de 16 x 8 es capaz de almacenar 16 palabras de
8 bits (es decir 128 bits o 16 bytes).

Densidad : Otra forma de definir la capacidad de una memoria es la
densidad. Una memoria tiene mas densidad que otra si puede almacenar
mas bits.
Mapa de Memoria: Se llama así a la distribución de una memoria. Un
bloque de memoria se puede dividir en diferentes secciones para ser
usadas de forma diferente.
Direcciones de Memoria: Es un número que identifica la localización de
una palabra dentro de la memoria. Cada palabra almacenada en una
memoria tiene una dirección única ligada a ella.

Lectura: Se llama así a la operación que permite recuperar los datos
almacenados en una o varias direcciones de memoria. También se le
llama “Fetch”.
Escritura: El la operación que permite almacenar una serie de palabras
dentro de la memoria, estos pueden ser datos o instrucciones. También
se llama “programar” la memoria.
Tiempo de Acceso: Es una medida de velocidad de respuesta de la
memoria. Es el tiempo que transcurre entre que la memoria recibe una
dirección y en que el dato sea válido en la salida.

Cache de 1er. Nivel (L1):Este cache está integrado en el núcleo del
procesador, trabajando a la misma velocidad que éste. La cantidad de
memoria cache L1 varía de un procesador a otro, estando normalmente
entre los 64KB y los 256K. Esta memoria suele estar a su vez dividida en
dos partes dedicadas, una para instrucciones y otra para datos.
Cache de 2º Nivel (L2):Integrado también en el procesador, aunque no
directamente en el núcleo de éste, tiene las mismas ventajas que la
caché L1, aunque es algo más lenta que esta. La caché L2 suele ser
mayor que la caché L1, pudiendo llegar a superar los 2MB. A diferencia
de la caché L1, esta no está dividida, y su uso esta mas encaminado a
programas que al sistema.

En cuanto al uso de cache L2 en procesadores
multinúcleo, existen dos tipos diferentes de tecnología a aplicar . Por un
lado la usada por Intel, que consiste en que el total de la cache L2 está
accesible para todos los núcleos y por otro la usada en AMD, en la que
cada núcleo tiene su propia cache L2 dedicada solo para ese núcleo.
Cache de 3er. Nivel (L3):Es un tipo de memoria cache mas lenta que la
L2, muy poco utilizada en la actualidad. Las memorias cache son
extramadamente rápidas (su velocidad es unas 5 veces superior a la de
una memoria RAM de las más rápidas), con la ventaja añadida de no
tener latencia, por lo que su acceso no tiene ninguna demora…pero es
un tipo de memoria muy cara.
Latencia : Es el número de ciclos de reloj que transcurren desde que una
petición de datos es enviada hasta que los datos son transmitidos desde
el módulo. Cuanto menor es, mejor.

Tiempos de Latencia (tRCD, tCAS, tRP):
tRCD: Dentro de la memoria, el proceso de acceder a los datos
almacenados consiste en activar la fila y la columna donde el dato
buscado se encuentra. Esta activación es realizada a través de dos
señales de control llamadas RAS (Row Address Strobe, dirección de fila)
y CAS (Column Address Strobe, dirección de columna). Cuanto menos
tiempo transcurre entre estas señales es mejor, ya que el dato va a ser
leído más rápidamente. RAS to CAS Delay (tRCD), que en inglés significa
demora de RAS a CAS, mide este tiempo. Ejemplo para un tRCD de 3

tCAS: Nos indica cuantos ciclos de reloj demorará la memoria en
entregar un dato previamente solicitado de una celda ubicada en una
determinada columna. Teniendo dos memorias trabajando a la misma
frecuencia de reloj pero con un valor de tCAS distinto, la que tenga el
menor valor será la memoria más rápida, ya que tendrá el dato listo
para ser usado en un menor tiempo.
Ejemplo utilizando un módulo con tCAS=3 y otro con tCAS=5. El
comando “lectura” en azul simboliza cuando se realiza la petición de
lectura de una dato .

La memoria de tCAS = 3 responde a esa petición de lectura
luego de 3 ciclos completos mientras que la otra, luego de 5 ciclos
completos. Asumiendo que trabajan a una misma frecuencia el primer
modulo presenta un rendimiento un 40% mayor respecto al segundo.
tRP: Despues que un dato es recuperado de la memoria un
comando llamado “precarga” necesita ser emitido, cerrando la fila recién
utilizada y permitiendo que una nueva esté disponible. RAS Precharge
(tRP), que significa precarga de RAS, es el tiempo que pasa entre que el
comando es emitido y el próximo comando (comando Activar) para
activar filas puede serlo. El comando Activar comienza un ciclo de lectura
o escritura de una nueva fila.

El tiempo total de “Latencia” es finalmente
tRP + tRCD + tCAS

Tasa de Aciertos y Fallos en memorias cache :
El funcionamiento de la memoria cache se puede resumir en el diagrama
de flujo siguiente. Traduccion de la dirección física procedente de la CPU
Recibe la direccion
fisica (DF) de la
CPU
DF  al
bloque de la
cache?
Acceso a MP para
obtener el bloque
que contiene DFNo
Si
Leer el contenido
de DF y llevarlo a la
CPU
Cargar el bloque de
MP en el marco
asignado a la cache
Llevar el
contenido de la DF
a la CPU

Cuando una dirección se presenta en el sistema cache, pueden ocurrir
dos cosas:
Acierto de Cache (hit) : El contenido de la dirección se encuentra
en un bloque ubicado en una línea de la cache.
Fallo de Cache (miss) : El contenido de la dirección no se
encuentra en ningún bloque ubicado en alguna línea de la cache.
Si en la ejecución de un programa se realizan Nr referencias a memoria,
de las que Na son aciertos y Nf fallos caché, podemos definir los
siguientes valores:
Tasa de Aciertos : Ta = Na / Nr
Tasa de Fallos : Tf = Nf / Nr
Evidentemente se cumple que Ta = 1 – Tf

Mapeo de Memorias : Memoria de M x N
Recordando que tomamos la memoria como celdas “todas contiguas”
1234567
1011121314
525354
0 1 2
3 4
10 11
Si decimos una memoria M x N , decimos que tiene M palabras (es decir
la cantidad de celdas , en este caso 54) y que cada palabra tiene un
ancho de N bits (la cantidad de caracteres que puede contener cada
celda). Siempre la cantidad de caracteres es la misma para cada celda.
NO puede tener una celda 8 caracteres y otra 10 caracteres .
Entonces una memoria de 64K x 8 significa que tiene 64KBytes de
palabras (cantidad de celdas) y que cada celda puede contener 8 bits (o
1 byte que es lo mismo).

Si se deseara saber “Cuantas líneas de dirección” son necesarias para
poder acceder a cualquiera de las posiciones de la memoria, lo que se
esta preguntando, es que cantidad “x” es la necesaria para llegar a
64KBytes , recordando que 2
x
tiene que ser = 64KBytes
Es decir con que valor de X llego a 64KBytes
Para eso basta recordar que
2
0
= 1 2
1
= 2 2
2
= 4 2
3
= 8 2
4
= 16 2
5
= 32 2
6
= 64 2
7
= 128 2
8
= 256 2
9
= 512
2
10
=
1K
2
11
= 2K 2
12
= 4K 2
13
= 8K 2
14
= 16K 2
15
= 32K2
16
= 64K 2
17
= 128K 2
18
= 256K 2
19
= 512K
2
20
=
1M
2
21
=
2M
2
22
= 4M 2
23
= 8M 2
24
= 16M 2
25
= 32M2
26
= 64M 2
27
= 128M 2
28
= 256M 2
29
= 512M
2
30
=
1G
2
31
=
2G
2
32
=
4G
2
33
=
8G
2
34
= 16G 2
35
= 32G2
36
= 64G 2
37
= 128G 2
38
= 256G 2
39
= 512G
Y asi siguiendo
Entonces con 16 lineas de dirección puedo seleccionar cualquiera de la
64K posiciones o direcciones de la memoria de 64K x 8

Otro tema es saber que cantidad de posiciones hay entre un punto inicial
y un punto final, recordando siempre que las posiciones de memoria están
en sistema Hexadecimal.
Entonces si quisieramos saber que cantidad de direcciones (o que
cantidad de celdas) hay entre la posición 0600
H
y la posición 3AFA
H

  0600    3AFA   
Hay que pasar los dos valores de hexadecimal a decimal y después hacer
la resta correspondiente
3AFA de hexadecimal a decimal es
0600de hexadecimal a decimal es
15098
1536
Restando 15098 – 1536 = hay 13562 posiciones entre la 3AFA y la 0600

Por último si necesito armar MAPAS de memoria, debo saber como
teniendo varias memorias todas de tamaños diferentes, puedo agruparlas
para poder armar una memoria mas grande, por ejemplo :
Si tengo
3 memorias de 64K x 32
2 memorias de 8K x 8
2 memorias de 32K x 4
2 memorias de 32K x 8
1 memoria de 128K x 4
1 memoria de 8K x 128
Y quiero armar una memoria de 128K x 64, es decir una memoria de 128K
palabras con tamaño de 64 bits
Debo cumplir con la sig. ecuación
Numero de bloques que necesito = numero de memorias que
quiero armar / numero de memorias que tengo

En este caso quiero 128K x 64
Tengo 64K x 32
= 2 x 2 = 4 pastillas de 64K x 32
Hago la división de 128K / 64K = 2
Hago la división de 64 / 32 = 2
Y multiplico los resultados, esto me da la cantidad de pastillas (o
circuitos o memorias) que necesito para armar mi nuevo bloque.
Nota: Siempre se redondea hacia el numero entero superior (si en algun
caso da 0,5 = 1 ó 2,5 = 3 )
Nota2: Si tengo varias pastillas de memoria para poder utilizar,
conviene utilizar la menor cantidad.