Windows Embedded Blog bsquare
   
 
windows embedded blog
April 7th, 2008 SD vs. MMC
May 9th, 2008 Adapting the Sample Host Controller
May 14th, 2008 Understanding Critical Section Deadlocks in Windows CE 6
More > > > > > >
 
 
Windows Embedded Blog questions
 
Windows Embedded Blog experts
 
Windows Embedded Blog updates
Email:

 

. . . . . . . . . . . . . . . . . . . . . .
RETURN TO BLOG HOME

VISIT WWW.BSQUARE.COM

  September 8th , 2006
___________________________________________
Windows CE 6 Performance

After reading about all of the changes to the memory architecture in Windows CE 6 you are probably asking yourself about the performance impact of these changes.  Windows CE 6 is still in Beta so measuring this directly at this time might give us a wrong impression.  Especially since this is a core change in this release. But let's talk about the expected changes to performance that Microsoft announced at MEDC.

Process Switching

Architecturally, process switching is expected to be faster than it was on Windows CE 5.0.  The OS will need to maintain a different page table for each process and be able to just switch to these new page tables for a given process switch.  It will avoid updating the process memory access permissions, since all processes will be assigned a different virtual memory map.

API Calls

There are three main types of PSL function calls in Windows CE

  • Kernel calls where the function code is contained in the kernel 
  • Kernel Mode PSL Calls where the API call is in GWES, Device, Filesys and kernel mode drivers
  • Interprocess calls which fall outside of these two types and the code lies completely in another process

Kernel Calls

Kernel Calls should have a similar level of performance as they have in Windows CE 5.0.

Kernel Mode PSL Calls

Instead of leaving most of the PSL calls in separate applications, Windows CE 6.0 can call a large portion of these API calls directly into kernel space without the overhead of an interprocess call.  Filesys, GWES, Device and your kernel mode drivers can all be directly called by KCoredll.dll through coredll.dll since they have been moved into the kernel process space.  The system will perform a PSL jump, but it will save the time necessary to flush the cache and remap the process into slot 0.  This should improve things such as networking, graphics and file system accesses.  In addition, the old model frequently would call multiple APIs in multiple processes.  This can be very expensive depending on your processor architecture.  This is one of the areas that should show the greatest perf improvement.

Interprocess Calls

Interprocess calls not associated with Filesys, GWES and Device and your kernel drivers are expected to be more expensive since the system will now need to use data marshalling to help perform this task.

Memory Allocation

Memory allocation should perform equally on Windows CE 6 as it does on Windows CE 5.0.

Footprint Changes

Windows CE 6 is planned to increase the system footprint by about 5%.

Testing these Changes

It is going to be very interesting to see the final performance metrics of Windows CE 6.  When the product is released I want to run some performance tests on Windows CE 6 and Windows CE 5.0 and compare these on identical platforms.  I will start by focusing on IE, networking and file system performance since I think that based on these architectural changes, they have the potential of having some interesting improvements.

Q and A Session

Question:

In your blog ur talking about device.exe and udevice.exe but as per jason prev blog in WincE6 they have changed these to dll's here is what he wrote  In addition to the new memory model  filesys.exe,  gwes.exe,  device.exe and coredll.dll are structured.  As can be seen from the diagram below  all of these modules that were previously separate applications have now been converted to dlls. device.exe or device.dll in ce6

Answer:

The functionality that previously existed as device.exe has been moved into the kernel as device.dll.  Device.exe no longer exists.  References in the blog to device.exe were comparisons to CE5.  You can find this described in my blog posting under the Kernel Mode Drivers section. 


 A new process called udevice.exe has been created to host user mode device drivers.  This component is not a dll, but a true user process.

. . . . . . . . . . . . . . . . . . . . . . .
Jason Browne
Director Platform Software Engineer
Professional Engineering Services
BSQUARE Corporation | Contact Me!