You are on page 1of 642

Unidad Nº1:

Representaciones numéricas
ARQ DE
COMPUTADORAS
Representación de datos En sistemas informáticos
Números negativos

● Signo Magnitud
● Complemento a1
● Complemento a2

SISTEMAS DIGITALES
Representación de datos En sistemas informáticos
Signo Magnitud:

Utilizamos el MSB para representar el signo!

SISTEMAS DIGITALES
Representación de datos En sistemas informáticos
Signo Magnitud:

Ventajas: Desventajas:

● Simple de implementar ● Tiene doble representación del 0


● Rápida conversión ● Esto es muy difícil de interpretar para
una computadora

SISTEMAS DIGITALES
Representación de datos En sistemas informáticos
Complemento a1

Hay que definir de ante mano que vamos a trabajar con Complemento a1.
Los números positivos serán desde el 0 hasta el 2^(n)-1
Los negativos irán hasta -2^n

SISTEMAS DIGITALES
Representación de datos En sistemas informáticos
Complemento a1

Como se convierte un numero positivo a complemento a1?

Tomamos los bits y los invertimos!

1310 = 11012

-1310 = 00102

SISTEMAS DIGITALES
Representación de datos En sistemas informáticos
Complemento a2

Más utilizado en la computación y electrónica digital!

Fácil conversión

Ca2 = Ca1 + 1
-13 = 0010 (Ca1)
-13 = 0011 (Ca2)

SISTEMAS DIGITALES
Representación de datos En sistemas informáticos
Complemento a2

SISTEMAS DIGITALES
Representación de datos En sistemas informáticos
Operaciones Aritméticas

● Suma
● Resta
● Multiplicación
● División

SISTEMAS DIGITALES
Representación de datos En sistemas informáticos
Suma binaria en
complemento a2:

0+0=0
1+0=1
1 + 1 = 10

SISTEMAS DIGITALES
Representación de datos En sistemas informáticos
Resta binaria en
complemento a2:

SISTEMAS DIGITALES
Representación de datos En sistemas informáticos

SISTEMAS DIGITALES
Representación de datos En sistemas informáticos

SISTEMAS DIGITALES
Representación de datos En sistemas informáticos
Multiplicación
binaria números
positivos:

0x0=0
1x0=0
1x1=1

SISTEMAS DIGITALES
Organización y
Arquitectura de
Computadoras ● Capítulo 10: Computer Arithmetic.

William Stalling

Novena Edición
Essentials of
Computer
Organization and
Architecture ● Capítulo 2: Data Representation in
Computer Systems.
Linda NULL
Unidad Nº1:
Representaciones numéricas
ARQ DE
COMPUTADORAS
Representación de datos En sistemas informáticos
TAREA PROXIMA CLASE

● Algoritmo de BOOTH para multiplicaciones, con ejemplos

● División binaria

SISTEMAS DIGITALES
Representación de datos En sistemas informáticos
Punto Flotante

● Números en notación científica

● Punto Flotante digital


● Estándar IEEE 754
● Precisión Simple, Doble

SISTEMAS DIGITALES
Representación de datos En sistemas informáticos
Notación Científica:

𝑐𝑜𝑒𝑓𝑖𝑐𝑖𝑒𝑛𝑡𝑒 𝑥 𝑏𝑎𝑠𝑒 𝑒𝑥𝑝𝑜𝑛𝑒𝑛𝑡𝑒

1000000 = 1 𝑥 106

0,0000001 = 1 𝑥 10−6

SISTEMAS DIGITALES
Representación de datos En sistemas informáticos
Punto Flotante Digital: VERSION SIMPLIFICADA

SISTEMAS DIGITALES
Representación de datos En sistemas informáticos
Normalización: Exponente Sesgado:

● 21b10 = 10101b2 ● Para poder representar exponentes


positivos y negativos, se utiliza, el
1. Correr la coma hasta que quede el
1 mas significativo delante de la exponente con exceso (n-1)
coma, anotar el exponente
1. N es la cantidad de bits
2. 1.0101 e=4
2. n=5 => exceso 4

SISTEMAS DIGITALES
Representación de datos En sistemas informáticos

Ejemplo:

2110 = 101012
𝑛𝑜𝑟𝑚𝑎𝑙𝑖𝑧𝑎𝑐𝑖ó𝑛 = 1.0101 𝑒𝑥𝑝𝑜𝑛𝑒𝑛𝑡𝑒 4
𝑒𝑥𝑝. 𝑠𝑒𝑠𝑔𝑎𝑑𝑜 = 4 + 15 = 19 = 100112
𝑝𝑢𝑛𝑡𝑜 𝑓𝑙𝑜𝑡𝑎𝑛𝑡𝑒 = 0 10011 10101000

SISTEMAS DIGITALES
Representación de datos En sistemas informáticos
IEEE 754

● Es un formato definido por la IEEE para representar números en punto


flotante. Se crea en 1985 para normalizar la representación de números y
operaciones aritméticas entre diferentes arquitecturas. Actualmente es
ampliamente utilizado en todos los procesadores. En 2008 se le hizo una
revisión al estándar para incluir representación de números decimales. Y
la posibilidad de definir el número de bits para representar un número
Define tres tipos básicos de formatos para números binarios. 32, 64 y 128
bits. Con de exponentes 8, 11 y 15 bits respectivamente

SISTEMAS DIGITALES
Representación de datos En sistemas informáticos

SISTEMAS DIGITALES
Representación de datos En sistemas informáticos
● Números especiales

SISTEMAS DIGITALES
SISTEMAS DIGITALES
SISTEMAS DIGITALES
Formula para pasar un N° a IEEE754

SISTEMAS DIGITALES
Representación de datos En sistemas informáticos

SISTEMAS DIGITALES
Organización y
Arquitectura de
Computadoras ● Capítulo 10: Computer Arithmetic.

William Stalling

Novena Edición
Essentials of
Computer
Organization and
Architecture ● Capítulo 2: Data Representation in
Computer Systems.
Linda NULL
TRABAJO DE EJERCITACION N°2
ARQUITECTURA DE COMPUTADORAS
INGENIERÍA EN INFORMÁTICA

SISTEMAS DE NUMERACIÓN: OPERACIONES ARITMÉTICAS

1. Realizar las siguientes sumas


a. 45+34
b. 127+25
c. 1023+254
d. 37+13
2. Realizar las siguientes restas en complemento a2
a. 21−39
b. 123−45
c. 3−27
d. 192−127
3. Realice las siguientes multiplicaciones
a. 20 x 13
b. 11 x 8
c. 126 x 44
d. 19 x 34
4. Realice las siguientes sumas en Ca2
a. −13+60
b. −40+128
Teórico 2013
Máquina capaz de efectuar una secuencia de
operaciones mediante un programa, de tal
manera, que se realice un procesamiento
sobre un conjunto de datos de entrada,
obteniéndose otro conjunto de datos de
salida.
Hace referencia a los atributos que tienen un
impacto directo sobre la ejecución lógica de
un programa.

Ejemplo: El conjunto de instrucciones de un


microprocesador es un atributo
arquitectónico de una computadora, el
número de bits de una palabra.
Son particularmente los sistemas de hardware
que son transparentes para un programador,
como ser señales de control, interfaces entre
la computadora y los periféricos, tamaño de
los buses, etc.
En general lo fabricantes de máquinas
producen familias de computadoras con
una misma arquitectura y a medida que
pasa el tiempo salen nuevos modelos con la
misma arquitectura, pero con una
organización diferente, con lo cual logran
una compatibilidad de software.
La naturaleza jerárquica de los sistemas
complejos es esencial tanto para su diseño
como para su descripción.
En términos de descripción tenemos 2
opciones:
ARRIBA

Comenzar desde arriba y descomponer el


sistema en sus subpartes

Empezar de abajo y construir una


ABAJO

descripción completa
De cada nivel al diseñador le importan:

Estructura funcionamiento

La operación de
El modo en el
cada
que los
componente
componentes
individual como
están
parte de la
interrelacionados
estructura
Se considera DATO a toda entrada de
información de una computadora. Los datos
pueden ser de cualquier tipo: Científico,
contable, etc. Son elementos primitivos de los
cuales a través del PROCESAMIENTO de obtiene
la INFORMACION!

DATO PROCESAMIENTO INFORMACION


La información es un conjunto de DATOS
PROCESADOS que constituyen un MENSAJE
sobre un determinado ente o fenómeno.
La información organizada se puede
denominar conocimiento, que permite la
resolución de problemas o la toma de
decisiones.
SI NO
??
Podemos resumirlo en 4 pasos.

Procesamiento de datos

Almacenamiento de datos

Transferencia de datos

Control
La representación básica de una computadora
podríamos resumirla en la siguiente imagen:
Central Processing Unit (CPU): Controla el
funcionamiento de la computadora y se encarga
del procesamiento de los datos, comúnmente
llamada Procesador.
Input/Output: Entrada y Salida, encargada de la
transferencia de datos entre el Computador y el
entorno externo.
Main Memory (Memoria Principal): Es la
encargada de almacenar los datos, tanto para ser
transferidos a través de las entradas/salidas o
para ser procesados en la CPU
System Interconnection: Proporciona
interconexiones entre las distintas partes de un
computador.
Controla todos los componentes de la CPU
Puede ser programada por HARDWARE
(Cableada, diseñada con circuitos de logica secuencial)
o Microprogramada (asociada a una micromemoria
de acceso secuencial donde cada instrucción tiene
asociada multiples microinstrucciones)
Interpreta las instrucciones
◦ Decodifica y Ejecuta las instrucciones. Transforma las
instrucciones en ordenes a otros componentes.
La ALU o Unidad Aritmético Lógica tiene las
funciones de:
Llevar a cabo las funciones de procesamiento
de datos de la computadora
Realiza operaciones matemáticas y lógicas
◦ Matemáticas: Sumas, Restas, Multiplicaciones
◦ Lógicas: AND, OR, XOR
◦ Corrimientos
Proporcionan almacenamiento interno a la
CPU
Almacena datos binarios, para acceso rapido
Los registros son de tamaño fijo!
De proposito general (programas), o
especifios (acumulador, contador de
programa, punteros a memoria, ETC)
Son los mecanismos que proporcionan la
comunicación entre la Unidad de Control, la
ALU y los Regsitros del CPU
Mueve los datos entre los diferentes
componentes de la CPU
Es controlada por un CLK (reloj)
Esta generación se caracteriza por la
utilización de las válvulas de vacio
Podemos dividirla en dos grandes
computadoras que marcaron ITOS
ENIAC: Electronic Numerical Integrator And
Computer
IAS: Primer computadora con arquitectura de VON
NEUMAN
ENIAC
◦ Diseñada y construida por Mauchly y Eckert de la
universidad de Pennsylvania
◦ Fue diseñada como computador de propósitos
generales, pero era destinada al calculo balístico
del BRL (Laboratorio de investigación de Balística)
de EEUU.
◦ En 1943 fue aceptada por el BRL pero no estuvo
lista hasta 1946 por lo que no pudo ser usada para
la 2° guerra mundial, pero su primera misión fue
para la determinación de la viabilidad de la bomba
de hidrogeno
◦ ENIAC pesaba alrededor de 30 toneladas, ocupaba
15000 ft2, tenia mas de 18 mil valvulas de vacio y
consumia 140KW de potencia
◦ Era una maquina decimal y no binaria
◦ Tenia una memoria de 20 acumuladores de 10
digitos decimales
◦ Era capaz de efectuar 5000 sumas por segundo.
◦ Uno de sus mayores inconvenientes era que tenia
que ser programada manualmente con
conmutadores, conectando y desconectando cables!
La era del Transistor!
◦ El transistor es mas pequeño
◦ Mas barato
◦ Disipa menos calor
◦ Puede ser usado de la misma manera que la válvula
de vacio

El transistor fue inventado en los laboratorios


BELL en 1947
NCR y RCA fueron las primeras empresas en
desarrollar un computador transistorizado
La siguio IBM con la seria 7000

Cada generacion se caracteriza por el


aumento en la velocidad de procesamiento,
mayor capacidad de memoria y menor
tamaño del conjunto.
Esta generación introdujo:
◦ Unidades lógicas y aritmeticas mas coplejas
◦ Unidades de control mejoradas y mas complejas
◦ Uso del lenguaje de programacion de alto nivel
◦ Se proporcionaba un software del sistema con el
computador.

◦ La memoria principal crecio de 2K a 32K


◦ El tiempo de ciclo de memoria disminuyo de
30uSeg a 1,4Seg
IBM 7000
IBM 7094 es la mas representativa de la 2°
generación
Marcada por la aparición de los IC (Integrated
Circuit o Circuitos Integrados) en 1958.
Computadoras de 2° Gen. Tenían alrededor
de los 10k transistores, ahora esa cantidad de
transistores podía ser incluida dentro de un
mismo “CHIP” o IC.
Los elementos electrónicos básicos de una
computadora digital se pueden dividir en 2
grupos:
◦ Gates o Compuertas
◦ Celdas de Memoria
Una compuerta implementa una función lógica o
booleana simple como ser AND, OR, XOR
Las Celdas de Memoria almacenan datos de 1bit.
Por lo tanto podemos relacionar a estas con
las cuatro funciones básicas.
◦ Almacenamiento de datos: Proporcionado por las
celdas de memoria
◦ Procesamiento de datos: Proporcionado por las
compuertas
◦ Transferencia de datos: Caminos entre componentes
para llevar datos entre las celdas de memoria, Mem y
Compuertas, etc
◦ Control: Tanto las compuertas como las Celdas tienen
señales de control que serán comandadas desde el
control
Los IC utilizaron el hecho de que cualquier
componente electrónico discreto
(Resistencias, Capacitores, transistores,
conductores) puede ser fabricados a partir del
semiconductor SILICIO
Se pueden construir miles de transistores al
mismo tiempo en una misma oblea de silicio.
Esos transistores y componentes son
internamente conectados por medio de un
proceso de metalización para formar
circuitos.
Se logra la SSI Pequeña
Escala de integracion
1964 IBM liderando el mercado con la serie
7000, cambia de rumbo generando
conmoción en los usuarios al introducir el
sistema /360.
Este sistema era incompatible con las
arquitecturas anteriores.
Esta arquitectura continua hasta el día de hoy
en la grandes computadoras MAINFRAME
IBM 360
La IBM 360 fue una familia de computadoras
planeada al detalle, contenía un gran rango
de prestaciones y precios
Concepto de Familia de computadora:

◦ Conjunto de instrucciones similar o idéntico

◦ Sistemas Operativos similares o idénticos

◦ Velocidad Creciente

◦ Numero creciente de puertos de E/S

◦ Tamaño de memoria creciente

◦ Costo Creciente
Al mismo tiempo que IBM lanza el 360, la
empresa DEC introduce el PDP-8 conocido
como “minicomputador”, ya que podía ser
montado sobre un banco de trabajo y no
necesitaba una sala completa.
El PDP-8 permitía a los fabricantes comprar
un PDP e introducirlo en un con junto global
como ser, almacenamiento y sistema de
entrada y salida, y revenderlo. Estos son
conocidos como “Fabricantes de Equipos
Originales” u OEM
Son las generaciones basadas en los avances
de las tecnologias de IC.
Nacen con las tecnologias LSI ( Large Scale
Integration) y VLSI ( Very Large Scale
Integration)
1971 Intel desarrolla el 4004.
Primer CHIP que contenía todos los
componentes de una CPU en un mismo IC.
NACE EL mP
El 4004 podía sumar 2 números de 4bits, y
multiplicaba con sumas sucesivas.
Primer procesador de 8 bits, el INTEL 8008 en
1972
En 1974 nace el INTEL 8080. Primer mP de
uso general
Tubos de vacío - 1946-1957
Transistores - 1958-1964
Small scale integration - 1965 en adelante
Hasta 100 transistores en un chip
Medium scale integration - hacia 1971
100-3,000 transistores en un chip
Large scale integration - 1971-1977
3,000 - 100,000 transistores en un chip
Very large scale integration - 1978 a la fecha
100,000 - 100,000,000 transistores en un chip
Ultra large scale integration
Más de 100,000,000 transistores en un chip
Gordon Moore - cofundador de Intel:
La capacidad de integración se duplica cada año
Desde los 70’s se “enlentece”:
Número de transistores se duplica cada 18 meses
Algunas consecuencias:
• Costo x chip no ha cambiado -> costo de la lógica y
memoria baja dramáticamente
• Mayor densidad -> “cables” más cortos, mayor
performance de la interconexión
• Más circuitos x chip -> menos interconexiones, mayor
confiabilidad
• Menor tamaño -> mayor flexibilidad (poder de cómputo
de un celular?)
• Requerimientos de alimentación y refrigeración
Volviendo a la ENIAC, programarla era muy
problemático, así que en 1946 Von Neuman y
sus colegas plantearon que:

“Si el programa se representara en una forma tal que


pudiera ser guardado en la memoria junto con los
datos, entonces una computadora podría conseguir
sus instrucciones leyéndolas de la memoria y se
podría hacer o modificar un programa colocando
valores en una zona de la memoria”
La idea fue conocida como el “concepto de
PROGRAMA-ALMACENADO”
Dicha arquitectura, que nace con la
computadora IAS (1° generación) consta de:
◦ Una memoria principal: Tanto para almacenar datos
como para almacenar el programa a ejecutarse
◦ Una ALU: Capas de realizar operaciones sobre datos
BINARIOS
◦ Una Unidad de Control: Interpreta las instrucciones
almacenadas en la memoria y provoca la ejecución
de las mismas
◦ Un equipo de Entrada/ Salida
Computadora IAS:
◦ Contenía 1000 posiciones de almacenamiento
llamadas palabras, cada una era binaria de 40bit
La unidad de control dirije a la IAS captando
las instrucciones de la memoria y
ejecutandolas de manera secuencial.
Tanto la ALU como la unidad de control
tienen posiciones de almacenamiento interno
llamadas REGISTROS.
Registro de Memoria Temporal MBR: contiene una palabra
que va a ser almacenada en la memoria o una palabra
procedente de ella
Registro de Direccionamiento de Memoria MAR: especifica
la dirección de memoria de la palabra a ser escrita o leída
Registro de Instrucción IR: contiene los 8 bits del código
de operación a ser ejecutado
Registro Temporal de Instrucción IBR: Almacena
temporalmente la instrucción contenida en la parte
derecha de una palabra
Contador de Programa PC: contiene la dirección de la
próxima pareja de instrucciones que va a ser captada de la
memoria
Acumulador AC y Multiplicador Cociente MQ: Se utiliza
para almacenar operandos y resultados de la ALU de
manera temporal
 Computadoras actuales todas basadas en
arquitectura VON NEUMAN (relativamente, ya que
las estructuras multicore pueden no ser consideradas VON
NEUMAN)
◦ Los datos y Programas se almacenan en la misma
memoria
◦ Los contenidos de la memoria se direccionan
indicando su posición
◦ La ejecución se realiza de manera secuencial,
instrucción tras instrucción, a no ser que se
modifique explicitamente la secuencia.
 HARDVARD
◦ UNA MEMORIA PARA DATOS – UNA MEMORIA PARA
PROGRAMAS
 REDES NEURONALES
◦ TRATA DE SEGUIR LOS COMPORTAMIENTOS DEL
CEREBRO
 PROCESAMIENTO PARALELO
◦ ARQUITECTURAS MULTICORE
 COMPUTACION CUANTICA
◦ UTILIZA QUBITS EN LUGAR DE BITS
 Por lo tanto, podemos decir que

“UNA SECUENCIA DE INSTRUCCIONES QUE SE


EJECUTAN DE MANERA SECUENCIAL SE LLAMA
PROGRAMA!, HOY EN DIA MAS CONOCIDO
COMO SOFTWARE.”
 El procesador es el encargado de realizar la
ejecución de las instrucciones a medida que
el programa va corriendo.

 Podemos resumir de manera sencilla esta


tarea en 2 ciclos:
◦ Ciclo de captación
◦ Ciclo de Ejecución
 Se interpreta la Instrucción y se la decodifica
dentro de las cuatro posibilidades:
1. Procesador - Memoria
2. Procesador - E/S
3. Procesamiento de Datos
4. Control
 El programa suma el contenido de la palabra
contenido en la dirección de memoria 940
con el contenido de la posición de memoria
941 y almacena el resultado en la posición
941
 Calculo de la dirección de la instrucción IAC
 Captación de la instrucción IF
 Decodificación de la operación indicada en la
instrucción IOD
 Calculo de la dirección del operando OAC
 Captación de Operando OF
 Operación con los DATOS
 Almacenamiento de operando
1

PC = PC+1
2
3
4
5
6
7
8
9
10
 Mecanismo por el cual otros módulos por
ejemplo E/S, MEM, etc, pueden interrumpir la
secuencialidad de la ejecución de un
programa, para realizar una tarea especifica.
 Programa
 Programa

 Temporización
 Programa

 Temporización

 E/S
 Programa

 Temporización

 E/S

 Fallo de Hardware
 Se agrega al ciclo de instrucción
 Procesador chequea por la interrupción
 Indicado por una señal de interrupción
 Si no hay interrupción, fetch próxima instrucción
 Si hay una interrupción pendiente:
 Suspender ejecución del programa corriente
 Salvar contexto
 Hacer que PC apunte a la dirección de inicio del
manejador de la interrupción
 Procesar interrupción
 Restaurar contexto y continuar el programa
interrumpido
 Deshabilitar interrupciones mientras se
atiende una interrupcion
◦ El procesador ignorará las interrupciones mientras
se procesa otra interrupción Las interrupciones
quedan pendientes y son atendidas una vez que la
primera interrupción ha sido procesada Las
interrupciones son manejadas en secuencia


 Definir prioridades entre las interrupciones
◦ Los manejadores de interrupciones de baja
prioridad pueden ser interrumpidos por
interrupciones de mayor prioridad una vez que se
ha procesado la interrupción de mayor prioridad, se
retorna al manejador de la interrupción previa
Arquitectura de Computadoras – Ingeniería en Informática

“GUÍA DE ACTIVIDADES Nº 1”

Alumnos:
Antúnez Facundo (Mat. 67564)

Docentes:
Ing. Benitez, Juan de Dios
Ing. Bareiro, Santiago Hernan
Ing. Baez, Julian

Universidad Gastón Dachary – Año 20XX


INTRODUCCIÓN

En este estudio de la historia de las computadoras, conoceremos cada una de las generaciones
que han impulsado una revolución tecnológica sin precedentes. Desde los rudimentarios pero
pioneros días de las máquinas de válvulas hasta la era actual de los dispositivos ultra portátiles e
interconectados, exploraremos en profundidad los avances tecnológicos que han dado forma a
nuestro mundo moderno y su profundo impacto en la sociedad.

En la primera generación, con los bulliciosos tubos de vacío, descubriremos cómo los científicos
de la década de 1940 superaron obstáculos monumentales para crear las primeras computadoras
electrónicas. A pesar de su tamaño y demanda de energía, estas máquinas establecieron los
cimientos de la automatización y demostraron el potencial de procesar datos de manera
electrónica.

La segunda generación, con la llegada de los transistores en la década de 1950, nos llevará a un
mundo de mayor eficiencia y miniaturización. A través de su adopción, los ordenadores se hicieron
más compactos, fiables y accesibles. Este cambio allanó el camino para la proliferación de las
computadoras personales y estableció una base sólida para la evolución tecnológica continua.

En la tercera generación, los circuitos integrados marcaron un hito crucial en la década de 1960.
Ahora, más componentes podían caber en un solo chip de silicio, lo que resultó en un aumento
espectacular en el poder de procesamiento y la reducción del tamaño. Esto permitió la creación de
sistemas más avanzados y allanó el camino para la integración de la tecnología en diversas áreas
de la vida cotidiana.
DESARROLLO

PRIMERA GENERACIÓN: EL TUBO DE VACÍO

Ilustración 1: Tubo de vacío


ENIAC

El primer computador de propósitos generales fue construido en 1946, el ENIAC diseñado para
propósitos bélicos, bajo la supervisión de John Mauchly y John Presper Eckert en la Universidad
de Pennsylvania, su propósito era realizar cálculos para tablas de trayectorias de tiro y trayectoria
de armas. Pesaba 30 toneladas, ocupaba 1300 metros cuadrados y contenia 18 000 tubos de
vacío, consumiendo 140 000 Watts.

Una máquina decimal, usaba números y aritmética en base 10. Tenía veinte "acumuladores" en su
memoria, cada uno guardando un número decimal de diez dígitos. Los dígitos se representaban
con anillos de diez tubos de vacío, activando solo un tubo por dígito. Una desventaja era su
programación manual a través de conmutadores y cables.

Ilustración 2: ENIAC
IAS

El concepto de programa-almacenado, atribuido a John von Neumann, asesor del proyecto


ENIAC, y propuesto alrededor de 1945, buscaba simplificar la programación de computadoras
como el ENIAC. La idea era almacenar tanto instrucciones como datos en la memoria, permitiendo
que el computador leyera y ejecutara las instrucciones directamente de la memoria. Von
Neumann, junto con colegas, diseñó el computador IAS en 1946 en el Instituto para Estudios
Avanzados de Princeton.

El IAS, completado en 1952, se convirtió en el prototipo de computadoras de propósito general.


Presentaba una memoria principal para almacenar datos e instrucciones, una unidad aritmético-
lógica (ALU) para operaciones binarias, una unidad de control para interpretar y ejecutar
instrucciones, y una unidad de entrada/salida (E/S) dirigida por la unidad de control.

Ilustración 3:Arquitectura de Von Neumann

En la mayoría de los casos, los computadores actuales siguen la misma estructura y


funcionamiento general que las máquinas de von Neumann. Así, es pertinente describir cómo
operaba el computador IAS en términos de esta arquitectura. La memoria del IAS está compuesta
por 1,000 palabras de 40 bits cada una, y se almacenan tanto datos como instrucciones.

Tanto números como instrucciones son representados en formato binario. Cada palabra contiene
un bit de signo y 39 bits de valor para números, y puede alojar dos instrucciones de 20 bits cada
una. Cada instrucción se compone de un código de operación de 8 bits y una dirección de 12 bits
que señala una posición en la memoria (numeros del 0 al 999).

COMPUTADORAS COMERCIALES

En los años cincuenta, la industria de los computadores experimentó su surgimiento, siendo


Sperry e IBM las principales compañías dominantes. En 1947, Eckert y Mauchly fundaron la
Eckert-Mauchly Computer Corporation, que desarrolló el exitoso UNIVAC I (Universal Automatic
Computer) utilizado por la oficina del censo en 1950. Esta corporación luego se convirtió en parte
de la división UNIVAC de la Sperry-Rand Corporation, continuando con la producción de máquinas
sucesoras.
UNIVAC I

destinado tanto a aplicaciones científicas como comerciales, marcó el primer éxito en la categoría
de computadores comerciales. El UNIVAC II, lanzado a fines de los cincuenta, tenía mayor
capacidad de memoria y más aplicaciones que su predecesor. Esta tendencia de avances
tecnológicos que permiten máquinas más grandes y potentes se ha mantenido en la industria.
Además, las compañías se esforzaron por hacer sus nuevas máquinas compatibles con las
anteriores para retener a sus clientes.

Ilustración 4:Univac 1
IBM LINEA 700

IBM, que había estado involucrada en la construcción del Mark I y era líder en la fabricación de
equipos con tarjetas perforadas, lanzó el 701, su primer computador con programas almacenados
electrónicamente, en 1953.
Diseñado para aplicaciones científicas, posteriormente introdujo el 702, adecuado para
aplicaciones de gestión. Estos productos marcaron el comienzo de la serie de computadores
700/7000 de IBM, consolidando su posición dominante en la industria.

Ilustración 5:IBM Línea 700


SEGUNDA GENERACIÓN: LOS TRANSISTORES

Ilustración 6:Transistores

El cambio significativo en los computadores electrónicos surgió con la transición de los tubos de
vacío a los transistores. Los transistores, más pequeños y económicos, disipan menos calor y
pueden reemplazar a los tubos de vacío en la construcción de computadores. A diferencia de los
tubos de vacío, que requerían componentes como cables, placas de metal y vacío, los transistores
son dispositivos de estado sólido fabricados con silicio.

El transistor fue inventado en 1947 en los Laboratorios Bell, y en la década de 1950 desencadenó
una revolución electrónica. Aunque los computadores completamente transistorizados no
estuvieron disponibles comercialmente hasta finales de los años cincuenta, empresas como NCR
y RCA lanzaron pequeñas máquinas transistorizadas antes que IBM. Este cambio trajo consigo
avances como unidades lógicas y aritméticas más complejas, unidades de control avanzadas, el
uso de lenguajes de programación de alto nivel y la provisión de software de sistema.

IBM 7094

Desde la introducción en 1952 de la serie 700 y la introducción del último miembro en 1964 de la
serie 7000, esta línea de productos sufrió la evolución típica de los computadores. Los productos
sucesivos de la línea presentaron un aumento de prestaciones y capacidad y/o la disminución de
precios. El tamaño de la memoria principal, en múltiplos de 210 palabras de 36 bits, creció de 2K
(1K = 210) a 32K palabras 3, mientras que el tiempo de acceso a una palabra de memoria, el
tiempo de ciclo de memoria, cayó de 30 µs a 1,4 µs. El número de códigos de operación creció de
un modesto 24 a 185.

Ilustración 7:IBM 7094


TERCERA GENERACIÓN: LOS CIRCUITOS INTEGRADOS

En la década de los cincuenta y principios de los sesenta, los equipos electrónicos estaban
mayormente compuestos por componentes discretos, que incluían transistores, resistencias y
capacidades. Estos componentes se fabricaban por separado, encapsulados en sus propias
carcasas, y se ensamblaban en tarjetas de circuito en forma de paneles. Esto resultaba en un
proceso de fabricación costoso y complicado, ya que cada componente debía ser soldado
individualmente en las tarjetas de circuito.
Esta situación dio inicio a problemas en la industria de computadores, ya que los computadores de
la segunda generación contenían alrededor de 10,000 transistores, y esta cantidad aumentó a
cientos de miles. La fabricación de máquinas más potentes se volvía cada vez más difícil y
costosa.
Sin embargo, en 1958 se produjo una revolución con la invención del circuito integrado, marcando
el comienzo de la era de la microelectrónica. El circuito integrado define la tercera generación de
computadores. Esta nueva tecnología permitía la colocación de múltiples componentes en una
única pieza de silicio, lo que revolucionó la electrónica y facilitó la fabricación de sistemas más
complejos.
Dos ejemplos destacados de la tercera generación son el IBM Sistema/360 y el DEC PDP-8.
Estos sistemas surgieron en la era de la microelectrónica y desempeñaron un papel crucial en la
evolución de la industria de los computadores.

IBM SISTEMA/360

Ilustración 8: IBM SISTEMA/360

La reducción del tamaño de los circuitos electrónicos, ha sido una constante en la evolución de la
electrónica digital y la industria de los computadores. Los componentes básicos de un computador
digital son las puertas lógicas y las celdas de memoria, que cumplen con las funciones de
almacenamiento, procesamiento y control.
LA MICROTECNOLOGÍA

Las puertas lógicas implementan funciones booleanas, como la puerta AND que verifica si A y B
son verdaderos para que C sea verdadero. Las celdas de memoria almacenan un bit y pueden
tener dos estados estables. La interconexión de estos componentes permite construir un
computador y se relaciona con las funciones básicas del computador:

• Almacenamiento de datos: Realizado por las celdas de memoria.


• Procesamiento de datos: Realizado por las puertas lógicas.
• Transferencia de datos: Los caminos entre componentes llevan datos de memoria a
memoria y a través de las puertas a la memoria.
• Control: Los caminos entre componentes transportan señales de control. Por ejemplo, una
puerta tiene entradas de datos y una de control que la activa. Las celdas de memoria
almacenan o recuperan bits según las señales de control WRITE o READ.

La microelectrónica ha permitido reducir el tamaño y aumentar la eficiencia de los componentes


electrónicos, lo que ha sido fundamental para el desarrollo de computadores más potentes y
compactos.

Ilustración 9:Circuito integrado


DEC PDP-8

En el mismo año en que IBM lanzó su Sistema/360, otro lanzamiento importante ocurrió: el DEC
PDP-8. Mientras que la mayoría de los computadores de la época requerían habitaciones con aire
acondicionado, el PDP-8, apodado "minicomputador" en referencia a la moda de la minifalda de
aquellos tiempos, podía caber en una mesa de laboratorio o integrarse en otro equipo. Aunque no
ofrecía todas las capacidades de las grandes máquinas, su precio de 16,000 dólares lo hacía
asequible para técnicos de laboratorio, en contraste con los cientos de miles de dólares que
costaban los sistemas Sistema/360 de IBM lanzados unos meses antes.

Ilustración 10: DEC PDP-8


ÚLTIMAS GENERACIONES
En las últimas generaciones de computadoras, la evolución tecnológica ha tomado un camino
menos claro en términos de definición generacional. La cuarta y quinta generación se han
sugerido como etapas posteriores a la tercera, basadas en los avances de los circuitos integrados.
Con la integración a gran escala (LSI), los chips podían contener más de 1,000 componentes, y
con la integración a muy gran escala (VLSI), esta cifra aumentó a más de 10,000 y luego a más de
100,000.
A medida que la tecnología avanzaba rápidamente, nuevos productos emergían y el enfoque en el
software, las comunicaciones y el hardware crecía en importancia. La noción de generaciones se
volvía menos distinta y significativa.

Dos desarrollos clave surgieron a principios de los años setenta.

MEMORIA SEMICONDUCTORA

El primero se relaciona con la memoria semiconductora, que cambió radicalmente la forma en que
las computadoras almacenaban datos. Las memorias de ferrita de los años cincuenta y sesenta se
reemplazaron con tecnología de circuitos integrados, que demostró ser más rápida y económica.
En 1970, Fairchild produjo la primera memoria semiconductora con capacidad, marcando un hito
importante en la evolución de la tecnología. A medida que las generaciones de memoria
semiconductora avanzaron, se lograron densidades de almacenamiento cada vez mayores, lo que
permitió la creación de máquinas más pequeñas, rápidas y accesibles.

MICROPROCESADORES

