This is the mail archive of the
cgen@sourceware.org
mailing list for the CGEN project.
Re: how can one achieve pipelined operation?
- From: Dave Korn <dave dot korn dot cygwin at googlemail dot com>
- To: Doug Evans <dje at sebabeach dot org>
- Cc: "Frank Ch. Eigler" <fche at redhat dot com>, Joseph A <joseph dot altmaier at gmail dot com>, cgen at sourceware dot org
- Date: Thu, 02 Jul 2009 13:22:11 +0100
- Subject: Re: how can one achieve pipelined operation?
- References: <24210860.post@talk.nabble.com> <20090701105032.GA13767@redhat.com> <4A4C23E6.60401@sebabeach.org>
Doug Evans wrote:
> Frank Ch. Eigler wrote:
>> Hi -
>>
>>
>>> I have been working on a port for a while now, and I think everything is
>>> working except the pipeline. I have tried changing the values of
>>> issue and
>>> done in the functional unit description and I have added a pipeline
>>> statement to define-model. What do I need to do to achieve pipelined
>>> operation and/or is there an existing example?
>>>
>>
>> An exposed pipeline is reasonably easily modelled with deferred write
>> queues in a sid-based simulator; see the mep port.
>>
>>
>
> Thanks. The semantics for each instruction are generated from cgen,
> but the pipeline (i.e. instruction fetch, execute, retire) is handcrafted.
> [Right?]
>
> Joseph: I think that's the way to go for right now.
>
I'm kinda new to cgen and was planning to try soemthing similar. My first
thought was that I should actually try and explicitly model the different
stages of the pipeline as separate units in my model, and actually pass
instruction operands as outputs from one to the next as inputs, along with a
few control signals like 'stall' and 'ready', with the u-exec unit at the end
of the chain. Wouldn't that work?
cheers,
DaveK