Asignar procesador a diagrama de circuito

Soy un desarrollador de software (usando lenguajes de alto nivel como .NET, C, C++, etc.) tratando de entender cómo funcionan las computadoras a un nivel más bajo.

Estoy familiarizado con este diagrama:

Estoy tratando de obtener una visión de alto nivel de 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 en 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.

Con referencia al primer diagrama que publicó, los detalles que necesita de la aritmética real están todos ocultos en el bloque grande etiquetado como "ALU": cada otro bloque en ese diagrama está ahí para obtener 1,2 y "agregar" en la ALU y el resultado sale de nuevo. Sabiendo eso, puedes empezar a leer cómo funciona la ALU, si eso era lo que estabas preguntando...
Su primer diagrama se asigna a la CPU Z80 en el segundo diagrama.

Respuestas (4)

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

Aproximadamente , una computadora está organizada (en términos de campos de estudio) así desde el nivel más alto 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 transistores
  10. semiconductores
  11. Física de dispositivos

Para comprender correctamente por qué la computadora puede producir 2+1 = 3, primero debe decidir qué está dispuesto a aceptar "por fe" y qué no creerá hasta que lo interiorice. 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, deberá 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 propósito general capaz de sumar/restar, incluido el acarreo y el acarreo.

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

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

¡Buena suerte!

Gracias por esto. +1. Soy desarrollador .NET, aunque tengo experiencia con C y C++. Entiendo que C# está compilado en lenguaje intermedio y el compilador JIT apunta a la arquitectura de la computadora al compilar 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.
... entonces comenzaría con "Diseño de interruptores" en las Lecturas y continuaría con las lecciones a partir de ahí.
Su lista de temas logra incluir varios que son irrelevantes para la pregunta, mientras se salta los que son más relevantes.
@Chris - No, no lo hace.

Tuve que aprender lo mismo en la universidad, y usamos el libro Organización y diseño de computadoras que era muy detallado (pero tal vez sea demasiado detallado para tus necesidades).

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

En general, creo que sería una gran idea tomar un procesador "simple" (Arduino o algo así) y tratar de entender allí la función, porque las diferencias entre ese y el más complejo están más en qué tan grandes son los códigos de instrucción implementados.

PD Tal vez el microprocesador elemental de Google Code sería útil. Es un microprocesador simulado en Java.

El libro gratuito How Computers Work - Processor and Main Memory de Roger Young responderá a su pregunta, utiliza relés en lugar de transistores para una mejor comprensión.

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 alguna vez, aún será posible rastrearlo en el futuro.
Esto se parece a lo que estaba buscando en ese momento. +1. Echaré un vistazo y luego volveré.

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

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 EE.SE.
Tenga en cuenta lo que dice @ThePhoton aquí. Aunque ese video de YouTube puede ayudarlo, ¿puede resumir lo que aprendió para que si el enlace del video se rompe, esta siga siendo una respuesta?