Saturday, July 26, 2008

Small-Form Factor PC and Win CE

When I got the VIA Artigo, it comes bundled with full (but non-commerical) versions of Windows CE 6.0 and Visual Studio 2005. I guess its part of Microsoft's marketing to get more people hooked on their embedded OS.

I tried playing with Windows CE 6.0 R2. Its a bit irritating at first because I had to install a couple of service packs before Win CE 6.0 R2 can be installed. But once I got Windows CE running, I am impressed (I am normally not a fan of Microsoft). Win CE is good for quickly building embedded applications. With the Platform Builder in Visual Studio, one can click and add components such as web servers, drivers, OS applications from a fairly comprehensive library into an image. This image (a bit like vmlinuz) is compiled and downloaded into the target embedded device. Downloading and debugging is done via ethernet, so its very convenient (once you managed to install and run eboot.bin onto the target so that it can initiate the ethernet connection)

Provided
that a Win CE board support package (BSP) is available from the embedded platform vendor, embedded linux development should eat the dust compared to Windows CE where it comes to time-to-market. A BSP contains the customised driver code needed to interface with the platform devices and peripherals.


Unfortunately, fast doesnt mean no work. Tinkering is still needed to make CE work on the Artigo. Artigo just refuses to recognize my USB thumbdrives. Since I was not really keen to spend many hours doing embedded development/debugging at this particular moment, I decided to just use good old XP instead. Actually I was deciding between XP and Linux, but because of the application that was forming in my mind, I chose XP. Linux is stable and fast, but when it comes to multimedia and graphics, Windows is still better, in my opinion.

Friday, July 25, 2008

Small-Form PC

I was lucky enough to get my hands on a VIA Artigo computer recently. It is probably one of the smallest small-form PC ever. Sleek and small.


The VIA Artigo uses the pico-ITX motherboard, which is the smallest motherboard from VIA. The pico-ITX board is primarily designed for embedded applications that need more-than-the-usual horsepower. For example, industrial control, set-top boxes such as singtel's mio TV, car computers, ATMs, even thin clients.

VIA sells the Artigo computer as a hobbyist kit, without RAM or hard disk. My Artigo has the following.
- CPU : VIA C7 (This is a 1 GHz x86 CPU. It also apparently has built-in AES/SHA cryptographic cores!)
- Chipset: VIA VX700 (northbridge, southbridge, integrated graphics, HD audio all in one package). Supports SATA, IDE, USB, DDR2 RAM etc
- RAM: 512 MB
- 3.5" HD: 80 GB
- 4 USB ports
- 1 VGA port
- audio out and in ports

The VX700 chipset diagram


Lets see whats inside


The heat sink is for the C7 CPU and the VX700. I like the low profile heat disspation design.


Harddisk is mounted to the custom chasis mounting.


Removing the hard disk reveals the notebook RAM

Monday, July 14, 2008

Gaming Rig More Pics

I decided to upload some day pics of the rig as well.






I placed the RF transceiver for the mouse and keyboard inside the case, and held it down to the DVD bay with some tape.


The joints of the transparent case are made of acrylic too.

Gaming Rig Components Pics

EN9600GT graphics card with the 'gladiator' quiet fan


The red butterfly is the BTF90 fanless CPU cooler!


You can see the copper heat sink fins here. Note the height of the cooler. There are also four heat pipes. A casing fan and the power supply fan are just next to the cooler to ensure a good air flow.


And this must be the northbridge heat sink ....


And the smaller southbridge heat sink.


Back IO port panel


And the 625W Enermax Mod82+ power supply. Its pretty quiet and the modular connectors, while not essential, make the case a lot tidier. The casing fans turn out to be the main noise generator here.

Gaming Rig Pics

These flashy LED fans give the rig a warm fuzzy glow ....




The first game I tested the rig on is Command & Conquer : Tiberium Wars. Playing at 1920x1080 widescreen ... real nice!


Tuesday, July 1, 2008

9600GT overclocking

Okay the next step is to overclock the GPU (Graphics Processing Unit). An overclocked GPU speeds up gameplay a lot than an overclocked CPU. It turns out to be pretty easy and safe to overclock the GPU. One merely adjusts the clock frequencies (core, shader, memory) via software and there is no risk of over-voltage damage. The only risk is that higher frequencies may result in too high a temperature and cause thermal damage. From the nVidia forums, people claimed that the 9600GT can work safely even up to 80 'C, and the typical load is around 50 - 60 'C.

I tuned the settings using nVidia's control panel, and tested the stability of different values using 3DMark06. I tried Rivatuner for tuning, but it doesn't yet officially support the latest nVidia driver, and anyway the vendor's own software is good enough.

The default frequencies are ...
core : 650 MHz
shader : 1625 MHz
memory (DDR) : 900 MHz
3DMark06 score : 10702

I found out that the shader frequency in the 9600GT is apparently linked to the core frequency by a ratio of 2.5, ie, an increase of 10 MHz in core = 25 MHz in shader, for the 9600GT to be stable.

After a few tries, the best stable frequencies I can get is
core : 775 MHz
shader : 1938 MHz
memory : 975 MHz
3Dmark06 score : 12068

