From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11398 invoked by alias); 2 Jul 2009 12:09:49 -0000 Received: (qmail 11389 invoked by uid 22791); 2 Jul 2009 12:09:48 -0000 X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00,SPF_PASS X-Spam-Check-By: sourceware.org Received: from ey-out-1920.google.com (HELO ey-out-1920.google.com) (74.125.78.146) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 02 Jul 2009 12:09:41 +0000 Received: by ey-out-1920.google.com with SMTP id 3so384821eyh.38 for ; Thu, 02 Jul 2009 05:09:39 -0700 (PDT) Received: by 10.211.180.19 with SMTP id h19mr878129ebp.26.1246536578829; Thu, 02 Jul 2009 05:09:38 -0700 (PDT) Received: from ?192.168.2.99? (cpc2-cmbg8-0-0-cust61.cmbg.cable.ntl.com [82.6.108.62]) by mx.google.com with ESMTPS id 23sm2231010eya.49.2009.07.02.05.09.37 (version=SSLv3 cipher=RC4-MD5); Thu, 02 Jul 2009 05:09:37 -0700 (PDT) Message-ID: <4A4CA673.4060708@gmail.com> Date: Thu, 02 Jul 2009 12:09:00 -0000 From: Dave Korn User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: Doug Evans CC: "Frank Ch. Eigler" , Joseph A , cgen@sourceware.org Subject: Re: how can one achieve pipelined operation? References: <24210860.post@talk.nabble.com> <20090701105032.GA13767@redhat.com> <4A4C23E6.60401@sebabeach.org> In-Reply-To: <4A4C23E6.60401@sebabeach.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Mailing-List: contact cgen-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cgen-owner@sourceware.org X-SW-Source: 2009-q3/txt/msg00003.txt.bz2 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