miércoles, 10 de diciembre de 2014

PIPELINE Y CACHE

PIPELINE La velocidad de ejecución de los programas depende de diversos factores. Una forma de aumentar esta velocidad es hacer más rápidos los circuitos con los que se construyen los procesadores y la memoria principal. No obstante, se debe considerar el coste que supone una mejora y que el límite a esta velocidad lo impone el estado del arte actual de la tecnología. Otra posibilidad es organizar el hardware para poder ejecutar más de una instrucción simultáneamente: concurrencia. La concurrencia se puede obtener en dos niveles: al nivel del procesador y al nivel de la instrucción. La concurrencia al nivel de la CPU se obtiene disponiendo de múltiples procesadores ejecutando simultáneamente varias instrucciones. Obtener concurrencia a nivel de la instrucción significa poder ejecutar varias instrucciones simultáneamente con una única CPU. Este último tipo de paralelismo se denomina segmentación o encadenamiento, aunque suele ser más conocido por su denominación en inglés: pipelining. Las arquitecturas con múltiples procesadores suelen utilizarse en máquinas de muy altas prestaciones (y muy alto precio). Sin embargo, con arquitecturas segmentadas se consigue una muy buena mejora del rendimiento y a un coste asequible. Por esto, es normal que todos los microprocesadores actuales de propósito general incorporen el pipelining. Ya que es muy común su utilización en los actuales procesadores, vamos a abordar aquí esta técnica del pipelining, mientras que las arquitecturas multiprocesador las dejaremos para asignaturas o textos de arquitecturas paralelas o avanzadas. El proceso en pipeline o encadenado es similar al utilizado en cualquier cadena de montaje, y el nombre pipeline(tubería) se debe al hecho de que como en una tubería, en la entrada se aceptan nuevos elementos (instrucciones)antes de que los previamente aceptados salgan por la salida.
CACHE la caché es la memoria de acceso rápido de una computadora, que guarda temporalmente las últimas informaciones procesadas. La memoria caché es un búfer especial de memoria que poseen las computadoras, que funciona de manera similar a la memoria principal, pero es de menor tamaño y de acceso más rápido. Es usada por el microprocesador para reducir el tiempo de acceso a datos ubicados en la memoria principal que se utilizan con más frecuencia. La caché es una memoria que se sitúa entre la unidad central de procesamiento (CPU) y la memoria de acceso aleatorio (RAM) para acelerar el intercambio de datos. Cuando se accede por primera vez a un dato, se hace una copia en la caché; los accesos siguientes se realizan a dicha copia, haciendo que sea menor el tiempo de acceso medio al dato. Cuando el microprocesador necesita leer o escribir en una ubicación en memoria principal, primero verifica si una copia de los datos está en la caché; si es así, el microprocesador de inmediato lee o escribe en la memoria caché, que es mucho más rápido que de la lectura o la escritura a la memoria principal.
FUENTE: PIPELINE. (s.f.). Obtenido de http://definicion.de/pipeline/ WIKIPEDIA. (s.f.). Obtenido de http://es.wikipedia.org/wiki/Cach%C3%A9_%28inform%C3%A1tica%29

jueves, 16 de octubre de 2014

Que son los Dominios

Un dominio en términos generales es un nombre que puede ser alfanumérico que generalmente se vincula a una dirección física que generalmente es una computadora o dispositivo electrónico.
Generalmente se utilizan para representar las direcciones de las páginas web’s. Puesto que Internet se basa en direcciones IP (Protocolo de Internet) que en términos simples se puede decir que son los números de conexión de cada computadora que está conectada a internet.

¿En qué partes se divide un dominio?

Un dominio se compone principalmente de dos partes: el nombre de la organización (webgdl) y el tipo de organización (com). Los tipos de organización más comunes son .COM, .NET  y .ORG, que se refieren a comercial, network y organizaciones.

Fuente: Youtube


Estructura de un dominio

