<< EDN home page

2007 EDN DSP Directory
By Robert Cravotta, Technical Editor
A comprehensive listing of digital-signal-processing resources, including software-programmable processors, programmable fabrics, IP (intellectual-property) blocks, and digital-signal controllers. This year's edition highlights the growing number of hybrid or unified architectures that pair a microcontroller core with DSP-architecture features and structures.
2007 EDN DSP DIRECTORY

<< Back to main

RC (Research Center) Module

NeuroMatrix NM6403

VIEW: DEVICE DETAILS (PDF)

The NeuroMatrix NM6403 DSP is a dual-core application-specific DSP processor based on the NeuroMatrix Core (NMC). It provides scalable performance, a programmable operand width of 1 to 64 bits. This flexibility allows designers to trade precision for performance to suit their applications. The NM6403 processor includes a 32/64-bit RISC processor and a 1- to 64-bit vector coprocessor that supports vector operations with elements of variable bit lengths (US patent 6,539,368 B1).

ADVERTISEMENT

The RISC core (VLIW) has a five-stage pipeline that operates with 32- and 64-bit-wide instructions. The NM6403 supports 32-bit immediate, base, indexed, and relative addressing. Each instruction usually executes two operations. Two 64-bit interfaces support SRAM, DRAM, and EDO DRAM and comprise two separate address-generation units that can address as much as 16 Gbytes. Each interface supports two memory banks and can support a "shared-memory" mode. Two DMA coprocessors transfer data between high-speed I/O-communication ports and external memory.

The NM6403 processor uses vector instructions to handle packets of as many as 32 64-bit data words. These instructions may define operations such as matrix-matrix, matrix-vector, or vector-vector multiplication, vector-vector addition/subtraction with saturation of results, block moving, and bit manipulation. The NM6403 has conditional branch, call, and return instructions.

The vector coprocessor, which has an SIMD (single-instruction-multiple-data) architecture, works on packed integer data comprising 64-bit blocks in the form of variable 1- to 64-bit words. The device supports vector-matrix or matrix-matrix multiplication. The Vector coprocessor's core looks like an array multiplier comprising cells that include a 1-bit memory (flip-flop) surrounded by several logical elements. Designers can combine the cells into several macrocells with two 64-bit programmable registers. These registers define the borders between rows and columns with macrocells.

Each macrocell performs the multiplication on variable-input words using preloaded coefficients and accumulates the result from the macrocells in the column above it. The columns simultaneously calculate the results in one processor cycle. For 8-bit data and coefficients, the vector coprocessor performs 24 MAC operations with 21-bit results in one 20-nsec processor cycle. The number of MAC operations depends on the length and number of words packaged into a 64-bit block. The engine's configuration can change dynamically during calculations. An application can start with maximum precision and minimum performance and dynamically increase performance by reducing the data-word lengths. To avoid arithmetic overflow, the NM6403 uses two types of saturation functions with user-programmable saturation boundaries.

1997- 2009 Reed Business Information, a division of Reed Elsevier Inc. All rights reserved.
Use of this web site is subject to its Terms of Use | Privacy Policy