Abstract:
A method and an electronic device are provided for logging process variables of a bus-controlled automation system in which process variables which are relevant to evaluation are buffered in at least one digital field device and are subsequently read, for the purpose of evaluation, by a central computer unit which is connected to the field device via a data bus. Process variable values which are relevant to evaluation are buffered in the field device in the form of a message, a plurality of equidistantly successive process variable values are recorded as messages, where the first process variable value is assigned a time stamp recorded for each message, and further process variable values are stored in further identical messages.
Abstract:
A port queue includes a first memory portion having a first memory access time and a second memory portion having a second memory access time. The first memory portion includes a cache row. The cache row includes a plurality of queue entries. A packet pointer is enqueued in the port queue by writing the packet pointer in a queue entry in the cache row in the first memory. The cache row is transferred to a packet vector in the second memory. A packet pointer is dequeued from the port queue by reading a queue entry from the packet vector stored in the second memory.
Abstract:
The packets generated by each of multiple packet data applications are provided to a single Point-to-Point Protocol (PPP) stack and a single High-level Data Link Control (HDLC) framing layer to convert data packets into byte streams suitable for transmission through Radio Link Protocol (RLP) connections. Each of the resultant multiple byte streams is then provided to one of multiple RLP connections having different retransmission and delay properties. The RLP connection selected for sending data from each application is based on the grade of service most appropriate for the application. At the receiver, the data from the multiple RLP connections is provided to a single PPP stack.
Abstract:
A method according to one embodiment may include receiving one or more packets from at least one external device and storing one or more packets in at least one queue in memory, the memory includes a plurality of queues and a plurality of queue descriptors having pointer information to point to a queue. The method may also include grouping a plurality of queues to form a group of queues; generating a group tag that associates the group of queues; storing said group tag in a register in a content addressable memory (CAM); and mapping the queue descriptors for each queue in the group of queues into a queue array, the group tag may point to more than one of the queue descriptors in the queue array. Of course, many alternatives, variations, and modifications are possible without departing from this embodiment.
Abstract:
A method comprises providing a free buffer pool in a memory including a non-negative number of free buffers that are not allocated to a queue for buffering data. A request is received to add one of the free buffers to the queue. One of the free buffers is allocated to the queue in response to the request, if the queue has fewer than a first predetermined number of buffers associated with a session type of the queue. One of the free buffers is allocated to the queue, if a number of buffers in the queue is at least as large as the first predetermined number and less than a second predetermined number associated with the session type, and the number of free buffers is greater than zero.
Abstract:
A method of switching packets in a network switch includes the step of receiving a packet on a source port of a network switch. Thereafter, the method includes the step of determining whether the network switch has sufficient memory capacity to process the data packet; and if memory capacity is sufficient, then the method reads a selected portion of the packet to determine if the packet is to be sent to a mirrored port. If mirroring is determined, then the method sends the data packet to the mirrored port. The method also includes the step of determining whether the packet is to be sent to a remote CPU for further handling, and sending the data packet to the remote CPU if appropriate. The method additionally includes the step of determining whether the packet is a unicast packet, and if so, placing the packet on an internal communication channel within the network switch for appropriate storing and forwarding. If the packet is not a unicast packet, then the method determines if the packet is a multicast packet. If the packet is determined to be a multicast packet, then performing simultaneous lookups and switching using layer 2 lookup tables and addresses, and layer 3 lookup tables and addresses, thereby providing hybrid multicast handling of the packet.
Abstract:
According to an example embodiment, a technique may be provided for managing a label data base of which each entry comprises a data field for insertion into a respective packet in a multicast transmission and a validity field. The technique may include, for example, (a) establishing a fixed size for a cluster of labels, (b) associating with each cluster a pointer to another cluster, (c) establishing a sentinel cluster of which all entries are indicated to be invalid and of which the cluster pointer points to this sentinel cluster, (d) establishing a root table which defines the number of replications of the packet in a multicast group and identifies a first label cluster associated with the multicast group and (e) establishing a chain of clusters of which each cluster which is full of valid entries points to the next cluster in the chain and the last cluster which contains valid entries points to the sentinel cluster.
Abstract:
A memory bank has a plurality of memories. In an embodiment, a forward unit applies logical memory addresses to the memory bank in a forward twofold access order, a backward unit applies logical memory addresses to the memory bank in a backward twofold access order, and a half butterfly network (at least half, and barrel shifters in 8-tuple embodiments) is disposed between the memory bank and the forward unit and the backward unit. A set of control signals is generated which are applied to the half or more butterfly network (and to the barrel shifters where present) so as to access the memory bank with an n-tuple parallelism in a linear order in a first instance, and a quadratic polynomial order in a second instance, where n=2, 4, 8, 16, 32, . . . . This access is for any n-tuple of the logical addresses, and is without memory access conflict. In this manner memory access may be controlled data decoding.
Abstract:
Memory is shared among multiple information channels, which may be of particular use for storing streams of packets. Memory allocation information is maintained which can be used to identify the current number of memory segments (e.g., some definable amount of memory) allocated for each of the multiple channels as well as the available number of shared memory segments. Items, such as, but not limited to data, packets, etc., are received and stored in the memory according to the memory allocation information. After a first processing stage for an item, the memory allocation information is updated to reflect an expected number of available memory segments to become available for the respective channel after a subsequent second processing stage. After the second processing stage is completed for an item, its number of memory segments are de-allocated based on the expected available data. In one embodiment, these memory segments are de-allocated one at a time.
Abstract:
A method and system for shaping traffic in a multi-level queuing hierarchy are disclosed. The hierarchy includes a high priority channel and a low priority channel, wherein traffic on the low priority channel is fragmented and interleaved with traffic from the high priority channel and traffic combined from the high priority and low priority channels has a maximum shape rate. The method includes linking a high priority token bucket to a low priority token bucket, transmitting data from the high priority channel, and decrementing the low priority token bucket by an amount corresponding to the data transmitted. Data is transmitted from the low priority channel only if the low priority bucket has available tokens.