Thursday, July 09, 2009

I've decided I don't want to loose my circuit design skills, if my new job is software related. 

So I have conceived of the following project:

  1. Design a super fast chip with multiple processors (perhaps with PDP-8 like instructions), with super fast, L1 and L2 caches made with 6-T SRAM, with many ports and queues. This will really test out my abilities. A lot of trade offs to consider for optimum circuit speed.
  2. Have a PCI-E interface on chip, and have a really dumb driver that allows for direct access to the caches and code-streams for the processors. Cache coherency and instruction sequencing will be the responsibility of the programmer. 
  3. Of course, I will then have to put it on a card, and that will refresh my PCB skills from a long time ago. 
  4. Do a MOSIS run to create the chips, and I will need to get a cheap motherboard that supports PCI, with a cheap processor. I can then code programs to run massively parallel calculations like Black-Scholes, LU Factorization, Fast Fourier Transforms, SVD computations, and a whole school of such things on my PCI-E card. 
  5. I will likely run Ubuntu on the system, meaning I will need to learn how to write Ubuntu drivers. 
  6. Another nice challenge will be to see if I can convert some Apache Licence software to use my card to improve performance. I think the database, especially, can benefit from my MP-PCI card. 
  7. Also, it will be fun to so some architectural modeling to see the trade offs between number of processors vs. cache etc. In addition, the circuit trade offs between power and speed, latch based design vs. domino vs CML vs. other logic families will be intense.
This is going to be very fun...but really expensive. Maybe I can take a class at Sac. State that puts runs through MOSIS.

I already downloaded Electric, MVSIS, and Dragon. I need to evaluate free simulators. I may just use the student version of Modelsim, but that would ruin any chance of me selling these cards. Making money isn't the point though.

No comments: