CN100502410C - Dynamic storage distribution for group interface - Google Patents

Dynamic storage distribution for group interface Download PDF

Info

Publication number
CN100502410C
CN100502410C CNB2003101198030A CN200310119803A CN100502410C CN 100502410 C CN100502410 C CN 100502410C CN B2003101198030 A CNB2003101198030 A CN B2003101198030A CN 200310119803 A CN200310119803 A CN 200310119803A CN 100502410 C CN100502410 C CN 100502410C
Authority
CN
China
Prior art keywords
subregion
data
port
unallocated
described port
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2003101198030A
Other languages
Chinese (zh)
Other versions
CN1612569A (en
Inventor
J·凌
J·-C·卡尔德伦
J·-M·凯亚
V·乔施
A·T·黄
S·J·克罗塞特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Priority to CNB2003101198030A priority Critical patent/CN100502410C/en
Publication of CN1612569A publication Critical patent/CN1612569A/en
Application granted granted Critical
Publication of CN100502410C publication Critical patent/CN100502410C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

A storage device is divided into multiple partitions. These partitions are split into first group of partitions and second group of partitions. When a port needs storage, a partition from not allotted partitions in storage area is assigned to the port. Not allotted partitions in storage area includes not allotted partitions in first group of partitions and not allotted partitions in second group of partitions. Not allotted partitions in first group of partitions are assigned to the port till first threshold value is reached. After the first threshold value is reached, then not allotted partitions in second group of partitions are assigned to the port. Second threshold value is in use for restricting total number of partitions assigned to the port.

Description

The dynamic memory allocation that is used for packet interface
Technical field
The present invention relates to communication network field, particularly data buffering.
Background technology
A kind of network can comprise the system or the node of a plurality of interconnection, and can comprise for example (but being not limited to) computer, set-top box, peripheral hardware, server and/or utilize communication line or the terminal of other communication channels couplings.A network can connect or a plurality of systems that are coupled on local (for example campus) or wide area (for example a plurality of campus).
Fast packet switching network (such as ATM(Asynchronous Transfer Mode), Internet protocol (IP) and gigabit Ethernet) is supported a large amount of being connected to different speech channels (session).Typically, packet switching system is used to send the data block that is called grouping.These groupings can have fixed size or they can have variable-size.Each grouping can comprise control information in header.Control information can comprise routing information, be used for being routed to the destination by network for dividing group selection, and control information also comprises the information that is used to indicate grouping beginning and branch group end.Control information also can comprise and is used to indicate whether a grouping is the information of a last grouping (perhaps afterbody grouping).
Many systems (for example, framer, network processor, or the like) implement packet-based interface.For example, interface can be the Tong Yongceshi ﹠amp that is used for ATM that atm forum proposes; The system packet interface (SPI-3 and SPI-4) that operating physical interface (UTOPIA) or optical interconnection forum (OIF) propose.
Figure 1A is a calcspar, and an example of interface is shown.Interface 110 for example can be a UTOPIA interface.Interface 110 for example also can be a SPI interface.Can be between physical layer 105 and ATM layer 115 by interface 110 exchange ATM data.Interface 110 can comprise and be used for the part of physical layer 105 interfaces and be used for part with ATM layer 115 interface.These parts can comprise FIFO (first in first out) controller, and these controllers are used to handle from reading of the fifo buffer of memory and writing to the fifo buffer of memory.In physical layer 105, a plurality of physical equipments can be comprised, and in ATM layer 115, a plurality of atm devices can be comprised.A fifo controller can be arranged, be used for each physics and atm device.Interface 110 can also comprise other part.Fifo controller is typically implemented on two clock zones, and one of them clock zone is the clock zone that is used for interface, and a clock zone is the clock zone that is used for relevant device.
Figure 1B is a calcspar, and it shows an example of the prior art division subregion of physical storage.Typically, memory 100 is divided into the subregion of impartial fixed size, and each subregion is as a fifo buffer, and each subregion is assigned with a logic port.Each logic port can be associated with an equipment (for example, atm device).For example, the size of memory 100 can be the 16K byte, and memory 100 can be divided into 64 subregions.Each subregion of 64 subregions can be distributed to a logic port (for example, subregion 1 is assigned to logic port 1, etc.) statically, makes each logic port like this and a subregion is relevant at the most.Here there is not Free Partition.In this example, the length of each subregion is 256 bytes.The technology of this division grouping is called as fully cuts apart (CP).When using CP, if logic port relevant, that be assigned with is invalid, then the memory space in a subregion may be wasted.The memory space of being wasted can not be used by another effective logic port.Thereby, though can experiencing grouping, an effective logic port overflows, may also there be one or more to underuse the invalid logic port of its fifo buffer.
In another prior art, any available memory space is all arranged if do not consider the logic port of being correlated with using how many memory spaces, then arrive grouping and just be received in the memory.For example, have a plurality of fifo buffers, each buffer has different sizes.When not having free memory, the grouping of arrival is dropped.When a logic port is using memory space and is being stored in data in this memory space when not being read out, this logic port can be monopolized its memory space that is using, and stays memory space for hardly other logic port.This technology is called as shares (CS) fully.When using CS, the logic port that quilt uses in a large number exhausts a logic port that seldom is used.
New (emerging) the standard A NSI T1.105-2001 (Synchronous Optical Network (SONET)) that sets up makes memory allocation become fifo buffer to become even worse, and this standard to describe virtual bandwidth is distributed and allowed each logic port to transmit with the speed of a dynamic change.
Description of drawings
Particularly point out and clear claimed purport of the present invention in the last part of this specification.Yet, by checking accompanying drawing and with reference to subsequently detailed description, purport that the present invention may be better understood and structure thereof and method of operation with and purpose, feature and advantage.In the accompanying drawings:
Figure 1A is a calcspar that an example of interface is shown;
Figure 1B is the calcspar of an example cutting apart of a prior art that physical storage is shown;
Fig. 2 A is a calcspar that illustrates according to an example of the memory of one embodiment of the invention;
Fig. 2 B is a calcspar that illustrates according to another example of the memory of one embodiment of the invention;
Fig. 2 C is a calcspar that illustrates according to an example of a subregion of one embodiment of the invention;
Fig. 2 D is a calcspar that illustrates according to an example of the fifo buffer that comprises an above subregion of one embodiment of the invention;
Fig. 3 A is a calcspar that is used for distributing to a fifo buffer example of the free storage (pool) of one or more subregion and free pointer storehouse that illustrates according to one embodiment of the invention;
Fig. 3 B is a calcspar that subregion is turned back to an example of free storage from fifo buffer that illustrates according to one embodiment of the invention;
Fig. 4 is one and illustrates and data are write fifo buffer and from the calcspar of an example of fifo buffer sense data;
Fig. 5 is a flow chart that subregion of interpolation is shown to an example of the processing procedure of fifo buffer;
Fig. 6 is one the flow chart of an example of removing the processing procedure of a subregion from fifo buffer is shown.
Embodiment
According to one embodiment of the present of invention, the memory in an interface is divided into a plurality of subregions.When the needs memory space, can from the free storage of subregion, distribute one or more subregion to give a logic port.When not needing a subregion, this subregion is turned back to the free storage.
Fig. 2 A is a calcspar, and the example of a memory and subregion thereof is shown.Memory 200 can be split into a plurality of subregions.The quantity of subregion can equal the quantity of the logic port supported at least.These subregions can have identical size.For example, the size of memory 200 can be 16Kb, even and 64 logic ports are only arranged, memory 200 also can be split into 256 equal-sized subregions.
For an embodiment, these subregions can be divided into two virtual or logical groups, that is, and and a dedicated set and a shared group.For example,, 62 subregions are arranged in dedicated set 201, and 196 subregions are arranged in shared group 202 with reference to the example shown in the figure 2A.For an embodiment, the grouping of subregion as described herein is relevant with the number of partitions in every group, and is not subjected to the restriction of the physical packets that these subregions divide by their storage address, and is identical even the physical address of these subregions keeps.For example, although equally all belong to dedicated set 201 at subregion 1 shown in Fig. 2 A and subregion 2, but subregion 1 can be by physical positioning on an address of memory 200 beginning, and subregion 2 can be by physical positioning on an address of memory 200 ends.Like this, in current example subregion 1-256 not necessarily all on continuous address.
Each logic port is all relevant with a fifo buffer.Each fifo buffer can be crossed over a plurality of subregions that (span) distributes to that logic port.A plurality of subregions can be continuous maybe can be discontinuous.The size of fifo buffer can be dynamic.For example, when a plurality of subregions were assigned to this logic port, the size of fifo buffer can increase.Similarly, when this logic port no longer needed institute's assigned sections, the size of fifo buffer can reduce.
For an embodiment, a threshold value is used to determine can be assigned in the dedicated set 201 quantity of the subregion of a logic port.This threshold value can be called as first threshold value.For example, a logic port can obtain maximum two (2) individual subregions from dedicated set 201.For an alternative embodiment, can be for the subregion of each logic port reservation, even this logic port may not be effective from dedicated set 201.When having from data that its relevant fifo buffer is read, logic port is effective.
For an embodiment, when a logic port need be than the more subregion of subregion of the first threshold value defined, can be from share grouping 202 subregion outside the allocation.For example, be assigned with from 2 subregions of dedicated set 201 with from four subregions of shared group 202 at the logic port 1 shown in Fig. 2 A.Although memory 200 is shown as the 16K byte, and the quantity of shown subregion is 256, but person of skill in the art will appreciate that this embodiment is not subjected to the restriction of these sizes, and also can use the quantity of other memory size, partition size and corresponding subregion.
Fig. 2 B is a calcspar, and another example of a memory and subregion thereof is shown.In this example, three logic ports 1,3 and 8 are arranged, each all has been assigned with at least one subregion in the dedicated set 201.These ports can be considered to effective port, and this is because here each port has all distributed subregion, and may have the data that need be read in these subregions.Correspondingly, also have one or more invalid port.There is not subregion to be assigned to invalid port.Selectively, in one embodiment, a subregion can be preserved for each logic port, and invalid port can have subregion at the most, does not wherein comprise any with the data that are read.
With reference to figure 2B, and use above-mentioned dedicated set threshold value example, two subregions distributing to logic port 3 are from dedicated set 201.Yet, being assigned among four subregions of logic port 8, preceding two subregions distribute from dedicated set 201, and ensuing two subregions distribute from shared group 202.For an embodiment, another threshold value (perhaps second threshold value) can be used to limit the sum of the subregion of distributing to a logic port.Might on certain time, all be assigned to logic port in dedicated set 201 or all subregions in shared group 202.
For an embodiment, the sum of distributing to the subregion of a logic port (perhaps being included in the relevant fifo buffer) can be tracked.When logic port did not need a subregion, described subregion was returned, and the sum of distributing to the subregion of that port subtracts one.The resulting quantity of distributing to the subregion of this logic port compares with dedicated set threshold value (perhaps first threshold value) subsequently.If greater than the dedicated set threshold value, then subregion is returned to shared group 202; Otherwise subregion is returned to dedicated set 201.For an embodiment, to compare with other subregions, subregion is returned by a logic port opposite order when being assigned with it.For example, the subregion 61 in Fig. 2 B is first subregions of distributing to logic port 8, and also will be to remove first subregion that distributes from this port.
Fig. 2 C is a calcspar that a subregion example is shown.For an embodiment, a subregion can comprise a data division and a control section that is used to store control information that is used for storaging user data.For example, subregion 290 can comprise a data division 215 that comprises user data.Data division 215 can be divided into a plurality of data cells (that is, data word), is used for the storaging user data part.For example, the data division 215 in subregion 290 can be divided into 16 data unit, each 32 bit long (word or four bytes).When one of use had the interface of 8 bits or 16 bit data bus width, 32 bit width data cells can be easily.In addition, the data of 32 bit widths can allow each byte to be upgraded individually.
Subregion 290 also can comprise a control section 220.Control section 220 also can be divided into a plurality of control units, and each data cell all has a control unit like this.Each control unit can comprise the control information relevant with the data in the associated data unit.For example, the last control unit 230 (bit 32-35) of control section 220 comprises the control information about the data in the final data unit 235 (bit 0-31).Control information about data can comprise for example grouping beginning, divide group end, error condition etc.Table 9 subsequently (being called as table 1) illustrates the example of probable value of four bits (bit 32-35) of a control unit.
Figure C200310119803D00091
In this example, the bit 35 of control unit is used to indicate the data that are included in the associated data unit to comprise grouping end designator (value=1), does not still comprise branch group end designator (value=0).Bit 34 is used to indicate the data that are included in the associated data unit to comprise grouping beginning designator (value=1), still comprises a grouping intermediate indicators (value=0).When bit 35 indications divided the group end designator to be comprised in the relevant data cell, bit 32 and 33 was used to indicate the data volume (for example, the number of byte) that is included in the associated data unit.This is because final data unit cannot be used fully.
For an embodiment, each subregion can comprise a pointer, and it points to the next subregion (being called as next subregion pointer) in the fifo buffer.For example, first data cell 225 of subregion 290 can comprise a next subregion pointer.When fifo buffer comprised more than a subregion, next subregion pointer can be used to connect a subregion to another subregion.When a subregion was last or a unique subregion in the fifo buffer, the next subregion pointer of described subregion can have a null value.For an embodiment, next subregion pointer is stored in the independent memory, and the more memory space that stays in the subregion 290 is stored data.
Fig. 2 D is a calcspar, illustrates according to embodiments of the invention to comprise example more than a fifo buffer of a subregion.Fifo buffer 260 in this example comprises three subregions, subregion 290, subregion 290+n and subregion 290+m.These subregions can be continuous also can be discontinuous, and can be with any physical sequential ordering.Subregion 290 uses next subregion pointer 225 to be connected to subregion 290+n.Subregion 290+n uses next subregion pointer 245 to be connected to subregion 290+m.The next subregion pointer of subregion 290+m can be null value, and indication has not had other subregion in fifo buffer 260.
Fifo buffer 260 can be relevant with a tail pointer 255 with a head pointer 250.Head pointer 250 can point to the beginning of data, is first subregion 290 of fifo buffer 260 in this example.Tail pointer 255 can be pointed to the end of data, is the last subregion 290+m of fifo buffer 260 in this example.Read from fifo buffer 260 when data, head pointer 250 can correspondingly be updated.When data when subregion 290 is read fully, head pointer 250 can be updated subsequently, the data of pointing among the subregion 290+n begin the place.This can use next subregion pointer 225 to finish, thus location subregion 290+n.Subregion 290 can be returned subsequently.
With reference to figure 2B, in dedicated set 201 and/or shared group 202, have subregion, they are not assigned on any logic port.These subregions are considered to free time or available partition, and can logically be returned synthetic free storage together.For example, when a logic port turns back to shared group 202 or dedicated set 20 with a subregion, can logically regard being returned to the free storage as.
Fig. 3 A is a calcspar, and the example that distributes a subregion from the memory block is shown.In this example, memory 275 comprises and distributes subregion (busy) and unallocated subregion (free time).Free Partition comprises subregion 325,330,335 and other do not draw the subregion of top shadow line.Busy subregion (for example, drawing the subregion 315 of top shadow line and the subregion of other strokes top shadow line) has been assigned with and has been included in one or more fifo buffer.The subregion of these strokes top shadow line can be assigned with after they are returned by suitable logic port.
For an embodiment, the information of the subregion in the relevant memory block is saved, and when needing an extra subregion with logic port of box lunch, can be positioned from a subregion of memory block.Erect image is described above, and the quantity of the Free Partition in the free storage can change, and the subregion in the free storage can be physics continuous maybe can be discontinuous.Free storage start pointer and free storage tail pointer can be used to indicate the i/o sites+of storehouse.For an embodiment, the partition address in the free storage can be stored in another memory as storehouse.For example, with reference to figure 3A, address 355 is the storage addresss that are used for the beginning of Free Partition 325.Similarly, address 360 is the storage addresss that are used for the beginning of subregion 330, and address 365 is storage addresss of Free Partition 335 beginning, or the like.These addresses are placed in the storehouse 350, and free storage pointer 390 points to the address at storehouse 350 tops.
With reference to figure 3A, fifo buffer 300 comprises three subregions 305,310 and 315.When the logic port relevant with fifo buffer 300 needed more memory spaces, free storage pointer 390 was used to discern the address 355 that is positioned at storehouse 350 tops.Address 355 is used to locate Free Partition 325 subsequently.For example, address 355 can be the address of subregion 325 beginnings.Free Partition 325 can be assigned to logic port subsequently, and as a result of is added to fifo buffer 300.Address 355 can be deleted from the top of storehouse 350 subsequently.This makes address 360 be positioned at the top of storehouse 350.Subregion 325 is also deleted from available partition, so that it can not be assigned to other logic port.Similarly, need even during more memory space, address 360 is by the top deletion from storehouse 350 when the logic port relevant with fifo buffer 300.Free Partition 330 is positioned and adds fifo buffer 300 to.This makes address 365 be positioned at the top of storehouse 350.Equally subregion 330 is also deleted from available partition.Like this, these addresses based on last in, first out (LIFO) principle by from storehouse 350 deletions.When extra data were written into the subregion of new interpolation, the tail pointer 320 of fifo buffer 300 can correspondingly be upgraded subsequently.The subregion sum that a time in office is assigned to a logic port can be subjected to the restriction of definite threshold value in advance.When a subregion was assigned to a logic port, the control unit relevant with the final data unit of last subregion in the fifo buffer need be updated, and be to indicate for example end of user data, as described in Table 1.
When from the fifo buffer reading of data, data can be read from first subregion of fifo buffer.The beginning of data can use the head pointer of fifo buffer to locate in first subregion.Data can be read from fifo buffer, up to the predetermined quantity that reaches data.Selectively, data can be read out up to running into data end designator.Erect image has been described data end designator described in the table 1 in suitable control unit.When data when fifo buffer is read out, head pointer correspondingly is updated.When fifo buffer only comprised a subregion, head pointer and tail pointer can be pointed to same subregion.
Fig. 3 B is a calcspar, and the example that returns a subregion from fifo buffer is shown.For an embodiment, when a subregion at fifo buffer no longer needs (for example, the data of this subregion are read out), that subregion can become a Free Partition and be taken back in the free storage.For example, this can comprise from logic port this subregion releasing distribution.With reference to figure 3B, when not needing the subregion 305 of fifo buffer 300, its relevant address 345 can be placed to the top of storehouse 350.Free Partition pointer 390 can be updated, to point to address 345 (the perhaps top of storehouse 350).Subregion 305 becomes a Free Partition subsequently.In this example, subregion 305 is illustrated not draw hatched subregion at the top of memory 275, is idle and can be assigned with in order to the state of indicating it.Simultaneously, when address 345 is placed to the top of storehouse 350, it becomes next available address.When logic port needed Free Partition next time, subregion 305 was assigned with.
For an embodiment, method as described herein can realize on two clock zones.With reference to figure 2D, whenever possible, tail pointer 255 residing clock zones can be sent to other clock zone.Can in head pointer 250 residing clock zones, carry out the comparison between head pointer 250 and the tail pointer 255.
For an alternative embodiment, a rate adapted FIFO can realize in interface 110 (shown in Figure 1A), makes method as described herein to work in a clock zone.Rate adapted FIFO is implemented in the internal system time clock territory of equipment.For example, this equipment can be an atm device.This is a FIFO that a passage is only arranged.In a direction, rate adapted FIFO can obtain data from the fifo controller that uses said method to realize, and sends data to the inside of equipment with the order that they arrive.In another direction, data are obtained in the inside that rate adapted FIFO can slave unit, and data are sent to the fifo controller that uses said method to realize with the arrival order.
Fig. 4 is a calcspar, illustrates data to be write a fifo buffer and from the example of fifo buffer sense data.Erect image is described above, and the fifo controller relevant with logic port writes fifo buffer with data, and from the fifo buffer sense data.Fifo buffer 400 in this example is included in four subregions that link each other in the lists of links.For example, subregion 430 (perhaps first subregion in fifo buffer 400) uses next subregion pointer 405 to be connected to next subregion.Similarly, next subregion pointer 415 points to subregion 435 (perhaps at the last subregion of fifo buffer 400) from last subregion.For an embodiment, can be in a write pointer (perhaps tail pointer) 425 position pointed, write data into fifo buffer 400, and can data be read from fifo buffer 400 in a read pointer (perhaps head pointer) 420 position pointed.For example, write pointer 425 can point to the next free space in fifo buffer 400, so that write data.When write pointer 425 moves to when approaching subregion 435 terminal, new subregion from the free storage can be assigned to the logic port relevant with fifo buffer 400.Subsequently, after data being write the last data cell of subregion (as described in Fig. 2 B), write pointer 425 can jump to the starting position of newly assigned subregion.
Read pointer 420 is worked in the mode identical with write pointer 425, points to the data division of also not reading in the subregion 430 but change into.After the final data unit of subregion 430 was read out, read pointer 420 jumped to by next subregion pointer 405 next subregion pointed, in the fifo buffer 400.The logic port relevant with fifo buffer 400 turns back to the free storage with subregion 430 subsequently.
Fig. 5 is a flow chart, and the processing procedure example that adds a subregion to a fifo buffer is shown.This process can be used to distribute a Free Partition to the logic port that needs exceptional space from the free storage, to be used as its fifo buffer.At piece 505, the logic port indication needs extra memory space.Deleted in 510, one addresses of piece from the top of storehouse.Erect image is shown in the piece 515, and based on this address, a Free Partition is positioned in the free storage.At piece 520, the next subregion pointer of the last subregion of fifo buffer is adjusted, and pointing to newly assigned subregion, and newly assigned subregion becomes the last subregion of fifo buffer now.At piece 525, tail pointer (perhaps write pointer) can be updated, to point to the starting position of newly assigned subregion.For example, tail pointer can be updated, and to point to first data cell of newly assigned subregion, wherein data can be written in the fifo buffer continuously.
Fig. 6 is a flow chart, and the process instance of a subregion of deletion from a fifo buffer is shown.This process can be used to from more than the fifo buffer of a subregion deletion subregion.After data in subregion had been read out, perhaps fifo buffer no longer needed deleted subregion.This subregion can be placed in the free storage, so that subregion can be assigned to other logic port.At piece 605, data are read from first subregion of fifo buffer fully.At piece 610, the head pointer of fifo buffer (perhaps read pointer) is set to point to the starting position of next subregion in the fifo buffer.As mentioned above, can use the next subregion pointer relevant to locate the beginning of next subregion with current first subregion of FIFO buffering.The first current subregion of fifo buffer becomes Free Partition, and next subregion becomes the first new subregion of this fifo buffer.At piece 615, the address relevant with new Free Partition is placed to the top (shown in Fig. 3 B) of storehouse.
Can utilize the processor of computer system to realize these operations of the whole bag of tricks, this processor is carried out the sequences of computer program instructions that is stored in the memory, and described memory can be considered to a machinable medium.Computer system can be an interface, such as, at the UTOPIA interface 110 shown in Figure 1A.Memory can be a random-access memory (ram), and read-only memory (ROM) is such as the permanent storage memory of mass storage facility, the perhaps combination in any of these equipment.The execution of command sequence makes processor according to one embodiment of the present of invention executable operations, for example, and in Fig. 5 and operation shown in Figure 6.
In the description in front, the various aspects of desired purport have been described.For illustrative purposes, specific numeral, system and structure have been illustrated, so that can thoroughly understand desired purport.For example, quoted the UTOPIA interface although describe, described technology also can be used by other interface, such as, the system packet interface of optical-fiber network forum (SPI).Obviously those skilled in the art can benefit from disclosed content, need not these details and just can realize desired purport.In other example, for projecting motif, well-known feature is omitted or simplifies.

Claims (25)

1. method comprises:
A memory is divided into a plurality of subregions; And
When a port needs, a subregion is distributed to described port from the memory block of a unallocated subregion, the memory block of described unallocated subregion comprises from the unallocated subregion in the first component district with from the unallocated subregion in the second component district,
Wherein, will distribute to described port from the unallocated subregion in the first component district, until reaching first threshold value, and
After reaching described first threshold value, will distribute to described port from the unallocated subregion in the second component district,
Wherein, second threshold value is used to be limited in and reaches the sum of distributing to the subregion of described port after first threshold value.
2. the method for claim 1 further comprises a plurality of branches that obtained by the described memory of division is divided into the first component district and the second component district.
3. the process of claim 1 wherein that the quantity of subregion equals the quantity of the port supported at least in the described memory.
4. the method for claim 1, wherein, when being assigned to described port more than one subregion, distribute to subregion link each other in a lists of links of described port, so that the last subregion in this lists of links is a nearest assigned sections, and first subregion in this lists of links is the subregion of oldest allocated, and this lists of links is used as a first-in first-out buffer and comes the write and read data.
5. the method for claim 4 wherein, in the end writes first-in first-out buffer with the data that described port received in the subregion, and wherein since first subregion data is read from first-in first-out buffer.
6. the method for claim 5, wherein, when finishing from first subregion read data, this first subregion is removed from described port to be distributed, and is returned to the memory block of unallocated subregion.
7. the method for claim 6, wherein, finish from first subregion behind the read data, and if still have data from first-in first-out buffer, to read, continuation is read data from second subregion, and this second subregion is since the next subregion of first subregion in this lists of links.
8. the method for claim 7 wherein, continues read data from first-in first-out buffer, until there not being data from then on to read in the last subregion of lists of links.
9. the method for claim 6, wherein, after first subregion was turned back to the memory block of unallocated subregion, this first subregion became the next unallocated subregion that will be assigned with in this memory block.
10. the process of claim 1 wherein that when described port received data, it needed a subregion.
11. the process of claim 1 wherein when described port does not receive data, do not have subregion to be assigned to described port.
12. the process of claim 1 wherein,, the subregion of the minimal amount in the first component district is distributed to described port no matter whether described port receives data.
13. the article of a manufacturing comprise:
Be used for a memory is divided into the parts of a plurality of subregions;
Be used for described a plurality of branches are divided into the parts in the first component district and the second component district;
Be used for distributing the unallocated subregion in the first component district to give port until the parts that reach first threshold value; And
Be used for after reaching first threshold value, distributing the parts of the unallocated subregion in the second component district to described port,
Wherein second threshold value is used to be limited in and reaches the sum of distributing to the subregion of described port after first threshold value.
14. the article of the manufacturing of claim 13, wherein, the unallocated subregion in the first component district and the second component district is placed in the memory block of unallocated subregion, and wherein from the memory block of unallocated subregion to described port assignment subregion.
15. the article of the manufacturing of claim 13, wherein, the quantity of the subregion in the described memory equals the quantity of the port supported at least.
16. the article of the manufacturing of claim 14, wherein when being assigned to described port more than one subregion, distribute to subregion link each other in a lists of links of described port, so that the last subregion in this lists of links is a nearest assigned sections, and first subregion in this list of link is the subregion of oldest allocated, and this lists of links is used as a first-in first-out buffer and writes and read data.
17. the article of the manufacturing of claim 16, wherein data are write last subregion and sense data from first subregion, and wherein when finishing from first subregion read data, first subregion is removed from described port to be distributed, and is returned to the memory block of unallocated subregion.
18. the article of the manufacturing of claim 17, wherein, after first subregion was turned back to the memory block of unallocated subregion, first subregion became the next unallocated subregion that will be assigned with in this memory block.
19. a system comprises:
A memory, described memory is divided into a plurality of subregions, and these subregions are divided into the first component district and the second component district; And
Be coupled to a plurality of ports of this memory, each port among described a plurality of ports receives data, and described data will be written in the one or more subregions that are assigned with of each port,
Wherein, from the first component district, distribute unallocated subregion, up to reaching first threshold value, and after reaching first threshold value, further from the second component district, distribute unallocated subregion,
Wherein, except first threshold value, second threshold value is used to be limited in the maximum number of distributing to the subregion of port on any one time.
20. the system of claim 19 further comprises a plurality of controllers, each controller is relevant with each port, and wherein, each controller will be written in one or more subregions of distributing to described port by the data that described port receives.
21. the system of claim 20, wherein, one or more subregions of distributing to described port are used as first-in first-out buffer, and wherein said controller begins sense data from first-in first-out buffer from the subregion of oldest allocated, and in the assigned sections data is being write first-in first-out buffer recently.
22. the system of claim 21, wherein, when described controller was finished from a subregion read data, this subregion is removed from described port to be distributed.
23. the system of claim 22, wherein, the subregion that its data have been read fully by described controller is returned to one of the first component district and second component district further.
24. the system of claim 22 wherein, removes assigned sections and becomes the next subregion that will be assigned with from described port.
25. the system of claim 19, wherein, described memory is divided into than the more subregion of described port.
CNB2003101198030A 2003-10-27 2003-10-27 Dynamic storage distribution for group interface Expired - Fee Related CN100502410C (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2003101198030A CN100502410C (en) 2003-10-27 2003-10-27 Dynamic storage distribution for group interface

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2003101198030A CN100502410C (en) 2003-10-27 2003-10-27 Dynamic storage distribution for group interface

Publications (2)

Publication Number Publication Date
CN1612569A CN1612569A (en) 2005-05-04
CN100502410C true CN100502410C (en) 2009-06-17

Family

ID=34761426

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2003101198030A Expired - Fee Related CN100502410C (en) 2003-10-27 2003-10-27 Dynamic storage distribution for group interface

Country Status (1)

Country Link
CN (1) CN100502410C (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI330964B (en) 2007-01-29 2010-09-21 Via Tech Inc Packet processing method and a network device using the method
CN101364948B (en) * 2008-09-08 2011-01-19 中兴通讯股份有限公司 Method for dynamically allocating cache
CN101729186B (en) * 2009-12-04 2013-04-10 武汉光迅科技股份有限公司 Device and method for controlling transient effect in erbium-doped fiber amplifier (EDFA)
US20210266191A1 (en) * 2020-02-24 2021-08-26 Haier Us Appliance Solutions, Inc. Consumer appliance inheritance methods and systems

Also Published As

Publication number Publication date
CN1612569A (en) 2005-05-04

Similar Documents

Publication Publication Date Title
EP0471344B1 (en) Traffic shaping method and circuit
EP0680173B1 (en) Multicasting apparatus
EP0680179B1 (en) Multicasting apparatus
EP0502873B1 (en) Basic element for the connection network of a fast packet switching node
EP0680235B1 (en) Channel identifier generation
US5535197A (en) Shared buffer switching module
JP2618327B2 (en) Wideband input buffer ATM switch
EP0312628B1 (en) High-speed modular switching apparatus for circuit and packet switched traffic
US6226338B1 (en) Multiple channel data communication buffer with single transmit and receive memories
EP0195589B1 (en) Switching system for transmission of data
USRE34528E (en) Delta network of a cross-point switch
US7991926B1 (en) Scalable memory architecture for high speed crossbars using variable cell or packet length
JP2000349789A (en) Tdm switch system very wide in memory width
US6892284B2 (en) Dynamic memory allocation for assigning partitions to a logical port from two groups of un-assigned partitions based on two threshold values
EP0700187B1 (en) A cell switching apparatus and a cell switching system
JPH0581121A (en) First-in first-out type memory-buffer
CN101146029B (en) A packet resorting method and system
US6601116B1 (en) Network switch having descriptor cache and method thereof
JP2001513296A (en) Data communication system and method using a scalable, non-blocking, high bandwidth central memory controller
US20070140232A1 (en) Self-steering Clos switch
CN100502410C (en) Dynamic storage distribution for group interface
US5463622A (en) Control unit for the common memory of an ATM node
WO2003055156A1 (en) Adressing sequential data packets
JPH0927812A (en) Address generating circuit for atm switch
US7143185B1 (en) Method and apparatus for accessing external memories

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090617

Termination date: 20201027