Mapa del procesador al diagrama del circuito

11

Soy un desarrollador de software (que usa lenguajes de alto nivel como .NET, C, C ++, etc.) tratando de entender cómo funcionan las computadoras en un nivel inferior.

Estoy familiarizado con este diagrama:

Estoy tratando de obtener una visión de alto nivel sobre cómo el diagrama en el enlace se asigna a un diagrama de circuito como este:

Por ejemplo, eche un vistazo a la declaración del lenguaje ensamblador:

ADD 1,2

Estoy tratando de entender cómo el procesador produce '3' como salida. Me doy cuenta de que esta pregunta puede ser difícil de responder en términos simples. Si es así, entonces un enlace ayudaría, tal vez a un libro.

w0051977
fuente
Con referencia al primer diagrama que publicó, los detalles que necesita de la aritmética real están ocultos en el gran bloque etiquetado "ALU": todos los demás bloques en ese diagrama están ahí para obtener 1,2 y "agregar" en la ALU y el resultado nuevamente. Sabiendo eso, puedes comenzar a leer cómo funciona la ALU, si eso era lo que estabas preguntando ...
Brian Drummond
55
Su primer diagrama se asigna a la CPU Z80 en el segundo diagrama.
Starblue

Respuestas:

7

El problema es que para comprender cómo la computadora llega a 1 + 2 = 3, debe comprender unos 2 niveles más profundos de lo que ha ido.

Aproximadamente una computadora está organizada (en términos de campos de estudio) como esta desde el más alto nivel de abstracción hasta la realidad más física:

  1. Software de la aplicacion
  2. Máquina virtual
  3. Sistema operativo
  4. BIOS
  5. Sistemas embebidos
  6. Bloques IP (subunidades / periféricos)
  7. Bloques lógicos
  8. Nivel de puerta
  9. Nivel de transistor
  10. Semiconductores
  11. Device Physics

Para comprender adecuadamente por qué la computadora puede producir 2 + 1 = 3, primero debe decidir qué está dispuesto a aceptar "por fe" y lo que no creerá hasta que lo internalice. Esa información estará en el nivel dos debajo de lo que entiendes. Entonces, si desea comprender un circuito sumador en el nivel lógico, necesitará comprender los conceptos básicos de los transistores "digitales" (específicamente CMOS).

Usando su sitio anterior como ejemplo, considere este recurso . Analiza el "sumador completo", el circuito mínimo de uso general capaz de sumar / restar, incluido el transporte y la extracción.

También deberá comprender cómo se representan los números en el complemento a 2 (el sistema de números utilizado en las computadoras modernas para la aritmética de enteros).

Si realmente quieres un curso introductorio de clase mundial, no puedo recomendar al profesor Scott Wills en Georgia Tech lo suficiente. Falleció el año pasado de cáncer, pero su curso continúa . La clase Georgia Tech ECE2030 (introducción a la ingeniería informática) tiene su libro de texto y ejercicios en línea.

¡Buena suerte!

DrFriedParts
fuente
Gracias por esto. +1. Soy un desarrollador de .NET, aunque tengo experiencia con C y C ++. Entiendo que C # se compila en lenguaje intermedio y el compilador JIT apunta a la arquitectura de la computadora compilando el código IL sobre la marcha. Estoy tratando de entender cómo un microcontrolador puede recibir un operando y un código de operación y producir una salida. Tengo conocimientos (nivel GCSE) sobre componentes electrónicos como: transistores, condensadores, etc.
w0051977
... entonces comenzaría con "Cambiar diseño" en las Lecturas y continuaría con las lecciones a partir de ahí.
DrFriedParts
Su lista de temas logra incluir varios que son irrelevantes para la pregunta, mientras omite los que son más relevantes.
Chris Stratton
@ Chris - No, no lo hace.
DrFriedParts
3

Tuve que aprender lo mismo en la universidad, y utilizamos el libro Computer Organization and Design que era muy detallado (pero tal vez es demasiado detallado para sus necesidades).

Patterson y Hennesy usaron un procesador MIPS "simple" y mostraron toda la función de la CPU con algún código de muestra en Assembler.

En general, creo que sería una buena idea tomar un procesador "simple" (Arduino más o menos) y tratar de comprender la función, porque las diferencias de eso a las más complejas están más en qué tan grandes son los códigos de instrucciones implementados.

PD: Quizás sea ​​útil el microprocesador elemental de Google Code. Es un microprocesador simulado en Java.

Thomas Fischer
fuente
2

El libro gratuito Cómo funcionan las computadoras: procesador y memoria principal de Roger Young responderá a su pregunta, utiliza relés en lugar de transistores para una mejor comprensión.

rvnd_kk
fuente
2
Si bien ese libro parece útil, edite la respuesta para incluir el título completo y la información del autor. De esa manera, si el enlace cambia, aún puede ser posible rastrearlo en el futuro.
PeterJ
Esto se parece a lo que estaba buscando en ese momento. +1. Echaré un vistazo y luego volveré.
w0051977
-1

Encontré mi respuesta aquí . Es una descripción general de alto nivel del proceso de sumar números.

w0051977
fuente
44
Es más útil para futuros lectores si resume el material en la respuesta. Simplemente dar un enlace a un recurso externo no agrega mucho a EESE.
The Photon
Tenga en cuenta lo que @ThePhoton está diciendo aquí. Si bien ese video de YouTube puede ayudarlo, ¿puede resumir lo que aprendió para que, si ese enlace de video se rompe, siga siendo una respuesta?
Kortuk