Guía Completa ACO

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 176

Arquitectura de

Computadora - ACO
Departamento de Ingeniería en Sistemas de
Información

Duración: Cuatrimestral – 1 Nivel de Cátedra


Horas: 8 hs Cátedras

Profesores:
Teórico: Ing. Martínez Gabriel Jefe de Cátedra : Ing. Gustavo Chiodi
Practico: Ing. Meloni Brenda Dir. De Depto.: Ing. Sergio Quinteros
Propósito - Objetivo
Como propósito general, esta asignatura persigue que las y los
estudiantes dispongan de saberes sobre los principios
fundamentales del hardware utilizado en las computadoras y
sus distintas plataformas, abordando su estudio desde los
bloques básicos funcionales que componen su estructura hasta
sus distintas filosofías constructivas para aplicar a las
cuestiones vinculadas al procesamiento de datos y al impacto
que estos tienen sobre el rendimiento de las aplicaciones y los
sistemas informáticos.

Aplicar los aspectos centrales que hacen a la tecnología de la


computación y conceptos sobre hardware, plataformas y
arquitecturas, para abordar las cuestiones vinculadas al
procesamiento y las comunicaciones.
https://www.institucional.frc.utn.edu.ar/sistemas/Areas/Academica/Modalidades.asp
Contenidos
https://www.institucional.frc.utn.edu.ar/sistemas/Areas/Academica/Modalidades.asp

 Unidad Nro. 1: SISTEMAS DE NUMERACIÓN

Unidad Nro. 2: CIRCUITOS LOGICOS. ALGEBRA DE LOS


CIRCUITOS DIGITALES

Unidad Nro. 3: MEMORIAS

Unidad Nro. 4: DESCRIPCIÓN DETALLADA DE LAS


ARQUITECTURAS

Unidad Nro. 5: INTRODUCCIÓN A LA PROGRAMACIÓN EN


ASSEMBLER

Unidad Nro. 6: DISPOSITIVOS DE ENTRADA / SALIDA.


Conceptos
Que es la Informática ?

Informática es una palabra de origen francés formada por la contracción de los


vocablos:
INFORmación y autoMATICA

La Real Academia Española define Informática como: El conjunto de conocimientos


científicos y técnicas que hacen posible el tratamiento automático y racional de la
información por medio de computadoras.

De esta definición se desprende que es una Ciencia y una Ingeniería puesto que
necesita desarrollar estudios teóricos y experimentales.

Tratamiento automático: Se refiere a que son las propias máquinas las que realizan las
tareas de captura, proceso y presentación de la información.

Tratamiento racional: Se refiere a que todo el proceso está regulado a través de una
secuencia de instrucciones (programa) que siguen el razonamiento humano. El
objetivo marcado es el “tratamiento automático” de la información y el medio utilizado
“la computadora”
Concepto
Los padres de informática

Mauchly – Prester Eckert


Maqueta de la primer maquina analítica Eniac

Univac Data center actual


Del Ordenador al PC

Xerox – Alto – 1973 IBM – Pc - 1981

steve-jobs-steve-wozniak Os/Dos - Windows


Conceptos Básicos
Modelos de Arquitectura
Sistemas de Numeración
Unidad 1

 Un Sistema de Numeración es un conjunto de reglas que permiten


nombrar y escribir cualquier número, a partir de un número finito de
símbolos

Un sistema de numeración puede representarse como

N (S, R)
Donde:
N: Es el sistema de numeración considerado (Decimal, binario, etc.)
S: Son los símbolos permitidos del sistema de numeración
R: Son las reglas que nos indican que número son validos y cuáles no.
Tipos de sistemas de numeración
Los sistemas de numeración pueden clasificarse en dos grandes
grupos: posicionales y no-posicionales:

•En los sistemas de numeración ponderados o posicionales


el valor de un dígito depende tanto del símbolo utilizado,
como de la posición que ése símbolo ocupa en el número.

•En los sistemas no-posicionales los dígitos tienen el valor


del símbolo utilizado, que no depende de la posición
(columna) que ocupan en el número.
Los sistemas no-posicionales:

 Sistemas de numeración Egipcia

 Sistemas de numeración Griego

 Sistemas de numeración Romano

 Sistemas de numeración Babilónico


Los sistemas posicionales:
El número de símbolos permitidos en un sistema de numeración
posicional se conoce como base del sistema de numeración. Si un sistema
de numeración posicional tiene base b significa que disponemos
de b símbolos diferentes para escribir los números, y que b unidades
forman una unidad de orden superior

Binario 0,1 { base 2}


Octal 0,1,2,3,4,5,6,7 { base 8}
Decimal 0,1,2,3,4,5,6,7,8,9 {base 10 }
Hexadecimal 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F {base 16}

•Otros
• 3 Ternario
• 4 Cuaternario
• 5 Quinario
• 6 Senario
• 7 Eptal
TEOREMA FUNDAMENTAL DE LA NUMERACIÓN

DADO UN SISTEMA DE NUMERACIÓN DE BASE b CON b >1, CUALQUIER


NÚMERO NATURAL N PUEDE DESCOMPONERSE DE LA FORMA:

N: Número válido en el Sistema de numeración


b: base del sistema de numeración. Número de
símbolos permitidos en el sistema.
d: un símbolo cualquiera de los permitidos en el
sistema de numeración
n: número de dígitos de la parte entera.
,: coma fraccionaria. Símbolo utilizado para separar la
parte entera de un número de su parte fraccionaria.
k: número de dígitos de la parte decimal.
Sistema Decimal

Ejemplo en el sistema de numeración decimal

Si contamos desde 0, incrementando una unidad cada vez, al llegar a 9 unidades, hemos agotado los
símbolos disponibles, y si queremos seguir contando no disponemos de un nuevo símbolo para
representar la cantidad que hemos contado. Por tanto añadimos una nueva columna a la izquierda
del número, reutilizamos los símbolos de que disponemos, decimos que tenemos una unidad de
segundo orden (decena), ponemos a cero las unidades, y seguimos contando.

El cuentakilómetros mecánico, al utilizar el sistema de numeración posicional decimal, nos muestra


lo anterior: va sumando 1 a la columna de la derecha y cuando la rueda de esa columna ha
completado una vuelta (se agotan los símbolos), se pone a cero y se añade una unidad a la siguiente
columna de la izquierda.

Pero estamos tan habituados a contar usando el sistema decimal que no somos conscientes de este
comportamiento, y damos por hecho que 99+1=100, sin pararnos a pensar en el significado que
encierra esa expresión
Sistemas Binario
El Sistema Binario: Es el sistema de numeración que utiliza internamente
el hardware de las computadoras actuales. Se basa en la representación de cantidades
utilizando los dígitos 1 y 0. Por lo tanto, es base 2 (Numero de dígitos del sistema)
Cada dígito de un número representado en este sistema se denomina BIT (Contracción
de Binary Digit).

El número 111 está formado por un solo símbolo repetido tres veces. No obstante,
cada uno de esos símbolos tiene un valor diferente, que depende de la posición que
ocupa en el número. Así, el primer 1 (empezando por la izquierda) representa un valor
de , el segundo de y el tercero de , dando como resultado el valor del número: 7
Sistema Octal
El sistema numérico en base 8 se llama octal y utiliza los dígitos 0 a 7.

Para convertir un número en base decimal a base octal se divide por 8


sucesivamente hasta llegar a cociente 0, y los restos de las divisiones en orden
inverso indican el número en octal. Para pasar de base 8 a base decimal, solo hay
que multiplicar cada cifra por 8 elevado a la posición de la cifra, y sumar el
resultado.

Es más fácil pasar de binario a octal, porque solo hay que agrupar de 3 en 3 los
dígitos binarios.

Ej: El número 74 (en decimal) es 1001010 (en binario), lo agruparíamos como


1 / 001 / 010, después obtenemos el número en decimal de cada uno de los
números en binario obtenidos: 1=1, 001=1 y 010=2. De modo que el número
decimal 74 en octal es 112.
Sistema Hexadecimal
El sistema numérico hexadecimal o sistema hexadecimal (a veces abreviado
como Hex, no confundir con sistema sexagesimal) es un sistema de
numeración que emplea 16 símbolos

En principio, dado que el sistema usual de numeración es de base decimal


y, por ello, sólo se dispone de diez dígitos, se adoptó la convención de usar las
seis primeras letras del alfabeto latino para suplir los dígitos que nos faltan. El
conjunto de símbolos sería, por tanto, el siguiente:

Se debe notar que A = 10, B = 11, C = 12, D = 13, E = 14 y F = 15.


Conversiones en el Sistema de Numeración
Métodos de Conversión

Forma Practica
Conversiones en el Sistema de Numeración

Conversión Decimal - Binario: Para convertir números enteros de decimal a


binario, la forma más simple es dividir sucesivamente el número decimal y los
cocientes que se van obteniendo por 2, hasta que el cociente en una de las divisiones
se haga 0.

La unión de todos los restos obtenidos escritos en orden inverso nos proporciona el
número inicial expresado en el sistema binario.

Convertir el número decimal 10 a binario.

Resulta el 10 en decimal queda como 1010 en binario


Conversión Binario – Decimal
Conversión Binario – Decimal: Consiste en numerar los
dígitos de derecha a izquierda comenzando desde cero, a
cada número se le asigna la correspondiente potencia base 2
y al final se suman las potencias.

Convertir en decimal el número binario 10101


Conversión de un número fraccionario
en base “b” a base 10

Hay que aplicar el Teorema Fundamental de la


Numeración. Llamando n al número de cifras enteras y n´ al
número de cifras fraccionarias, cualquier número N puede
descomponerse en la forma.

Ejemplo: convertir 0,10111 binario a decimal


Propiedades de la potenciación
Potencia con exponente negativo

Demostración:

No es posible operar
exponentes negativos,
entonces lo podemos
representar de la
siguiente manera

Ejemplo: convertir 0,10111 binario a decimal


Conversión de un número fraccionario
en base “b” a base 10
 Convertir a base 2 el número decimal 5,8125

 Despejar la parte entera y dividir sucesivamente por la base

Luego la parte fraccionaria se resuelve por multiplicaciones


sucesivas
Otros métodos prácticos de conversión

Directo Bin /,*


por Tabla

Hex / TFN Dec


Oct

1101 0111
D 7
Binario a Hex

Octal a Binario
Binario Octal
Tabla de conversión
Decimal Binary Octal Hexadecimal

0 0000 0 0

1 0001 1 1

2 0010 2 2

3 0011 3 3

4 0100 4 4

5 0101 5 5

6 0110 6 6

7 0111 7 7

8 1000 10 8

9 1001 11 9

10 1010 12 A

11 1011 13 B

12 1100 14 C

13 1101 15 D

14 1110 16 E

15 1111 17 F
Resolver
Realizar las siguientes conversiones:

a) 123(8) al sistema binario.

b) 1010101(2) al sistema octal.

c) BACA(16) al sistema binario.

d) 1010101(2) al sistema hexadecimal.

e) 13163(10) al sistema binario.

f ) B5A(16) al sistema Octal


Tabla de conversiones
Suma y Resta de Números Binarios
La suma o adición binaria es análoga a la de los números decimales. La
diferencia radica en que en los números binarios se produce un acarreo (carry)
cuando la suma excede de uno mientras en decimal se produce un acarreo
cuando la suma excede de nueve(9).

La técnica de la resta en binario es, nuevamente, igual que la misma operación


en el sistema decimal. Pero conviene repasar la operación de restar en decimal
para comprender la operación binaria, que es más sencilla. Los términos que
intervienen en la resta se llaman minuendo, sustraendo y diferencia
La resta 0 - 1 se resuelve, igual que en el sistema decimal, tomando una
unidad prestada de la posición siguiente: 10 - 1, es decir, 210 – 110 = 1. Esa
unidad prestada debe devolverse, sumándola, a la posición siguiente

