¿Cómo es tomar 6.004 (estructuras de cómputo) en el MIT?

Se sintió como si me hubieran explicado los secretos de un mago mundialmente famoso.

Antes de tomar 6.004, vi una computadora como una caja negra que tomaba electricidad y producía magia. Desde mi educación física, entendí más o menos que había algunas cosas bastante impresionantes que podría hacer con resistencias, condensadores e inductores, pero no tenía idea de cómo podría construir una máquina programable con solo circuitos.

Bueno, resultó que primero me faltaba el componente eléctrico principal utilizado en una computadora: el transistor. Después de aprender acerca de los transistores, vimos cómo ensamblarlos en compuertas lógicas básicas que realizarían NOT, AND, OR, XOR, etc. Después de esto, ensamblamos estas compuertas en una unidad de lógica aritmética, o ALU, que podría realizar la suma, resta, multiplicación y una variedad de operaciones lógicas bit a bit. En este paso ya estaba bastante sorprendido, pero aún no habíamos terminado; un par de meses después de eso, habíamos construido suficientes piezas para construir un procesador primitivo que pudiera tomar entradas de código de máquina para operaciones de ensamblaje como ADD, JMP y POP . Algunas partes fueron extraídas para nosotros (por ejemplo, memoria), pero habíamos construido un procesador completamente funcional a partir de nada más que transistores. Para mí, esto fue increíble: pensé que el funcionamiento interno de una computadora era increíblemente complejo y algo que nunca entendería, pero pudimos cubrir suficiente material para construir un procesador completamente funcional desde cero. Ahora tenía cierta comprensión de lo que realmente estaba sucediendo a nivel eléctrico cuando mi computadora ejecutó el código que escribí, lo cual fue increíble para mí. (Nota: no construimos procesadores físicos; esto se hizo en código con un lenguaje personalizado creado para la clase).

La clase fue definitivamente una de las más difíciles que he tomado; después de todo, es bastante difícil construir un procesador a partir de circuitos. Sin embargo, casi todos los que conozco que han tomado la clase están de acuerdo en que valió la pena el esfuerzo; El material es increíblemente interesante e iluminador.

Los laboratorios fueron muy divertidos. ¡Al final de la clase, construyes un procesador RISC de 32 bits! Afortunadamente, a diferencia de la mayoría de la clase, me ocupé de mi cableado y no pasé mucho tiempo depurando. Su experiencia puede ser diferente.

Las pruebas no fueron tan buenas; Sentí que tenían poco que ver con los laboratorios. También se basan en gran medida en las preguntas de años anteriores, por lo que si hubiera memorizado las respuestas a los exámenes anteriores, lo habría hecho mucho mejor.

Deberías tomar esta clase si encuentras diversión con la electrónica digital (sí, ¡tómala para los laboratorios!) O si quieres una visión general de la arquitectura moderna de computadoras. La clase no vale la pena si ya sabes todo esto (¡y más!).

6.004 satisface un requisito de encabezado para 6-3 estudiantes y para la mayoría sin experiencia en arquitectura de computadoras, es la primera exposición de cómo el código que han escrito durante años se ejecuta en una computadora. La mayoría de los estudiantes de primer año con experiencia en programación saben que el código finalmente se compila en bits y esos bits de alguna manera ejecutan su programa, pero no saben mucho sobre el proceso.

6.004 ayuda a llenar parte de la brecha desde que presiona el botón verde brillante en Eclipse para compilar y ejecutar su programa Java de compilación AP Comp de cómo se ejecuta realmente el programa en el hardware. Obtendrá una pequeña (pero adecuada) muestra de todos los pasos relevantes.

La mayoría de los ingenieros de software en la industria actualmente codifican a un nivel de 10,000 pies y todos estos detalles se abstraen (como deberían ser). Pero si no desea ignorar por completo lo que sucede detrás de escena, 6.004 es una excelente introducción.

PD: ¡El procesador que terminas construyendo al final del curso es genial! Bueno, apesta mucho en comparación con un procesador Intel Pentium de los años 90, pero es un buen trabajo para el trabajo de un semestre.

More Interesting

¿Qué podemos hacer para reconstruir la sucursal de CSE en NIT, Jamshedpur?

Sé que las máquinas solo pueden entender 1s y 0s. ¿Alguien puede ayudar a comprender cómo se almacenan y recuperan las imágenes, los videos y todo lo demás en fracciones de segundos cuando una máquina puede entender solo 1s y 0s?

¿Se acabó la exageración en torno a la ciencia de datos / big data?

¿Por qué la PNL consume tanta memoria?

¿Cuál es el procedimiento completo de cómo un dispositivo envía datos a otro a través de una conexión wifi?

Cómo resolver mis problemas relacionados con el calentamiento de computadoras portátiles

¿Cuáles son los pros y los contras en el arranque dual de mi computadora portátil Windows de alta gama con Ubuntu 14.04 en lo que respecta al rendimiento de mi computadora portátil con Windows?

¿Por qué no hay robot chef? ¿Será posible a medida que el aprendizaje automático sea más avanzado?

¿Cuáles son los algoritmos de aprendizaje automático que se sabe que son transparentes?

En el concepto de paginación, ¿qué se compensa en la dirección lógica generada por la CPU?

¿Debo terminar una licenciatura en CS si realmente no quiero ser ingeniero de software?

¿Qué debo saber antes de intentar resolver un problema de NP completo?

¿Qué pasaría si casi cualquier persona pudiera escribir software de alta calidad?

¿Cómo podría construir una IA para reemplazar a los políticos?

¿De qué maneras puedes representar más de [matemática] 2 ^ n [/ matemática] utilizando solo [matemática] n [/ matemática] bits?