U.S. patent application number 11/043476 was filed with the patent office on 2005-10-27 for device and method for mapping information streams to mac layer queues.
Invention is credited to Amramy, Avi, Hay, Ran.
Application Number | 20050238025 11/043476 |
Document ID | / |
Family ID | 34753024 |
Filed Date | 2005-10-27 |
United States Patent
Application |
20050238025 |
Kind Code |
A1 |
Hay, Ran ; et al. |
October 27, 2005 |
Device and method for mapping information streams to MAC layer
queues
Abstract
A device and method for mapping information streams to MAC layer
queues, the method includes: utilizing a distributed media access
control scheme to determine a configuration of the network; and
adjusting an adjustable filter such as to map application
parameters to the MAC layer queues, in response to the
configuration of the network.
Inventors: |
Hay, Ran; (Rosh Haayin,
IL) ; Amramy, Avi; (Kefar Saba, IL) |
Correspondence
Address: |
BLAKELY SOKOLOFF TAYLOR & ZAFMAN
12400 WILSHIRE BOULEVARD
SEVENTH FLOOR
LOS ANGELES
CA
90025-1030
US
|
Family ID: |
34753024 |
Appl. No.: |
11/043476 |
Filed: |
January 25, 2005 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11043476 |
Jan 25, 2005 |
|
|
|
PCT/IL05/00021 |
Jan 6, 2005 |
|
|
|
60535436 |
Jan 8, 2004 |
|
|
|
60535621 |
Jan 8, 2004 |
|
|
|
Current U.S.
Class: |
370/395.1 ;
370/463 |
Current CPC
Class: |
H04B 7/2628 20130101;
H04W 88/04 20130101; H04L 1/0041 20130101; H04W 28/14 20130101;
H04L 45/16 20130101; H04W 28/10 20130101; H04W 28/065 20130101;
H04W 72/1242 20130101; H04W 72/1263 20130101; H04B 2201/70702
20130101; H04L 1/1607 20130101; H04W 74/08 20130101; H04L 45/00
20130101; H04L 47/14 20130101; H04B 1/7163 20130101; H04W 72/0446
20130101 |
Class at
Publication: |
370/395.1 ;
370/463 |
International
Class: |
H04L 012/28 |
Claims
We claim:
1. A method for mapping information streams to MAC layer queues,
the method comprises: utilizing a distributed media access control
scheme to determine a configuration of the network; and adjusting
an adjustable filter such as to map application parameters to the
MAC layer queues, in response to the configuration of the
network.
2. The method of claim 1 further comprising exchanging information
frames between device of the network while monitoring the
configuration of the network.
3. The method of claim 1 further comprising adjusting the
adjustable filter in response to a change in the configuration.
4. The method of claim 1 whereas the configuration of the network
represents applications supported by devices of the network.
5. The method of claim 1 whereas the adjusting comprises
determining a length of at least one key of the virtual table in
response to the configuration.
6. The method of claim 1 whereas the mapping comprises retrieving
instructions from a memory unit and performing at least one
comparison between at least a portion of a key and at least a
portion of a received information frame.
7. The method of claim 1 further comprising exchanging information
between ultra wide band devices.
8. A device, comprising: MAC layer entity comprising multiple MAC
layer queues, the MAC layer entity is adapted to participate in a
distributed media access control scheme to determine a
configuration of the network; and an adjustable filter adapted to
map application parameters to the MAC layer queues, in response to
the configuration of the network.
9. The device of claim 8 further adapted to exchange information
frames between device of the network while monitoring the
configuration of the network.
10. The device of claim 8 further adapted to adjust adjustable
filter in response to a change in the configuration.
11. The device of claim 8 whereas the configuration of the network
represents applications supported by devices of the network.
12. The device of claim 8 whereas the adjustable filter comprises a
two dimensional table for mapping between application parameters
and MAC layer queues.
13. The device of claim 12 whereas the device is adapted to
determine a length of at least one key of the virtual table in
response to the configuration.
14. The device of claim 12 whereas the adjustable filter is adapted
to retrieve instructions from a memory unit and to perform at least
one comparison between at least a portion of a key and at least a
portion of a received information frame.
15. The device of claim 12 further adapted to perform ultra wide
band transmission.
16. A computer readable medium having code embodied therein for
causing an electronic device to perform the stages of: utilizing a
distributed media access control scheme to determine a
configuration of the network; and adjusting an adjustable filter
such as to map application parameters to the MAC layer queues, in
response to the configuration of the network.
Description
RELATED APPLICATIONS
[0001] The present patent application is a continuation application
of International Application No. PCT/IL05/000021 filed Jan. 6,
2005, which claims priority benefit from United States Provisional
Application No. 60/535,436 filed Jan. 8, 2004 and U.S. Provisional
Application No. 60/535,621 filed Jan. 8, 2004, the contents of
which are incorporated herein by reference.
[0002] This application is related to the following
applications:
[0003] 1. METHOD AND DEVICES FOR MULTICASTING INFORMATION OVER A
NETWORK THAT APPLIED A DISTRIBUTED MEDIA ACCESS CONTROL SCHEME,
Application Ser. No.______, filed Jan. 25, 2005.
[0004] 2. METHODS AND DEVICES FOR EXPANDING THE RANGE OF A NETWORK,
Application Ser. No.______, filed Jan. 25, 2005.
[0005] 3. METHOD AND SYSTEM FOR OPERATING MULTIPLE DEPENDENT
NETWORKS, Application Ser. No.______, filed Jan. 25, 2005.
[0006] 4. ULTRA WIDE BAND WIRELESS MEDIUM ACCESS CONTROL METHOD AND
A DEVICE FOR APPLYING AN ULTRA WIDE BAND WIRELESS MEDIUM ACCESS
CONTROL SCHEME, Application Ser. No.______, filed Jan. 25,
2005.
[0007] 5. METHOD AND DEVICE FOR TRANSMISSION AND RECEPTION OVER A
DISTRIBUTED MEDIA ACCESS CONTROL NETWORK, Application Ser.
No.______, filed Jan. 25, 2005.
FIELD OF THE INVENTION
[0008] The invention relates to devices and methods for mapping
information streams to Media Access Control (MAC) layer queues,
especially in ultra wide band networks that apply a distributed MAC
scheme.
BACKGROUND OF THE INVENTION
[0009] Recent developments in telecommunication and semiconductor
technologies facilitate the transfer of growing amounts of
information over wireless networks.
[0010] The demand for short to medium range, high speed
connectivity for multiple digital devices in a local environment
continues to rise sharply. For example, many workplaces and
households today have many digital computing or entertainment
devices such as desktop and laptop computers, television sets and
other audio and video devices, DVD players, cameras, camcorders,
projectors, handhelds, and others. Multiple computers and
television sets, for instance, have become common in American
households. In addition, the need for high speed connectivity with
respect to such devices is becoming more and more important. These
trends will inevitably increase even in the near future.
[0011] As the demand for high speed connectivity increases along
with the number of digital devices in typical households and
workplaces, the demand for wireless connectivity naturally grows
commensurately. High-speed wiring running to many devices can be
expensive, awkward, impractical and inconvenient. High speed
wireless connectivity, on the other hand, offers many practical and
aesthetic advantages, which accounts the great and increasing
demand for it. Ideally, wireless connectivity in a local
environment should provide high reliability, low cost, low
interference caused by physical barriers such as walls or by
co-existing wireless signals, security, and high speed data
transfer for multiple digital devices. Existing narrowband wireless
connectivity techniques do not provide such a solution, having
problems such as high cost, unsatisfactory data transfer rates,
unsatisfactory freedom from signal and obstacle related
interference, unsatisfactory security, and other shortcomings. In
fact, the state of the art does not provide a sufficiently
satisfactory solution for providing high speed wireless
connectivity for multiple digital devices in a local
environment.
[0012] Some of short-range ultra wide band wireless networks are
characterized by a distributed architecture in which devices
exchange information without being controlled by a central host or
a base station.
[0013] FIG. 1 is a schematic illustration of two ultra wide band
wireless networks (also referred to as personal access networks) 10
and 20, each including multiple devices that wirelessly communicate
with each other. First network 10 includes first till third devices
A-C11-13 and the second network 20 includes forth till sixth
devices D-F24-26.
[0014] FIG. 2 illustrates a typical TDMA frame 30. TDMA frame 30
includes multiple time-slots, such as beacon slots 14 and media
access slots. The media access slots include distributed
reservation protocol (DRP) slots 36 and prioritized contention
access (PCA) slots 38. PCA slots are also referred to as PCA
periods. DRP slots are also referred to as DRP periods.
[0015] The beacon slots are used to synchronize devices to the TDMA
frame 30. A typical beacon frame includes information that
identifies the transmitting device. It also may include timing
information representative of the start time of the TDMA frame
30.
[0016] The DRP slots 36 are coordinated between devices that belong
to the same network and allow devices to reserve these slots in
advance. During the PCA slots 38 devices that belong to the network
compete for access based upon their transmission priority. It is
noted that the allocation of media access time slots is dynamic and
can change from one TDMA frame to another.
[0017] Typically, transmissions from devices during PCA slots are
assigned by applying a carrier sense multiple access with collision
avoidance (CSMA/CA) scheme If a device requests to transmit over a
wireless medium it has to check if the wireless medium is idle. If
the wireless medium is idle, the device has to wait a random
backoff period. This random backoff time is selected from a
contention window that has a length that is related to the priority
of the device. For higher-priority devices the contention window is
shorter.
[0018] A typical network includes multiple communication layers. In
a network that includes various devices each device can be capable
of receiving certain information streams or frames. For example,
Ethernet protocol allows to define multiple virtual local networks,
and each device has a unique MAC. Yet for another example, in a
Internet Protocol network each device has a unique IP address. Yet
for a further example, some devices can receive certain information
types (such as but not limited MPEG compliant video streams), while
other are not capable of receiving these information types. Thus,
each device can be characterized by one or more application
parameters.
[0019] In order to send the proper information frames to the proper
devices there is a need to map application parameters to devices.
More specially, in a network that applies a media access control
scheme there is a need to direct information frames that include
various application parameter to the proper MAC layer queues.
[0020] It is noted that the MAC layer queues can be associated with
different applications. In some cases a single device that supports
multiple applications, can be associated with multiple MAC queues.
On the other hand information streams can also be multi-cast or
broadcast, thus the amount of MAQ layer queues can differ than the
amount of devices. Furthermore, a certain MAC layer queue is not
necessarily associated with a certain device.
[0021] Typical networks are characterized by a relative fixed
configuration and also include a central controller (also termed
master device, host, and the like) that determine the mapping
scheme. In various networks, such as ultra wide band networks the
network configuration can alter rapidly due to various reasons
including a temporary change in the channel, a movement of a person
carrying a mobile device and the like.
[0022] There is a need to provide a method and device that can
allow an efficient alteration of mapping between application
parameters and MAC layer queues.
SUMMARY OF THE INVENTION
[0023] A method for mapping information streams to MAC layer
queues, the method includes: utilizing a distributed media access
control scheme to determine a configuration of the network; and
adjusting an adjustable filter such as to map application
parameters to the MAC layer queues, in response to the
configuration of the network.
[0024] A device, including: MAC layer entity including multiple MAC
layer queues, the MAC layer entity is adapted to participate in a
distributed media access control scheme to determine a
configuration of the network; and an adjustable filter adapted to
map application parameters to the MAC layer queues, in response to
the configuration of the network.
[0025] A computer readable medium having code embodied therein for
causing an electronic device to perform the stages of: utilizing a
distributed media access control scheme to determine a
configuration of the network; and adjusting an adjustable filter
such as to map application parameters to the MAC layer queues, in
response to the configuration of the network.
BRIEF DESCRIPTION OF THE DRAWINGS
[0026] The present invention will be understood and appreciated
more fully from the following detailed description taken in
conjunction with the drawings in which:
[0027] FIG. 1 is a schematic illustration of two networks (also
referred to as personal access networks), each including multiple
devices that wirelessly communicate with each other;
[0028] FIG. 2 illustrates a typical TDMA frame;
[0029] FIGS. 3-4 illustrate a device capable of wireless
transmission, and some of its components, according to an
embodiment of the invention;
[0030] FIG. 5 illustrates various communication layers and also
service access points (SAPs) that illustrates the interaction
between layers of a device of a first network;
[0031] FIG. 6 illustrates an environment that includes some of the
components that allow to communicate over the ultra wide band
wireless medium on one side and also with other wired or wireless
components on the other side;
[0032] FIGS. 7 and 8 illustrate an adjustable filter according to
various embodiments of the invention;
[0033] FIG. 9 illustrates a two-dimensional virtual table according
to an embodiment of the invention;
[0034] FIG. 10 illustrates a format of an instruction, according to
an embodiment of the invention; and
[0035] FIG. 11 is a flow chart of a method according to an
embodiment of the invention.
DETAILED DESCRIPTION OF THE DRAWINGS
[0036] Some portions of the following description relates to
wireless ultra wide band networks that utilize a distributed media
access control scheme. In these networks there is no central media
access controller, but rather various devices of the network
participate in determining how to share a common wireless medium.
It is noted that according to various embodiments of the invention
the disclosed methods and devices can be applied in networks that
utilize a distributed media access control scheme but differ from
ultra wide band wireless networks. It is further noted that
according to some embodiments of the invention networks other than
ultra wide band network can apply some of the suggested
methods.
[0037] Various operations such as transmissions utilize the
distributed media access control scheme in the sense that the
access to a shared medium is governed by a distributed media access
control scheme.
[0038] Some embodiments of the invention provide an ultra wide band
wireless medium access control method and a device capable of
performing ultra wide band wireless medium access control
schemes.
[0039] Conveniently, the device is a part of a ultra wideband
wireless network and has a communication protocol stack that
includes at least a PHY layer and a MAC layer. The MAC layer of
such devices controls the access to ultra wide band wireless medium
and is referred to ultra wide band wireless medium access
control.
[0040] Examples of devices that have a PHY layer are illustrated in
the following U.S. patent applications, all being incorporated
herein by reference: U.S. patent application Ser. No. 10/389789
filed on Mar. 10, 2003 and U.S. patent application Ser. No.
10/603,372 filed on Jun. 25 2003.
[0041] The receiver can include various components that are
arranged in multiple layers. A first configuration includes a frame
convergence sub-layer, a MAC layer, a PHY layer as well as MAC SAP,
PHY SAP, frame convergence sub-layer SAP and a device management
entity can also be utilized. Another configuration is described at
FIGS. 3 and 4.
[0042] Wisair Inc. of Tel Aviv Israel manufactures a chip set that
includes a Radio Frequency PHY layer chip and a Base-Band PHY layer
chip. These chips can be connected in one end to a RF antenna and
on the other hand be connected or may include a MAC layer
circuitry.
[0043] FIG. 3 illustrates a device 60 that is capable of wireless
transmission, according to an embodiment of the invention.
[0044] Device 60 includes antenna 61 that is connected to a RF chip
62. RF chip 62 is connected to a MAC/PHY layers chip 63 that
includes a PHY layer block 63 and a MAC layer block 64. The MAC/PHY
layers chip 63 is connected to an application entity 66 that
provides it with information to be eventually transmitted (TX) and
also provides the application 66 with information received (RX) by
antenna 61 and processed by PHY and MAC layers blocks 68 and 69 of
FIG. 5.
[0045] Typically, the MAC layer block 64 controls the PHY layer
block using a PHY status and control interface. The MAC and PHY
layers exchange information (denoted TX and RX) using PHY-MAC
interface 90. The RF chip 62 provides to the PHY layer block 63
received information that is conveniently down-converted to base
band frequency. The RF chip 62 receives from the PHY layer block 63
information to be transmitted as well as RF control signals. The
application 66 is connected to the MAC/PHY layers chip 63 by a high
speed I/O interface.
[0046] FIG. 4 illustrates various hardware and software components
of the MAC/PHY layers chip 63, according to an embodiment of the
invention.
[0047] The Upper Layer IF block 64 of the MAC/PHY layers chip 63
includes hardware components (collectively denoted 69) and software
components (collectively denoted 68). These components include
interfaces to the PHY layer (MAC-PHY interface 90) and to the
application (or higher layer components).
[0048] The hardware components 69 include configuration and status
registers 81, Direct Memory Access controller 82, First In First
Out (FIFO) stacks 83 and frame validation and filtering components
84, DRP and PCA slots schedulers 85, ACK processors 86, and MAC-PHY
internal interface 87.
[0049] The software components 68 include a management module 72,
transmit module 73, receive module 74m hardware adaptation layer
75, DMA drivers 76, MAC layer management entity (MLME) service
access point (SAP) 71, MACS API 70 and the like.
[0050] These software and hardware components are capable of
performing various operations and provide various services such as:
providing an interface to various layers, filtering and routing of
specific application packets sent to MAC data queues or provided by
these queues, performing information and/or frame processing, and
the like.
[0051] The routing can be responsive to various parameters such as
the destinations of the packets, the Quality of Service
characteristics associated with the packets, and the like.
[0052] The processing of information along a transmission path may
include: forming the MAC packet itself, including MAC header
formation, aggregation of packets into a bigger PHY PDU for better
efficiency, fragmentation of packets for better error rate
performance, PHY rate adaptation, implementation of
Acknowledgements policies, and the like.
[0053] The processing of information along a reception path may
include de-aggregation and/or de-fragmentation of incoming packets,
implementation of acknowledgment and the like.
[0054] The hardware components are capable of transferring data
between MAC software queues and MAC hardware (both TX and RX),
scheduling of beacons slots, scheduling of DRP and PCA access
slots, validation and filtering (according to destination address)
of incoming frames, encryption/decryption operations, low-level
acknowledgement processing (both in the TX path and in the RX
path),
[0055] Device 60 can be a simple device or even a complex device
such as but not limited to a multimedia server that is adapted to
transmit information frames of different types to multiple devices.
It can, for example transmit Streaming data, like voice, Video,
Game applications, etc.) data files during DRP slots, and while PCA
slots transmits video over IP frames, download MP3 files, download
MPEG-2 files, and stream or download MPEG-4 streams.
[0056] Usually, voice frames are associated with higher quality of
service requirements and accordingly are given higher transmission
priorities. The voice frames QoS requirements are followed by video
frames that in turn are followed by lower quality of service
requirements (lower priority transmission) frames such as best
effort frames and background frames.
[0057] The devices of first network 10, as well as second network
20 of FIG. 5 include multiple communication layer components. FIG.
5 illustrates various communication layers and also service access
points (SAPs) that illustrates the interaction between layers of a
device of the first network 10.
[0058] The communication layers includes a PHY layer 4010, a MAC
layer 4020, and a frame convergence sub-layer (FCSL) 4030. The
interaction between the PHY layer 4010 and the MAC layer 4020 is
represented by PHY SAP 4015. The interaction between the MAC layer
4020 and the FCSL 4030 is represented by MAC SAP 4025. The
interaction between FCSL 4030 and an upper layer (such as
application layer) is represented by FCSL SAP 4035. Each layer
includes a management entity. The PHY layer management entity
(PLME) 4012 interacts with the MAC layer management entity (MLME)
4022 via MLME-PLME SAP 4017. MLME 4022 interacts with a device
management entity (DME) 4040 via MLME SAP 4027. DME 4040 interacts
with PLME 4012 via PLME SAP 4018.
[0059] It is noted that some of the management entities and SAPs of
FIG. 5 do not appear in FIG. 5 or are not represented by dedicated
corresponding components. It is noted that this for simplicity of
explanation purposes. The device 60 illustrated in FIG. 5 usually
includes all the required components.
[0060] It is also noted that FIG. 5 does not illustrate all the
communication protocol stack and corresponding components that
allow a reception and transmission and reception over the wired
components that are connected to PHY/MAC layer chip 63, and
especially does not illustrated the components that allow to
exchange information with application 66 or other components
connected to PHY/MAC layer chip 63.
[0061] FIG. 6 illustrates an environment 4200 that includes some of
the components that allow to communicate over the ultra wide band
wireless medium on one side and also with other wired or wireless
components on the other side. It is assumed that there is a USB PHY
interface on one side and a Ethernet PHY interface on the
other.
[0062] Environment 4200 includes an Ultra Wide Band (UWB) PHY layer
component 4210 that is connected to a ultra wide band transmitter
(not shown) such as but not limited to RF chip 62 and antenna 61 of
FIG. 3. The PHY UWB layer component 4210 is connected to a UWB MAC
component 4220. The UWB MAC component 4220 is connected to a memory
unit 4230, to a processor 4240 and to a direct memory access
controller (DMA controller) 4250. The DMA controller 4250 is
connected to a MAC Ethernet component 4260 that in turn is
connected to a PHY Ethernet component 4270. The adjustable filter
4100 receives a byte stream from MAC Ethernet component 4260 and
especially from a temporary storage unit within said MAC component,
and is also connected to memory 4230.
[0063] The environment 4200 can include a device or be included
within a device (such as device 60) that includes a MAC layer
entity that in turn includes multiple MAC layer queues. This MAC
layer entity is adapted to participate in a distributed media
access control scheme to determine a configuration of the network;
and also includes adjustable filter 4100. The adjustable filter
4100 is adapted to map application parameters to the MAC layer
queues, in response to the configuration of the network.
[0064] FIG. 7 illustrates adjustable filter 4100 according to an
embodiment of the invention.
[0065] Adjustable filter 4100 includes a controller 4310, program
memory (also referred to as program RAM) 4320, key table memory
unit (also referred to as key table RAM) 4330, result temporary
storage unit (also referred to as result lock) 4340 and a
comparator unit 4350. The controller is connected to components
4320-4350 and is adapted to execute programs stored within program
memory unit 4320, and provide appropriate mapping between
application parameters and devices. The mapping rules can include
appropriate masks and comparisons.
[0066] The adjustable filter 4100 includes a two-dimensional
virtual table (denoted 4332 in FIG. 35). The first dimension is the
key dimension and it can be altered according to various parameter
including the application parameter associated with devices of a
certain network, the applications supported by the devices of the
network, the identity of devices that form a network, and the
like.
[0067] The key's length can be changed in response to a various
changes, such as but not limited to a change in the identity of
devices that belong to the network an/or a change in the
applications supported by the devices of the network. These changes
can occur quite rapidly, due to relative movement of one or more
device in relation to other devices, due to temporal changes in the
reception and transmission conditions and the like.
[0068] When there is a need to add more keys the length of each key
(or at least of some of the keys) is usually decreased. The
decrement is usually also responsive to the adjustable filter's
storage capabilities. Thus, if there is enough storage space for
storing more keys without a key length alteration, this alteration
may not take place.
[0069] It is further noted that the mapping rules can change, even
without changing the keys length, when there is a change in the
applications supported by network devices or when there is a change
in the devices that belong to a network. In some cases such a
change will require to change the masks, as older masks do not
necessarily provide a clear distinction between newly supported
applications and older applications.
[0070] Conveniently, the adjustable filter 4100 performs multiple
comparisons between selected portions of the received information
stream and portions of the key. The inventors used an adjustable
filter that was able to perform two-bytes comparisons. Thus if the
key was longer multiple comparisons were executed. The result of
each two byte comparison was represented by two bits in a match
result unit. Once a comparison session ends multiple bits of the
match result unit are examined to determine the overall success of
the comparison process. It is further noted that when relevant
fields are less than two bytes long the remaining bits can be
masked during the comparison.
[0071] Referring to FIG. 9, the virtual table 4332 has multiple
entries, and each entry has two fields. The first fields are
denoted 4334(1,1)-4334(1,N) and are also referred to as the key
fields. Each key field stores a single key. The second fields are
denoted 4334(2,1)-4334(2,N) and are also referred to as the result
(or destination) fields. They store the results of the filtering
process--the destination of the received information stream from
which various information fields were retrieved and processed.
[0072] The destination can be one of the MAC queues (such as but
not limited to the various DRP or PCA queues illustrated in any of
FIGS. 6-9), can be a processing queue or a drop queue. The
processing queue stores information frames that are not recognized
or other information frames that ought to be processed by a
processor (or a controller or a mapper) in order to determine their
destination. The drop queue can be a virtual queue for information
frames that are dropped.
[0073] Conveniently, the key fields length (also referred to as key
dimension) can be adjusted. Conveniently it ranges between one byte
and thirty two bytes, but other lengths can be appropriate. The
result field is conveniently two bytes long, but this is not
necessarily so.
[0074] It is noted that the result field length can be varied,
although the inventors altered only the key field length.
[0075] The amount of keys is also referred to as the entry
dimension, and represents the amount of different mapping rules.
This dimension can reflect the amount of supported sessions.
[0076] Conveniently, the controller 4310 can execute simple
commands (op-codes) such as set a register, reset s register,
compare, compare using a mask, store to data RAM, load to a
register, load offset, jump, end program and the like.
[0077] The adjustable filter 4100 can be easily adjusted to provide
optimal solutions to a dynamic environment, and for supporting
various applications (including media applications).
[0078] The mapping scheme is based upon a set of programmable
instructions. The amount of streams supported by the adjustable
filter is responsive to the storage capacity of the adjustable
filter, and is characterized by a small silicon footprint.
[0079] FIG. 8 illustrates adjustable filter 4100 in greater
details, according to an embodiment of the invention.
[0080] Adjustable filter 4100 includes controller 4310 that is
connected to a burst control unit 4430, a data address control unit
4410, program address control unit 4400, watchdog unit 4370, wait
control unit 4380, comparator unit 4350, and register decoder unit
4440. The comparator unit 4350 is further connected to the frame
key collect unit 4360 and to the match result unit 4340. The
program RAM 4320 is further connected to a management access
arbiter 4420 and to the program access control unit 4400. The key
table RAM 4330 is also connected to the data address control unit
4410.
[0081] The watchdog unit 4370 monitors the cycle period and resets
the controller if the execution of a single command is too lengthy.
The register decoder unit 4440 is connected between controller 4310
and the comparator unit 4350 and allows the controller to access
one of the registers of the comparator unit during a load register
instruction. The wait control unit 4380 includes a counter that
allows to execute commands that are triggered once a certain
counter value is reached.
[0082] The frame key collect unit 4360 includes a byte counter
4362, two match BE registers 4364 and 4665, as well as two match
registers 5668 and 4669. The unit is adapted to strip certain bytes
from a received information stream according to control information
stored in one of its Match BE registers.
[0083] The comparator unit 4350 is adapted to compare the content
of one of the match registers to information retrieved from the key
table RAM, whereas the comparison can involve applying a mask on
the compared information. The result of the comparison
(failure/success) is sent to the match result unit 4340 The match
result unit can set or reset an appropriate bit in response to a
set/reset logic control field within an instruction.
[0084] FIG. 10 illustrates a format of an instruction 4500, stored
within the program RAM 4320, according to an embodiment of the
invention. Instruction 4500 includes the following fields: Byte
number field 4510, command field 4520, address field 4530,
destination register field 4540, result bit mask field 4550, result
set/reset field 4560 and burst size field 4570. The byte number
field 4510 indicates the first relevant byte within a received
information stream to be processed during the filtering
process.
[0085] Table 1 illustrates exemplary values of the command field
4520 and the associated commands
1TABLE 1 Value Command Details 0000 Reset Register Reset the
register defined in the destination register field 0001 Set
Register Set the register defined in the destination register field
0010 Load Load the entry (within the key table RAM) indicated in
the address field to the register defined in the destination
register field 0011 Load Offset Load the entry (within the key
table RAM) corresponding to (Address + Offset) to the register
defined in the destination register field 0100 Compare Compare
Match1 register (the bytes stripped from Match1 the information
stream) to the entry (within the key table RAM) indicated in the
address field. 0101 Compare Compare Match2 register (the bytes
stripped from Match2 the information stream) to the entry (within
the key table RAM) indicated in the address field. 0110 Compare
Compare Match1 register (the bytes stripped from Match1 & the
information stream) to the entry (within the key Mask table RAM)
indicated in the address field, while applying a mask 0111 Compare
Compare Match2 register (the bytes stripped from Match2 & the
information stream) to the entry (within the key Mask table RAM)
indicated in the address field, while applying a mask 1000 Store
Store the value from the register indicated by the destination
register field to the entry (within the key table RAM)
corresponding to the address filed. 1001 Jump Jump to instruction
that is stored at the address indicated by the address field. 1111
End End the transaction after this current instruction and reset
all registers. 1010-1110 NOP No operation
[0086] The result bit mask field 4550 indicates which bit in the
result register should represent (be either set or reset) the
result of a single comparison. The result set/reset field 4560
indicates if that bit is set or rest when the comparison succeeds.
The burst size field 4570 can indicate an amount of iterations a
certain instruction should be continuously executed.
[0087] Tables 2 and 3 illustrate an exemplary mapping based upon
various application parameters to devices and an exemplary mapping
program. The application parameters include Ethernet Virtual LAN
(VLAN) and destination address (DA) fields. The network is assumed
to support twelve separate uni-cast addresses (usually
corresponding to twelve possible devices) and two multi-cast
addresses. The VLAN field is twelve bits long while the comparison
is performed on a byte basis, thus a four bit mask should be
applied.
[0088] Table 2 illustrates the format of an exemplary virtual table
4332' that is used during the mapping process:
2 TABLE 2 KEY (8 bytes long) DA + VLAN[11:0] - 8 bytes Result Key1
Key2 Key3 Key4 Stream-ID + DA1-DA2 = DA3-DA4 = DA5-DA6 = VLAN[11:0]
= others - 2 Entry # Type B1-B2 B3-B4 B5-B6 B15-B16 bytes 0 Multi
E0K1 E0K2 E0K3 E0K4 Stream-ID0 1 Cast E1K1 E1K2 E1K3 E1K4
Stream-ID1 2 Uni- E2K1 E2K2 E2K3 E2K4 Stream-ID2 3 cast E3K1 E3K2
E3K3 E3K4 Stream-ID3 4 E4K1 E4K2 E4K3 E4K4 Stream-ID4 5 E5K1 E5K2
E5K3 E5K4 Stream-ID5 6 E6K1 E6K2 E6K3 E6K4 Stream-ID6 7 E7K1 E7K2
E7K3 E7K4 Stream-ID7 8 E8K1 E8K2 E8K3 E8K4 Stream-ID8 9 E9K1 E9K2
E9K3 E9K4 Stream-ID9 10 E10K1 E10K2 E10K3 E10K4 Stream-ID10 11
E11K1 E11K2 E11K3 E11K4 Stream-ID11 12 E12K1 E12K2 E12K3 E12K4
Stream-ID12 13 E13K1 E13K2 E13K3 E13K4 Stream-ID13
[0089] The first comparison (denoted key1) involves comparing
between the first two the stored key (denoted B1-B2) and the first
two bytes of the DA field (denoted DA1-DA2). There are fourteen
possible valid vales for these first two bytes, and they are
E0K1-E13K1. The second comparison (denoted key2) involves comparing
between the third and fourth bytes of the stored key (denoted
B3-B4) and the third and fourth bytes of the DA field (denoted
DA3-DA4). There are fourteen possible valid vales for these bytes,
and they are denoted E0K2-E13K2.
[0090] The third comparison (denoted key3) involves comparing
between the fifth and sixth bytes of the stored key (denoted B5-B6)
and the fifth and sixth bytes of the DA field (denoted DA5-DA6).
There are fourteen possible valid vales for these bytes, and they
are denoted E0K3-E13K3. The fourth comparison (denoted key4)
involves comparing between the first twelve bits of the sixth and
seventh bytes of the stored key (denoted B7-B8) and the first
twelve bits of the VLAN field (denoted VLAN [11,0]. This comparison
include masking the four remaining bits. There are fourteen
possible valid vales for these bits, and they are denoted
E0K4-E13K4. If the four comparisons are successful then result of
the comparison is one of the results denoted Stream-ID0-Stream
ID13. Each of said results is associated with a single MAC layer
queue.
[0091] Table 3 illustrates an exemplary program executed by the
adjustable filter 4100 during a mapping process. Table 3 has three
columns--an "Entry#" that represents the memory unit entry address
in which an instruction is stored, the instruction column that
represents the stored instruction and a comments column.
3TABLE 3 Entry # Data content Comments 0 Key1 = B1-B2 1 Key2 =
B3-B4 2 Key3 = B5-B6 3 Key4 = B14-B15 4 Mask for VLAN =
1111_00000000000 5 Mask for MC Key1 Other keys don't 6 Mask for UC
Key1 need mask 7 Result Register initial value (for 14 entries) =
0011111111111111 8 Lock Key1 Temporary entries to 9 Lock Key2 lock
Key result from frame to be compared later in the program. 10-23
Key1 for 14 entries = E0K1-E13K1 Key Database 24-37 Key2 for 14
entries = E0K2-E13K2 38-51 Key3 for 14 entries = E0K3-E13K3 52-65
Key4 for 14 entries = E0K4-E13K4 66-79 Result for 14 entries =
Result Database Stream-ID0-Stream-ID13 80-255 Not used
[0092] These stored instructions are fetched by the controller 4310
that will execute the following program:
4 a. Load Key1 (A0) .fwdarw. Match1-BE register b. Load Key2 (A1)
.fwdarw. Match2-BE register c. Wait until B=2. Store Match1
register to Temp Lock A8. d. Load Key3 (A2) .fwdarw. Match1-BE
register e. Wait until B=4. Store Match2 register to Temp Lock A9.
f. Load Key4 (A3) .fwdarw. Match2-BE register g. Load initial value
(A7) to Result-Lsb register h. Wait until B=6. Compare Match1
register to Key3-MC : A38, Burst =2. Result(reset) from 0. i.
Compare Match1 register to Key3-UC : A40, Burst =12. Result(reset)
from 2. j. Load Lock-Key1 (A8 temp) .fwdarw. Match1 register. k.
Load Mask-MC (A5) .fwdarw. Mask register. l. Compare-Mask Match1
register to Key1-MC : A10, Burst =2. Result(reset) from 0. m. Load
Mask-UC (A6) .fwdarw. Mask register. n. Compare-Mask Match1
register to Key1-UC : A12, Burst =12. Result(reset) from 2. o. Load
Lock-Key2 (A9 temp) .fwdarw. Match1 register. p. Compare Match1
register to Key2-MC&UC : A24, Burst =14. Result(reset) from 0.
q. Load Mask-Vlan (A4) .fwdarw. Mask register. r. Wait until B=16.
Compare-Mask Match2 register to Key4-MC&UC : A66, Burst =14.
Result(reset) from 0. s. Load-Offset Result of the first Match
entry (A66 + offset) .fwdarw. Output Register. t. END!
[0093] Tables 4 and 5 illustrate an exemplary mapping based upon
various application parameters to devices and an exemplary mapping
program. The application parameters include program identification
field (PID) of an MPEG compliant media stream. The PID is thirteen
bit long, thus a two-byte comparison and masking of three bits are
required.
[0094] Table 4 illustrates the format of an exemplary virtual table
4332" that is used during the mapping process:
5TABLE 4 KEY PID - 2 bytes Result Entry # Key = B2-B3 Stream-ID +
others - 2 bytes 0 E0 Stream-ID0 1 E1 Stream-ID1 2 E2 Stream-ID2 3
E3 Stream-ID3 4 E4 Stream-ID4 5 E5 Stream-ID5 6 E6 Stream-ID6 7 E7
Stream-ID7 8 E8 Stream-ID8 9 E9 Stream-ID9 10 E10 Stream-ID10 11
E11 Stream-ID11 12 E12 Stream-ID12
[0095] Table 5 illustrates another exemplary program executed by
the adjustable filter 4100 during a mapping process.
6TABLE 5 Entry # Data content Comments 0 Key = B2-B3 1 Mask =
111_0000000000000 2 Result Register initial value (for 13 entries)
= 0001111111111111 3-15 Key for 13 entries = E0-E13 Key Database
16-28 Result for 13 entries = Result Database
Stream-ID0-Stream-ID12 29-255 Not used
[0096] These stored instructions are fetched by the controller 4310
that will execute the following program:
7 u. Load Key (A0) .fwdarw. Match1-BE v. Load Mask (A1) .fwdarw.
Mask register w. Load initial value (A2) .fwdarw. Result-Lsb x.
Wait until B=3. Compare-Mask Match1 register to Key: A3, Burst =
13. Result(reset) from 0. y. Load-Offset Result of the first Match
entry (A16 + offset) .fwdarw. Output Register. z. END!
[0097] Tables 6 and 7 illustrate an exemplary mapping based upon
various application parameters to devices and an exemplary mapping
program. The application parameters include an Internet Protocol
(IP) field that four bytes long, thus two comparisons of two byte
each were applied by the inventors.
[0098] Table 6 illustrates the format of an exemplary virtual table
4332"' that is used during the mapping process:
8 TABLE 6 KEY IP-Dst - 4 bytes Result Key1 Key2 Stream-ID + others
- 2 Entry # Type IP1-IP2 = B39-B40 DA3-DA4 = B41-B42 bytes 0-9 MC
E0K1-E9-K1 E0K2-E9-K2 Stream-ID0-Stream-ID9 10-31 UC E10K1-E31-
E10K2-E31-K2 Stream-ID10-Stream-ID31 K1
[0099] Table 7 illustrates another exemplary program executed by
the adjustable filter 4100 during a mapping process.
9TABLE 7 Entry # Data content Comments 0 Key1 = B39-B40 1 Key2 =
B41-B42 2 Mask for MC Key1 Other keys don't need mask 8-17 Key1 for
MC entries = E0K1-E9K1 Key Database 18-39 Key1 for UC entries =
E10K1-E31K1 40-49 Key2 for MC entries = E0K2-E9K2 50-71 Key2 for UC
entries = E10K1-E31K2 72-81 Result for MC entries = Result Database
Stream-ID0-Stream-ID9 82-103 Result for UC entries =
Stream-ID10-Stream-ID31 104-255 Not used
[0100] These stored instructions are fetched by the controller 4310
that will execute the following program:
10 aa. Load Key1 (A0) .fwdarw. Match1-BE register bb. Load Key2
(A1) .fwdarw. Match2-BE register cc. Load Mask (A2) .fwdarw. Mask
register dd. Set Result-MSB register ee. Set Result-LSB register
ff. Wait until B=40. Compare-Mask Match1 register to Key1-MC : A8,
Burst=10. Result(reset) from 0. gg. Compare Match1 register to
Key1-UC : A18, Burst =22. Result(reset) from 10. hh. Wait until
B=42. Compare-Mask Match2 register to Key2-MC : A40, Burst=10.
Result(reset) from 0. ii. Compare Match2 register to Key2-UC : A50,
Burst =22. Result(reset) from 10. jj. Load-Offset Result of the
first Match entry (A72 + offset) .fwdarw. Output Register. kk.
END!
[0101] FIG. 11 illustrates a method 4600 for mapping information
streams to MAC queues, according to an embodiment of the
invention.
[0102] Method 4600 starts by stage 4610 of utilizing a distributed
media access control scheme to determine a configuration of the
network. Stage 4610 includes sending messages between devices of
the network, whereas the messages indicate at least some of the
capabilities of the devices, such as their IP address, Ethernet
address, MPEG related address, the applications each device
supports and the like. The messages are sent over a shared medium,
usually during PCA or DRP slot allocated to the transmitting
device. It is noted that at least some of the information can be
transmitted within a beacon frame.
[0103] Conveniently, a device that starts up or changes its
environment uses the beacon frames to determine at least the
identity of other devices that belong to the network.
[0104] Stage 4610 is followed by stage 4620 of adjusting an
adjustable filter such as to map application parameters to devices
of the networks, in response to the configuration. Stage 4620 can
include determining a length of a key used to map an information
stream that is characterized by one or more application parameters
to a certain MAC layer queue.
[0105] Stage 4620 can include determining an amount of different
application that should be supported by the adjustable filter and
determining the length of the keys in response to said amount. The
keys can differ from each other by length, and longer keys are
provided when shorter keys can not distinguish between different
applications. According to an embodiment of the invention stage
4620 can include providing a virtual table and changing at least
its key dimension.
[0106] Conveniently, the adjustable filter can determine that it is
not capable of supporting all the applications. In such a case some
applications can be associated with a processing queue such that
they are processed by a processor before being sent to the
appropriate MAC layer queue. In such a case some application can be
processed by fetching more information from an external memory, or
by dropping them.
[0107] Stage 4620 is followed by stage 4630 of exchanging
information frames between the devices while monitoring the
configuration of the network. If the configuration has changed then
stage 4630 is followed by stage 4620. Else, stage 4630 can be
followed by stage 4630.
[0108] It will be apparent to those skilled in the art that the
disclosed subject matter may be modified in numerous ways and may
assume many embodiments other then the preferred form specifically
set out and described above. It is noted that each of the mentioned
above circuitries can be applied by hardware, software, middleware
or a combination of the above. The mentioned above methods can be
stored in a computer readable medium, such as but not limited to
tapes, disks, diskettes, compact discs, and other optical and/or
magnetic medium.
[0109] Accordingly, the above disclosed subject matter is to be
considered illustrative and not restrictive, and to the maximum
extent allowed by law, it is intended by the appended claims to
cover all such modifications and other embodiments, which fall
within the true spirit and scope of the present invention.
[0110] The scope of the invention is to be determined by the
broadest permissible interpretation of the following claims and
their equivalents rather then the foregoing detailed
description.
* * * * *