IP Library Granted Patent US 8,566,389
Granted Patent B2
US 8,566,389 · App. 11/784,177 · Granted Oct 22, 2013

Thin network protocol

Inventors: Aly E. Orady (Sunnyvale, CA); Nils Bunger (Redwood City, CA)
Assignee: Samsung Electronics Co., Ltd.
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 8,566,389
App. No.
11/784,177
Granted
Oct 22, 2013
Kind
B2
Abstract

A method for a server to process a transaction on remote client hardware is disclosed. A local request is generated for the transaction. A driver level message to the remote client hardware is generated. The driver level message is sent directly to the remote client hardware to process the transaction.

Claims (72)

1. A server to process a transaction on a remote client hardware, including:

an interface;

a processor; and

a memory coupled with the processor, wherein the memory is configured to provide the processor with instructions which when executed cause the processor to:

receive a local request for the transaction;

determine the transaction involves a driver level read of the remote client hardware;

generate a driver level message for the remote client hardware that includes an opcode for a register read request and a register address field;

wherein the register read request comprises a Configuration Read Request and a CSR Read Request and the register address field comprises a Configuration address field and a CSR address field;

send the driver level message for the register read request directly to a hardware register addressed by the register address field on the remote client hardware; and

sending the driver level message directly refers to any sending of a driver level message such that the remote client hardware requires no processing of the driver level message by the remote client hardware.

2. A server as recited in claim 1 , wherein the driver level message is a message that is practically implementable by hardware, without the need for an instruction based processing element.

3. A server as recited in claim 1 , wherein the driver level message is a message that is practically implementable by hardware and is selected from a group consisting of CSR reads, CSR writes, block data transfers, and interrupts.

4. A server as recited in claim 1 , wherein the driver level message is a message that is practically implementable by hardware and is selected from a group consisting of CSR reads, CSR writes, block data transfers, and interrupts, and the remote client hardware combines interrupt data with the interrupts.

5. A server as recited in claim 1 , wherein the transaction occurs over a digitally switched network.

6. A server as recited in claim 1 , wherein the transaction occurs over a digitally switched network on a packet-based protocol.

7. A server as recited in claim 1 , wherein the transaction occurs over a digitally switched network on a packet-based protocol with unreliable service.

8. A server as recited in claim 1 , wherein the transaction occurs over a digitally switched network on a packet-based protocol with unreliable service, UDP/IP.

9. A server as recited in claim 1 , wherein the transaction occurs within connection-oriented transport.

10. A server as recited in claim 1 , wherein the transaction occurs within connectionless transport.

11. A server as recited in claim 1 , wherein remote client hardware include devices that generate a client-originated driver level message and send the client-originated driver level message directly to the server.

12. A server as recited in claim 1 , wherein remote client hardware include devices restricted to a small number of connections, or one connection.

13. A server as recited in claim 1 , wherein remote client hardware include devices using double buffering of a frame buffer.

14. A server as recited in claim 1 , wherein remote client hardware include devices comprised of only hardware.

15. A server as recited in claim 1 , wherein remote client hardware include stateless devices.

16. A server as recited in claim 1 , wherein remote client hardware include stateless devices, without the need for an instruction based processing element.

17. A server as recited in claim 1 , wherein remote client hardware include thin clients.

18. A server as recited in claim 1 , wherein remote client hardware include network printers.

19. A server as recited in claim 1 , wherein remote client hardware include VoIP phones.

20. A server as recited in claim 1 , wherein remote client hardware include computer peripherals, where computer peripherals are selected from the group consisting of serial devices, parallel devices, USB devices, Firewire devices, keyboard devices, mouse devices, human input devices, video devices, audio devices, printers, scanners, and network adapters.

21. A server as recited in claim 1 , wherein the server supports a loopback interface for compatibility with a remote protocol.

22. A server as recited in claim 1 , wherein the server supports client USB termination on the server.

23. A server as recited in claim 1 , wherein the remote client hardware includes thin clients.

24. A server as recited in claim 2 , wherein the remote client hardware includes thin clients.

25. A server as recited in claim 3 , wherein the remote client hardware includes thin clients.

26. A server as recited in claim 9 , wherein the remote client hardware includes thin clients.

27. A server as recited in claim 1 , wherein remote client hardware include computer peripherals, where computer peripherals are selected from the group consisting of serial devices, parallel devices, USB devices, Firewire devices, keyboard devices, mouse devices, human input devices, video devices, audio devices, printers, scanners, and network adapters.

28. A server as recited in claim 2 , wherein remote client hardware include computer peripherals, where computer peripherals are selected from the group consisting of serial devices, parallel devices, USB devices, Firewire devices, keyboard devices, mouse devices, human input devices, video devices, audio devices, printers, scanners, and network adapters.

