Siguiendo con la petición de ayuda de Darkangelus para traducir la datasheet he traducido la tabla de características de la CPU, para que así nos hagamos una idea general de como es la CPU que se va a usar.
Tabla 1.1 Características de la serie SH7750
=== LSI ===
- Frecuencias de operación: 240 MHz, 200 MHz, 167 MHz, 133 MHz, 128 MHz
- Potencia de cálculo:
- 432 MIPS (240 MHz), 360 MIPS (200 MHz), 300 MIPS (167 MHz), 240 MIPS (133 MHz), 230 MIPS (128 MHz)
- 1.7 GFLOPS (240 MHz), 1.4 GFLOPS (200 MHz), 1.2 GFLOPS (167 MHz), 0.9 GFLOPS (133 MHZ, 128 MHZ)
- Arquitectura superescalar: ejecución paralela de dos instrucciones
- Encapsulados: 256-pin BGA, 208-pin QFP, 264-pin CSP
- Bus externo:
- Bus de direcciones de 26 bits y bus de datos de 64 bits
- Frecuencia del bus externo de 1/2, 1/3, 1/4, 1/6 o 1/8 de la frecuencia interna
=== CPU ===
- Arquitectura original Hitachi SH
- Bus interno de 32 bits
- Archivo de registro general:
- 16 registros de 32 bits de uso general (y 32 registros ocultos para el programador "shadow registers")
- 7 registros de control de 32 bits
- 4 registros de sistema de 32 bits
- Juego de instrucciones RISC (compatible con las series SH)
- Instrucciones de 16 bit de longitud para mejorar la eficiencia
- arquitectura de Load-store
- delayed branch instructions (intrucciones de salto delayed
)
- ejecución condicional
- Juego de instrucciones C-based
- Arquitectura superescalar: ejecución paralela de dos instrucciones incluyendo el coprocesador FPU
- Tiempo de ejecución: Máximo de dos ciclos por instrucción.
- Espacio virtual de direccionamiento: 4 Gbytes (448 Mbyte de espacio de memoria externa)
- Identificadores de ambito ASIDs: 8 bits, 256 direcciones virtuales
- Multiplicador integrado
- Pipeline de 5 fases
=== FPU ===
- Coprocesador integrado en el chip.
- Soporta precisión simple (32 bits) y doble (64 bits)
- compatible con datos y exepciones cumpliendo el estándar IEEE754
- Dos modos de redondeo: Al más cercano o redondear a cero.
- Manejo de números desnormalizados: truncamiento a cero o generación de interrupción segun la norma IEEE754
- Registros de punto flotante: 32 bits x 16 palabras x 2 bancos
(precisión simple x 16 palabras ó doble precisión x 8 palábras) x 2 bancos
- Registro de 32 bits para la comunicación CPU-FPU (FPUL)
- Soporte de la instrucción FMAC (multiply-and-accumulate multiplicación-y-acumulación)
- Soporte de las instrucciones FDIV (división) y FSQRT (raíz cuadrada)
- Soporte de las instrucciones FLDI0/FLDI1 (carga de constantes 0,0 y 1,0)
- Tiempos de ejecución:
- Latencia (FMAC/FADD/FSUB/FMUL): 3 ciclos (precisión simple), 8 ciclos (precisión doble)
- Pitch (FMAC/FADD/FSUB/FMUL): 1 ciclo (precisión simple), 6 ciclos (precisión doble)
NOTA: FMAC solo esta soportado para precisión simple.
- Instrucciones gráficas 3D (geometría, solo en precisión simple):
- Conversión operaciones de matriz para vector de 4 dimensiones (FTRV): 4 ciclos (pitch), 7 ciclos(latencia)
- Producto vectorial de vectores de 4 dimensiones (inner product) (FIPR): 1 ciclo (pitch), 4 ciclos(latencia)
=== Generador de pulsos de reloj (CPG) ===
- Elección del reloj principal:
- SH7750, SH7750S: 1/2, 1, 3, o seis veces EXTAL (cristal exterior)
- SH7750R: 1, 6, o 12 veces EXTAL
- Modos de reloj:
- Frecuencia de CPU: 1, 1/2, 1/3, 1/4, 1/6, o 1/8 veces el reloj principal
- Frecuencia de BUS: 1/2, 1/3, 1/4, 1/6, o 1/8 veces el reloj principal
- Frecuencia de periféricos: 1/2, 1/3, 1/4, 1/6, o 1/8 veces el reloj principal
NOTA: las frecuencias máximas varían según el modelo.
- Modos Power-Down:
- Modo sleep
- modo standbye
- función standbye modular
- Perro guardián de un canal
=== Unidad de gestión de memoria (MMU) incompleto ===
- Espacio de direcciones de 4 Gbyte, 256 address space identifiers (8 bit ASIDs)
- Modo de memoria virtual single y multiple
- Soporte de multiple tamaño de página: 1 Kb, 4 Kb, 64 Kb y 1 Mb
=== Memoria Cache (solo para SH7750 y sh7750S, el SH7750R tiene el doble de ambas caches 16 Kb IC 32Kb OC) ===
- Cache de instrucciones (IC):
- 8 Kb, mapeado directo
- 256 entradas, bloques de 32 bytes
- Modo normal
- modo indexado
- Cache de datos (OC)
- 16 Kbytes, mapeado directo
- 512 entradas, bloques de 32 bytes
- modo normal
- modo indexado
- modo RAM (8-Kbyte cache + 8 kbyte RAM)
- elección de método de escritura ( copy-back o write-Through)
- El contenido de la memoria cache es accesible por direccionamiento directo (se puede usar como memoria integrada)
- Pila de almacenamiento (32 Bytes x 2 entradas)
=== Controlador de interrupciones ===
- 5 fuentes de interrupción externas: NMI, IRL3, IRL2, IRL1 y IRL0
- 15-level encoded external interrupts: IRL3 to IRL0
- Módulo de interruciones de perifeéricos integrados en la CPU: el nivel puede ser configurado para cada módulo.
=== UBC User break Controller * ===
- Módulo de depuración
=== COntrolador de Bus (BSC) ===
- Soporte de acceso a memoria externa de bus de 64/32/16/8 bit
- Espacio de memoria externo dividido en siete areas, cada una de hasta 64 Mb, con los siguientes parámetros configurables para cada área:
- Tamaño del bus (8, 16, 32 ó 64 bits)
- Número de ciclos de espera (función hardware-wait también soportada)
- Conexión de DRAM, DRAM síncrona y ROM posible configurando el tipo de espacio
- Soporte de página rápida y DRAM EDO
- soporte de interfaz PCMCIA
- Pines CS0 a CS6
- DRAM síncrona DRAM funciones de refresco
- Intervalo de refresco programable
- Soporte del modo de refresco CAS-before-RAS y modo de autorefresco
- DRAM síncrona DRAM función de acceso burst
- Seleccionable modo Big endian o little endian
=== Controlador de acceso directo a memoria (DMAC) ===
- 4 canales de DMA, 8 para la versión R del micro
- Tamaño de transferencia: 8, 16, 32 ó 64 bits o transferencias de 32 bytes
- Modo de direccionamiento:
-single address
- dual address
- Peticiones de transferencia: externas, modulos integrados o auto-peticiones
- Modos de bus: Robo de ciclos o modo burst
- Soporte de transferencia de datos bajo demanda
=== Unidad de Temporizador (TMU) ===
- Timer de recomienzo automático de 32 bits, 3 canales 5 para la versión R del chip
- función de captura de entrada
- selección de 7 relojes de entrada
=== Reloj de tiempo real (RTC)
=== *** Parece que al final si habrá reloj ^_^ ***
- RTC integrado en la CPU con funciones de calendario
- Cristal Oscilador de 32 kHz integrado con una resolución máxima de 1/256 segundos.
=== Interfaces de comunicacion serie (SCI y SCIF) ===
- Dos canales de comunicación serie full-duplex
- Canal 1 (SCI)
- Elección de modo síncrono o asíncrono
- soporte de interfaz smart Card
- Canal 2 (SCIF)
- Soporte de modo asíncrono
- Pilas FIFO separadas de 16 bytes para transmitir y para recibir
NOTA FINALES: La única CPU con soporte para 240MHz es la SH7750R que tiene el doble de cache y más canales de DMA entre otras mejoras. Viene en encapsulados BGA y QFP.
En la discusión de la memoria Virtual si, memoria virtual no, la verdad es que como programador se lo útil que es pero no se si usarla en la consola es una buena idea. Siempre podríamos poner en el kernel soporte de memoria virtual, y despues si algún programador necesita más memoria que cree un fichero de swap en el propio medio del juego que esta desarrollando. Lo podría hacer en el propio código del juego.
Un saludo.