Equator Technologies, Inc. 3
lute difference with new partition shift-in for efficient
block matching operation.
1.1.1.3 Simple Interlocks
Certain operations (such as SIMD operations) require more
than one cycle to complete. No hardware interlocks are
needed to prevent issue of an operation which attempts to read
a result not yet completed. The compiler is responsible for
correct scheduling, not hardware. Register scoreboarding is
supported for outstanding loads.
1.1.1.4 Extensive Predication
Nearly all operations can have their effect controlled by the
value of a selected (1-bit) predicate register. A predicate
register is tested to determine whether or not the operation
should be performed. This allows the compiler to aggressively
convert control flow into data flow, enabling a substantially
higher degree of instruction-level parallelism. This also
greatly helps to reduce any penalties for branching, without
the cost and complexity of hardware branch prediction.
1.1.2 Register Resources
There are several types of registers on the MAP-CA. These
include system registers, breakpoint registers, general purpose
registers, predicate registers, and special purpose 128-bit
registers.
1.1.2.1 Global Registers
Global registers on the MAP-CA consist of system
registers and implementation-dependent I/O registers (PIO
registers). Dedicated operations manipulate the system
registers, while conventional load and store operations
manipulate the I/O registers. All system registers are 32-bit
registers.
1.1.2.2 Breakpoint Registers
MAP-CA has two sets of breakpoint registers, instruction-
breakpoint, and data-breakpoint registers. These registers
provide hardware breakpoint capability for various debugging
tools. Instruction-breakpoint registers cause an exception
when an operation in the specified address is about to be
executed. Similarly, the data-breakpoint registers cause an
exception when the data at the specified address is about to be
accessed. In both cases a mask can be used to specify a range
of addresses.
By registering an exception handling routine associated
with either of these exceptions, a software developer can
control what happens when a hardware breakpoint occurs.
For example, the exception handling routine may be used to
signal an external application such as a source-level debugger
that a breakpoint has occurred.
1.1.2.3 General Registers
There are 128 32-bit registers that can be treated as pairs
of 64-bit general registers using odd-even pairs of the 32-bit
registers. When reading or writing 64-bit registers an even-
numbered register must be specified. For example, the register
pair [R5, R4] is referenced as R4 in 64-bit access.
1.1.2.4 Predicate Registers
There are 32 1-bit predicate registers. Predicate registers
are used in predicated operations, logical operations, and
branches. They provide a destination for operations with a
judged condition.
1.1.2.5 PLC/PLV 128-bit registers
The IG-ALU has four special 128-bit registers - two pairs
of Partitioned Local Constant (PLC) and Partitioned Local
Variable (PLV). These registers are used for powerful SIMD
DSP partitioned operations. The registers can be configured
as sixteen 8-bit operation partitions, eight 16-bit operation
partitions, or four 32-bit operation partitions. For numerous
digital signal processing and compression algorithms, this
allows MAP-CA to match the cost/performance of fixed-
function chips without the loss of reprogrammability.
1.2 Timers
The MAP-CA has two independent programmable interval
timers plus a free-running counter. Each interval timer has a
32-bit counter register and period register. The counter is
incremented once per cycle. When the counter reaches the
period value, the counter is reset, a bit is set in the system
Event Seen Register (ESR), and a maskable interrupt is
asserted. The free-running counter counts up once per cycle as
well. When it overflows to zero a bit is set in ESR and a
maskable interrupt is asserted.
The Transport Channel Interface also has programmable
timer with a resolution of 27MHz that can be used to generate
periodic interrupts.
1.3 Interrupts and Exceptions
The MAP-CA has a flexible interrupt structure. Interrupts
and exceptions internal to the core are reflected directly in the
system registers. PCI, DataStreamer, and other non-core
interrupts are gathered by the on-chip Interrupt Collector.
Software generated interrupts are provided for
multiprocessing or interprocess communication support.
Each interrupt can be individually routed to one of four core
interrupts or to one of two PCI interrupt signals.
Routing and masking of interrupts is programmable. All
interrupts are at a single priority level, allowing prioritization
to be managed by software. All interrupts and processor
exceptions can be masked or unmasked at the core by clearing
or setting the EXCP bit of the Processor Status Word (PSW)
system register. In addition, all of the interrupts controlled by
the Interrupt Collector can be masked based on their routing