Resumen Sobre Arquitectura de Las Computadoras (Segunda Versión)
Resumen Sobre Arquitectura de Las Computadoras (Segunda Versión)
Resumen Sobre Arquitectura de Las Computadoras (Segunda Versión)
SISTEMAS NUMÉRICOS
SISTEMA DE NUMERACIÓN: es un conjunto de símbolos y reglas que permiten construir números.
SÍMBOLO: es una representación que puede usarse para hacer referencia a una cantidad o número.
NUMERAL (O CIFRA): es un conjunto o grupo escrito de símbolos, ordenado de una manera determinada y
única que representa una cantidad.
OM
UN SISTEMA NUMÉRICO ESTÁ FORMADO POR:
Un conjunto finito y no vacío de símbolos (alfabeto).
Un conjunto de reglas para formar los símbolos numerales.
Un conjunto de reglas para operar entre los numerales.
.C
CLASIFICACIÓN DE LOS SISTEMAS NUMÉRICOS:
SISTEMA NUMÉRICO NO POSICIONAL: el valor está determinado por el símbolo. Ejemplo: números
romanos y egipcios.
DD
SISTEMA NUMÉRICO POSICIONAL: cada símbolo o dígito tiene un significado (o peso) distinto según la
posición que ocupa en la cifra.
𝐍𝐁 = ∑ 𝐝𝐤 . 𝐁𝐤
𝐤=𝟎
Ejemplo:
𝐍 = 𝟐𝟖𝟓𝟏𝟎 = 𝟐. 𝟏𝟎𝟐 + 𝟖. 𝟏𝟎𝟏 + 𝟓. 𝟏𝟎𝟎 = 𝟐𝟎𝟎 + 𝟖𝟎 + 𝟓 = 𝟐𝟖𝟓
SISTEMAS DE NUMERACIÓN:
Binario 0 1
Octal 0 1 2 3 4 5 6 7
Decimal 0 1 2 3 4 5 6 7 8 9
Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F
1
Este archivo fue descargado de https://filadd.com
Sistema posicional decimal: también denominado de base o raíz diez, por utilizar diez símbolos (que
forman la sucesión monótona creciente 0, 1, 2, 3, 4, 5, 6, 7, 8, 9) permite representar cualquier número de
elementos combinando dichos símbolos.
Sistema en base ocho u octal: en base ocho los símbolos van del 0 al 7 con los cuales se puede formar
cualquier número.
Sistema en base dos o binario: en base dos los símbolos con los cuales se puede formar cualquier número
son 0 y 1.
Sistema en base dieciséis o hexadecimal: En hexadecimal los símbolos van del 0 a F, con los cuales se
puede formar cualquier número.
OM
Bits y Bytes: Un bit (binary digit) es un dígito binario, por lo que es un símbolo que puede valer 0 ó 1. Un
byte es un conjunto de 8 bits. El tamaño de las memorias se mide en bytes. En el interior de un procesador
se opera con múltiplos pares de un byte: 2, 4, 8, 16, 32, 64, 128 bits.
¿Cuántos bits se necesitan por cada dígito decimal a representar? Con 2 bits se forman 4=22
.C
combinaciones binarios, con 3 bits se forman 8=23 combinaciones, mientras que con 4 bits se forman
16=24 combinaciones. El exponente de dos indica la cantidad de bits que se necesitan para formar un
número de combinaciones que es potencia de dos, siendo que, si el exponente aumenta en uno, el número
de combinaciones se duplica. Un número aproximadamente igual de combinaciones distintas se forman
DD
con 10 bits en binario, y con 3 dígitos en decimal. O sea, unos 10 bits por cada 3 dígitos decimales, lo que
da 3,33 bits por cada dígito decimal.
Ejemplos:
100002 → 24x1+23x0+22x0+21x0+20x0 = 1610
2
Este archivo fue descargado de https://filadd.com
iguala o es menor que el número decimal a convertir, se colocará un uno debajo del valor de la
pesa; y si ese resultado supera dicho número se coloca un cero, para indicar que esa pesa no se usa
para balancear.
3- Los unos y ceros así determinados de izquierda a derecha son los bits del número binario buscado.
Ejemplos:
256 128 64 32 16 8 4 2 1
28410 → 1 0 0 0 1 1 1 0 0 = 1000111002
512 256 128 64 32 16 8 4 2 1
66510 → 1 0 1 0 0 1 1 0 0 1 = 10100110012
OM
dicho número, o que presenta el valor menor más próximo al mismo; y a partir de ese valor se
escriben en base diez los sucesivos valores decrecientes de las pesas hexadecimales hasta el valor
uno, siendo cada valor dieciséis veces menor que el anterior.
Ejemplos:
257410 →
256 16 1
A 0 E = A0E16
804510 →
4096 256 16 1
.C
1 F 6 D = 1F6D16
dígito hexadecimal correspondiente a ese cuarteto, siendo que si dicho número es del 0 al 9 será el
mismo en hexa; y si el mismo es 10 el dígito hexadecimal será A, si es 11 será b, etc.
Ejemplos:
FI
8 4 2 1 8 4 2 1 8 4 2 1
1100111002 → 0001 1001 1100 = 19C16
1 8+1=9 8+4=C
8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1
10100000111101112 → 1010 0000 1111 0111 = A0F716
8 4 2 1 8 4 2 1 8 4 2 1
11000111012 → 0011 0001 1101 = 31D16
2+1=3 1 8+4+1=D
4 2 1 4 2 1 4 2 1
11011012 → 001 101 101 = 1558
1 4+1=5 4+1=5
3
Este archivo fue descargado de https://filadd.com
2- Convertir cada dígito hexadecimal de 0 a F a decimal, y este número a su vez en un cuarteto de
pesos 8-4-2-1 por el método de las pesas.
3- El conjunto de cuartetos así formados constituirá el número binario buscado.
Ejemplos:
A 0 7
A0716 → 8 4 2 1 8 4 2 1 8 4 2 1 = 1010000001112
1010 0000 0111
1 0
1016 → 8 4 2 1 8 4 2 1 = 100002
0001 0000
OM
OPERACIONES ARITMÉTICAS CON NÚMEROS BINARIOS
SUMA DE BINARIOS: Para sumar en binario se debe tener presente que en la sucesión de los números
naturales 0, 1, 10, 11, … si se suma cero a un número debe resultar el mismo, y si se suma 1 debe
obtenerse el siguiente.
Ejemplo:
110110100 + 11010110:
.C
DD
1111 1
110110100
+
11010110
1010001010
RESTA DE BINARIOS: La tabla de restar binaria es la siguiente:
0–0=0
LA
1–0=1
1–1=0
0 – 1 = 1 y se pide 1 a la siguiente (10 – 1 = 1)
FI
Ejemplo:
10110010010 - 11100101:
001 01 0
10110010010
-
11100101
10010101101
RESTA DE BINARIOS SIN PEDIR PRESTADO, MEDIANTE UNA SUMA: El procedimiento de “pedir
prestado” no se emplea en los circuitos de un computador, por la complejidad y lentitud que ocasionaría.
En su reemplazo se usa el método de sumar al minuendo el complemento al módulo del sustraendo.
Ejemplo:
10110010010 - 11100101:
000111001012 → C200011100101 = 11100011010 + 1 = 111000110112
4
Este archivo fue descargado de https://filadd.com
10110010010
+
11100011011
110010101101
El 1 en rojo que está fuera del formato de los n bits que se restan, se descarta.
OM
2- La parte fraccionaria mediante sucesivas multiplicaciones por 2
3- Sumar ambas porciones antes halladas.
Ejemplo:
35,6210
3510 →
.C 32
1
16
0
8
0
4
0
2
1
1
1 = 1000112
DD
2 x 0,62 = 1,24 = 1 + 0,24
2 x 0,24 = 0,48 = 0 + 0,48
2 x 0,48 = 0,96 = 0 + 0,96
2 x 0,96 = 1,92 = 1 + 0,92
LA
Las sucesivas partes enteras halladas conforme van apareciendo, constituyen los bits de la parte
fraccionaria binaria. En este caso se ha interrumpido arbitrariamente el proceso luego de haber obtenido
una precisión de 10 bits fraccionarios.
5
Este archivo fue descargado de https://filadd.com
Ejemplo:
COMPLEMENTOS
Los complementos son muy usados en los sistemas digitales al momento de realizar operaciones de resta.
Permite realizar restas mediante sumas y representar números con signos.
OM
Con signo: Naturales
Sin signo: Signo y Magnitud
Complemento a la base
Complemento a la base -1
SIGNO Y MAGNITUD:
+3
-3
Positivo decimal
Negativo decimal
.C Positivo (+) en binario → 0 01111111 = + 127
Negativo (-) en binario → 1 11111111 = - 127
Se considera un bit
como bit de signo
DD
COMPLEMENTO A LA BASE: Teniendo Nb es un número en base b; b es la base; n es la cantidad de
dígitos; CbNb es el complemento a b de N.
CbNb = bn - N
Nb + CbN = bn
LA
Ejemplos:
710 → C107 = 101 - 7 = 10 - 7 = 310
92410 → C10924 = 103 - 924 = 1000 - 924 = 7610
Cb-1Nb = (bn - 1) - N
Nb + Cb-1N = bn - 1
Para evitar pedir prestado, conviene determinar el complemento al módulo de un número calculando
primero su complemento al módulo menos uno y luego sumarle uno. CN = Cb-1 + 1
Ejemplos:
710 → C10-17 = C97 = (101 - 1) - 7 = 9 - 7 = 210
5810 → C10-158 = C958 = (102 - 1) - 58 = 99 - 58 = 4110
6
Este archivo fue descargado de https://filadd.com
COMPLEMENTO A UNO (BASE 2; b-1 = 1): Pasos:
1- Reemplazar 0 por 1 y 1 por 0.
Ejemplo:
110112 → C2-111011 = C111011 = 001002
111102 → C2-111110 = C111110 = 000012
CÓDIGOS Y REPRESENTACIONES
Un código establece una correspondencia entre un conjunto de información y otro conjunto de símbolos o
señales que la representan pudiendo existir reglas para pasar de un conjunto a otro.
OM
CÓDIGOS BCD: son convenciones que permiten la representación de números decimales (0 a 9) en
bloques binarios de 4 bits. Son códigos de representación de números y se los denomina códigos
ponderados, porque adjudican cierto peso a los 1 binarios, según la posición que ocupan en el bloque, por
lo que se debe verificar que la suma de los pesos de cada combinación sea igual al número decimal
representado.
Con esta codificación especial de los dígitos decimales en el sistema binario, se pueden realizar
.C
operaciones aritméticas como suma, resta, multiplicación y división de números en representación
decimal, sin perder en los cálculos la precisión ni tener las inexactitudes en que normalmente se incurre
con las conversiones de decimal a binario puro y de binario puro a decimal. La conversión de los números
decimales a BCD y viceversa es muy sencilla, pero los cálculos en BCD se llevan más tiempo y son algo más
DD
complicados que con números binarios puros.
CÓDIGO BCD NATURAL: se denomina así porque los pesos en cada bloque coinciden con el valor de los
4 primeros pesos del binario puro. Se le suele llamar BCD 8421.
LA
CÓDIGO BCD AIKEN O 2421: es un código similar al código BCD natural con los pesos distribuidos de
manera diferente. La distribución es: 2-4-2-1. La razón de esta codificación es la de conseguir simetría
entre ciertos números. El código Aiken es muy útil para realizar operaciones de resta y división (facilidad
para hallar el complemento invirtiendo los dígitos).
FI
BCD EXCESO 3 (XS3): el código Exceso 3 se obtiene sumando 3 a cada combinación del código BCD
Natural. Es un código en donde la ponderación no existe (no hay "pesos" como en el código BCD natural).
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.
CÓDIGO GRAY: El 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.
Por eso también se le llama código progresivo. Esta progresión sucede también entre la última y la primera
combinación. Por eso se le llama también código cíclico.
7
Este archivo fue descargado de https://filadd.com
BCD NATURAL CÓDIGO GRAY BCD AIKEN BCD XS3
Nº
8421 2421
0 0000 0000 0000 0011
1 0001 0001 0001 0100
2 0010 0011 0010 0101
3 0011 0010 0011 0110
4 0100 0110 0100 0111
5 0101 0111 1011 1000
6 0110 0101 1100 1001
7 0111 0100 1101 1010
8 1000 1100 1110 1011
9 1001 1101 1111 1100
OM
CÓDIGOS DE REPRESENTACIÓN DE CARACTERES ALFANUMÉRICOS: establece la relación
necesaria para que una computadora digital que procesa solamente dígitos binarios interprete el lenguaje
que utiliza el usuario. Un código es una convención que determina una única combinación binaria para
cada símbolo que se ha de representar.
.C
CÓDIGO ASCII: siglas de American Standard Code of Information Interchange es un código binario
ampliamente usado para la transmisión de información, y para codificar los caracteres de un teclado, así
como los que debe imprimir una impresora en modo texto o mostrar una pantalla. También es el código de
los archivos de texto.
DD
Representa cada carácter con 7 bits, que permite determinar 27=128 combinaciones distintas suficientes
para establecer una única relación carácter combinación binaria, aunque se usan 8 bits (el primer bit de
todas las combinaciones del ASCII estándar es cero, pudiéndose usar para paridad u otros fines). Con 8 bits
resultan 28=256 combinaciones, 128 para ASCII estándar y 128 para ASCII extendido.
LA
0 1 2 3 4 5 6 7 8 9 A B C D E F
0 NUL SC STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
2 SP ! “ # $ % & ‘ ( ) * + , - . /
3 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
FI
4 @ A B C D E F G H I J K L M N O
5 P Q R S T U V W X Y Z [ \ ] ^ _
6 ` a b c d e f g h i j k l m n o
7 p q r s t u v w x y z { | } ~ DEL
8
Este archivo fue descargado de https://filadd.com
REPRESENTACIÓN ESTÁNDAR PARA PUNTO FLOTANTE DEL IEEE 754
El estándar IEEE 754 ha sido definido por el Instituto de Ingenieros Eléctricos y Electrónicos (Institute of
Electrical and Electronics Engineers, IEEE) y establece dos formatos básicos para representar a los
números reales en la computadora digital: precisión simple y precisión doble.
PRECISIÓN SIMPLE EN EL ESTÁNDAR IEEE 754: En precisión simple, para escribir un número real se
usan 32 bits (4 bytes): 1 bit para el signo (s) del número, 23 bits para la mantisa (m) y 8 bits para el
exponente (exp), que se distribuyen de la siguiente forma:
OM
El exponente se suele representar en Exceso a 2n-1 - 1, mientras que, para la mantisa, normalmente se
utiliza Signo Magnitud. Además, la mantisa se suele normalizar colocando la coma decimal a la derecha del
bit más significativo.
.C
Ejemplo: Para escribir el número 101110,0101011101000011111000011111000100112 en el estándar IEEE
754 con precisión simple, exponente en Exceso a 2n-1 - 1 y mantisa en Signo Magnitud, primero hay que
normalizarlo:
DD
1,011100101011101000011111000011111000100112 x 25
510 + (28-1 - 1)10 = 510 + (27 - 1)10 = 510 + (128 - 1)10 = 13210 = 10000100EX. a 127
LA
1,0111001010111010000111
FI
El resto de bits no se pueden representar, ya que, no caben en la mantisa. Sin embargo, cuando la mantisa
se normaliza situando la coma decimal a la derecha del bit más significativo, dicho bit siempre vale 1. Por
tanto, se puede prescindir de él, y coger en su lugar un bit más de la mantisa. De esta forma, la precisión
del número representado es mayor. Así, los bits de la mantisa serán:
01110010101110100001111
Al bit omitido se le llama bit implícito. Por otra parte, el bit de signo vale 0, ya que, el número es positivo.
En consecuencia, el número se puede representar como:
Los programadores, para representar a los números reales en este formato, suelen utilizar el Sistema
Hexadecimal:
9
Este archivo fue descargado de https://filadd.com
Entonces:
En este caso, los números no son exactamente iguales, ya que, con precisión simple no se han podido
OM
representar todos los bits de la mantisa.
PRECISIÓN DOBLE EN EL ESTÁNDAR IEEE 754: en precisión doble, para escribir un número real se
emplean 64 bits (8 bytes): 1 bit para el signo (s) del número, 52 bits para la mantisa (m) y 11 bits para el
exponente (exp).
.C
DD
Ejemplo: Si se quiere escribir el número 19,562510 en el estándar IEEE 754 con precisión doble, exponente
en Exceso a 2n-1 - 1 y mantisa en Signo Magnitud con bit implícito, los pasos a seguir son:
→
16 8 4 2 1
1910 1 0 0 1 1 = 100112
2 x 0,5 =1 =1+0
0,562510 = 0,10012
2- Normalizar el número binario obtenido, colocando la coma decimal a la derecha del bit más significativo:
10011,10012 = 1,00111001 x 24
10
Este archivo fue descargado de https://filadd.com
3- Escribir el exponente en Exceso a 2n-1 - 1:
410 + (211-1 - 1)10 = 410 + (210 - 1)10 = 410 + (1024 - 1)10 = 102710 = 10000000011EX. a 1023
4- Establecer la mantisa utilizando bit implícito. Para ello, se cogen los ocho bits que están a la derecha de
la coma (00111001) y el resto de la mantisa se rellena con ceros:
0011100100000000000000000000000000000000000000000000
5- Expresar el número en el estándar IEEE 754 con precisión doble. En este caso, hay que tener en cuenta
que el bit de signo vale 0, ya que, el número es positivo:
OM
6- Representar el número en hexadecimal:
.C
DD
Entonces:
LA
CASOS ESPECIALES EN EL ESTÁNDAR IEEE 754: Tanto en precisión doble como en precisión simple,
existen algunos casos especiales que dependen de los valores del signo, del exponente y de la mantisa:
FI
0ó1 Todos unos (11...1) Distinta de todos ceros Not a Number (NaN)
0ó1 Todos ceros (00...0) Todos ceros (00...0) Representa al cero (0)
0ó1 Todos ceros (00...0) Distinta de todos ceros Número muy pequeño cercano al cero (0)
Los dos últimos casos merecen especial atención, ya que, cuando todos los bits del exponente son ceros
(00...0), esto quiere decir que no se está utilizando bit implícito. Si, además, la mantisa es todo ceros
(00...0), el número representado es el cero (0), pero si la mantisa es distinta de todos ceros, el número que
se está representando es muy pequeño, de forma que, el exponente valdrá -126 ó -1022, dependiendo de
si el número está escrito en precisión simple o doble, respectivamente.
11
Este archivo fue descargado de https://filadd.com
COMPUERTAS LÓGICAS
Una compuerta lógica es el bloque elemental que permite la implementación de circuitos digitales. Tiene
una cantidad finita de entradas y una salida. Las entradas y las salidas están representadas por variables
booleanas que pueden estar en uno de dos estados posibles (0 o 1) representados por diferentes valores
niveles de voltaje.
OM
A B Z = A+B Operación
0 0 0 → 𝟎+𝟎 = 𝟎
0 1 1 → 𝟎+𝟏 = 𝟏
.C 1
1
0
1
1
1
→
→
𝟏+𝟎 = 𝟏
𝟏+𝟏 = 𝟏
DD
En una compuerta OR de un número cualquiera n de entradas, a las que llegan igual número de cables
designados A, B, C, …, N, el cable Z conectado en su salida estará en el nivel alto, si A o B o C o … o N está
en el nivel alto, o sea si uno o más de dichos cables está en el nivel alto.
cable Z en la salida de una compuerta AND estará en el nivel alto sólo si el cable de entrada A y el cable de
entrada B están en el nivel alto.
A B Z = A.B Operación
FI
0 0 0 → 𝟎. 𝟎 = 𝟎
0 1 0 → 𝟎. 𝟏 = 𝟎
1 0 0 → 𝟏. 𝟎 = 𝟎
1 1 1 → 𝟏. 𝟏 = 𝟏
En una compuerta AND de un número cualquiera n de entradas, a las que llegan igual número de cables
designados A, B, C, …, N, el cable Z conectado en su salida estará en el nivel alto, si A y B y C y … y N están
simultáneamente en el nivel alto.
COMPUERTA INVERSOR NOT (Negación lógica): una compuerta inversora NOT es un dispositivo
electrónico que genera en el cable que está en su salida un nivel de tensión alto si el cable que está en su
entrada presenta un nivel bajo, y viceversa. Decimos que los cables A y Z son complementarios, inversos,
en oposición, o que uno es la negación del otro.
12
Este archivo fue descargado de https://filadd.com
A Z=𝐀̅ Operación
0 1 ̅ = 𝟏
→ 𝟎
1 0 ̅ = 𝟎
→ 𝟏
A B Z = A⊕B Operación
→ 𝟎⊕𝟎 = 𝟎
OM
0 0 0
0 1 1 → 𝟎⊕𝟏 = 𝟏
1 0 1 → 𝟏⊕𝟎 = 𝟏
1 1 0 → 𝟏⊕𝟏 = 𝟎
.C
COMPUERTA NOR: Una compuerta NOR es una compuerta OR con un inversor en su salida que
complementa cada resultado que ésta genera, de modo de realizar una suma lógica negada.
DD
A B ̅̅̅̅̅̅̅̅
Z=𝐀 +𝐁 Operación
0 0 1 → ̅̅̅̅̅̅̅
𝟎+𝟎 = 𝟏
0 1 0 → ̅̅̅̅̅̅̅
𝟎+𝟏 = 𝟎
1 0 0 → ̅̅̅̅̅̅̅
𝟏+𝟎 = 𝟎
LA
1 1 0 → ̅̅̅̅̅̅̅
𝟏+𝟏 = 𝟎
COMPUERTA NAND: Una compuerta NAND es una compuerta AND con un inversor en su salida que
complementa cada resultado que ésta genera, de modo de realizar un producto lógico negado.
FI
A B ̅̅̅̅̅
Z = 𝐀. 𝐁 Operación
0 0 1 → ̅̅̅̅̅
𝟎. 𝟎 = 𝟏
0 1 1 → ̅̅̅̅̅
𝟎. 𝟏 = 𝟏
1 0 1 → ̅̅̅̅̅
𝟏. 𝟎 = 𝟏
1 1 0 → ̅̅̅̅̅
𝟏. 𝟏 = 𝟎
COMPUERTA X-NOR: Una compuerta X-NOR es una compuerta X-OR con un inversor en su salida que
complementa cada resultado que ésta genera, de modo de realizar una suma lógica exclusiva negada.
A B ̅̅̅̅̅̅̅̅
Z=𝐀 ⊕𝐁 Operación
0 0 1 → ̅̅̅̅̅̅̅̅
𝟎⊕𝟎 = 𝟏
0 1 0 → ̅̅̅̅̅̅̅̅
𝟎⊕𝟏 = 𝟎
1 0 0 → ̅̅̅̅̅̅̅̅
𝟏⊕𝟎 = 𝟎
1 1 1 → ̅̅̅̅̅̅̅̅
𝟏⊕𝟏 = 𝟏
13
Este archivo fue descargado de https://filadd.com
FORMAS CANÓNICAS
FUNCIÓN CANÓNICA: una función canónica es aquella en la que en cada término incluye todas las
variables de entrada.
OM
FORMA NORMAL CONJUNTIVA (FNC) O PRODUCTO DE MAXITÉRMINOS: dado un número n
de variables, un maxitérmino es una suma lógica, cuyos sumandos son todas las variables. Una suma lógica
resulta con el valor 0 para una sola combinación de valores de las variables que son sus factores.
.C
MAXITÉRMINO (O SUMA CANÓNICA): es la suma de las variables en juego o sus negaciones
DD
individuales que hacen que la suma valga cero. Combinaciones que hacen que la función valga 0.
CIRCUITOS LÓGICOS
LA
variables de entrada. Para una combinación de valores de entrada en un circuito, siempre se produce el
mismo valor de salida.
Circuito secuencial: es un circuito donde sus salidas dependen del valor de las entradas y del estado
anterior del circuito representado, que puede tener una o más salidas. Tienen memoria.
14
Este archivo fue descargado de https://filadd.com
OBTENCIÓN DE LA SUMA DE MINITÉRMINOS A PARTIR DE UN DIAGRAMA: Para cada celda
con un “uno” de la función se hallan sus coordenadas, a fin de determinar la combinación de variables para
la cual la función vale 1. Obtenida la misma, se forma el minitérmino correspondiente según la siguiente
regla: cuando la variable vale 0 o 1 se escribe dicha variable negada o sin negar, respectivamente.
OM
.C
DD
MECANISMO DE MINIMIZACIÓN DEL DIAGRAMA: Se deben agrupar la mayor cantidad de celdas
con “unos” adyacentes en la menor cantidad de grupos (la cantidad de “unos” en cada grupo es potencia
de 2). Cada grupo debe tener al menos un elemento propio no compartido.
Cada sumando de la expresión minimizada, es el producto que se forma con las variables que son las
coordenadas de cada lazo considerado.
LA
La expresión SP mínima buscada, es la suma de todos los productos hallados según el paso anterior.
FI
𝑍 = 𝐶̅ + 𝐵. 𝐷 + 𝐵̅. 𝐷
̅
IMPLICANTES PRIMOS (IP): Todos los lazos bien usados se denominan implicantes primos. Son
agrupaciones de máximo número posible de celdas adyacentes, tales que el lazo que encierra a cada
agrupación no puede ser englobado por otro lazo que permita una agrupación mayor de celdas. Los IP dan
lugar a productos con el menor número de variables, objetivo de la minimización.
REGLAS PRÁCTICAS PARA MINIMIZAR: Suponiendo que se tiene una función representada por una
cierta disposición de “unos” en el diagrama, los pasos a seguir pueden ser:
1- Encontrar todos los IP de la función, para lo cual:
Procurar formar todos los lazos posibles que contengan 8 celdas adyacentes.
15
Este archivo fue descargado de https://filadd.com
Con las celdas que no fueron cubiertas en el paso anterior, formar todos los lazos posibles
que contengan 4 celdas adyacentes.
Si aún quedaran celdas que se pueden enlazar como 2 adyacentes, formar todos los lazos
posibles de ese tipo.
Luego sólo pueden quedar sin enlazar celdas aisladas, que constituirán lazos con una celda.
2- Indicar en punteado los lazos que tienen todos sus “unos” compartidos con otros lazos, o sea los IP
no esenciales.
3- Probar si con los IP esenciales se pueden cubrir todos los “unos” del diagrama, teniendo siempre
presente que se busca hacer esto con el menor número posible de lazos.
4- Si con los IP esenciales no se cubren todos los “unos” del diagrama, realizar esto usando el menor
número posible de lazos en punteado.
5- En caso de que los lazos en punteado den lugar a más de una solución mínima, realizar
OM
preferentemente un diagrama para cada una.
6- Para cada lazo de cada solución mínima hallar las variables que son sus coordenadas y formar el
producto correspondiente, desechando las variables que no intervendrían en el mismo.
7- Cada solución mínima, expresarla como una suma de todos los productos hallados.
.C CIRCUITOS ARITMÉTICOS
CODIFICADOR DECODIFICADOR
Z2n-1 Z2n-1
FI
Dn-1 Dn-1
2n 2n a n n n n a 2n 2n
ent. sal. ent. sal.
D0 D0
Z0 Z0
𝑫𝒊 = ∑ 𝒁𝒊 𝒁𝒊 = ∏ 𝑫𝒊
𝒊 𝒊
MULTIPLEXOR (MUX): presenta k entradas (D0, D1, …) de datos (k = 2n), n entradas de selección (A, B,
C, …) y una salida Z. Permite seleccionar el valor lógico que aparecerá en su salida, entre los valores lógicos
presentes en sus k entradas de datos.
Para tal fin en las n entradas de selección debe aplicarse un número binario igual al subíndice decimal de la
línea de datos que se quiere seleccionar.
16
Este archivo fue descargado de https://filadd.com
DEMULTIPLEXOR (DEMUX): realiza la función inversa del multiplexor: el valor lógico de la línea de
entrada puede ser seleccionado, mediante n entradas de selección, para que aparezca en una de las k = 2n
líneas de salida.
OM
D2n -1.C
MULTIPLEXOR DEMULTIPLEXOR
Z2n -1
DD
MUX DEMUX
2n Z D 2n
ent.
2n x 1 sal.
1 x 2n
ent. sal.
LA
D0 Z0
Sn-1 S0 Sn-1 S0
n sel. n sel.
FI
0 1 x x 1 x D1 1 0 0 1 0 0 1
1 0 x 1 x x D2 1 0 1 0 0 1 0
1 1 1 x x x D3 1 1 0 0 1 0 0
1 1 1 1 0 0 0
𝒁 = ∑ 𝑫𝒊 . (𝒄ó𝒅 𝒊 𝒆𝒏 𝑺) 𝒁𝒊 = 𝑫. (𝒄ó𝒅 𝒊 𝒆𝒏 𝑺)
𝒊
17
Este archivo fue descargado de https://filadd.com
COMPARADOR DE MAGNITUD DE 2 BITS: Posee 2 entradas y 3 salidas, donde solo una salida se
activa.
Ent. Salidas
A B I m M
0 0 1 0 0
0 1 0 1 0
1 0 0 0 1
1 1 1 0 0
𝐈 = ̅̅̅̅̅̅̅̅̅
𝐀⊕𝐁 ; 𝐦= 𝐀̅ . 𝐁 ; 𝐌 = 𝐀. 𝐁
̅
OM
SUMADOR ARITMÉTICO DE DOS NÚMEROS DE N BITS: con el método manual de sumar columna
por columna, comenzando por la derecha, y teniendo presente el acarreo (“Carry”) si se arrastra 1 de una
posición a otra, la suma ejemplificada implica la operatoria siguiente:
.C
DD
Semisumador (Half Adder)
0 0 0 0 C B S B
A 0 1 A 0 1
0 1 0 1
1 0 0 1 0 0 1
1 1 1 0 11 1 1
FI
𝐂 = 𝐀. 𝐁 𝐒= 𝐀⊕𝐁
A B
C S
18
Este archivo fue descargado de https://filadd.com
Sumador Completo SC (Full Adder)
OM
1 1 0 1 0
1 1 1 1 1 Ci Si
Si
.C Ci
Se trata de un circuito combinacional particular, que transforma cada combinación de 3 bits a sumar, en
DD
una combinación que puede interpretarse como la suma aritmética de los mismos. Posee 3 entradas (2 bits
a sumar y 1 bit de carry de la suma anterior) y 2 salidas (S la suma y C el carry).
SUMADOR-RESTADOR DE LA UAL: este circuito puede realizar la suma o diferencia de dos números
A y B, compuestos de 4 bits cada uno, que simbolizaremos A(𝐀𝟑 , 𝐀𝟐 , 𝐀𝟏 , 𝐀𝟎 ) y B(𝐁𝟑 , 𝐁𝟐 , 𝐁𝟏 , 𝐁𝟎 ).
LA
FI
19
Este archivo fue descargado de https://filadd.com
GENERADOR/VERIFICADOR DE PARIDAD: En los generadores de paridad la paridad puede ser par o
impar. El bit de paridad se utiliza para detectar posibles errores en la transmisión del dato transmitido,
mediante un comprobador de paridad que recibe la información con el fin de validarla. El generador de
paridad lo que hace es agregar un bit de paridad. Si es paridad par se agrega un 1 para alcanzar una
cantidad par de 1, si la cantidad ya es par, el bit de paridad queda en 0. Lo mismo ocurre para la paridad
impar, pero manteniendo una cantidad impar de 1. Si la salida del recepto-verificador es 0, la paridad es
correcta.
OM
0 0 1 0 0 1
0 1 0 1 0 1 0 0
0 1 1 0 0 1 1 1
1 0 0 1 1 0 0 0
1 0 1 0 1 0 1 1
1 1 0 0 1 1 0 1
1 1 1 1 1 1 1 0
.C
𝐙 =𝐀⊕𝐁⊕𝐂 𝐙 = ̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
𝐀⊕𝐁⊕𝐂
DD
LA
FI
20
Este archivo fue descargado de https://filadd.com
ARQUITECTURA DE COMPUTADORAS
CIRCUITOS SECUENCIALES
CIRCUITOS LÓGICOS SECUENCIALES: También se denominan autómatas finitos o máquinas de
estado. El valor de las salidas del circuito depende no solo de los valores de sus entradas en el momento
presente sino también de sus entradas pasadas, es decir de la historia del comportamiento del circuito.
Dichas entradas quedan almacenadas formando el estado del sistema (memoria de estado)
El estado de un circuito secuencial está formado por un conjunto de bits llamados variables de estado que
contienen toda la información del pasado del circuito y que permitirán explicar su comportamiento futuro.
La memoria de estado está formada por un conjunto de 𝒏 biestables. Cada biestable es un circuito lógico
capaz de tener dos estados estables. Un estado se dice estable si las variables que lo define permanecen
OM
inalteradas si no hay cambios en sus variables de entrada.
Podemos distinguir dos tipos principales de biestables: latches y flip-flops.
CIRCUITOS SECUENCIALES ASÍNCRONOS: Son sistemas que cambian de estado cuando cambian sus
entradas.
CIRCUITOS SECUENCIALES SÍNCRONOS: Son circuitos en que los cambios de estado se producen bajo un
.C
control de tiempo. Este control se denomina reloj (clock). La señal de reloj alterna entre los valores lógicos
𝟎 y 𝟏 en un periodo regular.
Los sistemas síncronos pueden ser sincronizados por nivel o por flancos. En los sistemas sincronizados por
DD
nivel los cambios ocurren mientras el valor de la señal de reloj permanece en un valor (o alto o bajo). En
los sistemas sincronizados por flancos los cambios de estado ocurren en los instantes donde el reloj
cambia de valor lógico.
LA
FI
LATCHES: Biestable Asíncrono. Su estado interno cambia en función de los valores de sus entradas (cómo)
y en los momentos en que lo hacen estas últimas (cuándo).
FLIP FLOP: Biestable Síncrono. Su estado interno cambia en función de los valores de sus entradas (cómo) y
en los momentos en que lo habilita una entrada de reloj (cuándo).
1
Este archivo fue descargado de https://filadd.com
FLIP FLOPS O CELDAS DE MEMORIA BIESTABLES ESTÁTICAS: permanecen en uno u otro estado
mientras no se corte el suministro de energía eléctrica al circuito. En ellos existe por lo menos un lazo de
realimentación que proporciona un camino para que la salida de una compuerta se propague hacia una de
sus entradas.
FLIP FLOP ASÍNCRONOS - FLIP FLOP RS: presentan dos entradas designadas 𝑺 y 𝑹 que pueden
actuar en cualquier instante para cambiar el estado del circuito, y en consonancia cambiar el valor de sus
OM
̅ . Se conocen con las siglas 𝑹𝑺, por la denominación Reset y Set de sus entradas,
salidas, designadas 𝑸 y 𝑸
que permiten hacer 𝑸 = 𝟎 y 𝑸 = 𝟏, respectivamente. La salida 𝑸 ̅ se genera para el caso que se necesite
esa señal.
.C
DD
LA
Leyendo el valor 0 ó 1 de la salida 𝑸 se puede determinar en qué estado se encuentra el circuito. También
puede expresarse que si 𝑸 = 𝟎 el circuito mantiene, memoriza un cero, y si 𝑸 = 𝟏 memoriza un uno, dado
que uno u otro valor se conservará mientras el circuito permanezca en uno de los dos estados.
FLIP FLOP SÍNCRONOS O TEMPORIZADOS: presentan una o dos entradas 𝑬𝟏 y 𝑬𝟐 , que pueden
FI
actuar sobre el estado del circuito sólo en determinados instantes, definidos en relación a pulsos que
llegan por otra entrada de sincronismo conocida como reloj o clock 𝑪𝒌.
Pueden existir una o dos entradas asincrónicas, o de "fuerza", indicadas en punteado, para obligar en
cualquier momento que el flip-flop presente uno de sus dos estados, independientemente de la presencia
de pulsos de sincronismo. Esto es útil para fijar, por ejemplo, inicialmente el estado del circuito luego de
energizarlo.
𝑬𝟏 𝑸
𝑬𝟐
̅
𝑸
𝑪𝒌
FLIP FLOP JK: Su funcionamiento es similar al flip-flop RS, de modo que la entrada 𝑲 actúa para la puesta a
𝟎 (reset) y la entrada 𝑱 para la puesta a 𝟏 (set). Cuando se activan las dos entradas simultáneamente, el
biestable cambia de estado. Son biestables síncronos, lo que quiere decir que las transiciones de los
valores de salida se producen durante los flancos activos de las señales de reloj. La diferencia está en que
2
Este archivo fue descargado de https://filadd.com
el flip-flop JK no tiene condiciones no válidas como ocurre en el RS. A partir de él se pueden construir todos
los demás. En conclusión, es igual al RS, pero permite la entrada 11.
OM
FLIP FLOP D: Se conocen por el nombre de biestables de datos o seguidores. Tienen una única entrada 𝑫,
que es copiada en el interior del biestable en los instantes de sincronismo. Solamente tienen sentido como
biestables síncronos por nivel o por flanco. Se construye a partir de un JK agregándole un inversor. J y K
distintos.
.C
DD
LA
FLIP FLOP MASTER-SLAVE: para almacenar un bit se utiliza un conjunto de dos flip-flop, denominados
“maestro y esclavo” (“master-slave”) para lograr que la salida del “esclavo” -que es la salida del conjunto-
cambie una sola vez, aunque la entrada 𝑫 del “maestro” cambie varias veces mientras 𝑪𝒌 = 𝟏. La entrada
del “esclavo” toma la salida del “maestro”, por lo que está obligado a seguirlo, y su entrada 𝑪𝒌 está
invertida respecto de la de éste.
3
Este archivo fue descargado de https://filadd.com
El “maestro” recibe la información presente en la entrada 𝑫 cuando 𝑪𝒌 = 𝟏, y la almacena en su circuito
cuando 𝑪𝒌 = 𝟎. Es entonces cuando el “esclavo” copia dicho valor almacenado, presentándolo por la
salida Q. O sea que la salida Q del flip-flop sólo puede cambiar luego que 𝑪𝒌 pase de 𝟏 a 𝟎. Mientras sea
𝑪𝒌 = 𝟎 el “maestro” no puede cambiar, y por lo tanto una vez que cambio el “esclavo” éste tampoco
podrá cambiar. Cuando nuevamente sea 𝑪𝒌 = 𝟏, el “maestro” recibirá nuevamente la información
presente en 𝑫, pudiendo cambiar su salida, pero la salida del “esclavo” permanecerá con el valor que tenía
cuando 𝑪𝒌 = 𝟎, dado que si 𝑪𝒌 = 𝟏 en correspondencia es 𝑪𝒌𝟐 = 𝑪𝒌 ̅̅̅̅ = 𝟎, por lo cual el “esclavo” está en
estado de retención.
Vale decir, que la salida 𝑸 del “esclavo” una vez que cambie -luego que 𝑪𝒌 pase do 1 a 0- no puede volver
a hacerlo hasta que nuevamente 𝑪𝒌 pase de 𝟏 a 𝟎.
OM
REGISTROS
.C
Un registro es un conjunto de 𝒏 flip flops asociados, que permiten almacenar temporalmente una palabra
o grupo de 𝒏 bits.
DD
REGISTROS CON ENTRADAS Y SALIDAS EN PARALELO: un registro de paralelo a paralelo permite
transferir simultáneamente bits hacia o desde el mismo. Consta de n flip flops D “latch” que tienen unidas
sus entradas de 𝑪𝒌, de modo de poder cambiar juntos cada pulso reloj.
LA
FI
Suponiendo que se quiere memorizar la palabra 𝟏𝟎𝟏𝟏𝟎𝟏𝟏𝟎 que llega por las 8 líneas del 𝒃𝒖𝒔 𝟏, los bits
que la componen deben estar presentes en las correspondientes entradas 𝑫 cuando 𝑪𝒌 = 𝟎. Cuando
𝑪𝒌 = 𝟏 cada bit se almacena en el flip flop respectivo, transfiriéndose esa palabra hacia el registro. La
transferencia de nueva información suele denominarse carga del registro. Una vez que cambiaron todos
los flip flops, los bits de la palabra estarán disponibles en las 8 salidas de los mismos, por ende, en las 8
líneas del 𝒃𝒖𝒔 𝟐, durante el tiempo en que 𝑪𝒌 = 𝟎.
4
Este archivo fue descargado de https://filadd.com
Se trata de un circuito conformado por 8 flip flops D, que necesariamente deben ser maestro-esclavo,
OM
puesto que así -mientras 𝑪𝒌 = 𝟏- el maestro de cada flip flop recibe el bit a almacenar del esclavo, del flip
flop que está a su izquierda, al mismo tiempo su esclavo transmite el bit que almacena al maestro del flip
flop que está a su derecha.
.C
paralelo por n cables, se denomina registro serie-paralelo.
DD
REGISTRO DE DESPLAZAMIENTO COMO REGISTRO SERIE-SERIE: Si los bits que entran en serie se toman
luego de 8 pulsos reloj de la salida, se tiene un registro serie-serie, con entrada y salida serie de datos,
utilizado cuando se quiere retener información seriada durante el lapso que duran dichos pulsos. Esta
LA
aplicación permite simular una línea de retardo mediante un registro de desplazamiento de 𝒏 flip flops: un
bit que entra queda demorado 𝒏 pulsos reloj hasta que sale.
FI
5
Este archivo fue descargado de https://filadd.com
Usando un multiplexor de 4 entradas de datos, es posible elegir uno de esos 4 modos, para lo cual hacen
falta 2 entradas de selección que se designan 𝑺𝟏 y 𝑺𝟎 .
OM
Cuando 𝑺𝟏 = 𝟏 y 𝑺𝟎 = 𝟏 se seleccionan las entradas de carga en paralelo.
Si 𝑺𝟏 = 𝟎 y 𝑺𝟏 = 𝟏 el registro opera desplazando a derecha, con nueva información serie tornada a través
de la entrada serie a derecha 𝑬𝒔𝒅.
La tercera vía del multiplexor se habilita con 𝑺𝟏 = 𝟏 y 𝑺𝟎 = 𝟎, para que cada entrada 𝑫 reciba el valor de
la salida 𝑸 del flip flop que está a su derecha. Así cada flip flop pasa el bit que tenía almacenado al flip flop
.C
que está a su izquierda, y el de la extrema izquierda recibe la información serie del exterior a través de la
entrada serie a izquierda 𝑬𝒔𝒊 . Con cada pulso reloj, la información en el registro se desplaza un bit a la
izquierda.
Mientras sea 𝑺𝟏 = 𝟎 y 𝑺𝟎 = 𝟎 se selecciona la cuarta vía de cada multiplexor, de forma que la entrada 𝑫
DD
de cada flip flop reciba su propia salida 𝑸, por lo que con cada pulso reloj que llegue se vuelva a escribir en
el flip flop el valor que tenía 𝑸, manteniéndose (“hold”) así almacenado dicho valor sin cambios.
El almacenamiento temporario de datos: así un registro universal de 𝒏 bits puede guardar 𝒏 bits
durante un pulso reloj si opera como registro con entradas y salidas en transmisión serie a serie; o
bien mantener sin cambios los datos almacenados durante la cantidad de pulsos que se requiera,
en modo "hold".
Multiplicar o dividir por dos.
FI
CIRCUITOS CONTADORES-SECUENCIADORES
En el registro de desplazamiento se ha unido la salida 𝑸𝟎 con la entrada 𝑫𝟑 . De este modo luego de cada
pulso reloj el bit que guarda el flip flop de salida 𝑸𝟎 pasara al de salida 𝑸𝟑 . Supondremos que inicialmente
está almacenada una combinación cualquiera, como la 𝟎𝟏𝟎𝟎. Entonces, luego de cuatro pulsos reloj, por
desplazamientos sucesivos, se volverá a tener la combinación 𝟎𝟏𝟎𝟎. Si luego siguen llegando pulsos reloj
por la entrada 𝑪𝒌, el circuito permanentemente repetirá la secuencia:
𝟎𝟏𝟎𝟎 → 𝟎𝟎𝟏𝟎 → 𝟎𝟎𝟎𝟏 → 𝟏𝟎𝟎𝟎 → 𝟎𝟏𝟎𝟎 → 𝟎𝟎𝟏𝟎 → ⋯
Decimos que el circuito presenta 4 estados, o que sigue un código compuesto por 4 estados.
6
Este archivo fue descargado de https://filadd.com
El circuito dado puede usarse como contador de la cantidad de pulsos que entraron por la entrada 𝑪𝒌.
Otra aplicación del mismo circuito como generador de secuencias de combinaciones binarias
(secuenciador). En general, si se tiene un conjunto de flip flops y compuertas, puede conseguirse que, a
partir de una primera combinación dada, se generen secuencias fijas compuestas por un número
predeterminado de combinaciones binarias.
También es factible construir circuitos que sigan una secuencia de combinaciones de números binarios
sucesivos a partir de un número inicial cualquiera. El denominado contador de programa o registro
puntero de instrucción (IP) opera de este modo, controlado por la UC, para formar la dirección de
memoria donde se encuentra la siguiente instrucción a ejecutar. Este contador progresa continuamente
OM
hasta que una instrucción de salto ordena que su valor cambie abruptamente. A partir del nuevo valor
indicado por dicha instrucción, el circuito comienza una nueva cuenta progresiva, y así de seguido.
Se usa también un contador progresivo para llevar registro del reloj-calendario de un computador, el
cual progresa merced a pulsos que llegan regularmente generados por un oscilador a cristal destinado a tal
fin.
.C
DD
LA
MEMORIAS
JERARQUÍAS DE MEMORIA: Sistema de memorias que combina distintas tecnologías para responder a
las características contrapuestas de estas últimas y las necesidades del sistema de procesamiento.
FI
7
Este archivo fue descargado de https://filadd.com
CARACTERÍSTICAS DE LAS MEMORIAS:
TIPO FÍSICO:
Semiconductores: circuitos integrados basados en semiconductores para almacenar información. Se
utilizan principalmente transistores y capacitores para almacenar bits. Ejemplos: SRAM, DRAM, Flash.
Magnético: utiliza patrones de magnetización sobre una superficie magnética Ejemplos: discos duros,
cintas (Cartridge, DDS, etc.).
Óptico: almacena información como deformaciones en la superficie de un disco circular, leyéndola con
un láser que lo ilumina mientras éste gira. Ejemplos: CD, DVD, Blu-ray.
CAPACIDAD: La unidad de capacidad es el byte Las unidades más usadas son múltiplos del byte.
Kilobyte (KB) 𝟐𝟏𝟎 = 𝟏𝟎𝟐𝟒
Megabyte (MB) 𝟐𝟐𝟎 = 𝟏𝟎𝟒𝟖𝟓𝟕𝟔
𝟐𝟑𝟎 = 𝟏𝟎𝟕𝟑𝟕𝟒𝟏𝟖𝟐𝟒
OM
Gigabyte (GB)
Terabyte (TB) 𝟐𝟒𝟎
Petabyte (PB) 𝟐𝟓𝟎
MÉTODOS DE ACCESO:
Random (Aleatorio): El tiempo de acceso es independiente de la posición o acceso previo. Ejemplo:
RAM.
Asociativo: El tiempo de acceso es independiente del acceso previo, pero variable según la posición en
.C
la que se encuentre el dato. Ejemplo: memoria cache asociativa.
Directo: se direccionan o identifican bloques de datos. El tiempo de acceso es variable.
Secuencial: el tiempo de acceso depende de la ubicación de los datos y de dónde se estaba leyendo
DD
previamente. Ejemplo: casete, cartridge.
VOLATILIDAD:
Volátil: Retiene información sólo mientras este recibiendo alimentación eléctrica. Ejemplo: RAM.
No volátil: Retiene información aun cuando no esté siendo alimentada eléctricamente. Ejemplo: ROM.
LA
MEMORIA RAM (RANDOM ACCESS MEMORY): o memoria de acceso aleatorio, en las que
cualquier celda puede ser escrita o leída cuantas veces se desee. Es un tipo de memoria volátil, ya que, por
sus características físicas, pierden la información almacenada cuando se corta el suministro de energía
eléctrica al computador.
MEMORIA ROM (READ-ONLY MEMORY): o memoria de sólo lectura, estos chips contienen un
programa para el arranque inicial de los computadores, y los programas del BIOS. Es una memoria
electrónica de acceso random, cuya escritura demanda muchísimo más tiempo que su lectura, pero tiene
la ventaja de ser no volátil, o sea que almacena la información en forma permanente.
Las memorias RAM y ROM tienen en común que, al contenido de cualquier posición de las mismas se
puede acceder “al random”, o sea en igual tiempo, sin búsquedas, indicando un número que la identifica,
que es su dirección, siendo dicho tiempo menor en la RAM. Difieren en que cada posición RAM puede ser
leída o escrita cuantas veces sea, siendo su contenido volátil, mientras que se accede al contenido no
volátil de una posición ROM sólo para leerla.
8
Este archivo fue descargado de https://filadd.com
ARQUITECTURA INTERNA DEL COMPUTADOR
REGISTROS:
AX (REGISTRO ACUMULADOR): para datos y resultados.
RI (REGISTRO DE INSTRUCCIÓN): las instrucciones son ejecutadas una por vez, primero cada una llega por
un bus, a un registro de instrucción, donde permanece mientras se ejecuta.
RE (REGISTRO DE ESTADO): contiene un conjunto de bits llamados indicadores (flags), los cuales pueden
cambiar de valor luego de cada operación que hace la UAL. Los Flags se usan en instrucciones de salto,
esenciales para el proceso automático de datos, pues permiten repetir muchas veces un mismo
subprograma, o saltar de un subprograma a otro que ordena acciones diferentes.
OM
IP (PUNTERO DE INSTRUCCIÓN): Registro puntero de instrucción, indica el número, el cual permite
localizar en una zona de memoria principal donde está la próxima instrucción a ejecutar.
REGISTROS IA16:
.C
DD
LA
La UCP tiene 14 registros internos, cada uno de 16 bits. 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.
FI
REGISTROS IA32:
9
Este archivo fue descargado de https://filadd.com
REGISTROS IA64:
SUBREGISTROS:
OM
.C
REGISTRO DE ESTADOS: Algunas instrucciones (aritméticas o lógicas) setean valores lógicos en bits del
registro. Algunos de estas banderas (Flags) son:
Signo (SF): Se setea (pone a 1) si el resultado de la operación fue negativo.
Cero (ZF): Igual a 1 si el resultado fue cero.
DD
Acarreo (CF): Se setea si hubo un acarreo fuera del registro.
Overflow (OF): Se pone a 1 si hubo overflow o desbordamiento.
Paridad (PF): Se setea cuando el resultado tuvo paridad par.
LA
ALU (UNIDAD ARITMÉTICA LÓGICA): sirve para realizar las operaciones aritméticas o lógicas que le
FI
ordena la UC, siendo auxiliada por registros acumuladores para guardar transitoriamente datos y
resultados. La ALU no puede emitir orden alguna, es decir, no ejecuta instrucciones.
Operaciones aritméticas: suma, resta, multiplicación, división de números enteros y naturales.
Operaciones lógicas: AND, OR, NOT, XOR.
UC (UNIDAD DE CONTROL): La unidad de control es uno de los tres bloques funcionales principales en
los que se divide una unidad central de procesamiento (CPU). Es una máquina o circuito secuencial, que
tiene una secuencia o ciclo de instrucción de cuatro o cinco pasos, dependiendo de la arquitectura:
10
Este archivo fue descargado de https://filadd.com
3- Obtener un dato a operar: si el dato está en MP, con una dirección que resulta del código de máquina
de la instrucción, se direcciona la MP para obtener un dato a operar. Dicho dato llega al registro RDA.
4- Realizar la operación ordenada y almacenar el resultado: según lo ordenado, puede tener lugar una
operación en la UAL y almacenar el resultado en un registro, o consistir la operación en un simple
movimiento de un registro a otro, donde queda guardado un dato.
5- Cambiar el contenido del registro IP, para que tome la dirección de la próxima instrucción a ejecutar, y
vuelta al paso 1.
OM
.C
DD
LA
procesamiento. Se la denomina de esta manera para diferenciarla de la memoria secundaria o externa, que
forma parte de los periféricos.
BUSES: un bus es un camino eléctrico constituido por líneas conductoras, que permiten intercambiar
información binaria entre dos o más dispositivos. Si es compartido por más de dos, éstos pueden
comunicarse entre sí a través del bus a razón de dos por vez, siendo que en un instante dado solo uno
puede transmitir. Cualquier señal que éste transmite puede ser recibida por cualquier otro dispositivo del
bus, pero sólo responderá el que fue seleccionado. Tipos de buses:
– Seriales o series: transmiten un bit por vez.
– Paralelos: transmiten más de un bit por vez o simultáneamente.
– Síncronos: tienen una línea de clock
– Asíncronos: No tienen una línea de clock.
11
Este archivo fue descargado de https://filadd.com
su utilización. Las señales de control transmiten tanto órdenes como información de temporización entre
los módulos. Es el que permite que no haya colisión de información en el sistema. Bidireccional.
OM
SUBSISTEMA DE E/S: También denominado interfaces de E/S, nódulos de E/S, adaptadores de E/S o
controladores de E/S. Tienen registros de estado, control y datos conocidos como PUERTOS.
.C
DD
Funciones básicas del subsistema de E/S:
• Direccionamiento: Selección del dispositivo con el que se realizarán las operaciones de E/S entre todos
los dispositivos presentes.
• Sincronización: Permitir que la CPU y la memoria (dispositivos con altas tasas de transferencia de
LA
información) puedan sincronizar sus envíos con los periféricos (dispositivos con bajas velocidades de
transferencia)
• Transferencia: El subsistema de E/S debe ser capaz de realizar las transferencias de información de y
hacia los dispositivos periféricos involucrados
FI
LENGUAJE ENSAMBLADOR
En lenguaje ensamblador, cada instrucción equivale a una instrucción en lenguaje de máquina.
Cada sentencia está compuesta por: [label]: código_de_operacion [operando/s]
Utiliza nombres simbólicos para códigos de operación (mnemónico), operandos y direcciones de memoria.
12
Este archivo fue descargado de https://filadd.com
COMANDOS:
OM
Ejecuta desde la ubicación actual
G
hasta el fin del programa.
G Ejecuta desde la ubicación actual y
G breakpoint G 50 termina antes de la instrucción en el
G =startAddr breakpoint offset CS:50.
G =startAddr breakp1, breakp2, … Comienza la ejecución en CS:10 y
G = 10 50 termina antes de la instrucción en el
.C offset CS:50.
-r (register): mostrar el contenido de uno o todos los registros. Los parámetros le indican que registro
DD
visualizar.
Muestra el contenido de todos los
R R
registros.
R register
R CX Muestra el contenido del registro CX.
LA
-t (trace): ejecuta línea por línea lo que se ensambla, mostrando cada vez los contenidos de los registros.
T Ejecuta la instrucción siguiente.
T
T5 Ejecuta las siguientes 5 instrucciones.
T count
FI
-u (unassemble): se utiliza para verificar que el programa se cargó en memoria, desensambla el código y lo
muestra. Los parámetros le indican a DEBUG desde y hasta donde desensamblar. Ejemplo: u 100,109
U Desensambla los siguientes 32 bytes.
U
U0 Desensambla 32 bytes en CS:0.
U startAddr
Desensambla los bytes desde CS:100
U startAddr endAddr U 100 108
a CS:108.
MANIPULACIÓN DE MEMORIA:
-c (compare): comparar un rango de memoria con otro.
Los bytes entre DS:0100 y DS:0105
C range address C 100 105 200 son comparados con los bytes en
DS:0200.
13
Este archivo fue descargado de https://filadd.com
Mostrar 128 bytes desde la última
D
ubicación referenciada.
D
D 0 200 Mostrar offsets 2-200 desde DS.
D address
Mostrar 128 bytes en el offset cero
D range D 915:0
desde el segmento 0915h.
A DS:2000 Ensamblar en DS:2000h.
OM
-f (fill): llenar un rango de memoria con un solo valor.
Llena las ubicaciones del 100 al 500
F 100 500, “ ”
con espacios.
Llena las ubicaciones del CS:300 al
F range list F CS:300 CS:1000, FF
1000 con el hexadecimal FFh.
.C F 100 L 20 “A”
Llena 20h bytes con la letra “A”,
comenzando en la ubicación 100.
DD
-m (move): mover bytes de un rango de memoria a otro.
Mueve los bytes en el rango DS:100-
M 100 105 110
105 a la ubicación DS:110.
M range address
Mueve los bytes en el rango CS:100-
M CS:100 105 CS:110
105 a la ubicación CS:110.
LA
DIVERSOS:
-? (help): ver ayuda.
-h (hexarithmetic): se utiliza para obtener la longitud de un programa, el cual nos muestra la suma y resta
de dos números en hexadecimal. Para obtener la longitud le proporcionamos como parámetros el valor de
la dirección final de nuestro programa y el valor de la dirección inicial. El primer resultado que nos muestra
el comando es la suma de los parámetros y el segundo es la resta.
Los valores hexadecimales 1A y 10
H value1 value2 H 1A 10 son sumados y restados, y mostrados
en el DEBUG.
ENTRADA-SALIDA:
-i (input): ingresar un byte desde un puerto.
14
Este archivo fue descargado de https://filadd.com
I port I 3F8 Ingresa un byte desde el puerto 3F8.
OM
en el sector lógico número 0.
.C
N [d:] [filename] [.ext] N b:myfile.com programa.
DD
-w (write): escribe o graba el programa en el disco, indicándonos cuantos bytes escribió.
W Escribe bytes comenzando en CS:100.
Escribe desde la ubicación CS:0 a el
W W0
archivo.
W address
Escribe dos sectores al disco A desde
W address drive firstsector number
W 100 0 0 2 la ubicación CS:100, comenzando en
LA
resultado en bx
Producto lógico del contenido del registro
and dx, ax dx←dx&ax Lógica dx con el del registro ax y el resultado se
guarda en dx
sub cx, ax cx←cx-ax Aritmética Resta ax de cx y pone el resultado en cx
Copia el contenido del registro bx en la
mov var, bx [1000]←bx De transferencia
posición de memoria 1000
inc ax ax←ax+1 Aritmética Suma 1 a ax
Resta ax de cx, pero no cambia los datos
cmp cx, ax cx-ax Aritmética de los registros. Solo actualiza los flags de
estado.
15
Este archivo fue descargado de https://filadd.com
TIPOS DE INSTRUCCIONES:
Instrucciones de transferencia: mueven datos entre lugares de almacenamiento:
o Registro a registro.
o Registro a memoria.
o Memoria a registro.
o Memoria a memoria.
Aritméticas
Lógicas
De ruptura de secuencia:
o Salto incondicional
o Salto condicional
o Llamada a procedimiento
OM
o Interrupciones
De entrada-salida.
.C
Signo (SF): Se setea (pone a 1) si el resultado de la operación fue negativo.
Cero (ZF): Igual a 1 si el resultado fue cero.
Acarreo (CF): Se setea si hubo un acarreo fuera del registro.
DD
Overflow (OF): Se pone a 1 si hubo overflow o desbordamiento.
Paridad (PF): Se setea cuando el resultado tuvo paridad par.
Las instrucciones de salto condicional testean estos valores para determinar si el salto se lleva a cabo o no.
LA
FI
16
Este archivo fue descargado de https://filadd.com
Saltos Incondicionales: JMP dir_de_salto
Saltos Condicionales: Jcc dir_de_salto donde cc es la condición de salto.
Llamada a Procedimiento: CALL dir_del_procedimiento.
OM
MODOS DE DIRECCIONAMIENTO: Los Modos de Direccionamiento de un procesador asignan
memoria RAM que pueden ser referenciadas individualmente para que la unidad central de procesamiento
(CPU) pueda determinar qué ubicación de memoria está siendo utilizada por una instrucción de la
máquina.
Los Modos de Direccionamiento son las formas de especificar la ubicación de los datos y modos para
.C
acceder a ellos. Los datos que maneja una instrucción máquina pueden estar ubicados en la propia
instrucción, en un registro de la CPU o en la memoria del computador. La palabra Dirección se utiliza como
localización del operando y NO como ubicación en memoria.
DD
MODO DE DIRECCIONAMIENTO IMPLÍCITO O INHERENTE: el operando se especifica en la misma definición
de la instrucción o código de operación o puede no tener dato porque la instrucción no lo necesita.
Ejemplo: INT 3, para finalizar una secuencia de instrucción o programa.
operando contiene en sí la información sobre la que hay que operar. Ejemplo: MOV AX, A9E5, el operando
A9E5 es asignado al registro AX.
Las instrucciones que ordenan pasar una constante a un registro están en modo de direccionamiento
inmediato [1], dicha constante es el dato A9E5.
FI
de operación de la instrucción. Ejemplo: MOV AX, [0150], el contenido de la dirección de memoria 0150 es
asignado al registro AX.
Si una instrucción tiene un número entre corchetes se dice que está en modo de direccionamiento directo
[1], dicho número es la dirección 0150.
MODO DE DIRECCIONAMIENTO A REGISTRO: el dato u operando está en un registro. Ejemplo: MOV AX,
BX, el dato u operando, que es el valor que debe ser asignado al registro AX, está contenido en el registro
BX.
Cuando el dato a operar no está en memoria sino en un registro de la CPU y el resultado va también a un
registro de la CPU, el modo de direccionamiento se denomina modo registro, esos registros de la CPU en el
ejemplo son BX y AX respectivamente.
17
Este archivo fue descargado de https://filadd.com
MODO DE DIRECCIONAMIENTO INDIRECTO POR REGISTRO: el código de operación de la instrucción indica
la localización de la dirección efectiva del operando, el dato u operando está en una dirección de memoria
y dicha dirección está contenida en un registro. Ejemplo: MOV AX, [BX], el contenido de la dirección del
registro BX es asignado al registro AX.
Esto es la dirección de una celda de memoria se da indirectamente a través de un registro, como SI, DI, o
BX. Las instrucciones en modo de direccionamiento indirecto por registro permiten solucionar el problema
de recorrer uno tras otro los datos contenidos en posiciones sucesivas de memoria, como es el caso de una
lista o vector.
OM
MODO DE DIRECCIONAMIENTO RELATIVO: La instrucción JNZ como cualquier otra de salto condicional
“short” (corto) está en modo de direccionamiento relativo. El término “relativo” implica que la dirección de
la instrucción a la que se salta (si se cumple la condición) se calcula sumando un número a la dirección de la
instrucción que sigue a la instrucción de salto. O sea que la dirección hacia donde hay que saltar está en
.C
relación con esta última dirección, la cual está apuntada por el IP, por ser la próxima instrucción a ejecutar
luego de la de salto. El número a sumar a la dirección de la instrucción que sigue a la instrucción de salto,
forma parte de un byte de esta última. En un salto hacia atrás, como en el loop dicho número es negativo,
DD
siendo positivo si el salto es hacia adelante.
MODO RELATIVO DE REGISTRO: El dato está referenciado por el contenido de un registro al que se le
suma una constante (desplazamiento u offset).
LA
MODO BASE MÁS ÍNDICE: El dato está referenciado por el contenido de un registro Base al que se le suma
el contenido de otro registro Índice (desplazamiento u off-set).
FI
MODO RELATIVO A BASE MÁS ÍNDICE: El dato está referenciado por el contenido de un registro Base al
que se le suma el contenido de otro registro Índice más un desplazamiento u off-set.
18
Este archivo fue descargado de https://filadd.com