Tablas
Suma y Resta Octal - Hex

Resta Octal
-Tener en cuenta que en la resta cuando el sustraendo es mayor que el minuendo debo
aplicar lo siguiente:
-Tomo una unidad de la columna izquierda siguiente
-Esa unida NO es una suma de decenas (10) ya que estamos en el sistema Octal,
se suman (8)unidades
Suma Octal
-En el caso de la Suma, tendremos en cuanta la regla que 7 + 1 = 10
Suma Hex.
Teniendo en cuenta esta equivalencia podemos realizar la suma de forma habitual. Si
la suma entre dos números de una columna es superior a 15, deberemos sumar uno a la
columna de la izquierda y restar 16 al resultado de la suma entre los dos números.

Resta Hex:
Se realiza de la misma forma que en el sistema decimal, la única diferencia es que
cuando se “piden cifras” al número que está al lado, pasa a la columna de la derecha
como 16, luego se suma ese 16 con el numero que “pidió” la cifra y se continua con la
operación.
Ejemplos

Binario : 1 1 - 1 0

Binario : 1 1 0 1 – 0 1 1 0

Binario: 1 1 0 1 + 0 1 1 0

Octal: 273 + 772 Recordare que la expresión 7 +1 = 10

Octal : 375 + 731

Hex: 9 + D

Hex: AA + 9
Representación de números sin signo
Las computadoras operan con números representados en base dos. Su
alfabeto o lenguaje es el binario B = {0, 1}

Cada símbolo se denomina bit (binary digit)

El computador opera con una cantidad finita de bits, denominada longitud de


palabra.

Por ejemplo 4, 8, 16, 32, 64 bits, etc. Si representamos con n a la longitud de la


palabra, entonces un número binario sin signo puede ser expresado como la
secuencia
Representación de números con signo
Representación de números Enteros : Las computadoras utilizan diferentes métodos
para la representación interna de números enteros (positivos y negativos ). Según la
implementación del circuito, las mas utilizadas son:
 Signo y Magnitud
Complemento a la base
Si la base es 2 (binario) se dice Complemento a dos
Complemento a la base menos uno
Si la base es 2 (binario) se dice Complemento a uno :
Todas las representaciones utilizan el bit de mayor peso, el bit mas significativo para
representar el signo: positivo (+) o negativo (- ). Como el alfabeto del computador
solo tiene 0’s y 1’s por convención se establece:

0 ↔ (+) 1 ↔ (-) binario

Sin embargo en cualquier sistema de numeración posicional el cero “0” representa


los “+” y los negativos se representan como “b-1”, donde b es la base del Sistema.
Así por ejemplo el negativo en Decimal es el 9(nueve), en Binario el 1 (uno), Octal
7(siete) y Hexadecimal F (efe).
Representación de números con signo
Signo Magnitud
En la representación de un número entero en Signo Magnitud, también
llamada Signo Módulo, de los n bits participantes en dicha representación, el
más significativo se encarga de representar al signo del mismo,
denominándosele bit de signo. El resto de bits representan a la magnitud. Por
tanto, dado un número en Signo Magnitud de n bits

NSM = an-1 an-2 ... a1 a0

Cuando se quiera representar a un número negativo, el bit de signo valdrá 1,


siendo 0 cuando el número sea positivo
Por otro lado, para calcular el valor en base 10 de un número entero (N) escrito
en Signo Magnitud, hay que hacer uso de la fórmula – representar el
11100001 (SM)
Signo Magnitud - Ejemplo
Ejemplo1: En Signo Magnitud, para n = 8, el número 2310 se escribe

Al ser un número positivo, el bit de signo vale cero (a7 = 0) y, como se puede observar,
los números positivos escritos en Signo Magnitud se representan igual que si se
escribiesen en Binario Puro:
2310 = 00010111SM = 00010111BP

Ejemplo 2: En Signo Magnitud, para n = 8, el número -23 base 10 se simboliza


con la misma magnitud que el número 23 base 10, diferenciándose, solamente,
en el bit de signo, que al tratarse de un número negativo, ahora tiene que
valer 1, en vez de 0. Así pues, su representación es:
Representación de números con signo
Complemento a la base

C => Complemento
b => base
m => módulo- cantidad de dígitos utilizados. Debe contener el dígito de signo
N => número a complementar

Ej:
N= - 1011
Modulo:8
Representación de números con signo
Complemento a la base -1

C => Complemento
b => base
m => módulo- cantidad de dígitos utilizados. Debe contener el dígito de signo
N => número a complementar

Ej:
N= - 1011
Modulo:8
Métodos de conversión directa

Bit de Signo: Es el bit que se encuentra mas a la izquierda (el mas


significativo)
Magnitud: Es el valor del número
Sigo: Si es 0 (+) o si es 1(-)

Métodos

Signo Magnitud: En este caso, el bit de signo indica si el número es positivo


o negativo. La magnitud se mantiene igual.

Complemento a 1: Aquí se intercambian todos los digito del número ente


0 x1 y los 1 x 0

Complemento a 2: A partir del primer 1 contando de derecha a izquierda los


dígitos quedan igual. Luego se intercambian los 0x1 y los 1x0
Representación interna de Datos-
Codificación alfanumérica
Los datos e informaciones que se manejan internamente en un sistema
informático se pueden representar, según sus características, de la siguiente
forma:

ASCII
alfanuméricas EBCDIC
Representaciones o
códigos internos
numéricas Coma fija
Coma flotante
Códigos de Representación-alfanumérica
Los códigos alfanuméricos son aquellos que nos permiten representar en
lenguaje binario números y letras, así como otros caracteres necesarios
de control (no imprimible)
Los sistemas de codificación alfanumérica sirven para representar una
cantidad determinada de símbolos en binario. A cada símbolo le
corresponderá una combinación de un número de bits.

Código ASCII (American Standard Code for Information Interchange)


Código Estándar Americano para el Intercambio de la Información es un
código alfanumérico, es decir, nos permite combinar en un mensaje
números y letras. Originariamente, el código ASCII tenía 128 caracteres,
que son los recogidos en esta tabla que se muestra a continuación.
Con este código se pueden representar dígitos del 0 al 9, letras
mayúsculas de la A a la Z, letras minúsculas, caracteres especiales y
algunos otros denominados de control.
Códigos de Representación-alfanumérica
Fue creado en 1963 por el Comité Estadounidense de Estándares o "ASA", este
organismo cambio su nombre en 1969 por "Instituto Estadounidense de Estándares
Nacionales" o "ANSI" como se lo conoce desde entonces.

Este código nació a partir de reordenar y expandir el conjunto de símbolos y


caracteres ya utilizados en aquel momento en telegrafía por la compañía Bell. En un
primer momento solo incluía letras mayúsculas y números, pero en 1967 se agregaron
las letras minúsculas y algunos caracteres de control, formando así lo que se conoce
como US-ASCII, es decir los caracteres del 0 al 127.
Así con este conjunto de solo 128 caracteres fue publicado en 1967 como estándar,
conteniendo todos lo necesario para escribir en idioma ingles.

Otros códigos alfanuméricos

EBCDIC: Extended BCD Interchange Code fue desarrollado por IBM. Actualmente es
la única que lo usa en grandes sistemas.

UNICODE: Es el código usado actualmente para el manejo de fuentes para


procesamiento de palabras. Está definido por ISO 10646 y permite la representación
de múltiples alfabetos de distintos idiomas.
Códigos de Representación
– Ascii
Códigos de Representación
–Ascci extendido
Códigos de Representación- numérica

BCD - Binary Code Digit

Con ayuda de este código es más fácil ver la relación que hay entre un número decimal
(base 10) y el número correspondiente en binario (base 2).
El código binario puro se basa en una regla (potencias de 2), mientras que los códigos BCD
se basan en una tabla en la que salen los números decimales del 0 al 9 y las
correspondientes “traducciones” en BCD. Hay varios tipos de BCD:
– BCD puro: Binary Code Digit, decimal o decimal codificado en binario es un estándar
para representar números decimales en el sistema binario, en donde cada dígito decimal es
codificado con una secuencia de 4 bits.

Ej: 13 en BCD, es

1 (0001) seguido de un 3 (0011).

El 13 en decimal se escribe 00010011 en BCD


Códigos de Representación- numérica

Código BCD Exceso 3

El código Exceso 3 se obtiene sumando “3” a cada combinación del código BCD
natural. Ver la tabla.
El código exceso 3 es un código en donde la ponderación no existe (no hay “pesos”
como en el código BCD natural y código Aiken).
Al igual que el código Aiken cumple con la misma característica de simetría. Cada
cifra es el complemento a 9 de la cifra simétrica en todos sus dígitos. Es un código
muy útil en las operaciones de resta y división.

Ej: 13 en BCD Exceso 3, es

1 (0100) seguido de un 3 (0110).

El 13 en decimal se escribe 0100 0110 en BCD xs3


Códigos de Representación- numérica

Código BCD Aiken

Es un código similar al código BCD natural pero con los “pesos” o “valores” distribuidos de
una manera diferente. En el código BCD natural, los pesos son: 8 – 4 – 2 – 1, en el código
Aiken la distribución es: 2 – 4 – 2 – 1
El código Aiken es muy útil para realizar operaciones de resta y división.
Representación redundantes
Código Gray

Es un tipo especial de código binario que no es ponderado (los dígitos que componen el
código no tienen un peso asignado). Su característica es que entre una combinación de
dígitos y la siguiente, sea esta anterior o posterior, solo hay una diferencia de un dígito
(bits) lo que representa ventajas desde la transmisión de datos y el diseño de circuitos.
También se le llama Código progresivo o cíclica. Esta progresión sucede también entre la
última y la primera combinación
La característica de pasar de un código al siguiente cambiando solo un dígito asegura
menos posibilidades de error.
El código Gray debe su nombre al físico e investigador de los laboratorios Bell Frank Gray
Códigos de Representación- numérica
Códigos de Hamming

Con este nombre se conoce a un conjunto de códigos correctores en k dígitos


binarios. A la hora de trabajar con este tipo de códigos podemos distinguir dos
operaciones:
a) Construcción, que se realizará en el centro emisor.
b) Interpretación, que se realizará en el centro receptor.

a) Construcción. Se parte de un código de n dígitos de distancia mínima uno1 . Estos


n dígitos son conocidos dentro del código de Hamming como "dígitos de datos".
A continuación se le añaden p (cp-1, ..., c2, c1, c0) dígitos denominados de
control o paridad. Así pues, el nuevo código tendrá una longitud de palabra de
l=n+p.

b) Interpretación. Recibida una combinación de un código de Hamming hay que


comprobar si es correcta, y de no ser así habrá que detectar el dígito que varió
en la transmisión. Ahora los p dígitos añadidos actúan como dígitos de control y
con ellos formamos una palabra binaria.
Representación de números reales
El estándar IEEE 754 define representaciones para números de coma flotante
con diferentes tipos de precisión: simple y doble, utilizando anchos de palabra
de 32 y 64 bits respectivamente.
Estas representaciones son las que utilizan los procesadores de la familia x86,
entre otros. En la representación de 32 bits, el bit mas significativo es utilizado
para almacenar el signo de la mantisa, los siguientes 8 bits guardan la
representación del exponente, y los restantes 23 bits almacenan la mantisa. El
exponente se representa en exceso de 8 bits, con un desplazamiento de 127.

Pasos a tener en cuenta :


1- Separar el signo y representarlo en el bit de signo Resolver:
2- Normalizar el número en binario - 27,5
3- Calcular el exponente sesgado según - 1100001011001111000..
4- Omitir el primer “1” de la mantisa y representar el número
Representación de números reales
De manera similar, en la representación IEEE de doble precisión, el bit mas
significativo es utilizado para almacenar el signo de la mantisa, los
siguientes 11 bits representan el exponente y los restantes 52 bits
representan la mantisa. El exponente se representa en exceso de 11 bits,
con un desplazamiento de 1023.

