It is sometimes desired for a memory device, such as a memory card, to perform a time-based activity, such as, but not limited to, determining whether a digital rights management (DRM) license has expired. Many memory devices do not have a battery and, thus, are unable to run an internal real-time clock to keep track of time. Some memory devices rely upon a software agent running in a host device to provide the memory device with a time stamp. In operation, the software agent running in the host device would obtain a time stamp from an external time source (such as a time server in a network) and send the signed time stamp to the memory device. Since the software agent obtains the time stamp from an external time source, the memory device will not be able to receive a time stamp from the external time source when the host device is not able to connect to the external time source (e.g., when the host device is not connected to the Internet or loses its wireless connection) or if the host is not running the agent (e.g., if the agent is not supported by the host platform, if the agent was terminated, etc.). In such a situation, the memory device can perform a time-based activity using a previously-received time stamp. However, performing the time-based activity with a stale time stamp may lead to an inefficient or unintended result (e.g., allowing access to content based on the stale time stamp even though the content license is actually expired).
Embodiments of the present invention are defined by the claims, and nothing in this section should be taken as a limitation on those claims.
By way of introduction, the embodiments described below generally relate to a method and memory device for generating a time estimate. In one embodiment, a memory device generates a time estimate from time stamps in file system metadata for a plurality of files stored in the memory device and uses the time estimate to perform a time-based activity in the memory device. In another embodiment, a memory device generates a time estimate from time stamps stored in a plurality of files stored in the memory device and uses the time estimate to perform a time-based activity in the memory device. In yet another embodiment, a memory device obtains a plurality of time stamps, selects one ore more of the plurality of time stamps based on validity rankings, generates a time estimate from the selected time stamp(s), and uses the time estimate to perform a time-based activity in the memory device.
Other embodiments are provided, and each of the embodiments can be used alone or together in combination. Various embodiments will now be described with reference to the attached drawings.
The following embodiments provide a method and memory device for generating a time estimate. These embodiments allow a memory device to more accurately perform a time-based activity when the memory device is not able to receive a time stamp from an external source. Turning now to the drawings,
As shown in
In addition to the controller 110, the memory device 100 comprises a memory 120. The memory 120 can take any suitable form. In one embodiment, the memory 120 takes the form of a solid-state (e.g., flash) memory and can be one-time programmable, few-time programmable, or many-time programmable. However, other forms of memory can be used. In this embodiment, the memory 120 stores a plurality of files (files 1-N) in its file system, along with file system metadata 130 for those files. As used herein, a “file” can take any suitable form and contain any suitable content, such as, but not limited to, digital video (with or without accompanying audio) (e.g., a movie, an episode of a TV show, a news program, etc.), digital audio (e.g., a song, a podcast, one or a series of sounds, an audio book, etc.), still or moving images (e.g., a photograph, a computer-generated display, etc.), text (with or without graphics) (e.g., an article, a text file, etc.), a video game, and a hybrid multi-media presentation of two or more of these forms. As also used herein, “file system metadata” refers to data about the files stored in the memory device's file system. As shown in
It may be desired for the memory device 100 to perform a time-based activity. When, as in this embodiment, the memory device 100 does not have a real-time clock to keep track of time, a software agent running on the host 50 may be able to provide the memory device 100 with a time stamp with which the memory device 100 can perform the time-based activity. However, if the host 50 is not equipped to service time queries from the memory device or is not trusted or cannot make a connection to a trusted time source, a reliable time stamp may not be available from the host 50. To address this concern, the memory device 100 in this embodiment comprises a time module 115 that is operative to generate a time estimate from time stamps and possibly other information already contained in the memory device 100 (and, optionally, with the assistance of time information received from outside of the memory device 100, as will be discussed below). The time module 115 can generate a time estimate from one or more time stamps, and if multiple time stamps are used, the time module 115 can assess the multiple sources using a ranking system. It should be noted that a time stamp and a time estimate can take any suitable format (e.g., time and date, date only, etc.) and any suitable level of granularity (e.g., days, hours, minutes, seconds, etc.). Further, the format for a time stamp can be the same as or different from the format used for a time estimate. For example, a time stamp may have a day/month/year/hour/minutes/second format, and a time estimate may only have a day/month/year format. Additionally, a time stamp and/or a time estimate may be a time interval (e.g., between Jan. 1, 2009 and Jun. 1, 2009) instead of an exact time (e.g., Apr. 20, 2009 at 09:23:17).
As shown in
In addition to obtaining time stamps from file system metadata and/or the files themselves, the time module 115 can obtain time stamp from other sources. For example, the time module 115 can obtain a time stamp from the host 50 (e.g., from the host's internal clock or from a time server in communication with the host 50) or another entity external to the memory device 100 (e.g., directly from a user via a wireless transmission to the memory device 100). Such time stamps can be sent using a protocol on top of a standard memory device protocol (e.g., the SD protocol) and can be based on reading/writing to virtual addresses in the memory 120. Preferably, if the time stamp is coming encrypted from a trusted time server, the time module 115 is first asked for a nonce (e.g., a number or bit string used only once for security purposes) in order to prevent caching of the time stamp on the host 50. In this way, the time module 115 can validate a time stamp by generating a nonce and comparing it to the nonce in an incoming message. The time module 115 can also obtain additional time stamps from other information internal to the memory device 100. For example, the time module 115 can obtain a time stamp based on an elapsed time measured by a deterioration of the memory cells in the memory 120.
As discussed above, when multiple time stamps are obtained, they can be stored in the time database 150. As some time stamps may be more reliable than others, the time module 115 preferably is implemented with the functionality to rank the various time stamps, so that the time module 115 can select time stamp(s) based on the validity rankings of the sources (act 220). That is, each time stamp can be associated with a respective source having a respective validity ranking, and the time module 115 can select one or more of the stored time stamps with which to generate a time estimate based on the validity rankings. In this way, the time module 115 can obtain time stamps from multiple sources and grade/validate the time quality from each source. The time module 115 can also invalidate time stamps in the time database 150 if more accurate timestamps are received. For example, assume that the time database 150 stores time stamps t1, t2, t3, . . . , tn. Each time stamp is associated with a source that has a validity ranking. For example, a time stamp from a secure time server can be assigned the highest ranking, a time stamp from an untrusted host can be assigned the lowest rating, and a time stamp from file system metadata or the file itself can be assigned some intermediate ranking. The rankings can be updated, as appropriate. Consider, for example, the situation in which the memory device 100 is connected to a digital camera (the host 50), which stores a digital picture having the time stamp “12:00 Aug. 1, 2009.” The time module 115 would store this time stamp in the time database 150. For this example, assume that the user set the camera clock incorrectly, and the time stamp is incorrect. When the memory device 100 is taken out of the camera and put in a card reader for transferring the digital picture to a PC, a time agent running in the PC can provide the memory device 100 with its own time stamp; here, “13:00 Jul. 1, 2009.” This time stamp is added to the time database 150 as entry n+1.If the time agent in the PC is considered to be more reliable than the camera clock, entry n can be considered to be false, and the time module 115 can use entry n+1 as the correct time stamp with which to generate a time estimate. Instead of using one time stamp instead of another, the selected time stamp can be the average of multiple time stamps, with one or more of the individual time stamps being weighted according to its ranking. Of course, other calculations and selection techniques can be used.
Irrespective of how a time stamp is obtained, a time estimate can be generated from the time stamp using any suitable technique (act 230). For example, in one embodiment, the memory device 100 is capable of keeping track of elapsed time while it is powered-on (i.e., its “active time”) and adjust the time stamp by the active time to generate a time estimate. The memory device 100 can keep track of its active time in any suitable manner. For example, the memory device 100 can contain an oscillator that generates periodic clock ticks and provides such ticks to the controller 110 as interrupts. Accordingly, the oscillator interrupts the controller 110 on a periodic basis (e.g., every millisecond or microsecond). When the controller 110 gets the interrupt, a special clock interrupt service routine (e.g., in firmware run by the controller 110) can be invoked to add one period/unit to an active time counter. To convert the value in the active time counter into real time, the controller 110 can multiply the stored value by the frequency in which the oscillator generates clock ticks. For example, if the value 500 were stored in the active time counter and the oscillator generates a clock tick every 5 milliseconds, the controller 110 would calculate an active time of 2,500 milliseconds (500 times 5). As noted above, to generate a time estimate, the time module 115 can add the translated active time to the selected time stamp(s). If the memory device 100 receives a time stamp from a trusted source, the memory device 100 can store that time stamp and reset the active time counter.
In one embodiment, when the time module 115 is asked to give a time estimate, it generates the time estimate by adjusting a selected time stamp by the memory device's active time. This result is sometimes referred to herein as “fuzzy time.” As noted above, the time estimate can be a single time reading or a range of times. For example, with reference to the above illustration where the time module 115 selects the more reliable n+1 time stamp (“13:00 Jul. 1, 2009”) instead of the less reliable n time stamp (“12:00 Aug. 1, 2009”), the time estimate would be the n+1 time stamp (“13:00 Jul. 1, 2009”) minus the recorded elapse time between the times that the n and n+1 entries were recorded. However, the time estimate could be a range to account from both of those time stamps in a weighted or un-weighted fashion. For example, using both time stamps in an un-weighted fashion, the time estimate can be a range of times between “13:00 Jul. 1, 2009” (as adjusted by the active time) and “12:00 Aug. 1, 2009” (as adjusted by the active time).
Irrespective of how the time estimate is generated, the time module 115 can use the time estimate to perform a time-based activity (act 240). As used herein, the phrase “time-based activity” refers to any activity performed by the memory device 100 whose performance is triggered by time or that uses time in the performance of the activity. A time-based activity can be used to improve memory device operation and offer new functionality to applications 140 on the memory device 100, as well as requests from the applications 140 for time information. For example, the time-based activity can be a time-based scheduling of a memory device management activity. In this way, tasks routinely performed by the memory device 100 (e.g., garbage collection or other maintenance/repair flash management operations) can be scheduled at a convenient time (e.g., during night hours), at a particular day of the week (e.g., weekends) or date (e.g., once every month), or at a time that the memory device 100 chooses after studying usage patterns (e.g., in the morning for users who use the memory device 100 at night). Also, instead of using the time estimate to perform a memory device management task, the time module 115 can use the time estimate to trigger a request to the host 50 for a time alert for scheduling a memory device management task. For example, the memory device 100 can be programmed to ask the host 50 to initiate a defrag operation on the memory device 100 every six months, so that the host 50 does not have to check the memory device 100 to see when the last time a defrag operation was preformed. When the appropriate time comes, the memory device 100 will alert the host 50.
It should be noted that a scheduled activity does not necessarily need to relate to a management activity of the memory device 100. For example, the activity can be a time-based advertisement (e.g., displaying a chocolate advertisement before Valentine's Day, playing an advertisement for a movie three weeks before the movie's release date and stopping the advertisement three weeks after the release date, etc.) or service (e.g., a limited-time trial demo of an application) issued by an application 140 on the memory device 100. Again, since the time estimate for these activities is coming from the memory device 100 itself, these activities do not necessarily require a specific time agent on the host 50.
Other time-based activities can be used. For example, another time-based activity could be the monitoring of content license expiration. When content is protected by digital rights management (DRM), the content is often associated with a content license that specifies the conditions under which the content can be accessed. If one of those conditions is time, the time estimate can be used to validate the license.
As another example, the time-based activity can be time stamping a file stored in the memory device 100, such that a time estimate can be attached to a file that is not dated. This can be done, for example, by attaching the time estimate to an undated file, by attaching the time estimate to file system metadata of an undated file, or by keeping the time estimate in a separate table. It may be preferred to attach the time estimate to the file itself, so that the time estimate will be kept together with the file even if the file is copied from the memory device 100. This allows the memory device 100 to provide new services, such as tamper-proof time stamping (i.e., files can be dated precisely even when running on a malicious host or when the host 50 generates a false time stamp or no time stamp because the host's clock was not set correctly or was not set at all) and automatic versioning of files (i.e., the memory device 100 can keep track of file versioning, letting the application 140 restore any historic revision of the file). Such tamper-proof time stamping can be useful in user applications, such as a modification-proof audio/video recorder that can used to provide proof in a legal proceeding.
As yet another example, the time-based activity can be to invalid a previously-recorded time stamp in view of a more-accurate time stamp (e.g., a time stamp received from a more reliable source). In this way, the time module 115 can “fix time.” For example, consider the situation in which the best time stamp currently stored in the memory device 100 indicates that the date is June 1st. If the memory device 100 later generates a new, more reliable time estimate of May 15th, the time module 115 can fix older records stored in the memory device 100. For example, if the memory device 100 stores a dated digital picture, as in the above example, the time module 115 can change the date attached to the stored digital picture.
In addition to providing a time estimate to an application 140 inside the memory device 100, the time-based activity may be performed using an application program interface (API) to provide a time estimate to the host 50. For example, the memory device 100 can store a time estimate as text in a special file in the memory device 100, and the host 50 can access the file in order to get the memory device's latest time estimate.
There are many advantages associated with the above embodiments. First, as can be seen from these examples, the “time aware” memory device 100 in these embodiments does not need to rely upon on a specific host, a specific host application, or a specific file type to generate a time estimate, and the time-based activity is not limited to a single application (e.g., DRM license validation). This provide flexibility to use the time module 115 with new services and applications that are later added to the memory device 100. Also, when time stamps come from different sources, the time module 115 can evaluate the reliability of each source and changes time estimates (e.g., based on time stamps, time reading history, and time source reliability). This provides a robust time system on the memory device 100. Further, because the time module 115 can invalid old time estimates, the time module 115 has the flexibility of correcting previous time estimate associated with files if a more reliable time stamp reveals that a previous time estimate was inaccurate. In addition, these embodiment provide file system integration in that the memory device 100 can offer file services, such as versioning, backup/restore, and logging even if the host file system does not provide these services. Further, since the memory device 100 itself provides these services, these services can be available when the memory device 100 is used with any of a variety of hosts.
Returning to the drawings,
In operation, the time/date manager 360 collects time stamps from one or more sources internal to the memory device 300, as described above. For example, the time/date manager 360 can collect a time stamp from the file system table 380 or from the files stored in the file system 370. The host 390 or external entity 395 can also provide the time/date manager 360 with a time stamp. For example, the host 390 can fetch a time stamp from its own internal clock or from a time server on the network. Instead of a time stamp being pushed to the memory device 300, the time/date manager 360 can request a time stamp from the host 390 or external entity 395. For example, the time/date manager 360 can send a request for the current local time, a request for the current GMT time, or a request for an alert at a specific time (e.g., in 10 hours, every first of the month at noon, etc.)
The time/date manager 360 can evaluate the time stamps from a variety of sources and evaluates the accuracy and the reliability of each time source and generate a time estimate to keep a “fuzzy” clock, as described above. This time estimate is used in a time-based activity in the memory device 300. For example, the rule manager 350, event manager 310, and scheduler 320 can be used to schedule and perform a time-based activity. The rule manager 350 keeps time-based rules (e.g., “run garbage collection every night at 3 AM”), which can be predefined or based on event history. For example, if the rule manager 350 notices that the memory device 300 is not active during night time, it can schedule maintenance tasks during these hours. Rules can be preloaded in the memory device 300 and/or the host 390 or external entity 395 can provide rules to the memory device 300. The event manager 310 monitors memory device events, such as garbage collection, memory capacity exceeding a predefined threshold, formatting, and power on/off. The scheduler 320 schedules memory device management and other tasks based on rules and events. In this way, the memory device 300 can perform scheduled time-based activities. This overall operation is illustrated in the flow chart 400 in
The applications 330 (e.g., caplets) can also perform time-based activities by asking the time/date manager 360 for a time estimate. For example, an on-card music application can ask the time/date manager 360 for a time estimate, so that it can record the last time a particular mp3 file was played. Also, the “fuzzy time” file system manager 340 can attach a time estimate to a file stored in the file system 370 or to file system metadata, as discussed above, to provide a time stamping function. This overall operation is illustrated in the flow chart 500 in
It is intended that the foregoing detailed description be understood as an illustration of selected forms that the invention can take and not as a definition of the invention. It is only the following claims, including all equivalents, that are intended to define the scope of the claimed invention. Finally, it should be noted that any aspect of any of the preferred embodiments described herein can be used alone or in combination with one another.
Number | Name | Date | Kind |
---|---|---|---|
5444780 | Hartman, Jr. | Aug 1995 | A |
5881022 | Morganstein | Mar 1999 | A |
5892900 | Ginter et al. | Apr 1999 | A |
6367013 | Bisbee et al. | Apr 2002 | B1 |
6543686 | Ritter | Apr 2003 | B1 |
6556512 | Winkler | Apr 2003 | B1 |
6557102 | Wong et al. | Apr 2003 | B1 |
6728466 | Tanaka | Apr 2004 | B1 |
6728880 | Sites | Apr 2004 | B1 |
7194092 | England et al. | Mar 2007 | B1 |
7219234 | Ashland et al. | May 2007 | B1 |
7228437 | Spagna et al. | Jun 2007 | B2 |
7536609 | Nakamura et al. | May 2009 | B2 |
7590600 | Bovee et al. | Sep 2009 | B2 |
7793135 | Dinescu | Sep 2010 | B2 |
7831644 | Moritani et al. | Nov 2010 | B2 |
7831795 | Prahlad et al. | Nov 2010 | B2 |
7891009 | Jennings et al. | Feb 2011 | B2 |
8224752 | Read et al. | Jul 2012 | B2 |
20020013772 | Peinado | Jan 2002 | A1 |
20020120465 | Mori et al. | Aug 2002 | A1 |
20020169974 | McKune | Nov 2002 | A1 |
20020194010 | Bergler et al. | Dec 2002 | A1 |
20030069854 | Hsu et al. | Apr 2003 | A1 |
20030115469 | Shippy et al. | Jun 2003 | A1 |
20040199578 | Kapczynski et al. | Oct 2004 | A1 |
20040215909 | Imai et al. | Oct 2004 | A1 |
20050038757 | Wada | Feb 2005 | A1 |
20050100113 | Corts et al. | May 2005 | A1 |
20050181761 | Park | Aug 2005 | A1 |
20050187943 | Finke-Anlauff et al. | Aug 2005 | A1 |
20060107042 | Kohmoto | May 2006 | A1 |
20060218404 | Ogura | Sep 2006 | A1 |
20060242068 | Jogand-Coulomb et al. | Oct 2006 | A1 |
20060248596 | Jain et al. | Nov 2006 | A1 |
20060282696 | Inagaki | Dec 2006 | A1 |
20060294593 | Eldar et al. | Dec 2006 | A1 |
20070043667 | Qawami et al. | Feb 2007 | A1 |
20070056042 | Qawami et al. | Mar 2007 | A1 |
20070083763 | Itoh et al. | Apr 2007 | A1 |
20070110074 | Bradley et al. | May 2007 | A1 |
20070118608 | Egli | May 2007 | A1 |
20070197197 | Minear | Aug 2007 | A1 |
20070266256 | Shah et al. | Nov 2007 | A1 |
20080010450 | Holtzman et al. | Jan 2008 | A1 |
20080086423 | Waites | Apr 2008 | A1 |
20080270308 | Peterka et al. | Oct 2008 | A1 |
20080304364 | Holtzman et al. | Dec 2008 | A1 |
20080306710 | Holtzman et al. | Dec 2008 | A1 |
20080307158 | Sinclair | Dec 2008 | A1 |
20080307237 | Holtzman et al. | Dec 2008 | A1 |
20080307494 | Holtzman et al. | Dec 2008 | A1 |
20080307495 | Holtzman et al. | Dec 2008 | A1 |
20080307507 | Conley et al. | Dec 2008 | A1 |
20080307508 | Conley et al. | Dec 2008 | A1 |
20090113536 | Zhang et al. | Apr 2009 | A1 |
20090133116 | Waisbard et al. | May 2009 | A1 |
20090287942 | Betouin et al. | Nov 2009 | A1 |
20100024000 | Holtzman et al. | Jan 2010 | A1 |
Number | Date | Country |
---|---|---|
1540657 | Oct 2004 | CN |
102005050352 | Apr 2007 | DE |
0 586 256 | Mar 1994 | EP |
1 081 577 | Mar 2001 | EP |
1 094 374 | Apr 2001 | EP |
1 094 374 | Apr 2001 | EP |
2 316 517 | Feb 1998 | GB |
H07-036559 | Feb 1995 | JP |
2001-505341 | Apr 2001 | JP |
2001-159690 | Jun 2001 | JP |
2003-296278 | Oct 2003 | JP |
2004-003928 | Jan 2004 | JP |
2004-021341 | Jan 2004 | JP |
2004-038247 | Feb 2004 | JP |
2004-056793 | Feb 2004 | JP |
2004-171544 | Jun 2004 | JP |
2004-320510 | Nov 2004 | JP |
2004-326278 | Nov 2004 | JP |
2005-063079 | Mar 2005 | JP |
2005-165963 | Jun 2005 | JP |
2005-250613 | Sep 2005 | JP |
2005-301333 | Oct 2005 | JP |
2005-331461 | Dec 2005 | JP |
2006-338583 | Dec 2006 | JP |
2006350496 | Dec 2006 | JP |
2007-157135 | Jun 2007 | JP |
WO 2004075525 | Sep 2004 | WO |
WO 2004075525 | Sep 2004 | WO |
WO 2006018864 | Feb 2006 | WO |
WO 2006069194 | Jun 2006 | WO |
WO 2007030760 | Mar 2007 | WO |
WO 2007148319 | Dec 2007 | WO |
Entry |
---|
Office Action for Chinese Patent Application Serial No. 2008801012320.0, dated Nov. 3, 2011, 11 pages. |
Office Action for U.S. Appl. No. 11/811,289, dated Jan. 18, 2011, 22 pages. |
Office Action for U.S. Appl. No. 11/811,346, dated Feb. 1, 2011, 25 pages. |
Office Action for U.S. Appl. No. 11/811,354, dated Feb. 23, 2011, 13 pages. |
Office Action for U.S. Appl. No. 11/811,284, dated Apr. 14, 2011, 15 pages. |
Office Action for U.S. Appl. No. 11/811,347, dated Mar. 24, 2011, 32 pages. |
Office Action for U.S. Appl. No. 11/811,346, dated Jul. 20, 2011, 25 pages. |
Translation of Office Action for Chinese Patent Application Serial No. 200880019347.3, dated May 25, 2011, 5 pages. |
International Search Report and Written Opinion for PCT Application Serial No. PCT/US08/065967, dated Nov. 12, 2008, 10 pages. |
International Search Report and Written Opinion for PCT Application Serial No. PCT/US08/065968, dated Aug. 29, 2008, 12 pages. |
International Search Report and Written Opinion for PCT Application Serial No. PCT/US08/065970, dated Aug. 29, 2008, 12 pages. |
International Search Report and Written Opinion for PCT Application Serial No. PCT/US08/065965, dated Jun. 15, 2009, 14 pages. |
Hardware White Paper, “Microsoft Extensible Firmware Initiative FAT32 File System Specification”, Version 1.03, Dec. 2000, 34 pages. |
U.S. Appl. No. 11/811,354 entitled, “Method for Improving Accuracy of a Time Estimate Used in Digital Rights Management (DRM) License Validation”, filed Jun. 8, 2007. |
European Examination Report for European Patent Application Serial No. 08 756 739.2 dated Aug. 23, 2010, 4 pages. |
European Examination Report for European Patent Application Serial No. 08 770 229.6 dated Aug. 23, 2010, 5 pages. |
European Examination Report for European Patent Application Serial No. 08 780 764.0 dated Aug. 23, 2010, 4 pages. |
Office Action for U.S. Appl. No. 11/811,346, dated Aug. 16, 2010, 17 pages. |
Office Action for U.S. Appl. No. 11/811,348, dated Aug. 13, 2010, 11 pages. |
Office Action for U.S. Appl. No. 11/811,284, dated Sep. 17, 2009, 47 pages. |
Pisello et al., “How to Quantify Downtime”, Network World, Jan. 5, 2004, pp. 1-4. |
Office Action for U.S. Appl. No. 11/811,289, dated Oct. 13, 2011, 23 pages. |
Office Action for U.S. Appl. No. 11/811,284, dated Oct. 17, 2011. |
Office Action for Chinese Patent Application Serial No. 2008801024434.4, dated Oct. 17, 2011, 13 pages. |
Notification of Reasons for Refusal for Japanese Application Serial No. 2010-511336, dated Feb. 28, 2012, 4 pages. |
Office Action for Chinese Patent Application Serial No. 200880123179, dated Dec. 21, 2011, 13 pages. |
Office Action for U.S. Appl. No. 11/811,289, dated Mar. 2, 2012, 25 pages. |
Office Action for U.S. Appl. No. 11/811,284, dated Jul. 3, 2012, 17 pages. |
Office Action for Chinese Patent Application Serial No. 008800193473, dated Apr. 28, 2012, 5 pages. |
Office Action for Japanese Patent Application Serial No. 2010-511333, dated May 8, 2012, 9 pages. |
Office Action for Japanese Patent Application Serial No. 2010-511335, dated May 8, 2012, 6 pages. |
Office Action for Taiwanese Patent Application Serial No. 097121272, dated May 11, 2012, 10 pages. |
Notification for Reasons for Refusal for Japanese Patent Application Serial No. 2010-511333, dated Aug. 21, 2012, 5 pages. |
Notification for Reasons for Refusal for Japanese Patent Application Serial No. 2010-511335, dated Aug. 21, 2012, 4 pages. |
Office Action for Chinese Patent Application Serial No. 2008801024434 dated Aug. 2, 2012, 18 pages. |
Office Action for Chinese Patent Application Serial No. 2008801002317.9, dated Sep. 25, 2012, 5 pages. |
Office Action for Chinese Patent Application Serial No. 2008801023200, dated Sep. 21, 2012, 13 pages. |
Office Action for Taiwanese Patent Application Serial No. 097121254, dated Aug. 13, 2012, 10 pages. |
Notification of Reasons for Refusal for Japanese Patent Application Serial No. 2010-511334, dated Nov. 6, 2012, 8 pages. |
Office Action for U.S. Appl. No. 11/811,284, dated Dec. 17, 2012, 17 pages. |
Decision for Refusal for Japanese Patent Application Serial No. 2010-511336, dated Dec. 11, 2012, 4 pages. |
Office Action for U.S. Appl. No. 11/811,284, dated May 7, 2010, 108 pages. |
Office Action for U.S. Appl. No. 11/811,289, dated Jun. 30, 2010, 20 pages. |
Office Action for U.S. Appl. No. 11/811,344, dated Jun. 10, 2010, 7 pages. |
Office Action for U.S. Appl. No. 11/811,345, dated Jun. 10, 2010, 12 pages. |
Office Action for U.S. Appl. No. 11/811,354, dated Jul. 20, 2010, 12 pages. |
Mills, “Network Time Protocol (Version 3) Specification, Implementation and Analysis”, Network Working Group, Mar. 1992, 120 pages. |
“Standard Deviation and Variance”, QuickMBA, Sep. 19, 2002, 2 pages. |
Number | Date | Country | |
---|---|---|---|
20110040976 A1 | Feb 2011 | US |