Personal Digital Assistants (PDA’s) or mobile phones applications are not anymore restricted to wireless communications or multimedia, but have been extended to handle Global Navigation Satellite System (GNSS) functionalities. Consequently, the growing market of GNSS capable mobile devices is driving the interest of software solutions as they provide several advantages with respect to the conventional hardware architectures currently implemented in the mass market receivers. First, they share the same system resources such as the processor, embedded memory and power with other system units, reducing both the size and the costs of their integration. Second, they can be easily reprogrammed - via firmware updates - for incorporating the latest developments, such as the exploitation of the future GNSS signals or some improved multipath mitigation techniques. Finally, they offer a more flexible solution for rapid research and development as compared to conventional hardware receivers where the chip design is fixed and obtained after a very long integration process. This paper will first introduce the challenges of the software implementation of a GNSS receiver, with a main focus given to the base-band processing and the correlation issues. It will then describe the already existing solutions with their respective advantages and drawbacks, and provide an estimation of their complexity in term of computational load. From this, a new developed algorithm will be introduced, and its performances in term of integer operations needed to perform the correlation analyzed and compared to the other solutions.