lunes, 8 de diciembre de 2008

Comentario acerca de la materia

Este semestre , en lo particular, ha sido muy complicado por la cantdad de información recibida de una solo golpe, pero en lo personal de esta materia (Arquitectura de computadoras) fue de la que más pude aprender y comprender a lo largo del semestre ya que la clase, la mayor parte del tiempo, fue muy didactica esto debido a que se nos pusieron los suficientes ejemplos como para entender y digerir toda la información que se nos estaba otorgando en ese momento. Lo único desfavorable que veria, es la hora, pero vaya nadie dijo que esto sería fácil.

Regresando a la materia, pude comprender muchas cosas sobre como esta conformada logicamente un computadora y de todo el trabajo que lleva estar haciendo esto para que funcione como uno quiere, por que a uno le parece muy sencillo llegar a sentarse a usarla sin saber todo el trabajo que hay detras de ella y comprendiendo esto uno se pregunta cosas y esas cosas lo llevan a otras, todo con el fin de seguir aprendiendo, si bien no todo, lo suficinte de una computadora.

Más adelante (seguramente) esto lo podre aplicar en algún momento de mi carrera y de mi vida y tengo el presentimiento de que me será de mucha ayuda y que a su vez me servira para entender muchas cosas más que sin el conocimiento previo no entenderia o probablemente si, pero me costaria mucho, pero mucho trabajo.

En fin, esta es mi humilde opinión acerca de esta materia, espero que a los siguientes en cursarlas les guste o de menos que la entiendan y que les ayude a resolver prolemas futuros. Hasta la próxima.

domingo, 7 de diciembre de 2008

Registros de Memoria

Un registro es una memoria de alta velocidad y poca capacidad, integrada en el microprocesador, que permite guardar transitoriamente y acceder a valores muy usados, generalmente en operaciones matemáticas.

Los registros están en la cumbre de la jerarquía de memoria, y son la manera más rápida que tiene el sistema de almacenar datos. Los registros se miden generalmente por el número de bits que almacenan; por ejemplo, un "registro de 8 bits" o un "registro de 32 bits". Los registros generalmente se implementan en un banco de registros, pero antiguamente se usaban Flip flops individuales, memoria SRAM o formas aún más primitivas.

El término es usado generalmente para referirse al grupo de registros que pueden ser directamente indexados como operando de una instrucción, como está definido en el conjunto de instrucciones. Sin embargo, los microprocesadores tienen además muchos otros registros que son usados con un propósito específico, como el contador de programa.

Tipos de registros

* Los registros de datos son usados para guardar números enteros. En algunas computadoras antiguas, existía un único registro donde se guardaba toda la información, llamado acumulador.
* Los registros de memoria son usados para guardar exclusivamente direcciones de memoria. Eran muy usados en la arquitectura Harvard, ya que muchas veces las direcciones tenían un tamaño de palabra distinto que los datos.
* Los registros de propósito general (en inglés GPRs o General Purpose Registers) pueden guardar tanto datos como direcciones. Son fundamentales en la arquitectura de von Neumann. La mayor parte de las computadoras modernas usa GPR.
* Los registros de coma flotante son usados para guardar datos en formato de coma flotante.
* Los registros constantes tienen valores creados por hardware de sólo lectura. Por ejemplo, en MIPS el registro $zero siempre vale 0.
* Los registros de propósito específico guardan información específica del estado del sistema, como el puntero de pila o el registro de estado.

Contador

En electrónica digital, un contador es un circuito secuencial construido a partir de Flip flops y compuertas lógicas capaz de realizar el cómputo de los impulsos que recibe en la entrada destinada a tal efecto, almacenar datos o actuar como divisor de frecuencia. Habitualmente, el cómputo se realiza en un código binario, que con frecuencia será el binario natural o el BCD natural (contador de décadas).

Clasificación de los contadores


