A data processing system having a central processing unit (CPU) with
address generation circuitry for accessing a circular buffer region in a
non-aligned manner 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 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 ports. A data transfer address for each load/store
instruction is formed by fetching the instruction (600), decoding the
instruction (610) to determine instruction type, transfer data size,
addressing mode and scaling selection. For a non-aligned instruction,
after selectively scaling (620) an offset provided by the instruction and
combining the selectively scaled offset with a base address value the
resultant address is then augmented (640) by a line size associated with
the instruction. For circular addressing mode, both the resultant address
and the augmented address are bounded (650, 651) to stay within the
circular buffer region and two aligned data items are accessed in parallel
(652, 653) and a non-aligned data item is extracted (654) from the two
aligned data items, such that the non-aligned data item wraps around the
boundary of the circular buffer region.
Un sistema dell'elaborazione dei dati che ha un'unità centrale di elaboratore (CPU) con i circuiti della generazione di indirizzo per l'accesso a della regione circolare dell'amplificatore in un modo non-aligned è fornito. Il CPU ha un'architettura dell'insieme delle istruzioni che è ottimizzata per l'elaborazione numerica intensa di procedura. Il CPU ha unità doppie di load/store collegate agli orificii doppi di memoria di un regolatore di memoria. Il CPU può eseguire due trasferimenti di dati stati allineati ciascuno che ha una lunghezza di un byte, di due byte, di quattro byte, o di otto byte parallelamente eseguendo due istruzioni di load/store. Il CPU può anche eseguire un singolo trasferimento di dati non-aligned che ha una lunghezza di quattro byte o di otto byte eseguendo un'istruzione non-aligned di load/store che utilizza entrambi gli orificii di memoria. Un indirizzo di trasferimento di dati per ogni istruzione di load/store è costituito dal prendere l'istruzione (600), decodificante l'istruzione (610) per determinare il tipo di istruzione, il formato di dati di trasferimento, regolare e modo di richiamo la selezione. Per un'istruzione non-aligned, dopo che selettivamente regolare (620) un'immagine riportata abbia fornito l'istruzione ed unendo l'immagine riportata selettivamente regolata con un valore di indirizzo basso l'indirizzo risultante allora è aumentato (640) da una linea formato si è associato con l'istruzione. Per il modo di richiamo circolare, sia l'indirizzo risultante che l'indirizzo aumentato sono limitati (650, 651) per rimanere all'interno della regione circolare dell'amplificatore e due elementi dei dati stati allineati sono raggiunti parallelamente (652, 653) e un elemento dei dati non-aligned è estratto (654) dai due elementi dei dati stati allineati, tali che gli avvolg non-aligned dell'elemento dei dati intorno al contorno della regione circolare dell'amplificatore.