Presente y futuro en la arquitectura de computadoras
jueves, 10 de diciembre de 2020
Representación de la Información
Diana Padilla Zamora y Yareli Frias Iñiguez
Debe distinguirse entre dato e información.
Dato es cualquier número, imagen, sonido, símbolo, nombre, etc. que no permite
tomar ninguna decisión, porque no tienen un significado concreto, los datos
deben procesarse para dotarlos de significado y convertirlos en información.
Eso es lo que ocurre cuando trabajamos con un sistema informático, los
resultados que nos muestra el ordenador son para nosotros información que nos
ayuda en alguna tarea.
El ordenador, para poder procesar los distintos
datos, debe convertirlos a un lenguaje numérico binario (0 y 1). Debido a la
forma en que están construidos y al uso de los componentes electrónicos sólo
dos valores pueden representarse. Para convertir los textos en números se
utiliza un código de representación llamado ASCII (American Standard Code for
Information Interchange) que es un estándar mundial. Una vez pasados a números
se deben convertir esos números en valores binarios. Otro tipo de datos como
sonidos o imágenes también deben convertirse en valores numéricos. En este
apartado se verá cómo pasar de un sistema de numeración cualquiera (como el
decimal) al sistema binario de los ordenadores.
·El
sistema de numeración que utilizamos los humanos se denomina decimal ya que
emplea diez dígitos para indicar una cantidad, y es además un sistema
posicional ya que cada dígito debe su valor a la posición que ocupa en la cantidad
a la que pertenece.
·El
sistema binario, como el decimal, es un sistema posicional; pero el valor de la
posición viene dado por potencias de 2 (20, 21, 22, …) ya que sólo se utilizan
dos dígitos, el cero y el uno.
Por tanto, si queremos convertir un número en
base 2 (binario) al sistema decimal (base 10), no tenemos más que multiplicar
el dígito (0 ó 1) por la potencia de 2 correspondiente a su posición, véase
tabla adjunta.
Como 1 + 2 + 0 + 8 = 11 tenemos que 1011(2 =
11(10 .
Si lo que queremos es convertir un número
binario a decimal, dividiremos sucesivamente el valor decimal por 2 hasta
llegar a 1. Los restos de las divisiones nos indicarán el valor binario. Por
tanto 52(10 = 110100(2 .
Como ya he comentado, los ordenadores
"utilizan" este sistema de numeración, en cada posición de memoria
solo pueden almacenar 1 bit ( o un cero o un uno). Un carácter necesita 8 bit
para poder ser representado, a este elemento se le denomina byte. Los bytes
tienen sus múltiplos según esta tabla:
Las operaciones aritméticas entre números binarios son muy sencillas,
teniendo en cuenta la siguiente tabla de sumar:
0+0
0
0+1
1
1+0
1
1+1
0y me llevo 1
·El sistema hexadecimal, como los anteriores,
también es posicional. En este caso el valor de la posición viene dado por
potencias de 16 (160, 161, 162, …). Como sólo poseemos 10 caracteres para
representar los posibles dígitos, se añaden las letras A, B, C, D, E y F.
Por tanto, en base 16 disponemos de los siguientes
caracteres 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A = 10, B = 11, C = 12, D = 13, E =
14, y F = 15.
Por tanto, como 15 + 32 + 1280 + 40960 = 42287 tenemos que
A52F (16 = 42287(10, también se suele representar como A52Fh, indicando la h
que se trata de un valor hexadecimal.
Si lo que queremos es convertir una cantidad hexadecimal a
decimal, seguiremos un método similar al utilizado con los valores binarios,
teniendo en cuenta que, si obtenemos como restos 10, 11, 12, 13, 14 o 15
debemos sustituirlos por A, B, C, D, E o F. Por tanto 332(10 = 14C (16 o 14Ch.
El sistema hexadecimal se suele utilizar ampliamente en
informática, por ejemplo, para indicar direcciones de memoria.
miércoles, 9 de diciembre de 2020
El Abaco
Fue inventada en Babilonia unos 500 años antes de Cristo, los ábacos antiguos eran tableros para contar, no eran una computadora porque no tenían la capacidad para almacenar información, pero con este instrumento se realizaban transacciones en diversas ciudades de la antigüedad. Actualmente se pueden realizar operaciones como multiplicación y división en los ábacos y son muy usados en China.
Calculadora de Pascal
En 1642 por el joven francés BLAISE PASCAL al ver que su padre tenía problemas para llevar una correcta cuenta de los impuestos que cobraba inventa una maquina calculadora que trabajaba a base de engranajes, la misma que Pascal la llamo con en nombre de PASCALINA.
Máquina diferencia y analítica de Babbage (1822)
En 1822 Charles Babbage creo una maquina diferencial capaz de desarrollar polinomios pero varios inconvenientes en las piezas de esta maquina hicieron que fracasara, luego de este fracaso en 1833 Babbage crea la maquina analitica la cual era capaz de hacer todas las operaciones matemáticas y ser programada por medio de tarjetas de cartón perforado y guardar una enorme cantidad de cifras, es por esto que a Charles Babbage se le considera el padre de la informatica.
La primera generación de computadoras comprende desde el año 1944 a 1956, en esta primera generación se da la creación de la computadora MARK I que fue desarrollada por Howard Aiken, en este periodo se desarrolla la segunda guerra mundial motivo por el cual muchos proyectos quedaron inconclusos, pero también hubieron proyectos impulsados por este mismo motivo que fue la guerra, que hizo que se logren grandes desarrollos, es así como se crea la computadora ENIAC (Electronic Numerical Integrador and Calculador) que era una enorme computadora la cual ocupaba más de una habitación, pesaba más de 30 toneladas y trabajaba con más de 18 mil tubos de vacío, una de sus características importantes fue que usaba el sistema binario en lugar del sistema decimal.
Es de mencionar que durante esta primera generación lo más importante de las computadoras que se crearon fue el uso de tubos al vacío, además cabe mencionar que después de 1950 se crearon diversas maquinas cada una con un avance significativo, en 1951 se construyó la primera computadora para uso comercial la cual fue llamada UNIVAC I, esta computadora fue construida para ser usada en la oficina de censos de los Estados Unidos.
Una de las compañías que no dejo de producir computadoras fue IBM la cual en el año de 1953 construyó su computador 701 y posteriormente el 752.
La segunda generación comprende desde los años 1959 a 1964, lo más destacable de esta segunda generación es el reemplazo del uso de tubos al vacío por los transistores lo que hizo que las computadoras sean más pequeñas y más rápidas.
En esta segunda generación se reemplazó el lenguaje de máquina por el lenguaje ensamblador, se crearon lenguajes de alto nivel como el COBOL y el FORTRAN. Además para el almacenamiento de la información se comenzaron a usar cintas magnéticas.
Aunque en esta generación se disminuyó el tamaño y se aumentó la velocidad, aun las computadoras significaban un considerable costo para las empresas.
Esta generación comprende desde 1964 a 1971 y el mayor logro de esta generación es el uso de circuitos integrados (chips de silicio), esto hizo que las computadoras sean más pequeñas y más rápidas, además consumían menos electricidad lo que hacía que generen menos cantidad de calor, además eran más eficientes.
Con el uso del chip se dio un enorme paso en la era de la computación ya que el chip contenía una serie de circuitos integrados los cuales almacenaban la información, esto permitió que las computadoras puedan hacer varias tareas a la vez como era la de procesamiento de información y cálculo matemático.
En la tercera generación comienzan a surgir los programas o software, la compañía que tuvo su apogeo en esta generación fue IBM la cual lanzó al mercado las minicomputadoras IBM 360 y 370.
Cabe mencionar que en esta época los sistemas operativos pasaron de ser mono tarea a multitarea para permitir que las taras fueran ejecutadas continuamente.
En el año de 1970 IBM colocó una unidad de diskette a su computador modelo 3740 con esto se incrementó la capacidad de acceso y la velocidad de la información.
La cuarta generación de las computadoras se da desde 1971 a 1981, lo más importante en esta generación es el invento del microprocesador el cual unía los circuitos integrados en un solo bloque. La creación del microprocesador hizo posible el desarrollo de las computadoras personales o PC, lo cual marcaría una revolución en el mundo de la computación, esto cambiaría la forma de trabajar e incluso de vivir de muchas personas hasta la actualidad.
En el año de 1971 la compañía INTEL crea el primer chip de 4 bits, el cual contenía una gran cantidad de transistores.
Esta generación de computadores aparecen las primeras microcomputadoras las cuales fueron fabricadas por la compañía APPLE e IBM.
También se incorpora en esta generación el desarrollo de software orientados tanto para adultos como para niños, es aquí donde se da inicio a MS-DOS (Microsoft Disk Operating System) o disco operativo de sistema, asimismo se da una revolución en el desarrollo del hardware.
Cabe mencionar que no se tiene muy definido cuando empieza la quinta generación y la sexta generación del computador, esto debido a que los avances en la tecnología de la computación se vienen dando de manera muy rapida, todo lo contrario con lo que sucedió en las primeras generaciones del computador.
Pero si queremos darle una fecha podemos decir que la quinta generación se sitúa entre los años 1982 a 1989, en estos años las empresas encargadas de construir computadoras contaron con grandes avances de microelectrónica y en avances de software, es en este periodo cuando surge la "red de redes" o Internet, y es ahí donde se dan los más grandes avances, se da inicio a la inteligencia artificial, que tenía el propósito de equipar a las computadoras con la capacidad de razonar para encontrar soluciones a sus propios problemas siguiendo patrones y secuencias, estas computadoras podían operar en grandes compañías como es la construcción de automóviles, y otras que podrían hacer diversas tareas y a un ritmo impresionante
Conceptos
Iniciales de la Arquitectura de Computadores
Un computador es un sistema secuencial síncrono complejo que
procesa información, esta se trata de información binaria, utilizando solamente
los dígitos de valores lógicos ‘1’ y ‘0’. Estos valores lógicos binarios se
corresponden con valores de tensión eléctrica, de manera que un ‘1’ lógico
corresponde a un nivel alto a 5 voltios y un ‘0’ lógico corresponde a un nivel
bajo de tensión cercano a 0 voltios; estos voltajes dependen de la tecnología
que utilicen los dispositivos del computador.
Arquitectura
Harvard:
Es
una arquitectura de computadora con pistas de almacenamiento y de señal
físicamente separadas para las instrucciones y para los datos.
Hoy
en día (2016), la mayoría de los procesadores implementan dichas vías de
señales separadas por motivos de rendimiento, pero en realidad implementan una
arquitectura Harvard modificada, para que puedan soportar tareas tales como la
carga de un programa desde una unidad de disco como datos para su posterior
ejecución.
Usos
modernos de la arquitectura Harvard:
-Los
procesadores Texas Instruments TMS320 C55x.
_Los
microcontroladores AVR de AVR de Atmel Corp y la PIC de Microchip
Technology, Inc..
Arquitectura
Von Neumann:
Tradicionalmente los sistemas con microprocesadores
se basan en esta arquitectura, en la cual la unidad central de proceso (CPU),
está conectada a una memoria principal única (casi siempre sólo RAM) donde
se guardan las instrucciones del programa y los datos. A dicha memoria
se accede a través de un sistema de buses único (control, direcciones y
datos).
En un sistema con arquitectura Von Neumann el
tamaño de la unidad de datos o instrucciones está fijado
por el ancho del bus que comunica la memoria con la CPU. Así un microprocesador
de 8 bits con un bus de 8 bits, tendrá que manejar datos e instrucciones
de una o más unidades de 8 bits (bytes) de longitud. Si tiene que acceder
a una instrucción o dato de más de un byte de longitud, tendrá que realizar más
de un acceso a la memoria.
El tener un único bus hace que el microprocesador sea más lento en su
respuesta, ya que no puede buscar
en memoria una nueva instrucción mientras no finalicen las transferencias de
datos de la instrucción anterior.
Arquitectura
ARM:
ARM
es una arquitectura RISC de 32 bits y recientemente con la llegada de su
versión V8-A también de 64 Bits desarrollada por ARM Holdings.
La
arquitectura ARM está soportada por un gran número de sistemas operativos
integrados y de tiempo real, incluyendo Windows CE, Windows 8 RT, .NET Micro
Framework, Symbian, ChibiOS/RT, FreeRTOS, eCos, Integrity, Nucleus PLUS,
MicroC/OS-II, QNX, RTEMS, BRTOS, RTXC Quadros, ThreadX, Unison Operating
System, uTasker, VxWorks, MQX y OSE.
Los
sistemas que acreditan la especificación estándar UNIX y que soportan la
arquitectura ARM son:
-Solaris
-Apple OS X (en proyecto)
Familias:
Arquitectura
Orientada a Servicios (SOA):
La
Arquitectura Orientada a Servicios (SOA, siglas del inglés Service Oriented
Architecture) es un paradigma de arquitectura para diseñar y desarrollar
sistemas distribuidos. Las soluciones SOA han sido creadas para satisfacer los
objetivos de negocio las cuales incluyen facilidad y flexibilidad de
integración con sistemas legados, alineación directa a los procesos de negocio
reduciendo costos de implementación, innovación de servicios a clientes y una
adaptación ágil ante cambios incluyendo reacción temprana ante la
competitividad.
Permite
la creación de sistemas de información altamente escalables que reflejan el
negocio de la organización, a su vez brinda una forma bien definida de
exposición e invocación de servicios (comúnmente pero no exclusivamente
servicios web), lo cual facilita la interacción entre diferentes sistemas
propios o de terceros.
SOA
proporciona una metodología y un marco de trabajo para documentar las
capacidades de negocio y puede dar soporte a las actividades de integración y
consolidación.
Existen
diversos estándares relacionados a los servicios web; incluyendo los
siguientes:
Hay
que considerar, sin embargo, que un sistema SOA no necesariamente utiliza estos
estándares para ser “Orientado a Servicios” pero es altamente recomendable su
uso.
Arquitectura
en Pipeline:
Basada
en filtros, consiste en ir transformando un flujo de datos en un proceso
comprendido por varias fases secuenciales, siendo la entrada de cada una la
salida de la anterior.
Esta
arquitectura es muy común en el desarrollo de programas para el intérprete de
comandos, ya que se pueden concatenar comandos fácilmente con tuberías (pipe).
También
es una arquitectura muy natural en el paradigma de programación funcional, ya
que equivale a la composición de funciones matemáticas.
Arquitecturas
INTEL Y AMD DE 32 Y 64 BITS:
IA-32
(Intel Architecture, 32 bits): es
la arquitectura del conjunto de instrucciones de los procesadores de Intel
80×86 y de los primeros microprocesadores de AMD. IA-32 fue una extensión de 32
bits, implementada por primera vez en 1986 en el procesador Intel 80386,
sucesor de los antiguos procesadores Intel 8086, 8088, 80186 y 80286 de 16-bit
y el denominador común de todos los diseños 80×86 subsiguientes (80486, 80586,
80686). Por este motivo, también es conocida de manera genérica como
arquitectura i386, x86-32 o x86, aunque bajo esta última denominación (x86), y
también como x86-16, se suele incluir a los procesadores Intel de 16 bits.
La
arquitectura IA-64 (Intel Arquitecture, 64 bits) de Intel (perogrullada), fue lanzada en 1999,
y no es directamente compatible con el conjunto de instrucciones IA-32 (excepto
bajo emulación software) como sí sucede en el caso de las arquitecturas Intel
64 y AMD64. IA-64 es la arquitectura utilizada por la línea de procesadores
Itanium e Itanium 2, por lo que inicialmente fue conocida por el nombre de
Intel Itanium Architecture.
OTRAS
ARQUITECTURAS:
Además
de las arquitecturas de Intel y AMD existen otras muchas, entre las más
conocidas:
-SPARC
(del inglés Scalable Processor ARChitecture):es
una arquitectura RISC originalmente diseñada por Sun Microsystems y que podemos
encontrar en los procesadores de Sun (ahora Oracle).
-PowerPC (usualmente abreviada PPC):es el nombre de la arquitectura de computadoras de
tipo RISC desarrollada por IBM, Motorola y Apple. Los procesadores de esta
familia son utilizados principalmente en ordenadores Macintosh de Apple hasta
el año 2006 y en varios modelos IBM.
-ARM (Advanced RISC Machines): es una familia de microprocesadores RISC
diseñados por la empresa Acorn Computers y desarrollados por Advanced RISC
Machines Ltd., una empresa derivada de la anterior.
-PA-RISC: es
el nombre por el que se conoce una arquitectura de microprocesadores
desarrollada por sistemas Hewlett-Packard y VLSI Technology Operation. Esta
arquitectura se basa en el modelo RISC y en PA (Precision Architecture).
También se suelen referir a ella como la arquitectura HPPA (Hewlett
Packard Precision Architecture). Los primeros PA-RISC fueron dispositivos de 32
bits. El diseño fue actualizado en 1996 dando lugar a la versión 2.0 de la
arquitectura. Esta nueva versión era una arquitectura de 64 bits.
-Alpha: es
una arquitectura de microprocesadores diseñada por DEC e introducida en 1992
bajo el nombre AXP. Cuenta con un juego de instrucciones RISC de 64 bits, pero
también puede manejar datos de 32, 16 bits y por último de 8 bits.
Avances
en la arquitectura de las computadoras
¿Adiós a los ordenadores?
Con el aumento de la potencia y capacidad de almacenamiento
de los móviles, y la prácticamente total penetración de los móviles en los
países desarrollados, es previsible que en el futuro este dispositivo pequeño y
portable sustituya a los más grandes ordenadores.
De hecho, ya Motorola lanzó un modelo, que no fue exitoso,
pero es importante porque indica hacia dónde vamos. Se trata del Atrix, un
móvil diseñado con una colección de accesorios que permitían convertir su doble
núcleo en una especie de portátil ultradelgado.
Actualmente, ya existen smartphones que pueden integrarse en
una versión de escritorio personalizada de Android o en sistemas de navegación
similares a Google Chrome. También Microsoft desarrolló
Windows Continuum. Este permite que los smartphones funcionen
con un monitor externo, como un ordenador.
Adiós a las pantallas
En el futuro lo más
previsible es que nos olvidemos de las pantallas, y que vivamos la experiencia
de navegar en un ordenador en las paredes de nuestro hogar, o a través de la
realidad aumentada y la tecnología 3D.
En Microsoft, por ejemplo, su
división Perceptive Pixel trabaja en la innovación en
superficies multitáctil.
Otras realidades
Mientras que la realidad aumentada está basada en superponer
una realidad digital a una superficie física, la realidad virtual crea una
experiencia 100% digital.
Actualmente, en el mundo de los videojuegos ya se está
trabajando con experiencias de inmersión total. Por ejemplo, con dispositivos
como HoloLens de Microsoft, que permite generar realidades paralelas
como zombies que te ataquen en el salón de tu casa, mientras juegas
con una videoconsola.
Los dispositivos inteligentes se han convertido en parte de
nuestra normalidad en los últimos años. Usamos smartphones, pulseras
inteligentes, y también diversos dispositivos en nuestro hogar que hacen
nuestra vida mucho más sencilla.
Durante la próxima década podremos disfrutar de la
incorporación de tecnología en algo sin lo que nunca salimos de casa: nuestra
ropa. Diversas empresas llevan tiempo trabajando en tejidos inteligentes, y no
parece que haga falta esperar demasiado para que se convierta en una realidad.
Los productos textiles inteligentes pueden tener usos muy
diversos, lo que permitiría aplicarlos en ámbitos más allá del día a día. Por
ejemplo, podrían desarrollarse prendas para recopilar datos sobre nuestro
cuerpo, como el ritmo cardíaco o el nivel de oxígeno o azúcar en sangre.
Eso podría resultar particularmente útil en pacientes de
hospital, y en personas que sufren enfermedades crónicas o que requieren
supervisión médica de algún tipo. También podría ayudar a deportistas, ya que
tendrían información en todo momento sobre su estado físico.
Tecnologías
que innovaran a las computadoras en el futuro