El segundo desarrollo crucial se refiere a los microprocesadores. A medida que los chips de
memoria y procesamiento aumentaban su densidad, se necesitaban menos chips para construir
una unidad de procesamiento de computadora. En 1971, Intel presentó el 4004, el primer
microprocesador en un solo chip que contenía todos los componentes de la CPU. Aunque limitado
en comparación con los estándares actuales, este hito marcó el comienzo de la evolución continua
en capacidad y potencia de los microprocesadores.

El Intel 8008 en 1972 y el Intel 8080 en 1974 llevaron la evolución a un nivel superior, siendo este
último el primer microprocesador de uso general. Más tarde, los microprocesadores de 16 bits y
32 bits se hicieron populares, como el 8086 y el 80386. Estos avances en microprocesadores
revolucionaron la computación, permitiendo computadoras más potentes y versátiles.

Ilustración 11: Intel 8008


EVOLUCIÓN DE MICROPROCESADORES INTEL PENTIUM

La evolución del microprocesador más representativo de Intel, el Pentium, refleja la transformación


de la tecnología de computadoras. A lo largo de los años, Intel ha liderado la fabricación de
microprocesadores, manteniendo su posición dominante en el mercado. El Pentium ha
experimentado un desarrollo constante, evidenciando cómo la tecnología informática ha
evolucionado. La historia de su evolución se puede resumir de la siguiente manera:

• 8080: El primer microprocesador de propósito general, de ocho bits, utilizado en el primer


computador personal, el Altair.

• 8086: Un salto a 16 bits, más potente que su predecesor. Introdujo registros más grandes y
una caché de instrucciones que anticipaba la ejecución.

• 80286: Una expansión del 8086 que permitió direccionar hasta 16 MB de memoria en
comparación con el límite previo de 1 MB.

• 80386: El primer microprocesador de 32 bits de Intel, rivalizando con minicomputadoras y


computadoras grandes. Introdujo multitarea.

• 80486: Introdujo una tecnología de caché más avanzada y un coprocesador matemático,


descargando operaciones matemáticas complejas de la CPU principal.

• Pentium: Incluyó técnicas superescalares que permitían la ejecución paralela de múltiples


instrucciones.

• Pentium Pro: Continuó la tendencia superescalar, usando técnicas avanzadas de


predicción de ramificaciones y análisis de flujo de datos.

• Pentium II: Incorporó la tecnología Intel MMX para un procesamiento eficiente de datos
multimedia.

• Pentium III: Añadió instrucciones de coma flotante adicionales para el procesamiento de


gráficos 3D.

• Pentium 4: Introdujo mejoras multimedia y de coma flotante adicionales.

• Itanium: Una nueva generación con arquitectura IA-64 de 64 bits, orientada hacia
aplicaciones empresariales y técnicas.

• Itanium 2: Una versión mejorada del Itanium original, con mejoras de hardware para
aumentar la velocidad.

Ilustración 12:Microprocesadores Intel Pentium


La evolución del Pentium refleja la creciente complejidad y potencia de los microprocesadores, así
como la adaptación a las necesidades cambiantes del mercado. Intel ha acortado los tiempos de
desarrollo, lo que ha permitido el lanzamiento más rápido de generaciones más avanzadas, y ha
incorporado constantemente nuevas tecnologías para mejorar el rendimiento en aplicaciones
multimedia y empresariales.
Esta evolución ilustra cómo la tecnología de microprocesadores ha influido en la computación
moderna y ha allanado el camino para la creación de máquinas más eficientes y versátiles.

En resumen, las últimas generaciones de computadoras han estado marcadas por avances en la
tecnología de circuitos integrados. La memoria semiconductora y los microprocesadores
experimentaron cambios fundamentales, dando lugar a máquinas más eficientes, compactas y
asequibles.

CONCLUSIÓN
En resumen, el análisis de las sucesivas generaciones de computadoras, desde sus inicios hasta
su más reciente evolución, nos ofrece un asombroso recorrido por la innovación y los avances
tecnológicos que han revolucionado profundamente nuestra sociedad y la forma en que nos
relacionamos con el mundo digital. Cada etapa ha aportado avances trascendentales que han
allanado el camino hacia la era digital en la que estamos inmersos en la actualidad.

La primera generación de computadoras, impulsada por tubos de vacío, marcó un inicio audaz en
la automatización del cálculo y sentó los cimientos para la computación electrónica moderna. A
pesar de sus limitaciones en cuanto a tamaño y fiabilidad, estas máquinas abrieron las puertas a
la capacidad de procesar datos a velocidades previamente inimaginables.

La segunda generación, impulsada por la invención de los transistores, trajo consigo mejoras
notables en eficiencia y confiabilidad. Las computadoras se hicieron más compactas y accesibles,
allanando el camino para democratizar la tecnología informática. Esta etapa sentó las bases para
el auge de las computadoras personales y el inicio de la era de la informática en hogares y
oficinas.

La tercera generación, marcada por la introducción de los circuitos integrados, llevó la


miniaturización y el rendimiento a niveles sin precedentes. La posibilidad de alojar miles de
componentes en un solo chip transformó la industria y permitió el desarrollo de sistemas más
potentes y versátiles. Esto, a su vez, impulsó la adopción generalizada de computadoras en
diversos campos y aplicaciones.

La última generación, en constante evolución y definida por la convergencia de tecnologías como


los microprocesadores avanzados, la nube y la conectividad global, nos ha conducido a una era
en la que la tecnología está profundamente integrada en todos los aspectos de nuestra vida.
Desde dispositivos móviles inteligentes hasta supercomputadoras dedicadas a abordar desafíos
científicos complejos, esta etapa abarca una diversidad notable de aplicaciones y capacidades.

En última instancia, el análisis de estas generaciones de computadoras refleja la capacidad innata


del ser humano para innovar y adaptarse. Cada avance tecnológico representa un paso adelante
en la búsqueda constante de la excelencia y la mejora continua. La historia de las generaciones
de computadoras es una narrativa de perseverancia, creatividad y un anhelo incesante de superar
obstáculos. A medida que proyectamos nuestra mirada hacia el futuro, podemos afirmar con
certeza que la evolución tecnológica seguirá siendo una fuerza motriz que moldeará nuestro
mundo de maneras que aún no podemos anticipar.
GRÁFICO
 Inmediato
 Directo
 Indirecto
 Registro
 Indirecto con Registro
 Con desplazamiento
 Pila
 Dentro de la Instrucción se encuentra el
operando de la misma
 Dentro de la instrucción se encuentra la
dirección de memoria donde se encuentra el
operando de la misma.
 En este caso la instrucción contendrá en su
operando, la referencia a una palabra de
memoria, donde en dicha posición de
memoria se encontrara la dirección al
operando
 Similar al Directo, solo que en ves de la
instrucción entregar la posición de memoria
del operando, indica el direccionamiento a un
registro.
 Igual que el direccionamiento indirecto pero a
través de un registro.
 Combina las posibilidades del direccionamiento
directo y el direccionamiento con registros,
requiere de instrucciones con 2 campos de
dirección, al menos uno es un campo explicito.
 La evolución de la arq. De computadoras mostró
en su comienzo una tendencia a la complejidad
de las instrucciones, del lenguaje ofrecido. Pero
en 1975 los arquitectos de IBM se cuestionaron si
la creciente complejidad de las instrucciones era
el camino adecuado para conseguir la mejor
relación Costo/Beneficio pero IBM no dio lugar a
este planteo.
 En los 80’s Hennessy y Patterson de las
universidades de Berkley y Stanford, retoman la
iniciativa de IBM y crean el movimiento RISC
(Reduced Instruction Set Computer), en oposición
a los tradicionales juegos de instrucciones CISC
(Complex Instruction Set Computer)
 Al comienzo la MEM era un recurso muy
escaso y costoso, por lo que el objetivo del
arquitecto era el de disminuir la cantidad de
memoria que utilizaba un programa.
 Una solución a esto fue la de utilizar
instrucciones complejas que realizaran varias
instrucciones simples en una sola con lo que
se acorta el tamaño de la memoria, se acorta
el tiempo de acceso a la memoria
 Con la aparición de la unidad de control
microprogramada, que permitía cambiar los
circuitos lógicos por microprogramas que
serian almacenados en una memoria, facilito
la utilización de instrucciones complejas que
se reflejaban en muchas microinstrucciones.
 A medida que se incorporaron cada vez mas
instrucciones complejas, los micro códigos
fueron incrementando su tamaño
TIEMPO DE EJECUCION DE UN
PROGRAMA
I X C X Tc

DOS OPCIONES PARA MEJORAR EL RENDIMIENTO

MINIMIZAR I MANTENIENDO MINIMIZAR C Y Tc


C Y Tc FIJOS MANTENIENDO I FIJO
ARQUITECTURA CISC ARQUITECTURA RISC

I = INSTRUCCIONES POR PROGRAMA


C = CICLOS POR INSTRUCCIÓN
Tc = TIEMPO DEL CICLO
 Se prefieren instrucciones simples y regulares
 Las instrucciones deben ser de longitud fija
 Las instrucciones deben ser de formato
regular
 Preferiblemente disponer de modos de
direccionamiento simples para no entorpecer
el calculo de operándos
 Las operaciones deben operar
preferiblemente sobre REG solo acceden a
memoria LOAD y STORE
 Las llamadas a procedimientos suelen tener
pocos parámetros por lo que deben utilizarse
REG
 Las rutinas suelen tener pocas variables
locales, luego podrían ubicarse en el STACK
 Los procesadores deben utilizar PIPELINE
MODELO INSTRUCCIONES
RISC I 39
MIPS 55
IBM 370/168 208
VAX 11/780 303
MC68000 83
MC68020 101
INTEL 80486 235
IBM RS/6000 184
 La arquitectura RISC no persigue solamente la
reducción de las instrucciones.
 Por ejemplo los procesadores PowerPC , se
podría considerar CISC por la cantidad de
instrucciones, pero si no fuera porque tiene
instrucciones: simples, de longitud fija,
regulares y ortogonales
 La segmentación de las instrucciones
(pipeline) consiste en dividir el ciclo de
ejecución de las instrucciones en un conjunto
de etapas. Estas etapas pueden coincidir o no
con las fases del ciclo de ejecución de las
instrucciones. E ir captando y ejecutando
simultaneamente varias instrucciones al
mismo tiempo
Pipeline primitivo:
Prefetch (o pipeline de dos etapas) (1/2)
 La división de la ejecución de una instrucción
en diferentes etapas se debe realizar de tal
manera que se trate que cada etapa tenga la
misma duración o no mucha diferencia.
 Es necesario añadir registros (buffers) para
almacenar los resultados intermedios entre
las diferentes etapas, de modo que la
información generada en una etapa esté
disponible para la etapa siguiente.
 Presentamos un mismo proceso con
instrucciones de tres etapas, en el que cada
etapa tarda el mismo tiempo en ejecutarse,
resuelto sin segmentación y con
segmentación
 Fetch de instrucción (FI)
 Decodificar instrucción (DI)
 Calcular operandos (CO)
 Fetch de operandos (FO)
 Ejecutar instrucción (EI)
 Escribir resultados (write – WO)
eline de
s etapas
gica del pipeline
nsiderando
tos e
errupciones
 Límites del pipeline: los hazards (obstáculos)
pueden impedir que la próxima instrucción se
ejecute en el ciclo correspondiente
 Hazards estructurales: conflicto de HW que
impide determinada combinación de
instrucciones
 Hazards de datos: instrucción actual depende del
resultado de una instrucción previa que aún está
en el pipeline
 Hazards de control: causados por retardos entre
el fetch de instrucciones y la decisión de cambios
en el flujo de instrucciones (bifurcaciones, saltos)
 Incluye un pipeline de 5 etapas
◦ Fetch:
 Acceder a memoria o Cache
 Cargar uno de los buffer de prefetch de 16bytes
 llenar los buffers de prefetch a medida que se vacian
◦ Decodificación 1, D1:
 Se decodifica el CODOP y el modo de direccionamiento
◦ Decodificación 2, D2:
 Convierte cada CODOP en señales de control para la ALU
◦ Ejecución, EX:
 Operaciones en la ALU, acceso a memoria (cache)
◦ Escritura, WB:
 Actualiza los registros y banderas
 Resultados enviados a la Cache o a los buffers de escritura del bus.
``

Arquitectura
Arquitectura de
de Computadoras
Computadoras

Unidad Aritmético Lógica – ALU


Aritmética binaria

Ingeniería en Informática. Departamento de Ingeniería y Ciencias de la Producción.


Agenda
• Introducción
• Aritmética de enteros
• Aritmética de punto flotante (PF)
• El estándar IEEE 754
• Trabajo práctico Número 2

2
Introducción
La unidad aritmético-lógica
Entrada y Salida de la ALU

Funciones
● Realizar cálculos aritméticos: sumas y restas.

● Realiar operaciones lógicas AND, OR, XOR, NOT, etc.

● Activar flags o indicadores.

3
Introducción
La unidad aritmético-lógica

Movimiento de
datos en la ALU

4
Introducción
La unidad aritmético-logica

Simulador
MSX88 –
Intel 8088

5
Aritm. de enteros
Tipos de representaciones
Representación general
Formato
● Asignar un bit para el signo positivo (0)

● Asignar un bit para el signo negativo (1)

● El bit mas significativo es siempre el bit de signo

Ejemplo
● Número binario 10000000 (el 1 de la izquierda es

el bit más significativo que representa el signo)

6
Aritm. de enteros
Tipos de representaciones
Signo Magnitud
Formato
● Palabra de n bits

● n - 1 bits representan la magnitud

● El bit mas significativo representa el signo

Ejemplo n=8
● +18 = 00010010

● -18 = 10010010

7
Aritm. de enteros
Tipos de representaciones
Signo Magnitud
Limitaciones
● Para la suma y resta se requiere tener en cuenta el

signo y la magnitud por separado.


● Existe doble representación para el 0.

Ejemplo n=8 Dificulta comprobar la doble


● +0 = 00000000 representación al momento de
● -0 = 10000000 las operaciones.
8
Aritm. de enteros
Tipos de representaciones
Complemento a dos - CA2
Formato
● Palabra de n bits.

● Bit más significativo para el signo.

● Difiere de Signo Magnitud en la representación

de los n - 1 bits correspondientes a la magnitud.

9
Aritm. de enteros
Tipos de representaciones
Complemento a dos - CA2
Representación de
De igual forma que Signo Magnitud
números positivos
Asignar un 1 para representar el bit de
Representación de signo. Realizar el complemento booleano
números negativos de cada bit correspondiente a la
magnitud, y sumar 1 al patrón de bits.
Para realizar una operación con distintas
Extensión de la longitud longitudes de bits. Añadir posiciones de
en bits bits a la izquierda rellenando con el valor
del bit de signo original
10
Aritm. de enteros
Tipos de representaciones
Complemento a dos - CA2

Si se suman dos números con el mismo


signo (ambos positivos o ambos negativos),
Regla de desbordamiento se produce un desbordamiento cuando el
resultado tiene signo opuesto.

Para restar B de A ( A-B ), efectuar el


Regla de sustracción complemento a dos de B y sumarlo a A ( A+
(-B) )

(n−1) (n−1)
Rango de representación −2 hasta 2 −1
11
Aritm. de enteros
Tipos de representaciones
n=4
Decimal Sig M. CA-2 Sesgada Decimal Sig M. CA-2 Sesgada
+8 - - 1111 -8 - 1000 -
+7 0111 0111 1110 -7 1111 1001 0000
+6 0110 0110 1101 -6 1110 1010 0001
+5 0101 0101 1100 -5 1101 1011 0010
+4 0100 0100 1011 -4 1100 1100 0011
+3 0011 0011 1010 -3 1011 1101 0100
+2 0010 0010 1001 -2 1010 1110 0101
+1 0001 0001 1000 -1 1001 1111 0110
+0 0000 0000 0111 -0 1000 - -
12
Aritm. de enteros
Tipos de representaciones
Complemento a dos - CA2
● Fórmula base matemática

n−2
A=−2 n−1
an−1 + ∑ 2 ai
i

i=0

13
Aritm. de enteros
Tipos de representaciones
Complemento a dos - CA2

14
Aritm. de enteros
Tipos de representaciones
Complemento a dos - CA2
● Algunos ejemplos

15
Aritm. de enteros
Suma y resta en CA2
Regla de desbordamiento
● Al sumar dos números, y ambos son o bien positivos
o negativos, se produce desbordamiento si y solo si
el resultado tiene signo opuesto.
Regla de la resta
● Para substraer un número (el sustraendo) de otro
(minuendo), se obtienen el complemento a dos del
substraendo y se le suma al minuendo.
16
Aritm. de enteros
Suma y resta en CA2

● Algunos
ejemplos de
sumas y restas
en CA2

17
Aritm. de enteros
Multiplicación de enteros
Multiplicación en
CA2. Con algoritmo
de Booth
Longitud máxima de
bits resultados de una
operación de
multiplicación binaria:
2xn.
18
Aritm. de enteros
Multiplicación de enteros
Multicación en CA2 con algoritmo de Booth

● Ejemplo 710x310
● El resultado se
almacena en el
registro A y Q


Resultado:
00010101CA2=2110

19
Aritm. de enteros
División de enteros
División en CA2
● Investigar :)
● Página 321 Organización y Arquitectura de

computadores William Stallings 2007

20
Anexo
Bibliografía
William Stallings, Organizacion y Arquitectura de
Computadores, 7, Ed., 2007. (Capítulo 9).

Andrew S. Tanenbaum, Organización de Computadoras


Un Enfoque Estructurado., 2000 (Apéndice A)

John Hannessy, Arquitectura De Computadores Un


Enfoque Cuantitativo. (Apéndice A)

21
Representación de Punto Flotante

-La representación de punto fijo tiene una limitación


importante cuando se trata de números muy grandes o
fracciones muy pequeñas. Principalmente la cantidad de
bits necesarios para la representación de una magnitud.

-Para ello se utiliza el punto flotante. Que es una forma


más conveniente de representar los números y realizar
operaciones aritméticas. Permite trabajar con un amplio
rango numérico utilizando pocos dígitos.

Ing. Juan de Dios Benitez. Ing. Hernan Bareiro – Arquitectura de Computadoras


Representación de Punto Flotante

-La representación binaria es similar a la notación científica utilizada para base


decimal con algunas diferencias para optimizar los cálculos en sistemas
binarios.

e
r=c⋅b
Representación decimal científica

c: El coeficiente o mantisa, formado por un número real con un solo dígito


entero seguido de una coma (o punto) y de varios dígitos fraccionarios.
b: La base, que en sistema decimal es 10 y en binario siembre es 2.
e: El exponente entero, el cual eleva la base a una potencia

Ing. Juan de Dios Benitez. Ing. Hernan Bareiro – Arquitectura de Computadoras


Representación de Punto Flotante
-Ejemplo:

Representación Decimal Representación Binaria

Signo. En binario se indica con 0=positivo o 1=negativo

Ing. Juan de Dios Benitez. Ing. Hernan Bareiro – Arquitectura de Computadoras


Representación de Punto Flotante

-La representación binaria de punto flotante tiene la siguiente forma:

-El número se normaliza colocando la coma decimal a la


derecha del bit más significativo.
El exponente (Biased exponent – exponente sesgado) se
representar en Exceso a (2^n-1)-1 o también llamado Exceso
K. Donde k=cantidad de bits del exponente.

Ing. Juan de Dios Benitez. Ing. Hernan Bareiro – Arquitectura de Computadoras


Representación de Punto Flotante

Normalizar un número binario:

Condiciones:
-El bit mas significativo es siempre 1 y va como único valor a la izquierda
de la coma.
-Como el bit mas significativo es siempre 1 no se almacena. Permitiendo
almacenar un bit más. 24 bits en vez de 23 mejorando la precisión.

Forma genérica:

Pasos para normalizar:

-Llevar la coma a la derecha del bit 1 mas significativo


-Ajustar el exponente E de acuerdo a la cantidad de lugares de
desplazamiento.

Ing. Juan de Dios Benitez. Ing. Hernan Bareiro – Arquitectura de Computadoras


Representación de Punto Flotante

Ing. Juan de Dios Benitez. Ing. Hernan Bareiro – Arquitectura de Computadoras


Representación de Punto Flotante

Estándar IEEE 754


Es un formato definido por la IEEE para representar
números en punto flotante. Se crea en 1985 para
normalizar la representación de números y operaciones
aritméticas entre diferentes arquitecturas. Actualmente
es ampliamente utilizado en todos los procesadores.
En 2008 se le hizo una revisión al estándar para incluir
representación de números decimales. Y la posibilidad
de definir el número de bits para representar un
número
Define tres tipos básicos de formatos para números
binarios.
32, 64 y 128 bits. Con de exponentes 8, 11 y 15 bits
respectivamente.
Representación de Punto Flotante

Estándar IEEE 754

Ing. Juan de Dios Benitez. Ing. Hernan Bareiro – Arquitectura de Computadoras


Representación de Punto Flotante

Estándar IEEE 754


El estándar especifica formatos de intercambio para
que un número que esta representado en un sistema
de n bits se pueda representar en otro de m bits.
Soporta interoperatividad entre representaciones.
Representación de Punto Flotante

Estándar IEEE 754


También tiene representaciones específicas para
valores como infinito, Not a Number y valores que
sobrepasan un determinado rango.

Ing. Juan de Dios Benitez. Ing. Hernan Bareiro – Arquitectura de Computadoras


Representación de Punto Flotante

Rango de números que se pueden representar con el formato de 32 bits


en Complemento a 2 e IEEE 754

Ing. Juan de Dios Benitez. Ing. Hernan Bareiro – Arquitectura de Computadoras


Representación de Punto Flotante

Ing. Juan de Dios Benitez. Ing. Hernan Bareiro – Arquitectura de Computadoras


Ing. Juan de Dios Benitez. Ing. Hernan Bareiro – Arquitectura de Computadoras
Ejemplo pasar el número -480 (decimal) a binario de punto flotante IEEE 754 con 32 bits

Ing. Juan de Dios Benitez. Ing. Hernan Bareiro – Arquitectura de Computadoras


Representación de Punto Flotante

Operaciones aritméticas

Ing. Juan de Dios Benitez. Ing. Hernan Bareiro – Arquitectura de Computadoras


ESTRUCTURA Y FUNCIÓN DE LA UNIDAD CENTRAL DE PROCESO

La Unidad Central de Procesamiento controla el funcionamiento del computador y lleva


a cabo sus funciones de procesamiento de datos.

Estructura

Funciones

• Captar instrucción: el procesador lee una instrucción de la memoria (registro,


caché o memoria principal).
• Interpretar instrucción: la instrucción se decodifica para determinar qué acción es
necesaria.
• Captar datos: la ejecución de una instrucción puede exigir leer datos de la memoria
o de un módulo de E/S.
• Procesar datos: la ejecución de una instrucción puede exigir llevar a cabo alguna
operación aritmética o lógica con los datos.
• Escribir datos: los resultados de una ejecución pueden exigir escribir datos en la
memoria o en un módulo de E/S.
Para realizar sus funciones se compone de las siguientes unidades:

UNIDAD ARITMÉTICO-LÓGICA

Lleva a cabo las funciones de procesamiento de datos del computador.

UNIDAD DE CONTROL

Controla el funcionamiento de la CPU, las transferencias de datos e instrucciones hacia


dentro y hacia afuera del CPU, y el funcionamiento de la ALU, y por tanto del
computador.

REGISTROS

Proporcionan almacenamiento interno a la CPU, una memoria interna mínima necesaria


para almacenar datos temporalmente, como recordar la posición de la última instrucción
de forma que pueda saber de dónde tomar la siguiente.

El fin de implementar los registros es proveer un acceso más rápido a memoria, un


proceso que se realice por encima de la memoria principal y cache. Además, su uso
implicaría menos referencia de MEM.

Son de dos tipos:

Registros visibles por el usuario: permiten al programador de lenguaje máquina o de


ensamblador minimizar las referencias a memoria principal por medio de la optimización
del uso de registros.

• Registros de Uso General: pueden usarse para funciones de almacenamiento de


datos u operandos, o para funciones de direccionamiento.
• Registros de Datos: pueden usarse únicamente para contener datos y no se pueden
emplear en el calculo de dirección de un operando.
• Registros de dirección: Los registros de direcciones pueden usarse para
direccionamiento de diferentes tipos, p.e: directo o indirecto, y a menudo tienen
funciones específicas, como punteros de segmento y registros índice.
• Registro de Códigos de condición: Son bits establecidos por operaciones del
hardware del procesador, indicando resultados de operaciones como positivos,
negativos, nulos o desbordamientos.
Registros de control y de estado: son utilizados por la unidad de control para controlar el
funcionamiento del procesador y por programas privilegiados del sistema operativo para
controlar la ejecución de programas. En la mayoría de las maquinas no son visibles.

• Contador de programa (Program Counter, PC): contiene la dirección de la


instrucción a captar.
• Registro de instrucción (Instruction Register, IR): contiene la instrucción captada
más recientemente.
• Registro de dirección de memoria (Memory Address Register, MAR): contiene la
dirección de una posición de memoria.
• Registro intermedio de memoria (Memory Buffer Register, MBR): contiene la
palabra de datos a escribir en memoria o la palabra leída más recientemente.

No todos los microprocesadores tienen los dos últimos registros, MAR y MBR.

Registro palabra de estado del programa (PSW): es el nombre que recibe uno o un
conjunto de registros que contienen información especifica de estados durante los ciclos
de instrucciones, pueden ser de seguimiento de:

• Signo: contiene el bit de signo del resultado de la última operación aritmética.


• Cero: puesto a uno cuando el resultado es 0.
• Acarreo: puesto a uno si una operación da lugar a un acarreo (en la suma) o adeudo
(en la resta) del bit más significativo. Se usa en operaciones aritméticas
multipalabra.
• Igual: puesto a uno si el resultado de una comparación lógica es la igualdad.
• Desbordamiento: usado para indicar un desbordamiento aritmético.
• Interrupciones habilitadas/inhabilitadas: usado para permitir o inhabilitar
interrupciones.
• Supervisor: indica si el procesador funciona en modos supervisor o usuario.
Únicamente en modo supervisor se pueden ejecutar ciertas instrucciones
privilegiadas y se puede acceder a ciertas áreas de memoria.
Ejemplos de organizaciones de registros de microprocesadores

INTERCONEXIONES CPU

Son mecanismos que proporcionan comunicación entre la unidad de control, la ALU y


los registros.
CONCEPTOS PRELIMINARES PARA EL ANÁLISIS DE PROCESADORES

Instrucciones/Palabra:

Se representan en binario y se componen de dos campos.

CODOP (Operación) | OPERANDOS (Direcciones de Datos)

Las instrucciones a su vez pueden ser de 4 tipos

1. De procesamiento de datos: instrucciones aritméticas y lógicas


2. De almacenamiento de datos: instrucciones de memoria.
3. De transferencia de datos: instrucciones de E/S.
4. De control: instrucciones de comprobación y de bifurcación.

Palabra

Conjunto ordenado de bytes o bits que determina la unidad normal en la que se almacena
la información, transmitida, o con la que se opera en un computador dado. Normalmente,
si el procesador tiene un conjunto de instrucciones de longitud fija, la longitud de una
instrucción coincide con la de una palabra. (No siempre el ancho de bus de datos es igual
a la longitud de la palabra)

Capacidad de memoria direccionable

La capacidad de memoria direccionable se refiere al rango de direcciones de memoria


únicas que un microprocesador o sistema puede acceder. Cada dirección de memoria
corresponde a una ubicación única en la memoria donde se almacenan los datos.

Flujo de datos

Es la secuencia exacta de eventos que tienen lugar durante un ciclo de instrucción


depende del diseño del procesador. Podemos, no obstante, indicar en términos generales
lo que ocurriría. Suponiendo un procesador compuesto por los cuatro registros de control
de estado generales:

PC: Contador de programa

IR: Registro de instrucción

MAR: Registro de dirección de memoria

MBR: Registro intermedio de memoria


Durante el ciclo de captación se lee una instrucción de la memoria. PC contiene la
dirección de la siguiente instrucción que hay que captar. Esta dirección se lleva a MAR y
se coloca en el bus de direcciones. La unidad de control solicita una lectura de memoria,
y el resultado se pone en el bus de datos, se copia en MBR y después se lleva a IR.
Mientras tanto, PC se incrementa en uno como preparación para la siguiente captación.

Segmentación de instrucciones

Una manera de conseguir mayores prestaciones por parte de los computadores es través
de la implementación de la segmentación de cause o pipelining; la división de la
instrucción en unidades para realizar sus diferentes operaciones independientes al mismo
tiempo, reduciendo el ciclo de las instrucciones.

Paralelismo/procesamiento superescalar/computación paralela

Como la segmentación de instrucciones el paralelismo busca aumentar las prestaciones a


través del procesamiento de las instrucciones. Este diseño además dividir las tareas en
pequeñas tareas por medio del pipelining consiste en llevar a cabo dos o más instrucciones
al mismo tiempo.
Potencia

A medida que la densidad de la lógica y la velocidad del reloj de un chip aumentan,


también lo hace la densidad de potencia (watios/cm2 ). La dificultad en disipar el calor
generado por la gran densidad y la alta velocidad en el chip se convierte en un problema
de diseño serio.

Retardo RC

La velocidad a la que los electrones pueden fluir en un chip entre transistores está limitada
por la resistencia y capacidad de los hilos metálicos que los conectan; concretamente, el
retardo aumenta al hacerlo el producto RC. Como los componentes del chip disminuyen
de tamaño, los hilos que los interconectan son más finos, aumentando su resistencia.

Velocidad de reloj

La velocidad de reloj es una medida importante del rendimiento de un microprocesador,


ya que determina cuántas instrucciones o ciclos de trabajo pueden ejecutarse en una
unidad de tiempo determinada. En teoría, cuanto mayor sea la velocidad de reloj, más
rápido será el procesador para ejecutar tareas. Mientras más pequeños sean los circuitos
integrados menor será la longitud del bus interno y los datos podrán ser transferidos más
rápidamente.

Diseño de instrucción

RISC

• Un gran número de registros de uso general, o el uso de tecnología de


compiladores para optimizar la utilización de los registros.
• Un repertorio de instrucciones limitado y sencillo. Una instrucción compleja se
convierte en varias instrucción simples
• Un énfasis en la optimización de la segmentación de instrucciones.
• Implementación de segmentación de instrucciones.

CISC

• Conjunto de instrucciones complejas y variadas.


• Múltiples operaciones en una sola instrucción. Pueden involucrar operaciones de
memoria, aritmética y lógica en una sola instrucción.
• Número mayor de modos de direccionamiento.
MICROPROCESADORES, ARQUITECTURA DE UNO ACTUAL

Procesadores Multinúcleo

Computación Multinúcleo y su Enfoque en la Eficiencia Paralela y Heterogénea:

La computación multinúcleo es una estrategia esencial en la evolución de la arquitectura


de los procesadores, diseñada para superar las limitaciones del aumento continuo de la
velocidad de reloj en los procesadores tradicionales. Estos microprocesadores integran
múltiples núcleos de procesamiento en un solo chip, lo que proporciona capacidades de
procesamiento paralelo y aprovecha el paralelismo a nivel de hardware. Este enfoque
permite ejecutar múltiples tareas de manera simultánea y mejora significativamente el
rendimiento general de la computadora.

Computación en Paralelo en Procesadores Multinúcleo:

La base de la computación multinúcleo es el concepto de ejecución en paralelo. En esta


arquitectura, cada núcleo es una unidad independiente de procesamiento, capaz de
ejecutar instrucciones de manera autónoma. Esto da lugar a la ejecución simultánea de
múltiples tareas o hilos de ejecución, lo que aumenta la eficiencia y el rendimiento
general del sistema. La computación en paralelo se logra dividiendo tareas complejas en
tareas más pequeñas y manejables, que se ejecutan en núcleos separados de manera
simultánea.

Computación Heterogénea y sus Beneficios en Procesadores Multinúcleo:

Dentro del contexto de procesadores multinúcleo, también se adopta el enfoque de la


computación heterogénea. Esta estrategia implica la incorporación de diferentes tipos de
núcleos o aceleradores en un solo sistema. Cada tipo de núcleo se optimiza para tareas
específicas, lo que maximiza la eficiencia energética y el rendimiento en una variedad
de cargas de trabajo. Por ejemplo, algunos núcleos pueden estar diseñados para tareas
de cómputo intensivo, mientras que otros pueden enfocarse en la eficiencia energética
para tareas menos exigentes.

Diseño de Algoritmos Paralelos y Procesadores Multinúcleo:

El diseño de algoritmos paralelos es crucial en la utilización efectiva de procesadores


multinúcleo. Este proceso implica dividir problemas en tareas más pequeñas, gestionar
la comunicación entre tareas, considerar la aglomeración para mejorar la eficiencia y
finalmente mapear tareas a núcleos específicos. La arquitectura multinúcleo facilita la
ejecución de estas tareas en paralelo, lo que permite un rendimiento mejorado y una
mayor eficiencia en la solución de problemas complejos.

Procesadores híbridos

Arquitectura Híbrida en Procesadores Multinúcleo:

En procesadores multinúcleo, la arquitectura híbrida busca aprovechar las fortalezas de


diferentes tipos de núcleos y aceleradores para optimizar el rendimiento en diversas
tareas. En lugar de depender únicamente de núcleos idénticos, los sistemas híbridos
incorporan núcleos especializados diseñados para cargas de trabajo específicas. Estos
núcleos pueden incluir unidades de procesamiento gráfico (GPU), unidades de
procesamiento de señales digitales (DSP), núcleos vectoriales y más.

Por ejemplo, en tareas relacionadas con la inteligencia artificial, la arquitectura híbrida


podría combinar núcleos de propósito general con núcleos especializados en aceleración
de inferencia neuronal. Esto permite una ejecución más eficiente de algoritmos de
aprendizaje profundo y otras operaciones de IA.

Beneficios de la Arquitectura Híbrida:

Rendimiento Optimizado: La arquitectura híbrida permite aprovechar las capacidades


específicas de diferentes tipos de núcleos y aceleradores para maximizar el rendimiento
en cargas de trabajo variadas.

Eficiencia Energética: Al utilizar núcleos especializados para tareas específicas, se


puede lograr un mejor equilibrio entre rendimiento y consumo de energía.