* Según la forma en que conmutan los Flip flop, podemos hablar de contadores síncronos (todos los flip flop conmutan a la vez, con una señal de reloj común) o asíncronos (el reloj no es común y los flip flops conmutan uno tras otro).
* Según el sentido de la cuenta, se distinguen en ascendentes, descendentes y UP-DOWN (ascendentes o descendentes según la señal de control).
* Según la cantidad de números que pueden contar, se puede hablar de contadores binarios de n bits (cuentan todos los números posibles de n bits, desde 0 hasta 2n − 1), contadores BCD (cuentan del 0 al 9) y contadores Módulo N (cuentan desde el 0 hasta el N-1)

Tipos de contadores

Existen diversos tipos de contadores:

* Contadores de rizado.
* Contadores paralelos.
* Contadores de rizado mod-6.
* Contador Johnson. Activa una sola salida entre varias. En respuesta al pulso de conteo, la salida siguiente pasa a ser la activa.
* Contador en anillo. Está formado por un conjunto de flip flop conectados como un registro de desplazamiento, con un lazo de realimentación que se obtiene uniendo las salidas del último flip flop con la entrada del primero. El inconveniente que presentan es que sólo pueden contar 'n' impulsos (siendo log2m y m los bits del resultado).

“Se utilizan para llevar el control del número de ocasiones en que se realiza una operación o se cumple una condición. Los incrementos son generalmente de uno en uno.”

UN ejemplo de un contador sincrono de 4 bits:

Flip Flops

Un flip-flop es un multivibrador capaz de permanecer en un estado determinado o en el contrario durante un tiempo indefinido. Esta característica es ampliamente utilizada en electrónica digital para memorizar información. El paso de un estado a otro se realiza variando sus entradas. Dependiendo del tipo de dichas entradas los flip flop se dividen en:

* Asíncronos: sólo tienen entradas de control. El más empleado es el flip flop RS.
* Síncronos: además de las entradas de control posee una entrada de sincronismo o de reloj. Si las entradas de control dependen de la de sincronismo se denominan síncronas y en caso contrario asíncronas. Por lo general, las entradas de control asíncronas prevalecen sobre las síncronas.

La entrada de sincronismo puede ser activada por nivel (alto o bajo) o por flanco (de subida o de bajada). Dentro de los flip flop síncronos activados por nivel están los tipos RS y D, y dentro de los activos por flancos los tipos JK, T y D.

Flip Flop SR


Dispositivo de almacenamiento temporal de dos estados (alto y bajo), cuyas entradas principales, R y S, a las que debe el nombre, permiten al ser activadas:

* R: el borrado (reset en inglés), puesta a 0 ó nivel bajo de la salida.
* S: el grabado (set en inglés), puesta a 1 ó nivel alto de la salida.

