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
lunes, 27 de octubre de 2014
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.
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
Suscribirse a:
Entradas (Atom)