IP Library › Granted Patent US 9,417,925
Granted Patent B2
US 9,417,925 · App. 13/655,472 · Granted Aug 16, 2016

Dynamic functionality partitioning

Inventors: Mats Eric Myrberg (Seattle, WA); Gerald Reuben DeJean, III (Redmond, WA); Lance Eric Greenwade (Carnation, WA); Marc Tremblay (Clyde Hill, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F9/5061G06F2209/509
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,417,925
App. No.
13/655,472
Granted
Aug 16, 2016
Kind
B2
Abstract

A sensor and processing system dynamically partitions functionality between various remote sensor nodes and a processing subsystem based on available communication capabilities. Redundant functionality is located at the processing subsystem and each of the various remote sensor nodes, and each sensor node coordinates with the processing subsystem to determine the location (e.g., at the processing subsystem or at the sensor node) at which a particular functionality is executed.

Claims (37)

1. A method comprising:

detecting communication capabilities of a communications channel between a sensor node and a processing subsystem, the communications channel carrying a sensor data stream from the sensor node to the processing subsystem, the sensor node being located at a different location than the processing subsystem; and

adjusting allocation of functionality between the sensor node and the processing subsystem based on the detected communication capabilities, wherein the adjusting the allocation of functionality causes one of the sensor node or the processing subsystem to perform a process on sensor data and causes the other of the sensor node or the processing subsystem to not perform the process on the sensor data, thereby changing characteristics of the sensor data communicated in the sensor data stream.

2. The method of claim 1 wherein the characteristics of the sensor data communicated between the sensor node and the processing subsystem in the sensor data stream before the adjusting the allocation of functionality and the characteristics of data communicated between the sensor node and the processing subsystem in the sensor data stream after the adjusting the allocation of functionality differ by a communication bandwidth used to communicate the sensor data between the sensor node and the processing subsystem.

3. The method of claim 1 wherein the characteristics of the sensor data communicated between the sensor node and the processing subsystem in the sensor data stream before the adjusting the allocation of functionality and the characteristics of data communicated between the sensor node and the processing subsystem in the sensor data stream after the adjusting the allocation of functionality differ by a level of encryption applied to the sensor data communicated between the sensor node and the processing subsystem.

4. The method of claim 1 wherein the processing subsystem and the sensor node each include a preprocessor block that performs the same preprocessor functionality.

5. The method of claim 4 wherein at least one of the processing subsystem and the sensor node further includes a preprocessor block that provides preprocessor functionality that is not provided by the other of the processing subsystem or the sensor node.

6. The method of claim 1 wherein the adjusting the allocation of functionality comprises:

enabling one or more preprocessor blocks of at least one of the sensor node or the processing subsystem to accommodate a change in communication channel bandwidth.

7. The method of claim 1 wherein the adjusting the allocation of functionality comprises:

disabling one or more preprocessor blocks of at least one of the sensor node or the processing subsystem to accommodate a change in communication channel bandwidth.

8. The method of claim 1 wherein the adjusting the allocation of functionality comprises:

enabling a preprocessor block of one of the sensor node or the processing subsystem; and

disabling a corresponding preprocessor block in the other one of the sensor node or the processing subsystem.

9. A computer memory having encoded thereon computer-executable instructions that upon execution configure a computer to perform operations comprising:

detecting communication capabilities of a communications channel between a sensor node and a processing subsystem, the communications channel carrying a sensor data stream from the sensor located at a first location and the processing subsystem located at a second location; and

adjusting allocation of functionality provided by preprocessor blocks between the sensor node and the processing subsystem based on the detected communication capabilities, wherein the adjusting the allocation of functionality causes one of the sensor node or the processing subsystem to perform a process on sensor data and causes the other of the sensor node or the processing subsystem to not perform the process on the sensor data, thereby changing characteristics of the sensor data communicated in the sensor data stream.

10. The computer memory of claim 9 wherein the adjusting the allocation of functionality comprises:

enabling one or more preprocessor blocks of at least one of the sensor node or the processing subsystem to perform the function and to accommodate a change in communication channel bandwidth.

11. The computer memory of claim 9 wherein the adjusting the allocation of functionality comprises:

disabling one or more preprocessor blocks of at least one of the sensor node or the processing subsystem to accommodate a change in communication channel bandwidth.

12. The computer memory of claim 9 wherein the adjusting the allocation of functionality comprises:

enabling a preprocessor block of one of the sensor node or the processing subsystem; and

disabling a corresponding preprocessor block in the other one of the sensor node or the processing subsystem.

13. A system comprising:

one or more memories;

one or more processors coupled to the one or more memories;

one or more modules stored in the one or more memories and operable on the one or more processors, the one or more modules comprising:

a communications interface module configured to detect communication capabilities of a communications channel between a sensor node and a processing subsystem, the communications channel carrying a first sensor data stream; and

a partitioning controller module configured to adjust allocation of functionality between the sensor node and the processing subsystem based on the detected communication capabilities, wherein the adjusting the allocation of functionality causes one of the sensor node or the processing subsystem to perform a process on sensor data and causes the other of the sensor node or the processing subsystem to not perform the process on the sensor data, thereby changing characteristics of the sensor data communicated in the sensor data stream.

14. The system of claim 13 wherein the characteristics of the data in the sensor data stream before the adjusting the allocation of functionality and the characteristics of the sensor data in the sensor data stream after the adjusting the allocation of functionality differ by an amount of preprocessing performed on the sensor data by the sensor node or the processing subsystem.

15. The system of claim 13 wherein the processing subsystem and the sensor node each include one or more preprocessor blocks that are capable of performing overlapping preprocessor functionality.

16. The system of claim 13 wherein the processing subsystem and the sensor node each include a preprocessor block that performs the same preprocessor functionality.

17. The system of claim 16 wherein at least one of the processing subsystem and the sensor node further includes a preprocessor block that provides preprocessor functionality that is not provided by the other of the processing subsystem or the sensor node.

18. The system of claim 13 wherein the partitioning controller module is configured to adjust the allocation of functionality by enabling one or more preprocessor blocks of at least one of the sensor node or the processing subsystem to accommodate a change in communication channel bandwidth.

19. The system of claim 13 wherein the partitioning controller module is configured to adjust the allocation of functionality by disabling one or more preprocessor blocks of at least one of the sensor node or the processing subsystem to accommodate a change in communication channel bandwidth.

20. The system of claim 13 wherein the partitioning controller module is configured to adjust allocation of functionality by enabling a preprocessor block of one of the sensor node or the processing subsystem and disabling a corresponding preprocessor block in the other one of the sensor node or the processing subsystem.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 039025/0454 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2012
From: MYRBERG, MATS ERIC; DEJEAN, GERALD; GREENWADE, LANCE ERIC; TREMBLAY, MARC
To: MICROSOFT CORPORATION
Reel/Frame 029155/0520 →
Continuity (1)
Related Publication 20140115128A1 · Apr 24, 2014