EDICIóN GENERAL
146 meneos
3146 clics
¿Cómo leen las CPU el código máquina? (6502, parte 2) [ENG]

¿Cómo leen las CPU el código máquina? (6502, parte 2) [ENG]  

Ben Eater continúa con su proyecto "Hello world" partiendo de la CPU (chip físicamente en su mano, no en un ordenador completo), un tablero de circuitos, una EEPROM, cables, y toda la documentación técnica del chip.

| etiquetas: 6502 , ben eater
SImplemente muestra como se programa en código máquina, por debajo de ensamblador. En 1984 estudiando electrónica en FP hacíamos algo parecido con el 6502 pero sin el arduino, más a pelo todavía. Había fiebre de cacharrear con los micros de 8 bits. La revista de electrónica Elektor vendia placas de circuito impreso para poner la CPU, la memoria y la VIA 6522.

¿Para que se pone el tío unos auriculares para grabar el vídeo?
#1 ¿Me equivoco o eran básicamente un KIM-1?
#1. Me acuerdo perfectamente, yo programaba 8751 (8748 con 2k de memoria) 'a pelo' en el taller.
#1 Que tiempos aquellos de la Elektor, aun tengo por ahí los cd´s recopilatorios que sacaron cuando la iban a cerrar.
Muy sencillo. El contador de programa va incrementando la dirección de memoria a la que acceder. La memoria saca por su bus de datos la instrucción correspondiente a la dirección de memoria dada por el contador de programa. Esa instrucción se introduce en el procesador para su ejecución.

Una instrucción no es más que una palabra de control que a su paso por las distintas partes del procesador activa y desactiva los interruptores que lo hacen funcionar.

Todo esto admite numerosas mejoras: predictores de saltos, prebúsqueda de instrucciones, predictores de accesos a memoria, leer más de 1 instrucción por ciclo...
#2 eso es a nivel básico, y lo sabe cualquira, pero se te olvida que hay arquitecturas que no funcionan así
#17
Lo del vídeo también lo sabe cualquiera, es aún más básico.
El meneo no trata otro tipo de arquitecturas. Von Neumann es lo que hay.
Incluso es más sencillo. Son voltios de un lado para otro. Porque lo de sacar los datos por el bus..., la gente puede que no lo entienda, pero simplemente es pasar una corrie te por un cable durante un tiempo seguido para que el procesador pueda manejar la señal y guardar la salida o llevarla a otra parte. Son como tuberías que hacen que los voltios que entran por distintas tuberías salgan por otras al final. :-D
#19 Sí, me pensaba que te referías a una de las porciones más pequeñas del CPU que de eso no me acuerdo nada. A ver, soy inculto, pero no a nivel tan básico. Estudié Fundamentos de Computadores hace muchos años (digo estudié porque no lo aprobé), y actualmente hago algunos desarrollos con lenguajes de alto nivel (Python), pero a nivel de electrónica de la CPU y de los buses estoy bastante muy pez.

Así que cuando lo has explicado algo a la memoria me ha venido y supongo que sí que uP es la…   » ver todo el comentario
#20 Todo es lo mismo al final.
Depende de como integres los diferentes elementos.

Si coges una CPU, memoria, y otros circuitos y los metes todos en el mismo circuito integrado (chip) en vez de un microprocesador tienes un microcontrolador.

Pero es lo mismo, simplemente has integrado más cosas en un mismo componente. Pero la CPU sigue siendo la misma.

A los 386, te refieres al procesador matemático FPU. Este componente permitía a la CPU librarse de hacer cálculos matemáticos por programa.
Le mandaba a la FPU los cálculos más complejos (números en coma flotante, etc.) y se quitaba trabajo de encima.
#20 el coprocesador 387?
El 486 tenia una version con el copro quitado los 486SX y los normales con copro eran 486DX.
Ahora creo que tiene integrado el controlador de memoria en la CPU.
Ahh sí el 6052, con quad core, predictive branching, 8mb de caché y un pipeline de 12 stages.
#12 Y lo más importante, sabías como funcionaba el uP, como direcionaba la memoria, como accedías a las entradas / salidas, como se calculaban las operaciones lógicas y aritméticas, etc.