Si no se activa ninguna de las entradas, el flip flop permanece en el estado que poseía tras la última operación de borrado o grabado. En ningún caso deberían activarse ambas entradas a la vez, ya que esto provoca que las salidas directa (Q) y negada (Q') queden con el mismo valor: a bajo, si la báscula está construida con puertas NO-O (NOR), o a alto, si con puertas NO-Y (NAND). El problema de que ambas salidas queden al mismo estado está en que al desactivar ambas entradas no se podrá determinar el estado en el que quedaría la salida. Por eso, en las tablas de verdad, la activación de ambas entradas se contempla como caso no deseado (N. D.).

Sólo posee las entradas R y S. Se compone internamente de dos puertas lógicas NO-Y o NO-O, según se muestra en la siguiente figura:



Su tabla de verdad es la siguiente (Q representa el estado actual de la salida y q el estado anterior a la última activación):



Flip Flop D

Dispositivo de almacenamiento temporal de dos estados (alto y bajo), cuya salida adquiere el valor de la entrada D cuando se activa la entrada de sincronismo, C. En función del modo de activación de dicha entrada de sincronismo, existen dos tipos de biestables D:

* Activo por nivel (alto o bajo), también denominado registro o cerrojo (latch en inglés).
* Activo por flanco (de subida o de bajada).

Y su tabla de verdad:



Esta báscula puede verse como una primitiva línea de retardo o una retención de orden cero (zero order hold en inglés), ya que los datos que se introducen, se obtienen en la salida un ciclo de reloj después. Esta característica es aprovechada para sintetizar funciones de procesamiento digital de señales (DSP en inglés) mediante la transformada en z.



Filp Flop T


Dispositivo de almacenamiento temporal de dos estados (alto y bajo). El Flip flop T cambia de estado ("toggle" en inglés) cada vez que la entrada de sincronismo o de reloj se dispara. Si la entrada T está a nivel bajo, el flip flop retiene el nivel previo. La tabla de verdad es:





Flip Flop JK

Dispositivo de almacenamiento temporal de dos estados (alto y bajo), cuyas entradas principales, J y K, a las que debe el nombre, permiten al ser activadas:

* J: El grabado (set en inglés), puesta a 1 ó nivel alto de la salida.
* K: El borrado (reset en inglés), puesta a 0 ó nivel bajo de la salida.

Si no se activa ninguna de las entradas, el flip flop permanece en el estado que poseía tras la última operación de borrado o grabado. A diferencia del biestable RS, en el caso de activarse ambas entradas a la vez, la salida adquirirá el estado contrario al que tenía.

Su tabla de verdad es:


Sistema secuencial

A diferencia de los sistemas combinacionales, en los sistemas secuenciales, los valores de las salidas, en un momento dado, no dependen exclusivamente de los valores de las entradas en dicho momento, sino también de los valores anteriores. El sistema secuencial más simple es el biestable.

La mayoría de los sistemas secuenciales están gobernados por señales de reloj. A éstos se los denomina "síncronos" o "sincrónicos", a diferencia de los "asíncronos" o "asincrónicos" que son aquellos que no son controlados por señales de reloj.

A continuación se indican los principales sistemas secuenciales que pueden encontrarse en forma de circuito integrado o como estructuras en sistemas programados:

* Contador
* Registros


En todo sistema secuencial nos encontraremos con:

a) Un conjunto finito, n, de variables de entrada (X1, X2,..., Xn).
b) Un conjunto finito, m, de estados internos, de aquí que los estados secuenciales también sean denominados autómatas finitos. Estos estados proporcionarán m variables internas (Y1,Y2,..., Ym).
c) Un conjunto finito, p, de funciones de salida (Z1, Z2,..., Zp).

Dependiendo de como se obtengan las funciones de salida, Z, los sistemas secuenciales pueden tener dos estructuras como las que se observan el la siguiente figura, denominadas autómata de Moore, a), y autómata de Mealy, b).

Multiplexores y decodificadores

Multiplexor

En el campo de las telecomunicaciones el multiplexor se utiliza como dispositivo que puede recibir varias entradas y transmitirlas por un medio de transmisión compartido. Para ello lo que hace es dividir el medio de transmisión en múltiples canales, para que varios nodos puedan comunicarse al mismo tiempo.

Una señal que está multiplexada debe desmultiplexarse en el otro extremo.

Según la forma en que se realice esta división del medio de transmisión, existen varias clases de multiplexación:

* Multiplexación por división de frecuencia
* Multiplexación por división de tiempo
* Multiplexación por división de código
* Multiplexación por división de longitud de onda

Electrónica digital


En electrónica digital, un multiplexor, es un circuito usado para el control de un flujo de información que equivale a un conmutador. En su forma más básica se compone de dos entradas de datos (A y B), una salida de datos y una entrada de control. Cuando la entrada de control se pone a 0 lógico, la señal de datos A es conectada a la salida; cuando la entrada de control se pone a 1 lógico, la señal de datos B es la que se conecta a la salida.

El multiplexor es una aplicación particular de los decodificadores, tal que existe una entrada de habilitación (EN) por cada puerta AND y al final se hace un OR entre todas las salidas de las puertas AND.

