Pregunta

I tiene un kit de evaluación que tiene una implementación de ARM Cortex-A8 núcleo. Los estados de la hoja de datos del procesador que tiene un

  

núcleo ARM Cortex A8 ™, que opera a velocidades tan altas como de 800 MHz y hasta 200 MHz DDR2 RAM.

¿Qué puedo esperar de este sistema? Tengo razón para suponer que los accesos de memoria será un cuello de botella, ya que funciona a 200 MHz solamente?

¿Necesita más información sobre cómo interpretar esto.

¿Fue útil?

Solución

El procesador trabaja con una caché interna (en realidad, varios) que se puede acceder a "toda velocidad". La memoria caché es pequeño (típicamente de 8 a 32 kilobytes) y es llenado por trozos ( "líneas de caché") de la RAM externa (una línea de caché será una pocas docenas de bytes consecutivos). Cuando el código necesita algunos datos que no se encuentra actualmente en la memoria caché, el procesador tendrá que buscar a la línea de la memoria RAM principal; esto se llama un error de caché .

¿Qué tan rápido la línea de caché se puede obtener de la memoria RAM principal se describe por dos parámetros, llamado latencia y ancho de banda . La latencia es la cantidad de tiempo que transcurre entre el momento en que las cuestiones de procesador de la solicitud, y el momento en que se recibe el primer byte línea de caché. latencias típicos son aproximadamente 30ns. A 800 MHz, 30ns ciclos medios 24 de reloj. Ancho de banda describe cuántos bytes por nanosegundos pueden ser enviados en el autobús. "200 MHz DDR2" significa que el reloj del bus se ejecutará a 200 MHz. DDR2 RAM puede enviar dos elementos de datos por ciclo (por lo tanto 400 millones de elementos por segundo). Entonces el ancho de banda depende del número de cables que hay entre la CPU y la RAM: con un bus de 64 bits y 200 MHz RAM DDR2, se podría esperar durante 3,2 GBytes / s en condiciones ideales. Así que mientras que el primer byte tarda bastante tiempo para ser obtenido (latencia es alta con respecto a lo que la CPU puede hacer), el resto de la línea de caché se lee con bastante rapidez.

En la otra dirección:. La CPU escribe algunos datos de su memoria caché, y algunos circuitos se propagará la modificación a la RAM principal en su tiempo libre

La descripción anterior es demasiado simplista; cachés y gestión de caché son un área compleja. La línea de fondo es la siguiente: si el código utiliza grandes tablas de datos en la memoria y accede a ellos de una manera aparentemente aleatoria, entonces la aplicación será lento, porque la mayoría de las veces el procesador sólo esperar a que los datos de la memoria principal. Por otro lado, si el código puede funcionar con poca memoria RAM, menos de unas pocas decenas de kilobytes, entonces es probable que va a ejecutar la mayoría de las veces con la caché interna, y la velocidad de la RAM externa será poco importante. Capacidad de memoria de marca accede de manera que funciona bien con los cachés se llama localidad de referencia .

Vea la página Wikipedia sobre cachés para una introducción y punteros en materia de cachés.

(Big precalculados mesas eran un truco optimización común durante los años 80 debido a que los procesadores de tiempo no eran más rápidos que la RAM, y acceso a la memoria de un ciclo fue la regla. Es por eso que un niño de 8 MHz Motorola 68000 CPU no tenía caché. Sin embargo, estos días han quedado atrás.)

Otros consejos

Sí, la memoria puede también ser un cuello de botella, pero que será muy poco probable que se ejecuta una aplicación que hace no , pero leer y escribir en la memoria.

Dentro de la CPU, el cuello de botella de memoria no tendrá un efecto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top