Tuesday, June 10, 2008

NIC and beyond

NIC stands for Network Interface Card. It allows users to get connected to each other through cable or wireless. It basically allows two computers communicate with each over networking or Ethernet.

NIC supports both OSI layer1 (physical) and layer2 (data link) by providing physical address to networking medium and low-level addressing mechanism through the use of MAC address.
MAC address, which is essentially Ethernet, is a unique 48-bit address that's carried with each card capable of networking. It's stored in the card's ROM. The uniqueness of the MAC address is governed by IEEE.

You don't have to run Ethernet on your NIC attached to your PC. You may very well run Token Ring or FDDI which also are OSI Layer 2 standards of IEEE.
Most computers these days come with networking integrated by either adding Ethernet chipset on the their motherboard or connecting to low-cost Ethernet chip through PCI or PCI Express bus. However, a NIC can be plugged in, when more network interface is needed.

A NIC normally sends data at the rate of 10, 100, and 1000 Mbits per second over twisted-pair copper wire or BNC coaxial cable. Recently new vendors, like NetXen, as depicted on the right, use pluggable XFP to provide 10Gbit per second data transfer rate.

How does NIC transfers data?

NIC transfer data by one or more of the following mechanism:
1. Polling: CPU polls on NIC status to see if there data to be transferred.
2. Interrupt: NIC interrupts CPU to indicate data is ready for transfer.
3. Programmed IO: CPU alerts NIC by applying it's address on the system address bus.
4. DMA: Intelligent NIC, which has it's own CPU, uses DMA to directly access the memory.

Harware Block Diagram

The following diagram depicts a typical layer2 Ethernet 10Gbit card. It uses XFP to interface with optical line and SerDes to interface with MAC chip. The MAC chip normally interface to the host through FPGA.





XFP

XFP stands for 10 Gigabit Small Form Factor Pluugable and is a hot-swappable optical transceiver. It operates at 10 Gbit per second and typically used for 10 Gbit Ethernet. It could also be used for other high speed broadband optical applications, such as SONET/SDH.

SerDes

SerDes function is to convert serial interface data to parallel interface in high speed bandwidth, such as 10Gbits. SerDes is driven from SERrialize/DESerialize.

FPGA

FPGA is a programmable ASIC that normally provides interface between a off the shelf chip and the host. It can also provide additional functionality that are missing from a particular ASIC or when a task require faster performance.


Host Controller

The Host Controller is a bus that allows data to be transferred between NIC and Host. Depending on the transfer speed requirement and the host type, a different bus is used. For example, PCI Express bus is used to transfer data between NIC and PC, where as SPI4.2 bus is used to transfer data at 10Gbit rate to a router.

No comments:

 
Directory Bin