Hi, Rene!
Derek had the right of it. This keyboards are extremely complex computers, with many different processors each with its own storage, and additionally with a very advanced tone generator, which also has its own memory. You can get an idea by looking at these two articles by Paul J. Drongowski,,
http://sandsoftwaresound.net/yamaha-genos-main-cpu/ and
http://sandsoftwaresound.net/yamaha-genos-tone-generation/. Although the articles describe the Genos, the architecture is consistent in all the arranger keyboards, and the PSR-SX line is similar.
In short, the main CPU has a LOT of non-volatile memory connected to it, which contains the operating system, the software, the styles, voice definitions, user space (the visible user drive), etc. This memory is fast enough to support the software need,
but is not fast enough to serve sound samples to the sound generators. The "default" expansion data is contained in this memory, and copied as needed to the sound-generator associated non-volatile memory.
The sound generator (as far as I know, it uses the same SWP70 as the Genos) has its own, very fast (and connected on a very wide bus) non-volatile memory. This memory, which is 2GB on the PSR-SX900 (6GB on the Genos), contains only and exclusively sound samples. Part of the memory is devoted to the internal built-in content, and part to the expansion voices. When loading new expansion packs, this is the memory that gets written.
With all that said, 2GB is the limit of available sample memory on the 'SX900. Unless Yamaha was willing to delete the internal voices, or to reduce their memory usage by reducing quality, I see no way to get more than around 1GB for expansion packs. This is also consistent with this keyboard's marketing positioning: it is the next best after a Genos, so don't expect it to be on-par with the Genos at any time...