1460937428-81b23238-3ff6-4e13-a774-faa6ac124654

1. A method for sorting data objects on a screen, the method comprising:
displaying a set of data objects in a user interface on the screen;
receiving user input in connection with at least one of said data objects in the set of data objects;
wherein said user input indicates (a) a direction, in the user interface, to move said at least one data object and (b) an initial velocity to move said at least one data object in said direction; and
in response to the user input, moving the at least one data object across the user interface based on said direction and said initial velocity,
wherein moving the at least one data object across the user interface includes continuing to move the at least one data object for some period of time after receipt of the user input.
2. The method of claim 1, wherein moving the at least one data object across the user interface based on said direction and said initial velocity includes moving the at least one data object into a confined area on the screen.
3. The method of claim 2, wherein moving the at least one data object into a confined area on the screen includes displaying the at least one data object moving in the confined area.
4. The method of claim 3, wherein said moving in the confined area includes bouncing off an edge of the confined area.
5. The method of claim 3, wherein displaying the at least one data object in the confined area includes decelerating the at least one data object over the period of time.
6. The method of claim 2, wherein the confined area includes user interface controls to move the confined area from one location in the user interface to a different location in the user interface.
7. The method of claim 1, wherein the user interface is divided into a set of grid areas, wherein each grid area in the set of grid areas includes a subset of the set of data objects and wherein each grid area in the set of grid areas is selectable through user input.
8. The method of claim 7, further comprising:
receiving user input to select a grid area in the set of grid areas; and
expanding said grid area in the user interface, wherein expanding the grid area causes said grid area to become a focus of the user interface.
9. The method of claim 8, wherein expanding said grid area in the user interface includes enlarging a display size for each data object displayed in the subset of data objects.
10. The method of claim 1, wherein the user input further comprises selecting a data object with a mouse and moving the mouse while the data object is selected.
11. The method of claim 1, wherein moving the at least one data object in the direction indicated by the user input includes displaying the at least one data object at one or more intermediate locations on said user interface before displaying said at least one data object at a final location on said user interface.
12. The method of claim 11, wherein displaying the at least one data object at one or more intermediate locations includes:
analyzing the user input to determine the initial velocity of the at least one data; and
moving the at least one data object based on the initial velocity of the at least one data object.
13. The method of claim 1, wherein continuing to move the at least one data object for some period of time after receipt of the user input includes moving the object at the initial velocity over the period of time.
14. The method of claim 1, wherein continuing to move the at least one data object for some period of time after receipt of the user input includes decelerating the object over the period of time.
15. The method of claim 2, wherein the confined area corresponds to a workspace in the user interface.
16. The method of claim 15, further comprising receiving user input to define a new confined area in the user interface.
17. The method of claim 2, wherein moving the at least one data object into a confined area on the screen includes applying a filter to the at least one data object, wherein said filter causes a property of said at least one data object to be modified when said at least one data object is moved into said confined area.
18. A machine-readable medium carrying instructions for sorting data objects on a screen, wherein execution of the instructions by one or more processors causes:
displaying a set of data objects in a user interface on the screen;
receiving user input in connection with at least one of said data objects in the set of data objects;
wherein said user input indicates (a) a direction, in the user interface, to move said at least one data object and (b) an initial velocity to move said at least one data object in said direction; and
in response to the user input, moving the at least one data object across the user interface based on said direction and said initial velocity,
wherein moving the at least one data object across the user interface includes continuing to move the at least one data object for some period of time after receipt of the user input.
19. The machine-readable medium of claim 18, wherein moving the at least one data object across the user interface based on said direction and said initial velocity includes moving the at least one data object into a confined area on the screen.
20. The machine-readable medium of claim 19, wherein moving the at least one data object into a confined area on the screen includes displaying the at least one data object moving in the confined area.
21. The machine-readable medium of claim 20, wherein said moving in the confined area includes bouncing off an edge of the confined area.
22. The machine-readable medium of claim 20, wherein displaying the at least one data object in the confined area includes decelerating the at least one data object over the period of time.
23. The machine-readable medium of claim 19, wherein the confined area includes user interface controls to move the confined area from one location in the user interface to a different location in the user interface.
24. The machine-readable medium of claim 18, wherein the user interface is divided into a set of grid areas, wherein each grid area in the set of grid areas includes a subset of the set of data objects and wherein each grid area in the set of grid areas is selectable through user input.
25. The machine-readable medium of claim 24, further comprising instructions for:
receiving user input to select a grid area in the set of grid areas; and
expanding said grid area in the user interface, wherein expanding the grid area causes said grid area to become a focus of the user interface.
26. The machine-readable medium of claim 25, wherein expanding said grid area in the user interface includes enlarging a display size for each data object displayed in the subset of data objects.
27. The machine-readable medium of claim 18, wherein the user input further comprises selecting a data object with a mouse and moving the mouse while the data object is selected.
28. The machine-readable medium of claim 18, wherein moving the at least one data object in the direction indicated by the user input includes displaying the at least one data object at one or more intermediate locations on said user interface before displaying said at least one data object at a final location on said user interface.
29. The machine-readable medium of claim 28, wherein displaying the at least one data object at one or more intermediate locations includes:
analyzing the user input to determine the initial velocity of the at least one data; and
moving the at least one data object based on the initial velocity of the at least one data object.
30. The machine-readable medium of claim 18, wherein continuing to move the at least one data object for some period of time after receipt of the user input includes moving the object at the initial velocity over the period of time.
31. The machine-readable medium of claim 18, wherein continuing to move the at least one data object for some period of time after receipt of the user input includes decelerating the object over the period of time.
32. The machine-readable medium of claim 19, wherein the confined area corresponds to a workspace in the user interface.
33. The machine-readable medium of claim 32, further comprising instructions for receiving user input to define a new confined area in the user interface.
34. The machine-readable medium of claim 19, wherein moving the at least one data object into a confined area on the screen includes applying a filter to the at least one data object, wherein said filter causes a property of said at least one data object to be modified when said at least one data object is moved into said confined area.
35. An apparatus for sorting data objects on a screen, comprising:
one or more processors; and
a machine-readable medium carrying instructions, wherein execution of the instructions by the one or more processors causes:
displaying a set of data objects in a user interface on the screen;
receiving user input in connection with at least one of said data objects in the set of data objects;
wherein said user input indicates (a) a direction, in the user interface, to move said at least one data object and (b) an initial velocity to move said at least one data object in said direction; and
in response to the user input, moving the at least one data object across the user interface based on said direction and said initial velocity,
wherein moving the at least one data object across the user interface includes continuing to move the at least one data object for some period of time after receipt of the user input.
36. The apparatus of claim 35, wherein moving the at least one data object across the user interface based on said direction and said initial velocity includes moving the at least one data object into a confined area on the screen.
37. The apparatus of claim 36, wherein moving the at least one data object into a confined area on the screen includes displaying the at least one data object moving in the confined area.
38. The apparatus of claim 37, wherein said moving in the confined area includes bouncing off an edge of the confined area.
39. The apparatus of claim 37, wherein displaying the at least one data object in the confined area includes decelerating the at least one data object over the period of time.
40. The apparatus of claim 36, wherein the confined area includes user interface controls to move the confined area from one location in the user interface to a different location in the user interface.
41. The apparatus of claim 35, wherein the user interface is divided into a set of grid areas, wherein each grid area in the set of grid areas includes a subset of the set of data objects and wherein each grid area in the set of grid areas is selectable through user input.
42. The apparatus of claim 41, further comprising instructions for:
receiving user input to select a grid area in the set of grid areas; and
expanding said grid area in the user interface, wherein expanding the grid area causes said grid area to become a focus of the user interface.
43. The apparatus of claim 42, wherein expanding said grid area in the user interface includes enlarging a display size for each data object displayed in the subset of data objects.
44. The apparatus of claim 35, wherein the user input further comprises selecting a data object with a mouse and moving the mouse while the data object is selected.
45. The apparatus of claim 35, wherein moving the at least one data object in the direction indicated by the user input includes displaying the at least one data object at one or more intermediate locations on said user interface before displaying said at least one data object at a final location on said user interface.
46. The apparatus of claim 45, wherein displaying the at least one data object at one or more intermediate locations includes:
analyzing the user input to determine the initial velocity of the at least one data; and
moving the at least one data object based on the initial velocity of the at least one data object.
47. The apparatus of claim 35, wherein continuing to move the at least one data object for some period of time after receipt of the user input includes moving the object at the initial velocity over the period of time.
48. The apparatus of claim 35, wherein continuing to move the at least one data object for some period of time after receipt of the user input includes decelerating the object over the period of time.
49. The apparatus of claim 36, wherein the confined area corresponds to a workspace in the user interface.
50. The apparatus of claim 49, further comprising instructions for receiving user input to define a new confined area in the user interface.
51. The apparatus of claim 36, wherein moving the at least one data object into a confined area on the screen includes applying a filter to the at least one data object, wherein said filter causes a property of said at least one data object to be modified when said at least one data object is moved into said confined area.
52. A method for sorting data objects on a screen, the method comprising:
displaying a set of data objects in a user interface on the screen;
receiving user input in connection with at least one of said data objects in the set of data objects;
wherein said user input indicates a direction, in the user interface, to throw said at least one data object;
in response to the user input, moving the at least one data object across the user interface based on said direction,
wherein moving the at least one data object across the user interface includes continuing to move the at least one data object for some period of time after receipt of the user input.
53. The method of claim 52, wherein moving the at least one data object across the user interface based on said direction includes moving the at least one data object into a confined area on the screen.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. A virtual queue processing circuit, comprising:
a queue control circuit operative to control placement and retrieval of a plurality of elements in a plurality of types of virtual queues and includes a plurality of register values generating circuits in association with any one of elements one by one in a fixed manner; and
a plurality of queue registers provided in association with the respective elements one by one in a fixed manner and operative to store the queue IDs of virtual queues in which the elements are placed and order values indicating the order of placement of the elements in association with each other, wherein:
each virtual queue is an imaginary queue represented by the queue IDs and order values stored in the queue registers,
each queue register is not formed as a software module residing in a memory device and does not store memory addresses, but is formed as a hardware module dedicated to one of the elements,
the queue control circuit manages virtual queues based upon configuration information in the queue registers such that when the queue control circuit is supplied with signals indicating a normal placement command, an element ID and a queue ID, the queue control circuit sets, in the queue register associated with the supplied element ID, the supplied queue ID and an end order value indicating that the element is placed at the end of the virtual queue associated with the supplied queue ID, and
when the queue control circuit is supplied with signals indicating a retrieval command and an element ID, the queue control circuit retrieves an associated element by clearing the queue ID in the queue register associated with the supplied element ID.
2. The virtual queue processing circuit according to claim 1, wherein upon receipt of a reverse placement command designating an element ID and a queue ID, the queue control circuit establishes, in the queue register associated with the designated element ID, the designated queue ID and a start order value indicating that the element is placed at the start of the virtual queue associated with the designated queue ID.
3. The virtual queue processing circuit according to claim 1, wherein upon receipt of a retrieval command designating an element ID, the queue control circuit retrieves an associated element ID by clearing the queue ID in the queue register associated with the designated element ID irrespective of whether the order value of the designated element ID is a start order value.
4. The virtual queue processing circuit according to claim 1, wherein when a normal placement command is received, the queue control circuit adjusts the order values in the queue registers storing the queue ID designated in the command other than the queue register for the element placed.
5. The virtual queue processing circuit according to claim 1, further comprising:
a retrieval candidate circuit operative, when a queue ID is designated, to refer to the queue IDs and order values output in parallel from the plurality of queue registers so as to output the element ID associated with the designated queue ID and the start order value, wherein the queue control circuit clears the queue ID in the queue register associated with the element ID output from the retrieval candidate circuit.
6. The virtual queue processing circuit according to claim 1, wherein a virtual queue is defined as a set comprising a plurality of priority queues respectively assigned a level of priority in respect of retrieval, the queue registers further stores the level of priority for identifying a priority queue, and upon receipt of a normal placement command designating a level of priority in addition to an element ID and a queue ID, the queue control circuit establishes the designated level of priority in the queue register associated with the designated element ID, upon receipt of a retrieval command designating a queue ID, the queue control circuit clears the queue ID in the queue register in which are established the designated queue ID and the highest level of priority.
7. The virtual queue processing circuit according to claim 6, wherein when the retrieval command designating the queue ID is received, the queue control circuit adjusts the order values in the queue registers storing the designated queue ID other than the queue register for the element retrieved.
8. The virtual queue processing circuit according to claim 7, further comprising:
a retrieval candidate circuit operative, when a queue ID is designated, to refer to the queue IDs, order values, and levels of priority output in parallel from the plurality of queue registers so as to output the element ID associated with the queue register storing the designated queue ID, the highest level of priority, and the order value equal to or closest to the start order value, wherein the queue control circuit clears the queue ID in the queue register associated with the element ID output from the retrieval candidate circuit.
9. The virtual queue processing circuit according to claim 1, wherein the register value generating circuit writes the order value and the queue ID of the corresponding element in the corresponding queue register.
10. The virtual queue processing circuit according to claim 9, wherein when the retrieval command with the element ID is supplied, the register value generating circuit in association with the designated element ID clears the queue ID in the corresponding queue register.
11. The virtual queue processing circuit according to claim 9, wherein when the normal placement command with the element ID and the queue ID is supplied, the register value generating circuit in association with the designated element ID writes the end order value and the queue ID in the corresponding queue register.
12. A virtual queue processing circuit, comprising:
a queue control circuit operative to control placement and retrieval of a plurality of elements in a plurality of types of virtual queues and includes a plurality of register value generating circuits in association with any one of elements one by one in a fixed manner; and
a plurality of queue registers provided in association with the respective elements one by one in a fixed manner and operative to store the queue IDs of virtual queues and order values indicating the order of placement of the elements in association with each other, wherein:
each virtual queue is an imaginary queue represented by the queue IDs and order values stored in the queue registers,
the queue registers do not store memory addresses, and
when the queue control circuit is supplied with a normal placement command or a retrieval command with an element ID, the register value generating circuit corresponding to the designated element ID writes the order value in the corresponding queue register.
13. The virtual queue processing circuit according to claim 12, wherein when the normal placement command with the queue ID is supplied, the register value generating circuit in association with a queue register storing the designated queue ID adjusts the order value in the corresponding queue register.
14. The virtual queue processing circuit according to claim 12, wherein when the retrieval placement command with the element ID is supplied, the register value generating circuit in association with a queue register storing the designated element ID adjusts the order value in the corresponding queue register.
15. A virtual queue processing circuit, comprising:
a queue control circuit operative to control placement and retrieval of a plurality of elements in a plurality of types of virtual queues;
a plurality of queue registers provided in association with the respective elements one by one in a fixed manner and operative to store the queue IDs of virtual queues and order values indicating the order of placement of the elements in association with each other, wherein each virtual queue is an imaginary queue represented by the queue IDs and order values stored in the queue registers and the queue registers do not store memory addresses; and
a retrieval candidate circuit operative, when a retrieval command with an element ID is supplied, output an element ID of the queue register storing the order value closest to a start order value among queue registers of the designated element ID, wherein the queue control circuit, when the retrieval command is supplied, clears the queue ID in the queue register of the element ID output from the retrieval candidate circuit.
16. The virtual queue processing circuit according to claim 15, wherein the retrieval candidate circuit compares order values stored in the queue registers with a plurality \xf5{tilde over (f)} comparison circuits to determine the element ID to be output.