Subido por Luis Gutiérrez Magán

La computadora, Abstracciones y Tecnología

Anuncio
Arquitectura de Computadoras
La computadora, Abstracciones y Tecnología
1.1 Introducción :
Las computadoras son el producto de la increíblemente vibrante industria de la tecnología de
la información, cuyos aspectos son responsables de casi el 10% del producto nacional bruto
de los Estados Unidos y cuya economía se ha vuelto dependiente en parte de las rápidas
mejoras en tecnología de la info rmación prometidas por la Ley de Moore . Esta inusual
industria abarca la innovación a un ritmo impresionante. En los últimos 25 años, ha habido
una serie de nuevas computadoras cuya introducción parecía revolucionar la industria de la
computación, estas revoluciones fueron cortadas sólo porque alguien más construyó un a
computadora aún mejor.
Esta carrera por la innovación ha llevado a un progreso sin precedentes desde el
Computador electrónico a finales de los años cuarenta. Si la industria del transporte hubiera
mantenido el ritmo de la industria de la computación, po r ejemplo, hoy podríamos viajar de
Nueva York a Londres en aproximadamente un segundo por unos pocos centavos. Tómese
un momento para contemplar cómo tal cam bio podría cambiar la sociedad, viviendo en Tahití
mientras trabajaba en San Francisco, yendo a Mos cú para una velada en el Ballet Bolshoi ,
usted puede apreciar las implicaciones de tal cambio.
Las computadoras han llevado a una tercera revolución para la civilización, con la revolución
que toma su lugar junto a las revoluciones agrícola e industrial.
Naturalmente ha afectado profundamente nuestra vida cotidiana y ha cambiado la búsqueda
de nuevos conocimientos. Ahora existe una nueva área de Investigación, con los científicos
computacionales uniendo teoría y experimentación, científicos en la exploraci ón de nuevas
fronteras en astronomía, biología, química, y física, entre otros. La revolución informática
continúa. Cada vez que el costo de la computación mejora por otro factor de 10, las
oportunidades para las computadoras se multiplican. Aplicaciones que eran económicamente
imposibles de repente se hacen práctica s. En el pasado reciente, las siguientes aplicaciones
fueron "ciencia ficción informática":
Ordenadores en automóviles: hasta que los microprocesadores mejoraron dramáticamente
en precio y rendimiento a principios de los años ochenta, el control por computa dora de los
coches era absurdo. Hoy en día, las computadoras reducen la contaminación, mejoran la
eficiencia del combustible a través del control de motores y aumentan la seguridad mediante
la prevención de accidentes mayores a través del uso de bolsas de aire para proteger a los
ocupantes en un accidente.
Celulares: ¿Quién habría soñado que los avances en los sistemas informáticos influirían en
los teléfonos móviles, permitiendo la comunic ación persona a persona casi en cualquier
parte del mundo?
Pro yecto de genoma humano: El costo del equipo informático para mapear y analizar
secuencias de ADN humano es de cientos de millones de dólares. Es seguro que cualquiera
no habría considerado este proyecto si los costos de la computadora hubiesen sido 10 a 100
1
Arquitectura de Computadoras
veces mayor, como lo habrían sido hace 10 a 20 años. Además, los costos siguen bajando;
usted puede ser capaz de adquirir su propio genoma.
World Wide Web: La W orld W ide W eb ha transformado nu estra sociedad. Para muchos, la
WWW ha reemplazado a las bibliotecas .
Motores de búsqueda: A medida que el contenido de la WWW creció en tamaño y en valor,
la información relevante se hizo cada vez más importante. Hoy, muchas personas confian en
los motores de búsqueda para gran parte del desarrollo de sus trabajos .
Claramente, los avances en esta tecnología ahora afectan casi todos los aspectos de nuestra
sociedad. Los avances de hardware han permitido a los programadores crear Software, lo
que explica por qué las computadoras son omnipresentes. La ciencia ficción de hoy sugiere
aplicaciones de mañana: ya están en camino los mundos virtuales, reconocimiento del habla
y atención médica personalizada.
1.2 Clases de aplicaciones informáticas y sus características
Aunque un conjunto común de tecnologías de hardware se utiliza en computadoras que van
desde electrodomésticos inteligentes a teléfonos celulares a los supercomputadores más
grandes, estas diferentes aplicaciones tienen diferentes requi sitos de diseño y emplean las
tecnologías de hardware de núcleo de diferentes maneras. En términos generales, las
computadoras se utilizan en tres cla ses diferentes de aplicaciones.
Las computadoras de escritorio son posiblemente la forma más conocida de la informática y
se caracterizan por la computadora personal. Las computadoras de escritorio hacen hincapié
en la entrega de un buen rendimiento usuarios a bajo costo y por lo general ejecuta n
software de terceros. La evolución de much as tecnologías de la computación es impulsada
por esta clase de computación .
Los servidores son la forma moderna de lo que antes eran mainframes, minicomputadoras y
supercomputadoras, y normalmente se accede solo a través de una red. Los servidores están
orientados a llevar gr andes cargas de trabajo, que pueden consistir en aplicaciones únicas
complejas, usualmente una aplicación científica o de ingeniería, o manejar muchos trabajos
pequeños, como ocurriría en la construcción de un gran servidor W eb. Estas aplicaciones
suelen basarse en software de otra fuente (como una base de datos o un sistema de
simulación), pero a menudo se modifican o personalizan para una función en particular. Los
servidores están construidos con la misma tecnología básica que los ordenadores de
sobremesa, pero proporcionan una mayor capacidad de expansión tanto de la capacidad de
cómputo como de entrada/salida. En general, los servidores también ponen un mayor énfasis
en la fiabilidad, ya que un bloqueo suele ser más costoso de lo que sería en una
computadora de escritorio de un solo usuario.
Los servidores abarcan la gama más amplia de costo y capacidad. En el punto más bajo , un
servidor puede ser poco más caro que una computadora de escritorio sin pantalla ni teclado
y cuestan mil dólares. Estos servido res de gama baja se utilizan típicamente para el
almacenamiento de archivos, aplicaciones para pequeñas empresas o simple servicio W eb.
En el otro extremo están los supercomputadores, que en la actualidad consisten de cientos a
miles de procesadores y usua lmente terabytes de memoria y petabytes de almacenamiento, y
cuestan entre millones y cientos de millones de dólares. Los supercomputadores se usan
generalmente para cálculos científicos y de ingeniería de alto nivel, tales como pronóstico
del tiempo, exploración de petróleo, determinación de la estructura de proteínas y otros
problemas a gran escala. Aunque tales supercomputadoras representan el pico de capacidad
de cálculo, representan una fracción relativamente pequeña de los servidores y una fracción
2
Arquitectura de Computadoras
relativamente pequeña del mercado global de ordenadores en términos de ingresos totales.
Aunque no son llamados supercomputadores, los centros de datos de Internet utilizados por
empresas como eBay y Google también contienen miles de procesadores, terabytes de
memoria y petabytes de almacenamiento. Estos suelen ser considerados como grandes
grupos de ordenadores .
Las computadoras embebidas son la clase más grande de ordenadores y abarcan una gran
gama de aplicaciones y rendimiento. Los ordenadores integrados incluyen los
microprocesadores que se encuentran en su automóvil, los ordenadores de un teléfono
celular, las computadoras de un videojuego o la televisión y las redes de procesadores que
controlan un avión o buque de carga moderno. Los sistemas informátic os integrados están
diseñados para ejecutar una aplicación o un conjunto de aplicaciones relacionadas, que
normalmente están integradas con el hardware y se sum inistran como un único sistema; a sí
a pesar del gran nú mero de computadoras embebidas , ¡la mayoría de los usuarios nunca ven
realmente que están usando una computadora!
La Figura 1.1 muestra que durante los últimos años, el crecimiento en los teléfonos celulares
que dependen de computadoras embebidas ha sido mucho más rápido que la tasa de
crecimiento de los equipos de escritorio ordenadores. Tenga en cuenta que los ordenadores
incorporados también se encuentran en los televisores digitales y Set-top boxes,
automóviles, cámaras digitales, reproductores de música, videojuegos y variedad de otros
dispositivos de consumo de este tipo, lo que aumenta aún más la el número de ordenadores
y ordenadores de sobremesa incorporados.
Figura 1.1 – Evolución de la demanda de celulares hasta el año 2007
3
Arquitectura de Computadoras
1.3 Debajo de la programación
Una aplicación típica, como un procesador de textos o un sistema de base de datos de
millones de líneas de código se basan en sofisticadas bibliotecas de software que
implementan funciones complejas en apoyo de la aplicación. Como veremos, el hardware en
una computadora sólo pue de ejecutar extremadamente simples instrucciones de bajo nivel.
Pasar de una aplicación compleja a las simples instrucciones implica varias capas de
software que interpretan o traducen las operaciones de alto nivel a una computadora con
sencillas instrucciones.
La Figura 1.2 muestra que estas capas de software están organizadas principalmente en una
estructura jerárquica, siendo las aplicaciones el anillo más exterior y una variedad de
software de sistemas ubicado entre el hardware y el software de aplicaciones.
Hay muchos tipos de software de sistemas, pero dos tipos de software son importantes para
cada sistema informático actual: el sistema operativo y el compilador. El sistema operativo
es la interfaz entre el programa de usuario y el hardware y proveen de una variedad de
servicios y funciones de supervisión. Entre l as más importantes funciones tenemos:



