1. A method of data transfer to and from a storage device embedded in a host device, the storage device having a memory, a controller, a host interface connected to the host device and a storage device interface capable of being connected to an add-on memory, the method comprising: if the storage device is not coupled to the add-on memory, storing in the storage device a file allocation table with entries beyond the storage capacity of the storage device, the file allocation table having entries for an initial address space of the storage device and entries for an extended address space, at least a subset of the entries for the extended address space are for locations in the add-on memory that will extend the capacity of the storage device at a later time, the entries in the file allocation table that are for the extended address space are marked as unavailable; receiving a data transfer command from the host interface, the data transfer command specifying a memory address, wherein the memory has an address space; determining if the specified memory address is beyond the address space of the memory; if the specified memory address is beyond the address space of the memory and the add-on memory is coupled to the storage device embedded in the host device, routing the data transfer command to the storage device interface for access to the add-on memory, otherwise processing the data transfer command for access to the memory, wherein the address space of the memory and an address space of the add-on memory are addressed as one integral address space transparently to the host device; and if the storage device is coupled to the add-on memory, storing the file allocation table with at least some of entries for the extended address space that are for locations in the add-on memory being marked as available; the receiving, determining and routing are performed by the controller while embedded in the host device.