Un dominio se compone de varios elementos con el carácter “.“ (punto) como separador.
Las palabras que componen el nombre de un dominio responden a una jerarquía.
Los componente de primer nivel o de primer orden son los que van situados mas a la derecha del nombre del dominio.
A su izquierda encontramos el dominio de segundo nivel y, en algunos casos, tercer nivel.

Ejemplo; www.anetcom.es
                www: siglas “World Wide Web”, telarana mundial.
                Determina que estamos en internet.
                Anetcom: dominio de segundo nivel.
                Es: dominio de primer nivel.


 Fuente: Youtube


CIDR (classless interdomain routing) (CIDR [enrutamiento de interdominios sin clases])


Una manera de especificar un intervalo de direcciones usando un número arbitrario de bits. Por ejemplo, una especificación de CIDR de 206.13.1.48/25 incluiría cualquier dirección en la cual los primeros 25 bits de la dirección coincidan con los primeros 25 bits de 206.13.1.48.

lunes, 6 de octubre de 2014

Marcelo Cors Zeballos - Arquitectura de Pc 's - Knovio

Arquitectura VAX 

En 1875 se creo una maquina el 25 de octubtre de 1977 es un sistema operativo USM se re nombro a open VMS en 1980 versión VMS
Se crearon diferentes ordenadores como por ejemplo el 
PDP - 11.Vax
Fue la primera disponible con 32 bits esta duro 10 a 15 años la capacidad  de dustering 
1982- publica  vax-11/730 estos fueron mas pequeños que los Vax-11/750
VAX era una arquitectura de conjunto de instrucciones desarrollado por (Digital Equipment Corporation) a mediados de la década de 1970. A 32 bits de instrucciones complejo conjunto de equipos ISA, que fue diseñado para extender o reemplazar varios datos NIA procesador programado de diciembre El nombre VAX también fue utilizado por DEC para una familia de sistemas informáticos basados en esta arquitectura de procesador.
Características principales de la arquitectura VAX estaban abordando y su conjunto de instrucciones ortogonal virtual. VAX ha sido percibida como la quintaesencia del ISA CISC, con su gran número de programadores con niños modos de direccionamiento y las instrucciones de la máquina, la arquitectura altamente ortogonal, y las instrucciones para las operaciones complejas, tales como la inserción de la cola o eliminación y evaluación polinómica.
Sistemas basados en VAX
 Vea también: Lista de los ordenadores VAX
El primer sistema basado en VAX fue el VAX-11/780, un miembro de la familia VAX-11. La gama alta de VAX 8600 sustituyó a la VAX-11/780 en octubre de 1984 y se unió a las minicomputadoras MicroVAX de nivel de entrada y las estaciones de trabajo VAXstation a mediados de la década de 1980. El MicroVAX fue reemplazado por el VAX 4000, el VAX 8000 fue reemplazado por el VAX 6000 a finales de 1980 y el de clase mainframe VAX 9000 se introdujo. A principios de 1990, se introdujo el VAXft tolerante a fallos, al igual que el Alfa compatible VAX 7000/10000. Una variante de varios sistemas basados en VAX se vende como el VAXserver.
Modos de direccionamiento
El VAX soporta varios modos de direccionamiento: literal, registro, pos incremento, pre decremento, regístrese diferido, pos incremento diferido, pre decremento diferido, el desplazamiento, el desplazamiento diferido, también en un índice, que se puede combinar con muchos de ellos. Un modo "inmediato" es sinónimo de programa de lucha contra pos incremento, y muchos modos de direccionamiento puede utilizar el contador de programa en lugar de otros registros. Esto siempre fácil para la generación de código independiente de la posición a través de "PC-relativa" frente. El VAX también tiene algunas instrucciones "carga efectiva de dirección", que no tienen acceso a la memoria, sino calcular la dirección que se debe utilizar.






