La electrónica involucrada en la obtención de instrucciones [cerrado]

0

Me gustaría saber cómo funciona el ciclo de instrucción a nivel electrónico. Soy nuevo en electrónica.

Para limitar el alcance de esta pregunta, me estoy enfocando en el primer paso del ciclo, "búsqueda de instrucciones". Entiendo las descripciones de alto nivel como en Wikipedia (a continuación), por lo que aquí me pregunto los detalles de los componentes electrónicos involucrados.

Específicamente, me pregunto cómo cuántas chanclas, puertas, autobuses, cualquier otra cosa involucrada, y qué está conectado a qué (en un nivel alto). Soy nuevo en electrónica, por lo que no estoy muy familiarizado con todos los componentes involucrados, por lo que no sé cómo explicar los detalles que espero. Supongo que básicamente a la tensión. Si hay algún transistor. Si hay imanes, ópticas, etc.

Por ejemplo, "Hay x número de flip-flops, cada uno conectado a un bus de datos central hecho de s, que está conectado a x. Los electrones fluyen desde y al bus de datos central en un cable (típicamente hecho fuera del cobre) a los flip flops, que es el inicio del proceso de búsqueda de instrucciones. Esto luego activa el proceso w en el componente eléctrico t que induce un cambio de voltaje para causar una secuencia de cambios de voltaje para luego enviar la "información" resultante ( Los electrones enviados en paquetes que pasan a través del bus en los cables de cobre al [flip-flop [punto de entrada] para ser almacenados en una diferencia de voltaje) se envían de vuelta al ... "Como puede ver, no tengo idea de lo que soy hablando, pero esa es una especie de idea del nivel de detalle que estoy buscando. No es necesario describir todo el proceso, solo se busca una introducción a las piezas involucradas. Intentando hacer la conexión desde la descripción del nivel de Wikipedia hasta el nivel de voltajes, materiales (silicio / imanes / etc.) Y componentes (transistores, flip-flops).

Muchas gracias por tu ayuda.

  

(1) El paso de búsqueda es el mismo para cada instrucción:

     
  1. La CPU envía el contenido de la PC al MAR y envía un comando de lectura en el bus de direcciones
  2.   
  3. En respuesta al comando de lectura (con la dirección igual a PC), la memoria devuelve los datos almacenados en la ubicación de memoria indicada por PC en el bus de datos
  4.   
  5. La CPU copia los datos del bus de datos en su MDR (también conocido como MBR, consulte la sección Componentes arriba)   Una fracción de segundo después, la CPU copia los datos del MDR al registro de instrucciones para la decodificación de instrucciones
  6.   
  7. El PC se incrementa de modo que apunta a la siguiente instrucción. Este paso prepara la CPU para el próximo ciclo.
  8.   
  9. La unidad de control obtiene la dirección de la instrucción de la unidad de memoria.
  10.   
    
pregunta Lance Pollard

2 respuestas

7

Si desea establecer una conexión entre el código de software y los electrones, debe comenzar con los conceptos básicos de la lógica digital.

Primero, no hay "electrones" en el diseño digital, los electrones se abstraen a "niveles de voltaje" en algunos cables o "nodos" como se los llama. Además, los "niveles de voltaje" se reducen / abstraen aún más a solo dos niveles, "ALTO" y "BAJO", que están separados por algún umbral, por lo que los niveles que pueden ser "registrados" por "flip-flop" son solo ALTOS o BAJO, que representa lógico "VERDADERO" (o "1") y "FALSO (o" 0 "). Y nada en el medio. Por lo tanto, todas las señales en un diseño digital están asumiendo valores" 1 "o" 0 ", en cada Conexión de cable. A partir de este punto, debe olvidarse de "electrones" o "diferencias de voltaje".

Luego debe comprender cómo funcionan los elementos lógicos digitales básicos.

Hay elementos LÓGICOS combinatorios que toman dos o más entradas y generan un resultado simple de acuerdo con su TABLA DE VERDAD. ¿Cómo lo hacen? No debería preocuparte a este nivel, los electrones se extraen y un grupo de transistores cuidadosamente interconectados hacen el trabajo. Estos elementos básicos son NORs, NANDs, etc. Y "decodificadores" / "codificadores".

