EP1580664A2

Computing device with relatively limited storage space and operating / file system thereof

Abstract

A computing device includes a processor, a storage device having an executable file, and a file system for executing the file in place on the storage device on behalf of the processor. The file is divided into multiple non-contiguous fragments on the storage device, and the computing device further includes a virtual address translator interposed between the processor and the storage device for translating between physical addresses of the fragments of the file on the storage device and corresponding virtual addresses employed by the processor.

EP1580664A2, drawing sheet 1
Sheet 1 of 9

Term

Term ended

Projected expiry passed 22 March 2025, 1.5 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

13 claims: 4 independent, 9 dependent

  1. 1
    A computing device including a processor, a storage device having an executable file, and a file system for executing the file in place on the storage device on behalf of the processor, the file being divided into multiple non-contiguous fragments on the storage device, the computing device further including a virtual address translator interposed between the processor and the storage device for translating between physical addresses of the fragments of the file on the storage device and corresponding virtual addresses employed by the processor.
  2. 6
    A method of executing a file in place on a storage device, the file being divided into multiple non-contiguous fragments on the storage device, the method comprising:locating the file on the storage device by way of an access driver therefor;determining that the file can in fact be executed in place on the storage device;obtaining information relating to the file by way of the access driver including a virtual start address specified by the file and a physical location and length of each fragment of the file;notifying a virtual address translator regarding the obtained information such that the virtual address translator can create a mapping of the file from physical addresses representing the multiple non-contiguous fragments on the storage device to corresponding virtual addresses representing a single contiguous virtual location starting at the virtual start address specified by the file;executing the file by issuing commands based on the virtual addresses as mapped by the virtual address translator, whereby the virtual address translator locates data to be executed in connection with the file directly from the storage device.
  3. 8
    A computer-readable storage medium having stored thereon an executable file for being executed thereon, the medium being mounted to a computing device including a processor and a file system for executing the file in place on the medium on behalf of the processor, the file on the storage medium being divided into multiple non-contiguous fragments, the computing device further including a virtual address translator interposed between the processor and the storage device for translating between physical addresses of the fragments of the file on the storage device and corresponding virtual addresses employed by the processor, the file including file information specifying a starting virtual address and being stored on the storage medium with virtual branching addresses based on the specified starting virtual address, whereby the file on the storage medium appears to be contiguous to the processor by way of the virtual address translator.
  4. 12
    A computer-readable medium having stored thereon computer-executable instructions for performing a method of executing a file in place on a storage device, the file being divided into multiple non-contiguous fragments on the storage device, the method comprising:locating the file on the storage device by way of an access driver therefor;determining that the file can in fact be executed in place on the storage device;obtaining information relating to the file by way of the access driver including a virtual start address specified by the file and a physical location and length of each fragment of the file;notifying a virtual address translator regarding the obtained information such that the virtual address translator can create a mapping of the file from physical addresses representing the multiple non-contiguous fragments on the storage device to corresponding virtual addresses representing a single contiguous virtual location starting at the virtual start address specified by the file;executing the file by issuing commands based on the virtual addresses as mapped by the virtual address translator, whereby the virtual address translator locates data to be executed in connection with the file directly from the storage device.