The extensive deployment and accelerated growth in the market for numerous wireless communications products and services have stimulated commensurate interest and activity in research and development directed to wireless communication technology. Rapid advances in the various wireless techniques have been reflected in modifications of, or extensions to, applicable protocol standards. For example, the IEEE 802.11 standard, applicable to WLAN (wireless local area network) technology, has undergone a number of modifications and extensions since the initial adoption of IEEE 802.11 in 1997. Corresponding standards and protocols applicable to other wireless technologies have been subject to similar evolutionary effects in product requirements.
As might be expected, vendors of wireless products are eager to incorporate into their products not only those features that are necessary to comply with evolving standards (i.e., table stakes) but also proprietary features by which those vendors might capture a competitive advantage. Heretofore, responses to evolving standard and the implementation of proprietary features have been effected primarily through design changes to hardware and/or associated device drivers. Consequently, realization of wireless protocol enhancements obliges vendors to pursue time-consuming and costly design changes in hardware devices and device drivers. As a result, the product-development cycle, which heretofore has been necessarily dependent on the release of hardware design changes, becomes protracted.
Accordingly, what is desired is the capacity to respond to standard and protocol changes in a manner that tends to minimize the product-development cycle and to promote greater flexibility and agility in a wireless product feature set.
The subject MAC (media access control) architecture may be better understood by, and its many features, advantages and capabilities made apparent to, those skilled in the art with reference to the Drawings that are briefly described immediately below and attached hereto, in the several Figures of which identical reference numerals (if any) refer to identical or similar elements, and wherein:
Skilled artisans appreciate that elements in Drawings are illustrated for simplicity and clarity and have not (unless so stated in the Description) necessarily been drawn to scale. For example, the dimensions of some elements in the Drawings may be exaggerated relative to other elements to promote and improve understanding of embodiments of the invention.
Referring now to
In this regard,
Returning now to
In accordance with one embodiment of the invention, each filter chain is constructed from number of filter drivers that are effective to perform MAC processing that is applicable to a particular wireless medium. For example, in the embodiment of
With respect to the filter drivers in a respective filter chain (for example, filter drivers 110a, . . . , 110n in filter chain 110), each filter driver may be viewed as a loadable building block. That is to say, with respect to filter chain 110, filter driver 110a, in one embodiment, may be a software filter that is designed to perform, for example, fragmentation/assembly processing in accordance with an IEEE 802.11 WLAN. Similarly, filter driver 110b, in one embodiment, may be a software filter that is designed to perform encryption/decryption processing for an IEEE 802.11 WLAN medium. That is, each filter driver in filter chain 110 is based on a MAC primitive that is applicable to the MAC processing in an IEEE 802.11 medium. Similarly, filter drivers 120a, . . . , 120n in filter chain 120 implement corresponding MAC primitives that are applicable to an IEEE 802.15 PAN medium, for example.
For example, the 802.11 MAC sublayer may be decomposed into the following primitives: MLME (MAC subLayer Management Entity, MPDU (MAC Protocol Data Unit) Preparation, Power Management and Monitors. MLME, in turn, comprises Authentication, Association, and Management Control primitives. MPDU Preparation, in turn, comprises, 802.11 to 802.3 Conversion (and the reverse), Encryption/Decryption, and Fragmentation/Reassemble primitives. Power Management and Monitor comprises Power-Saving Filter (for the access point), Power Monitoring, and Power Management (based on network usage)primitives. Accordingly, filter chain 110, when configured for MAC processing in an IEEE 802.11 medium, will comprise a number of filter drivers that implement some or all the above reference primitives.
A notable advantage derives from the arrangement of filter chains described herein. Because a substantial quantum of MAC processing is allocated to and performed in the filter chains by building-block filter drivers, the device driver 140, illustrated in
A salient aspect of the MAC architecture 10, as described immediately above, is a construction that is characterized by a number of dynamically configurable filter chains. The filter chains are themselves assembled from discrete building blocks (filter drivers) in manner that is effective to perform the MAC services that are applicable to the wireless medium at hand, as that medium is defined by applicable standards and/or protocols. The MAC architecture is, in large part, rendered dynamically configurable by virtue of a filter manager 130.
Specifically, in one embodiment of the invention, MAC architecture 10 may comprise a filter manager 130. The functionality of the filter drivers may be effectuated through the operation of filter manager 130. In one embodiment, filter manager 130 may operate to query a filter chain for information regarding the data types at the filter chain input and output. Filter manager 130 may also issue queries for information characterizing the properties of the filter chain, particularly, the hardware and software requirements of a filter chain, as established by the operating environment. Based on the information provided, filter manager 130 may assemble an appropriate filter chain.
For example, in one embodiment of the invention, filter manager 130 queries an interface of each filter driver to obtain the respective properties of the filter driver. Filter manager 130 then creates and maintains a sequence table in respect of each filter driver. The filter chain may then be constructed upon completion of matching analysis by filter manager 130. The matching analysis matches the characteristics of input data to the respective properties of the filter drivers. In one embodiments of the invention, filter drivers may be stored in the device operating system, and filter chains may constructed during creation of the device driver stack.
As indicated above, each filter chain is assembled in a manner that is appropriate to the processing of a particular wireless medium. Therefore, the filter chains that populate a MAC architecture 10 will be distinguishable in accordance with a respective target medium. However, in some embodiments, commonality may obtain with respect to discrete filter drivers. That is, identical, or at least substantially similar, filter drivers may be deployed in disparate filter chains. (Be aware that the filter drivers per se, including the techniques by which they are created, do not constitute an aspect, or limitation, of the subject invention.
Furthermore, filter manager 130 controls the operation of the filter chains so that the filter chains may be caused to operate in one of a number of modes: Stop, Pause, and Run, for example, as defined immediately below.
Stop Mode: Stop is an idle mode. That is, there is no send and receive processing the Stop mode. A filter chain may transition from stop mode to Pause when an Initializing function is called. The filter chain can enter the Stop mode from Pause mode when a De-Initializing function is called.
Pause Mode: In the Pause mode, filter chains may be available either to perform send/receive processing or to compiles all send/receive operations that are required to terminate processing. The filter chain can enter the Pause mode either from Stop mode, when the Initializing function is called, or from Run mode, when a Pausing function is called. The filter chain may transition from Pause mode to Run mode when a Restarting/Starting function is called or to Stop mode when the De-initializing function is called.
Run Mode: In the Run mode, filter chains can send and receive processing. A filter chain can enter Run mode from Pause mode when the function is called. A filter chain can leave transition from Run mode to Pause mode when a Pausing function is called.
Understand that the functions (Initializing, De-Initializing, Starting/Restarting, and Pause) are not aspects of the invention and are susceptible to definitions imposed by system or device designers.
In one embodiment of the invention, inclusion of filter manager 130 contributes to the operational agility that obtains as a result of MAC architecture 10. For example, filter manager 130 operates to dynamically configure (and reconfigure) filter chains by removing filter drivers form, and inserting filter drivers into, respective filter chains. That is, as a hardware device is called upon to operate in the context of a specific wireless medium, e.g., 802.llx, filter manager 130 will assemble an appropriate filter chain from the necessary filter drivers. At a subsequent point in time, the wireless hardware device may be called on to process a different wireless medium, e.g., HomeRF™. Filter manager 130 will then operate to assemble the filter chain, from appropriate filter drivers, that is required to process the then-prevailing wireless medium.
The processor 310 may be coupled over a host bus 315 to a memory hub (i.e., a memory controller) 330 in one embodiment, which may be coupled to a system memory 320 via a memory bus 325. The memory hub 330 may also be coupled over an Advanced Graphics Port (AGP) bus 333 to a video controller 335, which may be coupled to a display 337. The AGP bus 333 may conform to the Accelerated Graphics Port Interface Specification, Revision 2.0, published May 4, 1998, by Intel Corporation, Santa Clara, Calif.
Memory hub 330 may control the transfer of information within system 300, e.g., between processor 310, memory hub 330, and memory 320. That is, memory hub 330 may generate control signals, address signals, and data signals that may be associated with a particular write or read operation to memory 320.
In some embodiments, memory hub 330 may be integrated with processor 310 and/or with memory 320. In alternate embodiments, memory hub 330 may be a discrete component or dedicated chip. In other embodiments, portions of the functionality of memory hub 330 may be implemented in processor 310 or in memory 320 as, for example, a software application, module, or routine.
The memory hub 330 may also be coupled (via a hub link 338) to an input/output (I/O) hub 340 that is coupled to a input/output (I/O) expansion bus 342 and a Peripheral Component Interconnect (PCI) bus 344, as defined by the PCI Local Bus Specification, Production Version, Revision 2.1 dated in June 1995, or alternately a bus such as the PCI Express bus, or another third generation I/O interconnect bus. The I/O expansion bus 342 may be coupled to an I/O controller 346 that controls access to one or more I/O devices. As shown in
The PCI bus 344 may be coupled to various components including, for example, a flash memory 360 which may include the structure shown in the block diagram of
Although the description makes reference to specific components of the system 300, it is contemplated that numerous modifications and variations of the described and illustrated embodiments may be possible. Moreover, while
In addition, embodiments of the invention may be realized in software (or in the combination of software and hardware) that may be executed on a host system, such as, for example, a computer system, a wireless device, or the like. Accordingly, such embodiments may comprise an article in the form of a machine-readable storage medium onto which there are written instructions, data, etc. that constitute a software program that defines at least an aspect of the operation of the system. The storage medium may include, but is not limited to, any type of disk, including floppy disks, optical disks, compact disk read-only memories (CD-ROMs), compact disk rewritables (CD-RWs), and magneto-optical disks, and may include semiconductor devices such as read-only memories (ROMs), random access memories (RAMs), erasable programmable read-only memories (EPROMs), electrically erasable programmable read-only memories (EEPROMs), flash memories, magnetic or optical cards, or any type of media suitable for storing electronic instructions. Similarly, embodiments may be implemented as software modules executed by a programmable control device, such as a computer processor or a custom designed state machine.
Accordingly, from the Description above, it should be abundantly clear there has been presented herein a substantial advance in the implementation of MAC layers for wireless communication applications. To wit: the invention enables venders of wireless communications products to rapidly respond to evolving wireless protocol requirements, thereby substantially reducing the product-development cycle and associated time-to-market. Furthermore, the embodiments of the invention enable wireless communication hardware devices to be dynamically adaptable to a wide range of wireless media.
While the present invention has been described with respect to a limited number of embodiments, those skilled in the art will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover all such modifications and variations as fall within the true spirit and scope of this present invention.