Hay "elementos de memoria" como flip-flops, que pueden "recordar" el estado del valor lógico de entrada después de un evento de "reloj", generalmente una transición de alguna señal lógica de baja a alta, o de alta a baja. El valor de entrada está "bloqueado" ahora. Un grupo de cierto número de FFs constituye un "registro". Si el reloj no cambia, el FF recordará el estado lógico.

Hay elementos que pueden pasar una señal de datos si está habilitado por alguna otra señal, o bloquear la propagación de la señal si está deshabilitado. Estos elementos se denominan "mulitpexors" (o "MUXes") o "controladores de bus bidireccionales". Se utilizan para dirigir flujos de datos (conexiones de cable) entre diferentes "unidades" o "registros", para desconectar unidades lógicas de los buses de datos y / o conectar el bus a otro destino o fuente de datos.

Una vez que domine la comprensión de la funcionalidad de estos elementos básicos, puede comenzar a pensar en cómo se pueden almacenar los datos en matrices de registros, cómo abordar los registros individuales (o "ubicaciones de memoria") y obtener los datos almacenados en un autobús. Luego, "obtener" una instrucción u operando sería abordar la ubicación de la memoria mediante un conjunto de cables, forzar a la memoria a generar los datos que contiene, dirigir / habilitar el bus de cables de datos al destino deseado (como entrada al decodificador), y Pica estos datos para decodificarlos. Esto se hace mediante un secuenciador cuidadosamente diseñado o "Unidad de control" de su pregunta anterior.

Cuando algún texto explicativo dice "envía un comando" o "la memoria devuelve" algo, significa que algún bloque digital habilita distintos niveles de voltaje en un montón de cables, y otro bloque (como celda de memoria / registro) afirma su contenido en otro bus (manojo de cables para datos). Una "jerga" de las copias de la CPU significa que estos valores de datos instantáneos se guardaron en un registro dedicado (un grupo separado de FF) en el momento adecuado, y permanecen allí mientras el bus de datos se puede conectar a otra ubicación de memoria u otra fuente / operando. Los electrones aquí son necesarios solo para recordar que las señales se propagan a una velocidad finita, y debe haber algún tiempo para que los niveles se establezcan en niveles digitales robustos antes de bloquear los datos.

Todo esto está escrito en cientos de libros, así que espero que no se burlen de la gente que está aquí y pida que explique toda la electrónica digital en la página. Pero lo intenté.

    
respondido por el Ale..chenski
1

Al mismo tiempo, dirigido para automatizar algunas pruebas de temperatura y el registro de datos de frecuencia de barrido recopilados sobre esas temperaturas, y negó el uso de MC6800 IC, diseñé algunas máquinas de estado (muy lentas).

La memoria era MonolithicMemories 256 palabras de 8 bits. Si el MSB era un 1, se trataba de una nueva dirección de Jump to a EvenNumber para el contador del programa, ese salto se realizó simplemente cargando los 7LSB en los 7 MSB del contador del programa de 8 bits.

Al presionar dos veces el contador del programa, en función de algunos códigos de condición (como el retardo de ajuste térmico de 90 segundos que aún no está completo), tuvimos instrucciones Increment_and_Skip, como las minicomputadoras DataGeneral Nova1200 utilizadas.

La máquina de estado de secuenciación térmica no necesitaba matemáticas.

El registrador de datos usó un sumador (4 + 4 bits, 8 bits de ancho) para convertir los códigos BCD en códigos numéricos ASCII.

¿Cómo se hizo todo esto? sentándome tranquilamente, pensando en los comportamientos que necesitaba implementar, y luego usando el libro de datos TTL 1974 para proporcionar detalles de pinout de los ICs (casi todos eran 14/16 pines, excepto el MM PROM.

¿Cómo fue concebido todo esto? Al leer las hojas de datos de Signetics en sus PROMS, que se utilizarán en microcodificación, en los días universitarios.

    
respondido por el analogsystemsrf

Lea otras preguntas en las etiquetas