A data processing system having a central processing (CPU) unit and a
method of operation is provided. The CPU has an instruction set
architecture that is optimized for intensive numeric algorithm processing.
The CPU has dual load/store units connected to dual memory target ports of
a memory controller. The CPU can execute two aligned data transfers each
having a length of one byte, two bytes, four bytes, or eight bytes in
parallel by executing two load/store instructions. The CPU can also
execute a single non-aligned data transfer having a length of four bytes
or eight bytes by executing a non-aligned load/store instruction that
utilizes both memory target ports. A data transfer address for each
load/store instruction is formed by fetching the instruction, decoding the
instruction to determine instruction type, transfer data size, and scaling
selection, selectively scaling an offset provided by the instruction and
combining the selectively scaled offset with a base address value. The
resultant address is then provided to the memory system to initiate a data
transfer.
Un système de traitement de données ayant un central traiter l'unité (unité centrale de traitement) et un mode de fonctionnement est fourni. L'unité centrale de traitement a une architecture d'ensemble d'instruction qui est optimisée pour le traitement numérique intensif d'algorithme. L'unité centrale de traitement a les unités duelles de load/store reliées aux ports duels de cible de mémoire d'un contrôleur de mémoire. L'unité centrale de traitement peut exécuter deux transferts de données alignés chacun qui a une longueur d'un byte, de deux bytes, de quatre bytes, ou de huit bytes en parallèle en exécutant deux instructions de load/store. L'unité centrale de traitement peut également exécuter un transfert de données non-aligné simple ayant une longueur de quatre bytes ou de huit bytes en exécutant une instruction non-alignée de load/store qui utilise les deux ports de cible de mémoire. Une adresse de transfert de données pour chaque instruction de load/store est constituée en cherchant l'instruction, décodant l'instruction de déterminer le type d'instruction, la taille de données de transfert, et mesurer le choix, sélectivement mesurant un excentrage fourni par l'instruction et combinant l'excentrage sélectivement mesuré avec une valeur d'adresse de base. L'adresse résultante est alors fournie au système de mémoire pour lancer un transfert de données.