Flexibilidad: Los sistemas híbridos son adaptables y pueden reconfigurarse para abordar
una variedad de tareas, lo que los hace ideales para entornos en los que los requisitos de
computación son diversos.

En el ámbito de la supercomputación, las arquitecturas híbridas son especialmente


relevantes. Los superordenadores a menudo emplean combinaciones de núcleos de
propósito general con aceleradores como GPUs para realizar cálculos intensivos en
paralelo. Esto permite una mayor potencia de cálculo y un rendimiento sobresaliente en
simulaciones científicas, modelado climático, análisis de datos y más.
Ejemplo Práctico:

En una arquitectura híbrida típica, un sistema podría tener núcleos de propósito general
trabajando en conjunto con unidades de procesamiento gráfico (GPUs). Los núcleos de
propósito general se encargarían de la administración del sistema operativo y la
ejecución de tareas regulares, mientras que las GPUs se especializarían en el
procesamiento paralelo masivo, como renderización de gráficos o cálculos de
aprendizaje profundo en inteligencia artificial.

Intel 4004

Arquitectura CISC

Ancho Bus (bits) 64

Vel. Reloj 6GHz

Instrucciones -

Registros

Cantidad de modos de 1
Direccionamientos
Memoria Direccionable -

N° de transistores 2300

Tamaño de Transistores 10 micrómetro

Imagen

1° Mp en integrar las 3 unidades


COMPARATIVA DE ARQUITECTURAS ACTUALES DE MICROS

Intel 4004 Intel 8086 Intel Pentium Intel Itanium ARM Cortex-A
Series / Exynos
9820 / Samsung
s10
Arquitectura CISC CISC CISC RISC RISC

Ancho Bus 4 16 32 64 32
(bits)
Vel. Reloj 740 kHz 10 MHz 300-600 MHz 800 MHz 700 MHz

Instruccione 46 150 - - -
s
Registros 16 14 16 128 16

Cantidad de 1 5 8 9 9
modos de
Direccionam
ientos
Memoria 640 B 1 MB 4 GB 64 GB
Direccionabl
e
N° de 2300 29000 3.1x10 ^6 25 x10 ^6 16000x10 ^6
transistores
Tamaño de 10 micrómetro 3 micrómetros 0.8 – 0.25 0.18 micrómetros 0.008
Transistores micrómetros
Imagen

1° Mp en integrar 1° Mp de 16 bits Hasta 4 núcleos 8 núcleos


las 3 unidades Dual-core (CPU
4ªgen)
Dual-core (Cortex-
A75)
Quad-core
(Cortex-A55)
PROCESADORES DEL TIPO ARM, ARQUITECTURA, FUNCIONAMIENTO

La arquitectura del smartphone

Todos los ordenadores, tablets, portátiles, smartphones, etc. utilizan un procesador, que
es donde se realiza la mayor parte del trabajo de computación real. El procesador recibe
instrucciones, las ejecuta y luego entrega una salida, y a medida que la tecnología ha ido
progresando, los fabricantes se han movido hacia una tecnología de procesadores de
varios núcleos.

Por lo general, los ordenadores utilizan procesadores Intel o AMD. Estas CPUs están
diseñadas para entregar un rendimiento óptimo de escritorio porque tienen una fuente de
energía confiable y potente, con procesadores de gráficos dedicados y un sistema de
enfriamiento dedicado. Sin embargo, los diseños móviles requieren diferentes
consideraciones: para seguir siendo «móviles», las baterías y fuentes de energía deben
ser más pequeñas, no hay espacio para sistemas de refrigeración, etc., por lo que los
diseños de los procesadores deben ser, por fuerza, diferentes.

Para superar estos desafíos de los que os hablamos, los fabricantes optaron por
reemplazar la arquitectura de CPU de escritorio por algo más adecuado para la
informática móvil. Los procesadores ARM son la opción ideal, ya que utilizan un
método de procesamiento simplificado y que consume menos energía. Esto se
representa en el mismo nombre ARM, que significa «Advanced RISC Machine» o
máquina RISC avanzada.

La complejidad reducida de las unidades RISC significa que requieren menos


transistores en el chip para hacer lo mismo. En general, más transistores significa
mayores requisitos de potencia y mayor coste de fabricación y, por lo tanto, se traduce
en un coste mayor. Por este motivo los procesadores ARM son por norma general
mucho más baratos que los procesadores de escritorio tradicionales.

ARM Holdings, la compañía detrás de la arquitectura ARM a diferencia de Intel y


AMD, licencia su tecnología a otros fabricantes. ARM Holdings no fabrica directamente
microprocesadores, sino que ofrece licencias de diseño de núcleos de procesadores y
tecnologías relacionadas a otras compañías.
ARM ofrece diferentes tipos de licencias a sus clientes, lo que les permite adaptar la
tecnología a sus necesidades y crear sus propios diseños de microprocesadores basados
en la arquitectura ARM. Estos son los principales tipos de licencias que ARM ofrece:

• Licencia de arquitectura: Cualquier empresa puede acceder a la documentación


técnica y las especificaciones de la arquitectura ARM sin necesidad de obtener
una licencia de diseño. Esto permite a las empresas comprender la arquitectura y
cómo funciona, pero no les da la capacidad de fabricar sus propios chips ARM.
• Licencia de diseño: Las empresas pueden obtener una licencia de diseño de
núcleos de procesadores ARM. Esto les permite diseñar y personalizar
microprocesadores utilizando los diseños de núcleos ARM como base. Pueden
adaptar estos diseños para cumplir con sus requisitos específicos.
• Licencia arquitectónica completa: Esta licencia permite a las empresas diseñar
núcleos de procesadores desde cero, utilizando la arquitectura ARM como
inspiración. Esto brinda un alto nivel de flexibilidad y control sobre el diseño del
procesador.
• Licencia de implementación física: Además de los diseños de núcleos de
procesadores, ARM también ofrece licencias que permiten a las empresas
optimizar y fabricar físicamente los procesadores.

Los microprocesadores de la línea Cortex-A de ARM, como Cortex-A72, Cortex-A73,


Cortex-A75 y Cortex-A76, se han utilizado en una variedad de smartphones de
diferentes fabricantes.

Algunos fabricantes conocidos que han utilizado microprocesadores basados en la


arquitectura Cortex-A incluyen:

• Samsung: En algunos de sus modelos de teléfonos Galaxy, Samsung ha utilizado


tanto procesadores Exynos propios (que a menudo incluyen núcleos Cortex-A)
como procesadores Snapdragon de Qualcomm.
• Huawei: Los procesadores Kirin de Huawei también han incorporado núcleos
Cortex-A en varios modelos, aunque es importante mencionar que después de mi
fecha de corte, Huawei ha enfrentado restricciones en su capacidad para fabricar
procesadores debido a problemas comerciales.
• Apple: Aunque Apple diseña sus propios procesadores para sus iPhones, iPads y
otros dispositivos, utiliza una arquitectura ARM modificada. Por ejemplo, los
chips A14 Bionic (utilizados en el iPhone 12) y los posteriores están basados en
la arquitectura ARM pero adaptados para las necesidades específicas de Apple.
• OnePlus, Xiaomi, ASUS, entre otros: Varios otros fabricantes de teléfonos
también han utilizado microprocesadores basados en núcleos Cortex-A en
diferentes modelos de sus dispositivos.

La familia ARM dispone de 16 registros (utilizables por el programador) de 32 bits cada


uno de ellos que se designan desde R0 a R15. En principio son todos idénticos y sólo 3
tienen funciones específicas que son el R15 (se emplea como contador de programa o
PC), y el R14 (utilizado para almacenar la dirección de retorno cuando se llama a una
subrutina o se genera una excepción) y el R13 (stack Pointer).

BIBLIOGRAFÍA

https://es.wikipedia.org/wiki/Intel_4004

https://es.wikipedia.org/wiki/Procesador_multin%C3%BAcleo#:~:text=La%20proximid
ad%20de%20m%C3%BAltiples%20n%C3%BAcleos,que%20viajar%20fuera%20del%
20chip

https://es.wikipedia.org/wiki/Intel_8086_y_8088

https://disruptiveludens.wordpress.com/2016/12/02/graficos-retro-intel-antes-del-
pentium/

https://territoriointel.xataka.com/bits-nucleos-nanometros-frentes-batalla-evolucion-
procesador/#:~:text=Por%20su%20parte%2C%20la%20tecnolog%C3%ADa,con%20tra
nsistores%20de%201.000%20nm

https://es.wikipedia.org/wiki/Intel_Pentium

https://es.wikipedia.org/wiki/Conjunto_de_instrucciones

https://es.wikipedia.org/wiki/Intel_Itanium

https://es.wikipedia.org/wiki/Arquitectura_ARM
ARQUITECTURA
DE COMPUTADORAS

Estructura y Funcionamiento
CPU
Alumno: Antúnez Facundo
Profesor de Cátedra: BENITEZ
Juan
Matrícula: 67564
2° Ing. Informática
FUNCIONES

Captar instrucción Interpretar instrucción Captar datos

Memoria Principal Decodificación Memoria Principal


Registro De procesamiento Registro
CACHE De almacenamiento CACHE
De transferencia Modulo E/S

Procesar datos CPU


Escribir datos

Memoria Principal
Operaciones
Lógicas Registro
Operaciones CACHE
Aritmética
Modulo E/S
CPU

ESTRUCTURA

NÚCLEO 1 NÚCLEO 2

ALU REG

BUS

U.C.
NÚCLEO 3
NÚCLEO
R. Visibles por
el Usuario
• De Uso General
• De Datos
• De dirección
• De Códigos de
condición

REGISTROS

R. De control de
Estado
• Contador de
programa (PC)
• Registro de
instrucción (IR)
• Registro de dirección
de memoria (MAR)
• Registro intermedio
de memoria (MBR)
FLUJO DE DATOS

Contador de programa (PC)


Registro de instrucción (IR)
Registro de dirección de memoria
(MAR)
Registro intermedio de memoria (MBR)

1. PC
2. MAR
3. BUS DE DIRECCIONES
4. U.C.
5. BUS DE DATOS
6. MBR
7. IR
8. PC
CONCEPTOS CLAVES

W (PALABRA) : REPRESENTACIÓN DE LA U (UNIDAD DE TRANSFERENCIA)(ANCHO


DE BUS) : ORGANIZACIÓN NATURAL DE
INSTRUCCIÓN DE LECTURA Y ESCRITURA MEMORIA Y UNIDAD DE LECTURA Y
DEL MICROPROCESADOR. ESCRITURA DEL MICROPROCESADOR.

VELOCIDAD DE RELOJ: DETERMINA MEMORIA DIRECCIONABLE: RANGO DE


CUÁNTAS INSTRUCCIONES O CICLOS DE DIRECCIONES UNICAS AL QUE UN
INSTRUCCIÓN PUEDEN EJECUTARSE EN MICROPROCESADOR PUEDE ACCEDER.
UNA UNIDAD DE TIEMPO DETERMINADA.

2^U=N
CONCEPTOS CLAVES

SEGMENTACIÓN: DIVISIÓN Y EJECUCIÓN PARALELISMO: EJECUCIÓN


DE INSTRUCCIONES A TRAVÉS DE SINCRÓNICA DE DOS O MÁS CICLOS
PIPELINE. DE INSTRUCCIONES CON POSIBLE
SEGMENTACIÓN.

POTENCIA: LA ALTA DENSIDAD


LÓGICA AUMENTA LA RESISTENCIA MULTINÚCLEO: ES UN SOLO
DE LOS HILOS METÁLICOS AL MICROPROCESADOR INTEGRADO
HACERLOS CADA VEZ MÁS POR MÁS DE UNA CPU .E
PEQUEÑOS.
Intel 4004 Intel 8086 Intel Pentium Intel Itanium ARM Cortex-A
Series / Exynos
9820 / Samsung
s10
Arquitectura CISC CISC CISC RISC RISC

Ancho Bus 4 16 32 64 32
(bits)
Vel. Reloj 740 kHz 10 MHz 300-600 MHz 800 MHz 700 MHz

Instruccione 46 150 - - -
s
Registros 16 14 16 128 16

Cantidad de 1 5 8 9 9
modos de
Direccionam
ientos
Memoria 640 B 1 MB 4 GB 64 GB
Direccionabl
e
N° de 2300 29000 3.1x10 ^6 25 x10 ^6 16000x10 ^6
transistores
Tamaño de 10 micrómetro 3 micrómetros 0.8 – 0.25 0.18 micrómetros 0.008
Transistores micrómetros
Imagen

1° Mp en integrar 1° Mp de 16 bits Hasta 4 núcleos 8 núcleos


las 3 unidades Dual-core (CPU
4ªgen)
Dual-core (Cortex-
A75)
Quad-core
(Cortex-A55)
ARQUITECTURA DE
MICROPROCESADORES ARM «AVANCE RISC MACHINE»
ACTUALES MÁQUINA RISC AVANZADA

ARQUITECTURA RISC 32 BITS


GRAN NÚMERO DE MODOS SIMPLES DE
REGISTROS(16) DIRECCIONAMIENTO
ARQUITECTURA
HÍBRIDA PARALELISMO

PIPELINE
LICENCIA DE
FABRICACIÓN
ARITMÉTICA DE LA COMPUTADORA

UNIDAD ARITMÉTICO-LÓGICA
La ALU es la parte de la computadora que realiza realmente las operaciones aritméticas
y lógicas con los datos. El resto de los elementos de la maquina (unidad de control,
registros, memoria, E/S) están principalmente para suministrar datos a la ALU, a fin de
que esta los procese y para recuperar los resultados. Con la ALU llegamos al estudio de
lo que puede considerarse el núcleo o esencia de una computadora.
Los datos se presentan a la ALU en registros, y en registros se almacenan los resultados
de las operaciones producidas por la misma. Estos registros son posiciones de memoria
temporal interna al procesador que están conectados a la unidad. La ALU también puede
activar indicadores o flags como resultado de una operación.
Por ejemplo, un indicador de desbordamiento se pondrá a 1 si el resultado de una
operación excede la longitud del registro en donde éste debe almacenarse. Los valores
de los indicadores se almacenan también en otro registro dentro del procesador. La
unidad de control proporciona las señales que gobiernan el funcionamiento de la ALU y
la transferencia de datos dentro y fuera de la ALU.

Los dos aspectos fundamentales de la aritmética de una computadora son la forma de


representar los números (en el sistema binario), y los algoritmos utilizados para realizar
las operaciones aritméticas básicas (suma, resta, multiplicación y división). Los sistemas
actuales funcionan con dos formas de representación numérica:

• Representación de enteros o punto fijo


• Representación de punto flotante

1
REPRESENTACIÓN DE ENTEROS
Existen varias convenciones alternativas para representar números enteros tanto
positivos como negativos. Todas ellas implican tratar el bit más significativo (el más a la
izquierda) de la palabra como un bit de signo: si dicho bit es 0 el número es positivo, y
si es 1, el número es negativo.

Signo-magnitud
La forma más sencilla de representación que emplea un bit de signo es la
denominada representación signo-magnitud. En una palabra de n bits, los n–1
bits de la derecha representan la magnitud del entero. Por ejemplo:

La representación signo-magnitud posee varias limitaciones. Una de ellas es que la


suma y la resta requieren tener en cuenta tanto los signos de los números como sus
magnitudes relativas para llevar a cabo la operación en cuestión. Otra limitación, por
ejemplo, es que hay dos representaciones del número 0:

Esto es un inconveniente porque es algo más difícil comprobar el valor 0 (una operación
frecuentemente en los computadores) que si hubiera una sola representación.
Debido a estas limitaciones, raramente se usa la representación en signo-magnitud para
implementar en la ALU las operaciones con enteros. En su lugar, el esquema más
común es la representación en complemento a dos.

Complemento a dos
Al igual que la de signo-magnitud, la representación en complemento a dos utiliza el bit
más significativo como bit de signo, facilitando la comprobación de si el entero es
positivo o negativo. Pero, difiere de dicha representación en la forma de interpretar los
bits restantes.
El número cero tiene una única representación y es positiva (00000000). El rango de los
números enteros positivos que pueden representarse va desde el 0 hasta el 2n-1-1 (todos
los bits de magnitud a 1). Cualquier número mayor requerirá más bits. Ahora, para los
negativos el bit de signo es 1, y los n-1 bits restantes pueden tomar cualquier valor entre
-1 y -2n-1.

2
Aunque nos pueda resultar engorrosa, la representación en complemento a dos, facilita
las operaciones aritméticas más importantes, la suma y la resta. Por esta razón, es
utilizada casi universalmente como representación de los enteros en los procesadores.

La siguiente tabla compara, para enteros de cuatro bits, las representaciones en signo-
magnitud y complemento a dos.

Conversión entre longitudes de bits diferentes


A veces se desea tomar un entero de n bits y almacenarlo en m bits, siendo m > n. La
regla para los enteros en complemento a dos es trasladar el bit de signo a la nueva
posición más a la izquierda y completar con copias del bit de signo. Para números
positivos, rellenar con ceros, y para negativos con unos. Por ejemplo:

3
ARITMÉTICA DE ENTEROS

Negación
En la notación de complemento a dos, la negación de un entero puede realizarse
siguiendo las reglas
1. Obtener el complemento booleano de cada bit del entero. Es decir, cambiar cada
1 por 0, y cada 0 por 1.
2. Tratando el resultado como un entero binario sin signo, sumarle 1.
Por ejemplo:

Suma y Resta
La suma se efectúa igual que si los números fuesen enteros sin signo. En algunos casos,
hay un bit de acarreo más allá del final de la palabra, por lo general, este bit se ignora.
En cualquier suma, el resultado puede que sea mayor que el permitido por la longitud
de palabra que se está utilizando. Esta condición se denomina desbordamiento
(overflow). Cuando ocurre, la ALU debe indicarlo para que no se intente utilizar el
resultado obtenido. Para detectar dicho desbordamiento se debe tener en cuenta la
siguiente regla:
REGLA DE DESBORDAMIENTO: al sumar dos números, y ambos son o bien positivos
o negativos, se produce desbordamiento si y solo si el resultado tiene signo opuesto.
Para realizar la resta solamente hay que tener en cuenta la siguiente regla:
REGLA DE LA RESTA: para substraer un número (el substraendo) de otro (minuendo),
se obtiene el complemento a dos del substraendo y se le suma al minuendo.

4
Algunos ejemplos:

Centrándonos en la parte operacional de la máquina, la misma necesita de ciertos


elementos de hardware para poder realizar estas operaciones. El elemento central es
un sumador binario, al que se presentan los números a sumar y produce una suma y un
indicador de desbordamiento. Para sumar, los números se presentan como registros, y
el resultado normalmente es almacenado en uno de estos registros en lugar de un
tercero. La indicación del desbordamiento se almacena en un “OF” (overflow flag). Para
la resta, el sustraendo se pasa a través de un complementador, de manera que el valor
que se presenta al sumador sea el complemento a dos de alguno de los registros.

5
Multiplicación
Para realizar la multiplicación en complemento a dos la mayoría de los procesadores
utilizan la técnica conocida como el Algoritmo de Booth. Este algoritmo tiene la ventaja
adicional de acelerar el proceso de multiplicación con respecto a una aproximación más
directa.

En el algoritmo de Booth, el multiplicador y el multiplicando se ubican en los registros Q


y M respectivamente. Hay también un registro de un bit con una ubicación lógica a la
derecha del bit menos significativo del registro Q, denominado Q-1. El producto
resultante aparecerá en los registros A y Q, A y Q-1 se inicializan en 0.
La lógica de control recorre los bits el multiplicador uno por uno, al examinar cada bit,
compara el bit de Q0 con el bit almacenado a su derecha (Q-1). Si estos son iguales (1-
1 o 0-0) todos los bits de los registros A, Q y Q-1, se desplazan un bit a ala derecha. Si
dichos bits difieren, el multiplicando se suma, si es 0-1, o se resta, si es 1-0, al registro
A. A continuación de la suma o resta se realiza un desplazamiento a la derecha.
El desplazamiento en este caso es llamado desplazamiento aritmético, que consiste en
preservar el bit de signo del registro A. Es decir, que el bit más a la izquierda de A (An-1)
no solo se desplazará hacia An-2, sino también que quedará en An-1.

6
Algunos ejemplos:

División
La división es algo más compleja que la multiplicación pero está basada en los mismos
principios generales. Para realizar divisiones con números en complemento a dos
definimos el siguiente algoritmo:

7
1. Cargar el divisor en el registro M y el dividendo en los registros A y Q. el dividendo
debe estar expresado como numero de complemento a dos de 2n bits. Por
ejemplo, el numero de 4 bits 0111 (710) pasa a ser 00000111.
2. Desplazar A y Q una posición de bit a la izquierda.
3. Si M y A tienen el mismo signo, ejecutar A←A-M; si no, A←A+M
4. La operación anterior tiene éxito si el signo de A es el mismo antes y después de
la operación (Regla de Desbordamiento). Ante esto se presentan dos opciones:
a) Si la operación tiene éxito o A = 0, entonces hacer Q0 ← 1.
b) Si la operación no tiene éxito y A es distinto de 0, entonces Q 0 ←0, y
restablecer el valor anterior de A.
5. Repetir los pasos 2 a 4 tantas veces como números tenga Q (n).
6. El resto está en A. Si los signos del divisor y dividendo eran iguales, el cociente
está en Q; si no, el cociente correcto es el complemento a dos de Q.

Algunos Ejemplos:

Representación en Punto Flotante


La representación de enteros tiene una limitación importante cuando se trata de
números muy grandes o fracciones muy pequeñas. Para ello se utiliza el punto flotante,
que comparte los principios y las reglas de la notación científica utilizada en el sistema
decimal. Este sistema de representación es muy utilizado por los procesadores ya que,
permite trabajar con un amplio rango numérico utilizando pocos bits.

S: la mantisa o parte significativa, formado por un número real con un solo digito entero
seguido de una coma y de varios dígitos fraccionarios.
B: La base, que en el sistema binario siempre será 2.
E: el exponente entero, el cual eleva la base a una potencia.
Signo: será 0 si es positivo o 1 si es negativo.

8
La base está implícita y no necesita memorizarse ya que siempre es la misma. También
se supone que la parte entera de la mantisa siempre es un 1, por lo que, normalmente
es implícito. Esto se conoce como número normalizado.
El bit más a la izquierda representa el signo del número. El valor del exponente tiene
una representación sesgada, para obtener su valor debemos realizar:

e + (2k-1-1)
donde: e es el valor real del exponente, y k es el número de bits en el exponente binario.
El resultado es un número decimal, el cual debe ser convertido a binario.
La parte final de la palabra (23 bits en este caso) es la parte significativa o mantisa.

Para el ejemplo que vimos recién, la cantidad de números representables se la puede


observar en el siguiente grafico:

Donde:

• Los números negativos van desde –(2-2-23)x2128 hasta -2-127


• Y los números positivos entre 2-127 y (2-2-23)x2128

Estándar IEEE 754


Es un formato definido por la IEEE (Instituto de Ingenieros Eléctricos y Electrónicos),
para representar números en punto flotante. Se crea en 1985 para normalizar la
representación de números y operaciones aritméticas entre diferentes arquitecturas.
Define tres tipos básicos de formatos para números binarios: 32, 64 y 128 bits. Con
exponentes de 8, 11 y 15 bits, respectivamente.

9
Este formato, a su vez, define representaciones específicas para valores como infinito,
NaN (Not a Number), y valores que sobrepasan un determinado rango.

Como vimos antes, en una operación en coma flotante se puede producir alguna de
estas condiciones:

• Desbordamiento: cuando el valor del exponente o la parte significativa excede al


valor máximo posible. En algunos sistemas, este desbordamiento puede
designarse como infinito.
• Agotamiento: cuando el valor del exponente o la parte significativa es menor que
el mínimo valor posible. En algunos sistemas, para el caso del exponente, puede
ser representado con el valor 0; y para el caso de la parte significativa, se deberá
efectuar algún tipo de redondeo.

Aritmética en punto flotante

Suma y Resta
En la aritmética de punto flotante las sumas y restas son más complejas que las otras
operaciones ya que, es necesario asegurar que ambos operandos tengan el mismo
exponente. Hay cuatro etapas básicas del algoritmo para sumar y restas:

10
1. Comprobar valores cero: si alguno de los operandos es cero, se da el otro como
resultado.
2. Ajuste de partes significativas: se debe manipular los números para que los dos
exponentes sean iguales, para ello se desplazan los bits hacia la derecha el más
pequeño (incrementado el exponente) o hacia la izquierda el número más
grande.
3. Sumar o restar las partes significativas.
4. Normalizar el resultado: desplazar a la izquierda los dígitos de la mantisa hasta
que el más significativo sea uno.

Multiplicación y división
La multiplicación y la división son operaciones mucho más sencillas y directas. Lo que
hay que tener en cuenta a la hora de realizarlas es lo siguiente:

• Si algún operando vale 0


• Restar (multiplicación) o Sumar (división) el Sesgo.
• Comprobar si no hay desbordamiento o agotamiento de exponentes.
• Realizar la operación.

11
Redondeo
El resultado de cualquier operación sobre las partes significativas se almacena
generalmente en un registro más grande. Cuando el resultado se pone de nuevo en el
formato de coma flotante, hay que deshacerse de los bits extra.
El estándar del IEEE brinda las siguientes aproximaciones alternativas:

• Redondeo al más próximo: el resultado se redondea al número representable


más próximo.
• Redondeo hacia infinito: el resultado se redondea por exceso hacia más infinito
o por defecto hacia menos infinito.
• Redondeo hacia 0.

12
BIBLIOGRAFIAS
“Organización y arquitectura de computadoras” – William Stallings

13
ARQUITECTURA DE COMPUTADORAS

ARITMÉTICA DE UN
COMPUTADOR
Alumno: Sosa Ignacio
Profesor de Cátedra: Benítez Juan
Matrícula: 67514
2° Ing. Informática
UNIDAD ARITMÉTICO LÓGICA
La ALU es la parte de la computadora que realiza las operaciones aritméticas y lógicas con los datos. El
resto de los elementos de la maquina están principalmente para suministrar datos a la ALU, a fin de que
esta los procese y para recuperar los resultados.
REPRESENTACIÓN DE NÚMEROS

Representación Punto Fijo o Entero:


• Signo-Magnitud
• Complemento a Dos

Representación Punto Flotante


CONVERSIONES ENTRE LONGITUDES
DE DIFERENTES BITS
A veces se desea tomar un entero de n bits y almacenarlo en m bits, siendo m > n. La regla para los
enteros en complemento a dos es trasladar el bit de signo a la nueva posición más a la izquierda y
completar con copias del bit de signo. Para números positivos, rellenar con ceros, y para negativos con
unos.
ARITMÉTICA DE ENTEROS
en Complemento a Dos
NEGACIÓN
En la notación de complemento a dos, la negación de un entero puede realizarse siguiendo las reglas

1. Obtener el complemento booleano de cada bit del


entero. Es decir, cambiar cada 1 por 0, y cada 0 por
1.
2. Tratando el resultado como un entero binario sin
signo, sumarle 1.
SUMA y RESTA
La suma se efectúa igual que si los números fuesen enteros sin signo. En algunos casos, hay un bit de acarreo
más allá del final de la palabra, por lo general, este bit se ignora.

REGLA DE DESBORDAMIENTO:
Al sumar dos números, y ambos son o bien positivos o
negativos, se produce desbordamiento si y solo si el
resultado tiene signo opuesto. Cuando ocurre, la ALU
debe indicarlo con una flag.

REGLA DE LA RESTA:
Para substraer un número (el substraendo) de otro
(minuendo), se obtiene el complemento a dos del
substraendo y se le suma al minuendo.
CÓMO OPERA LA MAQUINA
MULTIPLICACIÓN
Para realizar la multiplicación en complemento a dos la mayoría de los procesadores utilizan la técnica conocida
como el Algoritmo de Booth.
EJEMPLOS DE MULTIPLICACIONES
DIVISIÓN
La división es algo mas compleja que la multiplicación pero esta basada en los mismos principios generales.

• El resto queda almacenado en el registro A

• Si los signos del dividendo y divisor eran


iguales, el cociente esta en el registro Q. Si
eran diferentes el cociente será el
complemento a dos de Q.
EJEMPLOS DE DIVISIONES
ARITMÉTICA EN PUNTO
FLOTANTE
PARA TENER EN CUENTA
SUMA Y RESTA
En la aritmética de punto flotante las sumas y restas son más complejas que las otras operaciones ya que, es
necesario asegurar que ambos operandos tengan el mismo exponente.

Pasos a seguir:
• Comprobación de ceros
• Ajuste de Partes Significativas
• Sumar o Restar
• Normalizar el resultado
MULTIPLICACIÓN Y DIVISIÓN
La multiplicación y la división son operaciones mucho más sencillas y directas. Lo que hay que tener en cuenta a
la hora de realizarlas es lo siguiente:

• Si algún operando vale 0.

• Restar (multiplicación) o Sumar (división) el Sesgo.

• Comprobar si no hay desbordamiento o agotamiento de exponentes.

• Realizar la operación.
MULTIPLICACIÓN Y DIVISIÓN
TECNICAS DE REDONDEO
El resultado de cualquier operación sobre las partes significativas se almacena generalmente en un registro más
grande. Cuando el resultado se pone de nuevo en el formato de coma flotante, hay que deshacerse de los bits
extra. El estándar del IEEE brinda las siguientes aproximaciones alternativas:

• Redondeo al mas próximo: el resultado se redondea al número representable más


próximo.
• Redondeo hacia infinito: el resultado se redondea por exceso hacia mas infinito o por
defecto hacia menos infinito.
• Redondeo hacia 0.
UNIDAD DE CONTROL: CABLEADA Y MICROPROGRAMADA

Implementación Cableada
En una implementación cableada, la unidad de control es esencialmente un circuito
combinacional. Sus señales lógicas de entrada se transforman en un conjunto de
señales lógicas de salida, que son las señales de control.
Las entradas principales son:
Registro de Instrucción: la unidad de control hace uso del código de operación para
emitir una combinación diferente de señales. Para simplificar la lógica de la unidad de
control, debería existir una entrada lógica única para código de operación. Esta función
la puede realizar un decodificador.
Reloj: permite delimitar la duración de las microoperaciones. Esencialmente, el periodo
de los pulsos de reloj ha de ser suficientemente largo para permitir la propagación de
señales a lo largo de los caminos de datos y a través de la circuitería del procesador.
Indicadores y Señales del bus: brindan a la unidad de control algún tipo de aviso
especial. Normalmente cada bit individual tiene un significado determinado, por ejemplo
desbordamiento.

Control Microprogramado
Implementar una unidad de control como una interconexión de elementos lógicos
básicos no es una tarea fácil. El diseño debe incluir lógica para realizar el
secuenciamiento de las microoperaciones y su ejecución, para interpretar los códigos
de operación, y para tomar decisiones basadas en los indicadores de la ALU. Todo este
hardware es difícil de diseñar y de verificar. Una alternativa, que se ha usado en muchos
procesadores CISC, es realizar una unidad de control microprogramada.
Cada microoperacion esta descrita en notación simbólica, esta notación es conocida
como lenguaje de microprogramación. Donde cada línea describe un conjunto de

1
instrucciones que suceden a la vez, una secuencia de dichas instrucciones se conoce
como microprograma o firmware.
Por cada microoperacion la unidad de control puede generar un conjunto de señales de
control, por lo tanto las instrucciones se representarían mediante un patrón diferente de
unos y ceros en la palabra de control.
Supongamos que se emplea una secuencia de palabras de control para representar la
secuencia de microoperaciones ejecutadas por la unidad de control. A continuación,
hemos de admitir que la secuencia de microoperaciones no es fija. Algunas veces
tenemos un ciclo indirecto; otras no. Por tanto, coloquemos nuestras palabras de control
en una memoria, cada palabra en una dirección única. Añadamos ahora un campo de
dirección a cada palabra de control, indicando la posición de la siguiente palabra de
control a ejecutar si una determinada condición es cierta (por ejemplo, que el bit de
direccionamiento indirecto de una instrucción que referencia la memoria sea uno). Y
añadamos además algunos bits para especificar la condición.

El resultado se conoce como microinstrucción horizontal. Para ejecutarla se activan


todas las líneas de control cuyos bits sean 1, y se dejan inactivas las demás. La señal
resultante hará que se ejecute una o más microoperaciones. Si la condición indicada
por los bits es falsa, se ejecuta la siguiente microinstrucción secuencial, si es cierta, la
siguiente instrucción a ejecutar se indica en el campo de dirección.
La memoria de control almacena el conjunto de microinstrucciones y define la secuencia
de microoperaciones a realizar en cada ciclo(captación, indirecto, ejecución,
interrupción), y especifica el secuenciamiento de estos ciclos.
El registro de dirección de control contiene la dirección de la siguiente microinstrucción
a leer. Cuando se lee una microinstrucción de la memoria de control, se transfiere al
registro intermedio de control. La parte izquierda de ese registro se conecta a las líneas
de control que salen de la unidad de control. De este modo, leer una microinstrucción
de la memoria de control es lo mismo que ejecutarla. El tercer elemento que muestra la
figura es una unidad de secuenciamiento que carga el registro de dirección de control y
emite una orden de lectura.

2
Entonces durante un pulso del reloj la unidad de control realiza las siguientes
operaciones:
1. Para ejecutar una instrucción, la unidad lógica de secuenciamiento emite una
orden de lectura a la memoria de control.
2. La palabra cuya dirección se especifica en el registro de dirección de control se
lee en el registro intermedio de control.
3. El registro de control genera las señales de control y la información de dirección
siguiente para la unidad lógica de secuenciamiento.
4. La unidad lógica de secuenciamiento carga en el registro de dirección de control
una nueva dirección, basada en la información de dirección siguiente del registro
intermedio de control y en los indicadores de la ALU.

El último paso requiere cierta elaboración. Al final de la ejecución de cada


microinstrucción, la unidad lógica de secuenciamiento carga una nueva dirección en el
registro de dirección de control. Dependiendo de los indicadores de la ALU y del registro
intermedio, se toma una de las siguientes decisiones:

• Captar la microinstrucción siguiente: se suma 1 al registro de dirección de