Arquitectura 360/370
El término "arquitectura de computadores" fue acuñado por IBM en 1964 para su uso con la IBM 360 Amdahl, Blaauw, y Brooks [1964] utiliza el término para referirse a la parte de-programador visible del conjunto de instrucciones. Ellos creían que una familia de máquinas de la misma arquitectura debe ser capaz de ejecutar el mismo software. Aunque esta idea puede parecer obvio para nosotros hoy en día, que era bastante novedoso en el momento. IBM, a pesar de que era la empresa líder en la industria, tuvo cinco arquitecturas diferentes antes de la 360 Por lo tanto, la noción de una empresa estandarizar en una única arquitectura era un radical. Los diseñadores 360 esperaban que seis diferentes divisiones de IBM podrán reunirse mediante la definición de una arquitectura común. Su definición de la arquitectura era
La estructura de un equipo que un lenguaje de programación de la máquina debe entender que escribir un programa correcto (tiempo independiente) para esa máquina.
El término "programador de lenguaje máquina" significa que la compatibilidad celebraría, incluso en lenguaje ensamblador, mientras que la "sincronización independiente" permite distintas implementaciones.
El IBM 360 fue introducido en 1964, con seis modelos y un 25: relación de rendimiento 1. Amdahl, Blaauw, y Brooks [1964] discute la arquitectura del IBM 360 y el concepto de permitir que múltiples implementaciones compatibles con código objeto. La noción de una arquitectura del conjunto de instrucciones como la entendemos hoy era el aspecto más importante de la 360 La arquitectura también introdujo varias innovaciones importantes, ahora en uso de ancho:
Características
·         Arquitectura de 32 bits
·         Memoria direccionable-Byte con bytes de 8 bits
·         Tamaños de datos de 8, 16, 32 y 64 bits
·         32 bits de precisión simple y de 64 bits de doble precisión de datos de punto flotante
En 1971, IBM envió la primera System / 370 (modelos 155 y 165), que incluía una serie de extensiones significativas de la 360, como se comenta por caso y Padegs [1978], que también examinó la historia temprana del Sistema / 360. La adición más importante fue la memoria virtual, aunque 370s de memoria virtual no se envían hasta 1972, cuando un sistema operativo de memoria virtual estaba listo. En 1978, la gama alta de 370 era varios cientos de veces más rápido que el de gama baja 360s enviadas 10 años antes. En 1984, el modelo de direccionamiento de 24 bits integrado en el IBM 360 tenía que ser abandonada, y el 370-XA (eXtended Architecture) se introdujo. Mientras que los antiguos programas de 24 bits podrían ser apoyadas sin cambio, varias instrucciones no podrían funcionar de la misma manera cuando se extiende a un modelo de direccionamiento de 32 bits (direcciones de 31 bits compatibles) porque no producirían direcciones de 31 bits. Conversión del sistema operativo, que fue escrito en su mayoría en lenguaje ensamblador, era sin duda la tarea más importante.
Se han hecho varios estudios sobre la medición IBM 360 y la instrucción. La tesis de Shustek [1978] es el estudio más conocido y más completo de la arquitectura de 360/370. Hizo varias observaciones acerca de la complejidad del conjunto de instrucciones que no fueron completamente apreciado hasta que unos años más tarde. Otro estudio importante de la 360 es el estudio de Toronto por Alexander y Wortman [1975] realizado en un IBM 360 mediante 19 programas XPL.
Set System / 360 Instrucción
El conjunto de instrucciones 360 se muestra en las siguientes tablas, organizado por tipo de instrucciones y el formato. Sistema / 370 contiene 15 instrucciones de uso adicionales.
Integer / Lógico y en coma flotante Instrucciones RR
El  indica que la instrucción es de punto flotante, y puede ser D (doble precisión) o E (precisión simple).