En ambos casos se tiene una mantisa normalizada con un bit entero y los
restantes fraccionarios, es decir que tiene la forma ”1,X”, donde X es el valor
de los bits fraccionarios. Además, como se tiene un bit implícito, el dígito 1
(entero) esta oculto y por lo tanto no es almacenado en la representación,
permitiendo así ganar precisión.
Circuitos lógicos y digitales - Introducción
al álgebra de Boole
Un Sistema es un conjunto de elementos que guardan una relación entre sí, a su vez un
elemento del sistema puede ser otro sistema (subsistema). Los sistemas electrónico
podemos clasificar en
ELECTRÓNICOS
oANALÓGICOS
oDIGITALES
COMBINACIONALES
SECUENCIALES

Un sistema digital es aquel cuyos elementos son digitales (sólo pueden adoptar valores
discretos). Para poder realizar el estudio de los Sistemas Digitales se necesita estudiar una
álgebra binaria. El Álgebra de George Boole, que data de 1854, es sin dudas la más
apropiada para nuestro fin. Claude Shannon en 1938 adaptó esta álgebra para la aplicación
en sistemas digitales. A continuación estudiaremos el álgebra de Boole, las funciones
booleanas, las compuertas lógicas, los Sistemas Combinacionales y, finalmente, los
Sistemas Secuenciales.
George Boole - biografía
George Boole nació el 2 de noviembre de 1815 en una familia de
comerciantes de escasos recursos y compartió su infancia con dos
hermanos. Su intención era ser un monje, así que desde muy joven empezó
a estudiar el griego y el latín, además del italiano, el alemán y el francés. A
los 12 años ya dominaba todas esas lenguas a la perfección y tradujo varios
textos y poemas.
Al conocer tantos idiomas fue capaz de leer muchas obras antiguas que
hablaban sobre Dios y el conocimiento religioso, pero tuvo que abandonar
su sueño de ser monje cuando vio que era necesario ponerse a trabajar para
poder sacar adelante a su familia.
Dejó a un lado las lenguas y empezó a interesarse más por las matemáticas.
A los 16 años se convirtió en profesor y no tardó mucho más tiempo en abrir
su propia escuela. A los 24 años le enviaron una oferta para estudiar en la
universidad de Cambridge, pero tuvo que abandonar porque no podía dejar
atrás a su familia. Durante el resto de su vida fue profesor de matemáticas y
se dedicó a escribir muchos libros que hablaban sobre la lógica y las
matemáticas.
En 1847 el matemático inglés George Boole definió un tipo de álgebra en la
que sólo podían adoptar dos valores, verdadero o falso. Estos valores se
designan por 0 y 1. Estos símbolos no representan números si no dos tipos
de estados diferentes dentro de un dispositivo, como puede ser encendido o
apagado, abierto o cerrado.
Circuitos lógicos y digitales - Introducción
al álgebra de Boole
Postulados y Teoremas

Dentro de las álgebras de Boole, es de utilidad definir la bivalente, es decir


compuesta por sólo dos elementos. Así, el álgebra es un conjunto de
elementos binarios relacionados entre sí mediante las operaciones lógicas
producto [.] y suma [+], que cumplen con los siguientes postulado:

SUMA LOGICA

PRODUCTO LOGICO

NEGACION LOGICA
Álgebra de Boole – Operaciones basicas

SUMA LOGICA:
Denominada también operación "O" (OR). Esta
operación responde a la siguiente tabla

PRODUCTO LOGICO:
Denominada también operación "Y" (AND). Esta
operación responde a la siguiente tabla:

NEGACION LOGICA:
Denominada también operación "N" (NOT).
Esta operación responde a la siguiente tabla
Álgebra de Boole – Postulados
Las propiedades del conjunto de elementos que pueden tomar dos valores
diferenciados “0” o “1” , que esta relacionados por dos operaciones binarias de
“+” y “*” cumplen los siguientes postulados:

P1) ROPIEDAD CONMUTATIVA:


De la suma: a+b=b+a
Del producto: a* b = b * a

P2) ELEMENTO IDENTIDAD o NEUTRO


De la suma a+0=a
Del producto a*1= a

P3) COMPLEMENTO O INVERSION LOGICA


De la suma a + a' = 1
Del producto a * a' = 0

P4 ) PROPIEDAD DISTRIBUTIVA:
Del producto respecto a la suma: a + (b*c) = (a+b) * (a+c)
De la suma respecto al producto: a*(b+c) = (a*b) + (a*c)
Álgebra de Boole – Teoremas

1) Dualidad: Toda igualdad lógica sigue siendo válida si se intercambian los operadores (+
y .) y los elementos de identidad (0 y 1). La simetría de los postulados demuestra este
teorema.

2) En el álgebra se cumple que a + 1 = 1 / a . 0 = 0

3) Ley de Idempotencia a+a=a / a.a=a

4) Ley de involución (a’)’ = a

5) Las operaciones lógicas son asociativas a + (b + c) = (a + b) + c / a . (b . c) = (a . b ). c

6) Absorción: a = a + (a . b) / a = a . (a + b)

7) Leyes de De Morgan
7.1 ) (a + b + c + d + .......+ n)’ = a’ . b’ . c’ . d’ ...........n’
7.2) (a . b . c . d .........n)’ = a’ + b’ + c’ + d’ + ..........+ n’
Reglas – Algebra de Boole
Respecto a la Suma - OR
1- A + 0 = A
2- A+ 1 = 1
3-A+A= A
4 - A + A' = 1

Respecto al Producto – AND


1- A * 0 = 0
2- A * 1 = A
3-A*A= A
4 - A * A' = 0

Respecto a la negación - NOT

1- A = A
2- A+ B = A * B Ley de Morgan
3- A* B = A + B
Puertas Lógicas – NOR- NAND
NOR

NAND
Universalidad de las compuertas NAND y
NOR
Estas compuertas se dicen que son "universales" puesto que con cada una de las dos
familias podemos realizar todas las funciones lógicas.
En la tabla a continuación se muestran los operadores lógicos en función de solo
compuertas NOR y solo compuertas NAND
Puertas Lógicas –XOR y XNOR
OR - Exclusiva

XOR

XNOR
Resolver
1 - Escribir la expresión booleana para una puerta OR de 4 entradas

2 – Dibujar el símbolo lógico de una puerta OR y otra AND de 3 entradas

3 – Cual es la expresión booleana para el diagrama planteado.

4- -Cual será el tren de pulso en la salida y de la siguiente imagen ?

5 – Resolver las siguientes expresiones booleanas:


BCD* 1 = / XYZ + XYZ = / ABCD + 0 =
KARNAUGH SIMPLIFICACIÓN DE
FUNCIONES
En 1953 el Ingeniero Maurice Karnaugh ideó un método que permitía
minimizar funciones lógicas mediante la confección de tablas o mapas del
estado de sus variables.

El método de simplificación de Karnaugh es recomendable utilizarlo para


sistemas con un número de variables de entrada comprendidas entre 2 y 5
variables.

Para aplicar la simplificación de la función lógica por karnaugh primero es


necesario realizar la tabla de la verdad del problema o tener la función lógica
del circuito a simplificar.

Una vez que tenemos la tabla o función lógica es cuando aplicamos la


simplificación por el método de karnaugh.
KARNAUGH SIMPLIFICACIÓN DE
FUNCIONES
Dibujamos un tabla de karnaugh con tantas casillas como 2n , siendo "n" el número de
variables.
Por ejemplo para 2 variables la tabla tendrá 4 casillas, para 3 variables tendrá 8 casillas y para
4 variables tendrá 16 casillas.
No se recomienda este método para más de 4 variables.
KARNAUGH SIMPLIFICACIÓN DE
FUNCIONES
Debemos agrupar UNOS en grupos de 1, 2, 4, 8, 16....UNOS. y además, la agrupación debe
ser la mayor posible de unos, y no importa que un uno o varios unos pertenezcan a varias
agrupaciones siempre y cuando las agrupaciones se realicen en vertical o en horizontal
(cuadrados o rectángulos) nunca en diagonal.

OJO nunca agrupar grupos de 3 o 5 unos.


Ejemplos - Mapas de Karnough
Ejemplos - Mapas de Karnough - Don´t care
Ejemplos - Mapas de Karnough
Escribir la función booleana simplificada como suma de producto y producto de suma
Formas Normales o Canónicas de una
Función Booleana
Las formas canónicas están formadas por términos canónicos. Los términos
canónicos se caracterizan porque todas las variables de la función,
complementadas o no, aparecen en cada uno de ellos. Los términos
canónicos pueden ser sumas canónicas o productos canónicos.

Para una función de tres variables F(x, y, z) serían ejemplos de sumas


canónicas los términos x+y+z, x'+y+z'; ejemplos de productos canónicos son:
xyz , x'y'z'.
Las dos formas canónicas reciben el nombre de primera y segunda forma
canónica.

La primera forma es una suma de productos canónicos mientras que la


segunda es un producto de sumas canónicas.
Formas Normales o Canónicas de una
Función Booleana
A los términos de la primera forma canónica se les denomina: Minitérminos, términos producto o
productos canónicos. A los términos de la segunda forma canónica se les
denomina: Maxitérminos, términos suma o sumas canónicas.

Minitérminos : términos en los que las variables lógicas están relacionadas entre sí mediante el
producto lógico "·", y éstos a su vez están sumados. (Vulgarmente se dice que una función
compuesta por minitérminos es una "función suma de productos").

F(x, y) = xy' + x'y + x'y'. Siendo xy', x'y, x'y' minitérminos.

F(x, y, z) = xy'z + x'y'z + xyz'. Siendo xy'z, x'y'z, xyz' minitérminos.

Maxitérminos : términos en los que las variables lógicas están relacionadas entre sí mediante "+",
y éstos a su vez están multiplicados. (Vulgarmente se dice que una función compuesta por
maxitérminos es una "función producto de sumas").

F(x, y, z) = (x+y'+z)·(x+y+z'). Siendo (x+y'+z),(x+y+z') maxitérminos.


Formas Normales o Canónicas de una
Función Booleana
Una función booleana puede representarse algebraicamente a través de la tabla de
verdad formando la suma de todos los minitérminos (suma de producto) que
producen un 1 en la función. Por ejemplo, dada la tabla de verdad

a b f(a,b) Observamos que las filas con resultado 1 son la primera y la tercera,
0 0 1
entonces podremos escribir f como la suma de los Minterms m0 y m2.

0 1 0 Si queremos verificar esto:


