A variety of different techniques have been developed to increase the amount of processing resources that are available to a computing device. One such technique involves the use of multiple processors. For example, a single integrated circuit may be configured to include multiple processors (e.g., processor cores), thereby providing increased processing resources for a computing device that employs the integrated circuit. However, the use of multiple processors traditionally resulted in increased power consumption, which may make use of multiple processors less suitable in certain configurations.
For instance, a computing device may be configured for an office environment and therefore have access to an external power source. In another example, however, the computing device may be configured for mobile applications and therefore may not have ready access to an external power source. Consequently, a computing device configured for use in mobile applications may also incorporate a power source (e.g., a battery) that may be considered limited when compared to the external power source. For example, the amount of power that may be obtained from the battery by the processor and other resources of the computing device may be limited. Therefore, this limited power may make traditional multiprocessor techniques unsuitable for mobile applications.
This Summary is provided solely to introduce subject matter that is fully described in the Detailed Description and Drawings. Accordingly, the Summary should not be considered to describe essential features nor used to determine scope of the claims.
In an embodiment, an apparatus comprises a buffer, a plurality of processors, and a processor control module. The processor control module is to manage how many of the plurality of processors are used to process data from the buffer based at least in part on an amount of the data stored in the buffer.
In an embodiment, a method comprises determining by a processor control module an amount of data stored in a buffer. The processor control module manages how many of a plurality of processors are to be used to process the data from the buffer based at least in part on the determined amount of the data stored in the buffer.
In an embodiment, a method comprises determining that an amount of data stored by buffer exceeds a threshold. Responsive to the determining, one or more additional processors are activated by a processor control module to process at least a portion of the data.
In an embodiment, a system comprises means for buffering data and a plurality of means for processing the data, each being communicatively coupled to the buffering means. The system also comprises means for managing how many of the processing means are to be used to process the data from the buffering means based at least in part on an amount of the data is stored in the buffering means.
The detailed description is described with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different instances in the description and the figures may indicate similar or identical items.
Processor management using a buffer is described. In an implementation, a processor control module manages how many of a plurality of processors are to be used to process data from a buffer based on an amount of data stored in the buffer. For example, a first in/first out (FIFO) buffer may be used to store packets in a packet processing environment for subsequent processing by a plurality of processors. Thresholds may be defined for the buffer, each defining a respective amount of storage space in the buffer. These thresholds may then be used as a basis for activating or deactivating one or more of the processors, thereby assuring that an appropriate number of processors are available to handle a processing load. Further, power consumed by the processors may be conserved by using an appropriate number of the processors.
For instance, a processor control module may determine that an amount of data stored in the buffer has increased, thereby causing a threshold to be exceeded. In response to this determination, the processor control module may activate one or more additional processors, thereby addressing the increased amount of data. Likewise, when the amount of data decreases such that the amount stored in the buffer falls below a particular threshold, one or more processors that are active may be deactivated. In this way, a number of processors used to process the data and the amount of data to be processed correspond, thereby resulting in an efficient use of resources and efficient power consumption. Further discussion of power management using a buffer may be found in relation to the following discussion.
In the discussion that follows, example operating environments are described that may incorporate the processor management techniques. Example procedures are also described that may be employed in the example operating environments, as well as other environments. Thus, in instances in the discussion of the example procedures reference will be made to the example environments by way of example. Therefore, implementation of the example procedures is not limited to the example environments.
Operating Environment
The buffer 102 may be configured in a variety of ways. For example, the buffer 102 may represent a logical buffer that is formed using a plurality of buffer devices. Additionally, in this example, the plurality of buffer devices may be configured in a variety of ways, e.g., formed from a single integrated circuit or a plurality of integrated circuits. A variety of other examples are also contemplated.
The buffer 102 is illustrated in
The buffer 102 is further illustrated in
The plurality of processors 106(1)-106(P) may also be configured in a variety of ways. Consequently, processors 106(1)-106(P) are not limited by the materials from which they are formed or the processing mechanisms employed therein. For example, processors 106(1)-106(P) may be comprised of one or more semiconductor(s) and/or transistors (e.g., electronic integrated circuits (ICs)). Alternatively, the mechanisms of or for processors 106(1)-106(P) may include, but are not limited to, quantum computing, optical computing, mechanical computing (e.g., using nanotechnology), and so forth.
For example, the processors 106(1)-106(P) may be configured to provide a central processing unit (CPU) of a computer, to provide processing for a peripheral device communicatively coupled to a computer (e.g., a graphics card), and so on. Further, the plurality of processors 106(1)-106(P) may be configured from one or more devices, e.g., from a single integrated circuit having a plurality of processor cores, a plurality of integrated circuits, and so on. Thus, it should be readily apparent that the processors 106(1)-106(P) may be representative of a variety of different functionality to interpret and execute instructions, perform arithmetic and the logic operations on data, control input/output functions, and so on.
The processor control module 104 is representative of functionality in the environment 100 of
The processor control module 104, for instance, may provide dynamic management of the processors 106(1)-106(P). For example, processor 106(P) may be made “active” by the processor control module 104 such that it is suitable to process data, e.g., accept, interpret and/or execute instructions as previously described. Likewise, processor control module 104 may make the processor 106(P) “inactive” such that the processor 106(P) is not suitable to process data. Consequently, the processor control module 104 may also control an amount of power consumed by the plurality of processors 106(1)-106(P) by activating and/or deactivating one or more of the plurality of processors 106(1)-106(P). For instance, power consumed by the processor 106(P) when inactive may be significantly less than the power consumed by the processor 106(P) while active, even if the processor 106(P) is not engaged in active execution of instructions. Thus, the terms active and inactive as used herein describes whether the respective processor is available or unavailable to perform processing, respectively, e.g., but does not actively have to do so to be active.
Dynamic management of the processors 106(1)-106(P) may then be utilized by the processor control module 104 to ensure that an appropriate number of the processors 106(1)-106(P) are available to handle a current and/or expected processing load. For example, threshold 108 may define an amount of storage in the buffer 102. The threshold 108 may be set in a variety of ways. The threshold 108 may be used as a “watermark” to define a transition between respective amounts of processing resources to be provided by the plurality of processors 106(1)-106(P).
An amount of data stored in the buffer 102, for instance, may be less than the threshold 108 such that the processor 106(1) by itself may adequately process the data, e.g., the processing may be adequately performed without processor 106(P). Consequently, the processor control module 104 may keep processor 106(1) active to process the data in the buffer 102 and may make processor 106(P) inactive to conserve resources, e.g., power.
When the incoming data received by the buffer 102 causes an amount of data stored in the buffer 102 to exceed the threshold 108, the processor control module 104 may activate processor 106(P) to handle the increased processor load that is stored in the buffer 102. Similar techniques may also be used to deactivate the processor 106(P) when the amount of data stored in the buffer 102 becomes less than the threshold 108. Thus, in this example the processor control module 104 may provide an appropriate level of processing resources based on an amount of data stored in the buffer 102. Although the discussion of the environment 100 of
A single integrated circuit 204 is illustrated as including the buffer 102, the processor control module 104 and the processors 106(1)-106(P). For example, the single integrated circuit 204 may be configured as an application specific integrated circuit (ASIC). A variety of other examples are also contemplated as previously described in relation to
The buffer 102 is illustrated as including a plurality of thresholds 108(1)-108(M). As previously described, each of the plurality of thresholds 108(1)-108(M) may define a respective amount of storage of the buffer 102. Additionally, each of the thresholds 108(1)-108(M) may correspond to an amount of processing resources that is to be activated or deactivated by the processor control module 104 by activating or deactivating one or more processors 106(1)-106(P). For example, threshold 108(1) may define an amount of processing resources that correspond to two or more of the plurality of processors 106(1)-106(P). Therefore, in this example when threshold 108(1) is exceeded two or more of the processors 106(1)-106(P) may be activated. A variety of other examples are also contemplated, e.g., three processors, four processors, five processors, and so on.
Further, the amount of processing resources to be activated or deactivated by successive thresholds may differ, one to another. For example, threshold 108(3) may correspond to an amount of processor resources that may be satisfied by a single one of the processors 106(1)-106(P) while threshold 108(M) may correspond to an amount of processor resources that is to be satisfied by two or more of the plurality of processor 106(1)-106(P). Thus, it should be noted that the number of a plurality of thresholds 108(1)-108(M) may or may not correspond to the number of processors 106(1)-106(P). In other words, “M” may or may not be less than or equal to “P”.
In an implementation, at least one of the processors 106(1)-106(P) is not activated or deactivated based on the amount of data stored in the buffer 102. For example, processor 106(1) may be configured as a “parent” processor that remains active no matter what amount of data is included in the buffer 102. On the other hand, processor 106(P) may be configured as a “child” processor that is activated or deactivated by the processor control module 104 based on the amount of data stored in the buffer 102. Thus, in this example the processor management techniques that involve the buffer are applied to processor 106(P) and not processor 106(1). A variety of other examples are also contemplated, such as by designating multiple processors as a “parent” and so on.
The processor control module 104 may utilize a variety of techniques to activate or deactivate the plurality of processors 106(1)-106(P). For example, processor 106(P) is illustrated as being associated with a clock control module 206(P). The clock control module 206(P) is representative of functionality to enable or disable a clock of the corresponding processor 106(P). In other words, the clock control module 206(P) may “turn on” or “turn off” the clock of the processor 106(P) to enable or disable the processor 106(P), respectively. Therefore, the processor control module 104 may communicate with the clock control module 206(P) of the corresponding processor 106(P) to enable or disable its clock, thereby activating or deactivating the corresponding processor 106(P). Although the clock control module 206 as illustrated separately in
Generally, any of the functions described herein can be implemented using software, firmware (e.g., fixed logic circuitry), manual processing, or a combination of these implementations. The terms “module,” “functionality,” and “logic” as used herein generally represent software, firmware, hardware or a combination thereof. In the case of a software implementation, the module, functionality, or logic represents program code that performs specified tasks when executed on a processor (e.g., CPU or CPUs). The program code can be stored in one or more computer readable memory devices. The features of the processor management techniques described below are platform-independent, meaning that the techniques may be implemented on a variety of commercial computing platforms having a variety of processors.
Example Procedures
An amount of data stored in a buffer is determined (block 302). For example, the processor control module 104 may monitor the buffer 102 to determine an amount of data stored in the buffer 102. In another example, the buffer 102 may include functionality that “reports” the amount of data currently stored in the buffer 102 to the processor control module 104. For instance, the functionality in the buffer 102 may report when one or more of the plurality of thresholds 108(1)-108(M) are crossed. A variety of other instances are also contemplated.
How many of a plurality of processors that are to be used to process the data from the buffer is managed, at least in part, based on the determined amount of the data stored in the buffer (block 304). The processor control module 104, for instance, may add processing resources by activating processors as the amount of data in the buffer 102 increases (block 306). In another instance, one or more processors may be deactivated as an amount of data stored in the buffer 102 decreases (block 308). In this way, the amount of data stored in the buffer 102 may be used to indicate to the processor control module 104 an upcoming/current processor load. The processor control module 104 may therefore react accordingly by activating or deactivating one or more of a plurality of processors 106(1)-106(P). A variety of different techniques may be used to activate or deactivate the plurality of processors 106(1)-106(P), further discussion of which may be found in relation to the following figure.
Data that was stored in a buffer is processed using one or more of a plurality of processors (block 402). The plurality of processors 106(1)-106(P), for instance, may receive packets of data from the buffer 102.
A determination is made that an amount of data stored by the buffer exceeds a threshold (block 404). The processor control module 104, or example, may determine that the amount of data stored in the buffer 102 now exceeds a threshold 108 that was not previously exceeded.
Responsive to the determination, one or more additional processors are activated by a processor control module to process at least a portion of the data (block 406). The one or more additional processors may be activated in a variety of ways, such as by initiating one or more respective clocks of the processors (block 408). For example, the processor control module 104 may communicate with the clock control module 206(P) to activate processor 106(P) by starting the processor's clock. Thus, the processor 106(P) is “active” and ready to accept instructions and/or data.
A determination may also be made, e.g., at a subsequent time, that an amount of data stored by the buffer has become less than a threshold (block 410). Continuing with the previous example, the one or more additional processors may help to relieve the processor load caused by the data that is stored in the buffer 102 “over” the threshold 108. Therefore, the amount of data stored in the buffer 102 may become less than the threshold 108.
Responsive to the determination, the one or more additional processors are deactivated by the processor control module (block 412). Continuing again with the previous example, the processor control module 104 may communicate with the clock control module 206(P) to stop the clock of the processor 106(P), thereby deactivating processor 106(P). As previously described, the clock may be stopped in a variety of ways, such as by stopping a clock internal to the processor 106(P), blocking propagation of a clock signal to the processor 106(P), and so on.
Device Examples
In various implementations, the signal processing and/or control circuit(s) 602 can be implemented to process data (e.g., any of encoding, decoding, encryption, and/or decryption), perform data calculations, format data, and/or any other signal processing functions associated with a DVD drive. The data can be written to and/or read from at least the optical storage media 604 and/or the memory 608. In addition, the DVD 600 can communicate with an output device (not shown) such as a computer, television, and/or other devices via one or more wired or wireless communication links 610.
In various implementations, the signal processing and/or control circuit(s) 702 can be implemented to process data (e.g., any of encoding, decoding, encryption, and/or decryption), perform data calculations, format data, and/or any other signal processing functions associated with an HDTV. The data can be output to and/or received from at least the memory 706. In addition, the HDTV 700 includes a wireless local area network (WLAN) interface 708 via which input signals can be received in either a wired or wireless format. HDTV output signals can be generated for a display 710.
Additional control system(s) 804 may likewise receive data signals from one or more input sensors 810 and/or generate output control signals 812 to one or more output devices. In various implementations, a control system 804 may be part of an anti-lock braking system (ABS), a navigation system, a telematics system, a vehicle telematics system, a lane departure system, an adaptive cruise control system, and/or a vehicle entertainment system such as a stereo, DVD, compact disc, and the like.
The vehicle 800 can also include mass data storage 814 and/or a memory 816, such as random access memory (RAM), a low-latency nonvolatile memory such as flash memory, read only memory (ROM), and/or other suitable electronic data storage. The mass data storage 814 can store data in a nonvolatile manner, and may include an optical storage media as described with reference to
The set top box 900 can receive data signals from a source 908, such as a broadband source, and can then output standard and/or high definition audio/video signals suitable for a display 910, such as a television, monitor, and/or other video and/or audio output devices. In various implementations, the signal processing and/or control circuit(s) 902 can be implemented to process data (e.g., any of encoding, decoding, encryption, and/or decryption), perform data calculations, format data, and/or any other signal processing functions associated with a television set-top box. The data can be output to and/or received from at least the memory 906 and/or the source 908. In addition, the set-top box 900 includes a wireless local area network (WLAN) interface 912 via which input signals can be received in either a wired or wireless format. The set-top box 900 may also support connections with a WLAN via the WLAN interface 912.
In various implementations, the signal processing and/or control circuit(s) 1004 can be implemented to process data (e.g., any of encoding, decoding, encryption, and/or decryption), perform data calculations, format data, and/or any other signal processing functions associated with a cellular phone. The data can be output to and/or received from at least the memory 1008. In addition, the cellular phone 1000 includes a wireless local area network (WLAN) interface 1010 via which input signals can be received in a wireless format. The cellular phone 1000 may also support connections with a WLAN via the WLAN interface 1010. In some implementations, the cellular phone 1000 can include a microphone 1012, an audio output 1014 such as a speaker and/or audio output jack, a display 1016, and/or an input device 1018 such as a keypad, pointing device, voice actuation, and/or other input device. D
In various implementations, the signal processing and/or control circuit(s) 1102 can be implemented to process data (e.g., any of encoding, decoding, encryption, and/or decryption), perform data calculations, format data, and/or any other signal processing functions associated with a media player. The data can be output to and/or received from at least the memory 1106. In addition, the media player 1100 includes a wireless local area network (WLAN) interface 1108 via which input signals can be received in either a wired or wireless format. The media player 1100 may also support connections with a WLAN via the WLAN interface 1108. In some implementations, the media player 1100 can include an audio output 1110 such as a speaker and/or audio output jack, a display 1112, and/or an input device 1114 such as a keypad, touchpad, pointing device, voice actuation, and/or other input device. In various implementations, media player 1100 may employ a graphical user interface (GUI) that typically includes menus, drop down menus, icons, and/or a point-and-click interface via display 1112 and/or user input 1114.
In various implementations, the signal processing and/or control circuit(s) 1204 can be implemented to process data (e.g., any of encoding, decoding, encryption, and/or decryption), perform data calculations, format data, and/or any other signal processing functions associated with a VoIP phone. The data can be output to and/or received from at least the memory 1208. In addition, the VoIP phone 1200 includes a Wireless Fidelity (Wi-Fi) communication module 1210 via which communication links with a VoIP network can be established. In some implementations, the VoIP phone 1200 can include a microphone 1212, an audio output 1214 such as a speaker and/or audio output jack, a display 1216, and/or an input device 1218 such as a keypad, pointing device, voice actuation, and/or other input device.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
This application is a continuation of and claims priority to U.S. Utility application Ser. No. 13/333,551, filed on Dec. 21, 2011 which in turn is a continuation of and claims priority to U.S. Utility application Ser. No. 12/098,254, filed on Apr. 4, 2008 which in turn claims priority under 35 U.S.C. §119(e) to U.S. Provisional Application Ser. No. 60/910,330, filed on Apr. 5, 2007, the entire disclosures of which is hereby incorporated by reference.
Number | Name | Date | Kind |
---|---|---|---|
5390165 | Tuch | Feb 1995 | A |
5481733 | Douglis et al. | Jan 1996 | A |
5617118 | Thompson | Apr 1997 | A |
5673416 | Chee et al. | Sep 1997 | A |
5771356 | Leger et al. | Jun 1998 | A |
5828835 | Isfeld et al. | Oct 1998 | A |
5884099 | Klingelhofer | Mar 1999 | A |
6014722 | Rudin et al. | Jan 2000 | A |
6092108 | DiPlacido et al. | Jul 2000 | A |
6230277 | Nakaoka et al. | May 2001 | B1 |
6330626 | Dennin et al. | Dec 2001 | B1 |
6463509 | Teoman et al. | Oct 2002 | B1 |
6564318 | Gharda et al. | May 2003 | B1 |
6601167 | Gibson et al. | Jul 2003 | B1 |
6711447 | Saeed | Mar 2004 | B1 |
6756988 | Wang et al. | Jun 2004 | B1 |
6823472 | DeKoning et al. | Nov 2004 | B1 |
6832280 | Malik et al. | Dec 2004 | B2 |
7089419 | Foster et al. | Aug 2006 | B2 |
7103788 | Souza et al. | Sep 2006 | B1 |
7126913 | Patel et al. | Oct 2006 | B1 |
7194638 | Larky | Mar 2007 | B1 |
7266842 | Foster et al. | Sep 2007 | B2 |
7299365 | Evans | Nov 2007 | B2 |
7308591 | Dubinsky | Dec 2007 | B2 |
7356707 | Foster et al. | Apr 2008 | B2 |
7496952 | Edwards et al. | Feb 2009 | B2 |
7571216 | McRae et al. | Aug 2009 | B1 |
7596614 | Saunderson et al. | Sep 2009 | B2 |
7606230 | Cohen et al. | Oct 2009 | B1 |
7774635 | Shiota | Aug 2010 | B2 |
7788670 | Bodas et al. | Aug 2010 | B2 |
7818389 | Chiang et al. | Oct 2010 | B1 |
7873841 | Mullis, II et al. | Jan 2011 | B2 |
7995596 | Kuila et al. | Aug 2011 | B2 |
8000284 | Lott et al. | Aug 2011 | B2 |
8001592 | Hatakeyama | Aug 2011 | B2 |
8095816 | Chan | Jan 2012 | B1 |
8139521 | Mukherjee et al. | Mar 2012 | B2 |
8171309 | Poo | May 2012 | B1 |
8296555 | Chu | Oct 2012 | B2 |
8321706 | Zhang | Nov 2012 | B2 |
8327056 | Chan | Dec 2012 | B1 |
8443187 | Orr | May 2013 | B1 |
8443211 | Zhao et al. | May 2013 | B2 |
8510560 | Lambert et al. | Aug 2013 | B1 |
8688968 | Chu et al. | Apr 2014 | B2 |
20020069354 | Fallon et al. | Jun 2002 | A1 |
20020087816 | Atkinson et al. | Jul 2002 | A1 |
20030014368 | Leurig et al. | Jan 2003 | A1 |
20030200453 | Foster et al. | Oct 2003 | A1 |
20030200454 | Foster et al. | Oct 2003 | A1 |
20030208675 | Burokas et al. | Nov 2003 | A1 |
20030236991 | Letsinger | Dec 2003 | A1 |
20040125679 | Kwean | Jul 2004 | A1 |
20040158669 | Weng et al. | Aug 2004 | A1 |
20040257462 | Goris et al. | Dec 2004 | A1 |
20040266386 | Kuo | Dec 2004 | A1 |
20050033869 | Cline | Feb 2005 | A1 |
20050055547 | Kawamura | Mar 2005 | A1 |
20050086551 | Wirasinghe et al. | Apr 2005 | A1 |
20050108171 | Bajikar et al. | May 2005 | A1 |
20050138365 | Bellipady et al. | Jun 2005 | A1 |
20050156925 | Fong et al. | Jul 2005 | A1 |
20050278523 | Fortin et al. | Dec 2005 | A1 |
20060072748 | Buer | Apr 2006 | A1 |
20060075259 | Bajikar et al. | Apr 2006 | A1 |
20060123248 | Porter et al. | Jun 2006 | A1 |
20060136735 | Plotkin et al. | Jun 2006 | A1 |
20060142906 | Brozovich et al. | Jun 2006 | A1 |
20060156390 | Baugher | Jul 2006 | A1 |
20070005824 | Howard | Jan 2007 | A1 |
20070011445 | Waltermann et al. | Jan 2007 | A1 |
20070038866 | Bardsley et al. | Feb 2007 | A1 |
20070097904 | Mukherjee et al. | May 2007 | A1 |
20070189249 | Gurevich et al. | Aug 2007 | A1 |
20070234028 | Rothman et al. | Oct 2007 | A1 |
20070260905 | Marsden et al. | Nov 2007 | A1 |
20070277051 | Reece et al. | Nov 2007 | A1 |
20070297606 | Tkacik et al. | Dec 2007 | A1 |
20080016313 | Murotake et al. | Jan 2008 | A1 |
20080028243 | Morisawa | Jan 2008 | A1 |
20080034411 | Aoyama | Feb 2008 | A1 |
20080046732 | Fu et al. | Feb 2008 | A1 |
20080066075 | Nutter et al. | Mar 2008 | A1 |
20080072311 | Mullick et al. | Mar 2008 | A1 |
20080104422 | Mullis et al. | May 2008 | A1 |
20080108322 | Upp | May 2008 | A1 |
20080120717 | Shakkarwar | May 2008 | A1 |
20080298289 | Jeyaseelan | Dec 2008 | A1 |
20080313462 | Zhao et al. | Dec 2008 | A1 |
20090006658 | Gough | Jan 2009 | A1 |
20090049222 | Lee et al. | Feb 2009 | A1 |
20090199031 | Zhang | Aug 2009 | A1 |
20090327608 | Eschmann et al. | Dec 2009 | A1 |
20100023747 | Asnaashari et al. | Jan 2010 | A1 |
20100058045 | Borras et al. | Mar 2010 | A1 |
20100070751 | Chue | Mar 2010 | A1 |
20100174934 | Zhao | Jul 2010 | A1 |
20130046966 | Chu | Feb 2013 | A1 |
20130346777 | Zhang | Dec 2013 | A1 |
Number | Date | Country |
---|---|---|
1140272 | Jan 1997 | CN |
1847911 | Oct 2007 | EP |
08076872 | Mar 1996 | JP |
09044418 | Feb 1997 | JP |
10320302 | Dec 1998 | JP |
2002099502 | Apr 2002 | JP |
2002215409 | Aug 2002 | JP |
2004005254 | Jan 2004 | JP |
2005011120 | Jan 2005 | JP |
5565778 | Jun 2014 | JP |
Entry |
---|
“EP Intent to Grant”, European Patent Application No. 09803951.4, May 14, 2013, 13 Pages. |
“Foreign Office Action”, Japanese Application No. 2011-527899, Apr. 16, 2013, 5 pages. |
“Non-Final Office Action”, U.S. Appl. No. 13/863,079, Jun. 20, 2013, 10 pages. |
“Non-Final Office Action”, U.S. Appl. No. 13/657,511, Mar. 28, 2013, 13 pages. |
“Notice of Allowance”, U.S. Appl. No. 12/541,731, Apr. 2, 2013, 8 pages. |
“Foreign Office Action”, Chinese Application No. 200980153758.6, Apr. 27, 2013, 14 pages. |
“Extensions to Direct Link Setup (DLS) Comments”, IEEE, P802.11z, (Jul. 2009), pp. 1-3. |
“Final Office Action”, U.S. Appl. No. 12/098,254, (May 18, 2011), 11 pages. |
“Final Office Action”, U.S. Appl. No. 12/101,668, (May 10, 2012), 8 pages. |
“Final Office Action”, U.S. Appl. No. 12/178,268, (May 25, 2011), 13 pages. |
“Final Office Action”, U.S. Appl. No. 12/541,731, (May 31, 2012), 11 pages. |
“Foreign Office Action”, European Patent Application No. 09803951.4, (May 24, 2012), 3 pages. |
“Non-Final Office Action”, U.S. Appl. No. 12/098,254, (Jan. 14, 2011), 8 pages. |
“Non-Final Office Action”, U.S. Appl. No. 12/101,668, (Apr. 5, 2011), 7 pages. |
“Non-Final Office Action”, U.S. Appl. No. 12/101,668, (Aug. 9, 2012), 8 pages. |
“Non-Final Office Action”, U.S. Appl. No. 12/178,268, (Dec. 21, 2011), 13 pages. |
“Non-Final Office Action”, U.S. Appl. No. 12/178,268, (Dec. 22, 2010), 10 pages. |
“Non-Final Office Action”, U.S. Appl. No. 12/271,761, (Oct. 3, 2011), 6 pages. |
“Non-Final Office Action”, U.S. Appl. No. 12/541,731, (Oct. 21, 2011), 9 pages. |
“Non-Final Office Action”, U.S. Appl. No. 12/559,987, (Nov. 9, 2011), 10 pages. |
“Non-Final Office Action”, U.S. Appl. No. 12/636,558, (Jan. 10, 2012), 6 pages. |
“Non-Final Office Action”, U.S. Appl. No. 12/636,558, (May 29, 2012), 8 pages. |
“Non-Final Office Action”, U.S. Appl. No. 13/333,551, (Apr. 6, 2012), 5 pages. |
“Notice of Allowance”, U.S. Appl. No. 12/098,254, (Dec. 14, 2011), 4 pages. |
“Notice of Allowance”, U.S. Appl. No. 12/098,254, (Sep. 28, 2011), 4 pages. |
“Notice of Allowance”, U.S. Appl. No. 12/178,268, (Jul. 2, 2012), 4 pages. |
“Notice of Allowance”, U.S. Appl. No. 12/271,761, (Jan. 3, 2012), 6 pages. |
“Notice of Allowance”, U.S. Appl. No. 12/559,987, (Jun. 15, 2012), 5 pages. |
“Notice of Allowance”, U.S. Appl. No. 13/333,551, (May 30, 2012), 4 pages. |
“Part 11—Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications”, Information Technology—Telecommunications & Information Exchange Between Systems . . . International Standard, ISO/IEC 8802-11, First Ed., (1999), pp. 1-531. |
“PCT Partial Search Report”, Application Serial No. PCT/US2008/078343, Partial International Search,(Mar. 5, 2009), 2 pages. |
“PCT Search Report and Written Opinion”, Application No. PCT/US2009/067767, (Mar. 26, 2010), 12 pages. |
“PCT Search Report”, Application No. PCT/US2009/056973, (Nov. 4, 2009), 13 pages. |
“PCT Search Report”, Application Serial No. PCT/US2008/078343, (May 18, 2009), 5 pages. |
“Restriction Requirement”, U.S. Appl. No. 12/101,668, (Sep. 22, 2011), 6 pages. |
“Foreign Office Action”, European Patent Application No. 09803951.4, Dec. 13, 2012, 6 pages. |
“Foreign Office Action”, Japanese Application No. 2011-544456, Jan. 29, 2013, 7 pages. |
“Notice of Allowance”, U.S. Appl. No. 12/636,558, Jan. 9, 2013, 4 pages. |
“Notice of Allowance”, U.S. Appl. No. 12/101,668, Jan. 11, 2013, 6 pages. |
“Supplemental Notice of Allowance”, U.S. Appl. No. 12/101,668, Feb. 8, 2013, 4 Pages. |
“Foreign Office Action”, Japanese Application No. 2011-527899, Nov. 6, 2012, 4 pages. |
“Non-Final Office Action”, U.S. Appl. No. 12/541,731, Sep. 4, 2012, 11 pages. |
“Supplemental Notice of Allowance”, U.S. Appl. No. 13/333,551, Oct. 23, 2012, 2 pages. |
“Foreign Notice of Allowance”, Japanese Application No. 2011-527899, Jan. 28, 2014, 1 Page. |
“Foreign Office Action”, Chinese Application No. 200980136849.9, Feb. 7, 2014, 15 Pages. |
“Foreign Office Action”, CN Application No. 200980153758.6, Dec. 30, 2013, 8 pages. |
“Foreign Office Action”, Japanese Application No. 2011-544456, Dec. 3, 2013, 2 pages. |
“Non-Final Office Action”, U.S. Appl. No. 13/683,056, Nov. 8, 2013, 5 pages. |
“Notice of Allowance”, U.S. Appl. No. 13/657,511, Nov. 4, 2013, 9 pages. |
“Foreign Office Action”, Chinese Application No. 200980136849.9, May 24, 2013, 20 Pages. |
“Foreign Office Action”, Japanese Application No. 2011-527899, Aug. 13, 2013, 2 pages. |
“Foreign Office Action”, Japanese Application No. 2011-544456, Jul. 9, 2013, 6 pages. |
“Non-Final Office Action”, U.S. Appl. No. 13/863,079, Oct. 1, 2013, 9 pages. |
“Final Office Action”, U.S. Appl. No. 13/863,079, May 7, 2014, 7 pages. |
“Foreign Decision to Grant”, JP Application No. 2011-544456, May 20, 2014, 2 pages. |
“Foreign Notice of Allowance”, CN Application No. 200980153758.6, Jul. 15, 2014, 4 Pages. |
“Foreign Office Action”, CN Application No. 200980136849.9, May 19, 2014, 11 Pages. |
“Non-Final Office Action”, U.S. Appl. No. 13/958,101, Jun. 6, 2014, 14 pages. |
“Notice of Allowance”, U.S. Appl. No. 13/683,056, May 9, 2014, 4 pages. |
Number | Date | Country | |
---|---|---|---|
60910330 | Apr 2007 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 13333551 | Dec 2011 | US |
Child | 13598282 | US | |
Parent | 12098254 | Apr 2008 | US |
Child | 13333551 | US |