QNX 6.4.0 loves ARM v6
One of the really cool things about 6.4.0 is the support for ARM v6 chips.
You may recall that ARM v5 chips have a somewhat icky cache implementation, resulting in an unfortunate limititation in the virtual address range per process, and also a limitation in the number of processes in the system. It’s all described here, if you are interested.
The really cool news is that the v6 architecture doesn’t have this problem (it has a physically tagged cache), and thus the limitation has been removed (read all about it here!).
Not only that, but the gcc 4.2.4 compiler is much better for ARM, resulting in much better code generation.
QNX 6.4.0 now also supports the Vector Floating Point unit – which can make a big difference – read about it here.
Last but not least, the ARM kernel and Image Filesystem are now mapped with large 1Mb pages. This really boosts the performance of kernel calls – since we are using way fewer TLBs.
The fact that 6.4.0 supports large pages is also important for userland programs, especially on ARM – I’ll get into that in another post.