control.
• Saltar a una nueva rutina según indica la instrucción de salto.

3
• Saltar a la rutina de una instrucción maquina: se carga el registro de dirección
de control en función del código de operación almacenado en IR.

Un ejemplo de un conjunto de instrucciones

Ventajas e Inconvenientes
La ventaja principal que aporta el uso de la microprogramación para implementar una
unidad de control es que simplifica su diseño. Por consiguiente, su implementación
resulta más barata y menos propensa a errores. Una unidad de control cableada
contendrá lógica compleja para hacer el secuenciamiento a través de las muchas
microoperaciones del ciclo de instrucción. Por otra parte, los decodificadores y la unidad
lógica de secuenciamiento de una unidad de control microprogramada son elementos
lógicos muy sencillos.
El principal inconveniente de una unidad microprogramada es que será algo más lenta
que una unidad cableada de tecnología comparable. A pesar de ello, la
microprogramación es la técnica dominante en las arquitecturas CISC puras. Mientras
que, los procesadores RISC, dado que tienen un formato de instrucción más sencillo,
normalmente emplean unidades cableadas.

Secuenciamiento de Microinstrucciones
Cuando se ejecuta un microprograma, la dirección de la siguiente microinstrucción a
ejecutar esta en una de estas situaciones:

• Viene determinada por el registro de instrucción: esto tiene lugar solo una vez
por ciclo de instrucción.

4
• Es la siguiente dirección secuencial: es la más común.
• Es el destino de un salto: pueden ser condicionales o incondicionales.
Las secuencias suelen ser cortas, una de cada tres o cuatro podría ser un salto.

Técnicas de secuenciamiento
Existen dos grandes grupos de técnicas:

EXPLICITAS: las direcciones aparecen explícitamente en la microinstrucción.


1) Dos campos de dirección: se tiene un multiplexor que sirve de destino de los dos
campos de dirección y del registro de instrucción. Basándose en la entrada de
selección de dirección, el multiplexor transmite el código de operaciones o una
de las dos direcciones al registro de dirección de control.
2) Salto Incondicional.
3) Salto condicional: el salto se realizará dependiendo de los siguientes tipos de
información:
• Indicadores de la ALU
• Parte del código de operación o campos de modo de direccionamiento de
la instrucción máquina.
• Partes de un registro seleccionado, tales como el bit de signo.
• Bits de estado dentro de la unidad de control.

IMPLÍCITAS: requieren lógica adicional para generar la dirección.


1) Traducción: es necesaria en casi todos los diseños. La parte de una instrucción
máquina que contiene el código de operación se traduce a una dirección de
microinstrucción. Esto ocurre solo una vez por ciclo de instrucción.
2) Adición: consiste en combinar o sumar dos partes de una dirección para formar
la dirección completa.
3) Control Residual: implica el uso de una dirección de microinstrucción guardada
previamente en un almacenamiento temporal dentro de la unidad de control.

Microinstrucción vertical
Como vimos antes, cada bit de una microinstrucción producía directamente una señal
de control o un bit de la dirección siguiente. Se pueden ahorrar bits de la palabra de
control codificando la información de control , y decodificándola más tarde para producir
las señales de control.

5
Algunas de las diferencias entre microinstrucción vertical y horizontal:

6
Ejemplos de Microinstrucciones

7
BIBLIOGRAFIAS
“Organización y arquitectura de computadoras” – William Stallings

8
ARQUITECTURA DE COMPUTADORAS

IMPLEMENTACIÓN DE LA
UNIDAD DE CONTROL
Alumno: Sosa Ignacio
Profesor de Cátedra: Benítez Juan
Matrícula: 67514
2° Ing. Informática
TIPOS DE IMPLEMENTACIÓN
Las diversas técnicas de implementación de una unidad de control pueden dividirse en dos grandes
grupos:

• Implementación Cableada

• Implementación Microprogramada
IMPLEMENTACIÓN CABLEADA
En una implementación cableada, la unidad de control es esencialmente un circuito combinacional. Sus
señales lógicas de entrada se transforman en un conjunto de señales lógicas de salida, que son las señales
de control. Las entradas principales son:

• Registro de Instrucción (IR).

• Reloj.

• Indicadores.

• Señales de Bus.
CONTROL MICROPROGRAMADO

Una alternativa muy utilizada por procesadores CISC. Cada microperación esta descrita en
notación simbólica, donde cada línea describe un conjunto de instrucciones que suceden a la
vez. Por cada microperación la unidad de control puede generar un conjunto de señales de
control, por tanto las instrucciones se representaría mediante un patrón diferente de unos y
ceros en la palabra de control.
FUNCIONAMIENTO
TIPOS DE MICROINSTRUCCIONES

MICROINSTRUCCIÓN HORIZONTAL MICROINSTRUCCIÓN VERTICAL


SECUENCIAMIENTO DE MICROINSTRUCCIONES
Cuando se ejecuta un microprograma, la dirección de la siguiente microinstrucción a ejecutar esta en una
de estas situaciones:

• Viene determinada por el registro de instrucción: esto tiene lugar solo una vez por ciclo de

instrucción.

• Es la siguiente dirección secuencial: es la mas común.

• Es el destino de un salto: pueden ser condicionales o incondicionales.


TÉCINAS DE SECUENCIAMIENTO
EXPLÍCITAS

• Dos campos de dirección.

• Salto Incondicional.

• Salto Condicional.
TÉCINAS DE SECUENCIAMIENTO
IMPLÍCITAS

• Traducción.

• Adición.

• Control Residual.
EJEMPLOS DE MICROINSTRUCCIONES
EJEMPLOS DE MICROINSTRUCCIONES
LENGUAJE DE MÁQUINA

Un punto de encuentro en que el diseñador del computador y el programador pueden


ver la misma máquina es el repertorio de instrucciones. Desde el punto de vista del
diseñador, el conjunto de instrucciones máquina constituye la especificación o
requisitos funcionales del procesador.
Desde el punto de vista del usuario, quien elige programar en lenguaje máquina se hace
consciente de la estructura de registros y de memoria, de los tipos de datos que acepta
directamente la máquina y del funcionamiento de la ALU.

El funcionamiento del procesador está determinado por las instrucciones que ejecuta.
Estas instrucciones se denominan instrucciones máquina o instrucciones del
computador. Al conjunto de instrucciones distintas que puede ejecutar el procesador se
denomina repertorio de instrucciones del procesador.

ELEMENTOS DE UNA INSTRUCCIÓN MÁQUINA

Código de operación: especifica la operación a realizar (suma, E/S, etc.). La operación


seindica mediante un código binario denominado código de operación o,
abreviadamente, codop.

Referencia a operandos fuente u origen: la operación puede implicar a uno o más


operandos origen, es decir operandos que son entradas para la instrucción.

Referencia al operando de destino o resultado: la operación puede producir un


resultado.

Referencia a la siguiente instrucción: dice al procesador de dónde captar la siguiente


instrucción tras completarse la ejecución de la instrucción actual.

La siguiente instrucción a captar está en memoria principal o, en el caso de un sistema


de memoria virtual, bien en memoria principal o en memoria secundaria (disco). En la
mayoría de los casos,

la siguiente instrucción a captar sigue inmediatamente a la instrucción en ejecución. En


tales casos hay referencia explícita a la siguiente instrucción. Cuando sea necesaria una
referencia explícita, debe suministrarse la dirección de memoria principal o de memoria
virtual.
Los operandos origen y destino pueden estar en alguna de las tres áreas siguientes:

Memoria principal o virtual: como en las referencias a instrucciones siguientes, debe


indicarse la dirección de memoria principal o de memoria virtual.

Registro del procesador: salvo raras excepciones, un procesador contiene uno o más
registros que pueden ser referenciados por instrucciones máquina. Si solo existe un
registro, la referencia a él puede ser implícita. Si existe más de uno, cada registro tendrá
asignado un número único y la instrucción debe contener el número del registro
deseado.

Dispositivo de E/S: la instrucción debe especificar el módulo y dispositivo de E/S para


la operación. En el caso de E/S asignadas en memoria, se dará otra dirección de
memoria principal o virtual.

REPRESENTACIÓN DE INSTRUCCIONES

Dentro del computador, cada instrucción se representa por una secuencia de bits.
Durante su ejecución, la instrucción se escribe en un registro de instrucción (IR) del
procesador. El procesador debe ser capaz de extraer los datos de los distintos campos de
la instrucción para realizar la operación requerida.
Es difícil, tanto para los programadores como para los lectores de un libro de texto,
manejar las representaciones binarias de las instrucciones máquina. Por ello, es una
práctica común utilizar representaciones simbólicas de las instrucciones máquina.

Los codops se representan mediante abreviaturas, denominadas nemotécnicos, que


indican la operación en cuestión. Estos suelen ser:

• ADD Sumar
• SUB Restar
• MPY Multiplicar
• DIV Dividir
• LOAD Cargar datos de memoria
• STOR Almacenar datos en memoria (memorizar)

Los operandos también suelen representarse simbólicamente. Por ejemplo, la


instrucción: ADD R,Y.

Significa sumar el valor contenido en la posición de datos Y al contenido del registro R.


Hace referencia a la dirección de una posición de memoria, y R a un registro particular.

De esta forma es posible escribir un programa en lenguaje máquina de forma simbólica.


Cada codop tiene una representación binaria fija, y el programador especifica la
posición de cada operando simbólico. Por ej: el programador comienza con una lista de
definiciones:

X= 513

Y= 514

Z= 515

y así sucesivamente. Un sencillo programa aceptaría como entrada esta información


simbólica, convertiría los codops y referencias a operandos a forma binaria y construiría
las instrucciones máquina binarias.
TIPOS DE INSTRUCCIONES

Los tipos de instrucciones se pueden clasificar de la siguiente manera:

• De procesamiento de datos: instrucciones aritméticas y lógicas


• De almacenamiento de datos: instrucciones de memoria.
• De transferencia de datos: instrucciones de E/S.
• De control: instrucciones de comprobación y de bifurcación.

Las instrucciones aritméticas proporcionan capacidad computacional para procesar


datos numéricos.

Las instrucciones lógicas (“booleanas”) operan con los bits de una palabra en lugar de
considerarlos como números, proporcionando por tanto capacidad para el procesamiento
de cualquier otro tipo de datos que el usuario quiera emplear. Estas operaciones se
realizan principalmente con datos en registros del procesador. Por lo tanto, debe haber
instrucciones de memoria para transferir los datos entre la memoria y los registros.

Las instrucciones de E/S se necesitan para transferir programas y datos a memoria y


devolver resultados de los cálculos al usuario.

Las instrucciones de comprobación o test se emplean para comprobar el valor de una


palabra de datos o el estado de un cálculo.

Las de bifurcación se usan entonces para bifurcar a diferentes conjuntos de


instrucciones dependiendo de la decisión tomada.

NÚMERO DE DIRECCIONES

Una de las formas tradicionales de describir la arquitectura de un procesador es en


términos del número de direcciones contenidas en cada instrucción.
¿Cuál es el número máximo de direcciones que serían necesarias en una instrucción?

Las instrucciones aritméticas y lógicas son las que requieren más operandos.

Prácticamente todas las operaciones aritméticas y lógicas son o bien unarias (un
operando) o binarias (dos operandos). Así pues, necesitaríamos un máximo de dos
direcciones para referenciar operandos. El resultado de una operación debe
almacenarse, lo que sugiere una tercera dirección.

Finalmente, tras completar una instrucción debe captarse la siguiente, necesitando su


dirección.

Esto implica que una instrucción incluye cuatro referencias a direcciones: dos
operandos, un resultado y la dirección de la instrucción siguiente.

Sin embargo, es muy raro encontrar instrucciones que contengan cuatro direcciones. La
mayoría de las instrucciones tienen una, dos o tres direcciones, estando implícita la
dirección de la instrucción siguiente.

Tomemos por ej. la figura 10.3:

Aquí, compara instrucciones típicas de una, dos y tres direcciones, que podrían
utilizarse para calcular Y = (A - B) / [(C + D * (E)]. Con tres direcciones, cada
instrucción especifica dos posiciones de operandos y la posición del resultado. Dado
que no queremos alterar el valor de ninguna posición de operando, se utiliza una
posición temporal “T”, para almacenar resultados intermedios. (Observe que hay
cuatro instrucciones y que la expresión original tenía cinco operandos.)

Las instrucciones con tres direcciones no son comunes ya que requieren formatos
relativamente largos para albergar las tres referencias.

Con instrucciones de dos direcciones, para operaciones binarias una de las direcciones
debe hacer el servicio doble de uno de los operandos y del resultado. Así pues, la
instrucción «SUB Y»: B realiza el cálculo Y - B y guarda el resultado en Y. El formato
de dos direcciones reduce el espacio necesario, pero resulta engorroso.

Para evitar que se altere el valor de un operando se utiliza una instrucción «MOVE»
para transferir uno de los valores a una posición temporal o de resultados, antes de
realizar el cálculo. Nuestro programa ejemplo se amplía a seis instrucciones.

La instrucción de una sola dirección es aún más simple. Para que funcione, una
segunda dirección debe estar implícita. Esto fue lo usual en las primeras máquinas,
en las que la dirección implícita era un registro del procesador conocido como
acumulador (AC). El acumulador contiene uno de los operandos y se emplea para
almacenar el resultado. En nuestro ejemplo se necesitarían ocho instrucciones para
realizar la tarea.

De hecho, es posible arreglárselas con cero direcciones para algunas de instrucciones.


Las instrucciones con cero direcciones son aplicables a una organización especial de
memoria, denominada pila («STACK»). Una pila es un conjunto de posiciones del tipo
LIFO (“Last In First Out”). La pila está en una posición conocida y, a menudo, al
menos los dos elementos de su cabecera están en registros del procesador. Así pues, las
instrucciones con cero direcciones referenciarían dichos elementos de la cabecera.

La Tabla 10.1, por ej., resume posibles interpretaciones a considerar para las
instrucciones de cero, una, dos, o tres direcciones. En todos los casos se supone que la
dirección de la siguiente instrucción está implícita, y que se va a realizar una operación
con dos operandos origen y un resultado.
El número de direcciones por instrucción es una decisión básica de diseño. Menos
direcciones por instrucción significa instrucciones más primarias, lo que requiere un
procesador menos complejo. También da lugar a instrucciones más cortas.

Por otra parte, los programas contienen más instrucciones, lo que normalmente supone
mayor tiempo de ejecución y programas más largos y complejos.

Hay también un umbral importante entre instrucciones de una y de múltiples


direcciones. Con instrucciones de una sola dirección, el programador tiene generalmente
a su disposición solo un registro de uso general, el acumulador. Con instrucciones de
múltiples direcciones suele disponerse de múltiples registros de uso general. Esto
permite que algunas operaciones se realicen solo con registros. Ya que los accesos a
registros son más rápidos que a memoria se acelera la ejecución.

Por razones de flexibilidad y facilidad para utilizar varios registros, la mayoría de las
máquinas contemporáneas emplean una combinación de instrucciones de dos y de tres
direcciones.

Las decisiones de diseño asociadas con la elección del número de direcciones por
instrucción son complicadas debido a otros factores.

Un aspecto a considerar es si una dirección hace referencia a una posición de memoria o


a un registro. Ya que hay menos registros, se necesitan menos bits para referenciarlos.
El resultado es que la mayoría de los diseños de procesadores hacen uso de varios
formatos de instrucciones.
DISEÑO DEL REPERTORIO DE INSTRUCCIONES

El diseño de un repertorio de instrucciones es muy complejo ya que afecta a muchos


aspectos del computador. Define muchas de las funciones realizadas por el procesador,
y tiene pues un efecto significativo sobre la implementación del mismo.

El repertorio de instrucciones es el medio que tiene el programador para controlar el


procesador. En consecuencia, deben considerarse las necesidades del programador a la
hora de diseñar el repertorio.

Los más importantes entre dichos aspectos fundamentales de diseño son:

• El repertorio de operaciones: cuántas y qué operaciones considerar, y cuán


complejas deben ser.
• Los tipos de datos: los distintos tipos de datos con los que se efectúan
operaciones.
• Los formatos de instrucciones: longitud de la instrucción (en bits), número de
direcciones, tamaño de los distintos campos, etc.
• Los registros: número de registros del procesador que pueden ser referenciados
por las instrucciones, y su uso.
• El direccionamiento: el modo o modos de direccionamiento mediante los
cuales puede especificarse la dirección de un operando.

Estos aspectos están fuertemente interrelacionados y deben considerarse conjuntamente


en el diseño de un repertorio de instrucciones.

TIPOS DE OPERANDOS

NÚMEROS

Todos los lenguajes máquina incluyen tipos de datos numéricos. Incluso en el


procesamiento de datos no numéricos se necesitan números que actúen como
contadores, longitudes de campos, etc. Una distinción importante entre los números
utilizados en las matemáticas ordinarias y los almacenados en un computador es que
estos últimos están limitados.

En primer lugar: hay un límite para la magnitud de los números representables en una
máquina.

En segundo lugar: en el caso de números en coma flotante, su precisión está limitada.


Por tanto, el programador debe ser consciente de las consecuencias del redondeo, el
desbordamiento o el desbordamiento a cero.

En los computadores son usuales tres tipos de datos numéricos:

• Enteros o en coma fija.


• En coma flotante.
• En decimal.

CARACTERES

Una forma bastante común de datos es el texto o secuencias de caracteres. Aunque la


información textual sea más conveniente para las personas, no puede ser almacenada o
transmitida fácilmente en forma de caracteres por los sistemas de comunicación y de
procesamiento de datos. Tales sistemas están diseñados para datos binarios.

Por lo tanto, se han ideado diversos códigos que permiten representar caracteres
mediante secuencias de bits. Tal vez el primer ejemplo fue el código Morse. Hoy en

día, sin embargo, el código de caracteres más utilizado es el IRA (International


Reference Alphabet), o mejor conocido en los Estados Unidos como ASCII (American
Standard Code for Information Interchange).

Cada carácter es representado en este código por un patrón distinto de 7 bits, en el que
pueden representarse 128 caracteres diferentes. Este número es mayor que el necesario
para representar los caracteres impresos, utilizándose algunos de los patrones para
representar caracteres de control.

Otros caracteres de control están dedicados para procedimientos de comunicación. Los


caracteres codificados en ASCII se memorizan y transmiten utilizando casi siempre
ocho bits por carácter. El octavo bit puede fijarse a cero o utilizarse como bit de
paridad para la detección de errores.

En el segundo caso, el valor del bit se pone de manera que el número total de unos en
cada octeto sea o siempre impar (paridad impar) o siempre par (paridad par).

Otro código utilizado para caracteres es el Código de Intercambio Decimal


Codificado en Binario Ampliado o EBCDIC (Extended Binary Coded Decimal
Interchange Code). Este código, de ocho bits, se emplea en los grandes computadores
de IBM.

DATOS LÓGICOS

Normalmente, cada palabra o cualquier otra unidad direccionable (byte, media palabra,
etc.) es tratada como una unidad de datos individual. Sin embargo, a veces es útil
considerar una unidad de n bits como n elementos o datos de un bit, donde cada
elemento tiene un valor 1 o 0. Cuando los datos son vistos de esta manera, se consideran
datos lógicos.

Esta representación orientada a bits tiene dos ventajas:

1- A veces puede interesarnos almacenar una matriz de elementos binarios o


booleanos, en la que cada elemento pueda tomar solo los valores 1
(VERDADERO) ó 0 (FALSO). Con datos lógicos, la memoria puede ser
entonces utilizada más eficientemente.
2- En situaciones en las que queremos manipular bits individuales de un dato.
Por ej: Cuando se implementan operaciones de coma flotante en software,
necesitamos desplazar bits significativos en algunas operaciones.

En conclusión: Los mismos datos son unas veces tratados como datos lógicos,
numéricos o como caracteres. El tipo de una unidad de datos viene determinado por la
operación que se esté realizando con ella. Aunque esto no sea lo normal con los
lenguajes de alto nivel, es casi siempre así en el caso de lenguajes máquina.

LENGUAJE ENSAMBLADOR
Un procesador puede interpretar y ejecutar instrucciones máquina. Estas
instrucciones son simplemente números binarios almacenados en el computador.
Si un programador quisiera programar directamente en lenguaje máquina, necesitaría
introducir los programas como datos binarios.

Por ej: Considere la sencilla sentencia BASIC:

N=I+J+K

Suponga que queremos programar esta sentencia en lenguaje máquina y dar a I, J, y K


los valores iniciales 2, 3, y 4, respectivamente.
La forma de hacer esto se muestra en la Figura 10.11 a).

El programa empieza en la posición 101 (hexadecimal).


Se reserva memoria para las cuatro variables a partir de la posición 201.
El programa consta de cuatro instrucciones:

1. Cargar el contenido de la posición 201 en el acumulador (AC).


2. Sumar a AC el contenido de la posición 202.
3. Sumar a AC el contenido de la posición 203.
4. Memorizar el contenido de AC en la posición 204.
Esto es claramente un proceso tedioso y muy susceptible a errores.

Una ligera mejora consiste en redactar el programa en hexadecimal en lugar de en


binario (Figura 10.11 b)).

El programa se escribiría mediante una serie de líneas, en la que cada línea contiene la
dirección de una posición de memoria y el código hexadecimal del valor binario a
memorizar en tal posición. Necesitamos entonces un programa que acepte esta entrada,
traduzca cada línea a un número binario y lo almacene en la posición especificada.

Para que la mejora sea más significativa, podemos hacer uso de nombres simbólicos o
nemotécnicos de las instrucciones. Eso nos da como resultado un programa simbólico,
donde cada línea sigue representando una posición de memoria y consta de tres
campos separados por espacios.

El primer campo contiene la dirección de una posición. En cada instrucción, el


segundo campo contiene el símbolo de tres letras que representa su código de
operación. Si se trata de una instrucción que hace referencia a memoria, un tercer
campo contiene la dirección.

Para memorizar un dato concreto en una posición dada, nos inventamos una pseudo-
instrucción con el símbolo DAT. Esta es meramente un indicador de que el tercer
campo de la línea contiene un número hexadecimal a memorizar en la posición que
especifica el primer campo.

El programa aceptaría como entrada cada línea, generaría un número binario basándose
en los campos segundo y tercero (si lo hay), y lo memorizaría en la posición indicada
por el primer campo.

El uso de programas simbólicos hace la vida mucho más fácil, pero es aún engorroso.
En particular, hay que dar una dirección absoluta para cada palabra. Esto significa que
el programa y los datos solo pueden cargarse en posiciones concretas de memoria, y
que debemos saber siempre cuáles son.

Un procedimiento mejor, utilizado con frecuencia, es emplear direcciones simbólicas:


Cada línea sigue teniendo tres campos.
El primero sigue siendo para la dirección, pero se utiliza un símbolo en lugar de una
dirección numérica absoluta. Algunas líneas carecen de dirección, indicando que la
dirección de dicha línea es uno más que la dirección de la precedente.

Para las instrucciones que hacen referencia a memoria, el tercer campo contiene
también una dirección simbólica.

Con este último refinamiento, hemos inventado un lenguaje ensamblador.

Los programas escritos en lenguaje ensamblador (programas en ensamblador) se


traducen a lenguaje máquina mediante un ensamblador. Este programa debe no solo
realizar la traducción simbólica mencionada antes, sino también asignar direcciones
de memoria a las direcciones simbólicas.

El desarrollo de los lenguajes ensambladores fue un logro importante en la evolución


de la tecnología de los computadores. Fue el primer paso hacia los lenguajes de alto
nivel utilizados hoy en día.

Aunque son pocos los programadores que lo utilicen, prácticamente todos los
procesadores disponen de lenguajes ensambladores. Se utilizan para programas del
sistema tales como compiladores y rutinas de E/S.

ASSEMBLER MSX88

Enseñar acerca de la arquitectura básica de computadoras presenta varias dificultades.


La dificultad principal radica en la necesidad de ofrecer a los estudiantes modelos
dinámicos que les permitan comprender la estructura y operación de la computadora.

El MSX88 es un entorno emulado que resuelve parcialmente el problema debido a que


es un simulador gráfico de una computadora didáctica basada en la familia Intel 8086,
que muestra los diferentes flujos de información presentes en ella.

El MSX88 es una herramienta que los profesores pueden utilizarla como recurso
didáctico en combinación con transparencias y proyectores de video.

El MSX88 nace en la antigua Cátedra de Ordenadores de la E.U.I.T. de


Telecomunicación de la UPM en 1988 cuando el ordenador personal (PC) hace su
irrupción en el mundo informático a precios asequibles y es posible dotar un aula
completa para la realización de prácticas.

CONJUNTO DE HERRAMIENTAS DEL ENTORNO MSX88

En la versión 3.0 el MSX88 está formado por el siguiente conjunto de programas:

ASM88: Ensamblador cruzado del conjunto de instrucciones que el SX88 es capaz de


ejecutar. Se mantiene, en su mayor parte, la sintaxis que Intel propone para el L.E. del
8086/88. El código producido por el ensamblador es no reubicable.

LINK88: Montador cruzado de los ficheros objeto producidos por el ASM88.

MSX88: Emulador que constituye el núcleo del entorno de herramientas.

Imagen 1.0 – Pantalla Principal de la MSX88.

Tras arrancarlo en la pantalla aparece la denominada pantalla principal o pantalla 0


donde se muestra la CPU, el bloque de memoria, un bloque de periféricos y la ventana
de comunicación con el usuario que se comporta como la pantalla de un ordenador.
DESCRIPCION DEL MSX88

CPU SX88

El diseño de la CPU es similar a un 8088 en el que se bastare la Unidad de Interfaz


con los Buses (BIU), asimilándola a una interfaz más simplificada en la que se elimina
la cola de instrucciones y los registros de segmento. La EU se ve también simplificada,
eliminando los registros BP, DI y SI y definiendo una arquitectura clásica con un
Registro de Instrucción (RI) un decodificador y un secuenciador.
Se ha elegido el 8088 como base, en vez del 8086, debido a que su arquitectura de 8/16
bits se considera, didácticamente, más completa.

MEMORIA DEL MSX88

El MSX88 posee un total de 64 Kbytes de memoria direccionados linealmente. El


usuario tiene disponibles un total de 32Kbytes desde la posición 0 a la 7FFFH,
memoria en la que cabrá holgadamente cualquier programa pensado para el MSX88.

PERIFÉRICOS DEL MSX88

• PIO: Similar al Intel 8255 (modo 0).


• Periférico de Handshaking: Similar al modo 2 del Intel 8255.
• Controlador de Interrupciones (PIC): Similar al Intel 8259.
• Timer: Conectado a un reloj de periodo 1 segundo.
• Barra de LEDs y Microconmutadores: accionadas desde el teclado.
• Controlador de Acceso Directo a Memoria (CDMA): Similar al Intel 8237.
• Impresora: Se conecta a diversos elementos a través de un interfaz Centronics
que deberá ser programado por el alumno.

Estos periféricos admiten diversos conexionados, siendo la mayor parte de ellos


totalmente programables.

PANTALLAS Y CONFIGURACIONES
Las distintas formas de conectar el conjunto CPU-Memoria con los periféricos,
determinan las diferentes configuraciones posibles en MSX88. A su vez, cada uno de
éstos modos de conexionado, se muestra al usuario a través de dos pantallas: Pantalla 0
y Pantalla 1.

La primera de ellas, es la pantalla principal que inicialmente se muestra tras arrancar


el programa (Img. 1.0), siendo común a todas las configuraciones. En ésta, se representa
la CPU mostrando toda su arquitectura interna, la memoria, y el bloque de periferia
que a la vez que evidencia su presencia, oculta su complejidad, junto con buses que
constituyen los caminos de comunicación entre éstos bloques. Se concibe como una
pantalla básica orientada a los usuarios que se inician en el tema, en la que los
objetivos de estudio se centrarán en el funcionamiento básico de la CPU

La pantalla 1 (Img. 1.2 – 1.5) se centra en el estudio de los periféricos. Ésta a


diferencia de la anterior, varía en función de la configuración en la que se encuentre el
emulador en un determinado momento. Aún así, existen una serie de elementos,
situados en la parte superior, que se mantendrán constantes a lo largo de todas las
configuraciones; se trata del conjunto CPU-Memoria, representado a la izquierda, y de
los periféricos PIC y Timer, que se visualizan en la parte derecha. El resto de los
elementos que se visualicen en esta pantalla, vendrán determinados por la
configuración o modo de conexionado seleccionado por el usuario.
Imagen 1.2 – Conexionado básico de la MSX88.

Se establecen cuatro modos de conexionado en MSX88:

• Conexionado 0: Es el más simple de todos ellos (Img. 1.2), pues no contempla


los elementos relacionados con las interrupciones.
A los elementos constantes situados en la parte superior, que serán invariantes
para el resto de conexionados, incorpora el PIO conectado a una barra de Leds y
a otra de microconmuta-dores.

• Conexionado 1: Este, (Img. 1.3) sustituye la barra de Leds y


microconmutadores de la configuración anterior por una impresora con un
Interfaz Centronics, que habrá de ser implementado por el usuario.
Imagen 1.3 – Configuración 1 de la MSX88.

• Conexionado 2: Esta configuración (Img. 1.4) es idéntica a la anterior con la


salvedad de haber sustituido el PIO por un dispositivo que hace handshaking,
implementando el Interfaz Centronics necesario para conectarse a la impresora.
La relación entre éste y la CPU se lleva a cabo bien a través de interrupciones, o
bien por consulta de estado.

• Conexionado 3: Es la configuración más compleja de todas (figura 1.5),


pudiéndose ver como un conexionado 2, al que se le ha incorporado un CDMA
conectado al Hand y a los buses del sistema.
Imagen 1.4 – Configuración 2 de la MSX88.

Imagen 1.5 – Configuración 3 de la MSX88.

MODOS DE FUNCIONAMIENTO

MSX88 ofrece al usuario múltiples formas de analizar la evolución dinámica de los


distintos elementos que conforman el sistema microprocesador simulado, durante la
ejecución de un programa, pensado para la CPU SX88, o parte de éste (instrucciones,
ciclos de instrucción, ciclos de máquina), dando lugar a los diversos modos de
funcionamiento que presenta esta herramienta. Estos son:
• Modo Rápido: En este modo no se representarán en pantalla más que las
variaciones que se produzcan en los periféricos externos (leds,
microconmutadores e impresora). El resto de los elementos permanecerán en el
estado anterior al comienzo de la ejecución del programa, hasta que éste
concluya, momento en el que se actualizarán con el estado alcanzado al finalizar
dicha ejecución.
• Modo Lento: En este modo se mostrará la evolución del estado de todos y cada
uno de los elementos presentes en el sistema microcomputador, incluyendo los
flujos de información de los buses y las señales existentes, que se rellenan de
forma continua con colores distintos a los que tienen cuando no están activados,
pudiéndose variar esta velocidad de activación a petición del usuario.
• Modo Registros: Se puede ver como un modo rápido en el que además se
visualizarán los cambios que experimenten los registros y las posiciones de
memoria, durante la ejecución de un programa.
• Modo Líneas: Se define como un modo registros, al que se une la activación y
desactivación de las líneas de protocolo asociadas a la periferia. •Modo
Periféricos: Se trata de un modo registros en el que además se visualizan las
señales relacionadas con la periferia, junto con las escrituras y lecturas de
puertos.

Junto a estos cinco modos, existe la posibilidad de omitir o no la representación del


ciclo de fetch (ciclo de búsqueda del código de operación) de cada una de las
instrucciones que se ejecutan. En caso de omitirse, dicha representación se reduce a un
único acceso a memoria.

ARQUITECTURA DEL MSX88

La arquitectura de esta CPU pretende ser una simplificación de la del 8088, siendo sus
rasgos arquitecturales más destacados los siguientes:

• Arquitectura interna de 16 bits y externa de 8 bits.


• Bus de direcciones de 16 bits, lo que permite el direccionamiento de 216= 64
Kbytes de memoria principal.
• Bus de control integrado por las líneas: INT, INTA, NMI, RW, RD, IO/M,
HOLD, HLDA.
• Mantiene el mismo esquema de interrupciones que el 8086/88: Líneas NMI e
INT, y las interrupciones software INT xx. La línea NMI no está asociada a
evento alguno, y la línea INT se conecta a un PIC.
• Registros de uso general AX; BX; CX y DX, de 16 bits, pudiéndose tratar
también como registros de 8 bits(AH, AL, BH, BL...).
• ALU de 16 bits capaz de ejecutar las operaciones: ADC, SUB, AND, OR, XOR,
NOT, INC y DEC.
• Registro de indicadores con los flags de: Cero, Paridad, Paridad Auxiliar, Signo,
Overflow, e indicador de interrupciones.
• Registros contador de programa (IP) y puntero de pila (SP) de 16 bits.
• Soporta los siguientes modos de direccionamiento: Dato Inmediato, Registro,
Relativo a contador de programa, Relativo a pila, Directo e Indirecto basado en
el registro BX.

Existen además dos registros internos de almacenamiento temporal de 16 bits que


aparecen en pantalla únicamente cuando son necesarios.
SET DE INSTRUCCIONES

Imagen 1.6 - Set de instrucciones para los algoritmos de la MSX88 v3.0.


BIBLIOGRAFÍA

Organización y arquitectura de computadores 7ma Edicion - William Stallings

http://163.10.22.92//catedras/organiza/2003/ursi1994.htm

Universidad Politécnica de Madrid. E.U.I.T. de Telecomunicación - Departamento de


Ingeniería y Arquitecturas Telemáticas - Rubén de Diego Martínez (2003)
} Como se menciono anteriormente una
computadora esta constituida por 3 unidades
principales:
◦ CPU
◦ MEMORIA
◦ E/S

En efecto una computadora es una red de módulos


