Monthly Archives: September 2009
Role of various technologies – Industrial wireless
The impact of industrial wireless, embedded intelligence and machine to machine(M2M) communications, web services and applications integration for real time information and robots on industrial automation has been revolutionary.
Industrial wireless. Wireless devices are making an entry into the industrial environment owing to their numerous benefits including flexibility, cabling, cost reduction and extending measurements to critical information amongst others.
In process or manufacturing facilities the data acquisition system was traditionally limited to a local area or a location in the plant due to the practical difficulty of having communication media running across hostile areas. Now with the wireless sensors and I/Os this is no longer a constraint in having sensor level data available at any location inside the wireless range.
Wireless technology provides a cost effective way to monitor plant equipment and production processes, and enables real time decision making to optimise production or head off maintenance issues before these interrupt production. Wireless technology and devices can be used to enable the millions of field devices installed in a process manufacturing facility over the past few years to share process and maintenance information. This information will benefit operations, maintenance and business systems across the enterprise.
Other Applications of CAM
We see many in previous post, now we can see other applications of CAM.
1. MPLS switching at core and edge routers. MPLS switching involves label look up in place of an IP address look up. MPLS label consists of label value, QoS, stack flag and TTL (time to live). When a look up for such a data happens, the network processor can use the relevant information and decide the fate of the packet, i.e if the TTL has lapsed, it would drop the packet and so on.
2. Signature Recognition. With the performances and speeds (up to 10 Gbps) that current technologies are achieving in communication, the performance of the CAM is extremely important. One of the foremost applications that the internet needs is data protection. With new ways coming in vogue to hack an end point, the need for protection from such attacks, be it through a virus or a spam, is necessary. If such a process can be achieved in hardware, it improves the throughput drastically. CAMs can help in such a cause by maintaining a signature database and an associate processor (if it can be built to work at line speeds) can scan the packets for such signature and drop packets if necessary; such a functionality would add immense value to the content moved across the internet.
Applications of CAMs
1. Quality of service (QOS) through a CAM. CAMs generally have an associated SRAM. This SRAM contains routing information and QoS related data. This data helps the network processor to decide the fate of the received packet. Some of the QoS service includes,
a, Packet monitoring
b, Billing
c, Firewall
d, Content protection
2. Implementation of ARP, when a new hosts gets associated with a network the foremost thing that the network processor does it to update the network database with the MAC and IP addresses of the new hosts. This information update can happen using one of the very popular protocols of TCP/IP called the address resolution protocol and the new addresses get updated on the CAM table.
3. IP forwarding address translation (through ACL’s) When a packet arrives at the ingress port of the network processor, it has to decide on which port the data packet should be forwarded ACL’s also contain information regarding the rules that apply on a particular IP address such as permission for communication between two specific IP address and encryption of data during communication between two hosts or a host server and server. This information is stored in the associated SRAM.
Typical CAM usage
Typically, a network board consists of a network processor, associated memories and CAM’s (multiple cams used in cascade configuration when the table density is more) and the physical interface.
As shown below, the network processor has multiple interfaces:
1. Ingress/egress ports. Ports through which data exchange happens.
2. Host interfaces. This interface is used to access the network processor for configuration setting and the other updates to be carried out.
3. Associated SRAM interfaces. The associated SRAM holds the packet forwarding information such as the port numbers and QoS which is accessed by the network processor to process the packet received. The index or address for accessing the associated SRAM is typically driven by the search result received from the CAM.
4. CAM interface. This is used to access the cam, update the database, perform searches and access the results. The result of the searches performed is typically used by the network processor to link it to the associated SRAM address in order to access the forwarding related information.
Working of a CAM
Let us see how CAM works in hardware. As mentioned earlier CAM can be binary or ternary.
Binary CAM cell
CAM logic will simply have the storage circuitry and comparator logic to provide the match information for the searches performed. In this case a XOR gate is used to compare between the stored data and the searched data.
Ternary CAM cell
A Ternary cam as the name indicates has three states 0,1 and X. A “don’t care” condition exists in a ternary CAM to mask off certain bits for a partial match. The possibility of masking off of certain bits of the data opens up a wide range of applications where partial match is necessary; for instances at the edge of a router, where the router only worries about the destination network address and not the host ID.( An IP address consists of two fields: network ID and host ID).
Software and Hardware CAM
Hardware search engines are faster than algorithmic approaches for search intensive applications. Also, the turnaround time of a hardware CAM would be highly deterministic while that of software would depend on how efficiently the search-tree balancing algorithm is implemented. However, software would results in low costs. Hybrid CAMS integrate the robustness of a hardware CAM while providing the flexibility of high degree of software programming.
Types of CAMs
Fundamentally, CAM’s are of two types binary and ternary. As the name indicates a binary CAM has two bit states (’1′ and a ’0′), while a ternary CAM has ’1′, ’0′ and a third state called “don’t care”, so a search-hit on a ternary CAM would be an exact match or a partial match.
Currently, ternary CAMs are defacto in the industry. These bring the possibility of multiple match in a lookup table. All the access list tables for packet forwarding use a popular address resolution algorithm called the longest prefix match where the addresses are placed in the CAM based on certain priorities and the CAM by itself has priority encoder that helps in resolving the winning address.
Building a Content Address Memory (CAM)
When a forwarding device receives a packed on its ingress port, based on the layer at which the device is working, the device looks for the corresponding address in the CAM and identifies the next hop the packet needs to take to eventually reach its destination.
The two major functions of a CAM include storage of information and look up logic to find the data being searched for. Looking at these tasks a software geek may say that he would store the data in a regular memory and then have software sitting around it to do the look-up instead of using a special hardware. This is where we try to define the two ways of building a CAM:
1. Build a software wrapper around the memory (SRAM/DRAM) to perform the look-up functions for the searched data.
2. Build a hardware that stores data as well as performs the look-up.
Both the approaches have their pros and cons. In the second approach the entire functionality is carried out in the hardware. This, as observed practically, dramatically improves the throughput, which is of utmost importance when we talk about the line speeds which are approaching 10Gbps.