Running C&C3 for some time (at the best graphics settings), I get a highest GPU temperature of around 52 'C, so the temperature is well within limits. I had tweaked the core clock to increase by 19%, and the benchmark reports an increase in performance of around 13%. Excellent! Comparing my 3Dmark06 score with so-called VirtualMark scores (simulated for other configurations that are not overclocked),

mine | 8800GT | other 9600GT | 9800GX2
12068 | 11600 | 10500 | 13600

Now the 9600GT GPU is a mainstream card. nVidia named their cards as x400, x600 or x800, where x400 is for low-end, x600 for mainstream games and x800 is for the best gaming performance. The nVidia 9000 series is a newer architecture compared to the previous the 8000 series generation. Now the 9600GT is supposed to perform a bit worst than the 8800GT normally, but after overclocking its on par! And now my OCed GPU performs not too badly against the 9800GX2 (2 GPU cores), which is the best currently, and cost like 4 times as much. He he ....

Sunday, June 29, 2008

CPU Overclocking

The Gigabyte EP45-DS3R motherboard is pretty friendly for overclocking. With a little browsing of Intel's P45 chipset and E8000 series CPU datasheets, I am ready to void my CPU's warranty.

From BIOS, I am able to change the clock frequency that the P45 MCH (Memory Controller Host or something) provides to the CPU. This determines the CPU core frequency, with the use of the CPU multiplier. The E8400 CPU has a locked multiplier of x6 or x9 (x6 is used automatically by software through the Enhance SpeedStep feature to reduce power consumption).

The initial CPU clock is 333 MHz. With a x9 multiplier, the usual CPU core frequency is 2997 MHz. By adjusting the clock to 378 MHz, I can get 9 x 378 = 3402 MHz core frequency or a 13% increase from the stock 2997 MHz. This also implies a FSB of 4 x 378 = 1512 MT/s, (x4 is due to DDR2 or intel's data quad-pumping) when the E8400 stock FSB is only 1333 MT/s. Excellent!

There is a tradeoff however. The memory cannot run with a faster FSB. My HyperX Kingston DRAM is rated at 1066 MT/s FSB. Attempts to make the memory run faster than this cause the BIOS bootup or POST (Power On Self Test) to fail. The EP45-DS3R is smart enough to reset the BIOS to default values when this happens, so this makes experimenting convenient.

Typically, a memory multiplier is employed to reduce the memory clock frequency that the MCH provides to the DRAM, so that the memory's FSB can be lowered. Here comes the crux : this multiplier is fixed at certain ratios only (why won't Intel use an arbritary counter and divider?). This basically means that at a CPU clock frequency of 377 MHz, the best memory multiplier I can get is 2.66. This means the DRAM FSB is 2.66 x 378 = 1005 MT/s. A theoretical decrease in memory bandwidth of around 6%. More of the actual memory performance later.

While the EP45-DS3R BIOs allows the CPU clock to be increased without limit, the real-life limit is heat dissipation. A high core frequency increases heat dissipation (power dissipation is proportional to frequency x voltage^2). An inappropriate core frequency will literally melt your CPU. The E8400 CPU thermal specification is approximately 72 'C, but its best to do some derating and operate at a lower temperature if you like your CPU to have longevity. Having no idea whats the proper derating value, I settle on 60 'C. The E8400 has a thermal sensor which reports the CPU temperature (or strictly the temperature at the geometric center, which is supposed to be the hottest anyway). I can access this temperature using the motherboard vendor's software EasyTune.

I used Prime 95 to push the CPU to the limit and measure the temperature at different overclock settings. Prime 95 is designed to discover prime numbers, but it is also good as a stress / stability test software for overclocking.

Its time to see how well my FANLESS cpu cooler handles the heat. To be fair, the casing fans and the heat flow inside the case is also very important, especially for a FANLESS cpu cooler.

3 GHz (default) --- 50 'C
3.4 GHz --- 52 'C
3.6 GHz --- 60 'C

I chose 3.4 GHz in the end. I can probably used 3.5 GHz or something, but I wanted a healthy margin. As dust starts to accumulate on my sparkling new CPU cooler and casing fans, I expect the heat removal efficiency to reduce, and the temperature to rise. Especially since I dont think I want to clean the PC so often, I rather live with a better margin. Another less compelling reason is that Prime 95 stresses only 1 core out of E8400 dual core capabilities. With dual core in use at the same work level (which is unlikely to happen in typical applications by the way -- nothing pushes the core like Prime 95 does), I would shutter at the kind of heat if 3.6 GHz is used.

The rather large 8 'C difference between 3 and 3.6 GHz suggests that there is some kind of performance envelope below which the BTF-92 cooler is able to do its job well.

Using PC Wizard's CPU benchmark, this is the results of overclocking

3 GHZ (default) --- 150K
3.4 GHz --- 192K
3.6 GHz --- 218K

So 3.4 GHz is pretty good. There is in fact a 30% improvement according to the benchmark.

The memory bandwidth at 1008 MT/s FSB does suffer a bit with 3.4 GHz core frequency. At the rated 1066 MT/s, PC Wizard measured a bandwith of 5.9 GB/s (a lower number from the Kingston marketed 8.5 GB/s! grumble grumble :P ) Forced to use 1008 MT/s, the bandwidth is now 5.4 GB/s, a decrease of around 9%. But since the CPU L2 cache is an enormous 6 MB, I would expect the effect of the decrease in bandwidth to be greatly reduced.