He sido un nerd informático durante muchos años. Puedo programar en bastantes idiomas e incluso puedo construirlos. El otro día me senté con un amigo y pregunté cómo una computadora realmente toma electricidad y hace algo con ella, y simplemente no pudimos resolverlo, y Google tampoco fue de mucha ayuda.
Quiero decir, ¿cómo toma una computadora un flujo constante de electricidad y lo convierte en 1 y 0 y luego hace algo con esos 1 y 0 como encender una luz durante 15 segundos?
Entiendo las puertas (AND, OR, NOR, NAND, NOT) y un poco sobre diodos , resistencias y transistores , ¡pero pensé que este sería el lugar perfecto para que lo explicaran en términos verdaderos!
¿Alguien puede señalarme en la dirección correcta o darme una breve explicación?
Respuestas:
Esta es una pregunta amplia que no tiene una respuesta fácil; Hay un largo camino desde los electrones que se deslizan por los cables de cobre hasta la representación de un sitio web en Firefox. Intentaré darle una visión general de abajo hacia arriba y señalarle las cosas correctas para buscar.
Números de codificación
La motivación básica es calcular cosas, como hacer aritmética¹. Lo primero a tener en cuenta es cómo representar números. Ha habido muchos enfoques, utilizando decimales o ternarios y creo que incluso los sistemas octales, pero al final, el binario ganó. Ahora sabemos que tenemos que construir dispositivos que manejen dos valores, llamémoslos y .10 0 1
Tenga en cuenta que también hay múltiples formas de codificar números en binario. Después de construir su primer procesador, se da cuenta de las ventajas de hacer las cosas de cierta manera. Ejemplos populares son los flotadores de dos complementos y IEEE . Para empezar, limítese a números naturales simples.
Puertas
Supongamos que usamos codificación binaria. Piensa en cómo aprendiste a sumar en la escuela primaria y escribe lo mismo para los números binarios. Resulta que los componentes básicos del álgebra booleana ya están allí para ti; Es fácil construir un sumador básico (y otras funciones aritméticas) utilizando puertas lógicas .
Cómo construir tales puertas está fuera del alcance de la informática; La ingeniería eléctrica ha proporcionado múltiples soluciones utilizando, por ejemplo, tubos o transistores . Dirígete a Electrical Engineering Stack Exchange para preguntas sobre esto.
Reloj y estado
No todas las puertas son igualmente rápidas y no todas las partes de un cálculo tienen el mismo número de puertas. Por lo tanto, debemos tener especial cuidado de que las operaciones individuales no se superen entre sí. Ha demostrado ser útil usar un reloj global ; El resultado de una red de compuertas dada es el estado de los cables de salida al final del ciclo (que puede cambiar enormemente mientras las compuertas caen en cascada hacia sus estados finales individuales).
Eso significa que los resultados de un ciclo pueden tener que almacenarse hasta que comience el siguiente ciclo, por ejemplo, si conecta los bucles. Hay una serie de elementos básicos que puede utilizar para variar el efecto, todos se acumulan a partir de puertas; algunos se llaman chanclas . Esos también se utilizan para crear registros , elementos que almacenan números para tantos ciclos de reloj como sea necesario.
Arquitectura y comandos
Ahora tiene una gran cantidad de opciones de diseño para hacer. ¿Qué operaciones aritméticas proporciona su procesador? ¿Cómo son tus comandos? Puede ser educativo mirar la arquitectura MIPS cuyas primeras formas son fáciles en comparación con otros diseños. Echa un vistazo a los planes :
Original de http://ube.ege.edu.tr/~erciyes/CENG311
Esencialmente, es buscar y desmontar comandos, un conjunto de registros, una ALU y control. Los comandos codifican qué operación ALU realizar en qué operandos (por el número del registro en el que se encuentran), cómo manipular el contador del programa² o qué registro cargar / almacenar desde / a la memoria³.
Consideraciones adicionales
Ahora tiene un procesador en funcionamiento en el sentido moderno, suponiendo que descubrió cómo construir una memoria y una forma de alimentar los comandos. En su camino hacia una máquina moderna, se deben tomar muchas decisiones. Aquí están algunos:
Alternativas
Lo anterior está fuertemente influenciado por cómo resultó la historia. En un mundo diferente con diferentes mentes, las computadoras pueden funcionar de manera diferente. De hecho, hay muchos modelos de computación , algunos de los cuales tienen ventajas que los hacen útiles como abstracción para máquinas reales en muchos casos. También hay intentos de imitar la forma en que funcionan nuestros cerebros, es decir, permitir la informática neuronal , o más generalmente, explotar las estrategias de resolución de problemas y almacenamiento de información observadas en la naturaleza , principalmente el ADN y la computación cuántica .
Entonces, tal vez (¿con suerte?) La información anterior es toda la historia antigua dentro de otros 50 o 100 años.
fuente
La imagen completa es bastante complicada. Hay muchas capas construidas una encima de la otra que implementan colectivamente abstracciones de alto nivel además de voltajes eléctricos. No existe una explicación simple de cómo se arma todo, especialmente considerando que el hardware y el software de la computadora ha evolucionado dramáticamente en los últimos cincuenta años.
Si está interesado en ver cómo se arma todo, puede consultar The Elements of Computing Systems , un libro que comienza con puertas NAND y desarrolla progresivamente una implementación funcional de Tetris sobre un compilador y un sistema operativo que tú también construyes. Cada pieza de la computadora está construida sobre la anterior, lo que podría ayudarlo a ver cómo funciona todo.
fuente
El podcast Security Now! Hicimos una serie sobre cómo funcionan las computadoras, comenzando con los principios básicos.
Las brechas en los números se deben a que cada otro episodio es un episodio de Comentarios de oyentes, por lo que es posible que también desee verlos. También entre 241 y 247 hicieron algunos episodios sobre SSL debido a las noticias de última hora en ese momento sobre los países que obligaban a CA a darles certificados raíz.
También EP. 248 es el "Asesino de perros portátil" que no mata perros, sino un arma de haz sónico que Steve hizo solo cuando era niño para ayudar a enseñar a un perro vecino a no correr hasta la línea de la cerca e intentar atacar a las personas en la acera .
fuente
Una computadora funciona manipulando los gradientes de energía (que luego interpretamos como 1 y 0) de una manera consistente y definida . Es la consistencia que define una computadora, mientras que es la definición que separa los diferentes procesadores.
Además, aprenda cómo solo dos puertas lógicas (OR y AND) son bloques de construcción suficientes para construir cualquier computadora de propósito general. Ver también, Danny Hillis y la computadora Tinkertoy.
fuente
Una computadora es un gran sistema lógico sincrónico , lo que significa que
Tiene circuitos especializados para retener información mientras la computadora esté encendida (RAM, en grandes cantidades). Tiene circuitos especializados para realizar aritmética binaria (en realidad, los bits se manejan en grupos, generalmente en múltiplos de 8, que colectivamente representan un número entero). Y tiene capacidades de enrutamiento especializadas basadas en direcciones de memoria, que no son más que enteros.
Por último, pero no menos importante, una computadora moderna tiene un programa también almacenado en la RAM, que es una lista de instrucciones codificadas como números enteros, que se ejecuta de forma secuencial, generalmente recuperando datos de la memoria, realizando algunos cálculos y enviando los resultados a la memoria.
En su escenario, uno podría pensar en una implementación donde el tiempo transcurrido se almacena en algún lugar de la RAM y el programa le indica a
Tenga en cuenta que todos estos elementos hoy en día logran un alto grado de sofisticación, y cada oración en esta breve descripción merece varios libros de explicaciones.
fuente
Hay varias formas de hacer una función de retraso o convertir los datos binarios a datos decimales o intensidad de la señal. Cuando ingresa el valor "15", la computadora muestra una imagen de mapa de bits del número 15 en la pantalla. Este es en realidad el valor binario, en este momento el código binario de su teclado también se envía a la CPU. Analizará los datos y luego cambiará el código a la unidad de procesamiento ALU (unidad lógica aritmética) para convertirlo en un pulso a chip DAC. La señal analógica ahora está controlando la frecuencia (la frecuencia de khz a hz) de un circuito flip-flop. Ahora la salida de frecuencia se dirigirá a la RAM, y la CPU leerá la RAM para que coincida si los datos son "1111". Eso son 4 segundos.
fuente