Ese programa escrito en C es sumamente simple, pero se ha cambiado el punto de vista un montón. Ya no te digo si usas otros lenguajes interpretados, no tienes ni idea de lo que está haciendo el uP.

Programar en código máquina y/o assembler, aunque puede ser tedioso, te abre la mente y desmitificas un poco lo "asombroso" que es un ordenador, y al final son "cuatro registros" construidos con puertas lógicas.
(he exagerado un poco pero para que se me entienda)
#15 El uP es la unidad de proceso? Sorry, no tengo ni idea de la electrónica básica del ordenador.
#18 El microprocesador (o procesador a secas), efectivamente es la CPU. En español Unidad Central de Proceso es el alma del ordenador.
Este componente precisa de memoria externa donde se colocarán los datos y programas.
Además también habrán circuitos de entrada / salida para comunicarse con el exterior (teclado, monitor, impresora, etc.)

Un ordenador groso modo es eso
#14 puto punto.. :roll:
Ah, programando "a pelo", qué tiempos..
#6 pues mira el otro día, aceptando un reto, escribí este programa "a pelo" en assembler para la Rasp
Me hizo rememorar viejos tiempos :->

www.meneame.net/story/15-000-desarrolladores-responden-twitter-cual-le
#8 #11 la de líneas que tirabas para hacer cualquier cosa. Pero tenía su aquel, y tenías mucho control sobre casi todo.
#12 mucho control y mucho fallo jodido de depurar. Todavía tengo clavado un puto fallo que fuimos incapaces de detectar con un puto busca-minas en ensamblador.
#14 imagina el control de un cohete programado en ensamblador, o peor, programar un ERP en ensamblador
#8 yeah! Aún tengo que ejecutarlo
#6 Si..., que pinte un formulario en una web con control de errores a ver cuánto tarda así... :troll:
Tan hartos estamos ya de Cataluña, Franco y las elecciones que la gente ha decidido que esto llegue a portada?
#7 la fascinacion que hemos sentido muchos cacharreando con este micro es algo que ya no se ve en la juventud actual. Cuando yo tenia 15 años e hice mi radio galena y pude oir radio sevilla no te puedes imaginar la emocion que senti. Antes cacharreabamos, reparabamos, montabamos amplificadores carkit y teniamos un gran espiritu de investigacion con la electronica. Esto se ha perdido, a los chavales de 16 años nos les interesa coger un soldador. Es penoso ver como las tiendas de electronica ha cerrado casi todas. Enfin, es una epoca pasada.
#9 No metas a los niños de 16 años en esto. Que cierren las tiendas de electrónica son los precios de reparar vs comprar algo nuevo y mucho mejor y de gente que está entre los 40 y 70 años actualmente, que somos los que comprábamos en vez de mandar a reparar.
Gente que cacharrea las sigue habiendo, que tú lo hicieras no significa que la gente de tu alrededor lo hiciera. Igual que ahora, que la gente a la que conoces no lo haga no quiere decir que no haya gente que lo siga haciendo. Sigue…   » ver todo el comentario
#9 #13 Realmente hoy en dia las cosas podria ser mas manipulables y para las tiendas pequeñas podria ser un valor añadido respecto a los grandes almacenes, con los que no pueden competir si se venden cajas.
Si en el pasado nos tuviesemos que hacer un tornillo concreto muy poca gente podria, pero son estandar y puede encontrar un recambio.
Se podrian hacer muchas cosas facilmente programables, pero los fabricantes no quieren y hacer ingeniria inversa es casi imposible.

Tecnologia que…   » ver todo el comentario
#9 Sí y no, actualmente sale mucho más barato comprar por internet, mucho más cómodo y lo mejor de todo es que además vas a encontrar cualquier componente por raro que este sea.

Yo por ejemplo suelo comprar en Mouser, que además de vender al por menor también son distribuidores, en EEUUU además de Mouser también tienes DigiKey, Arrow, Farnell y Avnet emea y aquí en Europa las divisiones Europeas de Farnell y Avnet Emea, que también son distribuidores además de vender al por menor.

De todas…   » ver todo el comentario

menéame