Field of Invention
The present application relates to the medium access control operations of the radio access networks of wireless broadband communication systems, cellular systems, and more particularly, methods and apparatus for virtualizing the wireless system resources and decoupling the user scheduling operation form the operation of resource assignment base stations.
Discussion of Related Art
This invention is concerned with the specification of a method and apparatus for the virtualization of wireless resources for a wireless system where multiple virtual MAC layer slices may operate simultaneously in a base station. While the scheduling operations conducted by the virtual MAC layers decide on which users and flows will get service, the assignment of the physical wireless resources to these users and flows is decoupled from such scheduling operations using this invention.
A number of related art is present. The patent application US 2011/0029347 A1 presents a wireless network virtualization scheme, where each mobile virtual network operator (MVNO) bids for resource blocks by providing a per-user rate-utility function to the network operator. Mobile network operator (MNO) in return makes rate allocation to each MVNO, set current and future prices for the resource blocks, based on sum-utility maximization across all users. MVNOs transfer the bytes for each user based on the allocation and update utility functions of each user.
The patent application US 2013/0094486 A1 discloses a virtualization scheme for wireless local area networks, where multiple virtual access points sharing the same physical access point are granted time shares to access the resources of the physical access point for transmitting the data packets of users associated with the said virtual access points over the wireless medium.
The patent application US 2012/0044876 A1 discloses a virtualized base station belonging to an operator A and a mobile subscriber of another operator B can access to its home network (i.e., B) after a virtual base station that is part of operator B is instantiated on the virtualized base station that belongs to operator A.
The U.S. Pat. No. 8,873,482 B2 discloses a wireless network virtualization substrate at the scheduling layer, where each MVNO requests bandwidth and/or slot reservations (where slot refers to time, frequency, spreading code, etc., resources specifying the unit of resource block) from the virtualization substrate. The virtualization substrate first picks an MVNO to schedule over a slot (e.g., after sorting each MVNO with respect to the ratio of bandwidth/resource allocated and bandwidth/resource reserved). The invention also includes utility maximization based allocation strategies in deciding which MVNO should be assigned to what slot. Then, the virtualization substrate schedules the flows of the selected MVNO on the allocated slots. Each MVNO can control the ordering of flows and packets by specifying the scheduling policy for its own flows, putting virtual time tags in the packet headers, or any other means that do not impede the line speed processing.
The U.S. Pat. No. 8,351,948 B2 and U.S. Pat. No. 8,700,047 B2 both disclose a customizable flow management in a cellular base station, where a plurality of custom flow management schedulers coexists on the same base station. Each flow management scheduler executes a flow management function, which can be configured and programmed by an external entity to change the flow selection process in each scheduler.
The patent application US 2012/0002620 A1 discloses a method for remotely virtualizing the flows from an entity external to the base station without modifying the base station itself. Virtualization entity shapes the traffic flows and schedules them before forwarding them to the base station entity. A synchronizing function on the external entity prevents packets being backlogged at the base station by matching the shaped traffic rate to the base station's transmission rate.
The U.S. Pat. No. 8,874,125 B2 discloses a method where a plurality of individually virtualized base stations in a radio access network is shared across MVNOs. At an aggregator/gateway node, resources are allocated centrally to each MVNO on all base stations connected to the said aggregator node. Aggregator/gateway node dynamically compute optimal resource share of each MVNO on each base station based on revenue maximization. The computed shares are passed onto the scheduler at each base station, where the resource shares of MVNOs are locally enforced.
Embodiments of the present invention are an improvement over prior art systems and methods.
The present invention considers a wireless network where users or flows of users sharing a common spectrum are grouped together so that each group may be subjected to its own set of medium access (MAC) protocols. The network operator or service provider that serves a plurality of subscribers defines a service group for said plurality of subscribers and controls the corresponding virtualized MAC for the said service group. The grouping of users or flows of users into service groups may be in one or more of the following ways:
In the invention, the virtual medium access control layers (vMACs) for all existing service groups run on top of the physical mobile operator's medium access control layer. In a base station, one or more vMACs may be programmatically invoked, modified or terminated at a given time. Virtualizing the MAC layer into multiple distinct slices as vMACs provides the same semantics to each network operator or service provider controlling one or more such service groups as if they were the sole operator to conduct scheduling.
In the state-of-the-art cellular wireless networks, the scheduler running on a base station decides on which users to serve at a given time, and maps the head-of-line packets of the scheduled user flows to wireless resource blocks (RBs) that are available. In the invention, there may exist multiple vMACs present on a base station. Each vMAC is allocated a portion of the wireless resources available at the base station and runs its own scheduler which is responsible for deciding which of its subscriber flows are to be served on its allocated portion of the wireless resources.
Rather than allocating the actual physical resources to the individual vMACs, the invention describes a system where the underlying MAC allocates virtual resource blocks (vRBs) to the vMACs. In the invention, the mapping of these vRBs to the physical RBs is decoupled from the individual schedulers of the vMACs and is conducted by the underlying MAC of the base station. In the system, the scheduler of each vMAC maps the head-of-line packets of the scheduled user flows to the vRBs that it governs. Once the decisions on how to utilize the virtual resources are complete for each vMAC, the underlying MAC conducts the vRB to physical RB mapping.
In the cellular system of the invention, each user equipment (UE) sends channel state information (CSI) feedback to the serving base station. This feedback may be one single CSI value valid for the entire set of RBs, or may include a distinct CSI value for each RB. It is also possible to have multiple CSI values, each valid for a group of RBs. In the case where the CSI values received have coarser granularity than per RB, the base station may conduct interpolation to estimate per RB CSI values for the UE.
In the system of the invention, upon receiving the CSI feedback, and optionally conducting interpolation to estimate the per CSI values for all users, the underlying MAC computes a virtual channel state information (vCSI) for each service group subscriber and shares this information with the corresponding vMAC. This value is used by the vMAC scheduler in deciding which flows to service at a given time. Each service group subscriber has a single vCSI value that is common for all vRBs that the service governs. Thus, the scheduler simply decides on who gets serviced and how many RBs it is to use using a function that depends on the vCSI values as well as other quantitates. As far as the scheduler is concerned, it does not matter, for example, if the head-of-line packet of a flow is mapped to vRB-1 or vRB-2.
The invention discloses a method and apparatus for sharing wireless resources among multiple service groups. The MNO is responsible for assigning virtual resource blocks (vRBs) to each service group. The service groups lease vRBs for a limited time period and may pay a monetary fee per vRB as specified by the MNO. Each service group dynamically schedules its own traffic flows on one or more of the vRBs that it leases. Each service group utilizes virtual channel state information (vCSI) provided by the MNO for each active subscriber device of the said service group to perform channel aware scheduling.
The invention discloses methods and apparatus for a base station to compute the vCSI information per subscriber as well as methods and apparatus to map the vRBs to RBs in the presence of multiple vMACs, such that regardless of service group scheduling decisions, the vRBs to physical RB mapping feasible with service guarantees. The vCSI information might be different from one user of the service group to another user of the same service group. Although, the actual CSI per user might be different for different physical resource blocks, MNO provides one vCSI value for all the vRBs for a specific user. This simplifies the vRB scheduling decisions as well as vRB to RB mapping as follows. From the service group point of view, it only needs to decide on the number of vRBs to allocate to each flow in each scheduling interval and can assign arbitrary vRBs to these flows up to the said number of vRBs. The MNO can map the vRBs to physical RBs in such a way that the data rate advertised for the CSI associated with the vRB for a user is different than the actual transmission data rate with the assigned RB.
The method disclosed herein is composed of three stages:
The existing state of the art on mobile network virtualization has the MNO who owns the base station handle the physical layer transmission and medium access control, while MVNOs on top, set flow priorities, reserve bandwidth, or configure the protocol stack on the data plane nodes. As such MVNOs cannot take advantage of varying channel qualities of their individual subscribers.
This invention enables a simple virtualization framework, where not only MVNOs, but also any service groups that are formed, can make channel aware resource block assignments to take advantage of multi-user diversity while most of the underlying physical layer states are hidden from them. The invention also gives flexibility to the MNO to dynamically assign physical resource blocks to each service group or MVNO.
In one embodiment, the present invention discloses a communication architecture for medium access control (MAC) layer virtualization comprising: a MAC layer, a plurality of physical resource blocks (RBs) associated with the MAC layer, a plurality of virtual medium access control (vMAC) layers, each vMAC layer corresponding to a separate service group, where each service group programs its own scheduling logic in each vMAC instance, a plurality of virtual resource blocks (vRBs) associated with each vMAC layer, the vRBs filled with data packets according to the scheduling logic in each vMAC instance. In this embodiment, the MAC layer virtualizes the RBs as vRBs and assigns them to each vMAC layer.
In an extended embodiment, the channel state information (CSI) is received via a feedback from user equipment (UE) to the MAC layer, the MAC layer translating per UE per RB CSI into per RB virtual CSI (vCSI) and forwarding vCSI to corresponding vMAC, where the corresponding vMAC's scheduler conducts scheduling to fill vRBs with head of line packets using at least vCSI, with vRBs allocations being passed on to the MAC layer and the MAC layer conducts vRB to RB mapping so that the head of line packets are transmitted over actual, physical RBs.
In an extended embodiment, the CSI feedback by the UE is for a few channels and the MAC layer uses interpolation to estimate the CSI for each resource block.
In an extended embodiment, a channel quality indicator (CQI) is used as the CSI, where a higher CQI value indicates a better channel condition and a modulation and coding scheme with higher rate.
In one extended embodiment, for a UE of service group (SG) i, its NSGi'th sorted CQI value (e.g., sorted in an ascending or descending manner) is selected as its vCSI value.
In another extended embodiment, for a UE of service group (SG) i, the average of its top NSGi sorted CQI values (e.g., sorted in an ascending or descending manner) is selected as its vCSI value.
In an extended embodiment, where each UE reports its channel measurements in the form of CSI to a mobile network operator's (MNO's) base station, the MAC layer of the base station then provides virtual CSI (vCSI) values to the vMAC instance of each service group for each UE accessing services of the service group, and the vMAC instance then conducts its own scheduling to compute the number of vRBs assigned to each of its traffic flows based on the vCSI, flow profiles, and quality of experience/service objectives.
In an extended embodiment, where, for each scheduled user k, resource blocks are sorted with respect to CSIk,RB in descending order and top nk RBs in ordered in CSIk,RB are assigned to user k.
In an extended embodiment, where, when conflicts arise when a given physical RB is tentatively mapped to multiple different vRBs, and for each user sharing the conflicting RB, the next best unassigned r* is picked from their ordered list as the RB candidate, with user, UE, with a smallest CSIUE,r* value being assigned the conflicting RB, and the remaining users that share the conflicting RB being assigned their next best unassigned r*.
In an extended embodiment, where, when conflicts arise when a given physical RB is tentatively mapped to multiple different vRBs and for each user sharing the conflicting RB, the next best unassigned r* is picked from their ordered list as the RB candidate, with user, UE, with a largest difference, (vCSIUE−CSIUE,r*), being assigned the conflicting RB and the remaining users that share the conflicting RB being assigned their next best unassigned r*.
The present invention also provides an article of manufacture comprising non-transitory computer storage medium storing computer readable program code which, when executed by a computer, implements medium access control (MAC) layer virtualization comprising: computer readable program code implementing a MAC layer, computer readable program code implementing a plurality of physical resource blocks (RBs) associated with the MAC layer, computer readable program code implementing a plurality of virtual medium access control (vMAC) layers, each vMAC layer corresponding to a separate service group, where each service group programs its own scheduling logic in each vMAC instance, computer readable program code implementing a plurality of virtual resource blocks (vRBs) associated with each vMAC layer, the vRBs filled with data packets according to the scheduling logic in each vMAC instance. In this embodiment, the MAC layer virtualizes the RBs as vRBs and assigns them to each vMAC layer.
The present disclosure, in accordance with one or more various examples, is described in detail with reference to the following figures. The drawings are provided for purposes of illustration only and merely depict examples of the disclosure. These drawings are provided to facilitate the reader's understanding of the disclosure and should not be considered limiting of the breadth, scope, or applicability of the disclosure. It should be noted that for clarity and ease of illustration these drawings are not necessarily made to scale.
While this invention is illustrated and described in a preferred embodiment, the invention may be produced in many different configurations. There is depicted in the drawings, and will herein be described in detail, a preferred embodiment of the invention, with the understanding that the present disclosure is to be considered as an exemplification of the principles of the invention and the associated functional specifications for its construction and is not intended to limit the invention to the embodiment illustrated. Those skilled in the art will envision many other possible variations within the scope of the present invention.
Note that in this description, references to “one embodiment” or “an embodiment” mean that the feature being referred to is included in at least one embodiment of the invention. Further, separate references to “one embodiment” in this description do not necessarily refer to the same embodiment; however, neither are such embodiments mutually exclusive, unless so stated and except as will be readily apparent to those of ordinary skill in the art. Thus, the present invention can include any variety of combinations and/or integrations of the embodiments described herein.
A typical embodiment of the invention provides a specific architecture for wireless network virtualization as depicted in
As an essential part of the invention, channel state information (CSI) must be collected and conveyed to service groups for their respective subscribers.
In a typical embodiment, the control and user plane of both MAC and vMAC layers are decoupled from each other, where the control plane monitors the queue, flow, channel states and makes scheduling decisions while the user plane processes the byte streams from each flow and carries out the wireless transmission/reception. In
The main methods for computing the vCSI values in the embodiment are shown in
Once the vCSIUE's are computed by the MAC and passed onto the relevant vMAC instances, each vMAC instance performs scheduling decisions based on these vCSIUE values. For example, a vMAC instance can execute proportionally fair scheduling (PFS), where each user is prioritized during the scheduling by the vMAC instance according to the PFS metric computed as Rate-Function (vCSIUE)/TUE. Here, Rate-Function(x) is the mapping used by physical network operator to decide on the transmission rate (or equivalently transport block size) for each RB at a CSI value equal to the vCSIUE and TUE is the average throughput User-UE has been served with until the current scheduling interval. TUE can be computed as window-averages or a discounted moving average of past transmission rates utilized for User-UE at each scheduling interval including the zero rates (i.e., user is not scheduled). The higher the PFS metric is, the more priority a user receives in the scheduling decision. In one embodiment, TUE, is computed as the real throughput received by the user after the MNO decides on the actual flow to RB mapping as well as the transmission rate. In such a case, MNO provides the delivered rate for each user in the last transmission slot to vMAC instances. Alternatively, TUE can be taken as strictly a virtual throughput value where vMAC instances assume that MNO will provide a transmission rate to User-UE according to the advertised vCSIUE value. Clearly, the invention described herein is not limited to the PFS algorithm, but is applicable to any scheduling algorithm that a service group desires to use. A vMAC is even free to disregard the advertised vCSIUE values. For example, a vMAC instance can simply run Round-Robin scheduling for its users. A vMAC instance can make scheduling decisions solely based on the vCSIUE values too, for instance, by allocating all the vRBs to the user with the highest vCSIUE value. A vMAC instance may also use a priority index that multiplies the queue backlog with the instantaneous rate supportable at the advertised vCSIUE value, providing higher priority to the users with larger priority indices. For the invention to be particularly useful, the vMAC instance must run a channel-aware scheduler that utilizes vCSIUE in the scheduling decisions.
In the method of the invention, once the scheduler of each vMAC decides on how many vRBs are allocated for which user or traffic flow, it passes this information to the MAC layer of the base station. A critical component of the method is the “vRB to RB Mapper” as shown in block (11) of
In the first step of the vRB to RB mapping methods of the embodiment as shown in blocks (90) in
In a typical embodiment, the MNO keeps track of the advertised versus actual rates for vRBs to change the prioritization in resolving conflicts. In other words, the higher the accumulated difference in advertised rate and actual rate, the higher priority is assigned. In another embodiment, the MNO keeps track of the average rate supported per vRB for each service provider to prioritize between service providers in resolving conflicts. The service providers that have lower average rate per vRB are given higher priority.
The present invention also provides an article of manufacture comprising non-transitory computer storage medium storing computer readable program code which, when executed by a computer, implements medium access control (MAC) layer virtualization comprising: computer readable program code implementing a MAC layer, computer readable program code implementing a plurality of physical resource blocks (RBs) associated with the MAC layer, computer readable program code implementing a plurality of virtual medium access control (vMAC) layers, each vMAC layer corresponding to a separate service group, where each service group programs its own scheduling logic in each vMAC instance, computer readable program code implementing a plurality of virtual resource blocks (vRBs) associated with each vMAC layer, the vRBs filled with data packets according to the scheduling logic in each vMAC instance. In this embodiment, the MAC layer virtualizes the RBs as vRBs and assigns them to each vMAC layer.
Many of the above-described features and applications can be implemented as software processes that are specified as a set of instructions recorded on a computer readable storage medium (also referred to as computer readable medium). When these instructions are executed by one or more processing unit(s) (e.g., one or more processors, cores of processors, or other processing units), they cause the processing unit(s) to perform the actions indicated in the instructions. Embodiments within the scope of the present disclosure may also include tangible and/or non-transitory computer-readable storage media for carrying or having computer-executable instructions or data structures stored thereon. Such non-transitory computer-readable storage media can be any available media that can be accessed by a general purpose or special purpose computer, including the functional design of any special purpose processor. By way of example, and not limitation, such non-transitory computer-readable media can include flash memory, RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code means in the form of computer-executable instructions, data structures, or processor chip design. The computer readable media does not include carrier waves and electronic signals passing wirelessly or over wired connections.
Computer-executable instructions include, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. Computer-executable instructions also include program modules that are executed by computers in stand-alone or network environments. Generally, program modules include routines, programs, components, data structures, objects, and the functions inherent in the design of special-purpose processors, etc. that perform particular tasks or implement particular abstract data types. Computer-executable instructions, associated data structures, and program modules represent examples of the program code means for executing steps of the methods disclosed herein. The particular sequence of such executable instructions or associated data structures represents examples of corresponding acts for implementing the functions described in such steps.
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing or executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks.
In this specification, the term “software” is meant to include firmware residing in read-only memory or applications stored in magnetic storage or flash storage, for example, a solid-state drive, which can be read into memory for processing by a processor. Also, in some implementations, multiple software technologies can be implemented as sub-parts of a larger program while remaining distinct software technologies. In some implementations, multiple software technologies can also be implemented as separate programs. Finally, any combination of separate programs that together implement a software technology described here is within the scope of the subject technology. In some implementations, the software programs, when installed to operate on one or more electronic systems, define one or more specific machine implementations that execute and perform the operations of the software programs.
A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
These functions described above can be implemented in digital electronic circuitry, in computer software, firmware or hardware. The techniques can be implemented using one or more computer program products. Programmable processors and computers can be included in or packaged as mobile devices. The processes and logic flows can be performed by one or more programmable processors and by one or more programmable logic circuitry. General and special purpose computing devices and storage devices can be interconnected through communication networks.
Some implementations include electronic components, for example microprocessors, storage and memory that store computer program instructions in a machine-readable or computer-readable medium (alternatively referred to as computer-readable storage media, machine-readable media, or machine-readable storage media). Some examples of such computer-readable media include RAM, ROM, read-only compact discs (CD-ROM), recordable compact discs (CD-R), rewritable compact discs (CD-RW), read-only digital versatile discs (e.g., DVD-ROM, dual-layer DVD-ROM), a variety of recordable/rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc.), flash memory (e.g., SD cards, mini-SD cards, micro-SD cards, etc.), magnetic or solid state hard drives, read-only and recordable BluRay® discs, ultra density optical discs, any other optical or magnetic media, and floppy disks. The computer-readable media can store a computer program that is executable by at least one processing unit and includes sets of instructions for performing various operations. Examples of computer programs or computer code include machine code, for example is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter.
While the above discussion primarily refers to microprocessor or multi-core processors that execute software, some implementations are performed by one or more integrated circuits, for example application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs). In some implementations, such integrated circuits execute instructions that are stored on the circuit itself.
As used in this specification and any claims of this application, the terms “computer readable medium” and “computer readable media” are entirely restricted to tangible, physical objects that store information in a form that is readable by a computer. These terms exclude any wireless signals, wired download signals, and any other ephemeral signals.
A system and method has been shown in the above embodiments for the effective implementation of a method and apparatus for virtual channel state information based wireless radio access network virtualization. While various preferred embodiments have been shown and described, it will be understood that there is no intent to limit the invention by such disclosure, but rather, it is intended to cover all modifications falling within the spirit and scope of the invention, as defined in the appended claims. For example, the present invention should not be limited by software/program, computing environment, or specific computing hardware.
This application claims benefit of U.S. provisional application Ser. No. 62/215,113 filed Sep. 7, 2015.
Number | Date | Country | |
---|---|---|---|
62215113 | Sep 2015 | US |