Carbonsoft cxCpu 4 Release Notes
Release 4.1.00 / 14 February 2004

Introduction |  Known Issues |  License | 

 

Introduction

Welcome to the first release of Carbonsoft cxCpu 4.

It's been over two years since the last release of cxCpu, but I think it's been time well spent - hopefully you will too. The Api has been replaced by a new class library that makes getting information about your processor(s) even easier and more intuitive than before. Some parts of previous releases - notably the Vcl component - didn't make the cut for release 4 but for everything that didn't make it I've included similar.

The class library in cxCpu 4 has also replaced the old non-visual component from cxCpu 3. There were several reasons for this, the most compelling being the new SMP support. With an unknown number of processors in the system this clearly wasn't going to fit nicely into the object inspector. I toyed with several Vcl implementations before deciding on the class library.

The only real difference implementing the class library for you, the developer, is that you have to add cxCpu40.pas to your uses clause. Every Vcl-based implementation I tried involved you having to write additional code or deal with property editors, not to mention incurring substantial overhead in memory and resources. I didn't like that - cxCpu is meant to be simple to use. I decided to forget the Vcl component and concentrate on making cxCpu 4 the best release yet.

Now that cxCpu is a code only solution you can use it in both Gui and Console applications using the class library instead of having to resort to the Api. The procedural interface is still there for those die-hards who prefer the functional route, the inclusion of cxCpu40Intf.pas, compatible with cxCpu2kIntf.pas should prove helpful when migrating old code.

I must confess to being a die-hard until recently - getting information from the class library is (IMO) even easier than the old vcl component. The new features that allow you to define how the results are formatted are a definite boon, especially when writing demo programs <g>

A quick example, to display the size of the level 2 unified cache;

using the cxCpu3 vcl component:

var
  CacheSize: Integer;
begin
  CacheSize := cxCpu20001.Cache.Level2;
  if CacheSize <= 1024 then
    Label1.Caption := Format('%d Kb', [CacheSize])
  else
    Label1.Caption := Format('%1.1n Mb', [CacheSize / 1024]);
end;

and again, using the cxCpu4 class library:

Label1.Caption := cxCpu.Processors[0].Cache.Level2.Size.FormatBytes;

 

Release Information

While this release has been tested, the only real test is to throw it at as many different processors as possible. Your help in testing is very much appreciated and I'm interested in hearing all feedback, good or bad.

This release has been tested with Delphi versions 6, and 7 and Kylix 2 & 3. It may work on Kylix 1 but it defintely won't work on Delphi 3 or earlier.

It doesn't work at all on C++ Builder since the Interface implementation isn't the same as Delphi (wasn't expecting that) - if some enterprising C++ developer wants to throw some pointers <g> my way on implementing C++ Builder support I'd appreciate it.

This release doesn't support the new Intel "Prescott" processors with their new Cpuid instructions and yet another cache detection scheme. I have all the relevent documentation but since AFAIK they're not actually in the wild yet I've decided to leave support for them until a later release.

Please send any feedback regarding this release to support@carbonsoft.com quoting "cxCpu4 (Win32)" in the subject line.

 

Known Issues

I've intermittently seen strange speed results on my PIII laptop, but other Intel processors I've tried seem fine. I've been unable to pin down the cause as yet.

The Pentium III / Pentium III Xeon overlap still exists, cxCpu 4 assumes that 512Kb of L2 cache or less indicates a Pentium III while more indicates a Pentium III Xeon.

Changes in the FSB speed after Windows has started may not be reflected by cxCpu on Pentium 4 processors with hyperthreading technology.

Indicated support for hyperthreading may only represent that the core architecture supports HT technology, not that it is actually supported by the processor.

 

License Information

Carbonsoft cxCpu is Copyright © 1995-2004 Kev French, Carbonsoft. All rights reserved.
adCpuUsage is Copyright © 2000 Alexey A. Dynnikov. (http://www.aldyn-software.com/)

This work is licensed under the Creative Commons Attribution-ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/1.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.