La función de un multiplexor da lugar a diversas aplicaciones:
1. Selector de entradas.
2. Serializador: Convierte datos desde el formato paralelo al formato serie.
3. Transmisión multiplexada: Utilizando las mismas líneas de conexión, se transmiten diferentes datos de distinta procedencia.
4. Realización de funciones lógicas: Utilizando inversores y conectando a 0 ó 1 las entradas según interese, se consigue diseñar funciones complejas, de un modo más compacto que con las tradicionales puertas lógicas.



Decodificador

Un decodificador es un circuito combinacional, cuya función es inversa a la del codificador, esto es, convierte un código binario de entrada (natural, BCD, etc.) de N bits de entrada y M líneas de salida (N puede ser cualquier entero y M es un entero menor o igual a 2N), tales que cada línea de salida será activada para una sola de las combinaciones posibles de entrada. Estos circuitos, normalmente, se suelen encontrar como decodificador / demultiplexor. Esto es debido a que un demultiplexor puede comportarse como un decodificador.

Si por ejemplo tenemos un decodificador de 2 entradas con 22=4 salidas, en el que las entradas, su funcionamiento sería el que se indica en la siguiente tabla, donde se ha considerado que las salidas se activen con un "uno" lógico:

Tabla de verdad para el decodificador 2 a 4




Sistema combinacionales

Se denomina sistema combinacional o lógica combinacional a todo sistema digital en el que sus salidas son función exclusiva del valor de sus entradas en un momento dado, sin que intervengan en ningún caso estados anteriores de las entradas o de las salidas. Por tanto, carecen de memoria y de realimentación.

En electrónica digital la lógica combinacional está formada por ecuaciones simples a partir de las operaciones básicas del álgebra de Boole. Entre los circuitos combinacionales clásicos tenemos:

-Lógicos

* Generador/Detector de paridad
* Multiplexor y Demultiplexor
* Codificador y Decodificador
* Conversor de código
* Comparador: compara 2 números en código binario.

- Aritméticos

* Sumador
* Restador

- Aritméticos y lógicos

* Unidad aritmético lógica

Éstos circuitos están compuestos únicamente por puertas lógicas interconectadas entre sí.

Funciones combinacionales

Todos los circuitos combinacionales pueden representarse empleando álgebra de Boole y lo que se conoce como Lógica binaria, generando de forma matemática el funcionamiento del sistema combinacional, así cada señal de entrada es una variable de la ecuación.

De esta forma, un sistema combinacional compuesto exclusivamente por una puerta AND tendría dos entradas A y B. Su función combinacional seria F = A . B, para una puerta OR sería F = A + B. Estas operaciones se pueden combinar formando funciones más complejas. Por ejemplo, el siguiente esquema se define por la función debajo de este.

Función Booleana

Se denomina función lógica o booleana a aquella función matemática cuyas variables son binarias y están unidas mediante los operadores del álgebra de Boole suma lógica (+), producto lógico (•) o negación(').

Modos de representación

Existen distintas formas de representar una función lógica, entre las que podemos destacar las siguientes:

* Algebraica
* Por tabla de verdad
* Numérica
* Gráfica

El uso de una u otra, como veremos, dependerá de las necesidades concretas en cada caso.

Algebraica

Se utiliza cuando se realizan operaciones algebraicas. A continuación se ofrece un ejemplo con distintas formas en las que se puede expresar algebraicamente una misma función de tres variables.

a) F = [(A + BC’)’ + ABC]’ + AB’C
b) F = A’BC’ + AB’C’ + AB’C + ABC’
c) F = (A + B + C)(A + B + C’)(A + B’ + C’)(A’ + B’ + C’)
d) F = BC’ + AB’
e) F = (A + B)(B’ + C’)
f) F = [(BC’)’ • (AB’)’]’
g) F = [(A + B)’ + (B’ + C’)’]’

