Multi buffer asynchronous scheme for processing incoming information
First Claim
1. A method for processing incoming data by an incoming data module and a processor, the method comprising:
- receiving a plurality of incoming analog data by the incoming data module, the plurality of incoming analog data generated by at least applying stimulation signals to a multi-touch panel;
digitizing the plurality of incoming analog data into incoming sets of digital data,selecting one of at least two buffers;
saving a first set of data into the selected one buffer by the incoming data module;
alerting the processor to indicated that the incoming data module has completed saving the first set of data into the selected one buffer;
processing the first set of data in the selected one buffer by the processor;
selecting the other of the at least two buffers;
saving a second set of data into the selected other buffer by the incoming data module;
alerting the processor to indicated that the incoming data module has completed saving the second set of data into the selected other buffer;
processing the second set of data in the selected other buffer by the processor;
alternately saving additional first sets of data into the selected one buffer and additional second sets of data into the selected other buffer, wherein the sets of digital data correspond to the first set of data, the second set of data, the additional first sets of data and the additional second sets of data; and
stopping the saving of at least one of;
(1) one of the additional first sets of data if the processor is busy processing another of the additional first sets of data from the selected one buffer; and
(2) one of the additional second sets of data if the processor is busy processing another of the additional second sets of data from the selected other buffer;
wherein the stopping the saving of at least one of one of the additional first sets of data or one of the additional second sets of data includes at least one of;
(1) stopping the generation of at least some of the plurality of the incoming analog data;
(2) stopping digitizing of at least some of the plurality of incoming analog data; and
(3) digitizing the plurality of incoming analog data but not saving at least portions of the sets of digital data corresponding to at least one of the ones of the additional first sets of data and the ones of the additional second sets of data.
2 Assignments
0 Petitions
Accused Products
Abstract
Disclosed is an electronic device featuring a multi buffer scheme for processing incoming signals. For example, two buffers can be used. A processor can read and process stored signals from a first buffer while an incoming data module can concurrently store signals in a second buffer. Once, the processor is done, it can move on to the second buffer and process signals stored therein while the incoming data module stores signals in the first buffer. Also provided is a flagging scheme for allowing the processor and the incoming data module to control their respective access to the various buffers, so that only one of them accesses a single buffer at any time.
-
Citations
31 Claims
-
1. A method for processing incoming data by an incoming data module and a processor, the method comprising:
-
receiving a plurality of incoming analog data by the incoming data module, the plurality of incoming analog data generated by at least applying stimulation signals to a multi-touch panel; digitizing the plurality of incoming analog data into incoming sets of digital data, selecting one of at least two buffers; saving a first set of data into the selected one buffer by the incoming data module; alerting the processor to indicated that the incoming data module has completed saving the first set of data into the selected one buffer; processing the first set of data in the selected one buffer by the processor; selecting the other of the at least two buffers; saving a second set of data into the selected other buffer by the incoming data module; alerting the processor to indicated that the incoming data module has completed saving the second set of data into the selected other buffer; processing the second set of data in the selected other buffer by the processor; alternately saving additional first sets of data into the selected one buffer and additional second sets of data into the selected other buffer, wherein the sets of digital data correspond to the first set of data, the second set of data, the additional first sets of data and the additional second sets of data; and stopping the saving of at least one of; (1) one of the additional first sets of data if the processor is busy processing another of the additional first sets of data from the selected one buffer; and (2) one of the additional second sets of data if the processor is busy processing another of the additional second sets of data from the selected other buffer; wherein the stopping the saving of at least one of one of the additional first sets of data or one of the additional second sets of data includes at least one of; (1) stopping the generation of at least some of the plurality of the incoming analog data; (2) stopping digitizing of at least some of the plurality of incoming analog data; and (3) digitizing the plurality of incoming analog data but not saving at least portions of the sets of digital data corresponding to at least one of the ones of the additional first sets of data and the ones of the additional second sets of data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 27)
-
-
8. A method for processing data by an incoming data module and a processor, the incoming data module and processor connected to a common bus, the method comprising:
-
receiving a plurality of incoming analog data by the incoming data module; digitizing the plurality of incoming analog data into at least a first and second set of digital data, consulting one or more flags by the incoming data module to select a first buffer connected to the common bus from a plurality of buffers, the first buffer being available to store information therein; storing the first set of digital data into the first buffer by the incoming data module, the incoming data module accessing the first buffer over the common bus; modifying at least one of the one or more flags to set a first value to indicate that new information has been stored in the first buffer by the incoming data module; processing the information in the first buffer by the processor, the processor accessing the first buffer over the common bus; and modifying at least another of the at least two flags by the processor to set the two flags to a second value to indicate that a second buffer is available to store information therein, simultaneously consulting the at least two flags by the incoming data module to select the second buffer in response to the two flags being set to the second value; storing the second set of data into the second buffer by the incoming data module, the incoming data module accessing the second buffer over the common bus; wherein; the processor and the incoming data module operate in parallel; and the incoming data module is operable for stopping the generation of incoming analog data by the incoming data module when the processor has not completed processing the first set of data in the first buffer and the incoming data module has completed storing the second set of data in the second buffer. - View Dependent Claims (9)
-
-
10. A system for processing incoming information comprising:
-
a multi-touch panel providing a plurality of incoming analog data generated by at least applying stimulation signals to the multi-touch panel; an incoming data module connected to receive the plurality of incoming analog data; a processor connected to the incoming data module; a memory comprising at least a first and a second buffer connected to the processor and the incoming data module; and at least two flags accessible by the processor and the incoming data module; wherein the incoming data module is configured to digitize the plurality of incoming analog data and generate incoming sets of digital data corresponding thereto, wait until the two flags have a first value, and when the two flags have the first value, select the first buffer, save a first set of the incoming sets of digital data into the selected first buffer, change a value of the at least two flags, and send a first alert to the processor, wait until the at least one flag has a second value, and when the at least two flags have the second value, select the second buffer, save a second set of incoming sets of digital data into the selected second buffer, change a value of the at least two flags, and send a second alert to the processor; wherein the processor is configured to receive the first alert, identify the first buffer, change the value of the at least two flags if all data in the second buffer has been processed, and process the data of the first buffer, and receive the second alert, identify the second buffer, change the value of the at least two flags if all data in the first buffer has been processed, and process the data of the second buffer, and wherein the incoming data module is further configured to stop the saving of additional first sets of the incoming sets of digital data in the first buffer when the processor has not yet completed processing one of the incoming sets of digital data previously stored in the first buffer by stopping the applying of the stimulation signals to the multi-touch panel. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A system for processing incoming information comprising:
-
a source of incoming data; an incoming data module connected to the source of incoming data; a processor connected to the incoming data module; a memory comprising two buffers and connected to the processor and the source of incoming data; and two flags accessible by the processor and the source of incoming data; wherein the incoming data module is configured to wait until two flags have first values and when the two flags do have first values, select one of two buffers depending on the values of the flags, save a set of data received from the source of incoming data into the selected buffer, change a first flag of the two flags, and alert the processor, wherein the processor is configured to receive the alert and change the second flag if all data in the other one of the two buffers has been processed, and wherein the incoming data module is further configured to wait until two flags have a second values, the second value different from the first value, and when the two flags do have the second values, select the other of the two buffers based on the values of the flags and save another set of data into the other selected buffer; and wherein the incoming data module is configured to delay receipt of yet another set of data from the source of incoming data if both of the two buffers contain sets of data that have not yet been processed by the processor. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
-
25. A mobile telephone comprising:
-
a source of incoming data having a multi-touch panel providing analog touch signals in response at least in part to the application of stimulation signals; an incoming data module connected to the source of incoming data the incoming data module is configured to digitize the analog touch signals to provide sets of data; a processor connected to the incoming data module; a memory comprising at least two buffers and connected to the processor and the source of incoming data; and at least two flags accessible by the processor and the source of incoming data; wherein the incoming data module is configured to wait until the at least two flags have a first values, and when the at least two flags do have the first values, select one of at least two buffers depending on the values of the flags, save a set of data received from the source of incoming data into the selected buffer, change at least a first flag of the at least two flags, and alert the processor, wherein the processor is configured to receive the alert, change at least the second of the at least two flags if all data in the other one of the two buffers has been processed, identify the selected one of the at least two buffers, and process the data of the selected buffer, and wherein the incoming data module is further configured to select the other of the at least two buffers based on the values of the flags when the at least two flags have the second value, the second value different from the first value and save another set of data into the other selected buffer; and wherein the incoming data module is configured to delay receipt of yet another set of data from the source of incoming data if both of at least the two buffers contain sets of data that have not yet been processed by the processor by preventing the application of the stimulation signals to the multi-touch panel.
-
-
26. A portable audio player comprising:
-
a source of incoming data having a multi-touch panel providing analog touch signals in response at least in part to the application of stimulation signals; an incoming data module connected to the source of incoming data the incoming data module is configured to digitize the analog touch signals to provide sets of data; a processor connected to the incoming data module; a memory comprising at least two buffers and connected to the processor and the source of incoming data; and at least two flags accessible by the processor and the source of incoming data; wherein the incoming data module is configured to wait until the at least two flags have a first values, and when the at least two flags do have the first values, select one of at least two buffers depending on the values of the flags, save a set of data received from the source of incoming data into the selected buffer, change at least a first flag of the at least two flags, and alert the processor, wherein the processor is configured to receive the alert, change at least the second of the at least two flags if all data in the other one of the two buffers has been processed, identify the selected one of the at least two buffers, and process the data of the selected buffer, and wherein the incoming data module is further configured to select the other of the at least two buffers based on the values of the flags when the at least two flags have the second value, the second value different from the first value, and save another set of data into the other selected buffer; and wherein the incoming data module is configured to delay receipt of yet another set of data from the source of incoming data if both of at least the two buffers contain sets of data that have not yet been processed by the processor by preventing the application of the stimulation signals to the multi-touch panel.
-
-
28. A method for processing incoming sets of digital data from a multi-touch panel, the method comprising:
-
receiving a plurality of incoming analog data, the plurality of incoming analog data generated by at least applying stimulation signals to a multi-touch panel; digitizing the plurality of incoming analog data into incoming sets of digital data, selecting one of at least two buffers; saving a first set of data into the selected one buffer; processing the first set of data in the selected one buffer by a processor; selecting the other of the at least two buffers; saving a second set of data into the selected other buffer; processing the second set of data in the selected other buffer by the processor; alternately saving additional first sets of data into the selected one buffer and additional second sets of data into the selected other buffer, wherein the incoming sets of digital data correspond to the first set of data, the second set of data, the additional first sets of data and the additional second sets of data; stopping the saving of at least one of; (1) one of the additional first sets of data if the processor is busy processing another of the additional first sets of data from the selected one buffer; and (2) one of the additional second sets of data if the processor is busy processing another of the additional second sets of data from the selected other buffer; and wherein the stopping of the saving of at least one of one of the additional first sets of data or one of the additional second sets of data includes at least one of; (1) stopping the generation of at least some of the plurality of the incoming analog data; (2) stopping digitizing of at least some of the plurality of incoming analog data; and (3) digitizing the plurality of incoming analog data but not saving at least portions of the sets of digital data corresponding to at least one of the ones of the additional first sets of data and the ones of the additional second sets of data. - View Dependent Claims (29)
-
-
30. A method for processing incoming sets of digital data from a multi-touch panel, the method comprising:
-
receiving a plurality of incoming analog data, the plurality of incoming analog data generated by at least applying stimulation signals to a multi-touch panel; digitizing the plurality of incoming analog data into incoming sets of digital data, saving a first set of data into the a first buffer; processing the first set of data in the first buffer by a processor; saving a second set of data into a second buffer; processing the second set of data in the second buffer by the processor; alternately saving additional first sets of data into the first buffer and additional second sets of data into the second buffer, wherein the incoming sets of digital data correspond to the first set of data, the second set of data, the additional first sets of data and the additional second sets of data; and stopping the saving of one of the additional first sets of data if the processor is busy processing another of the additional first sets of data from the first buffer; wherein the stopping of the saving includes stopping the applying of at least some of the stimulation signals to the multi-touch panel.
-
-
31. A method for processing data by an incoming data module and a processor, the incoming data module and processor connected to a common bus, the method comprising:
-
receiving a plurality of incoming analog data by the incoming data module, the plurality of incoming analog data generated by at least applying stimulation signals to a multi-touch panel; digitizing the plurality of incoming analog data into incoming sets of digital data, consulting at least two flags by the incoming data module to select at least a first buffer connected to the common bus from a plurality of buffers; storing a first set of digital data into a first buffer by the incoming data module, the incoming data module accessing the first buffer over the common bus; processing the information in the first buffer by the processor, the processor accessing the first buffer over the common bus; and modifying at least another of the at least two flags by the processor to set the at least two flags to a first value to indicate that a second buffer is available to store information therein, consulting the at least two flags by the incoming data module to select the second buffer in response to the two flags being in the first value; storing the second set of data into the second buffer by the incoming data module, the incoming data module accessing the second buffer over the common bus; storing additional sets of digital data in the first buffer if the processor has completed processing sets of digital data previously stored in the first buffer and inhibiting the storing of additional sets of digital data in the first buffer if the processor is busy processing at least one set of digital data previously stored in the first buffer; and the inhibiting of the storing being performed by stopping the applying of stimulation signals to a multi-touch panel.
-
Specification