Genbeta Dev Regístrate Resp spu uest sta as NO TE PIERDAS »
Curiosidades
Trabaja jarr co como mo desa sarrrolllla ador Open Source
Buscar »
Busca en Genbeta Dev con Google
| Entra o conéctat e con
Frameworks
Desa sarrrollllo o web
Actu Ac tua alilid dad
Herramientas de desarrollo
Desa sarrrolllla adores
Máss » Má
Eventos para Desarrolladores PUBLICIDAD
«
¿Cómo funciona funciona la com computación putación actual?: funcionamiento de la arquitectura de Von Neumann
»
14 de octubre de 2013 | 11:00 CET
Pedro Gutiér Gutiérrez rez Google+ @PedroXitrus Editor en Genbetadev PUBLICIDAD
Síguenos Newsletter: Suscríbete »
Correo electrónico
RSS
witt
Versión móvil
Comentarios 10
Von Neumann describió el fundamento de todo ordenador electrónico con programas almacenados. Describía, a diferencia de como pasaba anteriormente, como podía funcionar un ordenador con sus unidades conectadas permanentemente y su funcionamiento estuviese coordinado desde la unidad de control (a efectos prácticos es la CPU). Aunque la tecnología ha avanzado mucho y aumentado la complejidad de la arquitectura inicial, la base de su funcionamiento es la misma y probablemente lo seguirá siendo durante mucho tiempo. El artículo viene acompañado de una representación gráfica
del funcionamiento. Antes de entrar en los detalles de las unidades tenemos que conoc er lo siguiente:
Registros : es el lugar donde se almacenan temporalmente los datos que están en movimiento para procesarlos. En la representación de la imagen del principio podéis ver que son los registros.
Buses: son las uniones entre las distintas unidades, la memoria y los periféricos.
Face
Goog
Versión tablet
Unidad de proceso central (CPU) Es la unidad encargada de controlar y gobernar todo el sistema que comprende una computadora. La CPU consiste en un circuito integrado formado por millones de transistores, que está diseñado para poder procesar datos y controlar la máquina. Como ya sabéis, es un factor clave para la potencia de la computadora. La CPU dispone de dos unidades en su interior: la unida de control y la unidad
aritmético-lógica .
Unidad de control
La unidad de control se encarga de leer las instrucciones (de los programas almacenados en la memoria) y se encarga de enviar las ordenes a los componentes del procesador para que ejecuten las instrucciones. El proceso empieza cuando llega una instrucción al registro de instrucciones (llega como una cadena de bits con distintas partes, referidas a la propia instrucción y a los datos que se usarán). Posteriormente el decodificador interpreta la instrucción a realizar y como deben de actuar los componentes del procesador para llevarla a cabo. Esta acción se realiza mediante el secuenciador que envía micro-órdenes marcadas por el reloj (que genera pulsos de forma constante, se suele expresar su velocidad en gigahercios o GHz, para los procesadores actuales).
Unidad Aritmético Lógica (ALU)
La unidad aritmético lógica es la encargada de realizar todas las operaciones aritméticas (sumas, multiplicaciones…) y lógicas (comparaciones). Esta unidad puede tener distintos diseños, el de la imagen superior muestra el diseño más básico (donde el acumulador vuelve a usarse en la operación), en la actualidad lo normal es que el acumulador no se mezcle con los registros de entrada. El funcionamiento con el diseño que estamos analizando (el básico) comienza cuando le llega al registro de entrada un dato (una cadena de bits que representan un número), posteriormente el
circuito op eracional (en la imagen se representa como “ALU” y coloreado azul) y se procesa junto al contenido del acumulador y posteriormente se deposita de nuevo en el acumulador. Repitiendo esta acción se generan los cálculos. Este proceso se ve claramente en la representación que hay más abajo.
Memoria principal La memoria principal en la arquitectura inicial era directamente la RAM, pero esto ha evolucionado y se han añadido memorias caché e implementado algoritmos que predicen que datos vamos a usar más frecuentemente. La memoria RAM es bastante sencilla, en comparación con la CPU, se podría decir que es una tabla, que contiene la dirección (o lugar) donde está cierto dato y el contenido del propio dato. La memoria dispone de un registro de direcciones (RDM) y un registro de intercambio de
memoria (RIM o registro de datos). En el registro de direcciones se almacena la dirección en la que se almacenará o leerá un dato, y en el registro de intercambio de memoria se almacena ese dato leído o que se
almacenará. Cuando hablamos de direcciones de memoria a muchos os sonará de los “punteros” de C, y es por esto que es esencial conocer la arquitectura de Von Neumann antes de aprender a programar en ciertos lenguajes que actúan a más bajo nivel. La unidad de control contiene el registro contador de programa, que contiene la dirección de memoria de la siguiente instrucción, que se incrementa tras realizar una instrucción y así va recorriendo la memoria y ejecutando el programa.
Buses Todos estos elementos se comunican entre si a través de buses, ya sea para manejar las acciones a realizar por la máquina o para mover datos. Hay tres tipos de buses. El bus de datos perite el intercambio de datos (ya sean instrucciones o datos) con el resto de elementos de la arquitectura. Es decir, mediante el bus de datos la unidad de control recibe las instrucciones y la ALU los datos desde la memoria, al igual que también los envían por este medio. El bus de instrucciones transmite las direcciones de memoria que van a ser usadas desde la CPU, para poder seleccionar los datos que serán usados. El bus de control es el que transporta las ordenes generadas por la CPU para controlar los diversos procesos de la máquina.
Funcionamiento de la arquitectura Para ver cómo funciona la arquitectura he creado una representación documentada del proceso. Este diseño de la arquitectura, como ya he comentado, es el básico (con acumulador como registro de entrada) y el ancho de los datos es de 8 bits. Las instrucciones están formadas por dos bloques de 4 bits, los primeros para instrucciones y los últimos para la dirección de la memoria. Siempre que se usa en una instrucción un número está destinado a la dirección de memoria, donde se usa el verdadero número que se usará para una operación. Actualmente se usan anchos de 32, 64 o 128 bits en computadora s, y no tiene porqué seguir el mismo patrón. Seguidamente voy a exponer varios patrones que se pueden dar, a fin de completar un poco más la representación que es muy simple al disponer solo de 8 bits.
# Tal como aparece en la representación
0111 0011
+------+------+ | 0111 | 0011 |
+------+------+ |
| Dirección de memoria a usar
| Instrucción
# Ejemplo con 16 bits y varios registros
0011 1010 1001 0101
+------+--------+--------+ | 0011 | 101010 | 010101 |
+------+--------+--------+ |
|
| Registro de entrada 2
|
| Registro de entrada 1
| Instrucción
# Ejemplo con 32 bits, varios registros y lugar a almacenar resultado
0011 1010 1001 0101 0011 0110 1110 0101
+----------+----------+----------+----------+ | 00111010 | 10010101 | 00110110 | 11100101 |
+----------+----------+----------+----------+ |
|
|
| Dirección de destino del resultado
|
|
| Registro de entrada 2
|
| Registro de entrada 1
| Instrucción
Nota: cada procesador es distinto, por lo que quizás alguno de los ejemplos sea verídico o similar a alguno en uso, pero no tiene porqué. Como había dicho, aquí tenemos la simulación documentada de como funciona la arquitectura de Von Neumann, que podéis ver con mayor tamaño también . (Es más cómodo pasar al siguiente paso pulsando
enter).
Información de instrucciones +--------+-----+-------------------+ | Inst | D | Comenatario | Unidad aritmético-lógica (ALU) +--------+-----+-------------------+ | 0000+1 | + | Suma | | 0001 | | Resta | 0000 | Cont. 0010 | * | Producto | Programa | 0011 | ^ | Exponente | | 0100 | & | Operador AND | 00000000 | 0101 | | | Operador OR | Instrucciones | R.0110 | M | Mover a memoria Acumulador | | 0111 | … | Finalizar | 00000000 +--------+-----+-------------------+
Unidad de control
Decodificador
R. Entrada
00000000
Programas precargados: -----------------------------------+ 5 + 11 = 16 Memoria - (1 + 1) ^ 5 = 32 - 01001011 OR 01010101 = 01011111 R. Direcciones R. Datos - 01001011 AND 01010101 = 01000001 0000 00000000 Tabla de memoria - 255 + 1 = OVERFLOW - ((2 ^ 2) +Dir.2) Contenido ^ 2 = 36 - (8 - 3) ^ 0000 3 = 00000000 125 0001 00000000 -----------------------------------0010 00000000 Ejecutar 0011 0100 0101 0110 0111
Créditos
00000000 00000000 00000000 00000000 00000000
Cambiar programa
Cerrar
Siguiente
Resumen Aunque es un poco difícil de comprender a la primera es esencial conocer las bases de la computación cuando uno se dedica a la programación, y así llegar a comprender como afecta nuestros programas a la interacción del sistema. Aunque actualmente muchos lenguajes nos abstraen de todo esto, pero eso ya sería entrar en arquitectura del software.
Categorías Tags
Actualidad
memoria
Arquitectura de procesadores
Punteros
Artículos recomendados
Nokia Lumia 630 y Lumia 635, toda la información (Xataka Móvil)
Google penaliza el oscuro negocio de los sitios web con fotos de arrestos
Mundo absurdo: Lindsay Lohan quiere demandar a Rockstar por usar su imagen en 'GTA V'
97 cosas que todo programador debería saber recomendado por
Ver más artículos
»
Los comentarios se han cerrado
PUBLICIDAD
10 comentarios
Ordenar por: Más valorados
Suscribir Abrir todos
-
4
Más recientes
Cronológico
Cerrar todos
xivo
14 de Octubre de 2013 - 11:25
En el último curso de informática había un alumno que tenía que preguntar siempre algo cada vez que un profesor explicaba algo, no recuerdo bien en que clase estábamos, era algo relacionado con el S.O. creo, y hablamos de cuellos de botella de los buses. Entonces el "Alumno aventajado" pregunta "¿No podemos conectar directamente el Disco Duro a la cache para ahorrar tiempo?" El profesor se dio la vuelta muy despacio, se le veía en la cara que no se creía la pregunta que acababa de hacerle este tío. Entonces pega un tortazo en la mesa y le grita: "Arquitectura de Von Neumann, vuelve a primero". No he visto a un profesor mas enfadado en mi vida. Ni que decir tiene que el tío este no volvió a preguntar nada más, en una semana. 1 voto | Karma 18.00
Respondiendo a xivo:
-
Pedro Gutierrez
5
http://xitrus.es
14 de Octubre de 2013 - 11:59
Jaja xD... normal, si se forman cuellos de botella por la RAM (y de ahí la implementación de la caché) espera que lleguen datos desde el disco duro, la latencia del disco duro es más o menos 100.000 veces más que la de la RAM (cero arriba, cero abajo). 0 votos | Karma 15.00
-
Carlitos Way
6
15 de Octubre de 2013 - 1:20
Este resumen es muy bueno, a mí me ha hecho recordar viejos tiempos. La verdad es que cuando te dedicas a las tecnologías web esto lo acabas dejando de lado, pero ciertamente es la base de la computación actual de consumo y, efectivamente, se debe a un tipo muy inteligente de origen húngaro llamado Von Neumann. 0 votos | Karma 10.00
-
7
afsoons
15 de Octubre de 2013 - 5:04
¿Por qué mi profesor de Estructura de Computadores no explica de esta manera?. Con lo fácil que sería enterarse en clase y repasar con un libro. 0 votos | Karma 8.00
-
1
meldrel
14 de Octubre de 2013 - 7:00
Acabo de volver a Ingeniería de com putadores I... No me parece nada difícil esto que has expuesto, y está bastante bien explicado. 0 votos | Karma 5.00
Respondiendo a meldrel:
-
Pedro Gutierrez
3
http://xitrus.es
14 de Octubre de 2013 - 10:11
A mi tampoco me lo parece, ni me lo parec ió, pero la clave de esto según mi punto de vista está en representarlo visualmente. La primera vez que lo estudié entendía las "milongas" que me contaban, pero hasta que no lo vi no supe exactamente que era. 0 votos | Karma 15.00
-
2
chemaalfaya
14 de Octubre de 2013 - 8:36
Sólo viendo la primera imagen ya se me ha venido a la mente la imagen del profesor diciendo "fetch, decode, execute" repetidamente durante 5 minutos mientras señalaba con el dedo las instrucciones escritas en la pizarra. 0 votos | Karma 5.00
-
8
dwtzs
15 de Octubre de 2013 - 6:12
Buen resumen. Si vas a publicar más artículos de este tipo, estate atento a las estadísticas de visitas, que váis a recibir un buen flujo de estudiante de informática XD PD: ¿Con qué programa has hecho los gráficos? Me parecen realmente limpios y claros. 0 votos | Karma 5.00
Respondiendo a dwtzs:
-
9
Pedro Gutierrez http://xitrus.es
15 de Octubre de 2013 - 10:16
Se me olvidó decirlo, quería haber comentado que está hecho con SVG (vectores en XML que es el estándar o recomendación de la W3C) y está implementado junto a HTML5. Los gráficos los he hecho con Adobe Illustrator, que permite exportar a SVG, aunque se puede hacer con Inkscape. La manipulación de los elementos además es muy simple, exporta el nombre de los trazos o capas y los establece como ID del elemento (después solo queda usar
display:none ).
0 votos | Karma 15.00
-
10
jorgeregidor
http://www.linkedin.com/pub/jorg...
20 de Octubre de 2013 - 1:59
Que bien me hubiera venido esta explicacion en mis practicas de ENSAMBLADOR 8086, ajajjajjaa, Pero no es verdad que esta estructura se esta empezando a ir un poco al garete, como todos los sistemas modernos? que el almacenamiento esta en un sitio, se procesa en otro y se representa en
otro? 0 votos | Karma 5.00
Más en Genbeta Dev xkcd te explica como funciona Heartbleed
+
en Genbeta Dev
Eventos para desarrolladres de Abril: HTML5 Spain, Hack Show, Unity 3D por parte de MSND y algo de Drupal y Wordpress
LO MEJOR
April Fools' Day 2014 al modo developer
TEMAS
PRODUCTOS
Liberado el código fuente de MS DOS 1.1, 2.0 y Word 1.1a
RESPUESTAS
CLUB
¿Qué sistema operativo piensas que es el mejor para desarrollar? La pregunta de la semana
COMUNIDAD
STAFF
TECNOLOGÍA Xataka
Xataka Móvil
Xataka Smart Home
Xataka Foto
Xataka Windows
Vida Extra
Xataka Android
Xataka Ciencia
Genbeta
Xataka On
Applesfera
Genbeta Dev
ESTILOS DE VIDA
MOTOR
OCIO
ECONOMÍA
LATINOAMÉRICA
PARTICIPAMOS EN
Trendencias
Motorpasión
Blog de Cine
El Blog Salmón
Xataka Brasil
Circula Seguro
Trendencias Belleza
Motorpasión F1
¡Vaya Tele!
Pymes y Autónomos
Trendencias Brasil
Circula Seguro PT
Trendencias Hombre
Motorpasión Moto
Hipersónica
Tecnología Pyme
Motorpasión Brasil
Actibva
Trendencias Shopping
Motorpasión Futuro
Diario del Viajero
Ahorro D iario
Xataka México
Anexo M
Motorpasión México
Happing Magazine
Directo al Paladar
Directo Al Paladar México
Blog Sage
Bebés y Más
Xataka Android México
Optimismo Digital
Peques y Más
Vida Extra México
En Naranja
Vitónica
Vitónica México
Bloggin Zenith
Trendencias Lifestyle
Papel en Blanco
Decoesfera
Urbanfire
Embelezzia
Tecnología de tú a tú
Ambiente G
Ciudadano 0,0
Poprosa
Blog Fanta Mi Mundo Philips BBVA con tu empresa Bershka Bscene Instituto de la Felicidad
¿QUIENES SOMOS? CONDICIONES DE USO POLÍTICA DE COOKIES AVISO LEGAL PUBLICIDAD AYUDA CONTACTO
EBLOGS SL