La expresión a) puede proceder de un problema lógico planteado o del paso de unas especificaciones a lenguaje algebraico. Las formas b) y c) reciben el nombre expresiones canónicas de suma de productos (sum-of-products, SOP, en inglés), la b), y de productos de sumas (product-of-sums, POS, en inglés), la c); su característica principal es la aparición de cada una de las variables (A, B y C) en cada uno de los sumandos o productos. Las d) y e) son funciones simplificadas, esto es, reducidas a su mínima expresión. Las dos últimas expresiones tienen la particularidad de que exclusivamente utiliza funciones NO-Y, la f), o funciones NO-O, la g).

Por tabla de verdad

Una tabla de verdad contiene todos los valores posibles de una función lógica dependiendo del valor de sus variables. El número de combinaciones posibles para una función de n variables vendrá dado por 2n. Una función lógica puede representarse algebraicamente de distintas formas como acabamos de ver, pero sólo tiene una tabla de verdad. La siguiente tabla corresponde a la función lógica del punto anterior.



La forma más cómodo para ver la equivalencia entre una tabla de verdad y una expresión algebraica es cuando esta última se da en su forma canónica. Así, la función canónica de suma de productos

F = A’BC’ + AB’C’ + AB’C + ABC’

nos indica que será 1 cuando lo sea uno de sus sumandos, lo que significa que tendrá por lo tanto cuatro combinaciones que lo serán (010 para A’BC’, 100 para AB’C’, 101 para AB’C y 110 para ABC’) siendo el resto de combiaciones 0. Con la función canónica de producto de sumas se puede razonar de forma análoga, pero en este caso observando que la función será 0 cuando lo sea uno de sus productos.

También es fácil obtener la tabla de verdad a partir de la función simplificada, pero no así a la inversa.

Numérica

La representación numérica es una forma simplificada de representar las expresiones canónicas. Si consideramos el criterio de sustituir una variable sin negar por un 1 y una negada por un 0, podremos representar el término, ya sea una suma o un producto, por un número decimal equivalente al valor binario de la combinación. Por ejemplo, los siguientes términos canónicos se representarán del siguiente modo (observe que se toma el orden de A a D como de mayor a menor peso):

AB’CD = 10112 = 1110
A’ + B + C’ + D’ = 01002 = 410

Para representar una función canónica en suma de productos utilizaremos el símbolo Σn (sigma) y en producto de sumas Πn (pi), donde n indicará el número de variables. Así, la representación numérica correspondiente a la tabla de verdad del punto anterior quedará como:

F = Σ3(2, 4, 5, 6) = Π3(0, 1, 3, 7)

Matemáticamente se demuestra, que para todo término i de una función, se cumple la siguiente ecuación:

F = [Σn(i)]' = Πn(2n-1-i )

A modo de ejemplo se puede utilizar esta igualdad para obtener el producto de sumas a partir de la suma de productos del ejemplo anterior:

F = Σ3(2, 4, 5, 6) = [Σ3(2, 4, 5, 6)]' ' = [Σ3(0, 1, 3, 7)]' = Π3(0, 4, 6, 7)

Gráfica


La representación gráfica es la que se utiliza en circuitos y esquemas electrónicos. En la siguiente figura se representan gráficamente dos funciones algebraicas, una con símbolos no normalizados, superior, y la otra con normalizados, inferior (véanse los símbolos de las puertas lógicas)



Métodos de simplificación

Por simplificación de una función lógica se entiende la obtención de su mínima expresión. A la hora de implementar físicamente una función lógica se suele simplificar para reducir así la compejidad del circuiuto.

A continuación se indican los modos más usuales de simplificar una función lógica.

Algebraico

Para la simplificación por este método no sólo bastará con conocer todas las propiedades y teoremas del álgebra de Boole, además se debe desarrollar una cierta habilidad lógico-matemática que se adquiere fundamentalmente con la experiencia.