elementales.
Por lo tanto necesitan estar conectados unos con
otros.
} Por lo tanto la estructura de interconexión
debe dar cobertura a los siguientes tipos de
transferencia:
◦ Memoria a Procesador
◦ Procesador a Memoria
◦ E/S a Procesador
◦ Procesador a E/S
◦ Memoria a E/S y viceversa (intercambian
información entre la memoria y E/S directamente
sin pasar por el uP utilizando el acceso directo a
memoria DMA)
} Un BUS es un medio de comunicación entre 2
o mas dispositivos.
} Un BUS es un camino compartido entre todos
los dispositivos.
} Si 2 dispositivos transmiten información al
mismo tiempo, las señales se solapan y se
distorsionan.
} Posee líneas de datos en paralelo agrupadas
por función. Ej. 32 líneas para los 32bits del
bus de datos y otras 32 líneas para el bus de
dirección.
} El BUS que interconecta los elementos de una
computadora es denominado BUS del sistema
o en ingles SYSTEM BUS
} El bus del sistema esta constituido entre 50 y
100 líneas. Y se lo puede clasificar como:
◦ Líneas de control
◦ Líneas de dirección
◦ Líneas de Datos
} Líneas de Control: Se utilizan para controlar
el acceso y el uso de los buses de datos y
dirección. Las líneas de control transmiten
tanto ordenes como ser R/W o información
de temporización entre los módulos.
} Algunas de las líneas control son:
◦ Escritura en memoria
◦ Lectura de memoria
◦ Escritura E/S
◦ Lectura E/S
◦ Transferencia reconocida (Transfer ACK)
◦ Petición de BUS (BUS Request)
◦ Cesión de BUS (BUS Grant)
◦ Petición de Interrupción (interrupt request)
◦ Interrupción Reconocida (interrupt ACK)
◦ Reloj
◦ Inicio (reset)
} Problemas al conectar grandes cantidades de
dispositivos al BUS
◦ Mayor retardo de propagación, esto se traduce en
mayor tiempo necesario para que los dispositivos
se sincronicen.
◦ El bus se convierte en un cuello de botella a medida
que las peticiones acumuladas se acercan a la
capacidad de manejo del bus. Esto se puede
solucionar aumentando la velocidad a la cual el bus
transfiere los datos.
◦ Problemas electricos, especificamente “fan uot” que
es un parametro de cuantos dispositivos peden
estar conectados a la misma salida.
} Hoy en día la mayoría de las computadoras
utiliza varios buses organizados de manera
jerárquica.
} BUS DE ALTAS PRESTACIONES
TIPO ANCHO DEL BUS
DEDICADO DIRECCION
MULTIPLEXADO DATOS
METORO DE ARBITRAJE TIPO DE TRANSFERENCIA DE
DATOS
CENTRALIZADO LECTURA
DISTRIBUIDO ESCRITURA
TEMPORIZACION LECTURA-MODIFICACION-
ESCRITURA
SINCRONO LECTURA-DESPUS DE-ESCRITURA
ASINCRONO BLOQUE
} TIPO:
◦ Dedicado: Por ejemplo el bus de datos y el de
direcciones, donde solo se utiliza para una sola
cosa.
◦ Multiplexado: Existen arquitecturas que permiten la
utilización del mismo bus tanto para
direccionamiento como para datos, multiplexado el
uso del bus en el tiempo.
} Arbitraje: Puede ser centralizado o distribuido. El
arbitraje centralizado, existe un dispositivo
denominado “controlador del bus” o arbitro que
es el responsable de asignar el tiempo de uso del
bus a cada dispositivo en el momento que lo
solicite puede ser parte del mismo procesador o
ser un dispositivo separado. Sin embargo el
arbitraje distribuido, cada dispositivo cuenta con
una lógica para controlar el acceso al bus. Tanto
en el arbitraje centralizado como el distribuido se
emplea la utilizacion del sistema MASTER/SLAVE
} Temporización.
◦ Coordina los eventos del bus

◦ Síncrona: Es controlado por una señal de reloj, el


bus de control deberá contar con una línea de
CLOCK. Todos los dispositivos contaran con una
línea de reloj para sincronizarse. Usualmente se
utiliza el flanco ascendente

◦ Asíncrona: No existe línea de reloj, se utilizan


señales de control para la sincronización, es mas
flexible para el control pero es muy complicado.
} chipset, es un elemento formado por un
determinado número de circuitos integrados
en el que se han incluido la mayoría de los
componentes que dotan a un ordenador de
compatibilidad PC/AT a nivel hardware como,
por ejemplo, el controlador de
interrupciones, los controladores DMA, el
chip temporizador, controladoras de disco
duro, etc.
} Las placas base modernas suelen incluir dos
integrados, denominados puente
norte y puente sur, y suelen ser los circuitos
integrados más grandes después de la GPU y
el microprocesador. Las últimas placa base
carecen de Puente Norte ya que los
procesadores de última generación lo llevan
integrado.
} El NORTHBRIDGE era el CI mas importante en
una computadora después del uP.
} Era el encargado de manejar la transferencia
de datos con el BUS de alta velocidad, por
ejemplo con la memoria principal, el bus AGP,
PCI express
} el Northbridge estaba compuesto por tres
controladores principales: memoria RAM, puerto AGP
o PCI Express y bus PCI.
} Hoy en día, el controlador PCI se inserta directamente
en el Southbridge , y en algunas arquitecturas más
nuevas el controlador de memoria se encuentra
integrado en el procesador; este es el caso de los
Athlon 64 o los Intel i7.
} Los Northbridges tienen un bus de datos de 64 bit en
la arquitectura X86 y funcionan en frecuencias que
van desde los 66MHz de las primeras placas que lo
integraban en 1998 hasta 1GHz de los modelos
actuales de SiS para procesadores AMD64
Feature VIA PT890
North Bridge
Intel® Pentium® 4, Celeron®, and Core™2
Processor Support Duo processors
Hyper Threading Support Yes
Front Side Bus 1066MHz
StepUp™ - Single Channel DDR2 533/400
DDR400/333/266
Memory Support SDRAM w/ECC
PCI Express Graphics x16
Graphics Support PCI Express x1
Bus Architecture Asynchronous
Max. Memory 4GB
} Es el tipo de bus usado como bus principal en
algunos de los antiguos
microprocesadores de la marca Intel para
comunicarse con el circuito integrado
auxiliar o chipset. El FSB incluye señales de
datos, direcciones y control, así como señales
de reloj que sincronizan su funcionamiento.
} Es un circuito integrado que se encarga de
coordinar los diferentes dispositivos de
entrada y salida y algunas otras
funcionalidades de baja velocidad dentro de
la placa base. El puente sur no está
conectado a la unidad central de
procesamiento, sino que se comunica con ella
indirectamente a través del puente norte.
} La funcionalidad encontrada en los puentes sur actuales incluye
soporte para:
} Peripheral Component Interconnect PCI
} Bus ISA
} Bus SPI
} System Management Bus
} Controlador para el acceso directo a memoria
} Controlador de Interrupciones
} Controlador para Integrated Drive Electronics (SATA o PATA)
} Puente LPC
} Reloj en Tiempo Real - Real Time Clock
} Administración de potencia eléctrica APM y ACPI
} BIOS
} Interfaz de sonido AC97 o HD Audio.
South Bridge VIA  VT8237A  

North/South Bridge Link V-Link (533MB/sec)

VIA Vinyl™ HD Audio

VIA Vinyl™ AC'97 Audio


VIA VinylT Gold 8-channel Audio (PCI companion
Audio controller)

VIA Velocity Gigabit Ethernet companion controller

   

Network VIA integrated 10/100 Fast Ethernet

Modem MC'97

PCI Devices/Slots 6 slots

2 x SATA 150 devices


SATALite™ interface for 2 additional SATA devices
SATA (4 total)

V-RAID RAID 0, RAID 1, and RAID 0+1* & JBOD (SATA)

PATA ATA133 (up to 4 devices)

USB 8 ports

I/O Protocols I/O APIC / LPC Super I/0

Power Management ACPI / APM / PCI / PM


} La principal razon para cambiar de la forma
de comunicación de buses compartidos hacia
sistemas punto a punto, radica en las
limitaciones electronicas y electricas al
aumento de la frecuencia para el sincronismo
de los buses.
} Cada vez mas velocidades complican el
arbitraje del bus y la sincronizacion de los
dispositivos.
} Comparado con los buses compartidos, los
medios punto a punto tienen menor latencia
con lo que se logra mayores velocidades y
una mejor escalabilidad
} QPI fue introducido por INTEL en el año 2008,
es un sistema de interconexión punto a punto
de alta velocidad y baja latencia para
procesadores multinucleo y sistemas
periféricos de alta velocidad.
} Múltiples conexiones directas:
◦ Múltiples componentes dentro del sistema se
conectan directamente con otros componentes,
esto elimina la necesidad del arbitraje.
} Protocolo basado en Capas:
◦ Como TCP/IP
} Transferencia basada en Paquetes:
◦ Los datos no se transmiten ahora de una sola vez,
sino que se segmentan y se paquetisa para poder
enviarlos de manera mas optima. Esto conlleva al
uso de información de direccionamiento en cada
paquete
94 CHAPTER 3 / A TOP-LEVEL VIEW OF COMPUTER FUNCTION

I/O device

I/O device
I/O Hub

DRAM

DRAM
Core Core
DRAM A B

DRAM
Core Core
C D
I/O device

I/O device
I/O Hub

QPI PCI Express Memory bus


Figure 3.20 Multicore Configuration Using QPI
} QPI es usado además para conectar módulos
de entrada y salida
} Los módulos de I/O se llaman IOH (I/O HUB)
} Los IOH actúan como un SWITCH
direccionando el trafico hacia los dispositivos
de I/O
} Generalmente los dispositivos de I/O se
conectan al IOH a través de una tecnología
denominada PCIe (PCI express)
} QPI trabaja bajo un protocolo de capas como
lo hace TCP/IP
} Se pueden contar 3 capas principales
◦ Física
◦ Enlace
◦ Ruteo
◦ Protocolo
3.5 / POINT-TO-POINT INTERCONNE

Packets
Protocol Protocol

Routing Routing

Flits
Link Link

Physical Phits Physical

Figure 3.21 QPI Layers


} La capa física consiste en la descripción de
los cables y como se transmitirá de manera
eléctrica la señal de un punto al otro
} La unidad de transferencia que manejará la
capa Física se denomina PHIT y cuenta con
20bits
} La capa física cuenta con 84 líneas de datos
distribuidas de la siguiente forma:
◦ Cada DATA PATH cuenta con 2 cables, a través de
los cuales se enviara 1 bit a la ves.
◦ Cada par de cables de denomina LANE.
◦ Hay 20 LANES en cada dirección. (20 para
Transmitir y 20 para Recibir)
◦ Además se adicionan 2 Lanes mas, una de reloj de
transmisión y una de reloj de Recepción.
QPI Physical Layer
Figure 3.22 shows the physical architecture of a QPI port. The QPI port consists of
84 individual links grouped as follows. Each data path consists of a pair of wires that
transmits data one bit at a time; the pair is referred to as a lane. There are 20 data lanes

COMPONENT A
Intel QuickPath Interconnect Port

Rcv Clk
Fwd Clk

Transmission Lanes Reception Lanes

Fwd Clk
Rcv Clk

Reception Lanes Transmission Lanes

Intel QuickPath Interconnect Port


COMPONENT B

Figure 3.22 Physical Interface of the Intel QPI Interconnect


} QPI es capaz de enviar 20bits (1 PHIT) en
paralelo en cada dirección
} La típica velocidad de señalización del link de
los dispositivos actuales permiten
velocidades de 6,4GT/s (Transferencias por
segundo)
} Como cada transferencia se hace de a 20bits,
tenemos velocidades de 16Gbps
} Y como QPI puede transmitir y recibir de
forma paralela las velocidades totales serán
de 32Gbps
} La forma de transmisión que maneja QPI se
denomina “señalización Diferencial” o
Transmisión Balanceada.
} Específicamente la técnica usada por QPI para
la transmisión se denomina:
◦ LVDS: Low Voltage Differential Signaling
} Otra característica de la capa Física es la de
transformar los datos desde la capa superior
(Enlace, unidad de transferencia FLIT, 80bits)
en PHITs de 20 bits
} Esta técnica se conoce como “DISTRIBUCION
MULTILANE”
illustrated in Figure 3.23. This approach enables QPI to achieve very high data rates
by implementing the physical link between two ports as multiple parallel channels.

QPI Link Layer


The QPI link layer performs two key functions: flow control and error control. These
functions are performed as part of the QPI link layer protocol, and operate on the

QPI
#2n+1 #n+1 #1
lane 0

bit stream of flits QPI


#2n+2 #n+2 #2
lane 1

#2n+1 #2n #n+2 #n+1 #n #2 #1

QPI
#3n #2n #n
lane 19
Figure 3.23 QPI Multilane Distribution
} LA capa de enlace o LINK es la responsable de
la transmisión y del control de flujo en la
transferencia de información de un punto al
otro.
} Cuenta con una unidad de transferencia de
80bits denominada FLIT (Flow control Unit)
} La capa de LINK tiene dos funciones
principales:
◦ Control de Flujo
◦ Control de Errores
} Cada Flit (80 bits) estará compuesto por
72bits de información, mensaje o payload y 8
bits de CRC, código de corrección de errores

} El control de Flujo es necesario para asegurar


que la entidad QPI que envía la información,
no sature a la entidad QPI que recibe la
información, enviando datos a mayor
velocidad de la que el dispositivo receptor
puede manejar
} Ocasionalmente cuando se transmite por la
capa física, algún bit se puede dañar o
invertir, produciendo de esta forma un error
en la información que se envía.
} QPI implementa un mecanismo de control de
errores en base a un código CRC, codigo de
redundancia ciclica, el cual se calcula en
funcion de los 72 bits de datos que vienen
desde la capa de routeo
} En cada FLIT a ser transmitido, se calcularán
los 8 bits del código CRC para la detección de
errores.
} En el receptor, cuando llega el FLIT, el
dispositivo vuelve a calcular el código CRC en
función de los 72 bits de datos y lo compara
con el CRC recibido.
} Si los dos códigos no concuerdan se a
detectado un error!
} Cuando el receptor detecta un error solicita la
retransmisión de dicho FLIT
} La capa de ruteo se utiliza para el
direccionamiento de los paquetes desde
origen hasta fin, ya que no necesariamente el
dispositivo origen estará conectado
directamente al dispositivo final.
94 CHAPTER 3 / A TOP-LEVEL VIEW OF COMPUTER FUNCTION

I/O device

I/O device
I/O Hub

DRAM

DRAM
Core Core
DRAM A B

DRAM
Core Core
C D
I/O device

I/O device
I/O Hub

QPI PCI Express Memory bus


Figure 3.20 Multicore Configuration Using QPI
} En la capa de protocolos, ya se manejará
información de alto nivel como ser por
ejemplo protocolos para la coherencia de
cache.
} La unidad de datos que maneja esta capa se
denomina PAQUETE y no cuenta con una
longitud determinada.
} Es una tecnología de interconexión de alto
ancho de banda, escalable y de baja latencia,
para la creación de links entre procesadores,
procesadores con los coprocesadores
(chipset) y entre el procesador y los
dispositivos de E/S.
} Comenzó a usarse en el año 2001.
} Es un reemplazo del bus tradicional FSB
} El HyperTransport Consortium es quien está
llevando a cabo el desarrollo y promoción de
la tecnología HyperTransport
} Se encuentra implementado en:
◦ uP AMD
◦ Chipsets NVIDIA
◦ Controladores de entrada/salida sobre todo de
Broadcom
◦ Y varios mas
} Dentro de sus características tenemos:
◦ Reduce el overheat de las tramas 8 a 12 bytes
contra 18 a 24 bytes de overheat de una trama PCIE
◦ Control de prioridades en el entramado
◦ Links Asimetricos, Simetricos y mixtos
◦ Soporta conexiones auto negociadas para
determinar la velocidad
◦ Velocidad MAX por cada uno de los 2 buses de
20.8GBps
◦ Permite splitting de varios buses de distintas
velocidades por ejemplo 4 x 4GBps en ves de
1X16GBps
} La tecnología HT esta basada en paquetes, Cada
paquete consiste en un conjunto de palabras de
de 32 bits.
} La primera palabra de un paquete es siempre una
palabra de comando. Si un paquete contiene una
dirección los últimos 8 bits de la palabra de
comando estarán enlazados con la siguiente
palabra de 32 bits para formar una dirección de
40 bits.
} Además se permite anteponer otra palabra de
control de 32 bits cuando se necesite una
dirección de 64 bits. Las restantes palabras de 32
bits en un paquete formarán la información útil.
Arquitectura de Computadoras 2022

Cuestionario Teórico N° 1. Unidad I: Introducción, Unidad II: Unidad Central de Procesos,


Unidad III: Buses del Sistema. Trabajo en Grupo - máximo 4 integrantes.

Grupo 1. Balbuena, Wohlfarhrt, Suligoy, Aquino, Schneider

1. Describa la diferencia entre arquitectura y organización de Computadoras.


Investigue y comente un ejemplo actual, no más de 5 años (desde 2022) donde se
mantenga la arquitectura pero se ha cambiado la organización.
2. Explique y describa cuales son los tipos de registros internos que tiene un
microprocesador. Utilice como gráfico de ejemplo los registros de microprocesador
8088.
3. Describa los modos de direccionamiento: Inmediato, Directo, Indirecto, Registros,
Indirecto con Registro, con desplazamiento.
4. Grafique y explique la estructura de los buses de una computadora.

Grupo 2. Ledesma, Shirmer, Franco, Benitez

1. Explicar la ley de Moore. Sobre dicha postulación responder y fundamentar a las


siguiente pregunta ¿Se viene cumpliendo? Investigue y comente acerca de otros 3
postulados similares que se hayan propuesto sobre la informática en general y
analizar en qué cuestiones hace énfasis.
2. Explicar qué es la palabra de estado de un programa (PSW, program status word).
Tome como ejemplo los indicadores o flags del microprocesador 8088
3. Describir cuales son los componentes típicos de una instrucción.
4. Explique en que consiste la jerarquía de buses múltiples

Grupo 3. Marinoni, Micheloni, Pereyra, Ghiglione

1. Nombrar y describir los 4 componentes principales de una computadora de uso


general. Explicar qué es y cómo se puede abordar el aprendizaje jerárquico de los
componentes de la computadora.
2. Definir que es un conjunto de instrucciones en una arquitectura. Buscar dos
ejemplos de distintas arquitecturas. Por ejemplo x86 y para un microcontrolador.
3. Explique la diferencia entre lenguaje ensamblador y lenguaje máquina.
4. Describa los principales elementos de diseño de bus.

Grupo 4 Hillebrand, Gonzalez, Ruiz, Candia

1. Describir la arquitectura Von Neumann y la arquitectura Harvard ¿Cómo eran las


computadoras previamente a la arquitectura Von Neumman?
2. Describir y graficar el ciclo de instrucción completo con interrupciones.
3. Enumerar y describir las principales características de las arquitecturas CISC.
4. Explique que son los chipsets y específicamente que es el NorthBridge y el
SouthBridge. ¿Cuál de los dos ha sido reemplazado en las arquitecturas modernas?
¿Donde se encuentra implementado ahora por completo?

Ing. Santiago Hernán Bareiro página 1


CLASIFICACION DE
BUSES Y CONEXIONES
PUNTO A PUNTO
 Bus único
CLASIFICACION
 Bus dedicado
DE BUSES
 Bus Interconexión
 Un bus de interconexión es un sistema de comunicación que
permite la transferencia de datos entre varios componentes o
dispositivos dentro de un sistema. Los componentes pueden
compartir este bus para comunicarse entre sí.
 Su propósito es conectar y permitir la comunicación entre
múltiples componentes o dispositivos en un sistema. Pueden ser
utilizados en una variedad de aplicaciones y son esenciales para
que los componentes se comuniquen entre sí de manera eficiente.
BUS DE
INTERCONEXION
• Se refiere a un solo bus que conecta todos los componentes de hardware
de una computadora a la placa madre. En sistema de bus único, todos los
dispositivos, como la CPU, la memoria RAM, las tarjetas de expansión, el
disco duro y otros periféricos, comparten un solo bus para la
transferencia de datos y señales de control. Esto puede generar cuellos
de botella en el rendimiento, ya que todos los componentes deben
compartir el mismo ancho de banda.

BUS UNICO
 Implica que un conjunto específico de cables o conexiones
está reservado exclusivamente para la comunicación entre
dos componentes o dispositivos. Esto significa que no se
comparte con otros dispositivos, y su función está dedicada
a la comunicación entre estos componentes específicos.

BUS
DEDICADO
 PCI (Peripheral Component Interconnect)
TIPOS DE BUSES  PCIe (PCI Express)
DE
 HyperTransport
INTERCONEXION
 QPI (QuickPath Interconnect)
 Infinity Fabric
 NVlink
Las tecnologías Hypertransport y QPI son sistemas de
conexión punto a punto y no buses como tal, es decir,
mientras que un bus de interconexión implica compartir un
medio de comunicación entre varios dispositivos, la
conexión punto a punto es la comunicación directa entre
dos dispositivos específicos.
CONEXIONES Debido a las limitaciones electrónicas y eléctricas de los
PUNTO A PUNTO buses, es que se decidió implementar los sistemas de
conexión punto a punto

Entrada
CPU
y Salida
• Es una tecnología de comunicaciones bidireccional, que funciona
tanto en serie como en paralelo desarrollado por AMD. Se utiliza
para conectar la CPU con otros componentes del sistema, como la
HyperTransport memoria y otros procesadores en sistemas multiprocesador.
HyperTransport es un bus avanzado de alta velocidad y rendimiento.

▪ Bidireccional: lo que permite la transferencia de datos en ambas


direcciones simultáneamente.

▪ Escalabilidad: es escalable y admite la conexión de múltiples


dispositivos

▪ Variabilidad: puede variar según el diseño del sistema. Enlaces


punto a punto entre componentes individuales o configuraciones
más complejas, como conexiones en cadena o en estrella, según
las necesidades del sistema.

“Su velocidad de transferencia máxima, utilizando líneas de 32 bits, tiene por


cada uno de sus 2 buses un total de 20.8 GB/s”.
PARTES
El enlace de datos se utiliza para El enlace de control maneja las
la transferencia de datos y tiene señales de control, como señales de
un ancho de banda significativo. inicio y parada de transacciones.

CONFIGURACIONES CONFIGURACIONES
Y PARTES
1. Alta velocidad de transferencia: HyperTransport fue diseñado para proporcionar
velocidades de transferencia de datos muy rápidas entre los componentes del
sistema.
2. Escalabilidad: HyperTransport es escalable y permite la conexión de múltiples
componentes, incluyendo procesadores, controladores de memoria y otros
dispositivos.

VENTAJAS 3. Bajo consumo de energía: HyperTransport tiende a consumir menos energía, lo que
puede ser beneficioso para sistemas que requieren eficiencia energética.
Y
1. Obsolescencia: HyperTransport ha quedado en gran medida obsoleto en sistemas
DESVENTAJAS de consumo y servidores modernos.

2. Limitaciones de ancho de banda: A medida que las necesidades de ancho de banda


han aumentado en sistemas modernos, HyperTransport se ha vuelto insuficiente para
satisfacer estas demandas.

3. Compatibilidad limitada: Dado que HyperTransport es una tecnología desarrollada


por AMD, su adopción fuera de los sistemas AMD fue limitada.
La tecnología Intel® QuickPath InterConnect proporciona enlaces punto a punto de
alta velocidad dentro y fuera del procesador. A diferencia de los buses paralelos,
estos enlaces aceleran las transferencias de datos al conectar la memoria
compartida distribuida, los núcleos internos, el concentrador de E/S y otros
procesadores Intel®.

QPI La tecnología Intel® QuickPath acelera el flujo de datos mediante la introducción de


múltiples pares de enlaces seriales de alta velocidad. Al agrupar varias rutas con
(QuickPath administración inteligente, la tecnología Intel QuickPath puede ofrecer hasta
25,6 GB/s entre componentes y mantener las comunicaciones incluso cuando falla un
InterConnect) enlace.
• Múltiples conexiones directas: esto
elimina el arbitraje debido a que se
conectan directamente con otros.
• Protocolo basado en Capas.
• Transferencia por Paquetes: los
datos se segmentan y se
empaquetan para poder transferirlos
de manera optima.
CARACTERISTICAS • Los dispositivos de E/S se conectan
a través de la tecnología PCI express.
1. Baja latencia: QPI está diseñado para minimizar la latencia en la comunicación
entre los componentes del sistema. Esto es importante en aplicaciones que
dependen de respuestas rápidas, como la informática de alto rendimiento y la
virtualización.
2. Arquitectura de alto rendimiento: QPI se integra en la arquitectura de alto
rendimiento de los procesadores Intel, como la familia Intel Xeon, lo que lo hace
adecuado para servidores y estaciones de trabajo de alto rendimiento.
3. Alto rendimiento: QPI fue diseñado para proporcionar un alto rendimiento y un
VENTAJAS ancho de banda significativo para la comunicación entre la CPU y otros
componentes del sistema. Esto es especialmente importante en sistemas
Y multiprocesador y servidores donde se requiere un rendimiento escalable.

DESVENTAJAS 1. Incompatibilidad con otras tecnologías: La incompatibilidad entre las tecnologías


de interconexión puede ser una desventaja en sistemas heterogéneos que utilizan
procesadores de diferentes fabricantes o sistemas operativos.

2. Costo: Los sistemas que utilizan procesadores con QPI pueden ser más caros en
comparación con sistemas que utilizan tecnologías de interconexión alternativas.

3. Rendimiento variable: El rendimiento de QPI puede variar según la generación de


procesadores y la configuración específica del sistema. Las versiones más recientes
de QPI tienden a ofrecer un mejor rendimiento y características adicionales en
comparación con las versiones anteriores.
• El estándar PCI es uno de los buses de interconexión más antiguos y
ampliamente utilizados en computadoras personales. PCI permite la
conexión de tarjetas de expansión, como tarjetas gráficas, tarjetas de
sonido y tarjetas de red, a la placa base.

• En cambio el PCIe es un bus de interconexión de alta velocidad que se


utiliza en la mayoría de las computadoras modernas para conectar
componentes internos, como tarjetas gráficas, centrándose mas unidades
de almacenamiento SSD. Diseñado para ser escalable y compatible con
PCI y PCIe múltiples tipos de dispositivos.
❑ Alta velocidad: PCIe ofrece velocidades de transferencia de datos significativamente más
rápidas que sus predecesores, como PCI y AGP. Las tasas de transferencia varían según la
generación, con PCIe 4.0 y PCIe 5.0 ofreciendo tasas de hasta 16 GT/s (gigatransfers por
segundo) y 32 GT/s, respectivamente.
❑ Bidireccionalidad y ancho de banda dedicado: PCIe admite la comunicación bidireccional
simultánea, puede enviar y recibir datos al mismo tiempo. Además, cada carril PCIe
proporciona ancho de banda dedicado, lo que garantiza un rendimiento confiable y
consistente.
❑ Escalabilidad: PCIe es escalable y permite la conexión de múltiples dispositivos a través de
CARACTERISTICAS ranuras PCIe disponibles en la placa madre. Los dispositivos PCIe se pueden conectar en
serie, facilitando la expansión y actualización de sistemas.
❑ Compatibilidad con versiones anteriores: PCIe es compatible con versiones anteriores, lo
que significa que las tarjetas PCIe más antiguas pueden funcionar en ranuras PCIe más
nuevas, aunque a la velocidad de la ranura más antigua.
❑ Diferentes tamaños de ranuras: PCIe admite diferentes tamaños de ranuras, como x1, x4,
x8 y x16, que ofrecen diferentes anchos de banda.
❑ Energía y capacidad de entrega: Las ranuras PCIe pueden suministrar energía a los
dispositivos conectados, eliminando la necesidad de cables de alimentación separados para
ciertos componentes.
PCIe
en comparación
con otras
tecnologías
AMD Infinity Fabric es una arquitectura de interconexión de alta
velocidad que conecta los diferentes componentes dentro de un
procesador AMD, como núcleos de CPU, controladores de
memoria, controladores de E/S y otros aceleradores. Esta
tecnología se utiliza en una variedad de productos de AMD,
incluyendo procesadores Ryzen y procesadores EPYC en la
actualidad.
Características:
1.Comunicación de baja latencia: Infinity Fabric proporciona una
Infinity Fabric comunicación de baja latencia entre los componentes del procesador, lo
que permite un acceso rápido a la memoria y una transferencia eficiente
de datos entre núcleos de CPU y otros recursos.
2.Soporte de memoria unificada: Permite el acceso a la memoria
unificada en sistemas con múltiples matrices de CPU, lo que facilita el
acceso a grandes cantidades de memoria y mejora el rendimiento.
3.Soporte para múltiples generaciones de CPU: permite una cierta
compatibilidad y facilidad en la actualización de sistemas sin necesidad
de cambiar por completo la plataforma.
NVLink, o NVIDIA NVLink, es una tecnología de interconexión de alta
velocidad con topología flexible desarrollada por NVIDIA para
permitir una comunicación rápida y eficiente entre múltiples
tarjetas gráficas (GPU) y otros dispositivos aceleradores en sistemas
de alto rendimiento, como estaciones de trabajo y servidores.
Características:
1.Alta velocidad de transferencia: posee tasas de transferencia de datos
extremadamente altas, lo que permite una comunicación de baja
NVLink latencia y un ancho de banda muy significativo.
2.Arquitectura de canales múltiples: utiliza una arquitectura de canales
múltiples, lo que significa que puede combinar varios enlaces NVLink
para aumentar aún más el ancho de banda disponible entre las GPU y
otros dispositivos.
3.Aplicaciones de alto rendimiento: es especialmente valioso en
aplicaciones de alto rendimiento que requieren una gran potencia de
procesamiento, como la inteligencia artificial, el aprendizaje profundo, la
simulación científica y la visualización 3D.
FIN
CLASIFICACION DE
BUSES Y CONEXIONES
PUNTO A PUNTO
 Bus único
CLASIFICACION
 Bus dedicado
DE BUSES
 Bus Interconexión
 Implica que un conjunto específico de cables o conexiones
está reservado exclusivamente para la comunicación entre
dos componentes o dispositivos. Esto significa que no se
comparte con otros dispositivos, y su función está dedicada
a la comunicación entre estos componentes específicos.

BUS
DEDICADO
 Un bus de interconexión es un sistema de comunicación que
permite la transferencia de datos entre varios componentes o
dispositivos dentro de un sistema. Los componentes pueden
compartir este bus para comunicarse entre sí.
 Su propósito es conectar y permitir la comunicación entre
múltiples componentes o dispositivos en un sistema. Pueden ser
utilizados en una variedad de aplicaciones y son esenciales para
que los componentes se comuniquen entre sí de manera eficiente.
BUS DE
INTERCONEXION
 PCI (Peripheral Component Interconnect)
TIPOS DE BUSES  PCIe (PCI Express)
DE
 HyperTransport
INTERCONEXION
 QPI (QuickPath Interconnect)
 Infinity Fabric
 NVlink
Las tecnologías Hypertransport y QPI son sistemas de
conexión punto a punto y no buses como tal, es decir,
mientras que un bus de interconexión implica compartir un
medio de comunicación entre varios dispositivos, la
conexión punto a punto es la comunicación directa entre
dos dispositivos específicos.
CONEXIONES Debido a las limitaciones electrónicas y eléctricas de los
PUNTO A PUNTO buses, es que se decidió implementar los sistemas de
conexión punto a punto

Entrada
CPU
y Salida
• Es una tecnología de comunicaciones bidireccional, que funciona
tanto en serie como en paralelo desarrollado por AMD. Se utiliza
para conectar la CPU con otros componentes del sistema, como la
HyperTransport memoria y otros procesadores en sistemas multiprocesador.
HyperTransport es un bus avanzado de alta velocidad y rendimiento.

▪ Bidireccional: lo que permite la transferencia de datos en ambas


direcciones simultáneamente.

▪ Escalabilidad: es escalable y admite la conexión de múltiples


dispositivos

▪ Variabilidad: puede variar según el diseño del sistema. Enlaces


punto a punto entre componentes individuales o configuraciones
más complejas, como conexiones en cadena o en estrella, según
las necesidades del sistema.

“Su velocidad de transferencia máxima, utilizando líneas de 32 bits, tiene por


cada uno de sus 2 buses un total de 20.8 GB/s”.
PARTES
El enlace de datos se utiliza para El enlace de control maneja las
la transferencia de datos y tiene señales de control, como señales de
un ancho de banda significativo. inicio y parada de transacciones.

CONFIGURACIONES CONFIGURACIONES
Y PARTES
1. Alta velocidad de transferencia: HyperTransport fue diseñado para proporcionar
velocidades de transferencia de datos muy rápidas entre los componentes del
sistema.
2. Escalabilidad: HyperTransport es escalable y permite la conexión de múltiples
componentes, incluyendo procesadores, controladores de memoria y otros
dispositivos.

VENTAJAS 3. Bajo consumo de energía: HyperTransport tiende a consumir menos energía, lo que
puede ser beneficioso para sistemas que requieren eficiencia energética.
Y
1. Obsolescencia: HyperTransport ha quedado en gran medida obsoleto en sistemas
DESVENTAJAS de consumo y servidores modernos.

2. Limitaciones de ancho de banda: A medida que las necesidades de ancho de banda


han aumentado en sistemas modernos, HyperTransport se ha vuelto insuficiente para
satisfacer estas demandas.

3. Compatibilidad limitada: Dado que HyperTransport es una tecnología desarrollada


por AMD, su adopción fuera de los sistemas AMD fue limitada.
La tecnología Intel® QuickPath InterConnect proporciona enlaces punto a punto de
alta velocidad dentro y fuera del procesador. A diferencia de los buses paralelos,
estos enlaces aceleran las transferencias de datos al conectar la memoria
compartida distribuida, los núcleos internos, el concentrador de E/S y otros
procesadores Intel®.

QPI La tecnología Intel® QuickPath acelera el flujo de datos mediante la introducción de


