¿Los comandos y valores del procesador tienen códigos binarios?

0

Estoy trabajando en una computadora diy y me cuesta entender cómo los procesadores manejan la información. Me gustaría que mi computadora diy pudiera hacer lo mínimo, por ejemplo, calculadora, texto de salida. Pero como solo usaré comandos en binario, ¿tengo que crear mi propia sintaxis para el manejo de comandos? Tales como: Datos (algunos dígitos binarios), dirección (dirección en binario), cómo manejar la información (código binario para un comando)

No soy un experto en informática, pero, según tengo entendido, cada 2 bits tiene un valor hexadecimal y todos los bits tienen un valor decimal. Entonces, si programo mi cpu diy para pensar que diga 1001 = agregar, ¿cómo podré diferenciar entre ese comando y el valor decimal?

    
pregunta finlx

2 respuestas

0

Creo que la mejor manera de empezar a pensar es en puertas lógicas que se pueden organizar para sumas, flip-flops y Básicamente todo lo que necesitas. Luego, simplemente aplique su comando binario a los pines de comando, los datos binarios a los pines de datos y tome el valor de salida de los pines de salida. Por lo tanto, puede tener 1001 en los pines de comando y 1001 en los pines de datos, lo que significa cosas diferentes, porque se aplican en diferentes ubicaciones. También puede acceder a comandos y datos en los mismos pines, pero en un momento diferente.
Si sabe cómo hacer circuitos lógicos, se le ocurre la idea, cuando hace un circuito lógico específico, claramente tiene pines que son responsables del comando, pines separados para la entrada de datos y quizás algunos otros pines. El microcontrolador interno es probablemente mucho más sofisticado, ya que no se puede hacer un circuito lógico completamente nuevo cada vez. No estoy seguro de cómo se hace esto con precisión, pero supongo que tienen un montón de bloques lógicos prefabricados que se enrutan (probablemente con transistores) dependiendo del código.
Si empiezas a pensar en la memoria y las direcciones, entonces comienza a ser más confuso, pero esencialmente se puede desglosar a nivel de puertas lógicas y tal vez algunas cosas analógicas, si es necesario (como en ADCs o algunas construcciones difíciles).

También hay FPGA, donde básicamente puedes reconstruir el circuito lógico cada vez que lo programes, aunque en su interior realmente usan las tablas de búsqueda (LUT), básicamente asignando funciones lógicas a tablas de verdad, pero es lo mismo en el fin.

Diferentes tecnologías hacen cosas diferentes en el interior, por ejemplo, FPGA no es en absoluto como microcontrolador. Pero si los rompe bloque por bloque, todos están hechos de transistores que hacen cosas. El problema es que pasaría mucho tiempo analizando el principio de funcionamiento de ellos, por lo que, básicamente, necesita ser un diseñador VLSI para saberlo todo.

    
respondido por el ScienceSamovar
2

El decimal y el hexadecimal no tienen nada que ver con eso. Estas son solo formas diferentes de expresar el mismo patrón. El% binario 1001 es hexadecimal 0x9, decimal sin signo 9 y decimal de 4 bits con signo "negativo 7". Esas son solo formas en que una persona puede escribir el número, la computadora solo ve el patrón binario.

Suponiendo que su "computadora diy" usa un Von Neumann Architecture (como la mayoría de las máquinas), con las instrucciones y los datos almacenados en la misma memoria, la única forma de distinguir entre las instrucciones y los datos es por contexto. Durante la fase de búsqueda de instrucciones, se supone que todo lo que se lee de la memoria en el puntero de instrucciones es una instrucción. Los datos inmediatos se obtienen durante una fase posterior, si corresponde. Es posible que algunas instrucciones solo requieran el código de la instrucción, mientras que otras pueden requerir bytes de datos adicionales almacenados en ubicaciones posteriores. Por lo tanto, no todas las ubicaciones de memoria contienen necesariamente una instrucción.

Una alternativa es usar Harvard Architecture , con memorias separadas para instrucciones y datos. Esto se utiliza en los chips del procesador de señal digital TMS320.

Uno de los mayores problemas que tendrá con este proyecto es que tiene que hacer todo su trabajo en su propio lenguaje de máquina personalizado, a menos que también escriba su propio ensamblador y compilador. Como dice que actualmente no sabe mucho de informática, podría ser más fácil comenzar a "retrocomputing" utilizando una arquitectura de microcontrolador más antigua que ya tiene ensambladores, compiladores y bibliotecas que puede usar.

Es posible que desee ver la arquitectura de algunos microcontroladores más antiguos, como el 6502 o Motorola 68HC11 , el Intel 8080 , y tal vez incluso el 8051 (aunque esa tiene algunas peculiaridades). También podría valer la pena buscar en opencores.org para algunas implementaciones de HDL, incluso si no está utilizando un FPGA. Se ha escrito mucho acerca de estos microcontroladores, por lo que esto debería brindar un contexto útil para comprender los problemas básicos.

    
respondido por el MarkU

Lea otras preguntas en las etiquetas