Sie sind auf Seite 1von 6

1.

2 Ocho Grandes Ideas de la arquitectura 11


informática

Ocho Grandes Ideas de la


arquitectura informática

Que presentamos ahora ocho grandes ideas que arquitectos informáticos se han inventado en
los últimos 60 años de diseño por ordenador. Estas ideas son tan potentes que han durado
mucho tiempo después de que el primer equipo que hacían uso de ellas, con los nuevos
arquitectos que demuestra su admiración por imitar sus predecesores. Estas grandes ideas
son los temas que vamos a tejer a través de éste y los siguientes capítulos como
ejemplos. Para señalar su influencia, en esta sección presentamos los iconos y
términos resaltados que representan las grandes ideas y los usamos para identificar
a los aproximadamente 100 secciones del libro que tienen uso de las grandes ideas.

Diseño de la Ley de Moore


La única constante de los diseñadores de ordenadores es el rápido cambio, que es
impulsado en gran medida por la Ley de Moore. Que circuito integrado doble
recursos cada 18-24 meses. La Ley de Moore fue resultado de un 1965 pronóstico
de ese crecimiento en IC capacidad de Gordon Moore, uno de los fundadores de
Intel. Como diseños de ordenadores puede tardar años, los recursos de que se
dispone por cada chip puede duplicar fácilmente o cuádruple entre el inicio y el fin
del proyecto. Como un skeet shooter, equipo arquitectos deben anticipar dónde la
tecnología será cuando el diseño termina en lugar de diseño para que se
inicie. Utilizamos un " arriba y a la derecha " la Ley de Moore gráfico para
representar el diseño de cambio rápido.

Uso abstracción para simplificar el diseño


Tanto el equipo arquitectos y programadores tenían que inventar técnicas para ser
más productivos, ya que de lo contrario sería alargar tiempo de diseño tan
drásticamente como recursos creció en la Ley de Moore. Una de las principales la
productividad técnica de hardware y software es utilizar abstracciones para
representar el diseño en diferentes niveles de representación; a menor nivel de
detalle se esconden para ofrecer un modelo más sencillo en los niveles más altos.
Usaremos la pintura abstracta icono que represente a este segundo gran idea.

El caso común rápido


El caso común hacer rápido, se tienden a mejorar el rendimiento optimizando
mejor que el caso poco común. Irónicamente, el caso común suele ser más sencillo
que el caso poco común y, por tanto, es a menudo más fácil de mejorar. Este sentido
común asesoramiento implica que ya sabe lo que es el caso común, que sólo es
posible con experimentación cuidadosa y medición (véase la sección 1.6 ).
Utilizamos un coche deportivo, el icono de lo que el caso común rápido, ya que los
más comunes viaje tiene uno o dos pasajeros, y es sin duda más fácil de realizar una
rápida coche deportivo de un monovolumen.
1.2 Ocho Grandes Ideas de la arquitectura 12
informática

Rendimiento mediante paralelismo


Desde los albores de la informática, equipo arquitectos han ofrecido los diseños que
más rendimiento de operaciones en paralelo. Veremos muchos ejemplos de
paralelismo en este libro. Utilizamos varios de los motores de un avión como
nuestro icono de rendimiento paralelo.

A través de canalización
Un patrón particular de paralelismo es tan prevalente de la arquitectura informática
que merece su propio nombre: canalización. Por ejemplo, antes los de los
bomberos, una "brigada de la cubeta" que respondería a un incendio, que muestran
las películas de cowboys en respuesta a un acto vil por el villano. Los habitantes
forman una cadena humana para llevar una fuente de agua al fuego , ya que
podrían mucho más rápidamente las cucharas de la cadena en lugar de a los
individuos en marcha hacia adelante y hacia atrás. Icono nuestra cartera es una
secuencia de tubos, con cada sección representa una etapa de la canalización.

Rendimiento mediante Predicción


Después de la que se puede ser mejor pedir perdón que pedir permiso, el último gran
idea es predicción. En algunos casos puede ser más rápido en promedio para los
huéspedes y comenzar a trabajar en lugar de esperar hasta que sepa con seguridad,
suponiendo que el mecanismo para la recuperación de un misprediction no es
demasiado cara y su predicción es bastante exacto . Usamos el adivino la bola de cristal
como nuestro icono predicción.

Jerarquía de los recuerdos


