Reverse-engineering Ethernet backoff on the Intel 82586 network chip's die
righto.com
righto.com
Here's a question: how has this implementation changed in modern nano-scale ethernet implementations? Modern ethernet cards are asked to do much more offloading and processing, potentially including application protocols like TLS and DMA not just from memory but directly from NVMe devices as well. Given that we can now spam out transistors by the billions, are things like 10-bit counters still implemented via clever dynamic logic in hardware, or is there a more brute-force approach in use today?
On the other hand, you can get a chip like the W5300 which includes the whole TCP/IP stack along with ARP and ICMP, presumably running on an internal microcontroller.
https://ww1.microchip.com/downloads/aemDocuments/documents/O...
https://www.wiznet.io/wp-content/uploads/wiznethome/Chip/W53...
The fact that I just got this card and had to search around the net for drivers and documentation, and now your die photos are available - I'm just amazed. What a cool chip and card.
Wouldn't a carrier indicate that the network is busy? Actually, Ethernet is a baseband system and so doesn't actually have a carrier, but for Alohanet you would only have the carrier when a transmitter was on even if it wasn't actually sending 1s or 0s at that instant.
> introduced in 1973, Ethernet is the predominant way of wiring computers together.
That sentence does not really convey how hard it was for Ethernet to win the network L1/L2 protocol wars. It was fairly popular right from the start because it worked well enough (better than it should) and was very simple to understand, configure, and operate. It also kept evolving with new media.
But there were other systems it had to compete with, in some use cases (ISP's) well into the late 1990's/early 2000's.
Engineering workstations (Sun/SGI/IBM/HP) were early adopters but often had to integrate with mainframe/minicomputers running things like:
- Token Ring: IBM was the 800lb gorilla at the time
- FDDI: supported 100mbps over MMF!
- DEC LAT
In the PC sector - Novell/IPX: was very popular in the 80's and persisted well into the 1990's. Most DOS games like Doom *only* supported Novell/IPX
- Macintosh: AppleTalk
- There were many other proprietary PC/DOS protocols but they were not memorable
In the ISP sector - Ethernet was very popular but consistently lagged in supporting the fastest link speeds that ISP's needed. The industry rapidly shifted to 1G (1999) and 10G (2003) Ethernet once they became widely available.
- FDDI: 100mbps over MMF. The MAE-EAST peering exchange in the mid 1990's used DEC Gigaswitches with unique switched FDDI 100mbps Full-Duplex mode where each port was it's own separate FDDI domain.
- ATM: Telco types last gasp at optimizing for circuit switched networks (phone calls) at the expense of packet switched networks like TCP/IP. ATM over Sonet/SDH however supported much faster link speeds initially.
- Packet over Sonet/SDH: Allows the use full-size TCP/IP packets over high speed fiber (Sonet/SDH) links without ATM segmentation. This is what many OC3-OC48 ISP circuits were running before 1GE/10GE took over.
There were probably many dozens of other competitors that even I'm too young to remember. Some of these were later modified to run over Ethernet as you can see here:Alfa designed Sage Mainlan originally a z8530 + RS485(?) PC card followed by a 10Mbps Ethernet with our own chip design (Enzo) fabbed as an ASIC by Toshiba. We wrote IPX drivers for both versions.
Interestingly we could hang systems with the 3COM cards in our test systems if we ran at full speed and at somepoint we had the full 500 metres of thick ethernet in the office.
The IPX version that came with Netware 3 was rather nice, I seem to recall it had a buffer of segments and these got filled by the different layers of the network stack as needed along with some fancy protocol filtering so your code only saw just the data packets it was interested in.
NetWare runs on Ethernet/IEEE 802.3, Token Ring/IEEE 802.5, Fiber Distributed Data Interface (FDDI), Copper Distributed Data Interface (CDDI), and ARCnet. NetWare also works over synchronous wide-area network (WAN) links using the Point-to-Point Protocol (PPP)
http://bitsavers.informatik.uni-stuttgart.de/components/inte...
https://github.com/torvalds/linux/blob/master/drivers/net/et...
Bus Mastering - fancy and fast, but troublesome with lots of ram and/or in protected mode http://www.os2museum.com/wp/vds-borne-out-of-necessity/
ISA DMA - slow, example AMD Lance Am7990 like Novell NE2100. Maximum original 8237 DMA controller throughput was ~1MB/s while stealing 100% of ISA bus thus stalling CPU completely.
Memory sharing - also problematic because you lose precious DOS memory.
Port IO - like good old NE2000. Small software interface footprint, fast with 286/V20 'REP INSW/OUTSW'.
[1] https://americanhistory.si.edu/collections/search/object/nma...
My technical history book will cover the Ethernet's first 15 years, from Alohanet inspiration, invention at PARC, initial chip and system products, CSMA/CD, IEEE 802.3 standardization, and appearance of twisted pair. I’ve spoken with over 120 participants so far. (Btw, the Alto-I 3-Mb Ethernet adapter was primarily designed by David Boggs, although, as they jointly debugged it, Bob Metcalfe knew even gate. Bob authored the Alto-I Ethernet adapter microcode and the initial PUP protocol layer.)
Including, but not limited to, miles of Rubylith.[0]
I’m curious can heat be used to detect interesting parts of a die? Ie decap then re-run target functionality and see what’s heating up?