29. A server as recited in claim 3 , wherein remote client hardware include computer peripherals, where computer peripherals are selected from the group consisting of serial devices, parallel devices, USB devices, Firewire devices, keyboard devices, mouse devices, human input devices, video devices, audio devices, printers, scanners, and network adapters.

30. A server as recited in claim 9 , wherein remote client hardware include computer peripherals, where computer peripherals are selected from the group consisting of serial devices, parallel devices, USB devices, Firewire devices, keyboard devices, mouse devices, human input devices, video devices, audio devices, printers, scanners, and network adapters.

31. A server as recited in claim 16 , wherein an instruction based processing element includes one of the following: a CPU, an MCU and a DSP.

32. A server as recited in claim 1 , wherein the transaction occurs over a thin network protocol.

33. A server as recited in claim 32 , wherein the thin network protocol is structured on top of UDP/IP.

34. A method for a server to process a transaction on a remote client hardware, including:

receiving a local request for the transaction;

determining the transaction involves a driver level read of the remote client hardware;

generating a driver level message to the remote client hardware that includes an opcode for a register read request and a register address field;

wherein the register read request comprises a Configuration Read Request and a CSR Read Request and the register address field comprises a Configuration address field and a CSR address field;

sending the driver level message for the register read request directly to a hardware register addressed by the register address field on the remote client hardware; and

sending the driver level message directly refers to any sending of a driver level message such that the remote client hardware requires no processing of the driver level message by the remote client hardware.

35. A method as recited in claim 34 , wherein the transaction occurs over a digitally switched network.

36. A method as recited in claim 34 , wherein remote client hardware include devices comprised of only hardware.

37. A method as recited in claim 34 , wherein remote client hardware include stateless devices.

38. A method as recited in claim 34 , wherein remote client hardware include thin clients.

39. A method as recited in claim 34 , wherein remote client hardware include network printers.

40. A method as recited in claim 34 , wherein remote client hardware include VoIP phones.

41. A method as recited in claim 34 , wherein remote client hardware include computer peripherals, where computer peripherals are selected from the group consisting of serial devices, parallel devices, USB devices, Firewire devices, keyboard devices, mouse devices, human input devices, video devices, audio devices, printers, scanners, and network adapters.

42. A remote client hardware device for processing transactions generated by a server including:

an interface configured to send a driver level message to a server;

a hardware component; and

an interrupt controller coupled with the hardware component and the interface, configured to:

determine an interrupt for the hardware component should be sent to a server;

generate a driver level message for the server that includes an opcode for an Interrupt,

wherein the opcode for the Interrupt includes an opcode for a register read request and a register address field;

wherein the register read request comprises a Configuration Read Request and a CSR Read Request and the register address field comprises a Configuration address field and a CSR address field;

send the driver level message for the Interrupt directly to the server; and

the remote client hardware does not require processing of driver level messages.

43. A remote client hardware device as recited in claim 42 , wherein the transaction occurs over a digitally switched network.

44. A remote client hardware device as recited in claim 42 , wherein remote client hardware include devices comprised of only hardware.

45. A remote client hardware device as recited in claim 42 , wherein remote client hardware include stateless devices.

46. A remote client hardware device as recited in claim 42 , wherein remote client hardware include thin clients.

47. A remote client hardware device as recited in claim 42 , wherein remote client hardware include network printers.

48. A remote client hardware device as recited in claim 42 , wherein remote client hardware include VoIP phones.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE SCHEDULE A PREVIOUSLY RECORDED ON REEL 029651 FRAME 0543. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT (INCLUDING SCHEDULE A). Recorded Feb 8, 2013
From: PANO LOGIC, INC.
To: PANO, LLC
Reel/Frame 029778/0415 →
CORRECTIVE ASSIGNMENT TO CORRECT THE SCHEDULE A PREVIOUSLY RECORDED ON REEL 029651 FRAME 0765. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT (INCLUDING SCHEDULE A). Recorded Feb 8, 2013
From: PANO, LLC
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 029778/0533 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2013
From: PANO, LLC
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 029651/0765 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2013
From: PANO LOGIC, INC.
To: PANO, LLC
Reel/Frame 029651/0543 →
SECURITY AGREEMENT Recorded Jun 4, 2012
From: PANO LOGIC, INC.
To: COMERICA BANK
Reel/Frame 028316/0080 →
CHANGE OF NAME Recorded Dec 5, 2007
From: ATTO DEVICES, INC.
To: PANO LOGIC, INC.
Reel/Frame 020212/0850 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2007
From: ORADY, ALY E.; BUNGER, NILS
To: ATTO DEVICES, INC.
Reel/Frame 019449/0890 →
Continuity (2)
Provisional Application 60819592 · Jul 10, 2006
Related Publication 20080010340A1 · Jan 10, 2008