If you’ve ever gone through the process of porting an application, you know the pain. Porting can be difficult if you’re not vigilant from the outset. There are tons of written guidelines and best practices for specific platforms or architectures, such as those going to 64 bit for Windows apps or Intel architecture and Mac OS. In the past, we have talked about Endian issues, which are very specific to porting from different architectures (big-endian vs little-endian). This time I want to take you through some general porting issues to show you how you can
Read More »Ok… bad pun but question still stands. We wanted to try and answer that question so we worked with the team at VDC Research to try and quantify some of these questions. You can download their full report on the multicore and multiprocessor landscape, but here’s one piece of data that I thought might be interesting. Basically, heterogeneous processor architectures are growing quickly and the number of projects using simple processor architectures is diminishing fast. Really, backs-up what we all instinctively know and understand but nice to see some empirical evidence to add to the
Read More »Endianness refers to the ordering of bytes into memory. As many of you are aware, computers do ordering differently. You can have the representation of Big-endian or Little-endian. Essentially Big-endian stores data big-end first, meaning the first byte is the biggest and Little-endian stores data little-end first, meaning the first byte is smallest. Because all machines are different and write data either as big or little-endian, a computer could read this data incorrectly. If you are not prepared ahead of time for heterogeneous processor architectures, then you might be in for a world of hurt
Read More »I love this quote by Carl Ek from Code Integrity solutions: There are 0010 0000 kinds of people in the world: Those that understand the difference between Big Endian and Little Endian, and those that do not. Issues with Endianism and processor architecture ports are becoming more and more common these days as more desktop source code moves into different arenas. Gone are the days when the 32-bit memory model or little-endian format dominate. Software changes are required to support the growth occurring not at the desktop, but in the server and mobile platforms. Mobile devices especially have opened a
Read More »