múltiples pares de enlaces seriales de alta velocidad. Al agrupar varias rutas con
(QuickPath administración inteligente, la tecnología Intel QuickPath puede ofrecer hasta
25,6 GB/s entre componentes y mantener las comunicaciones incluso cuando falla un
InterConnect) enlace.
• Múltiples conexiones directas: esto
elimina el arbitraje debido a que se
conectan directamente con otros.
• Protocolo basado en Capas.
• Transferencia por Paquetes: los
datos se segmentan y se
empaquetan para poder transferirlos
de manera optima.
CARACTERISTICAS • Los dispositivos de E/S se conectan
a través de la tecnología PCI express.
1. Baja latencia: QPI está diseñado para minimizar la latencia en la comunicación
entre los componentes del sistema. Esto es importante en aplicaciones que
dependen de respuestas rápidas, como la informática de alto rendimiento y la
virtualización.
2. Arquitectura de alto rendimiento: QPI se integra en la arquitectura de alto
rendimiento de los procesadores Intel, como la familia Intel Xeon, lo que lo hace
adecuado para servidores y estaciones de trabajo de alto rendimiento.
3. Alto rendimiento: QPI fue diseñado para proporcionar un alto rendimiento y un
VENTAJAS ancho de banda significativo para la comunicación entre la CPU y otros
componentes del sistema. Esto es especialmente importante en sistemas
Y multiprocesador y servidores donde se requiere un rendimiento escalable.

DESVENTAJAS 1. Incompatibilidad con otras tecnologías: La incompatibilidad entre las tecnologías


de interconexión puede ser una desventaja en sistemas heterogéneos que utilizan
procesadores de diferentes fabricantes o sistemas operativos.

2. Costo: Los sistemas que utilizan procesadores con QPI pueden ser más caros en
comparación con sistemas que utilizan tecnologías de interconexión alternativas.

3. Rendimiento variable: El rendimiento de QPI puede variar según la generación de


procesadores y la configuración específica del sistema. Las versiones más recientes
de QPI tienden a ofrecer un mejor rendimiento y características adicionales en
comparación con las versiones anteriores.
• El estándar PCI es uno de los buses de interconexión más antiguos y
ampliamente utilizados en computadoras personales. PCI permite la
conexión de tarjetas de expansión, como tarjetas gráficas, tarjetas de
sonido y tarjetas de red, a la placa base.

• En cambio el PCIe es un bus de interconexión de alta velocidad que se


utiliza en la mayoría de las computadoras modernas para conectar
componentes internos, como tarjetas gráficas, centrándose mas unidades
de almacenamiento SSD. Diseñado para ser escalable y compatible con
PCI y PCIe múltiples tipos de dispositivos.
❑ Alta velocidad: PCIe ofrece velocidades de transferencia de datos significativamente más
rápidas que sus predecesores, como PCI y AGP. Las tasas de transferencia varían según la
generación, con PCIe 4.0 y PCIe 5.0 ofreciendo tasas de hasta 16 GT/s (gigatransfers por
segundo) y 32 GT/s, respectivamente.
❑ Bidireccionalidad y ancho de banda dedicado: PCIe admite la comunicación bidireccional
simultánea, puede enviar y recibir datos al mismo tiempo. Además, cada carril PCIe
proporciona ancho de banda dedicado, lo que garantiza un rendimiento confiable y
consistente.
❑ Escalabilidad: PCIe es escalable y permite la conexión de múltiples dispositivos a través de
CARACTERISTICAS ranuras PCIe disponibles en la placa madre. Los dispositivos PCIe se pueden conectar en
serie, facilitando la expansión y actualización de sistemas.
❑ Compatibilidad con versiones anteriores: PCIe es compatible con versiones anteriores, lo
que significa que las tarjetas PCIe más antiguas pueden funcionar en ranuras PCIe más
nuevas, aunque a la velocidad de la ranura más antigua.
❑ Diferentes tamaños de ranuras: PCIe admite diferentes tamaños de ranuras, como x1, x4,
x8 y x16, que ofrecen diferentes anchos de banda.
❑ Energía y capacidad de entrega: Las ranuras PCIe pueden suministrar energía a los
dispositivos conectados, eliminando la necesidad de cables de alimentación separados para
ciertos componentes.
PCIe
en comparación
con otras
tecnologías
FIN
HISTORIA Y EVOLUCION DE LOS BUSES
Cuando en 1980 IBM fabricó su primer PC, este contaba con un bus de
expansión conocido como XT que funcionaba a la misma velocidad que los
procesadores Intel 8086 y 8088 (4.77 Mhz). El ancho de banda de este bus (8
bits) con el procesador 8088 formaba un tandem perfecto, pero la ampliación
del bus de datos en el 8086 a 16 bits dejo en entredicho este tipo de bus
(aparecieron los famosos cuellos de botella).

Dada la evolución de los microprocesadores el bus del PC no era ni mucho


menos la solución para una comunicación fluida con el exterior del micro. En
definitiva no podía hablarse de una autopista de datos en un PC cuando esta
sólo tenía un ancho de 8 bits. Por lo tanto con la introducción del AT apareció
un nuevo bus en el mundo del PC, que en relación con el bus de datos tenía
finalmente 16 bits (ISA), pero que era compatible con su antecesor. La única
diferencia fue que el bus XT era síncrono y el nuevo AT era asíncrono. Las
viejas tarjetas de 8 bits de la época del PC pueden por tanto manejarse con las
nuevas tarjetas de 16 bits en un mismo dispositivo. De todas maneras las
tarjetas de 16 bits son considerablemente más rápidas, ya que transfieren la
misma cantidad de datos en comparación con las tarjetas de 8 bits en la mitad
de tiempo (transferencia de 16 bits en lugar de transferencia de 8 bits).

No tan solo se amplió el bus de datos sino que también se amplió el bus de
direcciones, concretamente hasta 24 bits, de manera que este se podía dirigir
al AT con memoria de 16 MB. Además también se aumentó la velocidad de
cada una de las señales de frecuencia, de manera que toda la circulación de
bus se desarrollaba más rápidamente. De 4.77 Mhz en el XT se pasó a 8.33
Mhz. Como consecuencia el bus forma un cuello de botella por el cual no
pueden transferirse nunca los datos entre la memoria y la CPU lo
suficientemente rápido. En los discos duros modernos, por ejemplo, la relación
(ratio) de transferencia de datos ya es superior al ratio del bus.

TIPOS DE BUSES

Bus XT

Una ranura de expansión, bus de expansión o ‘’slot’’ es un elemento que


permite introducir en si otros dispositivos llamadas tarjetas de expansión (son
tarjetas que se introducen en la ranura de expansión y dan más presentaciones
al equipo de cómputo).
XT proviene de las siglas (‘’exthended tecnology’’) o tecnología avanzada. Este
tipo de ranura se comercializa en 1980 con una capacidad de datos de 8 bits.

Características generales:

• Se puede considerar como una ranura de expansión de primera


generación.
• Se comercializo para el microprocesador INTEL 8088.
• La capacidad de datos que maneja es de 8 bits.
• Cuenta con una velocidad de transferencia de 4.6 megabytes.

Bus ISA

El ISA es el bus usado en las computadoras PC de IBM y también en las


computadoras compatibles. Su función principal es realizar comunicación entre
el procesador, ubicado en la placa madre (motherboard) y las tarjetas de
expansión de periféricos.

El bus ISA tiene una velocidad de transferencia máxima teórica de 16


megabytes (aunque en realidad es solo de 8 megabytes debido a que
normalmente es de solo 8 megabytes debido que normalmente se requiere de
un ciclo para el direccionamiento y otro para ciclos de datos). La velocidad
típica máximo es 1 a 2.5 Mbytes. Esta velocidad es variable debido a la
contención del bus con otros dispositivos (principalmente la memoria) y el
retardo de los buffers debido a su naturaleza asíncrona del bus.

Con el correr del tiempo los procesadores de las computadoras AT se volvieron


más rápidos y eventualmente sus buses se hicieron más anchos, pero el deseo
de mantener la compatibilidad con los dispositivos existentes llevo a los
fabricantes para resistirse a un cambio de norma y por lo tanto el bus ISA ha
permanecido semejante desde ese tiempo. El bus ISA proporciona una
velocidad razonable para dispositivos de bajo ancho de banda y virtualmente
asegura compatibilidad con casi cada PC del mercado.

BUS PCI

El bus PCI (Interconexión de componentes periféricos) fue desarrollado por


Intel el 22 de junio de 1992.

Por lo general, las placas madre cuentan con al menos 3 ó 4 conectores PCI,
identificables generalmente por su color blanco estándar.
La interfaz PCI existe en 32 bits con un conector de 124 clavijas o en 64 bits
con un conector de 188 clavijas. También existen dos niveles de señalización
de voltaje:
• 3,3 V para los ordenadores portátiles
• 5 V para los equipos de escritorio
El voltaje señalizado no es igual al voltaje de la fuente de alimentación de la
placa madre, sino que es el umbral de voltaje necesario para el cifrado digital
de los datos.
Existen 2 tipos de conectores de 32 bits:
• conector PCI de 32 bits, 5 V:

• conector PCI de 32 bits, 3,3 V:

Los conectores PCI de 63 bits disponen de clavijas adicionales para tarjetas


PCI de 32 bits. Existen 2 tipos de conectores de 64 bits:
• conector PCI de 64 bits, 5 V:

• conector PCI de 64 bits, 3,3 V:

VESA

El bus VESA (Video Electronics Standards Association, la compañía que lo dis


eñó) es un tipo de bus de datos para ordenadores personales, utilizado sobre t
odo en equipos diseñados para el procesador Intel 80486. Permite conectar dir
ectamente la tarjeta gráfica al procesador.
Este bus es compatible con el bus ISA pero mejora la respuesta gráfica, solucio
nando el problema de la insuficiencia de flujo de datos de su predecesor. Para
ello su estructura consistía en una extensión del ISA de 16 bits. Las tarjetas de
expansión de este tipo eran enormes lo que, junto a la aparición del bus PCI, m
ucho más rápido en velocidad de reloj, y con menor longitud y mayor versatilida
d, hizo desaparecer al VESA, aunque sigue existiendo en algunos equipos anti
guos.

Este bus se creo en el 1992 y lo descontinuaron en el 1993

Bus AGP

El bus AGP (la sigla corresponde a Accelerated Graphics Port que en español
significa puerto de gráficos acelerado) apareció por primera vez en mayo de
1997 para los chipsets Slot One. Luego se lanzó para los chips Super 7, con el
objetivo de administrar los flujos de datos gráficos que se habían vuelto
demasiado grandes como para ser controlados por el Bus PCI. De esta
manera, el bus AGP se conecta directamente al FSB (Front Side Bus [Bus
Frontal]) del procesador y utiliza la misma frecuencia, es decir, un ancho de
banda más elevado.

La interfaz AGP se ha creado con el único propósito de conectarle una tarjeta


de video. Funciona al seleccionar en la tarjeta gráfica un canal de acceso
directo a la memoria (DMA, Direct Memory Access), evitado así el uso
del controlador de entradas/salidas. En teoría, las tarjetas que utilizan este bus
de gráficos necesitan menos memoria integrada ya que poseen acceso directo
a la información gráfica (como por ejemplo las texturas) almacenadas en la
memoria central. Su costo es aparentemente inferior.
BUS IDE

El puerto IDE (Integrated device Electronics) o ATA (Advanced Technology


Attachment) controla los dispositivos de almacenamiento masivo de datos,
como los discos duros y ATAPI (Advanced Technology Attachment Packet
Interface) y además añade dispositivos como las unidades CD-ROM.

En un primer momento, las controladoras IDE iban como tarjetas de


ampliación, mayoritariamente ISA, y sólo se integraban en la placa madre de
equipos de marca como IBM, Dell o Commodore. Su versión más extendida
eran las tarjetas multi I/O, que agrupaban las controladores IDE y de disquete,
así como los puertos RS-232 y el puerto paralelo, y sólo modelos de gama alta
incorporaban zócalos y conectores SIMM para cachear el disco. La integración
de dispositivos trajo consigo que un solo chip fuera capaz de desempeñar todo
el trabajo.
PUERTO SATA (Serial ATA)

Serial ATA es el nuevo estándar de conexión de discos duros. Hasta hace


relativamente poco tiempo, en el mercado del consumo se hacía uso del puerto
IDE en los estándares ATA (también llamado Pararell ATA), del que existen
variedades de hasta 133MBytes/seg teóricos. Dicho tipo de conexión consiste
en unas fajas planas (de 40 u 80 hilos, dependiendo de las especificaciones de
ATA) a las cuales se pueden conectar hasta dos discos duros (o unidades
ópticas).

Serial ATA, la nueva tecnología, es totalmente compatible con la anterior, de


manera que no habrá problemas de compatibilidad con los sistemas operativos.
De hecho se pueden encontrar conversores con el formato antiguo, ya que no
solo se trata de un cambio en el formato de los conectores, sino también en el
tipo depuerto (mientras que un puerto IDE trabaja como un puerto Paralelo,
SATA es un tipo de puerto Serie).
Es cierto que a nivel físico está más cercano de lo que sería un puerto Firewire
o un USB, aunque en el caso de SATA tan sólo se puede conectar un
dispositivo por puerto.

Ventajas que nos reporta este nuevo sistema.


En cuanto velocidad hay grandes ventajas, ya que la nueva interfaz comienza
trabajando a 150MBytes/seg (133 como máximo en ATA), siendo lo habitual
actualmente el tipo SATA2, con una tasa de transferencia de 300MBytes/seg.
Otra de las grandes mejoras respecto al sistema anterior (en mi opinión) es el
tipo de cableado que se utiliza, mucho más fino y aerodinámico que el anterior ,
lo que permite que estos cables, al ser muchísimo más finos, faciliten el flujo de
aire dentro de la caja, reduciendo el calentamiento de nuestro equipo.
Otra ventaja de este tipo de puerto es que permite hasta 1 metro de longitud en
el cable (menos de medio metro en las conexiones ATA).
Respecto al cable de alimentación también es diferente al de los discos ATA
originales, y las tensiones de trabajo son menores, teniendo un consumo
menor.

Bus HyperTransport

HyperTransport es un nueva arquitectura de bus de alta velocidad que reduce


los cuellos de botella y aumenta hasta 24 veces el rendimiento de los equipos
de comunicación, como PC, estaciones de trabajo, servidores, routers Internet,
conmutadores ópticos, redes, centrales de conmutación y estaciones base
celulares.

Actualmente en proceso de revisión para su estandarización, HyperTransport


es una tecnología escalable de interconexión punto a punto que aporta un
enlace de alta velocidad y elevado rendimiento. Esta conexión universal reduce
el número de buses a instalar en un sistema y permite a los chips presentes en
los equipos informáticos, de networking o de comunicaciones comunicarse
entre sí hasta 24 veces más rápido que las tecnologías actuales. Además, es
compatible con el muy difundido PCI, por lo que no es necesario perder tiempo
y dinero en reescribir el código del software basado en este estándar.
HyperTransport se basa en una arquitectura escalable que incrementa
enormemente la capacidad de proceso de las transacciones de bus sobre las
tecnologías E/S existentes, como PCI, PCI-X y AGP. Aunque las arquitecturas
de bus E/S heredadas se utilizan ampliamente debido a su bajo precio y
facilidad de implementación, alcanzan su punto máximo a alrededor de los 66
MHz. Sin embargo, los procesadores de hoy corren a frecuencias de reloj de
500 MHz a más de 1 GHz, y ya están en camino otros más rápidos. Por suerte,
la arquitectura de bus E/S de HyperTransport escala desde configuraciones
modestas con relativamente bajas velocidades de reloj (200 MHz) a
velocidades de reloj de 800 MHz a más de 32 bits.
SERVIDORES.

¿Qué buses implementan AMD e Intel para servidores?

Tanto AMD como Intel ofrecen buses de alta velocidad en sus líneas de
servidores. Por ejemplo, AMD cuenta con la tecnología HyperTransport, mientras que
Intel ofrece QuickPath Interconnect (QPI) y Direct Media Interface (DMI).
La implementación de estos buses puede afectar significativamente el
rendimiento del servidor. Por ejemplo, un bus más rápido puede permitir una
transferencia de datos más rápida entre la CPU y la memoria, lo que puede mejorar el
rendimiento general del servidor. Además, un bus más rápido también puede permitir
una mayor escalabilidad en términos de la cantidad de procesadores que se pueden
conectar al servidor.
¿Cuáles son las principales diferencias entre las placas madre AMD y las Intel
para servidores?
Las principales diferencias entre las placas madre AMD e Intel para servidores
radican en la arquitectura de sus procesadores y en la compatibilidad con otros
componentes.

En términos generales, los procesadores Intel suelen tener una mayor frecuencia
de reloj y un menor número de núcleos, lo que los hace más adecuados para cargas de
trabajo de un solo hilo que requieren una alta velocidad de procesamiento. Por otro lado,
los procesadores AMD suelen tener más núcleos y una menor frecuencia de reloj, lo
que los hace más adecuados para cargas de trabajo que requieren un alto rendimiento
en paralelo.

En cuanto a la compatibilidad con otros componentes, las placas madre AMD


suelen ser más económicas y ofrecer una mayor variedad de opciones en cuanto a
conectividad y características adicionales, como puertos PCIe y ranuras para memoria
RAM. Por su parte, las placas madre Intel suelen ser más costosas, pero ofrecen una
mayor estabilidad y confiabilidad en entornos empresariales.

¿Qué características son esenciales en una placa madre para servidores?


Las características esenciales en una placa madre para servidores incluyen la
capacidad de soportar múltiples procesadores, una alta capacidad de memoria RAM,
múltiples ranuras PCIe para la conexión de tarjetas de expansión, soporte para
almacenamiento en RAID y una alta fiabilidad y estabilidad del sistema. Además, es
importante que tenga un buen sistema de enfriamiento y una gestión de energía eficiente
para garantizar un funcionamiento óptimo del servidor. También es recomendable que
tenga características de administración remota para facilitar el mantenimiento y la
solución de problemas.
Procesadores para servidores.
Intel core Xeon y AMD ENYC
Los procesadores AMD EPYC tienen varias ventajas, al igual que los Intel
Xeon. La capacidad de juntar dos procesadores en una misma placa base brinda a
AMD la posibilidad de ofrecer un 47% más de rendimiento que la plataforma de Intel,
a la vez que un 45% más de núcleos para poder hacer un gran número de tareas
sin que el rendimiento se resienta.
Al juntar dos procesadores en una misma placa base también se dobla el
número de canales de memoria hasta dieciséis, lo que ofrece un 122% más de
ancho de banda que la plataforma Intel Xeon, que se conforma con una controladora
de memoria de ocho canales. Un mayor ancho de banda es esencial en el entorno
de los servidores, ya que se maneja un enorme volumen de datos. Una última
ventaja de AMD EPYC es que ofrece un 60% más de I/O, esto se traduce en un
mayor número de lanes PCI Express y de conectividad en general, mejorando las
posibilidades de la plataforma.

¿Cuáles son los ensambladores de notebooks más populares en Argentina?


En Argentina, algunos de los ensambladores de notebooks más populares son:
1. Banghó: Es una empresa argentina que se dedica a la fabricación
y ensamblaje de notebooks y otros dispositivos electrónicos. Cuenta con una
amplia variedad de modelos y precios para satisfacer las necesidades de
diferentes usuarios.
2. EXO: Esta empresa argentina se especializa en la fabricación y
ensamblaje de notebooks, computadoras de escritorio y otros productos
tecnológicos. Ofrece una amplia gama de opciones para diferentes segmentos
de mercado.
3. PCBOX: Es una marca argentina que se destaca por ofrecer
notebooks de buena calidad a precios accesibles. Además de notebooks,
también fabrica otros dispositivos electrónicos como tablets y smartphones.
4. Positivo BGH: Esta empresa es una asociación entre la brasileña
Positivo y la argentina BGH. Ofrece notebooks de diferentes características y
precios, adaptados a las necesidades del mercado argentino.
5. ASUS: La empresa Taiwanesa ASUS es mundialmente
reconocida por todos ya que tiene un gran marketing y a su vez un gran éxito por
sus extravagantes diseños. ASUS para sorpresa de muchos, solo tiene 2
empresas que ensamblan fuera de Taiwan, una en Brasil, y sí, otra en Argentina,
en esta su producción de notebooks representa un 80% de sus ventas.

Conclusión general acerca de AMD e INTEL.


Desde mi punto de vista cada persona podrá gustarle mas AMD o INTEL,
pienso que las dos empresas están haciendo las cosas muy bien innovando en
nuevas tecnologías compitiendo a lo mas alto nivel haciendo que los beneficiados
seamos nosotros, los usuarios.
Si quieres comprarte un equipo para un uso de tareas simples como ver
Netflix, escuchar música, hojas de cálculo o para gaming y no tienes tanto poder
adquisitivo o no quieres gastarte tanto dinero te recomiendo AMD ya que ofrece sus
productos de una forma calidad-precio que con sus gráficos integrados de por
ejemplo un Ryzen 3 3200G sería una gran opción.
En cambio, si quieres comprarte una notebook y quieres tener un buen
rendimiento de forma eficiente te recomiendo Intel, Intel ofrece los procesadores
Tiger Lake H. Estos chips de alto rendimiento usan el diseño Tiger Lake, pero elevan
los límites de potencia, brindan velocidades de reloj más rápidas y conteos de
núcleos más elevados.
Para en el ámbito de servidores pienso que es un poco más complejo la
elección ya que comprenden muchos factores, como el uso que le de la empresa, la
energía que quiera usar, la calidad que quiera ofrecer pero AMD e Intel tienen unas
opciones más que recomendadas.

Bibliografía:

https://www.profesionalreview.com/hardware/mejores-placas-base/#%C2%BFAMD_o_Intel
https://gamerpc.es/mejores-cpu-gamer/
https://www.muycomputerpro.com/2023/03/04/los-amd-threadripper-7000-seran-los-
primeros-de-su-clase-en-contar-con-96-nucleos

https://www.profesionalreview.com/amd/amd-ryzen-threadripper-amd-epyc/

https://www.profesionalreview.com/2023/08/31/nvidia-grace-40-mas-rapido-epyc-genoa/

https://elchapuzasinformatico.com/2023/04/epyc-9684x-96-cores-1-gb-cache-l3/

https://www.pagina12.com.ar/486958-asus-vuelve-a-argentina-como-es-la-fabrica-de-10-
millones-
de#:~:text=La%20marca%20de%20computadoras%20ASUS,la%20producci%C3%B3n%20local%
20en%202018.

https://es.digitaltrends.com/computadoras/amd-vs-intel/#dt-heading-computadoras-de-
escritorio
https://normasambientales.com.mx/infoblog/tabla/tabla-comparativa-de-procesadores-
intel-y-amd.html
CONCLUSIONES DE LA MEJOR EXO DEL MERCADO Y UNA DE LAS
VARIANTES QUE OFRECE ASUS

• EL PRECIO DE LA EXO ES MAS ELEVADO.

• SUS COMPONENTES SON DE UNA GAMA MAS BAJA Y PAGAS MAS.


Se debe mencionar las estructuras de interconexión porque la interconexión con buses debido a
la arquitectura de computadoras, los buses son una de las principales formas de implementar la
interconexión entre los componentes del sistema.

ESTRUCTURAS DE INTERCONEXIÓN
La computadora está constituida por un conjunto de unidades o módulos de tres tipos
elementales los cuales son el procesador CPU, la memoria, y el módulo E/S que se comunican
entre sí. Deben existir líneas para interconectar estos módulos, el cual se llaman estructuras de
interconexión.

El diseño de la estructura depende de los intercambios que se van a dar entre los módulos.

Entradas y Salidas:

Memoria: está constituido por N palabras de la misma longitud. A cada palabra se le asigna una
única dirección numérica (0,1,…,N-1). Una palabra de datos puede leerse de o escribirse en la
memoria. Mediante las señales de control Read (leer) o Write (escribir). La posición de memoria
se indica mediante una dirección.

Palabras significa el conjunto de datos que se está enviando. La cual se asigna una dirección
numérica

Modulo de E/S: es similar a la memoria. Puede controlar mas de un dispositivo externo. Nos
referimos a cada una de estas interfaces con un dispositivo externo con el nombre de puerto
(port), y se le va a asignar una dirección de memoria a cada uno (0,1,…,M-1). Existen líneas
externas de datos para la entrada y salida de datos por un dispositivo externo. Además, el
módulo E/S puede enviar señales de interrupción al procesador.

Procesador: lee instrucciones y datos, escribe datos una vez los ha procesado, y utiliza ciertas
señales para controlar el funcionamiento del sistema. También puede recibir señales de
interrupción. Las interrupciones son representadas con un impulso eléctrico.
Esta estructura debe de dar cobertura a los siguientes tipos de transferencias:

Memoria a procesador: el procesador lee una instrucción o un dato desde la memoria.

Procesador a memoria: el procesador escribe un dato en la memoria. Es la memoria principal.

E/S a un procesador: el procesador lee datos de un dispositivo de E/S a través de un módulo de


E/S.

Procesador a E/S: el procesador envía datos al dispositivo de E/S.

Memoria a E/S y viceversa: un módulo de E/S puede intercambiar datos directamente con la
memoria, sin que tengan que pasar a través del procesador, utilizando el acceso directo de
memoria (DMA)

Las estructuras de interconexión más comunes son, con diferencia, las estructuras de bus y de
buses múltiples.

INTERCONEXIÓN CON BUSES


Un bus es un camino de comunicación entre dos o más dispositivos, permite la transferencia de
datos y señales. Está constituido por varios caminos de comunicación, o líneas. Cada línea es
capaz de transmitir señales binarias representadas por 1 y por 0. En un intervalo de tiempo, se
puede transmitir una secuencia de dígitos binarios a través de una única línea. Se pueden utilizar
varias líneas del bus para transmitir dígitos binarios simultáneamente (en paralelo). Por ejemplo,
un dato de 8 bits puede transmitirse mediante ocho líneas del bus.

Cada cable o línea transmite un único bit de información en un determinado momento. Y


también de cuantos bits son los buses, si de 32 o 64.

Las computadoras poseen diferentes tipos de buses que proporcionan comunicación entre sus
componentes a distintos niveles dentro de la jerarquía del sistema. El bus que conecta los
componentes principales del computador se denomina system bus, bus del sistema.

ESTRUCTURA DEL BUS


El bus de sistema, usualmente, está constituido por entre cincuenta y cien líneas (soldaduras de
la placa). A cada línea se le asigna un significado o una función particular. Aunque haya variación
entre los diseños de los buses, en todos ellos las líneas se pueden clasificar en tres grupos. Las
cuales son: líneas de datos, de dirección y de control.
Las líneas de datos proporcionan un medio para la transmisión de datos entre los módulos del
sistema. Este conjunto de líneas se denomina bus de datos. Este bus puede incluir entre 32 y
cientos de líneas, el cual se lo conoce como anchura del bus de datos. Cada línea transfiere un
solo bit cada vez, y así cada línea determina cuantos bits se pueden transferir al mismo tiempo.
Por ejemplo, si el bus de datos tiene una anchura de ocho bits, y las instrucciones son de 16 bits,
entonces el procesador debe acceder al módulo de memoria dos veces por cada ciclo de
instrucción.

Las líneas de dirección se utilizan para designar el destino del dato situado en el bus de datos, y
generalmente se utilizan para direccionar los puertos de E/S. Usualmente, los bits de orden más
alto se utilizan para seleccionar una posición de memoria o un puerto de E/S dentro de un
módulo. La anchura del bus de direcciones determina la capacidad de memoria posible en el
sistema. Por ejemplo, en un bus de 8 bits, la dirección 01111111 e inferiores harían referencia a
posiciones dentro de un módulo de memoria (el módulo 0) con 128 palabras de memoria, y las
direcciones 10000000 y superiores designarían dispositivos conectados a un módulo de E/S
(módulo 1)

Las líneas de control como indica el nombre, nos ayudan a controlar el acceso y uso de las líneas
anteriores (las líneas de datos y de dirección). Como ambas líneas son compartidas por todos los
componentes, hay que controlar su uso. Las señales de control transmiten tanto órdenes como
información de temporización entre los módulos del sistema. Las señales de temporización
indican la validez de los datos y las direcciones. Las señales de ordenes significan las operaciones
a realizar. Algunas líneas de control típicas son:

• Escritura en memoria (Memory write): hace que el dato del bus se escriba en la posición
direccionada.
• Lectura de memoria (Memory read): hace que el dato de la posición direccionada se sitúe
en el bus.
• Escritura de E/S (I/O write): hace que el dato del bus se transfiera a través del puerto de E/S
direccionado.
• Lectura de E/S (E/S read): hace que el dato del puerto de E/S direccionado se sitúe en el bus.
• Transferencia reconocida (Transfer ACK): indica que el dato se ha aceptado o se ha situado
en el bus.
• Petición de bus (Bus request): indica que un módulo necesita disponer del control del bus.
• Cesión de bus (Bus grant): indica que se cede el control del bus a un módulo que lo había
solicitado
• Petición de interrupción (Interrupt request): indica si hay una interrupción pendiente.
• Interrupción reconocida (Interrupt ACK): Señala que la interrupción pendiente se ha
aceptado.
• Reloj (clock): se utiliza para sincronizar las operaciones.
• Inicio (reset): pone los módulos conectados en su estado inicial.

En términos físicos, el bus de sistema está hecho por un conjunto de conductores eléctricos
paralelos. Estos conductores son líneas de metal grabadas en una tarjeta (tarjeta de circuito
impreso). El bus se extiende a través de todos los componentes del sistema, cada uno de los
cuales se conecta a algunas o a todas las líneas del bus.
Los sistemas actuales tienden a tener sus componentes principales en la misma tarjeta y los
circuitos integrados incluyen mas elementos. Así, el bus que conecta el procesador y la
memoria caché se integra en el microprocesador junto con el procesador y la caché (on-chip),
y el bus que conecta el procesador con la memoria y otros componentes se incluye en la tarjeta
(on-board).

JERARQUIA DE BUSES MULTIPLES


Las prestaciones se refieren a la capacidad de transferencia de datos o a la velocidad de
comunicación que un bus especifico puede proporcionar en un sistema. Las prestaciones
son una medida del rendimiento y capacidad del bus con respecto a cuantos datos se
pueden transferir entre los componentes.
Si se conectan dispositivos al bus, las prestaciones pueden disminuir. Hay dos causas del por qué:

1. Cuanto más dispositivos conectados al bus, mayor es el retardo de propagación. El


retraso determina el tiempo que necesitan los dispositivos para coordinarse en el uso
del bus. Si el control de bus pasa frecuentemente de un dispositivo a otro, esto puede
afectar a las prestaciones.
2. El bus puede convertirse en un cuello de botella a medida que las peticiones de
transferencias acumuladas se aproximan a la capacidad del bus. Esto se puede
solucionar aumentando la velocidad de transferencia de datos, y utilizando buses más
anchos (por ejemplo, incrementando un bus de 32 a 64 bits).

La mayoría de las computadoras utilizan varios buses, normalmente organizados de manera


jerárquica. Una estructura típica es la de la ilustración 1. Hay un bus local que conecta el
procesador con una memoria cache y al que pueden conectarse también uno o más dispositivos
locales. Y el caché conecta además al bus del sistema, donde se conecta con todos los módulos
de la memoria principal. Como se sabe, el uso de la caché alivia la exigencia de soportar accesos
frecuentes del procesador a memoria principal. La memoria principal puede pasar por el bus
local de sistema. Las transferencias de E/S con la memoria principal a través del bus de sistema
no interfieren la actividad del procesador.

Es posible conectar controladores de E/S directamente al bus de sistema. Una solución más
eficiente consiste en utilizar uno o más buses de expansión. La interfaz del bus de expansión
regula las transferencias de datos entre el bus de sistema y los controladores conectados al bus
de expansión. Esta disposición permite conectar al sistema una amplia variedad de dispositivos
de E/S y al mismo tiempo aislar el tráfico de información entre la memoria y el procesador del
tráfico correspondiente a las E/S.

Esta arquitectura de buses tradicional es razonablemente eficiente, pero su debilidad se muestra


a medida que los dispositivos de E/S ofrecen prestaciones cada vez mayores. Una respuesta fue
proponer un bus de alta velocidad que está estrechamente integrado con el resto del sistema, y
requiere solo un adaptador entre el bus del procesador y el bus de alta velocidad.

En la ilustración 2 hay de nuevo un bus local que conecta el procesador a un controlador de


caché, que a su vez está conectado al bus de sistema que soporta al a memoria principal. El
controlador de cache está integrado junto al adaptador, que permite la conexión de bus de alta
velocidad. Este bus permite la conexión de LAN de alta velocidad. Todos aquellos dispositivos
que tengan una velocidad mayor irán al bus de alta velocidad, y los de menor velocidad irán al
bus de expansión, y utiliza una interfaz para adaptar el tráfico entre el bus de expansión y el bus
de alta velocidad.

La ventaja es que el bus de alta velocidad acerca al procesador los dispositivos que exigen
prestaciones elevadas y al mismo tiempo es independiente al procesador. Se pueden tolerar las
diferencias de velocidad entre el procesador y el bus de altas prestaciones. Los cambios en la
arquitectura del procesador no afectan al bus de alta velocidad.

Bus de sistema: es de puente para unir el procesador y la memoria principal RAM.

Bus de expansión: se conectan los periféricos como tarjetas gráficas, discos duros.

Ilustración 1: Bus tradicional

Ilustración 2: Altas prestaciones

ELEMENTOS DE DISEÑO DE UN BUS


Hay gran variedad de diseños de buses, hay unos parámetros de diseño que sirven para distinguir
y clasificar los buses.

Método de arbitraje: se requiere un método de arbitraje cuando se utiliza más de un módulo


puede necesitar el control del bus, es necesario ya que en un instante dado solo una unidad
puede transmitir a través del bus. El propósito es designar un maestro del bus (procesador,
módulo de E/S), el cual podrá iniciar una transferencia de datos con otro dispositivo y dejándolo
como un esclavo. Métodos:

• Centralizado: el controlador del bus (dispositivo hardware) es responsable de asignar


tiempos en el bus.
• Distribuido: no existe un esquema distribuido, o un controlador central. Por cada módulo
dispone su lógica para controlar el acceso y los módulos actúan conjuntamente para
compartir el bus.

Temporización: es la manera en la que coordinan los eventos en el bus.

Síncrona: todos los eventos en el bus están sincronizados por un reloj. El bus tiene una línea de
reloj que transmite una secuencia de ciclos de reloj alternando entre uno y cero. Se coordinan
los eventos en el bus, para que las operaciones se realicen de manera sincronizada.

