LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Advertise
  • Mirrors
  • Logos
  • Contact us
  • Job Opportunity
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Navigation: All forums > Cores > Message List > Message Post

    Message

    Reply | Reply all
    Date Prev | Date Next | Thread Prev | Thread Next Date Index | Thread Index

    From: Tom Hawkins <tom@l...>
    Date: Sat, 20 Sep 2003 08:44:23 -0500
    Subject: Re: [oc] Small CPU architectures
    Top

    On Saturday 20 September 2003 01:53 am, Kirill 'Big K' Katsnelson 
    wrote:
    > Guys,
    >
    > I am wondering why, when FPGA allows one to have infinite varieties
    > of central (micro)processors, people keep implementing PIC, 8051
    > and 68K.  First, I think that by implementing a task-specific
    > instruction set, one can end up with faster and smaller CPU.
    
    This was the precise goal of the state space processor 
    (http://www.opencores.org/projects/cf_ssp/).  I needed a small 
    processor for a real-time control application that needed to fit on a 
    old Altera.  Original it needed to calculate multivariable linear 
    functions, and hence the name "State Space".  But midway through the 
    project we realized SSP could handle more tasks than just linear 
    functions.  In the current application, SSP also performs a cordic 
    calculation.
    
    SSP is not a Turing complete machine; there are no jump or branch 
    instructions.  Rather, each instruction is executed one after another 
    until it hits "Halt".  An external signal tells SSP when to execute a 
    program.  In my case, it's a control sample calculation.  Though it 
    is certainly not as flexible as a general purpose processor, it's 
    great for hard-real-time and space limited applications.
    
    Even though SSP has no branch instructions, it does have a few 
    instructions for decisions: see "Switch", "AddCond", and "ShiftClip".
    Switch made it possible to perform the cordic, and AddCond was 
    specifically tailored for booth multiplication (SSP has no hardware 
    multiplier).
    
    I've implemented a more powerful version of SSP I've called TTP (TT 
    for "Time Triggered").  Among other features, it includes a general 
    purpose data memory.  I'll probably upload it to OC soon.
    
    -Tom
    
    
    >  
    > I was looking for the subject, kind of research people do on
    > "non-traditional" if you allow me to put it this way, CPU cores. 
    > To my surprise, I found practically no practical designs!  I found
    > a 4-bit micro with 4 different instructions that fits into a
    > Coolrunner, and a proof that the Turing machine is implementable
    > thus this is a general-purpose CPU...  As far as going both novel
    > and practical, no luck!
    >
    > For example, I *loved* the PDP-11 instructions set.  When after
    > VAXen there arrived the first PC/XTs, I wondered what type of
    > instruction set does that 8086 beast have.  Oh my, I should not! 
    > When I found out, I was shocked by its complexity and irregularity.
    >  It was disgusting!  It was awful!  After a very regular PDP-11
    > instructions, seeing 8086 is not for the faint of heart!
    >
    > I think, for one, that it is one of the easiest-decodable CISC
    > instruction sets possible.  I looked for an FPGA implementation;
    > besides one sold as a signle-board replacement for a PDP-11 (so it
    > was the matter of necessity and not choice in their case) I found
    > none at all!
    >
    > Anyway, it would be interesting to find out what kind of more or
    > less open research is being made in this direction.
    >
    >   -kkm
    
    -- 
    Tom Hawkins
    Launchbird Design Systems, Inc.
    952-200-3790
    http://www.launchbird.com/
    
    
    
    
    

    ReferenceAuthor
    [oc] Small CPU architecturesKirill 'Big K' Katsnelson

     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.