I primarily come from an Embedded Software background and hence I have very limited knowledge about hardware in general. I always use to think Ethernet as that little physical connector on your computer into which you attach your Ethernet cable. And from a Software perspective all you need to do is to install the driver (in Windows) or configure the Linux kernel to include the driver for your Ethernet.
Questions:
But as I have started going down one level (towards the hardware) and looking at various datasheet and schematics, I have started to come across terms like PHY, MII, SGMII, RGMII, etc. And now I am little confused as to what constitutes an Ethernet? For example, when I say Intel 82574L 1.0 Gbps Ethernet port, where do all these terms fit in?
Let me try to explain:
(1)The MII, SGMII, RGMII are three kinds of interface between the MAC chip and the PHY chip. The Intel 82574L is one MAC chip. Looking following figure:
_______ __________ ___________
CPU | PCI-E | | MII/SGMII/RGMII | |
or |<=======>| MAC |<================>| PHY |<==========>physical interface
board| or else | | | |
________ __________ ___________
For details about MII(100Mbps), SGMII(1Gbps, serial), RGMII(1Gbps, reduced) definition, you can google them.
(2)Basically speaking, NIC(Network Interface Card) consist of one MAC chip and related PHY chip, and other peripheral modules. And also one ethernet device driver should work with the NIC hardware. The MAC chip has one interface with the control CPU or PC mainboard, such as PCI-E bus or else.