Los programadores quieren memoria para ser rápido, de gran tamaño, y barato, como
velocidad de la memoria a menudo formas rendimiento, capacidad limita el tamaño
de los problemas que se pueden resolver y el precio de la memoria hoy es a menudo
la mayoría de gastos de la computadora . Los arquitectos han descubierto que pueden
hacer frente a estas demandas contradictorias entre sí con una jerarquía de memorias
,con el más rápido, pequeño y memoria más cara por poco en la parte superior de la
jerarquía y el más lento, más grande y más barato por poco en la parte inferior. Como
veremos en el Capítulo 5, las cachés dan al programador la ilusión de que memoria
principal es casi tan rápido como la parte superior de la jerarquía y casi tan grande y
barata como la parte inferior de la jerarquía. Utilizamos un icono en forma de
triángulo con capas para representar la jerarquía de memoria. La forma indica la
velocidad, el costo y el tamaño: cuanto más cerca a la parte superior, la más rápido
y más caro por poco la memoria, y cuanto más amplia sea la base de la capa, la más
grande la memoria.

Fiabilidad mediante la redundancia


Los equipos no sólo deben ser rápidos; es necesario que sean fiables. Desde cualquier
dispositivo físico puede fallar, que hacer que los sistemas fiables , incluyendo los
componentes redundantes que pueden tomar el control cuando se produce un error
y para ayudar a detectar los errores. Utilizamos el tractor-remolque, nuestro icono,
ya que los neumáticos dobles en cada lado de su parte trasera ejes permiten que la
carretilla a seguir conduciendo incluso cuando falla uno de los neumáticos.
(Presumiblemente, el conductor del vehículo inmediatamente a un servicio de
reparación para la llanta desinflada puede ser fijo, con lo que se restablecería
redundancia!).
1.2 Ocho Grandes Ideas de la arquitectura 13
informática

Un programa compilador que traduce lenguaje de alto nivel en instrucciones de lenguaje de ensamblado.

Dígito binario también se denomina bit . Uno de los dos números en base 2 (0 o 1) que son los componentes de la
información.
Instrucción un comando que equipo entiende y obedece.
Ensamblador un programa que convierte una versión simbólica de instrucciones en la versión binaria.

Lenguaje ensamblador
La representación simbólica de las instrucciones de máquina.
Lenguaje de máquina
Una representación binaria de instrucciones de máquina.

Los compiladores realizar otra función vital: la traducción de un programa escrito en un lenguaje de alto
nivel, como C, C++, Java, Visual Basic o en las instrucciones que puede ejecutar el hardware. Dada la
sofisticación de los lenguajes de programación modernos y la simplicidad de las instrucciones ejecutadas por
el hardware, la traducción de un lenguaje de alto nivel a instrucciones de hardware es compleja. A
continuación les presentamos una breve descripción del proceso aquí y, a continuación, ir a más profundidad
en el Capítulo 2 y en el Apéndice A.

Desde un lenguaje de alto nivel al lenguaje del Hardware


De hablar realmente de hardware electrónico, que usted necesita para enviar señales eléctricas. La forma más fácil las señales
para los equipos de comprender son on y off (desactivada),y por lo tanto, el calculador alfabeto está a sólo dos
cartas. Al igual que las 26 letras del alfabeto inglés, al no limitar la cantidad que puede ser por escrito, las dos
cartas de el equipo alfabeto no limitan lo que los ordenadores pueden hacer. Los dos símbolos de estas dos
cartas son los números 0 y 1, y más comúnmente se piensa en el lenguaje informático como números
en base 2, o números binarios. Nos referimos a cada "carta" como un dígito binario o bit .Los ordenadores
son esclavos de nuestras ordenes, que se denominan instrucciones. Las instrucciones, que son simplemente
colecciones de bits que el equipo entiende y obedece, se pueden considerar como números. Por ejemplo, los
bits
1000110010100000
Dígale a un equipo a sumar dos números. El capítulo 2 explica por qué se utilizan números para las
instrucciones y los datos ; nosotros no queremos robar que el capítulo del trueno, pero con los números de las
instrucciones y los datos es una de las bases de la informática.
Los primeros programadores comunicado a los equipos de números binarios, pero este era tan tedioso que
rápidamente se inventaron nuevas anotaciones que estaban más cerca de la manera en que los seres humanos
piensan. En un primer momento, estas notaciones se tradujeron en binario con la mano, pero este proceso aún
estaba cansado. Utilizar el ordenador para ayudar a su equipo, los pioneros inventaron programas para traducir
a partir de notación simbólica a binario. El primero de estos programas fue nombrado un ensamblador . Este
programa convierte una versión simbólica de una instrucción en la versión binaria. Por ejemplo, el programador
escribe
Agregar A,B
Y el ensamblador se traduciría esta notación en
1000110010100000
Esta instrucción le indica al ordenador para agregar los dos números A y B . El nombre acuñado para este
lenguaje simbólico, que todavía se usan hoy en día, es lenguaje ensamblador .Por el contrario, el lenguaje
binario que entiende la máquina es el lenguaje de máquina .
A pesar de que una gran mejora, lenguaje ensamblador es todavía muy lejos de las notaciones un científico
podría utilizar para simular el flujo o que un contador puede utilizar para hacer el balance de los libros.
Lenguaje Ensamblador requiere que el programador para escribir una línea por cada instrucción de que el
equipo se siga, obligando al programador a pensar como el equipo.
El reconocimiento de que se podría hacer un programa escrito para traducir un
idioma más potente en instrucciones para la computadora fue uno de los grandes
1.2 Ocho Grandes Ideas de la arquitectura 14
informática

