|
Message
From: Joachim Strömbergson<Joachim.Strombergson@I...>
Date: Fri Mar 3 16:32:20 CET 2006
Subject: [oc] open Digital Signal Processor
Aloha!> Hi, > I'm a student in Computer Engineering. I've just started my Diploma > Thesis which is going to be an open DSP processor in vhdl. > > I'm looking for architectures, block diagrammes, instruction sets, etc > etc, anything that could help me do my project.
My advice would be to look at the OpenRISC architecture and look at ways to extend it witd DSP functionality, either directly to the main datapath or as a tightly connected co-processor/ALU.
First you need to start by deciding if it should be a fixed point or floating point DSP extension. When that is done I would recommend looking at things like:
(1) DSP-coprocessors for ARM cores and how they are integrated. (2) The extension mechanisms in ARC, Tensilica.
But then basically what you need is programmable counters and registers/tables that allows you to perform MAC/FMAC operations in 1-2 cycles with fast loading of the coefficient tables and operands.
Then if you would like to go a bit more wild you could look at making the co-processor instead work on CORDIC-operations.
Another more wild idea is to look at the DSP-units (called SPE) in the Cell Broadband Engine aka the Cell processor. These are vector/SIMD-based computational units for single precision floats (not complete IEEE 754 - lacks some round modes). The SPE contains two pipelines for vector operations a local reg file and local processing memory. It would probably be a very interesting topic to develop a single-scalar scaled-down lookalike of SPE that is tightly integrated into the OpenRISC.
DISCLAIMER: I haven't looked at the OpenRISC architecture lately and don't know what mechanisms for ALU extension that is present. I do like the way ARC does it though.
Also, remember, a successful architecture (or extension thereof) is always based on some insight into the applications and the environment it is targeted for. You should both in your work and in your thesis state what applications you are forseeing and optimizing for. Then you can also do good benchmarks which allows you to insert nice graphs showing the performance performance/watt etc in your thesis.
Good luck! -- Med vänlig hälsning
Joachim Strömbergson -----------------------------------------------
|
 |