Como ejemplo se simplificará la siguiente función:

F = A’C’ + ABC + BC’ + A’B’C + A’BC

Observando cada uno de los sumando podemos ver que hay factores comunes en los sumandos 2º con 5º y 4 con 5º que conllevan simplificación:

F = A’C’ + BC’ + BC(A + A’) + A’C(B + B’)

Note que el término 5º se ha tomado dos veces, de acuerdo con la propiedad que diceque A + A´ = 1. Aplicando las propiedades del álgebra de Boole, queda

F = A’C’ + BC’ + BC + A’C

Repitiendo nuevamente el proceso,

F = A’( C’ + C) + B( C’ + C) = A’ + B

No siempre las funciones son tan fáciles de simplificar como la anterior. El método algebraico, por lo general, no resulta cómodo para los no expertos, a los cuales, una vez simplificada una ecuación le pueden quedar serias dudas de haber conseguido la máxima simplificación.

Gráfico de Karnaugh

Este método consiste en formar diagramas de 2n cuadros, siendo n el número de variables. Cada cuadro representa una de las diferentes combinaciones posibles y se disponen de tal forma que se puede pasar de un cuadro a otro en las direcciones horizontal o vertical, cambiando únicamente una variable, ya sea en forma negada o directa.

Este método se emplea fundamentalmente para simplificar funciones de hasta cuatro variables. Para un número superior utilizan otros métodos como el numérico. A continuación pueden observarse los diagramas, también llamados mapas de Karnaugh, para dos, tres y cuatro variables.

Es una práctica común numerar cada celda con el número decimal correspondiente al término canónico que albergue, para facilitar el trabajo a la hora de plasmar una función canónica.

Para simplificar una función lógica por el método de Karnaugh se seguirán los siguientes pasos:

1º) Se dibuja el diagrama correspondiente al número de variables de la función a simplificar.

2º) Se coloca un 1 en los cuadros correspondientes a los términos canónicos que forman parte de la función.

3º) Se agrupan mediante lazos los unos de casillas adyacentes siguiendo estrictamente las siguientes reglas:

a) Dos casillas son adyacentes cuando se diferencian únicamente en el estado de una sola variable.

b) Cada lazo debe contener el mayor número de unos posible, siempre que dicho número sea potencia de dos (1, 2, 4, etc.)

c) Los lazos pueden quedar superpuestos y no importa que haya cuadrículas que pertenezcan a dos o más lazos diferentes.

d) Se debe tratar de conseguir el menor número de lazos con el mayor número de unos posible.

4º) La función simplificada tendrá tantos términos como lazos posea el diagrama. Cada término se obtiene eliminando la o las variables que cambien de estado en el mismo lazo.

A modo de ejemplo se realizan dos simplificaciones de una misma función a partir de sus dos formas canónicas:

F = Σ3(0,2,3,4,7) = Π3(1,2,6)

De acuerdo con los pasos vistos anteriormente, el diagrama de cada función quedará del siguiente modo:

Algebra Booleana

Álgebra de Boole en informática y matemática, es una estructura algebraica que rigorizan las operaciones lógicas AND, OR y NOT, así como el conjunto de operaciones unión, intersección y complemento.

Se denomina así en honor a George Boole, (2 de noviembre de 1815 a 8 de diciembre de 1864), matemático inglés que fue el primero en definirla como parte de un sistema lógico a mediados del siglo XIX. Específicamente, el álgebra de Boole fue un intento de utilizar las técnicas algebraicas para tratar expresiones de la lógica proposicional. En la actualidad, el álgebra de Boole se aplica de forma generalizada en el ámbito del diseño electrónico.

El resultado de aplicar cualquiera de las tres operaciones definidas a variables del sistema booleano resulta en otra variable del sistema, y este resultado es único.

Leyes fundamentales

Codificación