Manejo de las operaciones básicas de entrada y salida .
Asignación de almacenamiento y memoria .
Proporcionar uso compartido y protegido de la computadora
aplicaciones utilizando simultáneamente.
entre
múltiples
Ejemplos de sistemas operativos actualmente en uso son Linux, MacOS y W indows.
Figura 1.2 – Capas de software
Los compiladores desempeñan otra función vital: la traducción de un programa escrito en un
lenguaje de alto nivel, como C, C ++, Java o Visual Basic en instrucciones que el hardware
puede ejecutar. Dada la sofisticación de la programación moderna , los idiomas y la
simplicidad de las inst rucciones ejecutadas por el hardware, la traducción de un programa de
lenguaje de alto nivel a instrucciones es complejo. Hacemos un breve resumen del proceso y
luego profundizamos en las siguientes clases.
4
Arquitectura de Computadoras
1.4 Desde un lenguaje de alto nivel al lenguaje del hardware
Para hablar realmente al hardware electrónico, es necesario enviar señales eléctricas. Las
señales más fáciles para que las computadoras entiendan son las que se encie nden y se
apagan, así que el alfabeto de la computadora es sólo dos letras. Así como las 26 letras del
alfabeto inglés no limitan cuánto se puede escribir, las dos letras del alfabeto de la
computadora no limitan lo que las computadoras pueden hacer. Los dos símbolos para estas
dos letras son los números 0 y 1, y comúnmente pensa mos en el lenguaje de la computadora
como números en base 2, o números binarios. Nos referimos a cada "letra" como un dígito
binario o bit. Las computadoras son esclavas de nuestros comandos, que se llaman
instrucciones. Las instrucciones, que son sólo col ecciones de bits que la computadora
entiende y obedece, pueden ser consideradas como números. Por ejemplo, los bits
1000110010100000
le dice a la computadora que sume dos números . El uso de números para las instrucciones y
los datos es una base de la informática. Los primeros programadores se comunicaban con
las computadoras en números binarios, pero esto era tan tedioso que rápidamente inventaron
nuevas anotaciones que estaban más cerca de la forma en que los humanos piensan. Al
principio, estas notac iones se tradujeron a binario a mano, pero este proceso seguía siendo
fastidioso. Usando la computadora para ayudar a programar la computadora, los
programadores inventaron software para traducir de la notación simbólica al binario. El
primero de estos pro gramas fue nombrado ensamblador. Este programa traduce una versión
simbólica de una instrucción en la versión binaria. Por ejemplo, el programador escribiría
add A,B
y el ensamblador lo traduciría a
1000110010100000
Esta instrucción le dice al ordenador q ue sume los dos números A y B. El nombre acuñado
para este lenguaje simbólico, todavía usado hoy en día, es el lenguaje ensamblador. En
contraste, el lenguaje binario que la máquina entiende es el lenguaje de la máquina.
Aunque es una mejora tremenda, el lenguaje ensamblador está aún lejos de las anotaciones
que un científico podría querer usar para simular el flujo de fluidos o que un contador podría
usar para equilibrar los libros. El lenguaje ensamblador requiere que el programador escriba
una línea para cada instrucción que la computadora seguirá, forzando al programa dor a
pensar como el ordenador.
El reconocimiento de que un programa podría ser escrito para traducir un lenguaje más
potente en instrucciones de computadora fue uno de los grandes avances en los primeros
días de la computación. Los programadores hoy deben su productividad -y su cordura- a la
creación de lenguajes de programación de alto nivel y compiladores que traducen programas
en tales idiomas en instrucciones. La Figura 1.3 muestra las relaciones entre estos
programas y lenguajes.
5
Arquitectura de Computadoras
Figura 1.3 – Relaciones entre programas de alto y bajo nivel
Un compilador permite a un programador escribir esta expresión de lenguaje de alto nivel:
A + B
El compilador, compilaría esto en la siguiente instrucción en lenguaje ensamblador
add A + B
Como se muestra arriba, el ensamblador traduciría esta instrucción en las instrucciones
binarias que indican al ordenador que agregue los dos números A y B.
Los lenguajes de programación de alto nivel ofrecen varios beneficios importantes. En primer
lugar, permiten que el programador piense en un lenguaje más natural, usando palabras en
inglés y notación algebraica, dando como resultado programas que se parecen mucho m ás al
texto que a las tablas de símbolos crípticos (véase la figura 1.3). Además, permiten que los
idiomas se diseñen según el uso que se les destine. Por lo tanto, Fortran fue diseñado para
6
Arquitectura de Computadoras
la computación científica, Cobol para el procesamiento de datos e mpresariales, Lisp para la
manipulación de símbolos, y así sucesivamente. También existen lenguajes específicos de
dominio para grupos de usuarios más estrechos, como los interesados en la simulación de
fluidos, por ejemplo.
La segunda ventaja de los len guajes de programación es que el programador mejora su
productividad. Una de las pocas áreas de acuerdo generalizado en el desarrollo de software
es que toma menos tiempo desarrollar programas cuando están escritos en idiomas que
requieren menos líneas para expresar una idea. La concisión es una clara ventaja de los
lenguajes de alto nivel sobre el lenguaje ensamblador.
La ventaja final es que los lenguajes de programación permiten que los programas sean
independientes de la computadora en la que fueron desarrollados, ya que los compiladores y
ensambladores pueden traducir programas de lenguaje de alto nivel a las instrucciones
binarias de cualquier computadora. Estas tres ventajas son tan fuertes que hoy en día poca
programación se hace en lenguaje ensam blador.
1.5 Dentro del computador
Hemos mirado el entorno de programación, demos un vistazo al interior del computador.
Vamos a abrir la computadora para aprender sobre el hardware . El hardware en cualquier
computadora realiza las mismas funciones básicas: entrada de datos, salida de datos,
procesamiento de datos y almacenamiento de datos. El modo en que se realizan estas
funciones es el tema principal de este curso y los capítulos subsiguientes tratan diferentes
partes de estas cuatro tareas.
Hemos llegado a un punto importante de este curso, un punto tan importante que esperamos
lo recuerde para siempre, lo enfatizamos identificándolo como un elemento de Big Picture:
los cinco componentes de una computadora que realizan las tareas de entrada, salida,
procesamiento y almacenamiento de datos.
Los cinco componentes clásicos de una computadora son entrada, salida, memoria, ruta de
datos y control, con los dos últimos a veces combinados y llamados procesador. La Figura
1.4 muestra la organización estándar de una computadora. Esta organización es
independiente de la tecnología de hardware: puede colocar cada pieza de cada computadora,
pasada y actual, en una de estas cinco categorías.
7
Arquitectura de Computadoras
Figura 1.4 – Organización estándar de una computadora
Figura 1.5 – Computadora con sus respectivos dispositivos de entrada y salida
La Figura 1.5 muestra una computadora con teclado, ratón inalámbrico y pantalla. Esta
fotografía revela dos de los componentes clave de las computadoras: dispositivos de
entrada, como el te clado y el ratón, y dispositivos de salida, como la pantalla. Como
sugieren los nombres, la entrada alimenta la computadora y la salida es el resultado del
8
Arquitectura de Computadoras
cálculo enviado al usuario. Algunos dispositivos, como redes y discos, proporcionan entrada
y salida a la computadora.
En los siguientes capítulos se describe los dispositivos de entrada /salida (E/S) con más
detalle, pero hagamos un recorrido introductorio a través del hardware de la computadora,
empezando por los dispositivos de E / S externas.
Concebí la idea para el mouse mientras asistía a una charla en una conferencia de la
computadora. El orador era tan aburrido que empecé a soñar despierto y me di cuenta de la
idea.
Doug Engelbart
A través de pantallas de ordenador he aterrizado un avión en la cubierta de un vehículo en
movimiento, observé una partícula nuclear golpeó un pozo potencial, volé en un cohete a casi la
velocidad de la luz y vi un ordenador revelar su funcionamiento más íntimo.
Ivan Sutherland, el "padre" de la computación gráfica, Scientific American, 1984
Anatomía del MOUSE
La idea de un dispositivo señalador como un ratón fue
mostrada por primera vez por Doug Engelbart
utilizando un prototip o de investigación en 1967.
La Xerox Alto, fue la inspiración para todas las
estaciones de trabajo, así como para el sistema
operativo Macintosh y W indows, incluía un ratón como
su dispositivo señalador en 1973. En los años 90,
todas las computadoras de escritorio incluían este
dispositivo y nuevas interfaces de usuario basadas en
pantallas gráficas y ratones se convirti eron en la
norma.
El ratón original era electromecánico y utilizaba una
bola grande que cuando se rodaba a través de una
superficie haría que un contador x e y se incrementara.
La cantidad de incremento en cada contador indicaba
hasta dónde se había movido el ratón.
El ratón electromecánico ha sido reemplazado en gran parte por el nuevo ratón todo óptico.
El ratón óptico es en realidad un procesador óptico en miniatura que inc luye un LED para
proporcionar iluminación, una diminuta cámara en blanco y negro y un procesador óptico
simple.
9
Arquitectura de Computadoras
El LED ilumina la superficie debajo del ratón; La cámara toma 1500 fotografías de muestra
por segundo bajo la iluminación. Las imágenes sucesiva s se envían a un procesador óptico
simple que compara las imágenes y determina si el ratón se ha movido y hasta qué punto. La
sustitución del ratón electromecánico por el ratón electro -óptico es una ilustración de un
fenómeno común en el que los costes dec recientes y la mayor fiabilidad de la electrónica
hacen que una solución electrónica sustituya a la tecnología electromecánica más antigua.
Más adelante veremos otro ejemplo: memoria flash.
A través del espejo
El dispositivo de E/S más fascinante es probablemente la pantalla gráfica. To das las
computadoras, calculadoras, teléfonos celulares y casi todas las computadoras de escritorio
ahora utilizan pantallas de cristal líquido (LCD) o de LED para obtener una pant alla delgada
y de bajo consumo.
Hoy en día, la mayoría de las pantallas LCD y LED utilizan una matriz activa que tiene un
pequeño grupo transistores conmutadores para controlar con precisión la corriente y hacer
imágenes más nítidas. El rojo -verde-azul (RGB) es la combinación asociada con cada punto
en la pantalla, con ella se determina la intensidad de los tres componentes de color en la
imagen final;
En un LCD de matriz activa de color, hay tres conmutadores de transistor en cada punto. La
imagen está compuesta por una matriz de elementos de imagen, o píxeles, que puede
representarse como una matriz de bits, llamada mapa de bits. Dependiendo del tamaño de la
pantalla y la resolución, la matriz de visualización varía en tamaño de 640 × 4 80 a 2560 ×
1600 y más en la actualidad . Una pantalla en c olor puede utilizar 8 bits para cada uno de los
tres colores (rojo, azul y verde) , o 24 bits por píxel, permitiendo que millones de colores
diferentes sean mostrados.
El soporte de hardware de la computadora para gráficos consiste principalmente en un búfer
de actualización de trama, o buffer de trama, para almacenar el mapa de bits. La imagen a
representar en pantalla se almacena en el búfer de trama y el patrón de bit s por píxel se lee
en la pantalla gráfica a la frecuencia de actualización. La Figura 1.6 muestra un búfer de
trama con un diseño simplificado de sólo 4 bits por píxel.
10
Arquitectura de Computadoras
Figura 1.6: Cada coordenada en el búfer del cuadro a la izquierda determina el tono de la coordenada
correspondiente para la pantalla CRT a la derecha. El píxel (X0, Y0) contiene el patrón de bits 0011, que es un tono
más claro en la pantalla que el patrón de bits 1101 en píxel (X1, Y1).
El objetivo del mapa de bits es representar fielmente lo que está en la pantalla. Los desafíos
en los sistemas gráficos surgen porque el ojo humano es muy bueno para detectar incluso
cambios sutiles en la pantalla.
Abriendo la caja
Si abrimos la caja que contiene la computadora, vemos un fascinante rectángulo de plástico,
cubierto con docenas de pequeños rectángulos grises o negros. La Figura 1.7 muestra el
contenido del ordenador portátil de la Figura 1.5. La placa base se muestra en la parte
superior de la foto. Dos unidades de disco están delante: el disco duro a la izquierda y una
unidad de DVD a la derecha. El agujero en el medio es para la batería del ordenador portátil.
Los pequeños rectángulos de la placa base contienen los dispositivos que impulsan nuestra
avanzada tecnología, llamados circuitos integrados o chips. La placa está compuesta de tres
piezas: la pieza que se conecta a los dispositivos de E /S mencionados anteriormen te, la
memoria y el procesador.
La memoria es donde se guardan los programas cuando se ejecutan; también contiene los
datos necesarios para los programas en ejecución. La Figura 1.8 muestra que la memoria se
encuentra en las dos tarjetas pequeñas, y cada tarjeta de memoria pequeña contiene ocho
circuitos.
La memoria de la Figura 1.8 está construida a partir de chips DRAM. DRAM significa
Memoria Dinámica de Acceso Aleatorio. Varias DRAM se utilizan juntas para contener las
instrucciones y los datos de un programa. En contraste con las memorias de acceso
secuenciales, tales como cintas magn éticas, la porción RAM del término DRAM significa que
los accesos de memoria toman básicamente la misma cantidad de tiempo sin importar qué
parte de la memoria se lee.
11
Arquitectura de Computadoras
Figura 1.7: Cada coordenada en el búfer del cuadro a la izquierda determina el tono de la coordenada
correspondiente para la pantalla CRT a la derecha. El píxel (X0, Y0) contiene el patrón de bits 0011, que es un tono
más claro en la pantalla que el patrón de bits 1101 en píxel (X1, Y1).
FIGURA 1.8 El primer plano de la parte inferior de la computadora portátil revela la memoria. La memoria principal está
contenida en una o más pequeñas tablas mostradas a la izquierda. El agujero para la batería está a la derecha. Los
chips DRAM se montan en estas tarjetas (denominadas DIMM, para módulos de memoria en línea dual) y luego se
conectan a los conectores.
12
Arquitectura de Computadoras
El procesador es la parte activa de la mainboard , sigue las instrucciones de un programa
hecho específicamente para una tarea específica . Añade números, números de pruebas,
señales de dispositivos de E /S para activar, etc. El procesador está debajo del ventilador y
está cubierto por un disipador de calor en el lado izquierdo de la Figura 1.7. Ocasionalmente,
la gente llama al procesador la CPU,
Descendiendo incluso más bajo en el hardware, la Figura 1.9 revela detalles de un
microprocesador. El procesador comprende lógicamente dos co mponentes principales: el bus
de datos y el bus de control. El datapath realiza las operaciones aritméticas, y el control le
dice al datapath, la memoria y los dispositivos I /O qué hacer de acuerdo con los deseos de
las instrucciones del programa.
FIGURA 1.9 Dentro del microprocesador de AMD Barcelona. El lado izquierdo es una microfotografía del procesador
chip AMD Barcelona y el derecho muestra los principales bloques en el procesador. Este chip tiene cuatro
procesadores o "núcleos". El microprocesador en la Laptop en la Figura 1.7 tiene dos núcleos por chip, llamado Intel
Core 2 Duo.
13
Descargar