HK1040791B - Resource allocator and method of allocating resource - Google Patents
Resource allocator and method of allocating resource Download PDFInfo
- Publication number
- HK1040791B HK1040791B HK02102432.0A HK02102432A HK1040791B HK 1040791 B HK1040791 B HK 1040791B HK 02102432 A HK02102432 A HK 02102432A HK 1040791 B HK1040791 B HK 1040791B
- Authority
- HK
- Hong Kong
- Prior art keywords
- hardware
- entry
- type
- allocator
- resource
- Prior art date
Links
Description
Background
I. Field of the invention
The present invention relates to a resource allocator for allocating a predetermined number of hardware resources from a plurality of types of hardware resources of a communication system.
Description of the related Art
When a system is designed to support more than one type of predetermined total number of users, at least one type of which requires different hardware, the system can support at most a certain number of type 1 users, leaving other types of users behind. One solution to this problem is to require that the system support the same number of classes of users. However, this is an expensive alternative, as each type of user requires the application of separate hardware.
For example, in a system that can support 8 class 1 users requiring class 1 hardware, 12 class 2 users requiring class 2 hardware, and a total of 12 users, the hardware can be configured to support 12 users of class 1 and class 2. This scheme requires 12 class 1 hardware and 12 class 2 hardware, or 24 hardware units. However, sometimes this is not economical, as there are always at least 4 class 1 users that cannot support it.
Summary of The Invention
It is an object of the present invention to provide a hardware and software based solution to the above problems which is more efficient, less costly and software independent of the mapping details.
To this end, the invention allows up to a given total number of users, for example 12 users, of which up to 8 require, for example, RSOLD-type hardware, and the remaining users require, for example, RSNEW-type hardware. The invention is completed by the following modes: e.g. 12 shared resources are mapped to e.g. 12 fixed resources by two tables, where one table has 12 entries corresponding to the maximum total number of users and the other table has 8 entries corresponding to 8 RSOLD hardware units.
Brief description of the drawings
FIG. 1 is an illustrative diagram of a resource allocator that maps software accesses to hardware units.
FIG. 2 is an illustration of mapping fixed hardware resources to shared hardware resources.
FIG. 3 is an illustration of mapping shared hardware resources to fixed hardware resources.
FIG. 4 is a flow diagram illustrating a process of allocating and deallocating RSOLD hardware resources.
Detailed description of the preferred embodiments
The present invention is a resource or channel allocator for allocating hardware resources or channels to a predetermined number of users in a communication system. A plurality of communication standards may be applied in the communication system. However, it is possible that one criterion is not as effective as the other. For example, a new standard provides additional capacity relative to previous standards. In other words, the new standard can support more users than the old standard can support at a given bandwidth. The old standards require hardware that supports the old corollary costs. For the purposes of this application, this hardware is referred to as RSOLD hardware. The new standard requires hardware that supports a new set of tariffs. In this application, this hardware is referred to as RSNEW hardware.
In a preferred embodiment, a total of, for example, 12 users may be allocated at a time. Since the old standard is not very effective, no more than 8 users can be used as users of the old standard. Each of the 12 users may be assigned to one of 8 RSOLD hardware units or one of 12 RSNEW hardware units.
The software is programmed for 12 users (0 to 11), but the software does not keep track of which hardware unit is assigned to each user. The hardware provides a mapping of hardware resources for each user, so that the hardware provides a transparent interface to the software. When accessing the hardware resources, the software provides the channel element number or user number in the address field and the hardware performs the mapping of the requirements to the appropriate hardware element.
The resource channel allocator performs mapping between fixed and shared resources. The fixed and shared resources are defined as follows:
RSOLD is a fixed resource and is old hardware which only supports old matching charges;
RSNEW is fixed resource, and is new hardware only supporting new set of charge;
RSBOTH is a shared resource and is new hardware supporting both new and old supporting charges.
Fig. 1 illustrates software accessing a hardware unit. Reference numeral 1 denotes a resource channel allocator 1. The address is provided on an address bus to the resource channel allocator 1. The software access selects one of the 12 hardware units of the above-defined resource B or C for access using "RSNEW CS" and four address lines. The software access uses "RSOLD CS" and the 3 Least Significant Bits (LSBs) of Table A to select one of the 8 hardware units of resource A defined above for access.
Table a has 12 entries, one for each channel element. Table a contains 4 bits per entry 3. The Most Significant Bit (MSB) indicates whether the entry corresponds to RSOLD hard year cell (MSB value of 0) or RSNEW hardware cell (MSB value of 1). When the MSB is 0, the three least significant bits contain the hardware unit number.
Assuming that mapping is required for channel element "i", the "i" entry of table a is read and passed to decoder 5 for decoding. If the MSB of the entry is a 1 indicating an RSNEW hardware unit, the decoder sets the RSNEW Chip Select (CS) while providing the address on the address bus. If the MSB of an entry indicates an RSNEW hardware unit, the three least significant bits of the Table A entry representing the hardware number are ignored. If the MSB value of the table A entry is 0, indicating a RSOLD channel cell, decoder 5 sets RSOLD CS to 1, outputting the three least significant bits of the table A, i entry indicating the hardware cell number.
The resource allocator maps RSBOTH shared hardware resources back and forth. Thus, the resource allocator must map the users up to, for example, 8 RSOLD fixed hardware units and the remaining number of RSNEW fixed hardware units to, for example, a total of 12 RSBOTH shared hardware units. Some possible examples of mapping to 12 shared hardware units are 12 RSNEW users and zero RSOLD users, 8 RSOLD users and 4 RSNEW users, 2 RSOLD users and 10 RSNEW users, or 3 RSOLD users and 9 RSNEW users.
FIG. 2 shows an example of linking RSOLD-type and RSNEW-type fixed hardware resources to RSBOTH shared hardware resources. Fig. 2 shows a 9-to-1 multiplexer 40. Although 12 9-to-1 multiplexers are required for this embodiment, only one (ith) 9-to-1 multiplexer is shown in fig. 2 for simplicity. Each 9-to-1 multiplexer outputs to a different shared resource unit. The 9-to-1 multiplexer 40 of fig. 2 outputs to the ith shared resource unit 38. Signals from RSOLD hardware units #0-7 and from # i RSNEW hardware units, respectively, are input to the 9-to-1 multiplexer 40. Reference numeral 36 denotes the ith entry of table a. If bit 3 of entry 36 is a 1 indicating an RSNEW hardware unit, then the signal from RSNEW hardware unit # i is allowed to output the ith shared hardware unit via the 9-to-1 multiplexer. If bit 3 of entry 36 of Table A is a 0 indicating a RSOLD hardware unit, then the value of bits 0-2 of entry 36 determines which signal from the RSOLD hardware unit is allowed to be output to the shared resource hardware unit 38 via the 9-to-1 multiplexer 40.
Each 9-to-1 multiplexer receives inputs from RSOLD hardware units # 0-7. The 1 st 9-to-1 multiplexer also receives an input from RSNEW hardware unit #0, the 2 nd 9-to-1 multiplexer also receives an input from RSNEW hardware unit #1, and so on, each 9-to-1 multiplexer having an output to each RSBOTH shared resource.
Fig. 3 shows an example of mapping RSBOTH shared resources to RSOLD or RSNEW fixed resources. Reference numeral 41 denotes shared resources for the hardware unit "i". Reference numeral 45 denotes the other 11 shared resources. In this example, the other 11 shared resources 45 and the output of shared resource 41 to hardware unit "i" are received as 12 inputs to the 12-to-1 multiplexer. Only 3 12-to-1 multiplexers 47, 53, 59 are shown. If a shared resource maps to a RSNEW fixed resource, the shared resource can map directly to the RSNEW fixed resource. In this way, shared resources mapped to RSNEW hardware units may be mapped directly to those units.
Each 12-to-1 multiplexer 47, 53, 59 is similar to each other. Each 12-to-1 multiplexer 47, 53, 59 receives input from a respective shared resource. Each 12-to-1 multiplexer 47, 53, 59 has an output that is directly input to a unique one of the 8 RSOLD hardware units 51, 57, 63 (note that only 3 of the 8 RSOLD hardware units are shown). Each 12-to-1 multiplexer 47, 53, 59 selects one of the 12 inputs according to the 4-bit value of the corresponding entry 49, 55, 61 in table B, which contains 8 entries, each entry containing the hardware ID corresponding to 8 RSOLD hardware units. For example, 49 indicates item 1 in table B, 55 indicates item 2 in table B, and 61 indicates item 8 in table B (items 3 to 7 are not shown).
Fig. 4 is a flow chart illustrating a RSOLD channel or resource allocation and de-allocation process. Step S70, request channel "i". The request indicates a request for a RSOLD channel or a RSNEW channel. Step S71, it is determined whether the new hardware type is the same as the old hardware type. For example, if the RSOLD hardware previously used channel "i" but now requested RSNEW hardware or vice versa, step S72 is performed, otherwise the request is ignored. At step S72, it is determined whether the request is made for RSOLD channel or RSNEW. If the request is for RSOLD, then step S74 is performed, and Table B is retrieved for the 1 st unused entry "j", which may be represented, for example, by a binary 1111 value in an entry in Table B. Step S75 determines whether the search step S74 of finding 1111 items succeeded. If the retrieval is unsuccessful, the channel request is ignored and an optional status bit is set. Conversely, at step 76, the lower 3 bits of the table A word "i" are set to the index "j" value, so that the table A word "i" can be used as a valid pointer for the table B word "j". At step S78, the table a word "i" is set indicating one RSOLD channel. This may be accomplished by, for example, setting the word "i" bit 3 to 0. At step S80, the Table B word "j" is set to "1" so that the Table B word "j" can be used as a valid pointer for the Table A word "i".
If step S72 determines that a RSNEW channel is requested for a previously allocated RSOLD channel, step S90 is performed to set the index "j" to a value stored in, for example, the Table A word "j" bits 0-2. "j" indicates which of the 8 RSOLD hardware units is associated with channel unit "i". At step S92, the table a word "i" is set indicating an RSNEW channel. This is done by, for example, setting bit 3 of word i of table a to 1. At step S94, a value is written into the table B word "j" indicating that RSOLD hardware unit "j" is deallocated. The value may be binary 1111, for example.
Thus, a flexible hardware and software based approach is provided for mapping more than one type of shared and fixed resources.
While the invention has been described in connection with what is presently considered to be the preferred embodiment, it is to be understood that the invention is not to be limited to the disclosed embodiment, but on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims.
Claims (9)
1. A method for allocating use of up to a predetermined number of hardware resources from among a plurality of types of hardware resources, the method comprising the steps of:
receiving an allocation request of a shared resource 'i';
determining whether the requested hardware type is a 1 st hardware type;
when the requesting hardware type is the 1 st hardware type, performing the following:
look up table 1 in the memory of the allocator for unallocated item "j",
setting an "i" th entry in a 2 nd table of the memory of the allocator to a value corresponding to a 1 st unallocated entry of the 1 st table of "j",
setting an "i" th entry in table 2 of the memory of the allocator to indicate that the type of the requesting hardware is the 1 st hardware type, and
setting an entry in said 1 st table corresponding to said 1 st unallocated entry "j" to a value corresponding to said "i" entry in said 2 nd table;
selecting one of a plurality of inputs provided to one of the plurality of multiplexers with a respective entry of the 2 nd table;
outputting a selected one of the plurality of inputs from one of the plurality of multiplexers.
2. The method of claim 1, further comprising the steps of:
when the requesting hardware is of a type other than the 1 st hardware type, performing the following:
setting an "i" th entry in a 2 nd table of the memory of the allocator to indicate that the requesting hardware type is other than the 1 st hardware type.
3. The method of claim 2, further comprising the steps of:
the step of allocating said previously allocated shared hardware resource "i" to other types of hardware resources than said 1 st hardware type comprises:
determining that the hardware resource is of a type other than the 1 st hardware type;
reading the item i in the table 2 to obtain the value k;
setting a "k" th entry of the 1 st table to indicate that the "k" th entry of the 1 st table is unallocated.
4. The method of claim 1, further comprising the steps of:
the step of allocating said previously allocated shared hardware resource "i" to other types of hardware resources than said 1 st hardware type comprises:
determining that the hardware resource is of a type other than the 1 st hardware type;
reading the item i in the table 2 to obtain the value k;
setting a "k" th entry of the 1 st table to indicate that the "k" th entry of the 1 st table is unallocated.
5. A method for allocating use of up to a predetermined number of hardware resources from among a plurality of types of hardware resources, the method comprising the steps of:
receiving an allocation request of a shared resource 'i';
determining whether the requested hardware type is a 1 st hardware type;
when the requesting hardware type is the 1 st hardware type, performing the following:
look up table 1 in the memory of the allocator for unallocated item "j",
setting an "i" th entry in a 2 nd table of the memory of the allocator to a value corresponding to a 1 st unallocated entry of the 1 st table of "j",
setting an "i" th entry in table 2 of the memory of the allocator to indicate that the type of the requesting hardware is the 1 st hardware type, and
setting an entry in said 1 st table corresponding to said 1 st unallocated entry "j" to a value representing an "i" th entry in said 2 nd table;
selecting one of a plurality of inputs provided to one of a plurality of multiplexers with a respective entry in the 1 st table, the plurality of inputs corresponding to signals from shared hardware of the 1 st hardware type;
outputting a selected one of the plurality of inputs from one of the plurality of multiplexers.
6. A resource allocator for allocating use of up to a predetermined number of hardware resources from a plurality of types of hardware resources, comprising:
means for receiving a request for allocation of a shared hardware resource "i";
means for determining whether the requested hardware type is a 1 st hardware type;
means for looking up table 1 in the memory of the allocator for the 1 st unallocated item "j";
means for setting an "i" th entry in table 2 of the memory of said allocator to a value corresponding to a 1 st unallocated "j" entry of said 1 st table;
setting an "i" th entry in table 2 of the memory of the allocator to indicate that the requesting hardware type is the device of the 1 st hardware type;
means for setting an entry in said 1 st table corresponding to said 1 st unallocated entry "j" to a value representing said entry in said 2 nd table;
means for selecting one of a plurality of inputs provided to one of a plurality of multiplexers using a corresponding entry of the table 2;
means for outputting a selected one of a plurality of inputs from one of the plurality of multiplexers.
7. The resource allocator of claim 6, further comprising means for setting an "i" th entry in said allocator's memory to indicate that said requesting hardware type is another hardware type than said 1 st hardware type.
8. The resource allocator of claim 6, further comprising:
means for allocating a previously allocated shared hardware resource "i" to hardware of a type other than said 1 st hardware type, the means comprising:
determining that the hardware resource is a device of a type other than the 1 st hardware type;
means for looking up said 1 st table for entries having values representing the "i" th entry of said 2 nd table;
setting an "i" item of the 2 nd table to indicate a device of the type different from the 1 st hardware type;
means for setting said entries of said 1 st table having values representing "i" entries of said 2 nd table to values representing deallocation.
9. A resource allocator for allocating use of up to a predetermined number of hardware resources from a plurality of types of hardware resources, comprising:
means for receiving a request for allocation of a shared hardware resource "i";
means for determining whether the requested hardware type is a 1 st hardware type;
means for looking up table 1 in the memory of the allocator for the 1 st unallocated item "j";
means for setting an "i" th entry in table 2 of the memory of said allocator to a value corresponding to a 1 st unallocated "j" entry of said 1 st table;
setting an "i" th entry in table 2 of the memory of the allocator to indicate that the requesting hardware type is the device of the 1 st hardware type;
means for setting an entry in said 1 st table corresponding to said 1 st unallocated entry "j" to a value representing said entry in said 2 nd table;
means for selecting one of a plurality of inputs provided to one of a plurality of multiplexers using a corresponding entry of the 1 st table, the plurality of inputs corresponding to signals from shared hardware resources of the 1 st hardware type;
means for outputting a selected one of a plurality of inputs from a converter of the plurality of multiplexers.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US09/189,710 | 1998-11-11 | ||
| US09/189,710 US6493354B1 (en) | 1998-11-11 | 1998-11-11 | Resource allocator |
| PCT/US1999/026786 WO2000028777A2 (en) | 1998-11-11 | 1999-11-10 | Resource allocator |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1040791A1 HK1040791A1 (en) | 2002-06-21 |
| HK1040791B true HK1040791B (en) | 2004-12-03 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6640290B1 (en) | Easily coalesced, sub-allocating, hierarchical, multi-bit bitmap-based memory manager | |
| JP4250190B2 (en) | Efficient storage of objects in the file system | |
| US5454103A (en) | Method and apparatus for file storage allocation for secondary storage using large and small file blocks | |
| EP0650124B1 (en) | Virtual memory computer system address translation mechanism that supports multiple page sizes | |
| US9122592B2 (en) | Flash memory device with multi-level cells and method of writing data therein | |
| US20080189490A1 (en) | Memory mapping | |
| US6832303B2 (en) | Method and system for managing an allocation of a portion of a memory | |
| US5539697A (en) | Method and structure for using defective unrepairable semiconductor memory | |
| US5860144A (en) | Addressing method and system for providing access of a very large size physical memory buffer to a number of processes | |
| JPS5990281A (en) | Memory control system | |
| EP0394436A1 (en) | Automatically variable memory interleaving system. | |
| US20040064463A1 (en) | Memory-efficient metadata organization in a storage array | |
| CA1262493A (en) | Multi processor system | |
| US5940868A (en) | Large memory allocation method and apparatus | |
| US5132927A (en) | System for cache space allocation using selective addressing | |
| JPH07210452A (en) | Method and apparatus for management of speech memory | |
| US20010042184A1 (en) | Converting non-contiguous memory into contiguous memory for a graphics processor | |
| CN1135473C (en) | Resource allocator and methods for allocating resources | |
| EP0403124A2 (en) | Overlay swapping | |
| CN1171577A (en) | Programmable read/write access signal and method therefor | |
| US6240482B1 (en) | Host adapter having a plurality of register sets and corresponding operating nodes | |
| EP1505490A1 (en) | Method and computer system for accessing thread private data | |
| HK1040791B (en) | Resource allocator and method of allocating resource | |
| RU2001116089A (en) | Resource allocator | |
| MXPA01004788A (en) | Resource allocator |