Tema: ¿La computación es magia?

Mensajes

  • InmersiVer

    4 Abr 2014 11:42

    Mensajes: 225

    Ubicación: Madrid

    InmersiVer » 30 ABR 2014  9:39

    Buenas, si hay algún experto en la materia, por favor, que me diga si es posible comprender cómo un circuito integrado con microchips, resistencia y demás se traduce en algo tan maravilloso como las cosas que puedo hacer en un PC. Por mucho que he buscado no encuentro una explicación sencilla e ilustrativa del tema (la analogía del interruptor para los transistores me parece más que insuficiente). Con el tiempo y recordando estas mismas inquietudes expuestas a primos lejanos tiempo atrás (¿quién no tiene un primo informático?) que no supieron responder satisfactoriamente, me pregunto si voy a tener que comprender antes todos los fundamentos de matemáticas, física, electricidad, química y demás para alcanzar esa sabiduría.

     

    Por otra parte sigo convencido de que alguna metáfora podría iluminarme y alcanzar a saber cómo de unas misteriosas interacciones entre "interruptores diminutos" surje todo esto. Seguramente sea algo largo de contar y si existe algún libro que lo explique para que lo entiendas, y lo comprendas (en ese orden o en el inverso), decídmelo porfavor, que soy de los que mueren de curiosidad insatisfecha

    0
  • jjdelalamo

    5 Jun 2013 13:48

    Mensajes: 2215

    Ubicación: Cerca de Bilbao

    jjdelalamo » 30 ABR 2014  10:24

    Habría que diferenciar 2 partes:

     

    -La parte física, los microchips, los transistores... que se encargan de procesar de manera ultrarápida flujos inmensos de datos formados por 0 y 1.

     

    -La parte lógica que en base a código binario es capaz de realizar operaciones aritméticas (sumas, multiplicaciones...) y lógicas (comparaciones, AND, OR, NOT...).

     

    La combinación de las dos partes da como resultado unas máquinas que pueden realizar cálculos y operaciones lógicas básicas a una velocidad asombrosa. Es decir, es como si tuviéramos millones de piezas básicas de lego y en fracciones de segundo pudiéramos formar construcciones complejas.

     

    En el caso de los ordenadores, con los bits son capaces de hacer funcionar motores gráficos, sistemas de IA o de físicas, protocolos de comunicación... que a su vez manipulan caudales tremendos de información como texturas, música, imágenes...

     

    Para mí lo realmente mágico y lo que permite la computación avanzada es la velocidad a que se ejecuta todo. Si hablamos de 4Ghz (4.000 millones de Hercios) en un procesador de 4 núcleos, quiere decir que cada segundo tenemos disponibles 16.000.000.000 de operaciones básicas. Si lo aplicamos a juegos hay que tener en cuenta que además contamos con potentes procesadores gráficos que pueden realizar cientos y miles de operaciones paralelas a velocidades alrededor de 1Ghz.
    vamos, que tenemos un montón de enanitos trabajando para nosotros a toda velocidad.

    0
  • InmersiVer

    4 Abr 2014 11:42

    Mensajes: 225

    Ubicación: Madrid

    InmersiVer » 30 ABR 2014  10:55

    Pero a nivel de microchip, con todos esos millones de transistores, ¿como es posible que pasando una corriente eléctrica por ese trozo de silíceo pueda iniciarse nada? Es decir, se enciende un transistor pero, ¿cómo se controla después el estado de los demás transistores? y más importante, ¿cómo pasa a código binario todo eso y en base a qué orden preestablecido que dé lugar a que pasen procesos más complejos y sobretodo a procesos con los cuales puedes interactuar?

    0
  • jjdelalamo

    5 Jun 2013 13:48

    Mensajes: 2215

    Ubicación: Cerca de Bilbao

    jjdelalamo » 30 ABR 2014  11:15

    Je je, para explicar todo eso mejor te recomiendo un libro de electrónica digital .

     

    Lo de los 0 y 1 es fácil. Se establecen unos umbrales en el voltaje de la corriente que circula por esos transistores. Digamos que:
    -Si el voltaje está entre 0V y 0,5V, se considera un 0 lógico.
    -Si el voltaje está entre 2V y 2,5V se considera un 1 lógico.

     

    Esos umbrales dependen del hardware. Antiguamente se usaba 0V y 5V, pero con la miniaturización y los menores consumos los valores actuales son mucho más bajos.

    0
  • Nikolas

    10 Nov 2013 10:42

    Mensajes: 361

    Nikolas » 30 ABR 2014  11:28

    La electrónica y en concreto la microelectrónica son ciencias que se estudian durante varios años para poder entender las preguntas que tú estás haciendo.
    no hay una metáfora mágica que te vaya a hacer entender esto en 2 minutos.

     

    Tendrás que poner de tu parte ganas y capacidad de superación y sacrifio para documentarte y empezar a responder a tus propias preguntas.

    0
  • InmersiVer

    4 Abr 2014 11:42

    Mensajes: 225

    Ubicación: Madrid

    InmersiVer » 30 ABR 2014  12:11
    "jjdelalamo"Je je, para explicar todo eso mejor te recomiendo un libro de electrónica digital .

    Lo de los 0 y 1 es fácil. Se establecen unos umbrales en el voltaje de la corriente que circula por esos transistores. Digamos que:
    -Si el voltaje está entre 0V y 0,5V, se considera un 0 lógico.
    -Si el voltaje está entre 2V y 2,5V se considera un 1 lógico.

    Esos umbrales dependen del hardware. Antiguamente se usaba 0V y 5V, pero con la miniaturización y los menores consumos los valores actuales son mucho más bajos.

     

    Otra vez te coronas jjdelalamo, lo de los umbrales de voltaje no lo sabía y me aclara mucho el tema (¿se usan resistencias muy pequeñas?). Supongo que entonces cuando metes corriente en ese laberinto de transistores surge automáticamente un código binario preestablecido que activa otro laberinto de transistores que ejecuta un código binario que permite la manipulación del primer laberinto para activar según que cosas no? Supongo que el primer laberinto da lugar al sistema operativo ultra basico no? a la BIOS o a algo parecido...??

    0
  • Laugt

    13 Ago 2013 14:30

    Mensajes: 623

    Ubicación: Sevilla

    Laugt » 30 ABR 2014  12:46

    Es mas complejo que todo eso, se reduce un poco a una serie de propiedades que tienen los materiales semiconductores, en general el que se usa es el silicio, en el caso de los transistores por ejemplo , así a groso modo, tienen tres patillas depende de la excitación que se meta entre esta provoca algo similar a un interruptor entre ellas, de este modo se consiguen los umbrales de tensión que luego se interpretaran como 0 y 1 logicos, todo esto en el terreno de la electrónica digital, en la analógica varia un poco.
    Sabiendo esto por ejemplo esos unos y ceros podrían usarse en un pixel para determinar cual, de los colores presentes en la matriz que compone cada pixel, y con que intensidad ha de ser excitado y así obtener un color u otro, esto extendido al resto de pixeles formaría una imagen.
    No es todo exactamente, exactamente así, pero creo que sirve para que te hagas una idea general. Para saber mas no te queda otra que estudiar y aun asi hay cosas que hasta que no las pruebas por ti mismo y le das muchas vueltas no terminas de verlas con claridad. Son muchísimos años de investigación para que pueda ser descrito en pocas lineas

    0
  • InmersiVer

    4 Abr 2014 11:42

    Mensajes: 225

    Ubicación: Madrid

    InmersiVer » 30 ABR 2014  15:05

    Pues ya tiene que ser complejo para que todos esos píxeles se dispongan así, supongo que ha sido una evolución ardua desde Turing y cía. Entonces viene la pregunta clave: ¿Podría una mente humana abarcar todo el conocimiento necesario para hacer un ordenador medio actual disponiendo sólo de los instrumentos/maquinaria y las materias primas?

    0
  • Laugt

    13 Ago 2013 14:30

    Mensajes: 623

    Ubicación: Sevilla

    Laugt » 30 ABR 2014  16:09

    Si, teóricamente la mente humana no tiene limites asiq... aparte de eso es un conocimiento ya adquirido. Lo difícil es inventar algo nuevo, rehacer lo que otro ha echo es solo cuestión de tiempo y estudio. Hay gente que memoriza enciclopedias enteras, puedes enseñarle a alguien a construir un pc desde 0 y ha conseguir un sistema operativo, lo difícil es que uno solo en una vida sola llegue a pulir todos los detalles, ya que para eso se ha invertido mucho tiempo y muchas personas.
    Vamos veo mas problemas en reconstruir el software que el hardware, el hardware con herramientas, maquinarias y tiempo no seria un problema ni un conocimiento inalcanzable por una sola persona, ahora el software, al nivel de ahora un solo hombre en una vida... es otro cantar.

    0
  • NoxWings

    22 Mar 2014 12:26

    Mensajes: 1009

    Visores

    HTC Vive
    Valve Index
    NoxWings » 1 MAY 2014  0:24
    "InmersiVer"Buenas, si hay algún experto en la materia, por favor, que me diga si es posible comprender cómo un circuito integrado con microchips, resistencia y demás se traduce en algo tan maravilloso como las cosas que puedo hacer en un PC. Por mucho que he buscado no encuentro una explicación sencilla e ilustrativa del tema (la analogía del interruptor para los transistores me parece más que insuficiente). Con el tiempo y recordando estas mismas inquietudes expuestas a primos lejanos tiempo atrás (¿quién no tiene un primo informático?) que no supieron responder satisfactoriamente, me pregunto si voy a tener que comprender antes todos los fundamentos de matemáticas, física, electricidad, química y demás para alcanzar esa sabiduría.

    Por otra parte sigo convencido de que alguna metáfora podría iluminarme y alcanzar a saber cómo de unas misteriosas interacciones entre "interruptores diminutos" surje todo esto. Seguramente sea algo largo de contar y si existe algún libro que lo explique para que lo entiendas, y lo comprendas (en ese orden o en el inverso), decídmelo porfavor, que soy de los que mueren de curiosidad insatisfecha

     

    Por favor perdonadme por la inminente chapa, si digo bastantes cosas obvias o si me como también alguna cosilla. Estoy abierto a críticas constructivas. Por contestar un poco a la pregunta principal y aunque enormemente simplificado voy a intentar dar un poco de perspectiva sobre una máquina muy sencilla e hipotética. Del nivel más bajo "voltajes y bits" a los programas que usamos (Divido la explicación en 2 partes una para el hardware y otra para el software por que es bastante larga):

     

    === HARDWARE ===

     

    -- Voltaje y bits --
    En electrónica todo funciona en binario, un bit corresponde a un dígito en notación binaria donde solo existe el 0 y el 1. Y en el panorama físico utilizamos voltajes para representar estos ceros y unos. Por poner un ejemplo podemos asumir que un voltaje de 0 significa un 0 y un voltaje de X significa un 1 o viceversa.

     

    *Hasta ahora tenemos: como se representan 1 y 0 en un circuito

     

    -- Datos binarios --
    Con el "lenguage" binario podemos representar multitud de cosas, números enteros, números decimales (en coma flotante), letras (almacenando valores que más tarde haremos se corresponderán a caracteres) etc. Para manejar más cómodamente números grandes de valores binarios se suele utilizar por convención el sistema hexadecimal para referirse a éstos [1]

     

    Para representar el número entero 10(decimal) = (2^3)*1 + (2^2)*0 + (2^1)*1 + (2^0)*0 ==> 1010 (binario)

     

    *Hasta ahora tenemos: que con binario podemos representar números enteros, decimales o incluso podríamos representar letras si asignásemos un caracter a un valor numérico dado.

     

    -- Circuitos y puertas lógicas --
    Hasta ahora tenemos la forma de representar ceros y unos, ¿que se puede hacer con ellos? Crear pequeños circuitos llamados puertas lógicas que se comportan cada uno de una manera determinada. Estas puertas lógicas AND[2], OR, XOR, NOT tienen una o varias entradas y una salida generalmente. Para los que no sepan que es esto de las puertas lógicas
    - una puerta NOT por ejemplo toma lo que hay en la entrada y lo invierte en la salida. Si hay un 1 devuelve un 0 y viceversa.
    - una puerta AND devuelve un 1 si y solo si las entradas son todas un 1 también. etc etc

     

    También existe otro tipo de puertas que sirven para que dados unos bit de entrada decidamos con un selector (también binario) cual de las posibles entradas queremos que pueda salir por una única salida (multiplexor[3]) y circuitos que hacen lo contrario, una entrada y varias posibles salidas (demultiplexor). Creando así circuitos combinacionales donde se puede en cierto modo decidir las rutas que los bits recorren en el circuito.

     

    Con estas puertas lógicas básicas se pueden construir otros circuitos lógicos más complejos como sumadores/restadores[4] binarios. Pequeños componentes capaces de realizar sumas en sistema binario recibiendo varios bit para cada argumento de la operación y devolviendo el resultado.

     

    *Hasta ahora tenemos: operaciones lógicas con números binarios y el poder de decisión de utilizar diferentes caminos para los bits(datos)

     

    -- Memoria --
    Podemos tambien realizar circuitos que recrean un comportamiento para "recordar" los bits introducidos en un circuito. Los circuitos más sencillos que pueden reproducir este efecto son los biestables[5] que a su vez se pueden agrupar para crear registros[6]. Estos circuitos son capaces de almacenar los bits de memoria para guardar datos. Son capaces de "recordar" estos bits de infomación manteniendolos en una especie de "bucle" por decirlo de alguna manera, hasta que se les modifica el valor, y permiten también que la información sea accedida. Ver la referencia a los biestables.

     

    *Hasta ahora tenemos: formas de operar logicamente con bits, selecionar posibles caminos para el circuito y almacenar datos

     

    -- Componentes de una cpu básica [7] --
    Unidad de proceso[8]: Es la parte del procesador encargada de ejecutar las instrucciones que queremos, sería algo así como el core/nucleo de la cpu en si misma. Se descompone a su vez en más partes. Dispone de unos pequeños registros (mucho más rápidos que la memoria principal) para almacenar ciertos datos recurrentes o recientemente utilizados. Los procesadores reales disponen también de memoria caché, que viene a ser una memoria intermedia entre el procesador y la memoria principal o ram, y que aumenta la eficiencia al almacenar y obtener datos recurrentes. Pero la parte más importante es la ALU.
    ALU[9]: A una nueva escala podemos crear nuevos componentes como la ALU (Unidad aritmetico lógica) en la que podemos aunar varios circuitos como sumadores/restadores multiplicadores y multitud de operaciones. Esta ALU simplificada puede recibir 2 números binarios de longitud N y operar con ellos seleccionando el tipo de operación a través de un selector.
    FPU[10]: Para los datos binarios que representan numeros reales se utiliza este componente que opera especificamente con este tipo de datos ya que su codificación es diferente a la de los enteros.

     

    Buses: Los buses son como los caminos que conectan la unidad de proceso con el resto de componentes. Con la memoria principal permiten "coger" datos de la memoria al procesador y viceversa guardarlos para almacenar los resultados. Aunque también hay buses para gestionar la entrada y salida de datos a periféricos, como puede ser la pantalla, teclado, ratón o cualquier periferico.

     

    Unidad de control[11]: La unidad de control es la encargada de preparar todos los selectores del procesador, para que en un momento determinado se ejecute una operación en la ALU u otra o se seleccione si lo que se quiere es obtener o guardar un dato en memoria. Los procesadores incluso los que no existen y se estudian solo para enseñar pueden tener una enorme cantidad de selectores, con lo cual no es factible seleccionar manualmente todos éstos. Lo que se hace es utilizar "instrucciones" de procesador.

     

    *Funcionamiento: Se lee de memoria una instrucción previamente guardada. Y se interpreta utilizando la unidad de control, es decir, se decodifica una instrucción sirve que sirve a modo de selector para obtener el valor del resto de selectores del procesador y que en conjunción acaban seleccionando un camino de datos y realizando una operación.
    Por ejemplo: la instrucción sumar puede activar los selectores del circuito que permiten sumar un registro A y otro B y almacenar el resultado en un registro C.

     

    *Hasta ahora tenemos: una unidad que puede realizar distintos tipos de operaciones, unos buses que nos permiten comunicar la memoria y posibles perifericos con el procesador y una unidad que se encarga de controlar que cada en cada tipo de instrucción se utilicen los selectores que hacen lo hacen posible

     

    -- El procesador y las instrucciones --
    ¿Para que sirven estas instrucciones y cálculos que hemos nombrado? pues esas instrucciones pueden ser perfectamente el resultado de una operación que queramos, o el cálculo del color final de uno de los pixel de tu pantalla (muy a groso modo), también puede ser el resultado de pulsar una tecla que a su vez se traduce a un código que se envía por el bus de entrada salida (E/S) y se almacena en la memoria para tratarlo luego. La cuestión es que a partir de aquí ya no solo es el hardware (los componentes físicos) si no los programas y la secuencia de instrucciones que se almacenan para que el ordenador realice una tarea. Aquí es donde entra el software.

     

    *Hasta ahora tenemos: una cpu muy muy básica y la posibilidad de utilizar ciertas instrucciones, es decir, podemos programar en código máquina

     

    -- EN LA VIDA REAL --
    Los procesadores realmente son algo años luz más sofisticados de lo que suena este desafortunado ejemplo:
    -contienen multiples procesadores, con caches propias para cada core lo cual implica protocolos de coherencia de memoria
    -el propio procesador además provee una cierta gestión de la memoria virtual
    -la cpu tiene mecanismos propios de protección de memoria
    -los procesadores reales tiene varios cauces para el proceso de datos, y dividen su ejecución en diferentes etapas (cauce segmentado) con las que pueden estar ejecutando una instrucción y buscando decodificando la siguiente al mismo tiempo.
    -proveen multitud de mecanismos de gestión y planificación de los cauces frente a posibles saltos etc
    -gestión de interrupciones hardware
    ... etc etc
    en definitiva una burrada de cosas del copón de la baraja, y aun así lo máximo que he estudiado y he visto ha sido la arquitectura del P54c[12]

     

    [1] es.wikipedia.org/wiki/Binario
    [2] es.wikipedia.org/wiki/Puerta_AND
    [3] es.wikipedia.org/wiki/Multiplexor
    [4] es.wikipedia.org/wiki/Sumador
    [5] es.wikipedia.org/wiki/Biestable (flip-flop)
    [6] es.wikipedia.org/wiki/Registro_de_desplazamiento
    [7] es.wikipedia.org/wiki/Unidad_cen ... cesamiento (cpu)
    [8] es.wikipedia.org/wiki/Unidad_de_proceso - (lo que llamamos core)
    [9] es.wikipedia.org/wiki/Unidad_aritmetico_logica (ALU)
    [10] es.wikipedia.org/wiki/Unidad_de_coma_flotante (FPU)
    [11] es.wikipedia.org/wiki/Unidad_de_control
    [12] en.wikipedia.org/wiki/P5_(microarchitecture)#P54C

    I7 6700K / MSI 1070 Gaming X / MSI Z170 Gaming M5 /  16GB RAM DDR4 3000Mhz / Aerocool X-Strike 800W Gold

    0
  • NoxWings

    22 Mar 2014 12:26

    Mensajes: 1009

    Visores

    HTC Vive
    Valve Index
    NoxWings » 1 MAY 2014  2:17

    Como continuación de la anterior respuesta aquí la parte desde el hardware al software. Igual que antes voy a intentar simplificarla muchísimo para coger algo de perspectiva, además ya me he alargado demasiado.

     

    === SOFTWARE ===

     

    -- Lenguajes de bajo nivel --
    - Código máquina:
    Nuestra máquina sencilla del anterior post era capaz de ejecutar instrucciones. Se llama código maquina a los programas hechos directamente con las secuencias de instrucciones del procesador o con lenguaje ensamblador que se traduce directamente a código maquina. Al final no dejan de ser 1s y 0s directamente que representan instrucciones y operandos/parametros.

     

    Se dice que este tipo de lenguajes son de "bajo nivel" por que están mas cerca del lenguaje de la maquina que el humano y además dependen y afectan directamente al hardware en cuestión. Es decir tienen independencia del hardware. En este tipo de lenguajes, el propio código fuente o secuencia de instrucciones se corresponde con lo que se ejecuta.

     

    *Hasta ahora tenemos: lenguajes de bajo nivel que nos permiten crear programas específicos para cada procesador

     

    -- Lenguajes de alto nivel --
    Estos lenguajes permiten escribir las instrucciones de un programa en un lenguaje más cercano al del ser humano y son mucho más intuitivos y fáciles de entender comparados con el lenguaje máquina, sin embargo, estos programas no pueden funcionar por sí solos y se necesita transformar y utilizar de alguna manera las secuencias de instrucciones escritas en ellos.

     

    Los lenguajes de alto nivel, (los que usamos los que programamos hoy día) son de 3 tipos:
    -Compilados: Necesitan de un tipo programa especial al que llamamos compilador y que es capaz de analizar y traducir la secuencia de instrucciones escritas en el lenguaje de alto nivel a una serie de instrucciones en código máquina. Una vez realizado el proceso de compilación, el compilador habrá creado un programa ejecutable independiente.
    -Interpretados: Necesitan de un tipo de programa especial interprete. Este tipo de lenguajes no crean un ejecutable, si no que se ejecutan a través del interprete que lee y traduce cada instrucción paso a paso.
    -Mixtos: Una combinación de los dos anteriores, el código fuente se compila a un código intermedio, que después es interpretado paso a paso cada vez que se ejecuta.

     

    *Hasta ahora tenemos: Lenguajes de alto nivel, con los que podemos crear programas de una manera más intuitiva y legible

     

    -- Sistema operativo (SO) --
    Los sistemas operativos son algo así como un conjunto de programas enorme que ofrecen una ingente cantidad de rutinas para la gestión de los diferentes recursos de los que dispone el ordenador como memoria principal y el uso de procesador. Ofrece además un sistema de ficheros que nos evita tener que conocer como se almacena realmente la información.
    Básicamente la función principal de un sistema operativo es abstraer a los que lo usan del hardware, esto es, proporcionan una base unificada para una enorme cantidad de arquitecturas hardware y que quien lo usa no tenga que saber cómo funciona específicamente cada arquitectura o procesador para poder usarlo.
    Para el usuario normal en ultima instancia el sistema operativo ofrece también la forma de interacción con el usuario, ya sea por consola o creando una interfaz gráfica.

     

    Para los programadores todas estas rutinas y funciones del sistema, son la base para nuestros programas ya que en realidad las aplicaciones que nosotros hacemos acaban sirviéndose en gran medida de esas rutinas y servicios que ya gestiona el sistema operativo. Cada vez que creamos una variable es el sistema operativo el que se encarga de reservar un hueco libre de la memoria por nosotros por ejemplo.

     

    *Hasta ahora tenemos: lenguajes de alto nivel, independientes de cada procesador específico, que se sirven de las rutinas y funciones del sistema operativo y nos permiten crear aplicaciones

     

    -- Aplicaciones y gráficos hoy dia --

     

    Las aplicaciones hoy día pueden variar enormemente, las hay desde simples calculadoras que apenas necesitan instrucciones ni conocimiento específico, a monstruosos motores de renderizado y videojuegos que están pensados para exprimir el rendimiento y donde se utilizan potentes cálculos específicos para gráficos. El renderizado de gráficos es otro apasionante tema, pero no me voy a meter en ello ahora. Creo que no es nada nuevo para nadie aquí que los gráficos de los juegos se realizan mediante multitud de vertices ejes, caras, texturas y diferentes métodos para calcular su iluminación. Al final todo este cálculo de gráficos se reduce a puntos 3D, vectores, matrices de transformación, proyecciones... Y lo que una tarjeta gráfica hace en esencia es operar con este tipo de datos de manera mucho más especifica y eficiente que la cpu.

     

    *Ahora tenemos: Aplicaciones y gráficos interactivos, Juegos, Experiencias VR...
    ¡Trofeo desbloqueado !

     

    -- ¿Como funciona realmente TODO cuando aprieto una tecla? --
    El funcionamiento real interno de un programa y su interación con el usuario y el sistema operativo resulta un poco lioso, aunque por suerte no necesitamos conocerlo, de eso se encarga el SO.
    Solo para extremos frikazos: gallir.wordpress.com/2014/04/29/ ... a-letra-a/

    I7 6700K / MSI 1070 Gaming X / MSI Z170 Gaming M5 /  16GB RAM DDR4 3000Mhz / Aerocool X-Strike 800W Gold

    0
  • InmersiVer

    4 Abr 2014 11:42

    Mensajes: 225

    Ubicación: Madrid

    InmersiVer » 1 MAY 2014  4:24

    Una respuesta larga, elaborada y referenciada NoxWings que básicamente intrepreto como que es imposible definir la computación de forma breve, simple y metafórica. Ya dijo Einstein que lo dificil era explicar lo complejo de forma sencilla.

    0
  • NoxWings

    22 Mar 2014 12:26

    Mensajes: 1009

    Visores

    HTC Vive
    Valve Index
    NoxWings » 1 MAY 2014  17:10
    "InmersiVer"Una respuesta larga, elaborada y referenciada NoxWings que básicamente intrepreto como que es imposible definir la computación de forma breve, simple y metafórica. Ya dijo Einstein que lo dificil era explicar lo complejo de forma sencilla.

     

    Hombre, estamos hablando de que todo eso expandido da para el estudio de más de una ingeniería (como poco electrónica a informática). Eso es lo mínimo para poder entender un poco en perspectiva la complejidad de a lo que hemos llegado de no tener nada.

     

    En cuanto a la pregunta sobre si alguien con las materias primas necesarias podría abarcar el conocimiento para crear un ordenador actual. Mi respuesta es que creo que no, no en una vida ni en varias. No solo trendria que conocer perfectamente la arquitectura si no los procesos de fabricación y como solventar una inmensa cantidad de problemas derivados. A parte de todo eso quizás podria realizar un buen nucleo de un SO pero terminarlo con soporte para aceleración hardware, apis para los gráficos etc en absoluto. No hay tiempo físico suficiente para que una sola persona acumule tal cantidad de conocimientos a un nivel de detalle tan extremo, y mucho menos llegar a realizarlo.

    I7 6700K / MSI 1070 Gaming X / MSI Z170 Gaming M5 /  16GB RAM DDR4 3000Mhz / Aerocool X-Strike 800W Gold

    0
  • InmersiVer

    4 Abr 2014 11:42

    Mensajes: 225

    Ubicación: Madrid

    InmersiVer » 2 MAY 2014  12:52

    Nox, si estás en lo cierto habrá que resignarse Supongo que la sabiduría grupal está por encima de la individual siempre. Qué tiempos newtonianos aquellos en los que todo el conocimiento teórico podía abarcarse por una sola persona... Reformulo mi pregunta pues, ¿cuál es la especialidad dentro de la computación más interesante e ilustrativa que sí se pueda abarcar en todo su contenido por un sólo individuo? Sé que dependerá de gustos así que una lista de las ramas principales no estaría mal, con el requisito de que esas ramas sean lo suficientemente pequeñas para entrar en un cerebro medio.

    0
  • Leandroar13

    26 Jul 2013 19:33

    Mensajes: 35

    Ubicación: Entre Ríos - Argentina

    Leandroar13 » 19 JUN 2014  21:54

    Si entiendes ingles creo que estos dos libros podrían interesarte:

     

    - El primero se llama "But How Do It Know. The basic principles of computers"
    http://www.buthowdoitknow.com/
    Este libro yo lo leí, se pude comprar mediante Amazon y también esta en Google Play.
    Es bastante fácil de entender.

     

    - El segundo se llama "From NAND to Tetris - Building a Modern Computer From First Principles"
    http://www.nand2tetris.org/
    Este libro esta diseñado mas como un curso, donde nosotros tenemos que ir "armado" una computadora paso por paso (para ello se utilizan simuladores), el libro/curso es gratuito, yo empece a leerlo pero lo deje porque me resulto muy complicado, cuando tenga tiempo y energías lo intentaré nuevamente.

     

     

     

     

    Para entender como funcionan las computadoras yo también busque videos sobre compuertas lógicas (logic gates en ingles).

    0
  • Faldo

    19 May 2013 14:59

    Mensajes: 1072

    Ubicación: Madrid

    Visores

    HTC Vive
    Faldo » 24 JUN 2014  18:06

    Con una imagen se entiende todo mucho mejor.

     

    Esto es un circuito integrado con sus conexiones, hilos de cobre de algunos mm de grosor, etc.

     

     

    Esto es una CPU de intel con nucleo Sandy Bridge que te puedes comprar en cualquier sitio.

     

     

    Le quitamos la caperuza y nos queda esto.

     

     

    Si hacemos zoom al nucleo la parte morada veremos esto.

     

     

    O aquí dibujado en la parte que ocupa del núcleo.

     

     

    Y que es eso? pues un circuito integrado infinitamente mas complejo que el de la primera foto pero con hilos de silicio, no de cobre y de 32 nanometros de grosor, formando 995 millones de transistores.

     

    Parece de marcianos, pero ten en cuenta que se basan en arquitectura que se llevan usando desde hace mucho tiempo, lo que pasa es que la van mejorando, añadiendo cosas (Cores, o una GPU gráfica) y mejorando el proceso de fabricación para cada vez hacer los hilos de silicio mas pequeños, asi pudiendo meter mas transistores y que funcionen a mas Ghz ya que si son mas pequeños los hilos soportan mas temperatura ya que tienen mas espacio para expandirse.

     

    Para que veas la diferencia en complejidad, este es un 386 con 300.000 transistores de finales de los 90. No se que tecnología usaban pero los posteriores Pentium eran de 8 micras (8000 nm). Los I5 o I7 Sandy Bridge que te he comentado son de 32nm

     

    0
  • Leandroar13

    26 Jul 2013 19:33

    Mensajes: 35

    Ubicación: Entre Ríos - Argentina

    Leandroar13 » 24 JUN 2014  19:51

    Tratar de entender como funciona una computadora mirando las imágenes que compartió Faldo es como tratar de entender como funciona el cerebro mirando fotos de neuronas... jaja
    De lo que leí la impresión que me quedo es que "la magia" de una computadora realmente es la velocidad a la que procesa información, (y supongo que también la miniaturización que posibilita hacer cosas complejas sin ocupar mucho espacio), en una parte del libro But How Do It Know decía que TODO lo que hace una computadora se podía resumir en funciones como AND, OR, NOT, invertir los 0 y 1 y esas cosas o sea hacer operaciones con 0 y 1 en sistema binario, además todo esto estaba sincronizado gracias al reloj interno.
    Con respecto al nuestro cerebro si lo comparásemos con una computadora yo me imagino que es como una computadora que esta procesando información "en vivo" continuamente y consumiendo muy poca energía, ahora que lo veo escrito me parece obvio pero me gusta imaginar que es así como funciona. También leí, no recuerdo bien donde, que el inventor de las hojas de calculo como Excel al imaginar como funcionaría le parecía algo demasiado complejo como para funcionar de forma normal y fluida, es decir que su intuición no le permitía imaginar el proceso de funcionamiento, algo parecido dicen que hacía Einstein para imaginar situaciones límite como viajar a la velocidad de la luz, etc. ¿De qué forma podemos imaginar como se transmite la luz o el sonido? son cosas muy veloces.

    0
  • Faldo

    19 May 2013 14:59

    Mensajes: 1072

    Ubicación: Madrid

    Visores

    HTC Vive
    Faldo » 24 JUN 2014  23:50
    "Leandroar13"Tratar de entender como funciona una computadora mirando las imágenes que compartió Faldo es como tratar de entender como funciona el cerebro mirando fotos de neuronas... jaja
    De lo que leí la impresión que me quedo es que "la magia" de una computadora realmente es la velocidad a la que procesa información, (y supongo que también la miniaturización que posibilita hacer cosas complejas sin ocupar mucho espacio), en una parte del libro But How Do It Know decía que TODO lo que hace una computadora se podía resumir en funciones como AND, OR, NOT, invertir los 0 y 1 y esas cosas o sea hacer operaciones con 0 y 1 en sistema binario, además todo esto estaba sincronizado gracias al reloj interno.
    Con respecto al nuestro cerebro si lo comparásemos con una computadora yo me imagino que es como una computadora que esta procesando información "en vivo" continuamente y consumiendo muy poca energía, ahora que lo veo escrito me parece obvio pero me gusta imaginar que es así como funciona. También leí, no recuerdo bien donde, que el inventor de las hojas de calculo como Excel al imaginar como funcionaría le parecía algo demasiado complejo como para funcionar de forma normal y fluida, es decir que su intuición no le permitía imaginar el proceso de funcionamiento, algo parecido dicen que hacía Einstein para imaginar situaciones límite como viajar a la velocidad de la luz, etc. ¿De qué forma podemos imaginar como se transmite la luz o el sonido? son cosas muy veloces.

     

    Bueno, con lo que se había puesto asta ahora se puede mas o menos entender lo que es una operación lógica y un transistor que la produce. La combinación de estos se hacen para hacer operaciones matemáticas, cuantos mas transistores mas operaciones se hacen. También estos funcionan por frecuencias (Hz) como el corazón, que al final es voltaje pasando por ellos, cuanto mas pulsos también hace mas operaciones.

     

    Pues en las fotos que he puesto hay 995 millones de ellos. El diseño del circuito no se hace a mano si no se usa software especial y grupos de investigación. La fabricación se hace con haces de luz precisos enfocados en obleas que eliminan la parte de silicio para dar forma al circuito.

     

     

    Luego se cortan y se ensamblan en el chib. Todo con robots y en entornos muy controlados.

     

    La CPU es un recurso que usa el SO y las aplicaciones para cuando actuamos con ellas puedan dar un resultado. Todo se basa en 1 y 0 y depende de como lleguen CPU hace una operación o otra o envía la información a la GPU para que la procese, etc.

     

    Hacerte una idea de como funciona un PC, es relativamente facil. Parece todo muy complejo, pero nadie es experto en todo, algunos son expertos en microchibs, otros en programar, etc.

     

    El trabajo de muchos obra estos milagros.

    0
  • Leandroar13

    26 Jul 2013 19:33

    Mensajes: 35

    Ubicación: Entre Ríos - Argentina

    Leandroar13 » 25 JUN 2014  2:33

    Espero que lo que dije no haya sonado muy rudo, están muy buenas esas imágenes gracias por compartirlas, siempre me llamó la atención esas cosas (circuitos, etc.) ahora me acordé de cuando era mas joven que miraba los cartuchos de videojuegos de Family (así las conocíamos aquí) y me preguntaba como un pedazo de metal y plástico podía contener gráficos, a Mario y a su mundo...

     

    Ahora parece que HP quiere reinventar la PC con un proyecto que ellos laman "The Machine", a mi no me parece muy innovadora HP pero quien sabe... quizás si sea algo importante.

     

    0
  • Heisenberg

    2 Jul 2014 12:50

    Mensajes: 15

    Heisenberg » 4 JUL 2014  12:49

    No debes de pensar en global como algo "magico", sino que cada cosa tiene una función concreta.

     

    Los elementos conductores y semiconductores como fusibles, transistores, bovinas, mosfet... que nos encontramos en una Placa Base se encargan de llevar la corriente continua por pistas en las que digamos hay "aduanas" que se encargan de que pase un voltaje o un amperaje determinado; estos circuitos son diseñados por ingenieros para que sean perfectos, es decir todo cumple una función especifica. Ese voltaje y amperaje determinado es el que luego alimenta a la CPU, southbridge, northbridge, GPU,circuitos integrados, HDD, RAM... cada uno también con su función especifica : procesar datos, coordinar los diferentes dispositivos de entrada y salida, procesar graficos, almacenar datos...

     

    Todos esos componentes con funciones especificas trabajan juntos para convertirse en una máquina perfecta

    0

Usuarios navegando por este foro:

1 Anónimo