La codificación consiste en transformar la formulación de un mensaje mediante una serie de reglas dispuestas según un plan metódico y sistemático. Al conjunto de estas reglas metódicas que definen la codificación se les denomina código.

En la arquitectuda de computadoras, el código más utilizado es en código binario ya que a la máquina (en este caso, una computadora) le es más fácil tranformar esta información a niario que a cualquiero otro código por el siemple heche de solo manejar 2 números, u ejepemplo de este es:



Características del código binario

Ponderación.-La mayoría de los sistemas de numeración actuales son ponderados, es decir, cada posición de una secuencia de dígitos tiene asociado un peso. El sistema binario es, de hecho, un sistema de numeración posicional ponderado. Sin embargo, algunos códigos binarios, como el código Gray, no son ponderados, es decir, no tienen un peso asociado a cada posición. Otros, como el mismo código binario natural o el BCD natural sí lo son.

Distancia.- La distancia es una característica sólo aplicable a las combinaciones binarias. La distancia entre dos combinaciones es el número de bits que cambian de una a otra. Por ejemplo, si se tienen las combinaciones de cuatro bits 0010 y 0111, correspondientes al 2 y al 7 en binario natural, se dirá que la distancia entre ellas es igual a dos (ya que de una a otra cambian dos bits). Además, con el concepto de distancia se puede definir la distancia mínima de un código. Ésta no es más que la distancia menor que haya entre dos de las combinaciones de ese código.

Adyacencia.- La adyacencia es una característica que consiste en que de una combinación binaria a la siguiente sólo varía un bit (distancia igual a uno). Esta propiedad es aplicable únicamente a las combinaciones binarias de un código, no al código en sí mismo.

Continuidad.- La continuidad es una característica de los códigos binarios que cumplen que todas las posibles combinaciones del código son adyacentes, es decir, que de cualquier combinación del código a la siguiente cambia un sólo bit. En este caso se dice que el código es continuo. Cuando la última combinación del código es, a su vez, adyacente a la primera, se trata de un código cíclico.

Autocomplementariedad.- Se dice que un código binario es autocomplementario cuando el complemento a nueve del equivalente decimal de cualquier combinación del código puede hallarse invirtiendo los valores de cada uno de los bits (operación lógica unaria de negación) y el resultado sigue siendo una combinación válida en ese código. Esta característica se observa en algunos códigos BCD, como el código Aiken o el código BCD exceso 3. Los códigos autocomplementarios facilitan las operaciones aritméticas.

Sistéma numérico

En matemáticas, varios sistemas de notación que se han usado o se usan para representar cantidades abstractas denominadas números. Un sistema numérico está definido por la base que utiliza. La base de un sistema numérico es el número de símbolos diferentes o guarismos, necesarios para representar un número cualquiera de los infinitos posibles en el sistema.

Definición


Un conjunto S es un sistema numérico si en él están definidas dos operaciones binarias asociativas y conmutativas, denominadas adición y multiplicación, y si además se cumple que la multiplicación es distributiva con respecto a la adición. Para a, b y c elementos de S:

Propiedad asociativa de la adición: (a + b) + c = a + (b + c)

Propiedad conmutativa de la adición: a + b = b + a

Propiedad asociativa de la multiplicación: (a.b).c = a.(b.c)

Propiedad conmutativa de la multiplicación: a.b = b.a

Propiedad distributiva de la multiplicación sobre la adición: a.(b + c) = a.b + a.c

La adición y la multiplicación no necesariamente deben ser las de la aritmética elemental.

Es una práctica didáctica que los maestros utilicen objetos como manzanas o naranjas y la noción de conjunto para enseñar a sumar. Esta práctica podrá ser útil a la hora de enseñar, pero descansa en ideas no demasiado meditadas. Para las consideraciones que siguen utilizaremos la convención de asimilar la suma a la unión de conjuntos y el producto a la intersección, como en el título anterior:

* La unión de conjuntos es asimilable a la suma ordinaria solamente si los conjuntos son disjuntos:

