Personal Digital Assistants (PDAs) or mobile phones applications are not anymore restricted to multimedia or wireless communications, but have been extended to handle Global Navigation Satellite System (GNSS) functionalities. The new generation of portable devices is becoming suitable for use as navigators thanks to their large displays and their improved storage capacities. But the use of the GNSS technology in the cellular handsets has some drawbacks. The functionalities are usually implemented using a standalone hardware module, introducing a relatively expensive item to integrate into such cost sensitive devices. However, with the increasing performance of modern embedded processors, it becomes now feasible to implement a GNSS receiver in software, where all the basic operations are performed on a general purpose microprocessor. Consequently, the growing market of GNSS capable mobile devices is driving the interest of software solutions, since they provide several advantages with respect to the conventional hardware architectures currently implemented in the mass market receivers. First, the receiver and the device can share the same system resources, reducing both the size and the costs of their integration. Second, they can be easily reprogrammed - via web firmware updates - for incorporating the latest developments. Software receivers thus constitute a very flexible solution for rapid research and development. However, implementing a GNSS receiver in software is not straightforward. The large computing resources required for performing the different operations on a microprocessor constitute a major issue, as compared to a hardware design where the chip is specifically designed for this task and can thus handle a much higher data throughput. This paper introduces a new receiver architecture based on batch processing of the incoming samples. Data sharing the same characteristics are regrouped into batches and processed collectively instead of sequentially. This way, it becomes possible to progressively reduce the data throughput and, consequently, the computational load of the base-band operations.