Arquitectura 80/86
Los procesadores de 16 bits fueron una nueva generación de microprocesadores
Desarrollados para reemplazar o completar a las microcomputadoras de 8 bits de los años setenta, que fueron las que comenzaron la revolución de las microcomputadoras.
El 8086 fue diseñado para trabajar con lenguajes de alto nivel, disponiendo de un soporte hardware con el que los programas escritos en dichos lenguajes ocupan un pequeño espacio de código y pueden ejecutarse a gran velocidad.
Esta concepción, orientada al uso de compiladores, se materializa en un conjunto de facilidades y recursos, y en unas instrucciones entre las que cabe destacar las que permiten efectuar operaciones aritméticas de multiplicar y dividir, con y sin signo; las que manejan cadenas de caracteres, etc.
En su momento, el 8086 junto con el 8088 fueron los microprocesadores más
Empleados dentro de su categoría, especialmente desde que IBM los adoptó para la
Construcción de su computadora personal. Muchos fabricantes de microordenadores
Utilizaron esta familia microcomputadora para fabricar equipos de tipo profesional. Hoy en día, la utilización del 8086 es más reducida, quedando principalmente orientado a la
Enseñanza, como base de los microprocesadores de la última generación.
Antes de pasar a hacer una descripción más detallada de la arquitectura interna del microprocesador, vamos a destacar brevemente las principales características del

Características 8086:
• El 8086 dispone de instrucciones especiales para el tratamiento de cadenas de caracteres.
• Los registros del 8086 tienen una misión específica, por lo que se podría decir que cada uno de ellos tiene su propia personalidad, aunque varios comparten tareas comunes.
• El encapsulado del 8086 está formado por 40 patillas, simplificando así el hardware, aunque por contra, es necesario la multiplexación del bus de datos con el de direcciones.
• El 8086 dispone de un conjunto de registros, denominados ‘cola de instrucciones’, en el cual se van almacenando de forma anticipada los códigos de las instrucciones, consiguiendo que este aumente su velocidad de trabajo.
• Las 20 líneas del bus de direcciones sólo permiten direccionar una memoria de 1 Megabyte.
• El 8086 requiere una señal de reloj exterior, siendo 5 y 8 Mhz las frecuencias típicas de funcionamiento.
• El 8086 dispone de una arquitectura “pipe line”, es decir, que la CPU puede seguir leyendo instrucciones en los tiempos en que el bus no se utiliza.
Las ventajas de utilizar registros de segmento son:

• Permite una capacidad de memoria de hasta 1 megabyte, aunque la dirección asociada a una instrucción sea sólo de 16 bits.
• Permiten que las partes de un programa, instrucciones, datos y pilas, tengan un tamaño mayor de 64K, mediante la utilización de más de un segmento para código, datos o pila.
• Facilitan la utilización de áreas separadas para un programa, sus datos y la pila.
• Permiten colocar un programa y sus datos en diferentes áreas de memoria cada vez que se ejecute.



