Professional Documents
Culture Documents
hardware.
El nivel 3, llamado Operating System Machine Level, es en general un nivel
hbrido. Hay un set de instrucciones, una organizacin de memoria diferente, la
posibiladad de correr dos o ms programas de forma concurrente, y otras
caractersticas. Las nuevas operaciones incluidas en el nivel 3 sern llevadas a cabo por
el intrprete del nivel 2, llamado el sistema operativo. Aquellas instrucciones del nivel 3
idnticas a las del nivel 2 sern llevadas a cabo por el microprograma (o hardwired
control).
El nivel 4, llamado el Assembly Language Level, es en realidad una forma
simblica de los lenguajes subyacentes. Los programas en lenguaje ensamblador son
traducidos primero a nivel 2 o 3 y luego interpretados por la mquina virtual o real
adecuada. El programa que realiza la traduccin se denomina Assembler.
El nivel 5 consiste de lenguajes diseados para ser usados por los
programadores. Se los conoce como lenguajes de alto nivel. Los programas escritos
en estos lenguajes, generalmente se traducen a nivel 3 o 4 por traductores conocidos
como Compiladores, aunque en ocasiones son interpretados, como Java.
El nivel 6 consiste en un conjunto de programas diseados para mquinas
orientadas especficamente a ciertas aplicaciones. Todava estn desarrollo.
Los niveles 1, 2 y 3 no fueron diseados para uso directo del programador, sino
que fueron creados para que corran los intrpretes y traductores necesarios para
soportar los niveles superiores (se entienden en 0s y 1s). Los niveles 4 en adelante,
fueron pensados para los programadores de aplicaciones (se entienden con nombres
memnicos naturales para el programador). Los niveles 2 y 3 son siempre
interpretados, en cambio, los niveles iguales o mayores a 4 son usualmente, aunque no
siempre, traducidos.
Evolucin de las Mquinas Multinivel
Las primeras, remontndose a los 1940's, tenan solo dos niveles: el ISA (L2) en
el cual se realizaba la programacin y digital lgico (L0) donde eran ejecutados. Estos
eran complicados, difciles de construir y poco confiables.
En 1951, Wilkes sugiere la idea de disear una computadora en tres niveles, en
camino a simplificar drsticamente el Hardware. La mquina tendra un intrprete
propio, microporgramado, incambiable, cuya funcin seria ejecutar los programas del
nivel ISA. Ya en los 70's la idea de hacer que en nivel ISA sea interpretado por un
microprograma result dominante y los diseadores se dieron cuenta que podan
agregar nuevas instrucciones extendiendo el microprograma. Es decir, podan agregar
hardware programando (ej. Inc Reg A). La microprogramacin sustent el auge de las
arquitecturas CISC (Complex Instruction Set Computer). En esos tiempos, la memoria
era escasa, luego el inters por almacenar instrucciones poderosas.
Con la aparicin de las memorias semiconductoras se fue superando la cuestin
de capacidad y velocidad. Por otro lado, los microprogramas tubieron problemas de
velocidad, lo que los tornaron inviables. Finalmente, unos investigadores se dieron
cuenta que elminando el microprograma, reduciendo el set de instrucciones y haciendo
que el restante de las instrucciones se ejecuten directamente (hardwired control) se
poda aumentar la velocidad. Como conclusin de esto se produce un reeplanteo de las
arquitetcuras, surgiendo la filosofa RISC (Reduced Instruction Set Computer). Las
reglas de diseo RISC son sencillas: todas las instrucciones son ejecutadas
directamente por el hardware, nuna interpretadas; hay que maximizar la cantidad de
instrucciones que pueden ser iniciadas (issued); la sinstrucciones deberan ser fcil de
decodificar (de formato fijo y regular, con un pequeo nmero de campos); slo las
instrucciones Load y Store tendrn acceso a memoria; hay que proveer muchos
registros (los necesarios).
un Acumulador. Los componentes estn unidos por u bus, que es una coleccin de
cables para transmitir datos de direcciones, datos y seales de control. Los buses
pueden ser externos al CPU, conectndolo a memoria y perifricos de I/O, e internos.
La Central Procesing Unit es el cerebro de la
computadora. Su funcin es ejecutar programas
almacenados
en
memoria,
buscando
instrucciones,
examinando
las
mismas
y
ejecutando una tras otra. Est compuesta de
distintas partes. La Unidad de Control es la
responsable de organizar las distintas tareas del
CPU, se encargar del fetch de instrucciones y la
decodificacin. La ALU realiza las operaciones
aritmticas necesarias en la ejecucin de
instrucciones.
El CPU contiene adems una pequea memoria rpida usada en el
almacenamiento de resultados temporarios y de cierta informacin de control. Esta
memoria consiste en un dado nmero de registros, cada uno con una cierta funcin. El
ms importante es el PC, Program Counter, que guardar la direccin de la prxima
instruccin. Otro registro importante es el IR, Instruction Register, el cual guarda la
instruccin que se trae de memoria para ser ejecutada. Hay dos categoras de
registros: los internos, que el software no ve y se usan para soperte del sistema; y los
generales que si los ve el software.
Al nivel del CPU podemos distinguir dos sistemas: el Data Path, parte pasiva, que
involucra registros, ALU y buses internos; y el Control Path, parte activa, que
determina la secuencias de accioneas a ejecutar sobre el Data Path.
Ejecucin de Instrucciones: El CPU ejecuta cada instruccin en una serie de pasos:
1.
Fetch: Bsca la prxima instruccin en memoria memoria y se carga en el IR (l
CPU dialoga solamente con memoria).
2.
Cambia el PC para apuntar a la prxima instruccin.
3.
Decode: Determina el tipo de instruccin de la que acaba de traer.
4.
Si la instruccin usa datos en la memoria, determina donde esta, clculo de la
direccin efectiva.
5.
Busca el dato, si lo hubiera, y lo transfiere a un registro interno.
6.
Execute: Ejecuta la instruccin.
7.
Almacena el resultado en el lugar adecuado (esto ser etapa Mem o WB).
8.
Vuelve al paso 1 para comenzar a procesar la prxima instruccin.
Esta secuencia es reconocida como Fetch-Decode-Execute Cycle.
Las instrucciones las podemos dividir en tres categoras: registro-memoria, registroregistro, memoria-memoria. Registro-memoria permite que palabras de memoria sean
transferidas, cargadas, en registros, los que podrn ser usados posteriormente como
operandos en la ALU. Las registro-registro normalmente buscan operandos en los
registros, los transfieren a la ALU, esta los opera y luego se realiza el almacenamiento
del resultado en un dado registro. Memoria-memoria, busca sus operandos en
memoria, realiza la operacin y luego retorna el resultado a memoria.
Memoria
Es un conjunto de celdas o locaciones con una direccin que est fijada
(address). La celda es la menor unidad a la que puedo direccionar. Si la direccin tiene
M bits, el mximo nmero de celdas resulta 2M. El nmero M tiene que ver con el
mximo nmero de celdas a direccionar directamente en memoria y es independiente
del nmero de bits por celda. En los ltimos aos se estandariz que una celda de 8
bits se define como byte. Los bytes, a su vez, se agrupan en palabras. En general las
intrucciones operan con palabras (conj. de byes).
La memoria se la refiere en al jerga como RAM, Random Access Memory (cada
vez es menos random). Cualquiera que sea la locacin a la que accede, el tiempo ser
el mismo, independientemente de los accesos previos. Otro tipo de acceso es el Acceso
Directo, este se diferencia del RAM, a pesar de que ambos buscan directamente la
locacin deseada, en el hecho que el tiempo de acceso depender de qu estoy
accediendo y qu contenido acced previamente. Un tercer tipo de acceso es el
secuencial, que recorre todas las locaciones hasta encontrar la deseada.
Una cuestin a considerar es con que granularidad se direcciona en la memoria,
tpicamanete, se direcciona al byte. Una direccin ser entonces un puntero a un byte
de memoria. Los bytes en memoria podrn ser numerados, direccionados dentro de la
palabra, de izquierda a derecha o viceversa.
address
0
4
8
12
Big Endian
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
address
Little Endian
3 2 1 0
0
7 6 5 4
4
11 10 9 8
8
15 14 13 12
12
address
0
4
8
12
16
J
S
H
0
0
Big Endian
I M
M I T
address
Little Endian
M I J
0
T I M S
4
H
8
0 0 0 21
12
0 0 1 4
16
0
0
0
1
21
4
redundantes al dato.
Bit de Paridad, D=1
Se agrega un bit de paridad al dato para mantener la paridad con la que se
trabaja. Se puede trabajar con paridad par que es un dato compuesto por un nmero
par de 1s o con paridad impar que es un dato compuesto por un nmero impar de 1s.
Para la paridad par:
P=b1b2...bn
Para la paridad imapr:
P=(b1b2...bn)`
Cdigo Hamming, M=3, D=C=1 o D=2
La idea es agregar bits redundantes m a un dato de n bits tal que esos bits
redundantes se puedan construir en un puntero al bit errneo.
2mn+m+1
Asumiendo m bits redundantes se arma el dato compuesto, codeword,
numerando las posiciones desde 1 en adelante. Las posiciones potencia de dos se
reservan para los bits del cdigo, los de los datos se distribuyen en las otras.
0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100
1
2
3
4
5
6
7
8
9
10
11
12
c0
c1
b0
c2
b1
b2
b3
c3
b4
b5
b6
b7
ser incierto.
Combinando LRC y VRC se podra llegar a corregir el bt de error. VRC slo
detectara un nico burst.
Cyclic Redundancy Checking (CRC)
Se defini burst de error de longitud x. La idea es adems que la separacin entr
2 bursts de error deber ser x o ms bits sin error. El CRC tambin es conocido como
Polynomial Code. La cadena de bits se asocia a coeficientes de un polinomio de k
trminos (desde Xk-1 a X0). La divisin se desarrolla de la forma conocida salvo que la
resta se trabaja en modulo 2 (con xor) y las magnitudes del divisor y dividendo no
cuentan en la determinacin de si est o no contenido el divisor en el dividendo. Todo
lo que interesa es el n de bits del divisor el cual comienza con 1 sea igual al n de bits
del dividendo, el cual para la comparacin se requiere empiece con 1.
Transmisor y Receptor coinciden de antemano en un polinomio generador G(X)
de grado r con r+1 bits y la restriccin de que tanto el bit de mayor orden como menor
orden sea 1.
A partir de un frame M(X) de m bits, dato a transmitir, la idea es incorporar el
checksum al final del frame de manera tal que resulte divisible por G(X). Si en el
receptor al dividir por G(X) a este frame con checksum da un resto distinto de 0, se
detecta error de transmisin. En caso de producirse uno o varios errores de
transmisin, el frame recibido se ver como T(X)+E(X) donde el polinomio E(X) tendr
un 1 en aquellas posiciones que se produjo un error.
La deteccin del burst depender de si G(X) divide o no a E(X). Si G(X) es al
menos de dos bits (r=1), es claro que detecta un bit de error. Dado que la longitud de
E(X) es menor que la cantidad de bits de G(X), el resto ser distinto de 0 para
cualquier burst de error de longitud menor o igual a r.
La posibilidad de no detectar error depende de la coincidencia de las posiciones
internas de los r-1 bits, luego, la posibiladad de no ser detectado, asumiendo igual
probabilidad en las distintas posisiones es 2 -r+1. La posibilidad de detectaro es 1-2 -r+1,
se da con longitud de burst r+1.
El xor trata a los 0s ya los 1s por igual, a diferencia del AND y el OR, de aqu el a
analizar el caso de igual longitud, si el dividendo es igual a G(X) el resto ser cero y el
burst no se detecta.
Algoritmo CRC:
Si G(X) es de grado r agregar r 0s a la derecha de M(x), el cual contendr de tal
forma m+r bits.
Dividimos el polinomio nuevo (Xr.M(X)) por G(X) usando el esquema visto.
El resto (R(X)), que tendr un n bits (nr), constituye el checksum de M(X).
As, el Transmited Frame T(X)=M(X)R(X).