En una primera aproximación tenemos que dos conjuntos que tengan tres y cuatro elementos, respectivamente, y que no contengan elementos comunes, darán por unión un conjunto de siete elementos, conforme a la intención del docente para lo que desea lograr en el alumno. Pero si esos conjuntos tuvieran dos elementos comunes la unión daría por resultado un conjunto de tres elementos.


* Se ve afectado el papel del elemento identidad para la adición o elemento nulo de la suma.

Podríamos asimilar al conjunto vacío como el elemento identidad para la suma, ya que: 0 U A = A U 0; pero también A U A = A y si B c A tenemos el mismo resultado, con lo que cada conjunto y todos los conjuntos incluidos en él lo dejan idéntico con respecto a la unión. Pero el conjunto vacío es el único que lo hace con todos los conjuntos.


* La intersección es más chocante en cuanto a su paralelismo con el producto.

La intersección de dos conjuntos disjuntos distintos del conjunto vacío darán por resultado el conjunto vacío. Esto equivale a decir que en el sistema numérico que forman los conjuntos hay divisores de cero. La intersección de conjuntos con elementos comunes dejará un conjunto con menos elementos que el menor de ellos. A lo sumo igual al menor de ellos, si está incluido dentro del conjunto mayor.


* La unidad o elemento identidad para la multiplicación.

Si adoptamos el uso intuitivo o hasta la formulación formal de los conjuntos, el sistema carecerá de unidad, puesto que no habrá ningún conjunto cuya intersección con otro cualquiera deje a ese idéntico. En el caso que se definiera un conjunto universal, referencial o de referencia, éste sería la unidad. Al estar cualquier conjunto definido a partir de él, la intersección de cualquier conjunto con el de referencia daría por resultado el conjunto menor. Pero esta unidad es un poco diferente de la idea intuitiva que se tiene a partir de la aritmética.

Arquitectura de computadoras

La arquitectura de computadoras es el diseño conceptual y la estructura operacional fundamental de un sistema de computadora. Es decir, es un modelo y una descripción funcional de los requerimientos y las implementaciones de diseño para varias partes de una computadora, con especial interés en la forma en que la unidad central de proceso (CPU) trabaja internamente y accede a las direcciones de memoria.


También suele definirse como la forma de seleccionar e interconectar componentes de hardware para crear computadoras según los requerimientos de funcionalidad, rendimiento y costo.

La segmentación de instrucciones es similar al uso de una cadena de montaje en una fábrica de manufacturación. En las cadenas de montaje, el producto pasa a través de varias etapas de producción antes de tener el producto terminado. Cada etapa o segmento de la cadena está especializada en un área específica de la línea de producción y lleva a cabo siempre la misma actividad. Esta tecnología es aplicada en el diseño de procesadores eficientes.

A estos procesadores se les conoce como pipeline processors. Estos están compuestos por una lista de segmentos lineales y secuenciales en donde cada segmento lleva a cabo una tarea o un grupo de tareas computacionales. Los datos que provienen del exterior se introducen en el sistema para ser procesados. La computadora realiza operaciones con los datos que tiene almacenados en memoria, produce nuevos datos o información para uso externo.

Las arquitecturas y los conjuntos de instrucciones se pueden clasificar considerando los siguientes aspectos:

  • Almacenamiento de operandos en la CPU: dónde se ubican los operandos aparte de la memoria.
  • Número de operandos explícitos por instrucción: cuántos operandos se expresan en forma explícita en una instrucción típica. Normalmente son 0, 1, 2 y 3.
  • Posición del operando: ¿Puede cualquier operando estar en memoria?, o deben estar algunos o todos en los registros internos de la CPU. Cómo se especifica la dirección de memoria (modos de direccionamiento disponibles).
  • Operaciones: Qué operaciones están disponibles en el conjunto de instrucciones.
  • Tipo y tamaño de operandos y cómo se especifican.