avances en los inicios de la informática. Hoy los programadores deben su


productividad y su cordura a la creación de lenguajes de programación de alto
nivel y los compiladores que traducir programas en idiomas en las
instrucciones. Figure 1.4 Muestra las relaciones entre estos programas y los
conocimientos de idiomas, que son más ejemplos del poder de la abstracción .

De alto nivel lenguaje


de
Lenguaje Swap(int v[ ], int k) programación portabl
de alto {Int temp; e
nivel (en Temp = v[k]; Lenguajes como C, C++,
C) v[k] = v[k+1]; Java o Visual Basic
v[k+1] = temp; que se compone de
}
palabras
Y notación algebraica
que puede ser traducido
por un compilador en
lenguaje ensamblador.

Swap:
Programa
Multi $2,
en
$5,4
lenguaje agregar
Lw $15, 0 ($
ensambla $2,
lw $16, 2) 2)
($
dor $4,
sw $2$16,
4 ($ 2)
(MIPS)
sw 0
$15, ($ 2)
jr 4
$31

Máquina binaria 00000000101000100000000100011000


Idioma 00000000100000100001000000100001
Programa 10001101111000100000000000000000
(MIPS) 10001110000100100000000000000100

10101110000100100000000000000000
10101101111000100000000000000100
00000011111000000000000000001000

FIGURA 1.4 C programa compilado en lenguaje ensamblador y, a continuación,


monta en lenguaje de máquina binarios. A pesar de que la traducción de lenguaje de
alto nivel a lenguaje máquina binaria se muestra en dos pasos, algunos compiladores
reducido la intervención de intermediarios y producir lenguaje de máquina binarios
directamente. Estas lenguas y este programa se examinan con más detalle en el
Capítulo 2.
1.2 Ocho Grandes Ideas de la arquitectura 15
informática

Un compilador permite al programador a escribir este lenguaje de alto nivel


expresión:
A + B
El compilador que se compila en lenguaje ensamblador esta declaración:
Agregar A,B
Como se ha indicado anteriormente, el ensamblador se traduciría esta
declaración en el archivo binario las instrucciones que le indican al ordenador
para agregar los dos números A y B .
Lenguajes de programación de alto nivel ofrecen varias ventajas
importantes. En primer lugar, permiten al programador a pensar en una lengua
más natural, utilizando palabras en Inglés y notación algebraica, resultando en
programas que miran mucho más como texto que como símbolos crípticos de
tablas (ver ). Figure 1.4Por otra parte, permiten idiomas para ser diseñados
según el uso al que están destinados. Por lo tanto, Fortran fue diseñado para
computación científica, Cobol para tratamiento de datos de empresa, Lisp
manipulación de símbolos, y así sucesivamente. También hay otros lenguajes
específicos de dominio aún más estrecho para grupos de usuarios, como
aquellos que estén interesados en la simulación de fluidos, por ejemplo.

La segunda ventaja de los lenguajes de programación es un incremento en la


productividad del programador. Una de las pocas zonas de amplio acuerdo en
el desarrollo de software es que se tarda menos tiempo en desarrollar programas
cuando son escritas en idiomas que requieren menos líneas para expresar una
idea. Concisión es una clara ventaja de idiomas de alto nivel en lenguaje
ensamblador.

La última ventaja es que lenguajes de programación permiten que los


programas para ser independiente del ordenador en el que se desarrollaron, ya
que los compiladores y ensambladores puede traducir lenguaje de alto nivel a
los programas de las instrucciones binarias cualquier equipo. Estas tres ventajas
son tan fuertes que hoy poco de programación se realiza en lenguaje
ensamblador.
1.2 Ocho Grandes Ideas de la arquitectura 16
informática