5 votos

¿El tamaño del bus de datos controla el valor máximo que la CPU puede procesar?

Sé que el tamaño del bus de datos define el tamaño del procesador, pero ¿el procesador puede procesar datos por encima de ese límite?

Realmente apreciaría alguna explicación sobre esto.

9voto

lillq Puntos 4161

Los datos externos-ancho del bus no siempre están de acuerdo con el procesador interno de la estructura. Un ejemplo bien conocido es el antiguo procesador 8088 de Intel, que era idéntica a la de los 16 bits 8086 internamente, pero había un 8-bit de bus externo.

Ancho de bus de datos no es un indicador de que el procesador del poder, a pesar de una menor ancho de bus puede afectar el rendimiento de datos. La potencia real de un procesador es determinado por la CPU ALU, Unidad de Aritmética y Lógica. De 8 bits microcontroladores, dispondrá de 8-bit Alu, que pueden procesar los datos en el rango de 0..255. Eso es suficiente para procesamiento de texto: el carácter ASCII tabla sólo necesita de 7 bits. La ALU puede hacer algo de aritmética básica, pero para números más grandes, usted necesitará la ayuda del software. Si desea agregar 100500 + 120760 luego el 8-bit ALU no puede hacerlo directamente, ni siquiera un 16-bit ALU puede. Por lo que el compilador separar los números para hacer cálculos separados de las partes, y recombinar el resultado posterior.

Supongamos que usted tiene un decimal ALU, que puede procesar números de hasta 3 dígitos decimales. El compilador va a dividir la 100500 en 100 y 500, y el 120760 en 120 y 760. La CPU puede calcular 500 + 760 = 260, además de un desbordamiento de 1. Toma el desbordamiento de dígitos y sumar el 100 + 120, por lo que la suma es de 221. Luego se recombina las dos partes para que usted obtenga el resultado final 221260. De esta manera se puede hacer nada. Los tres dígitos hubo ninguna objeción para el procesamiento de 6 dígitos de los números, y se puede escribir algoritmos para el procesamiento de número de 10 dígitos o más. Por supuesto, el cálculo tomará más tiempo que con una ALU que se puede hacer de 10 dígitos cálculos de forma nativa, pero se puede hacer.

Cualquier computadora puede simular cualquier otro equipo.

El humilde de 8 bits procesador puede hacer exactamente lo que una supercomputadora puede, dados los recursos necesarios y el tiempo. Un montón de tiempo :-).

Un ejemplo concreto son de precisión arbitraria calculadoras. La mayoría (software) calculadoras tienen algo así como 15 dígitos decimales de precisión; si el número tiene más dígitos significativos es alrededor de ellos y es posible cambiar a la mantisa + exponente de la forma de almacenar y procesar. Pero de precisión arbitraria ampliar el cálculo de ejemplo que me dio anteriormente, y que permiten multiplicar

\$ 44402958666307977706468954613 \times 595247981199845571008922762709 \$

por ejemplo, dos números (ambos son primos) que sería necesario un mayor ancho de bus de datos de mi PC es de 64 bits. Ejemplo extremo: Mathematica da \$\pi\$ 100000 dígitos en 1/10th de un segundo. El cálculo de \$e^{\pi \sqrt{163}}\$ \$^{(1)}\$ 100000 dígitos tiene aproximadamente la mitad de un segundo. Así, mientras que usted esperaría de trabajo con los datos más amplio que el bus de datos a ser complicados, a menudo no es realmente un problema. Para una PC de 3 GHz, esto no puede ser sorprendente, pero los microcontroladores llegar más rápido así: un ARM Cortex-M3 puede correr a velocidades superiores a 100 MHz, y por el mismo dinero que usted puede conseguir una versión de 32 bits de bus también.


\$^{(1)}\$ Sobre 262537412640768743.99999999999925007259, y no es una coincidencia que es casi un entero!

2voto

RelaXNow Puntos 1164

No, el "tamaño" de un procesador no es realmente el ancho del bus de datos. Por ejemplo, el 8088 era un bus de 8 bits versión de el 8086, pero ambos eran considerados "16 bits" de los procesadores. A menos que otra cosa se indique específicamente, el tamaño de bits de un procesador significa que el ALU ancho, que es el ancho de la palabra que se forma nativa puede realizar manipulaciones aritméticas y lógicas. La razón de que tanto el 8088 y 8086 eran de 16 bits de los procesadores es porque tenían 16 bit Alu internamente. Eso significa que podría, por ejemplo, sumar dos números de 16 bits como una operación atómica.

Hoy en día las cosas se ponen un poco más confuso, ya que un "procesador" puede tener múltiples núcleos o de otro paralelismo. Es importante distinguir entre el ancho de bits y el paralelismo, ya sea en el nivel alto como varios núcleos de la CPU, o por el bajo nivel como algunos SIMD (Single Instruction Multiple Data) de arquitecturas. Los modernos procesadores x86 comúnmente utilizados en los Pc son ahora de 64 bits. Un quad core no es de 256 bits del procesador, pero a los 4 procesadores de 64 bits. Del mismo modo, un procesador SIMD que puede llevar a cabo el 8 de 16 bits añade al mismo tiempo no es una "128 bits" del procesador. Tenga en cuenta que trabajar en múltiples 16 bits de las palabras no es el mismo que operan en una sola 128 bits de la palabra que se entiende como un todo. Una diferencia obvia es que no se llevan entre el individuo y la 16 bits de víboras, que sería necesario para llamar a un 128 bits sumador. Ver http://electronics.stackexchange.com/a/42788/4512 para más discusión sobre algunas de estas cuestiones.

Sí, un procesador puede procesar cualquier tamaño de datos, pero las más grandes que los datos en comparación a su tamaño original, el más instrucciones están obligados a hacer la gran manipulación en el software.

-2voto

Neil Foley Puntos 1313

Esto es por supuesto totalmente dependiente de la CPU. Estrictamente hablando, no, un procesador sólo puede procesar datos del mismo ancho que el bus de datos.

Pero hay un montón de arquitecturas que tienen varios trucos incorporados, como tomar una de 16 bits, todavía la lectura de byte por byte sobre el bus de datos, pero luego utilizar registros internos / buffers en el núcleo para garantizar que el ms byte y Ls byte son consistentes. Por ejemplo, esto es común para MCUs de 8 bits que tienen temporizadores de hardware de 16 bits a bordo.

-6voto

ozmank Puntos 127

La pregunta es un poco vago y mi respuesta fue re-escrito.

El tamaño de la física de bus de datos no es el factor limitante, sino más bien el tamaño del espacio direccionable. El espacio de memoria puede ser segmentado en una variedad de maneras. La GPU del uso 256,512 y 1024 bits buses de datos. CPU moderna del uso de 64 y 128 bits de bus de datos con doble puerto.

Obviamente, un mayor ancho de bus hace que abordar grandes cantidades fácil, pero debe ser empacado y desempacado con la Gestión de Memoria de los chips y controlados, de modo que el contenido no se convierten en un desperdicio y rellena con ceros en los bits no utilizados. (MBZ bits = reservado, debe ser cero)

La única manera de ampliar el bus de datos más allá de su tamaño físico es el uso de la gestión de memoria virtual con VM capaz de arquitectura, de la bios, el sistema operativo y los controladores. En los primeros días de 64 bits de la VM fue utilizado en los 32 bits de la CPU.

Perdóname si mis suposiciones eran erróneas sobre su pregunta. ( todavía no está seguro de lo que quieres)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X