1 0 1 f(a,b) = m0 + m2 = (a'b')+(ab')
1 1 0

Utilizando la misma tabla de verdad, es posible escribir la función como "producto de


sumas“
Observamos que las filas que tiene como salida un 0 son la segunda y la cuarta,
entonces podemos escribir f como un producto de Maxterms M1 y M3.

Si queremos verificar esto:


f(a,b) = M1 M3 = (a+b')(a'+b')
Sistemas Digitales

Un sistema digital es un conjunto de elementos binarios relacionados entre si de alguna


manera. Se distinguen dos tipos de variables en un sistema digital. Las variables de
entrada y las variables de salida que dependen de las de entrada. Funcionalmente las
variables de entrada se dividen en dos grupos: variables de proceso y variables de control

Cuando cada combinación de las variables (Vector de entrada) de entrada se corresponde con una y sólo
una combinación de las variables de salida (Vector de salida), se trata de un sistema combinacional.
Dicho de otra manera, siempre que se repita un conjunto de valores de las variables de entrada, se
repetirá la salida

Cuando a un mismo vector de entrada puede corresponder más de uno de salida, el sistema se llama
secuencial. Dicho de otra manera cuando se repite un conjunto de valores de las variables de entrada, no
necesariamente se repetirá la salida. Los sistemas secuenciales deben poseer memoria interna ya que
sus salidas son consecuencia de la evolución anterior de sus entradas.
Circuitos Combinacionales
En un Sistema combinacional las salidas no son otra cosa que funciones
lógicas de las entra.

Clasificación según escala de integración:

•SSI → máx. 10 puertas lógicas


•MSI → máx. 100 puertas lógicas
•LSI → máx. 1000 puertas lógicas
•VLSI → > 1000 puertas lógicas
Circuitos Combinacionales MSI

Cuando las funciones lógicas son muy complejas no siempre el diseño basado en
la minimización y posterior implementación con compuertas lógicas, es el más
adecuado. Las técnicas de integración han permitido CI más complejos. Por
ejemplo en MSI se dispone de CI de hasta 100 puertas. Estos bloques funcionales
MSI, si bien a veces tienen fines específicos, pueden aplicarse a la
implementación de funciones lógicas de muchas variables. Las ventajas caen en
la disminución de los CI necesarios, del tiempo de diseño, del número de
conexiones externas y facilita el mantenimiento. A continuación se describen
brevemente los Combinacionales MSI más comunes
Circuitos Combinacionales MSI – Semisumador

Sumadores son circuitos integrados (CI) que realizan la suma aritmética de dos
números de n bits. Antes de ver los sumadores disponibles en escala de integración
MSI, estudiaremos la suma y resta binaria. Suma binaria Para indicar la suma
aritmética utilizaremos el símbolo +, para diferenciarlo del + usado para la suma
lógica.
Para sumar dos bits, se puede implementar el circuito que se observa a
continuación:
Circuitos Combinacionales MSI - Sumador

Supóngase ahora que se desea sumar dos números binarios de más de un bit
A y B, entonces. Integramos semisumadores para construir un sumador
completo.
Circuitos Combinacionales MSI - Restador

En la resta binaria debe recordarse los convenios de representación de números


negativos en binario. Se podría implementar un circuito para realizar la resta como una
nueva operación. Sin embargo se verá que es posible restar dos números realizando la
suma de uno de ellos mas el complemento a dos (o a uno) del otro. Para el caso de usar
el convenio de complemento a dos.
Sean A y B dos números binarios signados en convenio de complemento a dos, será el
siguiente desarrollo:

En la expresión se observa que el resultado obtenido difiere del buscado en el valor 2n .


Este resultado debe interpretarse como un acarreo a despreciar si el paréntesis ( A - B)
resulta positivo. En caso que el paréntesis resulte negativo el resultado estará expresado en
complemento a dos.

En la expresión se observa que el resultado obtenido difiere del buscado en el valor 2n y


además tiene un error en defecto de valor 1. Este resultado debe interpretarse como un
acarreo que debe sumarse al resultado si el paréntesis ( A - B) resulta positivo. En caso que el
paréntesis resulte negativo el resultado estará expresado en complemento a uno
Circuitos Combinacionales MSI - Restador
Aplicar al CI restador A: 1010 – B: 0101
Circuitos Combinacionales MSI - Comparador

Comparadores Realizan la comparación entre dos números binarios de n bits. El


circuito básico que realiza la comparación de 1 bit, se indica en la figura

Comparadores de más bits se diseñan de la misma manera. Los Comparadores poseen


además entradas por “= “ esto permite realizar comparadores de elevado número de bits,
partiendo comparadores menores
Detector de paridad
En la transmisión de información es posible que se produzcan errores debido a diferentes
factores, como la presencia de ruido en el proceso, la avería de alguno de los componentes,
etc. Especialmente cuando la información es numérica, no se aceptan errores, por lo que es
necesario poder detectar la presencia de los mismos si se han producido. Si se detecta la
presencia de un error es necesario retransmitir la información, mientras que si se puede
detectar y corregir el error producido, no se produce la retransmisión. Cuando en un código
binario se utilizan todas las combinaciones posibles, no se pueden detectar errores; debido a
que si cambia algunos de sus bits por error de una combinación válida, daría por resultado
otra combinación de bits válida. Por lo tanto, podemos decir que “para detectar errores es
necesario no utilizar todas las combinaciones posibles”.
Esto último es una condición necesaria pero no suficiente. Para poder efectivamente detectar
y/o corregir errores se da el concepto de distancia mínima de un código: Distancia de un
código entre dos combinaciones binarias es el número de bits que cambian para pasar de una
combinación a la otra

Distancia: La distancia entre dos representaciones binarias se define como el número de


bits distintos entre los dos códigos.
Es decir si tenemos dos códigos binarios a y b (a0 , a1, . . ., an)
(b0, b1, . . ., bn)
la distancia entre ellos esta dada por la cantidad de unos en el código formado por:
(a0 ⊕ b0 , a1 ⊕ b1 , . . . an⊕ bn)
Por ejemplo, los códigos: 01101 10110 tienen una distancia 4 (cuatro)
Detector de paridad
Uno de los mecanismos para generar sistemas de codificación con capacidad de
detectar errores es el de la paridad, o codificación con bit de paridad. La idea es
agregar a cada código binario de n bits que representan objetos válidos, un nuevo bit
calculado en función de los restantes. La forma en que se calcula el bit de
redundancia (de paridad) es tal que la cantidad de unos en el código completo
(original + bit de paridad) será par (en cuyo caso hablamos de paridad par) o impar
(en cuyo caso se trata de paridad impar)
Circuitos Combinacionales MSI - Codificadores
Permiten codificar las líneas de entrada. Generalmente codifican en binario
o BCD

Codificador de 7 entradas y 3 salidas.-


En este codificador se supone que sólo esta activa una entrad por vez.
Características Generales
Activo a alta o lógica positiva: las entras / salidas se activan con “1”
Activo a baja o lógica negativa: las entras / salidas se activan con “0”
Habilitar(Enable): Entrada que habilita el circuito, que dependiendo de la lógica activa con “1” o con “0”
Prioridad: Codifica la entrada de mayor prioridad.
Circuitos Combinacionales MSI - Codificadores
Suele codificar el código decimal a código binario.

Por ese motivo tiene muchas entradas y pocas salidas


Podríamos decir que la diferencia entre un codificador y un decodificador es:

- Decodificador: Pocas entradas (binario y muchas salidas (decimal)

- Codificador: Muchas entradas (decimal) y pocas salidas (binario)

Prioridad o Prioriti Encoder: En todas las ocasiones solo hay 1 entrada activa.
Si por ejemplo se activan 2 entradas a la vez, es decir 2 entradas con valor 1.
¿Qué salida se activaría?
La salida de los codificadores de prioridad toman como salida el valor correspondiente de la entrada
activa que tiene la prioridad más alta, es decir el orden más alto (entrada con el número más alto).
Circuitos Combinacionales MSI - Decodificadores
Un decodificador es un circuito lógico que convierte un código binario de entrada de N
bits en M líneas de salida de manera tal que cada una de estas líneas solo sea activada
para una combinación de entradas.
Tienen como función detectar la presencia de una determinada combinación de bits en
sus entradas y señalar la presencia de este código mediante un cierto nivel de salida. Un
decodificador posee N líneas de entrada para gestionar N bits y en una de las 2N líneas
de salida indica la presencia de una o mas combinaciones de n bits. 2 N Para cualquier
código dado en las entradas solo se activa una de las N posibles salidas

Tipos de entradas/salidas: alta =1 / baja = 0


Activo a alta o lógica positiva: Las entradas / salidas, se activan con “1”
Activo a baja lógica negativa: Las entradas / salidas, se activan con “0”
Enable: Los codificadores cuenta con una patilla de habilitación del circuito, que según
sea lógica positiva o negativa se habilitará con 1 o con 0.
Circuitos Combinacionales MSI - Decodificadores

Tienen como función detectar la presencia de una determinada combinación de bits


en sus entradas y señalar la presencia de este código mediante un cierto nivel de
salida.
Circuitos Combinacionales MSI - Decodificadores

Se pueden considerar dos grupos de decodificadores:


Generadores de funciones lógicas.
BCD a display de 7 segmentos.

Para controlar este semáforo podemos hacer un circuito que tenga 4 salidas, una para cada una de
las luces. Cuando una de estas salidas esté a "1", la luz correspondiente estará encendida. Sin
embargo, ocurre que no puede haber dos o más luces encendidas a las vez. Por ejemplo, no
puede estar la luz roja y la verde encendidas a la vez.
Circuitos Combinacionales MSI – Decodificadores 7
Segmentos

Este decodificador se aparta de la definición general ya que cada combinación de valores de


las entradas activa varias salidas, en lugar de una sola. Tiene cuatro líneas de entrada en
código BCD y salidas capaces de activar un display de siete segmentos para representar
cualquier dígito de 0 a 9. De la misma forma que hay dos tipos de decodificadores existen
dos tipos de display de 7 segmentos, unos cuyos segmentos se activan con un uno, llamado
display de 7 segmentos de cátodo común, y otro cuyos segmentos se activan con un cero,
llamado display de 7 segmentos de ánodo común.
Decodificador – BCD 7 Segmentos
El display está formado por un conjunto de 7 leds conectados en un punto
común en su salida.
El decodificador requiere de una entrada en código decimal binario BCD y siete
salidas conectadas a cada segmento del display.
Circuitos Combinacionales MSI - Multiplexor
Multiplexar es pasar información de “muchos” canales o líneas a “pocos” canales o líneas.
Un multiplexor es un circuito digital que selecciona una de entre varias entradas de datos y
lleva su valor lógico a la única salida Z del circuito.
Un multiplexor en un circuito combinacional con 2n número de entradas, n entradas de
selección y una salida de información.

En un multiplexor, cada combinación posible de las n entradas de selección (son posibles


2n combinaciones) una de las entradas de selección se conecta a la salida. Por lo tanto, este
dispositivo actúa como un conmutador que permite dirigir la información digital procedente
de varias entradas a una sola salida.

El multiplexor más simple es el que sólo tiene una entrada de selección, S, que permite
seleccionar entre dos entradas de datos, según que S = 0 ó S = 1.
Circuitos Combinacionales MSI - Multiplexor

Podemos pensar en canales de datos, y tener un esquema como el


siguiente:

En la que hay 4 canales de datos, y sólo uno de ellos es seleccionado por el


multiplexor para llegar a la salida.
En general, en un multiplexor tenemos dos tipos de entradas:
Entradas de datos
Entrada de selección: Indica cuál de las entradas se ha seleccionado
Circuitos Combinacionales MSI - Demultiplexor

El concepto de demultiplexor (DEMUX) es similar al de multiplexor, viendo las


entradas de datos como salidas y la salida como entradas.
En los demultiplexores hay un único canal de entrada que sale por una de las
múltiples salidas, y sólo una. Las entradas de selección "n" definen cual es la
línea de salida por la que debe salir el dato de entrada. Por lo que el número
de salidas 2n, depende de "n" que es el número de entradas de selección

Denominamos demultiplexor de dos salidas a aquel que tiene 2n = 2 líneas de


salida, y por lo tanto n = 1 líneas de selección.
Circuitos Combinacionales MSI – Mux - Demux

Una aplicación típica de los multiplexores y los demultiplexores. Imaginemos que


tenemos 4 sistemas, que los llamaremos a , b , c y d , y que necesitan enviar
información a otros 4 dispositivos A , B , C y D . La comunicación es uno a uno, es decir,
el sistema a sólo envía
Información al sistema A ,el b al B ,el c al C y el d al D
Ejercitación
1. Explique cada una de las partes del formato IEEE 754 de precisión simple (32 bits)
2. Defina las funciones canónicas y cómo encontrarlas desde una tabla de verdad,
ejemplifique
3. Explique qué es un circuito combinacional y especifique los tipo MSI
4. En el circuito semisumador. ¿Que compuertas lógica produciría la salida de acarreo?
5. Cuales son las formas de representación de números con signo, defina sus formulas.
6. Cuál es la expresión que se utiliza para calcular el exceso del exponente en la norma
IEEE 754 de punto flotante?
7. Qué código está representado en el teclado de una computadora?
8. Que tipo de puerta lógica produce el siguiente circuito ?

9. ¿Por qué obtenemos un bit gratis en la mantisa?


10. Grafique y construya la tabla de verdad de las puertas AND, OR, NAND, NOR, XOR
Circuitos Secuenciales – Flip Flop
Analizamos los circuitos secuenciales, circuitos que, a diferencia de los
combinatorios, determinan el valor de sus salidas no solo en función del valor
actual de sus entradas sino que también en función de los valores anteriores de las
mismas

El flip flop es el nombre común que se le da a los dispositivos de dos estados


(biestables), que sirven como memoria básica para las operaciones de lógica
secuencial. Los Flip-flops son ampliamente usados para el almacenamiento y
transferencia de datos digitales y se usan normalmente en unidades llamadas
«registros», para el almacenamiento de datos numéricos binarios. Un grupo de
registros conforman una menoría.

Pulsos Digitales
Las señales pasan de una estado activo 1 a inactivo 0, en un corto periodo de tiempo
Se conocen como estados Alto “1” o Bajo “0”
La transición produce flancos, es decir no es instantánea.
Circuitos Secuenciales – Flip Flop

Los sistema digitales pueden ser:

Asíncronos: Sus salidas puedan cambiar en cualquier momento.


Síncronos: Utilizan una señal de “reloj” para cambiar el estado de la salidas.
Señal de reloj: Tren un de pulsos de onda cuadrada o rectangular.
Circuitos Secuenciales – Flip Flop

Tipos
Circuitos Secuenciales – Flip Flop

Sus características principales son:


Asumen solamente uno de dos posibles estados de salida.
Tienen un par de salidas que son complemento una de la otra.
Tienen una o mas entradas que pueden causar que el estado
del Flip-Flop cambie.

Flip Flops – Sincronizados por reloj: Tiene una entrada de reloj y son
activados por transición Positiva o transición negativa.
Circuitos Secuenciales – Flip Flop

Tipo R- S - asíncrono
Tiene dos salidas que se denominan Q y Q´ (que anotaremos en adelante Q'),
y dos entradas R y S (nombres determinados por sus características, que
veremos al analizar el comportamiento del circuito).
Uno de los problemas que se presentan al intentar utilizar este tipo de
circuitos como elementos de memoria es el hecho que las funciones que
generan los valores de las señales R y S pueden variar en momentos no
deseados y el flip-flop responderá a esos cambios según su tabla de verdad
Circuitos Secuenciales – Flip Flop
Tipo R- S – Síncrono
Cuando la entrada de control (G en el esquema) está en 1, las entradas R y S
aparecen a la entrada de los NOR, pero si la entrada de control está en 0 entonces las
entradas asociadas en los NOR serán 0, lo que asegura que las salidas del flip-flop se
mantendrán incambiadas por más que los valores de R y/o S puedan cambiar. En este
caso donde las entradas se consideran mientras la entrada de control esté en 1, se
dice que el sistema trabaja "por nivel", ya que lo que interesa es el estado de la señal
de control: si vale 1 entonces el resto de las señales serán válidas y si vale 0 no lo
serán. Esta modalidad de funcionamiento se denomina "control por compuerta",
"control por habilitación" ó "control por nivel".

Otro caso corresponde a un circuito donde lo que interesa es la transición de 0 a 1 de


la entrada de control. En este caso se dice que se trabaja con un "reloj (clock) por
flanco".
Circuitos Secuenciales – Flip Flop
Tipo R- S – Síncrono
Se introduce una señal de sincronismo para el circuito (la habilitación ó el reloj) que
indicará cuando son válidos los valores de R y S y cualquier otra señal significativa para
el circuito completo.
Circuitos Secuenciales – Flip Flop
Flip Flop – Tipo JK

Este flip-flop busca resolver definitivamente el problema del flip-flop R-S.


Consiste en dos flip-flops R-S sincrónicos por nivel conectados en
"cascada" y realimentados de la siguiente manera:

Estado de Memoria
Set – Ajuste
Reset – Borrar
Complementa el valor de
salida

Diseño con puertas NAND y puertas NOR


Circuitos Secuenciales – Flip Flop
Flip Flop – Tipo D

Este flip-flop puede verse como una variante del flip-flop R-S, que tiene el
siguiente circuito interno.
En el caso de los flip-flops con entrada de control por flanco, el nuevo valor
de la salida corresponde al valor de la entrada D al momento de la
transición de la entrada de reloj (CLK) de 0 a 1 (es decir el "flanco
ascendente"). Este nuevo valor de la salida es adoptado inmediatamente
después de ocurrido dicho flanco.
Circuitos Secuenciales – Flip Flop
Circuitos Secuenciales – Flip Flop

Flip-flop T

El flip-flop T se obtiene del tipo JK cuando las entradas J y K se conectan


para proporcionar una entrada única designada por T. El flip-flop T, por
lo tanto, tiene sólo dos condiciones. Cuando T = 0 ( J = K = 0) una
transición de reloj no cambia el estado del flip-flop. Cuando T = 1 (J = K
= 1) una transición de reloj complementa el estado del flip-flop

T = 0 -> Memoriza
T = 1 -> Complementa
Circuitos Secuenciales – Flip Flop

Contador Binario

Un contador binario se puede construir con flip-flops J-K tomando la salida


de una celda como la entrada de clock del siguiente. Las entradas J y K de
cada flip-flop se conectan a 1 (alta), para producir una conmutación con
cada ciclo del clock de entrada.
El siguiente diagrama muestra un contador modulo 8.
Circuitos Secuenciales – Flip Flop

Contador Binario decreciente

Un contador binario decreciente, se puede construir uniendo los flips flip,


como se observa en la imagen usando la salida Q´
El siguiente diagrama muestra un contador decreciente modulo 8.
Circuitos Secuenciales – Flip Flop

Truncar un contador binario

El siguiente diagrama muestra un contador creciente, el cual queda truncado para


contar hasta el valor 5. Como se observa en la tabal de verdad para el valor binario 5
(101) ninguna combinación anterior comparte el patrón de 0 y 1. Así usamos las
salidas de “1” de los FF que corresponden (Q-0 y Q-2) para aplicarlo a una puerta
nand que generará el reset en todos los FF (entras a clear)
Circuitos Secuenciales – Flip Flop

Contador Binario

Practicar la secuencia de tiempo de un contador modulo 8


Registros de desplazamiento
Los registros de desplazamiento son circuitos secuenciales formados
por biestables o flip-flops generalmente de tipo D conectados en serie
y una circuiteria adicional que controlará la manera de cargar y acceder
a los datos que se almacenan. En los de desplazamiento se transfiere
información de un flip-flop hacia el adyacente, dentro del mismo
registro o a la entrada o salida del mismo. La capacidad de
almacenamiento de un registro es el numero total de bits que puede
contener.
El funcionamiento se realiza de manera síncrona con la señal de reloj.

Sus funciones dentro del sistema digital son:


• Servir de almacenamiento temporal de un conjunto de bits
sobre los que se está realizando una labor de procesamiento.
•Desplazamiento de datos a lo largo de los flip-flops.
Registros de desplazamiento

Tipos:
o Entrada paralelo / salida paralelo – PIPO
o Entrada serie/salida serie – SISO
o Entrada serie/salida paralelo – SIPO
o Entrada paralelo/salida serie - PISO
o Registros de desplazamiento bidirecional - Universal

Ej PIPO
Memoria

3
Memoria

Organización de una memoria

Un factor importante en el diseño de un chip de memoria es la cantidad de


bits que pueden ser leídos o escritos al mismo tiempo.

Así por ejemplo un chip de memoria de 64 bits, puede tener distintas


organizaciones o configuraciones: 16x4, 32x2, 64x1, 8x8, etc.

Esto establece la relación fila/columna de la matriz de celdas de memoria, el


tamaño de los decodificadores para el direccionamiento y como dijimos en el
primer punto la cantidad de bits a ser accedidos al mismo tiempo.(unidad de
datos)

Esto se relaciona también con la cantidad de chip necesarios para completar


un módulo de memoria y cuantos de estos para formar la palabra de
memoria, concepto que refleja el ancho del bus de datos
Memoria
Organización de una memoria
Memoria
Memoria
Características de las memorias

• Tipo Físico
• Capacidad
• Método de Acceso
• Volatilidad
• Ubicación
• Rendimiento o Performance
Memoria
• Tipo Físico
• Semiconductores
- Circuitos integrados basados en semiconductores para
almacenar información
– Se utilizan principalmente transistores y
capacitores para almacenar bits – Ejemplos:
DRAM, Flash

• Magnético
– Utiliza patrones de magnetización sobre una superficie
magnética – Ejemplos: Discos duro, Cintas (
Cartridge, DDS, etc)

• Óptico
– Almacena información como deformaciones en la
superficie de un disco circular, leyéndola con un laser
que lo ilumina mientras éste gira – Ejemplos: CD, DVD,
Blu Ray
Memoria
• Tipo Físico
Es importante significar que todos los nombres de las unidades de medidas de
información se escriben siempre en minúscula y que el símbolo (compuesto por un prefijo
y la letra B), ambos se escriben en mayúscula. Cuando la B aparezca como b se está
haciendo referencia al bit y no al byte

Desde 1998 la Comisión Electrotécnica Internacional (CEI), del ingles International


Electrotechnical Comisión (IEC), establece los prefijos para el sistema binario, adicionando
bi tras la primera sílaba del prefijo decimal, para especificar que se trata de binario
Memoria
• Método de Acceso
Random (Aleatorio)
– La memoria se organiza como un vector, en el que cada elemento individual de memoria tiene una
dirección única. Se accede a una posición determinada proporcionando la dirección. El tiempo de acceso es
independiente de la posición a la que se ha accedido y es independiente de la última posición a la que se
ha accedido.
Ejemplo: RAM

Asociativo
– Se trata de un tipo de memoria de acceso aleatorio donde el acceso se hace basándose en el contenido y
no en la dirección. Se especifica el valor que se quiere localizar y se compara este valor con una parte del
contenido de cada posición de memoria; la comparación se lleva a cabo simultáneamente con todas las
posiciones de la memoria.
Ejemplo: Memoria caché asociativa

Directo
– La memoria se organiza en bloques y cada bloque de memoria tiene una dirección única, se accede
directamente al principio de un bloque y dentro de este se hace un acceso secuencial hasta llegar a la
posición de memoria deseada – El tiempo de acceso es variable.
Ej: Discos duros

Secuencial
– Se accede desde la última posición a la que se ha accedido, leyendo en orden todas las posiciones de
memoria hasta llegar a la posición deseada.
Ej: Cintas magneticas
Memoria

• Volatilidad

Volátil
– Retiene información sólo mientras este recibiendo alimentación eléctrica
• ej: Memorias principal (RAM) del computador

No Volátil
– Retiene información aún cuando no este siendo alimentada eléctricamente
• ej: ROM, SSD, Disco Duro
Memoria

• Ubicación

 CPU - cache

 INTERNA EXTERNA
Memoria

• Rendimiento o Performance

Tiempo de Acceso
Tiempo que transcurre desde el requerimiento del dato y la
obtención del mismo.

Tiempo de Ciclo
Tiempo que transcurre entre dos operaciones consecutivas
Memoria

SRAM son las siglas de la voz inglesa Static Random Access Memory, que significa memoria
estática de acceso aleatorio (o RAM estática), para denominar a un tipo de tecnología de
memoria RAM basada en semiconductores, capaz de mantener los datos, mientras siga
alimentada, sin necesidad de circuito de refresco.

Este concepto surge en oposición al de memoria DRAM (RAM dinámica), con la que se
denomina al tipo de tecnología RAM basada en condensadores, que sí necesita refresco
dinámico de sus cargas.

Existen dos tipos: volátiles y no volátiles, cuya diferencia estriba en si los datos permanecen o
se volatilizan en ausencia de alimentación eléctrica

Mosfet - Animación : https://www.youtube.com/watch?v=-PrIvMBGEd8


Memoria
Estas memorias son de acceso aleatorio, lo que significa que las posiciones de memoria
pueden ser escritas o leídas en cualquier orden, independientemente de cual fuera la última
posición de memoria accedida. Cada bit en una SRAM se almacena en cuatro transistores,
que forman un biestable (FF). Este circuito biestable tiene dos estados estables, utilizados
para almacena un 0 o un 1. Se utilizan otros dos transistores adicionales para controlar el
acceso al biestable durante las operaciones de lectura y escritura. Una SRAM típica utilizará
seis MOSFET (en inglés metal-oxide-semiconductor field-effect transistor) transistor de
efecto de campo metal-óxido-semiconductor para almacenar cada bit.

Características
La memoria SRAM es más cara, pero más rápida y con un menor consumo (especialmente en
reposo) que la memoria DRAM. Es utilizada, por tanto, cuando es necesario disponer de un
menor tiempo de acceso, o un consumo reducido, o ambos. Debido a su compleja estructura
interna, es menos densa que DRAM, y por lo tanto no es utilizada cuando es necesaria una
alta capacidad de datos, como por ejemplo en la memoria principal de los computadores
personales

SRAM – No Volatiles
Las memorias SRAM no volátiles (NVRAM) presentan el funcionamiento típico de las RAM,
pero con la característica distintiva de que los datos almacenados en ellas son preservados
aun cuando se interrumpe la alimentación eléctrica. Se utilizan en situaciones donde se
requiere conservar la información almacenada sin necesidad de alimentación alguna.
Memoria
DRAM
Son las siglas del ingles Dynamic Random Access Memory, que significa memoria
dinámica de acceso aleatorio (o RAM dinámica), para denominar a un tipo de
tecnología de memoria RAM basada en condensadores, los cuales pierden su carga
progresivamente, necesitando de un circuito dinámico de refresco que, cada cierto
período, revisa dicha carga y la repone en un ciclo de refresco. En oposición a este
concepto surge el de memoria SRAM (RAM estática), con la que se denomina al
tipo de tecnología RAM basada en semiconductores que, mientras siga
alimentada, no necesita refresco.

Familia:
 DRAM
 SDRAM
 SDR SDRAM
 DDR SDRAM (DDR- DDR2-DDR3-DDR4-DDR5)

Se usa principalmente como módulos de memoria principal RAM de ordenadores y


otros dispositivos. Su principal ventaja es la posibilidad de construir memorias con
una gran densidad de posiciones y que todavía funcionen a una velocidad alta: en la
actualidad se fabrican integrado con millones de posiciones y velocidades de acceso
medidos en millones de bit por segundo.
Memoria

Estructura

La celda de memoria es la unidad básica de cualquier memoria, capaz de almacenar un Bit en los
sistemas digitales. La construcción de la celda define el funcionamiento de la misma, en el caso de
la DRAM moderna, consiste en un transistor de efecto de campo y un condensador. El principio de
funcionamiento básico, es sencillo: una carga se almacena en el condensador significando un 1 y sin
carga un 0. El transistor funciona como un interruptor que conecta y desconecta al condensador

Como el dato (0/1) depende de la carga del capacitor y estos se descargan con tiempo debe
restituirse la carga cada cierto tiempo.(REFRESCO)

Animación : https://www.youtube.com/watch?v=bhtKT1JXQZ8
Memoria

Estructura

Para acceder a una posición de memoria, en las


DRAM las direcciones están multiplexadas en
tiempo, es decir se envían por mitades. Las
entradas marcadas como a0 y a1 son el bus de
direcciones y por el mismo entra la dirección de
la fila y después la de la columna.

Las direcciones se diferencian por medio de


señales de sincronización llamadas RAS (del
inglés Row Address Select) y CAS (Column
Address Select) que indican la entrada de cada
parte de la dirección.
Memoria
SDRAM

Por sus siglas en ingles (siglas en inglés de synchronous dynamic random-access memory)
es una familia de memorias dinámicas de acceso aleatorio (DRAM) que tienen una
interfaz síncrona

Tradicionalmente, la memoria dinámica de acceso aleatorio DRAM tenía una interfaz


asíncrona, lo que significaba que el cambio de estado de la memoria se efectúa en un
cierto tiempo (marcado por las características de la memoria) desde que cambian sus
entradas. En cambio, en las SDRAM el cambio de estado tiene lugar en un momento
señalado por una señal de reloj y, por lo tanto, está sincronizada con el bus de sistema del
ordenador
Memoria
SDRAM

Sincronizada por un flanco descendente del pulso de reloj


Memoria
SDRAM
SDR SDRAM (Single Data Rate SDRAM o SDRAM de tasa de datos simple)

DDR SDRAM (Double Data Rate SDRAM o SDRAM de tasa de datos doble)
Memoria

Medidas

 Capacidad (MB,GB)
 Frecuencia (MHz) ciclos por segundo
 Latencia: Tiempo requerido para acceder (lectura/escritura) a un dato
 Transferencia de datos (Mb/s)

Modelo de 1 GB DDR-400 PC3200: Representa un modulo de 1 GB del tipo DDR


con una tasa de trabajo de 400 MHz y una tasa de transferencia de 3200 Mb/s

Módulos
SIMM: Single In-line Memori Module
DIMM: Dual In-line Memory Module
Memoria
DDR - SDRAM
Memoria
DDR - SDRAM

•Memoria RAM DDR: lanzada en el año 2000, no empezó a usarse hasta casi 2002. Operaba a 2.5 V y 2.6 V
y su densidad máxima era de 128 MB (por lo que no había módulos con más de 1 GB) con una velocidad de
266 MT/s (100-200 MHz).
•Memoria RAM DDR2: lanzada hacia 2004, funcionaba a un voltaje de 1.8 voltios, un 28% menos que DDR.
Se dobló su densidad máxima hasta los 256 MB (2 GB por módulo). Velocidad máxima llegando a 533 MHz.
•Memoria RAM DDR3: este lanzamiento se produjo en 2007, y supuso toda una revolución porque aquí se
implementaron los perfiles XMP (Extreme Memory Profile). Para empezar los módulos de memoria
operaban a 1.5 V y 1.65 V, con velocidades base de 1.066 MHz, pero que llegaron mucho más allá, y la
densidad llegó hasta a 8 GB por módulo.
•Memoria RAM DDR4: Lanzamiento 2014. Se reduce el voltaje hasta 1.05 y 1.2 V. La velocidad se ha visto
notablemente incrementada y cada vez lanzan memorias más rápidas de fábrica, pero su base comenzó en
los 2133 MHz. Actualmente ya hay módulos de 32 GB, pero esto también se va ampliando poco a poco.
•Memoria RAM DDR5: Su lanzamiento comercial se produjo a finales en el 2021, llegará a anchos de
banda de hasta 6.4 Gbps en sus modelos iniciales. Además, su consumo bajará por la clásica reducción de
voltaje, esta vez a 1.2 V y posteriormente se conseguirán velocidades más elevadas de hasta 10 o 12 Gbps
con solo 1,1V. Su capacidad de almacenamiento máxima en un módulo de memoria es de 128 GB y tiene la
particularidad de traer por primera vez la capacidad de variar el voltaje y con ello la velocidad de reloj
dentro de la propia unidad DIMM. Este controlador se denomina PMIC y representa el mayor salto
evolutivo en la memoria RAM de la historia por las capacidades que posee.
Memoria
Memoria
Placas de memorias en la que se podían insertar chips hasta 256 k

DDR5
Memoria

Tipo de Lectura Secuencial


Memoria
CACHE

Cuando el procesador necesita acceder a una información para hacer sus tareas, esta
información es pedida a la RAM que la proporciona al procesador tan rápido como
puede. Este proceso no es instantáneo, sino que se necesita un tiempo, varios ciclos de
reloj dependiendo de la latencia, solo son unos nanosegundos, pero, aunque a nosotros
nos parezca que no es nada en realidad es un mundo y mientras el procesador está
esperando se pierde la oportunidad de hacer otros cálculos y operaciones.
Para solucionar este problema se creó la memoria caché, esta no es más que
una pequeña cantidad de memoria que está dentro del procesador, la finalidad de la
memoria caché es hacer que el acceso a la información por parte del procesador sea lo
más rápida posible. La memoria caché está dentro del procesador por lo que la
información tiene que viajar muy poco hasta llegar al lugar donde se procesa, por lo
que el tiempo que se necesita para acceder a ella es mucho más reducido que en el caso
de la RAM

 Es una memoria rápida, de poca capacidad ( en el orden de KB y MB


generalmente)ubicada entre los Registros de la Unidad Central de Proceso y la
Memoria Dinámica.
 Generalmente SRAM.
 No es accedida por su dirección, sino por su contenido. Por eso se la conoce como
CAM (Content Adressable Memory).
Memoria
Clasificación
1.L1d (datos) y L1i (instrucciones): en los procesadores multinucleo se alojan en cada
núcleo
2.L2: Pueden estar según la configuración del procesador en cada núcleo o compartir
cada dos núcleos
3.L3 (LLC): Es compartida por el procesador para todos los núcleos.
Memoria
Principio de Uso de las Memorias Cache

Principio de localidad de las referencias: Los programas tienden a reusar datos e


instrucciones en direcciones de memoria próximas entre sí o que han sido
usados recientemente.
–Localidad Temporal: Los objetos recientemente
referenciados es muy probable sean referenciados en el futuro cercano.
–Localidad Espacial: Los objetos con direcciones próximas
tienden a volver a ser referenciados.

Acceder a la memoria principal, o RAM, se puede demorar unos 100 ciclos de


reloj, lo que equivaldría a unos 50 ns. Puede parecer poco, pero son 100 ciclos
en los que el procesador podría haber ejecutado decenas de instrucciones y ha
tenido que esperar. En cambio, para acceder a la L1, por su baja latencia, podría
hacerlo entre 3-5 ciclos nada más, mientras que para la L2 puede ir desde los 8-
20 ciclos, y desde 30-80 ciclos para la L3. Esto significa una ganancia de tiempo
que se traduce en un aumento del rendimiento bastante considerable
Memoria
1.L1d (datos) y L1i (instrucciones) la CPU buscará primero en la L1, si se
encuentra lo que busca se produce un hit y se obtiene el dato y la instrucción
rápidamente, ya que se encuentra allí alojada de ejecuciones anteriores. En caso
de que no se encontrase se produce un fallo o miss.
2.L2: al producirse el fallo en el L1, lo siguiente que haría la CPU es buscar en la L2
si se encuentra el dato y la instrucción (recuerda que esta memoria está
unificada). Si se localiza aquí se produce un hit y se obtienen para su ejecución.
En caso contrario, se produce un fallo en la L2 y se pasa al siguiente nivel.
3.L3 (LLC): la CPU buscará la información que necesita en este otro nivel, si se
encuentra se produce un hit y se obtiene, si no se encuentra se produce un miss.
4.Memoria principal o RAM & E/S: en caso de que en el LLC de la CPU no esté
presente lo que se busca, la CPU optará por buscarlo en la RAM, que llevará más
ciclos por la mayor latencia. Es muy probable que se encuentre allí. Sin embargo,
puede darse el caso de que no lo esté…
5.Memoria secundaria (SWAP o memoria virtual): entonces el S.O. deberá pasar
el proceso con el dato e instrucción buscada a mayor prioridad, pasándolo desde
la memoria de intercambio o memoria virtual hasta la RAM. Una vez cargada en
la RAM, la CPU podrá acceder a ella. Por tanto, este paso es el que implica mayor
número de ciclos de espera y es lo que se busca evitar.
Memoria
Organización de la cache o Mapeo.

1. Correspondencia Directa
2. Correspondencia Totalmente Asociativa
3. Correspondencia Asociativa por conjuntos
Memoria

Políticas de escritura

• Write Through: Escritura a través – Cada vez que se


escribe en la cache, se escribe simultáneamente en la
memoria principal
• Write Back: Escritura diferida – Siempre se escribe en
la cache. – La memoria principal se escribe sólo cuando
se va a reemplazar el bloque escrito en la cache
Políticas de Reemplazo

•Correspondencia Directa – No hay elección. La línea


seleccionada es la que debe ser reemplazada
• Correspondencia Asociativa –
Random –
Round-robin –
FIFO. Reemplaza la línea mas antigua –
LRU (Last Recent Used):Se reemplaza la línea que no
ha sido usada desde hace mas tiempo
Memoria

Disco Duro - Organización


Memoria
El formato lógico
• Para poder usar un disco duro, es necesario crear una estructura lógica a través de un
procedimiento denominado formateo lógico.
• Se realiza por medio de herramientas o comandos del sistema operativo.
• El disco se divide en particiones, en cada una de las cuales se puede instalar distintos
sistemas operativos.
• Se crea una estructura denominada sistema de archivos, dependiente del sistema
operativo, que crea una relación entre los directorios y archivos del usuario y los sectores
del disco.

Tiempo de acceso
• Tiempo de Búsqueda: Es el tiempo que tarda el disco en desplazar el brazo desde la
posición actual hasta la pista deseada. Los valores medios se encuentran entre 3 ms y 14 ms.
• Latencia Rotacional: Es el tiempo que tarda en situarse sobre el sector deseado, una vez
que se encuentra sobre la pista correcta. Depende de la velocidad de rotación del disco. Para
discos de 15.000 rpm el valor promedio es de 2 ms.
• Tiempo de transferencia: Es el tiempo en que tarda en transferir un bloque de bits.
• Tiempo del controlador: Tiempo que le toma al controlador realizar una operación de
lectura o escritura
• Tiempo de acceso: Es la suma de los tiempos anteriores
Memoria

Discos Ópticos

Se denominan asi pues su funcionamiento se basa en un haz de luz laser que se


refleja en la superficie de un disco en el que se han inscripto mesetas y valles.
La luz reflejada es interpretada por un sistemas óptico como unos o ceros.
• La capacidad de los medios depende del tamaño de los pits y lands y de la
longitud de onda de la luz empleada.
Memoria
Memoria
Cuando hablamos de memoria ROM (acrónimo de Read–Only Memory, es
decir, Memoria de Sólo Lectura), nos referimos a un tipo de almacenamiento
empleado en computadoras y otros dispositivos electrónicos, que se caracteriza por
ser únicamente de acceso para lectura y nunca para escritura, es decir, que se la puede
recuperar pero no modificar o intervenir.
La memoria ROM es de acceso secuencial y su presencia es independiente de la
presencia de una funte de energia. Como se ha dicho, su contenido no puede
modificarse, o al menos no de manera simple y cotidiana, y suele contener
informacion introducida en el sistema por el fabricante, de tipo básico, operativo o
primario.

La memoria ROM tiene dos usos principales, que son:

•Almacenamiento de software. Comúnmente, los ordenadores en la década de 1980 traían todo


su sistema operativo almacenado en ROM, para que los usuarios no pudieran alterarlo por error
e interrumpir el funcionamiento de la máquina. Aún hoy en día se la utiliza para instalar
el software de arranque o de funcionamiento más básico (el BIOS, SETUP y POST, por ejemplo).
•Almacenamiento de datos. Dado que los usuarios no suelen tener acceso al ROM de un
sistema, se lo emplea para almacenar los datos que no requerirán de modificación alguna en la
vida del producto, como tablas de consulta, operadores matemáticos o lógicos y otra información
de índole técnica.
Memoria
Consideremos tres tipos distintos de memoria ROM:

•PROM. Acrónimo de Programmable Read–Only Memory (Memoria de Sólo Lectura


Programable), es de tipo digital y puede ser programada una única vez, ya que cada
unidad de memoria depende de un fusible que se quema al hacerlo.

•EPROM. Acrónimo de Erasable Programmable Read–Only Memory (Memoria de Sólo


Lectura Borrable y Programable) es una forma de memoria PROM que puede borrarse al
exponerse a luz ultravioleta o altos niveles de voltaje, borrando la información contenida
y permitiendo su remplazo.

•EEPROM. Acrónimo de Electrically Erasable Programmable Read-


Only Memory (Memoria de Sólo Lectura Borrable y Programable Eléctricamente) es una
variante del EPROM que no requiere rayos ultravioleta y puede reprogramarse en el
propio circuito, pudiendo acceder a los bits de información de manera individual y no en
conjunto.
Arquitectura Von Neumann
Esta arquitectura está conformada por una
unidad de procesamiento que contiene:

•Una unidad aritmético lógica y


registros del procesador,
•Una unidad de control que contiene un
registro de instrucciones y un contador
de programa,
•Una memoria para almacenar tanto
datos como instrucciones,
•Almacenamiento masivo externo,
•Y mecanismos de entrada y salida

Tradicionalmente los sistemas con


microprocesadores se basan en esta
arquitectura, en la cual la unidad central de
proceso (CPU), está conectada a
una memoria principal única (casi siempre
sólo RAM) donde se guardan las instrucciones
del programa y los datos. A dicha memoria se
accede a través de un sistema de buses
único (control, direcciones y datos)
Arquitectura Von Neumann
Características
La maquina de Von Neumann se fundamente en 3 principios:
1. Trabaja con binarios.
2. Programa almacenado en memoria.
3. Posibilidad de provocar una ruptura de secuencia de instrucciones en un programa.

Procesamiento secuencial de las instrucciones

– Se procesa una instrucción por vez.


– Un registro especial denominado Puntero de Instrucción o Contador de Programa
identifica la instrucción en curso.
– Este registro se autoincrementa apuntando siempre a la próxima instrucción, excepto
para instrucciones de transferencia de control ( Ruptura de Secuencia)
Arquitectura Von Neumann
Conceptos Generales: La ejecución de una instrucción de ruptura permite en determinado
lugar del programa se salte a una instrucción que no es la siguiente.

La arquitectura del set de instrucciones determina el formato de las instrucciones, tipos de


datos que puede operar, y las distintas formas de obtener los datos de memoria, a esto
último se lo conoce como modo de direccionamiento.

Multiprogramación método que consiste en que varios programas residan en forma


simultánea en memoria en estado de ejecución.

La decodificación convierte código binario a código de usuario. Cada instrucción del


programa es transferida desde la memoria a la CPU, y el módulo de control se encarga de
organizar en el tiempo el conjunto de operaciones que permiten su ejecución. A cada una de
estas operaciones se las denomina microoperaciones(son elementales).

Byte unidad minina de información. Palabra de la CPU unidad de trabajo de CPU expresada
en bits.

Denominamos Señal de reloj o clock a una señal que oscila a intervalos regulares entre 0 y 1.
El tiempo en que transcurre en completarse un ciclo de reloj es un periodo de reloj. La
frecuencia se expresa en Hz. La relación es T = 1/F, 1Ghz 1 000 000 000 por segundo.
Arquitectura Von Neumann
Esta arquitectura asume que todo cálculo extrae los datos de la
memoria, los procesa y luego los envía de regreso a la memoria. El
tener un único bus hace que el microprocesador sea más lento en su
respuesta, ya que no puede buscar en memoria una nueva instrucción
mientras no finalicen las transferencias de datos de la instrucción
anterior

Las principales limitaciones

Las principales limitaciones que nos encontramos con la arquitectura


Von Neumann son:
 La limitación de la longitud de las instrucciones por el bus de
datos, que hace que el microprocesador tenga que realizar varios
accesos a memoria para buscar instrucciones complejas.
 La limitación de la velocidad de operación a causa del bus único
para datos e instrucciones que no deja acceder simultáneamente
a unos y otras, lo cual impide superponer ambos tiempos de
acceso. Esto se conoce como el cuello de botella Von Neumann,
y muchas veces limita el rendimiento del sistema
Arquitectura Von Neumann

Contenido de la memoria
Que se almacena en la memoria?

• Datos
– Numéricos ( enteros sin signo, con signo, reales en coma flotante,
BCD, etc.)
– Alfanuméricos ( ASCII, UTF, EBCDIC, etc)
– Booleanos
– Estructuras de datos complejas

• Instrucciones
Definen las acciones que debe realizar la CPU.
Arquitectura Harvard

El término proviene de la computadora Harvard Mark I basada en relés, que


almacenaba las instrucciones sobre cintas perforadas (de 24 bits de ancho) y los
datos en interruptores electromecánicos
Este modelo, tiene la unidad central de proceso (CPU) conectada a dos
memorias (una con las instrucciones y otra con los datos) por medio de dos
buses diferentes
Arquitectura Harvard
La arquitectura Harvard es una configuración de la computadora en la
que los datos y las instrucciones de un programa se encuentran en celdas
separadas de memoria, que se pueden abordar de forma independiente.

Una de las memorias contiene solamente las instrucciones del


programa (Memoria de Programa), y la otra sólo almacena datos (Memoria
de Datos).

Ambos buses son totalmente independientes, lo que permite que la CPU


pueda acceder de forma independiente y simultánea a la memoria de
datos y a la de instrucciones. Como los buses son independientes, éstos
pueden tener distintos contenidos en la misma dirección y también distinta
longitud.
También la longitud de los datos y las instrucciones puede ser distinta, lo
que optimiza el uso de la memoria en general.

En algunos sistemas, se pueden almacenar instrucciones en memoria de


solo lectura mientras que, en general, la memoria de datos requiere
memoria de lectura-escritura
Arquitectura Harvard

Ventajas de esta arquitectura

• El tamaño de las instrucciones no está relacionado con el de los datos, y


por lo tanto puede ser optimizado para que cualquier instrucción ocupe
una sola posición de memoria de programa, logrando así mayor velocidad y
menor longitud de programa.

• El tiempo de acceso a las instrucciones puede superponerse con el de los


datos, logrando una mayor velocidad en cada operación.
Arquitectura de procesador RISC - CISC
RISC: Reduced Instruction Set Computer
CISC: Complex Instruction Set Compute

Los procesadores RISC tienen pocas instrucciones por lo que necesitan suplir la falta de instrucciones
por otras más complejas, pero a cambio consiguen una mayor velocidad a la hora de ejecutarlas
debido a su ligereza. Los procesadores CISC en cambio tienen conjuntos de instrucciones mucho más
complejos que requieren una construcción mas compleja del hardware, pero a cambio realizan
dichas instrucciones en menos ciclos

Las máquinas RISC protagonizan la tendencia actual de construcción de microprocesadores.


PowerPC, DEC Alpha, MIPS, ARM, SPARC… son ejemplos de algunos de ellos.
RISC es una filosofía de diseño de CPU para computadora que está a favor de conjuntos de
instrucciones pequeñas y simples que toman menor tiempo para ejecutarse.
El tipo de procesador más comúnmente utilizado en equipos de escritorio, el x86, está basado en
CISC en lugar de RISC, aunque las versiones más nuevas traducen instrucciones basadas en CISC x86
a instrucciones más simples basadas en RISC para uso interno antes de su ejecución
Componentes del CPU
 Unidad de control (CU)
 Unidad Aritmética Lógica (ALU)
 Registros
 Caché
 Buses
 Reloj
Componentes del CPU

La unidad de control

Controla la forma en que los dispositivos de entrada y salida, la unidad


aritmética y lógica y la memoria de la computadora responden a la instrucción
enviada a la CPU. Obtiene la entrada, la convierte en una forma decodificada y
luego la envía para su procesamiento al procesador de la computadora, donde
se realiza la operación deseada

Funciones de la unidad de control:

-Controla la secuencia en la que las instrucciones entran y salen del procesador y


también la forma en que se ejecutan.
-Es responsable de obtener la entrada, convertirla en señales y almacenarla para
su posterior procesamiento.
-Controla el funcionamiento de otros componentes de la CPU como ALU y
Registros
Componentes del CPU
La Unidad Aritmética y Lógica: Es responsable de los cálculos aritméticos y lógicos, así
como de la toma de decisiones en el sistema. También se le conoce como el cerebro
matemático de la computadora. La ALU utiliza registros para los cálculos. Toma la
entrada de los registros de entrada, realiza operaciones con los datos y almacena la salida
en un registro de salida.

Funciones de ALU:
•Se utiliza principalmente para tomar decisiones como realizar operaciones aritméticas y
lógicas.
•Actúa como un puente entre la memoria principal de la computadora y la memoria
secundaria. Toda la información que se intercambia entre la memoria primaria y
secundaria pasa a través de la ALU.
Componentes del CPU
Registros
Son una parte de la memoria de una computadora que se utiliza para almacenar las
instrucciones temporalmente para proporcionar al procesador las instrucciones en momentos
de necesidad. Estos registros también se conocen como registros de procesador, ya que
desempeñan un papel importante en el procesamiento de datos. Estos registros almacenan
datos en forma de dirección de memoria y después de que se completa el procesamiento de la
instrucción presente en esa dirección de memoria, almacena la dirección de memoria de la
siguiente instrucción. Hay varios tipos de registros que realizan diferentes funciones.

En el i8086 los datos mayores de un byte se almacena en el formato “little endian”, es decir, el
byte más bajo ocupa la dirección más baja de memoria y el byte más significativo la más alta
(para datos de 16 bits).

Funciones de los registros:


Los registros de entrada: se utilizan para transportar la entrada.
Los registros de salida: se utilizan para transportar la salida.
Los registros temporales: almacenan datos temporalmente.
Los registros de direcciones: almacenan la dirección de la memoria.
El contador de programa: almacena la dirección de las instrucciones.
Los registros de datos: contienen el operando de la memoria.
Los registros de instrucción: contienen los códigos de instrucción.
Componentes del CPU
Registros
Cada modelo de procesador tiene sus propios registros de estados
(Flags), pero los más comunes son:
•Z = Zero flag: El resultado es cero.
•S = Sign flag: El resultado es negativo.
•V = Overflow flag: El resultado supera el número de bits que
puede manejar la ALU
•P = Parity flag: Paridad del número de 1 en los datos.
•I = Interrupt flag: Se ha producido una interrupción.
•C = Carry flag: Acarreo de la operación realizada.

Los primeros cuatro, AX, BX, CX, y DX son registros de uso general y
también pueden ser utilizados como registros de 8 bits, para
utilizarlos como tales es necesario referirse a ellos como por
ejemplo: AH y AL, que son los bytes alto (high) y bajo (low) del
registro AX. Esta nomenclatura es aplicable también a los registros
BX, CX y DX.
AX, AH, AL (Acumulador): a menudo conserva el resultado
temporal después de una operación aritmética o lógica.
BX, BH, BL (Base): Se utiliza para guardar la dirección base de listas
de datos en la memoria.
CX, CH, CL (Contador): Contiene el conteo para ciertas
instrucciones de corrimientos y rotaciones, de iteraciones en el
ciclo loop y operaciones repetidas de cadenas.
DX, DH, DL (Datos): Algunas operaciones
de entrada/salida requieren su uso Contiene la parte más
significativa de un producto después de una multiplicación
Componentes del CPU
Registros
Registros De Segmentos:
CS (Código): Tiene la dirección lógica del segmento
en que se encuentra el código de un programa. Si el
código ocupa más de un segmento, contiene la
dirección lógica de uno de los segmentos.
DS (Datos): Tiene la dirección lógica del segmento
en que se encuentran los datos estáticos de un
programa. Si los datos ocupan más de un segmento,
contiene la dirección lógica de uno de los segmentos.
ES (Extra): Este registro también tiene la
dirección lógica de uno de los segmentos en que
se encuentran los datos estáticos de un
programa. Este registro se utiliza en ciertas
operaciones del microprocesador para el manejo de
cadenas.
SS (Pila): Tiene la dirección lógica del segmento en
que se encuentran la pila del sistema. La pila no
puede ser mayor a un segmento.
Componentes del CPU
Registros
Registros Apuntadores Y De Índices:

IP (Apuntador de instrucciones): Contiene siempre el


desplazamiento con respecto al segmento de código de
la localidad de memoria que contiene la siguiente
instrucción que va a ejecutar el microprocesador.
SP (Apuntador de pila): Contiene el desplazamiento con
respecto al segmento de pila del tope de la pila del
programa. El registro SP se emplea para direccionar
datos en la pila cuando se ejecutan las instrucciones
push y pop y cuando se llama o se regresa de un
procedimiento mediante las instrucciones: call y ret,
respectivamente.
BP (Apuntador de base): Contiene el desplazamiento
con respecto al segmento de pila de datos almacenados
en la pila de un programa.
SI (Índice fuente): Contiene el desplazamiento
con respecto al segmento de datos de un elemento
de un arreglo o cadena.
DI (Índice destino): Contiene el desplazamiento con
respecto al segmento extra de un elemento de una
cadena o arreglo.
Componentes del CPU
Registros
Registros de Control:
Se utilizan para controlar las operaciones del procesador, la mayor parte de estos registros
no son visibles al usuario y algunos pueden ser accesibles a las instrucciones de maquina
ejecutadas en un modo de control. Los registros utilizados son los siguientes:

•Registro de direcciones de memoria (MAR), el cual contiene la dirección en donde se


efectuará la próxima lectura o escritura de datos. El numero de direcciones depende del
tamaño de la MAR.
•Registro de datos de memoria (MBR), contiene los datos que van a ser escritos en la
memoria o los que fueron leídos en ella.
•Registro de instrucciones (IR), contiene la dirección de la siguiente instrucción que se va a
ejecutar.
•Registro de direcciones de entrada y salida (I/O AR), especifica al dispositivo ya sea de
entrada o salida.
•Registro de datos de entrada y salida (I/O BR), es una área temporal en donde se lleva a
cabo el intercambio de datos entre el procesador y el dispositivo de entrada y salida que
esta especificado en IOAR.
.
Componentes del CPU

Registros
Según la arquitectura del procesador los registros podrán ser:
Instrucciones
“Las palabras del lenguaje de una computadora son las instrucciones y su
vocabulario se denomina el “set de instrucciones”.

• Los diseñadores tienen un objetivo común: diseñar un lenguaje que haga mas
fácil construir el hardware y el compilador, mientras se maximiza la performance
y el costo.

Formato de una Instrucción

• Toda instrucción consta de 2 elementos


Código de operación: Especifica que operación debe
realizar la CPU. Ej. de operaciones: sumar, restar, cargar, etc.

Operandos: especifican con que elementos se llevaran a cabo las


operaciones de la CPU: Ej: sumar a y b
Instrucciones

Tipos de instrucciones

• De Transferencia
Mueven datos entre lugares de almacenamiento:
a)Registro a Registro
b)Registro a Memoria
c)Memoria a Registro
d)Memoria a Memoria
• Aritméticas
• Lógicas
• De ruptura de secuencia
a)Salto Incondicional
b)Salto Condicional
c)Llamada a Procedimiento
d)Interrupciones
• De Entrada-Salida Tipo
Componentes del CPU
Fases de ejecución del CPU