Arquitectura DLX
El DLX es un procesador de tipo RISC académico, aunque inspirado en los primeros RISC y en particular  en el MIPS (http://www.mips.com). Contiene 32 registros de 32 bits y de propósito general de R0 a R31
(General Purpose Registers, GPR), es decir todos sirven para todo. Las únicas excepciones son el registro
R0 que siempre contiene el valor cero, y el R31, que por otras razones que se estudiarán más adelante, no se debe usar. Existen otros registros especiales y de coma flotante (FP) que no se estudian en este curso.
Todas las instrucciones ocupan una palabra de 32 bits exactamente, y deben estar alineadas en memoria (ocupar direcciones múltiplo de 4). O sea una instrucción no puede empezar en la dirección 20003 y acabar en la 20006; debe ocupar de la 20000 a la 20003 o bien de la 20004 a la 20007.
JUEGO DE INSTRUCCIONES. En el anexo 1 se tiene una tabla resumen de las instrucciones del DLX y una breve explicación del juego de instrucciones, del cual a continuación explicamos los detalles más importantes.
Transferencia de datos (Ld/St). Son muy simples ya que sólo pueden usar un modo de direccionamiento:
Registro base más desplazamiento (puede usarse cualquier registro). Sólo se usa en las de transferencia de datos, y nunca en las ALU, las cuales sólo pueden usar registros o valores inmediatos como operandos.
Por ejemplo, si usamos el paréntesis como notación del direccionamiento y el corchete como dirección de memoria, una instrucción de carga sería: LW R1, d16 (R3); R1<— [R3+d16], donde R3 es el registro base en esta instrucción y d16 una constante con signo de 16 bits. Evidentemente un tercer operando no tiene sentido en estas instrucciones de transferencia de datos. Un almacenamiento sería:
SWd16 (R4), R5; [R4+d16] <— R5. Dado que el registro R0 contiene siempre el valor 0, si se usa R0 como registro base se está accediendo a los primeros 32Kb de la memoria o a los últimos 32KB (si el desplazamiento fuera negativo).
Existen variantes en función de si se lee (Load) un dato con o sin signo, y de si se lee/escribe una palabra de 32 bits (Word), una media palabra de 16 bits (Half Word) o un Byte. Por ejemplo LHU lee de memoria
16 bits sin signo (Unsigned Half): LHU R7, -23(R0); R7 <— (extensión a 32 bits sin signo de la media palabra de [R0-23]) (téngase en cuenta que R0 siempre contiene 0).
Una característica habitual en todos los RISC, y que también se tiene en DLX, es la ausencia de la instrucción genérica de movimiento de datos MOV. Dada la simplicidad del acceso a memoria de éstos, no se permite ningún tipo de movimiento entre datos de memoria (habría que suplirlo con varios Ld/St), pero tampoco existe el MOV entre registros, ni tampoco de un valor inmediato a un registro. Estas últimas instrucciones se sustituyen por cualquier operación que no afecte al registro fuente, por ejemplo:
MOV R3, R4 se convierte en ADD R3, R4, R0; ya que R0 siempre vale 0.
O bien MOV R3, R4 se convierte en ADDI R3, R4, 0.
MOV R3, d16 se convierte en ADDI R3, R0, d16; ya que R0 siempre vale 0.
Aunque parece que esto va a llevar a una pérdida de tiempo, por tener que realizar una operación de suma donde no haría falta hacerla, se verá cuando se estudie la arquitectura del DLX que no implica ningún retraso o pérdida de rendimiento. Tan sólo se ha requerido la adición de una instrucción para cargar valor inmediato de 16 bits sobre la parte alta (16 bits MSB) de un registro de 32 bits. Por ejemplo, MOV R9,
d32 no existe por razones de formato de instrucciones (una constante de 32 bis no cabe en una instrucción de 32 bits), y debe convertirse en:
 LHI R9, d16 (altos)
 ADDUI R9, R0, d16 (bajos)
Un último comentario: no existen instrucciones específicas para pila (tipo PUSH y POP). Se apuesta en su lugar por un uso masivo de registros, aunque siempre cabe la posibilidad de almacenar en memoria con load/stores e incrementar/decrementar un registro que actúe de puntero a memoria.
Instrucciones ALU. Como se ha visto en los ejemplos anteriores, son de tres operandos y además son todas registro-registro, es decir todo operando es un registro, y ningún operando puede estar en memoria.
También se incluyen instrucciones con direccionamiento inmediato: Una constante de 16 bits actúa como segundo operando fuente. Por ejemplo: ALUoper R1, R2, #d16, R1 <— R2 oper d16; R2 y d16 son fuente, R1 destino. d16 es una constante de 16 bits. Sólo se puede usar en instrucciones ALU, y no en las de transferencia de datos. La almohadilla # puede suprimirse.
Nótese la regularidad de las instrucciones ALU: toda operación simple tiene otras tres variantes (siempre que lo permita). Por ejemplo para la suma con signo ADD, existe:
Suma sin signo ADDU.
Suma con signo y con direccionamiento inmediato (valor de 16 bits) ADDI
Suma sin signo y con direccionamiento inmediato (valor de 16 bits) ADDUI Evidentemente en una operación lógica (OR, XOR, AND) no tiene sentido el signo. En una multiplicación o división por razones de implementación no existe el direccionamiento inmediato.

Finalmente existen unas instrucciones que valoran o inicializan a cierto o falso (en inglés “set”) un registro destino comparando los dos fuente (sustituyen a las típicas instrucciones de comparación de procesadores como los x86). Están pensadas para instrucciones condicionales