Asíncrona: los eventos en el bus no dependen de una señal de clock común. En cambio, los
eventos se desencadenan en respuesta a eventos previos y pueden ocurrir de manera síncrona
en relación con otros componentes del sistema. Permite coordinación de eventos, pero es más
complejo de diseñar y pueden surgir conflictos si no hay una buena coordinación.

Entre las dos temporizaciones, la síncrona es más fácil de implementar y comprobar, pero es
menos flexible que la temporización asíncrona. Esto es porque todos los dispositivos en un bus
síncrono deben utilizar la misma frecuencia de clock. Y es más flexible con la asíncrona porque
pueden compartir el bus una mezcla de dispositivos lentos y rápidos.
Ilustración 3: Operaciones de bus Síncronas

Anchura del bus: la anchura el bus de datos afecta a las prestaciones del sistema. Cuanto más
ancho es el bus de datos, mayor es la capacidad con respecto a los números de bits que
transmiten a la vez. Ej: cuanto más ancho el bus de direcciones, mayor es el rango de posiciones
a las que se puede hacer referencia.

Tipo de transferencia de datos: se pueden dar muchas transferencias de datos, como


transferencias de escritura (dato de maestro a esclavo) o como de lectura (dato de esclavo a
maestro).

• Lectura y Escritura: generalmente hay un tiempo de espera mientras el dato se está


captando del dispositivo esclavo para situarlo en el bus. Puede haber un retraso si se necesita
utilizar un procedimiento de arbitraje para acceder al control del bus, o sea tomar el bus y
solicitar una lectura o escritura.
• La operación lectura-modificación-escritura es una lectura seguida de una escritura en la
misma dirección. El objetivo de esta posibilidad es proteger los recursos de memoria
compartida.
• La lectura-después de-escritura consiste en una escritura seguida de una lectura en la misma
dirección. La operación de lectura es para comprobar el resultado.

Algunos buses permiten la transferencia de bloques de datos. Para este caso, un ciclo de
dirección viene seguido por n ciclos de datos. El primer dato se transfiere a o desde la dirección
específica. Es un conjunto de datos contiguos, bloque de datos desde una dirección a otra. Es
lento y no muy eficiente debido a que se mueven los datos uno por uno, es decir, byte por byte.
TEMA: BUSES DE
INTERCONEXIÓN
Entradas y Salidas:
• Memoria
• E/S
• Procesador (CPU)
ESTRUCTURAS Tipos de Transferencia:
DE • Memoria a procesador
INTERCONEXIÓN
• Procesador a memoria
• E/S a un procesador
• Procesador a E/S
• Memoria a E/S y viceversa
¿Qué es un bus?
• Es un camino de comunicación entre dos o mas dispositivos.
• Está constituido por líneas, la cual pueden representar señales
binarias.
• Varias líneas pueden transmitir dígitos binarios simultáneamente
INTERCONEXION (en paralelo)
CON BUSES • El bus principal se denomina system bus, bus del sistema.
• Está hecho por conductores eléctricos en paralelo.
• Los conductores son líneas de metal grabadas en una tarjeta
(tarjeta de circuito impreso)
Bus del Sistema
• Líneas de datos: un medio de transmisión de datos entre los
módulos del sistema.
• Líneas de dirección: se utilizan para designar el destino del dato
situado en el bus de datos.
• Líneas de control: nos ayudan a controlar el acceso y el uso de las
líneas anteriores.
Estructura del Bus
Líneas de control. Algunas líneas típicas:
• Escritura en memoria (Memory Write)
• Lectura de memoria (Memory Read)
• Escritura de E/S (I/O Write)
• Lectura de E/S (I/O Read)
• Petición de bus (Bus Request)

Estructura del Bus • Cesión de bus (Bus Grant)


• Petición de interrupción (Interrupt Request)
• Interrupción reconocida (Interrupt ACK)
• Reloj (Clock)
• Inicio (Reset)
Prestaciones
Es la capacidad de transferencia de datos o la velocidad de
comunicación que un bus especifico puede proporcionar en un
sistema.
Si se conectan dispositivos al bus, las prestaciones pueden
JERARQUIA DE disminuir. Hay dos causas:
BUSES 1. Retardo de propagación (tiempo de coordinación entre los
dispositivos y el bus)
2. Cuello de botella (se acerca al limite de la capacidad del
bus)
JERARQUIA DE
BUSES

Bus tradicional
JERARQUIA DE
BUSES

Bus con altas prestaciones


Los elementos de diseño de un bus nos hace poder distinguir y
clasificar a los buses, debido a que hay gran variedad de diseños. Se
caracterizan por:

ELEMENTOS DE
UN DISEÑO DE
BUS
MEMORIA INTERNA Y
EXTERNA
1

Ing. Juan de Dios Benitez


Memoria interna
2

— Objetivo
¡ Mucha memoria

¡ Rápida

¡ Barata!

IMPOSIBLE!!!

Ing. Juan de Dios Benitez


3

— JERARQUIA
— PARALELISMO

Ing. Juan de Dios Benitez


4

Ing. Juan de Dios Benitez


5

Ing. Juan de Dios Benitez


6

— Principio de Localidad:
¡ Los programas acceden una porción relativamente pequeña
del espacio de direcciones en un determinado instante de
tiempo.
¡ Se aplica también al acceso a datos (en menor %)

— Localidad temporal
¡ Si un ítem es referenciado, tenderá a ser referenciado
nuevamente a la brevedad
— Localidad Espacial
¡ Si un ítem es referenciado, los ítems con direcciones
“cercanas” tenderán a ser referenciados a la brevedad

Ing. Juan de Dios Benitez


7

— Tiempo de Acceso
¡ Tiempo transcurrido entre presencia de direcciones y obtención de datos válidos

— Tiempo de Ciclo de Memoria


¡ La memoria debe “recuperarse” antes del próximo acceso
¡ Tiempo de Ciclo: acceso + recuperación

— Tasa de Transferencia
¡ Tasa a la que se mueven los datos

— Ejemplo:
¡ Acceso a DRAM del orden de 50 ns
¡ Estos tiempos no incluyen la demora en manejar el bus de direcciones y el
overhead del controlador de memoria
÷ Manejo de DRAMs en paralelo, controlador de memoria externa, bus, módulos
SIMMs …
¡ Tiempos de latencia del procesador a la memoria del orden de 100ms para DRAM
de “50 ns”

Ing. Juan de Dios Benitez


8

Ing. Juan de Dios Benitez


MEMORIA CACHE
9

Ing. Juan de Dios Benitez


10

— Objetivo: lograr que la memoria principal sea lo mas


rápida posible. Consiguiendo al mismo tiempo un
tamaño grande al precio de memorias
semiconductoras menos costosas!

Ing. Juan de Dios Benitez


11

Ing. Juan de Dios Benitez


COMO OPERA LA MEM CACHEE
12

— El uP necesita leer una palabra de memoria. Primero


comprueba si se encuentra en la cache. Si se
encuentra en la memoria cache se entrega, sino, se
envía un “bloque” a la cache desde la mem principal
y la cache envía la palabra al uP.

Ing. Juan de Dios Benitez


13

Ing. Juan de Dios Benitez


14

Ing. Juan de Dios Benitez


DISEÑO DE LA MEM CACHE
15

— Tamaño de la mem
— Función de correspondencia (mapping function)
¡ Directa
¡ Asociativa
¡ Asociativa por conjuntos
— Algoritmo de sustitución
¡ Utilizado menos reciente (LRU)
¡ FIFO
¡ Utilizado menos frecuentemente LFU
— Política de escritura
¡ Escritura inmediata
¡ Post escritura
¡ Escritura única
— Tamaño de línea
— Numero de caches
¡ Uno o dos niveles
¡ Unificada o partida

Ing. Juan de Dios Benitez


ng 7 bits make up the tag field. The fields with sizes are
Función de Mapeo
ioned previously, the tag for each block is stored with
n this example, because main 16
memory blocks 0 and 16
0, the tag field would allow the system to differentiate be

Tag Block Word

Bits in Main Memory Address

6.4 The Format of a Main Memory Address Usin


Mapping
Ing. Juan de Dios Benitez
17

— Función de correspondencia directa

Ing. Juan de Dios Benitez


18

— i=j modulo m
¡ i línea del cache

¡ j número de bloque de memoria principal

¡ m=2^r (cantidad de líneas del cache)

— Línea de Cache Bloque contenido


¡ 0 0, m, 2m, 3m…2s-m
¡ 1 1,m+1, 2m+1…2s-m+1
¡ m-1 m-1, 2m-1,3m-1…2s-1

Ing. Juan de Dios Benitez


19

Ing. Juan de Dios Benitez


20

— Direcciones
¡ (s + w) bits
— Unidades direccionables
¡ 2s+w words o bytes
— Tamaño del bloque = tamaño de línea
¡ 2w words o bytes
— Cantidad de bloques en memoria principal
¡ 2s+ w/2w = 2s
— Cantidad de líneas del cache
¡ m = 2r
— Tamaño del tag
¡ (s – r) bits

Ing. Juan de Dios Benitez


21

Ing. Juan de Dios Benitez


Correspondencia Asociativa
22

— Un bloque de memoria principal se puede cargar


— en cualquier línea del cache
— Dirección de memoria se interpreta como un tag y un
word
— Cada tag identifica unívocamente un bloque de
— memoria
— Cada tag debe ser examinado para ver si hay
coincidencia
— Búsqueda se encarece

Ing. Juan de Dios Benitez


23

Ing. Juan de Dios Benitez


24

Ing. Juan de Dios Benitez


25

— Ejemplo
¡ Tag de 22 bits almacenada con cada bloque de datos de 32 bits

¡ S compara el campo tag con la tag guardada en el cache para


chequear un hit
¡ 2 bits menos significativos de la dirección identifican la
palabra
¡ Dirección de memoria 16339C

0001 0110 0011 0011 1001 1100 (dirección en bin)


¡ TAG
¢ 00 0101 1000 1100 1110 0111 (TAG EN BIN LOS 22 BITS MAS SIG)
¡ TAG = 058CE7

Ing. Juan de Dios Benitez


26

— Direcciones = (s + w) bits
— Unidades direccionables = 2s+w words o bytes
— Tamaño bloque = tamaño de línea = 2w words o
bytes
— Cantidad de bloques en memoria principal = 2s+ w/
2w = 2s
— Cantidad de líneas del cache = indeterminado
— Tamaño del tag = s bits

Ing. Juan de Dios Benitez


Correspondencia Asociativa por Conjuntos
27

— Recoge lo mejor de la directa y la asociativa


— La cache se divide en V grupos de K líneas.
— Un bloque determinado corresponde a cualquier línea de un
conjunto
¡ Bloque B puede estar en cualquier línea del conjunto i
— Ejemplo 2 líneas por conjunto
¡ 2 way associative mapping
¡ Un bloque determinado puede estar en alguna de las dos líneas de un conjunto

— Donde
¡ m = V x K
¡ i = j modulo V
¡ i = numero de conjunto de cache
¡ j = numero de bloque de memoria principal
¡ m = numero de líneas de la cache

Ing. Juan de Dios Benitez


28

— En este caso la lógica de control de la cache


interpreta una dirección de memoria como tres
campos:
¡ Etiqueta (TAG)
¡ Conjunto (SET)
¡ Palabra (WORD)

Ing. Juan de Dios Benitez


29

— Con la correspondencia totalmente asociativa, la


etiqueta en una dirección es bastante larga y debe
compararse con la etiqueta de cada línea de la cache.
— Con la correspondencia asociativa por conjuntos de
k vías, la etiqueta de una dirección de memoria es
mucho mas corta y se compara solo con las k
etiquetas de un mismo conjunto.

Ing. Juan de Dios Benitez


30

— Dirección = (s + w) bits
— Unidades direccionables = 2s+w words o bytes
— Tamaño bloque = tamaño línea = 2w words o bytes
— Cantidad de bloques en memoria principal = 2d
— Cantidad de líneas en conjunto = k
— Cantidad de conjuntos = v = 2d
— Cantidad de líneas en cache = kv = k * 2d
— Tamaño del tag = (s – d) bits

Ing. Juan de Dios Benitez


31

Ing. Juan de Dios Benitez


ALGORITMOS DE SUSTITUCION
32

— Una vez que se ha llenado la cache y quiere ingresar


un nuevo dato:
¡ Correspondencia directa
÷ NO HAY OPCIONES
÷ CADA BLOQUE CORRESPONDE A UNA LINEA
÷ SE DEBE REEMPLAZAR ESA LINEA

Ing. Juan de Dios Benitez


33

— Correspondencia Asociativa y Asociativa por


conjuntos
¡ Se requieren algoritmos de sustitución.
¡ Para conseguir buenas velocidades son implementados en
hardware
¡ Los mas comunes son LRU (least-recently used) utilizado
menos resiente. Es uno de los mas efectivos. Se sustituye el
bloque que se ha mantenido mas tiempo sin ser referenciado.
÷ En la correspondencia asociativa por conjuntos de 2 vías, se añade
un bit de USO, el cual se pone a 1 cuando ese bloque es
referenciado y pone a 0 el bit del otro bloque, cuando haya que
reemplazar se reemplazará el que tiene el bit de USO = 0 ya que
fue el que no se ha usado anteriormente.

Ing. Juan de Dios Benitez


34

— FIFO (First In First Out):


¡ Se sustituye el bloque del conjunto que ha estado mas tiempo
en la cache. Puede implementarse de manera simple utilizando
el algoritmo de round-robin o buffer circular
— LFU (Least Frecuently Used) utilizado menos
frecuente:
¡ Se sustituye el bloque que ha sido referenciado con menos
frecuencia. Se podría implementar con un contador en cada
línea
— Random:
¡ Se reemplaza una línea tomada al azar

Ing. Juan de Dios Benitez


Política de Escritura
35

— NO SE DEBE SOBRE ESCRIBIR UN BLOQUE DE


LA CACHE A MENOS QUE ESTE ACTUALIZADO
EN LA MEMORIA PRINCIPAL

— Posibles conflictos
¡ En sistemas con múltiples CPUs, estos pueden tener caches
individuales
¡ E/S puede acceder a memoria directamente

Ing. Juan de Dios Benitez


POLITICA DE ESCRITURA INMEDIATA
36

— Todas las escrituras se hacen en memoria y cache


— Múltiples CPUs pueden monitorizar el tráfico de
memoria principal para actualizar cache local
— Mucho tráfico!
— Enlentece escrituras

Ing. Juan de Dios Benitez


POST ESCRITURA
37

— Actualización se hace inicialmente solo en el cache


— Set de “bit de actualización” cuando se hace una escritura
— Cuando se reemplaza el bloque, se escribe en memoria
principal solo si el “bit de actualización” está seteado

— Problemas
¡ Sincronismo con otros caches
¡ E/S debe acceder a memoria principal usando el cache
÷ Cuello de botella potencial
— Experiencia
¡ 15% de referencias a memoria son escrituras

Ing. Juan de Dios Benitez


38

— En sistemas donde existen varios dispositivos con


chaces individuales y una memoria principal
compartida, si se modifican los datos de una cache,
se invalidan no solamente la palabra de la memoria
principal, sino también la que tienen cargadas las
demás caches. Un sistema que evita este
inconveniente se dice que “ Mantiene la
coherencia de cache”

Ing. Juan de Dios Benitez


39

— Aproximaciones a la coherencia de cache:

¡ Vigilancia del bus con escritura inmediata


÷ Cada controlador cache monitoriza el bus para detectar
operaciones de escritura por parte de otros controladores
¡ Transparencia de hardware
÷ Se utiliza un hardware adicional para garantizar que todas las
actualizaciones de memoria principal, vía cache, quedan reflejadas
en las demás caches.
¡ Memoria excluida de cache.
÷ Solo una porción de memoria principal se comparte con otras
cache, y esta se diseña como no transferible a cache

Ing. Juan de Dios Benitez


TAMAÑO DE LINEA
40

— Por el principio de localidad cuando se recupera o se


ubica en cache un bloque de datos, no solo se ubica
la palabra deseada sino también las palabras
cercanas. A medida que aumenta el tamaño del
bloque:
¡ cada palabra adicional esta mas lejos de la requerida y por
tanto es mas improbable que sea necesaria a corto plazo.
¡ Bloques mas grandes reducen el numero de bloques que
pueden entrar en la cache

÷ La relación entre tamaño de bloque y tasa de aciertos es compleja,


dependiendo de las características de localidad de cada programa,
no habiéndose encontrado un valor optimo definitivo.

Ing. Juan de Dios Benitez


NUMERO DE CACHES
41

— Cachés multinivel
¡ Inicialmente se utilizaba una sola cache off-chip
¡ Con el avance de la microelectrónica se reemplazo por una on-
chip (cache L1)
¡ Se planteo la necesidad de seguir utilizando una memoria
cache off-chip (L2)para adecuar la velocidad del bus interno
con el externo del microprocesador.
¡ No se suele utilizar el bus general para conectar uP con L2
¡ Hoy en día la cache L2 se suele ubicar on-chip
¡ Con la gran mejora de la microelectrónica y la disponibilidad
de superficie en la pastilla del uP, los uP modernos incorporan
un tercer nivel de cache L3 on-chip el cual se conecta al
motherboard a través de un bus externo

Ing. Juan de Dios Benitez


Cache Unificada o Separada
42

— Cuando aparecieron las caches on-chip se planteo la


idea de separar la memoria cache de datos de la
memoria cache de instrucciones.
— Hoy en día es la distribución que se utiliza en los uP

Ing. Juan de Dios Benitez


43

— Unificadas tienen una sola memoria tanto para


instrucciones como para datos
— Las Separadas tienen una memoria para cada uno,
instrucciones y datos
— La ventaja de las caches separadas es el pipeline que
permite que mientras se lee una instrucción se este
leyendo un dato.

Ing. Juan de Dios Benitez


44

Ing. Juan de Dios Benitez


45

Ing. Juan de Dios Benitez


MEMORIA EXTERNA
46

Ing. Juan de Dios Benitez


47

— La memoria externa, como su palabra lo indica es


aquella memoria que se encuentra fuera de la placa
madre.
— La principal fuente de memoria externa son los
discos Magnéticos o Discos Rígidos

Ing. Juan de Dios Benitez


48

— Los discos magnéticos están construidos con n plato


circular de material no magnético, llamado sustrato,
cubierto por un material magnetizable.
¡ Los sustratos son de aluminio, aleación de aluminio o
actualmente son sustratos de cristal

Ing. Juan de Dios Benitez


49

— Los datos son gravados dentro del disco magnético


por un cabezal o cabeza.
— Los datos se van a organizar en
¡ Pistas : Anillos concéntricos, cada pista tiene el ancho del
tamaño de la cabeza
¡ Sectores: Cada Pista esta dividida en sectores

Ing. Juan de Dios Benitez


50

Ing. Juan de Dios Benitez


51

Ing. Juan de Dios Benitez


52

— Velocidad de búsqueda: es el tiempo que tarda en


posicionarse el cabezal en la pista.
— Una ves posicionado sobre la pista tiene que esperar
hasta que llegue al sector que posee el dato, ese
tiempo se llama Retardo Rotacional
— La suma de la velocidad de búsqueda y el retardo
rotacional es el tiempo de acceso del disco

Ing. Juan de Dios Benitez


RAID
53

— CONJUNTO REDUNDANTE DE DISCOS


INDEPENDIENTES
— Consta de 6 niveles 0 - 5
— Es un conjunto de unidades físicas de discos, vistas
por el SO como una única unidad lógica
— Los datos se distribuyen a través de las unidades
físicas del conjunto
— La capacidad de los discos redundantes se usa para
almacenar información e paridad que garantice la
recuperación de los datos en caso de fallo de disco
Ing. Juan de Dios Benitez
RAID O
54

— No se lo suele considerar como RAID ya que no


brinda redundancia para mejorar la seguridad.
— Se lo usa en computadoras donde las prestaciones y
la capacidad son la importancia principal
— Los datos de usuario y del sistema, están distribuidos
a lo largo de todos los discos del conjunto.
— Es muy probable que 2 peticiones se encuentren en
discos separados, lo que permitirá que se acceda al
mismo tiempo a las 2 peticiones acortando el tiempo
de espera

Ing. Juan de Dios Benitez


55

Ing. Juan de Dios Benitez


RAID 1
56

— Sistema de almacenaje en ESPEJO

Ing. Juan de Dios Benitez


RAID 2
57

— El mayor inconveniente de RAID 1 es el coto, ya que


se necesita exactamente el doble de capacidad física
— RAID 2 utiliza la técnica de escribir una poción de la
palabra en cada disco y utilizar un código de
corrección de errores para recuperar la parte dañada
si es que la hay
— Se utiliza códigos de hamming que permiten corregir
errores de 1 bit y encontrar errores de 2 bits
— El numero de discos de códigos necesarios es
proporcional al logaritmo del numero de discos de
datos

Ing. Juan de Dios Benitez


58

Ing. Juan de Dios Benitez


RAID 3
59

— RAID 3 implementa la misma metodología que RAID


2 del almacenamiento de los datos en distintos
discos de a 1 byte o palabra por disco
— Utiliza un solo disco de comprobación de errores con
un calculo de paridad
— El calculo de paridad es fácilmente implementable
en hardware a través de una XOR

Ing. Juan de Dios Benitez


60

Ing. Juan de Dios Benitez


RAID 4
61

— Utiliza la misma arquitectura que RAID 0


— La salvedad es que necesita las demás “tiras” para
crear el bit de paridad
— Puede ser considerado como un RAID 0 con paridad

Ing. Juan de Dios Benitez


62

— Tiene una alta performance en lectura ya que lee en


forma paralela todos los discos físicos
— Pero una muy pobre performance de escritura, ya
que para poder escribir en una tira, necesita leer
todas las tiras que componen al bit de paridad para
poder generar el nuevo bit de paridad
— Cada operación de escritura actualizara el disco de
paridad, lo que se convierte en un cuello de botella

Ing. Juan de Dios Benitez


RAID 5
63

— El RAID 5 es muy similar al RAID 4


— No tiene disco de Paridad
— Las tiras de paridad se distribuyen a lo largo de los
discos de datos en diferentes tiras

Ing. Juan de Dios Benitez


64

— Esto evita el cuello de botella que reside en el disco


de paridad del RAID 4

Ing. Juan de Dios Benitez


RAID 6
65

— Realiza 2 cálculos de paridad distintos


— Por lo tanto si necesitamos de N discos para datos,
necesitaremos N+2 discos en total
— El primer algoritmo de paridad utiliza la XOR como
en los RAID anteriores
— El segundo algoritmo, es un algoritmo de
comprobación de datos independiente.
— Esto hace posible recuperar los datos incluso si 2
discos que contengan datos fallan

Ing. Juan de Dios Benitez


66

— Deberían fallar por lo menos 3 discos dentro del


MTTR (Tiempo medio de reparación) para que falle
el RAID 6

Ing. Juan de Dios Benitez


67

— La desventaja es que cada escritura en disco


necesitará actualizar 2 bloques de paridad

Ing. Juan de Dios Benitez


OTROS MEDIOS DE MEMORIA EXTERNA
68

— Discos ópticos
¡ CD-R W(700MB)
¡ DVD-R W( 4,7GB)
¡ DVD-DL (8,5GB)
¡ BR-Disc ( 25GB)
¡ BR-DL (50GB )

— Cintas Magnéticas
¡ Son cintas de poliéster recubiertas con material magnetizable
¡ Están divididas en pistas longitudinales y sectores.
¡ Las primeras cintas tenían 8 pistas de datos y 1 de paridad
¡ Hoy tienen de 18 a 36 pistas

Ing. Juan de Dios Benitez


69

Ing. Juan de Dios Benitez


70

— HP DDS-4 40 GB Data Cartridge (150m)

Ing. Juan de Dios Benitez


71

— Almacenaje por mucho tiempo


— Características del modelo DDS-4 40 GB
¡ Recording technologyDDS-4

¡ Capacity40 GB Compressed - 20 GB Native

¡ Supported Media formatDDS/DAT

¡ Archival life 30 years

¡ Length 150m

¡ Tape width 4mm

¡ Tape thickness 5.6 +/– 0.3

¡ Bit density122 kbits/inch

Ing. Juan de Dios Benitez


INTRODUCCION AL SO
8.1 /72OPERATING SYSTEM OVERVIEW 267

Application programs
Application
programming interface
Application Libraries/utilities Software
binary interface
Operating system
Instruction set
architecture
Execution hardware

Memory
System interconnect translation Hardware
(bus)

I/O devices
Main
and
memory
networking

Figure 8.1 Computer Hardware and Software Structure


Ing. Juan de Dios Benitez
that is completely responsible for controlling the computer hardware would be
OBJETIVOS
73

— COMODIDAD
— EFICIENCIA

Ing. Juan de Dios Benitez


SERVICIOS DEL SO
74

— CREACION DE PROGRAMAS
— EJECUCION DE PROGRAMAS
— ACCESO A DISPOSITIVOS DE E/S
— ACCESO CONTROLADO A LOS FICHEROS
— ACCESO AL SISTEMA
— DETECCION DE ERRORES
— GESTION DE CUENTAS

Ing. Juan de Dios Benitez


TIPOS
75

— DE COLA
— INTERACTIVOS

— MONOPROGRAMACION
— MULTIPROGRAMACION

Ing. Juan de Dios Benitez


MONOPROGRAMACION
76

R 8 / OPERATING SYSTEM SUPPORT

Program A Run Wait Run Wait

Time
(a) Uniprogramming

Program A Run Wait Run Wait

Program
Ing. B Benitez
Juan de Dios Wait Run Wait Run Wait
274 CHAPTER 8 / OPERATING SYSTEM SUPPORT

MULTIPROGRAMACION
Program A Run Wait Run Wait

Time
(a) Uniprogramming
77

Program A Run Wait Run Wait

Program B Wait Run Wait Run Wait

Run Run Run Run


Combined Wait Wait
A B A B
Time
(b) Multiprogramming with two programs

Program A Run Wait Run Wait

Program B Wait Run Wait Run Wait

Program C Wait Run Wait Run Wait

Run Run Run Run Run Run


Combined Wait Wait
A B C A B C
Time
(c) Multiprogramming with three programs
Figure 8.5 Multiprogramming Example

Ing. Juan de Dios Benitez


time executing, until it reaches an I/O instruction. It must then wait until that I/O
PROCESO
78

— UN PROGRAMA EN EJECUCION
— ENTIDAD A LA QUE SE LE ASIGNA PROCESADOR

Ing. Juan de Dios Benitez


PLANIFICACION
79

— A LARGO PLAZO
— A MEDIO PLAZO
— A CORTO PLAZO

Ing. Juan de Dios Benitez


A LARGO PLAZO
80

— El planificador determina que programas se admiten


para ser procesados por el sistema.
— De esta forma se controla el grado de
multiprogramación.
— Una vez admitido, el programa de usuario pasa a ser
un proceso y sale dela cola de largo plazo para ir a la
de corto plazo

Ing. Juan de Dios Benitez


The short-term scheduler, also known as the dispatcher, executes frequently and
makes the fine-grained decision of which job to execute next.
A CORTO PLAZO
PROCESS STATES To understand the operation of the short-term scheduler, we
need to consider the concept of a process state. During the lifetime of a process,
its status will change a number of times. Its81status at any point in time is referred to
as a state. The term state is used because it connotes that certain information exists
— Estados
that de los
defines the status procesos
at that point. At minimum, there are five defined states for a
process (Figure 8.7):

Dispatch
Admit Release
New Ready Running Exit
Timeout

Event
occurs Event
wait

Blocked

Figure 8.7 Five-State Process Model

Ing. Juan de Dios Benitez


a blank process control block and places the associated process in the new state.
After the system has properly filled in the process control block, the process is
transferred to the ready state.

A CORTO PLAZO
SCHEDULING TECHNIQUES To understand how the OS manages the scheduling of the
various jobs in memory, let us begin by considering the simple example in Figure 8.9.
The figure shows how main memory is partitioned at a given point in time. The
kernel of the OS is, of course, always resident. In addition, there are a number of
active processes, including A and B, each of which is allocated a portion of memory.
82

Operating system Operating system Operating system


In
control

Service handler Service handler Service handler


Scheduler Scheduler Scheduler
Interrupt handler Interrupt handler Interrupt handler

A A A
"Running" "Waiting" "Waiting"

In
control

B B B
"Ready" "Ready" "Running"

In
control

Other partitions Other partitions Other partitions

(a) (b) (c)

Figure 8.9 Scheduling Example

Ing. Juan de Dios Benitez


A CORTO PLAZO
83

— Para realizar esta tarea el SO utiliza un número de


COLAS, que no es mas que una lista de espera de
procesos que necesitan recursos del procesador.

Ing. Juan de Dios Benitez


queue. The processor alternates between executing OS instructions and executing
user processes. While the OS is in control, it decides which process in the short-term
queue should be executed next. When the OS has finished its immediate tasks, it
A CORTO PLAZO
turns the processor over to the chosen process.
As was mentioned earlier, a process being executed may be suspended for
a variety of reasons. If it is suspended because the process requests I/O, then it
84

Long-term Short-term
queue queue
Admit End
Processor

I/O 1
Occurs
I/O 1 Queue

I/O 2
Occurs
I/O 2 Queue

I/O n
Occurs
I/O n Queue

Figure 8.11 Queuing Diagram Representation of Processor Scheduling

Ing. Juan de Dios Benitez


GESTION DE LA MEMORIA
284 CHAPTER 8 / OPERATING SYSTEM SUPPORT
85
Main
Disk storage memory

— SWAPPING (intercambio) Operating


system

— Cola a Mediano Plazo Long-term Completed jobs


queue and user sessions

(a) Simple job scheduling

Disk storage

Main
memory
Intermediate
queue Operating
system

Completed jobs
Long-term and user sessions
queue

(b) Swapping
Ing. Juan de Dios Benitez
Figure 8.12 The Use of Swapping
PARTICIONES
86

— TAMAÑO FIJO DEL MISMO TAMAÑO


— DE TAMAÑO DISTINTO

Ing. Juan de Dios Benitez


PARTICIONES
87
8.3 / MEMORY MANAGEMENT 285

Operating system Operating system


8M 8M

2M
8M 4M

6M
8M

8M

8M

8M

8M

12M
8M

8M

16M

8M

(a) Equal-size partitions (b) Unequal-size partitions

Figure 8.13 Example of Fixed Partitioning of a 64-Mbyte Memory

Ing. Juan de Dios Benitez partition. For example, a process that requires 3M bytes of memory would be placed
in the 4M partition of Figure 8.13b, wasting 1M that could be used by another process.
A more efficient approach is to use variable-size partitions. When a process is
TAMAÑO VARIABLE
88

— A UN PROCESO SE LE ASIGNA EXACTAMENTE


EL TAMAÑO DE MEMORIA QUE NECESITA Y NO
MAS.

Ing. Juan de Dios Benitez


swapped in. Furthermore, if compaction is used, a process may be shifted while in
main memory. A process in memory consists of instructions plus data. The instruc-
tions will contain addresses for memory locations of two types:
• Addresses of data items 89
• Addresses of instructions, used for branching instructions
Operating Operating Operating Operating
system 8M system system system

Process 1 20M Process 1 20M Process 1 20M

56M Process 2 14M Process 2 14M

36M
Process 3 18M
22M

4M

(a) (b) (c) (d)

Operating Operating Operating Operating


Ing. Juan de Dios Benitez
system system system system
Process 3 18M
22M

4M

(a) (b) (c) (d)


90

Operating Operating Operating Operating


system system system system

Process 2 14M
Process 1 20M Process 1 20M 20M

6M
Process 4 8M Process 4 8M Process 4 8M
14M
6M 6M 6M

Process 3 18M Process 3 18M Process 3 18M Process 3 18M

4M 4M 4M 4M

(e) (f) (g) (h)

Figure 8.14 The Effect of Dynamic Partitioning

Ing. Juan de Dios Benitez


PROBLEMAS
91

— Quedan espacios libres en la memoria


— Esto se puede solucionar utilizando una técnica de
compactación
— Se utilizarán direcciones Lógicas y Físicas a los
procesos.
— La dirección física del comienzo de un proceso en
memoria se llama dirección BASE

Ing. Juan de Dios Benitez


PAGINACION
92

— Dividir la memoria en partes fijas o variables, es


ineficiente.
— Un proceso similar es el de paginación.
— Consiste en:
¡ Dividir la memoria en partes de tamaño fijo pero muy
pequeñas llamadas MARCOS DE PAGINAS
¡ Dividir el proceso en porciones del mismo tamaño que los
marcos llamadas PAGINAS
¡ Luego los trozos de programa se podrán alojar dentro de los
MARCOS. Entonces el espacio de memoria desperdiciado por
un proceso es, como mucho, una fracción de la ultima pagina

Ing. Juan de Dios Benitez


chunks of some size. Then the chunks of a program, known as pages, could be
assigned to available chunks of memory, known as frames, or page frames. At most,
then, the wasted space in memory for that process is a fraction of the last page.
PAGINACION
Figure 8.15 shows an example of the use of pages and frames. At a given point
in time, some of the frames in memory are in use and some are free. The list of free
frames is maintained by the OS. Process A,93 stored on disk, consists of four pages.
Main Main
memory memory

Page 1
Process A 13 Process A 13 of A
Page 0 Page 0
Page 1 Page 1 Page 2
14 14 of A
Page 2 Page 2
Page 3 Page 3
Page 3
15 15 of A

In In
16 use 16 use
Free frame list Free frame list
13 In 20 In
17 use 17 use
14
15 Process A
18 page table Page 0
18 18 of A
20
18
In 13 In
19 use 19 use
14
15
20 20

(a) Before (b) After

Figure 8.15 Allocation of Free Frames


Ing. Juan de Dios Benitez
PAGINACION
94

— Que pasa si no hay la cantidad de marcos contiguos


libres?

Ing. Juan de Dios Benitez


PAGINACION
95

— TABLAS DE PAGINA

Ing. Juan de Dios Benitez


MEMORIA VIRTUAL
96

— Paginación Por DEMANDA

— Cada página de un proceso se introduce a memoria


principal solo cuando se la necesita

— Utilizando el principio de localidad.

— Si cuando un proceso necesita de una pagina que no esta


cargada en memoria ppal, se generará un “FALLO DE
PAGINA” y se hará la solicitud de la misma

Ing. Juan de Dios Benitez