Visitar: https://www.youtube.com/watch?v=KaGoFAy8Bqs
Fases de ejecución del CPU

Vamos a suponer en este ej: que la instrucción se capto y en la posición “0039” se encuentra la instrucción
“0700””
Fases de captación y ejecución del CPU
Fases de captación y ejecución del CPU
Verificar Resultados
Modos de direccionamiento
Modo de direccionamiento Implícito o Inherente: Se refiere en general a instrucciones
que utilizan un solo byte. El operando asociado a la Instrucción está contenido en un registro
de CPU, y por ello resulta implícito en el código de operación y no es necesario hacer
referencia a ninguna dirección: Ejemplo: INT 3 (activa el procedimiento de interrupción) CLI:
Desactiva las interrupciones

Relativo. La dirección de memoria en la que se encuentra el operando se calcula sumando un


desplazamiento indicado en la instrucción al contenido de un registro también indicado en la
instrucción. Dependiendo del registro que se emplee se denomina de diferentes maneras: relativo a
registro base, a registro índice, a contador de programa o a pila
Assembler
 Utilización para la ejercitación DOSBOX y DEBUGX
 Alternativa emulador on-line Vonsim desde https://vonsim.github.io/

;--- Registro ---


Ejemplo con Vonsim MOV AX, BX
org 1000h INC BX
; variables
var1 DB 5 ;--- Directo ---
var2 DB 10 MOV BL , var1
var3 DB 16h MOV var2 , Bl
var4 DW 1234h
;--- Inderecto por registro ---
org 2000h; código MOV BX,1000h
MOV BL, var1 MOV AX, [BX]
MOV AL, var2 ;----MOV BX,
ADD AL, BL
OFFSET var2
;Tipos de Direccionamiento; MOV AX, [BX]
--- Inmediato ---
MOV BX, 10 Hlt
ADD BX, 1 end
int 3
Assembler
 Utilización para la ejercitación DOSBOX y DEBUGX
 Revisar guía de instalación envías por autogestión
 Revisar y utilizar guía de instrucciones envías por autogestión
