¿Aclaración sobre cuál es la frecuencia máxima de PIC24FJ64?

Me estoy confundiendo un poco aquí. Lo siguiente está tomado de esta hoja de datos :

CPU de alto rendimiento:

  • Arquitectura de Harvard modificada
  • Operación de hasta 16 MIPS a 32 MHz

Ahora quiero 16 MIPS, que es su velocidad máxima. Pero esos 32Mhz, ¿es la frecuencia xtal o la frecuencia del reloj interno?

Actualmente tengo seleccionado un xtal de 8Mhz, y al usar el PLL X4, eso debería darme los 32Mhz, pero no estoy seguro si el FOSC/2 ocurre antes o después.

¿Qué xtal necesitaría para obtener la máxima velocidad de este dispositivo?

Editar: creo que mi configuración actual es correcta. Que un xtal de 8Mhz con PLL x4 habilitado me dará los 16MIP que necesito y que la división por 2 para el ciclo de reloj interno ocurre después del PLL.

Aparte, tenga en cuenta que el singular de MIPS es MIPS, no MIP. Ríete todo lo que quieras, pero lo he visto impreso.

Respuestas (2)

La hoja de datos es correcta, como suelen serlo. La familia PIC 24F puede funcionar a una velocidad de ciclo de instrucción máxima de 16 MHz, que se puede expresar como 16 MIPS (millones de instrucciones por segundo). Este procesador requiere 2 veces el reloj por encima de la tasa de instrucción, por lo que el reloj máximo es de 32 MHz. Puede lograr un reloj de 32 MHz con un cristal de 8 MHz y el PLL 4x. Eso dará como resultado un reloj de instrucciones de 16 MHz.

Tienes ciclos de reloj y ciclos de instrucción. Aquí un ciclo de instrucción requiere dos ciclos de reloj. Entonces, 32 MHz es la frecuencia de reloj más alta, 16 MHz es la tasa de instrucción más alta.

FWIW, la mayoría de las definiciones de RISC requieren un solo ciclo de reloj por instrucción, lo que hace que ese PIC no sea RISC.

curiosidades
El 8051 original tenía un reloj de 12MHz para un ciclo de instrucción de 1MHz. Así que necesitó 12 tics de reloj para las instrucciones más simples. Otras instrucciones incluso tomaron más tiempo. Posteriormente aparecieron los diseños Clock/6, Clock/2 y Clock/1 del 8051.

Siempre he considerado que RISC significa que la mayoría de las instrucciones se ejecutan en un solo ciclo de instrucción, sin tener nada que ver con la cantidad de ciclos de reloj internos que se necesitan para hacer un ciclo de instrucción. El contraste es con conjuntos de instrucciones complicados donde las instrucciones tomaron una variedad de ciclos de instrucción y, a veces, incluso fueron variables según los modos de direccionamiento y similares. Los PIC son RISC en ese sentido, mientras que un x86 no lo es.
@Olin: no hay problema con eso, pero la palabra "RISC" no aparece en ninguna parte de la hoja de datos. No es necesario, pero la mayoría de los fabricantes lo verían como una ventaja. Si su microcontrolador hace 1MIPS/MHz, seguramente lo mencionarán.