Difference between revisions of "RAMP Relation"
Jose Renau (Talk | contribs) (New page: RAMP is a collaborative research community that aims at using FPGAs to accelerate processor simulations. Most RAMP projects aim at multiprocessor acceleration. This is a similar goal to S...) |
Jose Renau (Talk | contribs) |
||
Line 3: | Line 3: | ||
This is a similar goal to SCOORE, a major difference is that RAMP does not have an emphasis on ASIC or synthesis but rather on the FPGA acceleration. | This is a similar goal to SCOORE, a major difference is that RAMP does not have an emphasis on ASIC or synthesis but rather on the FPGA acceleration. | ||
− | + | === RTL Layers === | |
RAMP common interface divides the RTL implementation in 3 blocks: | RAMP common interface divides the RTL implementation in 3 blocks: | ||
Line 14: | Line 14: | ||
The RAMP project aims at providing a common interface to avoid platform and unmodel RTL. SCOORE can benefit as it could potentially reuse both. | The RAMP project aims at providing a common interface to avoid platform and unmodel RTL. SCOORE can benefit as it could potentially reuse both. | ||
+ | |||
+ | |||
+ | === Unit / Channel === | ||
+ | |||
+ | RAMP partitions the design into units and channels. Main characteristics: | ||
+ | |||
+ | -Units only communicate through channels | ||
+ | -Units wait until all the inputs (in channels) are ready before generating outputs (out channels) | ||
+ | -Channels have a fixed latency | ||
+ | -Channels are unidirectional | ||
+ | -Channels have an initialization | ||
+ | -A firing happens when a unit reads/consumes all the inputs and generates all the outputs. | ||
+ | |||
+ | |||
+ | The RAMP channels are similar to the SCOORE inter-block communication. In SCOORE: | ||
+ | |||
+ | -All the inputs are read every cycle. The unit or block is responsible to read. A key difference is that | ||
+ | in SCOORE we can set a "busy" signal which means that the following cycle the sent packet would not be processed until | ||
+ | the busy is deasserted. | ||
+ | -RAMP uses a "enable" signal to notify that the channel has data. We use a "valid" signal. E.g: | ||
+ | |||
+ | typedef struct packed{ | ||
+ | BoolType valid; | ||
+ | BoolType fault; | ||
+ | RIDType RID; | ||
+ | OPType op; | ||
+ | PRegType psrc1; | ||
+ | PRegType psrc2; | ||
+ | IMMType imm; | ||
+ | PRegType pdest; | ||
+ | }DInst_SEType; |
Revision as of 21:53, 2 February 2009
RAMP is a collaborative research community that aims at using FPGAs to accelerate processor simulations. Most RAMP projects aim at multiprocessor acceleration.
This is a similar goal to SCOORE, a major difference is that RAMP does not have an emphasis on ASIC or synthesis but rather on the FPGA acceleration.
RTL Layers
RAMP common interface divides the RTL implementation in 3 blocks:
-Model RTL: The RTL required to implement a CPU/Memory/... model. Equivalen to the synos/scoore directory.
-Unmodel RTL: The RTL required to gather statistics or control the modeled architecture. It may not be necessary to execute instructions in the model architecture, but it is a requirement for researchers.
-Platform RTL: Each model and unmodel RTL needs to be synthesized in a specific FPGA platform. The platform RTL is the RTL specific for each platform.
The RAMP project aims at providing a common interface to avoid platform and unmodel RTL. SCOORE can benefit as it could potentially reuse both.
Unit / Channel
RAMP partitions the design into units and channels. Main characteristics:
-Units only communicate through channels -Units wait until all the inputs (in channels) are ready before generating outputs (out channels) -Channels have a fixed latency -Channels are unidirectional -Channels have an initialization -A firing happens when a unit reads/consumes all the inputs and generates all the outputs.
The RAMP channels are similar to the SCOORE inter-block communication. In SCOORE:
-All the inputs are read every cycle. The unit or block is responsible to read. A key difference is that in SCOORE we can set a "busy" signal which means that the following cycle the sent packet would not be processed until the busy is deasserted. -RAMP uses a "enable" signal to notify that the channel has data. We use a "valid" signal. E.g:
typedef struct packed{ BoolType valid; BoolType fault; RIDType RID; OPType op; PRegType psrc1; PRegType psrc2; IMMType imm; PRegType pdest; }DInst_SEType;