Me parece que el MSX2 es de los que se lian con este tema, porque si bien el procesador es de 8 bits, tiene cosas extras que son mas de 16 bits. Algo así he visto por ahí.
Me parece que el MSX2 es de los que se lian con este tema, porque si bien el procesador es de 8 bits, tiene cosas extras que son mas de 16 bits. Algo así he visto por ahí.
Te diría lo que me suele decir Syto en estas ocasiones: estás mezclando hechos con opiniones... Pero como estamos hablando de la subjetividad del tema, no da a lugar
Al final es cierto que toda esta batalla no importa Lo que importa es que el procesador sea capaz de ejecutar lo que se le pide de forma eficiente, y que el programador sea lo suficientemente listo para adaptarse.
Esto es como la discusión que tiene Chipan en el hilo del Mac con los procesadores ARM. No es cuestión de si tiene más o menos bits, o si tiene más o menos instrucciones, sino cuántos ciclos de reloj emplea para hacer una tarea.
A ver, es importante que el bus de datos sea del mismo tamaño que el de direcciones, para no tener que tardar dos ciclos en operar con direcciones, pero en el vídeo que se ha puesto antes ya se dice que con 64 bits se tiene suficiente para representar cualquier valor, con una precisión que ni los cálculos de los físicos notarían la diferencia, así que cualquier dato de más de 64bits es innecesario (hasta que los 16HB se nos queden pequeños ).
Es interesante que con 32b se pueden hacer dos operaciones de 16b a la vez, u obtener ambos operandos de una suma, o ampliar el número de operaciones diferentes que puede realizar la CPU... pero es lo que dices, es una tontería pelearse porque nadie usa todos los comandos disponibles, ningún código está tan optimizado como para hacer un uso perfecto de una CPU de 32b o superior... pero con los de 8 o 16 bits sí que se puede, y la scene de los microordenadores lo demuestra cada día
Lo que no puede ser es decir que Jaguar era de 64bits, o la PS2 de 128b y que eso les da más potencia.
Pero tampoco quiero que llegue alguien y me eche en cara "ese procesador no es de 3bits, sino de 16bits porque bla, bla, bla, infórmate antes de hablar".
PROYECTOS REALIZADOS: FrikiMusic, Motor Scroll Tileado v3.2, Venturer2X (GP2X/WIZ), Echo, Screen Break Time
PROYECTOS EN MARCHA (algunos): Bennu GP2X: 95% (necesito ayuda) ¡Antes de Halloween!: 92% SpaceH2H: 8%
Si, si te olvidas de los juegos en 3D donde necesitas potencia de calculo, al final se basa en el ancho de banda que tengas con la memoria (para ver si un juego va rápido, mueve muchos sprites, planos de scroll, etc), como consigues mas ancho de banda, de tres formas distintas.
1 - mas bits, si pasas de 8bits a 16bits en cada acceso lees el doble de datos a la misma frecuencia de reloj.
2 - mas mhz, el problema es que los demás dispositivos tienen que soportar esa frecuencia de reloj.
3 - mas eficiencia, meter cache, poner distintos chips en buses distintos para que no se molesten, hacer que una operación tarde menos ciclos o llevar varias en paralelo (pipeline), etc.
-----Actualizado-----
Son cosas distintas, el bus de direcciones solo te "dice" la cantidad de memoria a la que puedes acceder, el de datos indica cuantos bytes te traerás con cada acceso a memoria.
-----Actualizado-----
Siempre que te asegures de que no hay overflow en los operandos de 16bits y que todos los números son positivos... Pero si, se pueden hacer trucos de esos, lo mismo con graficos RGB de 16bits que puedes hacer mezclas de colores en dos pasos (canal R-G y -B-) en vez de hacerlo en tres.
No es lo mismo tener diez años de experiencia, que tener un año de experiencia diez veces.
It is an undisputed truth that the Atari ST gets the best out of coders. No dedicated hardware, just the CPU and a frame buffer! Some call it Spartan, others name it Power Without The Price, and a select few say `challenge accepted'! --- by spkr from smfx
No, me refiero a cuando usas direcciones de memoria como si fueran datos, como cuando usas punteros, y sumas contenidos de direcciones de memoria, o autoincrementas el valor de un puntero. Si las direcciones son el doble de grandes que los registros de datos, tienes que partir la operación en dos.
No, no me refiero a hacer "trucos", sino que hay instrucciones que hacen ese tipo de operaciones: por ejemplo, en un procesador de 16bits puedes tener un SUM8, de forma que el primer WORD sea el comando en sí (SUM8), y el segundo WORD sea la concatenación de dos BYTEs, en lugar de las clásicas tres lecturas: comando+dato1+dato2. O yo que sé, un sumatorio donde el primer word es el comando, y los siguientes words son datos que se van leyendo y sumando de dos en dos hasta que entra un valor que detiene la suma.
PROYECTOS REALIZADOS: FrikiMusic, Motor Scroll Tileado v3.2, Venturer2X (GP2X/WIZ), Echo, Screen Break Time
PROYECTOS EN MARCHA (algunos): Bennu GP2X: 95% (necesito ayuda) ¡Antes de Halloween!: 92% SpaceH2H: 8%
Ok, en ese sentido hasta la llegada de los procesadores de 32bits al trabajar con direcciones tenias que hacerlo en dos partes, 8 bits -> bus de direcciones de 16bits, 16 bits -> bus de direcciones de 20,24 o 32bits. Si no es de 32bits es que le faltan "patas" al procesador, no tienes registros de 20bits ni de 24bits, aunque esta la aberración de la memoria segmentada, que con dos registros de 16bits accedías hasta 1Mb de memoria IIRC.
No lo entiendo muy bien pero la forma en que se codifican las instrucciones importa poco. Dependiendo de la instruccion leera mas o menos datos y el tamaño mínimo de la instrucción depende de la codificación que les diera por usar, hay procesadores de 32bits que las intruciones se codifican en 16bits.
No es lo mismo tener diez años de experiencia, que tener un año de experiencia diez veces.
It is an undisputed truth that the Atari ST gets the best out of coders. No dedicated hardware, just the CPU and a frame buffer! Some call it Spartan, others name it Power Without The Price, and a select few say `challenge accepted'! --- by spkr from smfx
A ver hablando rápido y mal: hay instrucciones de 32 bits que permiten ejecutar dos instrucciones de 16 bits (o quizás 4 de 8 bits) a la vez. O instrucciones de 32 bits que usan una lista de datos en memoria de 16 bits, que se ejecutan en la mitad de tiempo que la instrucción equivalente de 16 bits para datos de 16 bits.
Claro que tienen sus limitaciones, pero existieron, y algún pequeño controlador seguramente los siga usando, pero te dan una gran ventaja de velocidad.
Ya luego hay una serie de problemas de velocidad asociados a cómo se fabrican, los retardos de las líneas y el funcionamiento en cascada de algunos elementos según se incrementan el número de bits, aparte de la complejidad del circuito, los ruidos...
Pero llevamos años ya con procesadores de hasta 64bits, todo eso está superado (salvo cuando toca reducir el tamaño de las pistas), y hoy la "guerra de los bits" nos parece algo absurdo... pero ponte en aquel entonces, y pasar a desarrollar de un procesador de 8 a 16 bits era bestial, y de 16 a 32 un sueño, y los de márqueting, que recordemos que en aquel entonces se peleaban por ver quienes eran más salvajes, querían usar toda esa información para que el público pensase qué consola era la más avanzada.
Leches, por culpa de aquello, hoy día los GigaBytes, que siempre fueron 2^30 Bytes, ahora significan 1.000.000.000 de Bytes, y 2^30 ahora son GiB o GiguiBytes o como se digan. Los DVDs tenían 4'7GB en lugar de los 4'4GB reales, los pendrives de 256MB apenas tenían 245MB de espacio utilizable (incluyendo la tabla de índices)...
PROYECTOS REALIZADOS: FrikiMusic, Motor Scroll Tileado v3.2, Venturer2X (GP2X/WIZ), Echo, Screen Break Time
PROYECTOS EN MARCHA (algunos): Bennu GP2X: 95% (necesito ayuda) ¡Antes de Halloween!: 92% SpaceH2H: 8%
Los Gigabytes a 1000 MB solo es con el almacenamiento por eso ahora hay que distinguir entre GiB (1024 MB) y GB (1000 MB), en teoria era para que cumpliera el sistema MKS (giga = 1000 Megas) pero de camino nos quitaron buena parte del almacenamiento sin bajar los precios, la memoria sigue siendo 2^x, una memoria de de 16GB tiene 16*1024 MB.
En cuanto a la perdida en los dispositivo de almacenamiento siempre pierden espacio al formatearlos (tanto fisico como lógico) porque se deben guardar las estructuras necesarias para su funcionamiento y eso ocupa espacio y los fabricantes siempre te ponen el espacio total, no el disponible.
Zhorro
Un procesador de N bits no procesa N/2 bits mas rapido.
Dicho de otro modo add.b d0,d1 add.w d0,d1 te tardan los mismo en el 68000 por ser un procesador de 16bits, add.l d0,d1 te tarda el doble por tener que hacerlo en dos pasos.
Ese mismo código lo ejecutas en un 68020 hacia arriba que son de 32bits y todas te tardan lo mismo. La ventaja es que para muchas cosas 16bits se quedan cortos, y en un procesador de 32bits no te penalizara usar 32bits, y tampoco ganas por usar menos (ganaras algo porque los datos ocuparan menos y tendrás menos fallos de cache en caso de tener cache, pero la suma te tardara lo mismo).
Las instrucciones SIMD si que hacen una operación en varios datos al mismo tiempo.
No es lo mismo tener diez años de experiencia, que tener un año de experiencia diez veces.
It is an undisputed truth that the Atari ST gets the best out of coders. No dedicated hardware, just the CPU and a frame buffer! Some call it Spartan, others name it Power Without The Price, and a select few say `challenge accepted'! --- by spkr from smfx
"Todo es absolutamente falso, salvo alguna cosa"
Vale, creo que me he liado yo solo
Creo que estaba pensando en que una suma necesita tres accesos a memoria (operador y dos operandos), mientras que en una de estas operaciones sólo necesita dos (operador y operando/operando), y que cada acceso a memoria penaliza el rendimiento. Mal ejemplo.
No recuerdo ahora mismo ningún ejemplo bueno, pero sé que había instrucciones que al usar N/2 bits, podías realizar operaciones en la "mitad" de tiempo ¿Quizás sumando 4 números en lugar de 2, o con operaciones que devolvían 2 resultados en lugar de 1? Me empieza a venir a la cabeza una operación que suma dos números y te lo guarda en una dirección de memoria.
Me acuerdo de cuando empezaron a salir las primeras SD y los primeros pendrives, que llegaban a decirte "no compres marcas chinas, porque si las memorias nunca tienen el tamaño que dicen, las más baratas tienen incluso menos que las de las marcas más fiables".
PROYECTOS REALIZADOS: FrikiMusic, Motor Scroll Tileado v3.2, Venturer2X (GP2X/WIZ), Echo, Screen Break Time
PROYECTOS EN MARCHA (algunos): Bennu GP2X: 95% (necesito ayuda) ¡Antes de Halloween!: 92% SpaceH2H: 8%
Eso es otra cosa: los pendrives que directamente no tienen la memoria que dicen. Es a nivel de firmware: el firmware podía decir que era un pendrive de 4GB pero solo tiene memoria para 256MB. Y sobreescribías: si tratabas de poner más de 256MB, sobreescribía bloques antiguos.
Eso era directamente un timo y afectaba a muchísimo pendrives. Especialmente "los de publicidad", esos que regalaban con cualquier cosa con publicidad y por tanto tenían que ser muy baratos. Aún tengo decenas así.
-----Actualizado-----
Aparentemente, aún pasa: https://www.youtube.com/watch?v=tPHYVJHN6LY
Pero yo me refiero a que un disco "de 500 GiB" en realidad suele ser "de más o menos 500 GiB". Puede que un pelo más, no esperes que haya 501 GiB pero sí 500.03 GiB y eso puede hacer que uno no te quepa en otro.
Última edición por juanvvc; 27/05/2021 a las 17:17
"Todo es absolutamente falso, salvo alguna cosa"
No, no. Cuando estaba en la facultad, cuando comprabas una SD de 512MB (aquello era una barbaridad de espacio para un móvil), al final te quedaban 504MB si era una Sandisk, pero si comprabas una china a lo mejor eran 496MB o 492MB... No sé por alguna razón, los valores diferían, y no tenía que ver con tablas de particiones, ni índices ni metadatos de ningún tipo... o a lo mejor sí, no sé, lo mismo cada fabricante formateaba con valores diferentes.
Y sí, lo de venderte 32GB como si fuera 1TB sigue pasando. Mientras haya incautos que piquen comprando en tiendas de dudosa reputación a precios demasiado baratos para ser verdad, seguirá habiendo quien haga negocio. De vez en cuando, algún canal tecnológico hace un vídeo sobre algunas de estas estafas. Yo sigo el de Linus Tech Tips, que de vez en cuando tienen unos golpes que te partes de risa.
PROYECTOS REALIZADOS: FrikiMusic, Motor Scroll Tileado v3.2, Venturer2X (GP2X/WIZ), Echo, Screen Break Time
PROYECTOS EN MARCHA (algunos): Bennu GP2X: 95% (necesito ayuda) ¡Antes de Halloween!: 92% SpaceH2H: 8%
Como ejemplo, tengo aquí dos pendrives, uno de 32 GiB y otro de 8 GiB. Tienen respectivamente 60062500 y 15138816 sectores. Como se puede observar, uno no tiene cuatro veces más sectores que el otro. De hecho, 4 pendrives de 8GB como los que tengo aquí tendrían en total unos 500 MB más que el de 32 GB.
Confieso que no sé por qué es esto. Una posibilidad es que las celdas de memoria sí que sean iguales, pero cada pendrive use un número diferente de celdas para su propio firmware. O quizá antes de salir de fábrica ya hacen una test para marcar algunos sectores como defectuosos. Ni idea, ni siquiera sé si esto tiene sentido. El caso es que cuando un fabricante vende un pendrive "de 32 GB", el tamaño es aproximado y no solo porque hagan los cálculos con múltiplos de 1000 o de 1024, es que cada fabricante realmente da como disponible un número diferente de sectores para ofrecer un tamaño final aproximado.
Por eso si tienes que planchar una imagen de disco "de 500 GB" en otro disco "de 500 GB", hay que asegurarse de que ambos sean la misma marca, modelo y tipo porque es posible que no quepa. Preferiblemente lanzando un fdisk para mirar cuántos sectores tiene realmente cada uno.
(drumpi, no te estoy discutiendo, solo aportando datos para ampliar lo que dices)
Última edición por juanvvc; 28/05/2021 a las 14:26
"Todo es absolutamente falso, salvo alguna cosa"
Una vez me contaron que los penedrive tenía una extructura de bits de unos o ceros según se fabrica, no como un disco que los reparte según la circunferencia de turno...
como un bit ''fisicamente'' puede representar una fracción de milimetro, según vaya cabiendo en la cuadricula así contendrá, aparte de lo cercano y la pseudo-tolerancia que admita la nomenclatura será de 32gb o de 64gb... porque esa es otra ¿quien determina la escala de capacidad de estas mi3rd4s? mexplico:
¿porqué van con una determinada diferencia (ya sea real o no) y quien lo ha ''estandarizado''?
a lo primero te encontrabas penedrives de 128 megas, luego vinieron los de 256 (incluso tengo uno así todavía) y luego 512 y saltaron al giga... (quien dice pendrive dice sd o micro sd o disco duro, total, memoria externa) ¿quien dijo que siempre ha de ser el doble para la ''catalogación''? ¿porque si empezaron a salir tarjetas de un giga luego aparecian de dos y lo siguiente era de 4 y luego de 6, 16, 32, 64 etc??
¿en que momento implantaron discos duros solidos de 120? oye, que tengo un par de ellos ¿y porque de 240gb? que tengo otro...
Según el orden, el giga debería estar a 1024 megas ¿no? que eso es el doble de 512, pero entonces los 64 gigas debería ser 65.536 megas, osea 65 gigas ''reales''...
yo lo que veo es que nos están dando una coba que no veas, y que pa rebajar el precio a los productos le quitan bites para que el coste de producción se reduzca y así nos puedan vender un [insertese contenedor de memoria] de 64 gb con 62.378 megas; A lo que nos lleva al siguiente punto:
-La carajotura del formato 16:9 en los televisores/monitores... Eso si que tiene que estar al costo del pixel
Buenas noches
Marcadores