Ej: Como guardar un programa en Debug

Utilizar los comando

 H: Permite definir la longitud del programa. H {pos. final} {pos. inicial}


 N: Permite nombrar el programa “extensiones .com - .dbg - .exe” usar nombres cortos
 RCX: Permite cambiar el valor de “CX” con el de H {segundo valor de h}.
 W: Permite escribir en disco el programa.

Para poder recuperar un programa guardado. Desde la línea de comando

 N {nombre del programa}


 L: Permite cargar el programa
 U: Desensambla el programa y agrego la referencia del puntero de código cs: {pos. Inicial
del programa} Ej. U cs:0100
Guía de repaso
1- Determine el modo de direccionamiento para cada instrucción:
CLC :
MOV AX, [SI+2] :
MOV SI, 2000 :
2- Determine cuales de las siguientes instrucciones son válidas o incorrectas: ( V/F )
MOV 2000,AX: / MOV BL, AX : / MOV AH,[AL]:
ADD AL, [SI +BX+02]:
3-Asigne los niveles correspondientes en la jerarquía de memoria del computador.
4- Cuales son los registros que intervienen en la fase de búsqueda de una instrucción ?
5- Cual es la principal diferencia entre la arquitectura Von Neuman y la Harvard.
6- Diseñe un circuito contador decreciente modulo 8.
7- Los registros de que tipo de memoria son:
DDR : / SDRAM: / SRAM: / Flash:
8- En cuál de los siguientes flip-flops existe la condición prohibida?
9 -La memoria que tiene una doble tasa de transferencia de datos en un mismo ciclo de reloj se
llama:
SDRAM : / SRAM : / DDR SDRAM : / DIMM:
10- Según el siguiente programa. Indique que línea esta por ejecutarse ?

También podría gustarte