Friday, March 28, 2008

Probabilistic Chips

watch this interesting video! i liked the speaker way too much...

do you think it's really important that every calculation you make gives a correct result? of course it is !! but maybe not for all applications, let's see...

for example, if you're making a bank transaction, does it really matter the number of pennies or cents? what about computer simulations? it's already based on probabilistic models, so maybe a little bit of randomness in the results won't hurt too.

still not convinced? think about a DVD player generating many frames per second, if it messed up some pixels in a number of frames, it won't degrade the overall viewing experience, so maybe signal processing and sensor applications can find advantages to that new technologies.

but why should we bother developing new technologies given the undertaken risks in tolerating the incorrect results? that's because this can significantly reduce the power consumption without compromising user experience.

researchers are now developing a new type of transistors called PCMOS or Probabilistic-CMOS that will be available in 5 years, by making hardware a little bit unstable, we can realize the required randomness while significantly reducing the consumed power. actually this topic is very new that i can't find many articles about it, maybe you can check these links about a new embedded system architecture based on PCMOS, and a demo of PCMOS based DSP.


i think that's a very revolutionary approach in chip design, don't you agree?

Tuesday, March 18, 2008

Setup your Symbian C++ Development Environment on WindowsXp

this semester, we're studying Symbian OS Development for mobile phone software, the course started with C++ development using Carbide C++ and will move later to J2ME, we are currently interested in the S60 platform.

preparing for my next lab assignment, i invite you to join me in installing Carbide C++ on my WindowsXp PC, we'll proceed as follows:

  1. install ActivePerl-5.6.1 (required to build your projects) (this setup adds some env variables).
  2. install S60 SDK for Symbian, i don't recommend beta versions.
  3. install JRE (required by the Carbide Eclipse-based IDE).
  4. install Carbide C++.
  5. for console apps to run, you'll need to add "textshell" in a separate line at the beginning of your "{SDK_PATH}\Epoc32\Data\epoc.ini" file.
then open the Carbide C++ and create a new Symbian OS C++ project-> Generic Symbian OS-> Basic Console Application(EXE) build and run. Let's call this first project "Test"

Troubleshooting:
  1. when i first tried to run, i got this error "BLDMAKE ERROR: Platform ARMV5 not supported by \Symbian\Carbide\workspace\Test\group\BLD.INF" i found that the BLD.INF file contained the project information specially the platform details, as a windows user you expect that to be: "PRJ_PLATFORMS WINSCW GCCE" i found it was "PRJ_PLATFORMS DEFAULT" u can change it manually but to avoid doing that everytime i found it can be customized in the Carbide under Windows-> Preferences-> Carbide.C++-> Platform Filtering Preferences where i unchecked everything except WINSCW and GCCE.

    update: i found later that you can choose not to install the ARMV5 and GCCE in the SDK setup and everything will still work fine for you - as far as we are concerned.

  2. Windows Vista users may face other problems but i can't cover everything here, however i can say that the Symbian online community is very active and you're likely to find the solution to ur problem after a simple search, just be patient it may seem difficult at the beginning.
next time we'll go through our first console application! have fun!!!