shown in Figure 8.16.
This approach solves the problems raised earlier. Main memory is divided
into many small equal-size frames. Each process is divided into frame-size pages:
ESTRUCTURA DE LA TABLA DE PAGINAS
smaller processes require fewer pages, larger processes require more. When a
process is brought in, its pages are loaded into available frames, and a page table
is set up.
97
Main
memory

Page 1
13
of A

Page Relative address Frame Relative address Page 2


number within page number within frame 14
of A

Logical Physical Page 3


address 1 30 address 13 30 15
of A

16

18
17
13

14 Page 0
18
of A
15

Process A
page table

Ing. Juan de Dios BenitezFigure 8.16 Logical and Physical Addresses


PAGINACION PENTIUM II
988.5 / ARM MEMORY MANAGEMENT 299

Logical address
Segment Offset
Linear address
! Dir Page Offset
Physical
! address

Segment
table

Page Page
directory table
Main memory
Segmentation Paging

Figure 8.21 Pentium Memory Address Translation Mechanisms


Ing. Juan de Dios Benitez
ejemplo
99

— Direcciones virtuales de memoria de 8 bits


— Direcciones físicas de memoria de 7 bits
— Marcos de memoria física = 4
— Longitud de cada marco de 32 palabras
— Supongamos que algunas paginas del proceso están
en memoria principal y otras no

Ing. Juan de Dios Benitez


100

Ing. Juan de Dios Benitez


101

— Los 8 bits de memoria virtual se van a dividir en


¡ 3 bits de pagina

¡ 5 bits de offset

Ing. Juan de Dios Benitez


102

— El sistema pide la dirección de memoria 1310 = 0D16


— Lo que nos dice que tenemos
¡ 000 bits de pagina

¡ 01101 bits de offset

— Ahora con el valor de los bits de pagina nos vamos a


la tabla de paginas

Ing. Juan de Dios Benitez


103

Ing. Juan de Dios Benitez


104

— La dirección física tiene solo 7 bits


— Por lo que por lo tanto tenemos “marco” 2 offset 13
— 0101101 = 2D16 = 7710
— Por lo que la palabra buscada se encuentra en la
posición de memoria 77 decimal de la memoria
principal!

Ing. Juan de Dios Benitez


Unidad IV:

Memoria interna y
externa

GRUPO N° 3
Características de los sistemas de memoria

GRUPO N° 3
Ubicación

La memoria interna La memoria externa corresponde a los


corresponde a la memoria dispositivos de almacenamiento
principal (RAM) y secundario, como discos duros, unidades
adicionalmente un nivel de ópticas, etc.
memoria cache o varios. El procesador tiene su propia
memoria local en forma de registros.

GRUPO N° 3
Capacidad de la memoria

Prefijos SI
Esto hace una referencia a la cantidad de
información que se puede almacenar.
La unidad utilizada es el byte (1 byte = 8
bits), y a la hora de indicar la capacidad,
se utilizan diferentes prefijos, que
representan múltiplos de bytes, estos
prefijos corresponden siempre a
potencias de 10.

Prefijos IEC
En informática, la capacidad se indica en
múltiplos que sean potencias de 2, se
utilizan prefijos definidos por la
International Electrotechnical Comission
(IEC). Aquí los nombres se han creado
añadiendo el termino binario a los
prefijos SI.

GRUPO N° 3
Capacidad de la memoria

Prefijos SI Prefijos IEC


La industria utiliza mayoritariamente las En cambio, cuando conectamos este
unidades SI. Por ejemplo, si nos fijamos disco a un computador y mostramos las
en las características de un disco duro
que se comercialice con 1 TB de propiedades del dispositivo, veremos que
capacidad, realmente la capacidad del en la mayoría de los sistemas operativos
disco será de 1.000 GB = 1.000.000 MB = se nos mostrará la capacidad en
1.000.000.000 KB = 1.000.000.000.000 unidades IEC; en este caso, 976.562.500
bytes.
KiB = 953.674 MiB = 931 GiB = 0,91 TiB.

GRUPO N° 3
Unidad de transferencia

Hay tres tipos


Palabra: unidad natural de Unidades direccionables: en Unidad de transferencia: para la
organización de memoria. algunos sistemas la unidad memoria principal es el número
Coincide con el número direccionable es la palabra, de bits que se leen o escriben en
de bits utilizados para igualmente muchos de ellos memoria a la vez y para la
representar números y
con la longitud de las permiten direccionar a nivel de memoria externa, los datos se
instrucciones. byte. transfieren en unidades mas
La relación entre la long A de grandes que la palabra
una dirección y el numero N de denominadas bloques.
unidades direccionables, es 2ª=N

GRUPO N° 3
Método de acceso
Acceso secuencial: se organiza en registros, el acceso se realiza con una secuencia
lineal especifica. Utiliza un mecanismo de lectura/escritura compartida que debe ir
moviéndose desde su posición actual a la deseada.
Acceso directo: tiene asociado un mecanismo de lectura/escritura. A diferencia
del secuencial, los registros tienen una dirección única, el acceso se lleva a cabo
de un acceso directo a alguna vecindad dada para luego hacer una búsqueda
secuencial. .
Acceso aleatorio: cada posición direccionable de memoria
tiene un único mecanismo de acceso cableado físicamente. El
tiempo para acceder a una posición es constante e
independiente de la secuencia de accesos previos, ósea que
cualquier posición puede ser seleccionada y direccionada
directamente.
Asociativa: compara ciertas posiciones de bits dentro de una palabra
buscando que coincidan con unos valores dados.

GRUPO N° 3
Prestaciones
Tiempo de acceso (latencia): para las RAM es tiempo que tarda en hacer una
operación de escritura/lectura. Para las otras memorias es lo que tarda en situar
el mecanismo de lectura/escritura en la posición deseada.
Tiempo de ciclo de memoria: consiste en el tiempo de acceso y algún tiempo más,
antes de que pueda iniciarse un segundo acceso a memoria. El tiempo de ciclo de
memoria depende de las características del bus del sistema y no del procesador.

Velocidad de transferencia: es la velocidad en la que se pueden transferir


los datos desde una unidad de memoria. Para las RAM coincide con el
inverso del tiempo de ciclo.

GRUPO N° 3
Soportes físicos

Memorias semiconductoras Memorias magneto-ópticas


Memorias magnéticas Memorias ópticas

GRUPO N° 3
Jerarquía de Memoria
En la fabricación de una memoria pueden surgir las siguientes 3
cuestiones:
• ¿Cuánta capacidad?
• ¿Cómo de rápida?
• ¿De qué coste?

Existe un compromiso entre las tres características, creando las


siguientes relaciones:
• A menor tiempo de acceso, mayor coste por bit
• A mayor capacidad, menor coste por bit
• A mayor capacidad, mayor tiempo de acceso

Todo esto creaba un dilema!

GRUPO N° 3
Jerarquía de Memoria
La solución fue una pirámide jerárquica:

Cuando vamos descendiendo por


la pirámide:

Velocidad y Coste de bits


• Disminuye el coste por bit.
• Aumenta la capacidad.
• Aumenta el tiempo de acceso.
Capacidad

• Disminuye la frecuencia de
acceso a la memoria por parte
del procesador.
Jerarquía de Memoria
Principio de localidad de las referencias
Los programas normalmente contienen un numero de bucles iterativos
y subrutinas, que generan referencias a datos o instrucciones que se
almacenan en la memoria cache. Esto genera una localidad espacial y
temporal de las referencias.
Localidad espacial: Cuando un programa accede a una instrucción o
dato, existe una elevada probabilidad de que instrucciones o datos
cercanos sean accedidos pronto.
Localidad temporal: Cuando un programa accede a una instrucción o un
dato, existe una elevada probabilidad de que esa misma instrucción o
dato vuelva a ser accedida pronto. Estas son mandadas al nivel 1, de
vez en cuando, estas agrupaciones tendrán que ser devueltas al nivel 2,
para dejar sitio a nuevas agrupaciones.
Jerarquía de Memoria

La memoria caché es una estructura de almacenamiento de acceso rápido y bajo


nivel que se encuentra entre la CPU y la memoria principal. Su objetivo es
almacenar copias de los datos e instrucciones más utilizados para reducir el
tiempo de acceso a la memoria principal. La memoria caché aprovecha la localidad
de las referencias para anticipar qué datos o instrucciones se necesitarán a
continuación y los almacena en la caché.
Memorias Semiconductoras

GRUPO N° 3
Memorias Semiconductoras

GRUPO N° 3
Memorias Semiconductoras Volátiles

SRAM DRAM

GRUPO N° 3
Memorias Semiconductoras Volátiles

Las DRAM funcionan Las SRAM son


mediante capacitores, la dispositivos digitales
presencia o ausencia de basados en los
carga le da a entender
como un 1 o 0. mismos elementos
Ya que los capacitores que se usan en el
tienen tendencia natural procesador. Los
a descargarse, es valores binarios se
necesario estar almacenan utilizando
refrescándolo configuraciones de
periódicamente para puertas lógicas
mantener los datos.
formando flip-flops.

GRUPO N° 3
Memorias Semiconductoras Volátiles

DDR: este termino hace referencia a Double Data


Ratio, este permite transferir datos tanto en el
flanco ascendente como descendente de la señal
reloj, pudiendo transferir 2 veces en un ciclo reloj.
La diferencia con las SDRAM es que estas
transferían datos una vez en un ciclo reloj.

GRUPO N° 3
Memorias Semiconductoras Volátiles

DDR SDRAM: Es una familia de memorias RAM que tiene una interfaz
sincrónica, estas tienen un encapsulamiento de tipo DIMM.
De las primeras tecnologías en implementar Dual Channel.

• Todas las memorias DDR cuentan con 184


terminales.
• Cuentan con una muesca en un lugar
estratégico del conector, para
que, al insertarlas,
no haya riesgo de colocarlas de manera
incorrecta.
• La medida del DDR mide 13.3 cm. de largo X
3.1 cm. de alto y 1 mm. de espesor.

GRUPO N° 3
Memorias Semiconductoras Volátiles

¿Dual Channel?
¿Qué significa que una RAM trabaja a
varios canales?
• Single Channel
• Dual Channel
• Triple Channel
• Quad Channel

GRUPO N° 3
Memorias Semiconductoras Volátiles

DDR 2: • Todas las memorias DDR-2 cuentan con 240


terminales.
• Cuentan con una muesca en un lugar estratégico del
conector, para que, al insertarlas, no haya riesgo de
colocarlas de manera incorrecta.
• Como sus antecesores, pueden estar o no ocupadas
todas sus ranuras para memoria.
• Tiene un voltaje de alimentación de 1.8 Volts.

GRUPO N° 3
Memorias Semiconductoras Volátiles

DDR 3: •Con mayor velocidad de transferencia


de los datos que las otras DDR2, pero
también un menor consumo de energía.
El número final de la memoria nos da
una idea de la rapidez, por ejemplo, la
DDR3-1466 podría transferir 1.466.000
datos por segundo. (multiplicando por
1.000 el número del final se saca la
velocidad en datos por segundo)

GRUPO N° 3
Memorias Semiconductoras Volátiles

DDR 4: Proviene de ("Dual Data Rate 4"), lo que traducido


significa transmisión doble de datos cuarta
generación: se trata del estándar desarrollado por la
firma Samsung para el uso con futuras tecnologías.
Al igual que sus antecesoras, se basa en el uso de
tecnología tipo DRAM (RAM de celdas construidas a
base de capacitores), las cuales tienen los chips de
memoria en ambos lados de la tarjeta, y 240
terminales, las cuales están especializadas para las
ranuras de la placa madre de nueva generación

GRUPO N° 3
Memorias Semiconductoras Volátiles
Los módulos DDR5 mantienen los 288 pines (conectores)
de la generación anterior.

DDR 5: Los chips están fabricados con litografía de 10 nanómetros


(nm), y están formados por 4 bancos de memoria que a su
vez se pueden agrupar de 8 en 8.

Dos de las mejoras que permiten aumentar el rendimiento


están en la ráfaga de datos y en los canales de memoria.

DDR5 dobla el tamaño de la ráfaga de datos de 8 a 16.


Además, ahora hay dos canales independientes de 40 bits
por cada módulo DIMM de memoria, mientras que DDR4
solo tenía un canal, de 72 bits.

Mientras que la memoria DDR4 alcanza velocidades de


hasta 3.200 MT/sg, la memoria DDR5 parte de una velocidad
de 4.800 MT/sg, lo que significa que es 1,87 veces más
rápida.
GRUPO N° 3
Memorias Semiconductoras Volátiles
•MT/s (Megatransfers por segundo): Esta unidad de medida se
utiliza para indicar la velocidad efectiva de transferencia de
datos entre la memoria y el procesador. Indica la cantidad de

DDR 5: datos que se pueden transferir en un segundo. Un MT/s


representa una transferencia de datos.

GRUPO N° 3
Memorias Semiconductoras No Volátiles

Memoria flash

GRUPO N° 3
Memorias Semiconductoras No Volátiles

Quemador:

GRUPO N° 3
¡Gracias!
GRUPO N° 3
MLC
sistemas de
memoria
de multinivel
 Son una tecnología de almacenamiento que utiliza múltiples niveles de celdas de memoria para
aumentar la capacidad de almacenamiento y, a menudo, reducir el costo por bit en comparación
con las memorias tradicionales de un solo nivel.
 celda de un solo nivel (SLC)
 celda de doble nivel (DLC)
 celdas de triple nivel (TLC)
 celdas de cuatro niveles (QLC)
ventajas desventajas

Es su menor coste por unidad de A medida que aumenta el recuento de


almacenamiento gracias a la mayor densidad 'niveles', disminuye el rendimiento . Esto se
de datos. debe a que se requiere más potencia de
procesamiento para leer más información y
también más precisión porque cuantos más
bits de información hay para leer, menor es
el margen de error.

Otros inconvenientes de las SSD MLC, en


comparación con las SSD SLC
 Cada celda de memoria tiene un cierto número de posibles
"estados" que corresponden a la presencia o ausencia de
electrones en la trampa de carga del microchip. Cada estado está
representado por unos y ceros según el nivel de tensión en la
trampa. Una SLC tiene dos posibles estados de tensión (0 y 1) para
almacenar un bit por celda.

Funcionamient
o
 Un disco magnético es un plato circular construido con un material
no magnético, llamado sustrato, cubierto por un material
magnetizable.

DISCOS
MAGNÉTICOS
Los
mecanismos
de lectura y
escritura
magnética
 En la escritura, un flujo eléctrico a través de la cabeza de escritura
crea un campo magnético que graba patrones magnéticos en la
superficie del disco, con patrones diferentes para corrientes
positivas y negativas. La cabeza de lectura también tiene una
forma especial y está hecha de un material fácilmente
magnetizable. Una corriente eléctrica en la cabeza de lectura
induce un campo magnético a lo largo de un agujero en su
estructura, magnetizando una pequeña área del medio de
grabación. Cambiar la dirección de la corriente cambia la dirección
de magnetización en el medio de grabación.
 La lectura se basa en que un campo magnético en movimiento
respecto a una bobina induce una corriente eléctrica en la bobina.
Cuando la superficie del disco pasa bajo la cabeza de lectura, se
genera una corriente de la misma polaridad que la que se utilizó en
la grabación magnética. En dispositivos antiguos, la misma cabeza
se utiliza para ambas operaciones.
ORGANIZACI
ÓN Y
FORMATO DE
LOS DATOS
CARACTERÍST
ICAS FÍSICAS
 Un SSD es un dispositivo de almacenamiento de datos que utiliza
memoria flash NAND para guardar información de manera no
volátil. A diferencia de los discos duros tradicionales (HDD) que
utilizan discos magnéticos giratorios, los SSD no tienen partes
móviles, lo que los hace más rápidos, confiables y eficientes en
términos de energía.
Solid-State
Drive, unidad
de estado
sólido
Memoria Controlad Algoritmo
Flash or s de
Funcionamient
o de un SSD: NAND administra
ción de
datos
Velocidad Los SSD son significativamente más
rápidos que los HDD en términos de
lectura y escritura de datos. Esto se
traduce en un inicio más rápido del
sistema operativo, tiempos de carga
de aplicaciones más cortos y una
respuesta más rápida en general.
Durabilidad Debido a la falta de partes móviles,
Prestaciones los SSD son menos propensos a
de un SSD: daños por golpes o vibraciones.
Además, las celdas de memoria flash
tienen una vida útil limitada, pero los
algoritmos de administración de
datos extienden la durabilidad de un
SSD.
Consumo de energía Los SSD consumen menos energía
que los HDD, lo que resulta en una
vida útil de la batería más larga en
dispositivos portátiles y una menor
generación de calor en sistemas de
escritorio.
Tamaño y peso Los SSD son más compactos y
livianos que los HDD, lo que los hace
ideales para dispositivos portátiles y
ultrabooks donde el espacio es
limitado.
Ruido Los SSD son completamente
silenciosos, ya que no tienen partes
móviles que generen ruido, a
diferencia de los discos duros
tradicionales.
RAM

La memoria de acceso aleatorio y es el componente de almacenamiento temporal (memoria a corto


plazo) de un equipo. La RAM contiene todos los datos que está utilizando actualmente, desde una
página web que está viendo hasta el movimiento del ratón de un lado de la pantalla al otro.

2023
CARACTERÍSTICAS

Debe:
• Ser volátil.
• tener acceso aleatorio.
• Ser de lectura y escritura.

Para determinar sus caracteristicas se tiene en cuenta:


Mhz: Los Mhz nos indican que velocidad de escritura y lectura tienen las memorias RAM,
Latencias: Al contrario de los Mhz, las latencias cuanto menor sea el valor mejor es la memoria RAM.
Existen varios tipos de latencias en las memorias, sin embargo, las más importantes son:
- CAS: indica el tiempo que tarda la memoria en colocarse sobre una columna o celda.
- RAS: indica el tiempo que tarda la memoria en colocarse sobre una fila.
- ACTIVE: indica el tiempo que tarda la memoria en activar un tablero.
- PRECHARGE: indica el tiempo que tarda la memoria en desactivar un tablero.
Capacidad: La capacidad de una memoria que tiene para almacenar información mandada por el
procesado esta dada en Megabyte y en la actualidad Gigabyte.

2023
FORMAS TRADICIONALES DE RAM

LAS FORMAS MAS TRADICIONALES DE RAM SON:

• DRAM

• SRAM

2023
DRAM

• Una RAM dinámica (DRAM) está hecha con celdas que almacenan los datos como cargas eléctricas
en condensadores.
• Ya que los condensadores tienen una tendencia natural a descargarse, las RAM dinámicas
requieren refrescos periódicos para mantener memorizados los datos.

2023
EVOLUCIÓN MEMORIAS DRAM
• FPM-RAM (Fast Page Mode ): Esta memoria tenía tiempos de acceso de 70 o 60 ns y fueron muy
populares en los Intel 486 o clones, así como en los primeros Pentium y similars.

• EDO RAM: la Data Output Dynamic fue lanzada en 1994, bajaba los tiempos de acceso a 40 o 30
ns. Una notable mejora con respecto a la FPM.

• BEDO RAM: la Burst Extended EDO fue presentada en 1997, esta memoria usaba generadores
internos de direcciones y accedía a más de una posición de memoria en cada ciclo. Eso mejoraba el
rendimiento en un 50% respecto a la EDO.

• SDRAM: La SDRAM es una parte fundamental de la arquitectura de memoria de la mayoría de las


computadoras modernas. Su capacidad para trabajar de manera sincronizada con el reloj del
sistema la hace especialmente útil en aplicaciones que requieren un acceso rápido y predecible a
los datos almacenados en memoria.

• PC100: o SDRAM de 100 MHz. Memoria SDRAM capaz de funcionar a esos 100 MHz, que utilizan
los AMD K6-2, Pentium II a 350 MHz y computadores más modernos.

2023
• PC133: o SDRAM de 133 MHz. La más moderna.
TECNOLOGÍA MEMORIAS DRAM
• SDR SDRAM: Memoria síncrona, con tiempos de acceso de entre 25 y 10 ns y que
se presentan en módulos DIMM de 168 contactos. Los tipos disponibles son:
• PC100: SDR SDRAM, funciona a un máx. de 100 MHz.
• PC133: SDR SDRAM, funciona a un máx. de 133 MHz.

2023
TECNOLOGÍA MEMORIAS DRAM

• DDR: fue un avance de la SDR SDRAM que aparecería en 2000. Opera el doble de
rápido que la SDR SDRAM.
• DDR2: la segunda versión mantiene el mismo número de operaciones de acceso por
cada ciclo de reloj, pero puede funcionar a velocidades más rápidas.
• DDR3: la tercera revisión tiene mejoras en cuanto a la velocidad (800 Mhz), la
capacidad, y el consumo.
• DDR4: alcanza velocidades mayores de 1600 Mhz, también se ha mejorado la
capacidad soportada, y se ha reducido el voltaje (consumo).
• DDR5: ya se habla mucho de ella, aunque todavía se está usando la DDR4 en la
mayoría de sistemas. Este permite velocidades mayores, mejores capacidades, mejor
fiabilidad, y también dos canales por cada módulo DIMM de forma simultánea para
aumentar el ancho de banda.

2023
SRAM

un RAM estática (SRAM) es un dispositivo digital,


basado en los mismos elementos que se usan en
el procesador. En una RAM estática, los valores
binarios se almacenan utilizando configuraciones
de puertas que forman biestables (flip-flops).

2023
MEMORIA CACHE

Una memoria caché, comúnmente conocida como


"cache" en inglés, es una forma de almacenamiento
de datos de alta velocidad y bajo nivel que se utiliza
para mejorar la eficiencia y el rendimiento de un
sistema de computación

2023
MEMORIA CACHE: ELEMENTOS DE DISEÑO

Tamaño de cache
Cuanto más grande es, mayor es el número
de puertas implicadas en direccionar la
caché. El resultado es que cachés grandes
tienden a ser ligeramente más lentas que
las pequeñas.
El tamaño de caché está también limitado
por las superficies disponibles de chip y de
tarjeta.

2023
MEMORIA CACHE: ELEMENTOS DE DISEÑO
FUNCIÓN DE CORRESPONDENCIA

• Ya que hay menos líneas de caché que bloques de memoria principal, se necesita un algoritmo
que haga corresponder bloques de memoria principal a líneas de caché.
• La elección de la función de correspondencia determina cómo se organiza la caché.
• Pueden utilizarse tres técnicas: directa, asociativa, y asociativa por conjuntos.

2023
MEMORIA CACHE: ELEMENTOS DE DISEÑO

Correspondencia directa
La técnica más sencilla, denominada
correspondencia directa, consiste en hacer
corresponder cada bloque de memoria
principal a solo una línea posible de caché.
i = j módulo m
donde:
• i = número de línea de caché.
• j = número de bloque de memoria
principal.
• m = número de líneas en la caché.

2023
MEMORIA CACHE: ELEMENTOS DE DISEÑO

Correspondencia asociativa
La correspondencia asociativa supera la
desventaja de la directa, permitiendo que
cada bloque de memoria principal pueda
cargarse en cualquier línea de la caché.

2023
MEMORIA CACHE: ELEMENTOS DE DISEÑO

Correspondencia asociativa por conjuntos


En este método, las líneas de la caché se
dividen en conjuntos, cada uno con un número
específico de líneas.

2023
MEMORIA CACHE: ELEMENTOS DE DISEÑO

ALGORITMOS DE SUSTITUCIÓN

LRU (Least-Recently Used): FIFO (First-In-First-Out) LFU (Least-Frequently Used)


Este algoritmo reemplaza el bloque Reemplaza el bloque que ha estado en es otro algoritmo que reemplaza el
que ha estado en la caché por más la caché durante más tiempo en el bloque que ha experimentado
tiempo sin haber sido accedido. Es conjunto. menos referencias en el conjunto.
especialmente efectivo en asociaciones Puede requerir el uso de
por conjuntos de dos vías. contadores asociados a cada línea.

2023
MEMORIA CACHE: ELEMENTOS DE DISEÑO

TAMAÑO DE LÍNEA

El tamaño de línea en la caché se refiere a la


longitud de una línea de caché, sin incluir la
etiqueta y los bits de control. Cada línea de la
caché contiene un número fijo de unidades
direccionables (bytes o palabras), además de una
etiqueta de unos cuantos bits

2023
MEMORIA CACHE: ELEMENTOS DE DISEÑO

TAMAÑO DE LÍNEA

Caché Multinivel: Caché Unificada frente a Cachés Separadas:


La caché multinivel es una organización en la que se En una caché unificada, se almacenan tanto datos como
utilizan múltiples niveles de caché, generalmente divididos instrucciones en la misma caché. Esto significa que un solo
en L1, L2 y, en algunos casos, L3. nivel de caché se utiliza para acceder tanto a datos como a
instrucciones.

2023
RAID
➢ Las mejoras en las prestaciones de memoria secundaria no han avanzado a la par que en
procesadores y en memoria principal.

➢ Esta situación hizo que el sistema de memoria de disco sea foco principal de optimización.

➢ Los diseñadores encuentran una solución, para mejorar el rendimiento usando varios de esos
componentes en paralelo.
RAID
➢ Con varios discos, las peticiones separadas de E/S se pueden gestionar en paralelo, siempre que
los datos requeridos residan en discos separados.

➢ Se puede ejecutar en paralelo una única petición de E/S si el bloque de datos al que se va a acceder
está distribuido a lo largo de varios discos.

➢ Los datos se pueden organizar en una amplia variedad de formas y se puede añadir redundancia
para mejorar la seguridad.

➢ Surgen los esquemas estandarizados para el diseño de bases de datos para discos múltiples,
conocidos como RAID (Redundant Array of Independent Disks, Conjunto redundante de discos
independientes).
Niveles
El esquema RAID tiene 6 niveles no jerárquicos que emplean métodos diferentes pero tienen
características comunes:

➢ El conjunto de unidades físicas de disco es vista por el sistema operativo como una única unidad
lógica.

➢ Los datos se distribuyen a través de las unidades físicas del conjunto de unidades.

➢ La capacidad de los discos redundantes se usa para almacenar información de paridad que
garantice la recuperación de los datos en caso de fallo de disco.

(Los detalles de las características segunda y tercera cambian según los distintos niveles RAID.
RAID 0 no soporta la tercera característica.)
Nivel 0 de RAID
➢ No es un verdadero miembro de la familia RAID, porque no incluye redundancia para mejorar las
prestaciones. Hay casos en los que la capacidad y un costo bajo es más importante que mejorar la seguridad.

➢ los datos son organizados en forma de tiras de datos a través de los discos disponibles, y pueden ser bloques
físicos, sectores o alguna otra unidad.
Nivel 0 de RAID
➢ En un conjunto de n discos, las primeras n tiras lógicas (una franja) se almacenan físicamente en la
primera tira de cada uno de los n discos, las segundas n tiras lógicas, se distribuyen en la segunda
tira de cada disco, etc.

➢ Si una única petición de E/S implica a varias tiras lógicas contiguas, entonces las n tiras de esta
petición se pueden gestionar en paralelo, reduciendo el tiempo de transferencia de E/S.

➢ El software de gestión de un conjunto proyecta el espacio del disco físico sobre el disco lógico.

➢ Para que las aplicaciones tengan una velocidad de transferencia alta, debe existir entre la memoria
del anfitrión y las unidades de disco individuales controladores de buses internos, buses de E/S del
anfitrión, adaptadores de E/S, y buses de memoria del anfitrión.
Nivel 1 de RAID
➢ En el nivel 1 la redundancia se logra con el recurso de duplicar todos los datos.

➢ Se hace una distribución de datos, como en el RAID 0 pero cada franja lógica se proyecta en dos
discos físicos separados.
Nivel 2 de RAID
➢ Los niveles 2 y 3 usan una técnica de acceso paralelo en la que todos los discos miembro participan en la
ejecución de cada petición de E/S.

➢ El giro de cada unidad individual está sincronizado de forma que cada cabeza de disco está en la misma
posición en cada disco en un instante dado.

➢ El número de discos redundantes es proporcional al logaritmo del número de discos de datos.

➢ Se usa el código Hamming, que permite corregir errores en un bit y detectar errores en dos bits.
Nivel 3 de RAID
➢ RAID 3 requiere solo un disco redundante, sin importar lo grande que sea el conjunto de discos.

➢ En el caso de un fallo en una unidad, se accede a la unidad de paridad y se reconstruyen los datos
desde el resto de los dispositivos.

➢ Los datos estarán disponibles en lo que se denomina modo reducido.

➢ Puesto que los datos se dividen en tiras muy pequeñas, RAID 3 puede conseguir velocidades de
transferencia de datos muy altas.
Nivel 4 de RAID
➢ Los niveles 4 al 6 de RAID usan una técnica de acceso independiente, cada disco opera independientemente,
de forma que peticiones de E/S separadas se atienden en paralelo.

➢ Son más adecuados para aplicaciones que requieren velocidades de petición de E/S altas, y son menos
adecuados para aplicaciones que requieren velocidades altas de transferencia de datos.

➢ Se calcula una tira de paridad bit a bit a partir de las correspondientes tiras de cada disco de datos, y los bits
de paridad se almacenan en la correspondiente tira del disco de paridad.
Nivel 5 de RAID
➢ La diferencia con RAID 4 es que RAID 5 distribuye las tiras de paridad a lo largo de todos los
discos.

➢ Para un conjunto de n discos, la tira de paridad está en diferentes discos para las primeras n tiras.
Nivel 6 de RAID
➢ Se hacen dos cálculos de paridad distintos, que se almacenan en bloques separados en distintos
discos. Por tanto, un conjunto RAID 6 cuyos datos requieran N discos consta de N - 2 discos.

➢ Uno de los cálculos es el utilizado en los niveles de 4 y 5 de RAID. El otro es un algoritmo de


comprobación de datos independiente.
Memoria Óptica
➢ En 1983 se introduce uno de los productos de mayor éxito de la historia: el disco compacto digital
de audio (CD, compact disk).

➢ Disco de bajo costo no borrable capaz de almacenar más de 60 minutos de información de audio.

➢ El disco se forma a partir de una resina y la información se graba como una serie de hoyos
microscópicos en la superficie reflectante con un láser de alta intensidad, para crear el disco patrón.
Luego se cubre con una superficie altamente reflectante como aluminio.

➢ La información se recupera con un láser de baja potencia que pasa a través de la capa protectora
transparente mientras un motor hace girar el disco sobre el láser. El cambio entre hoyos y valles es
detectado por un fotosensor y convertido en una señal digital.
Memoria Óptica

➢ Los hoyos son leídos a velocidad lineal constante (CLV), por lo que el acceso aleatorio se hace más
difícil.

➢ Localizar una dirección específica implica mover la cabeza al área general, ajustar la velocidad de
rotación y leer la dirección, y hacer pequeños ajustes para encontrar y acceder al sector específico.
CD-ROM
➢ El CD-ROM (Compac disk – read only memory) tiene lectores más robustos y tienen dispositivos de
corrección de errores para asegurar que los datos se transfieren correctamente del disco al computador.

➢ La capacidad de un CD-ROM es de unos 650 MB.

➢ Los datos de un CD-ROM se organizan en una secuencia de bloques.


CD-ROM
➢ Se puede replicar en grandes cantidades de forma barata.

➢ Es extraíble, permitiendo usar el mismo disco como memoria de archivo.

➢ Es de solo lectura y no se puede actualizar.

➢ El tiempo de acceso es mayor que el de una unidad de disco magnético, tanto como medio
segundo.
CD grabable

➢ Utiliza un controlador de disco especial, más caro que para CD-ROM. El cliente puede escribir una
vez, además de leer el disco.
➢ CD-R incluye una capa de tinte que se utiliza para cambiar la reflectividad y se activa con un láser
de alta intensidad.

CD regrabable

➢ Se puede escribir y reescribir como un disco magnético, gracias a una técnica llamada cambio de
fase.
➢ Los materiales actuales se pueden borrar entre 500 000 y un millón de veces.
➢ Las tolerancias de los parámetros de construcción es mucho más mayor que para los discos
magnéticos de gran capacidad. Por tanto, tienen una mayor fiabilidad y vida.
DVD (digital video disk)
Es el sustituto de las cintas VHS de video analógicas. Llevo el video a la era digital debido a su gran
capacidad:

➢ Los bits se empaquetan más juntos en un DVD utilizando un láser con una longitud de onda menor,
lo que incrementa la capacidad hasta 4.7 GB.

➢ Utiliza una segunda capa semireflectante de hoyos y valles sobre la primera capa que puede ser
leída ajustando el enfoque del láser de la unidad de DVD. Esto casi dobla la capacidad del disco
hasta 8.5 GB.

➢ Además el DVD-ROM puede tener dos superficies, alcanzando un total de 17 GB.


DVD (digital video disk)
➢ Los DVD tienen versiones grabables y de solo-lectura.
Cinta Magnética
➢ Fueron el primer tipo de memorias secundarias. Se usan todavía como los miembros de la
jerarquía de memoria de menor coste y de menor velocidad.

➢ Utilizan las mismas técnicas de lectura y grabación que los discos. El medio es una cinta de
poliéster flexible cubierta por un material magnetizable.

➢ Los anchos de las cintas pueden variar entre 0,38 cm (0,15 pulgadas) y 1,27 cm (0,5 pulgadas).

➢ Los datos en la cinta, se estructuran en una serie de pistas paralelas longitudinales.


Grabación en Serpentina
➢ Es la técnica típica utilizada en grabación de cintas: el primer conjunto de bits se graba a lo largo
de toda la cinta. Cuando se alcanza el fin, las cabezas se posicionan para grabar una nueva pista y
la cinta se graba de nuevo en dirección contraria.

➢ Una unidad de cinta es un dispositivo de acceso secuencial. Si la cabeza de la cinta se posiciona en


el registro 1, entonces para leer el registro N, es necesario leer los registros físicos del 1 al N-1.
Grabación en Serpentina
➢ Si la cabeza está actualmente situada más allá del registro deseado, es necesario rebobinar la cinta
una cierta distancia y empezar a leer hacia delante.

➢ Para aumentar la velocidad de lectura-escritura, los datos se pueden grabar en serie a lo largo de las
pistas individuales, pero los bloques se almacenan en pistas adyacentes.

You might also like