Realtek RTL8139

Realtek RTL8139 — семейство популярных интегрированных контроллеров сетевого интерфейса Fast Ethernet, разрабатывавшееся компанией Realtek в 1997-2005 годах. Контроллеры реализуют в одной микросхеме уровни MAC, PHY и трансивера, имеют интерфейс PCI и поддерживают работу на скоростях 10 или 100 Мбит/с по неэкранированной витой паре.

В состав семейства входило шесть моделей контроллеров: RTL8139, RTL8139A, RTL8139B, RTL8139C, RTL8139C+, RTL8139D. Они применялись для создания сетевых карт с интерфейсом PCI для ПК, сетевых модулей с интерфейсом mini-PCI и интегрированных сетевых карт ноутбуков и материнских плат. 

Благодаря доступности и невысокой цене как самих контроллеров семейства RTL8139, так и карт на его основе (6-13 долларов на 2002 год), а также простого программно-аппаратного интерфейса карты на базе RTL8139 были широко распространены, и в множестве операционных систем была поддержана работа с этим контроллером. Ряд систем виртуализации эмулируют именно этот контроллер.

По оценкам самой компании, в начале 2000-х годов Realtek занимал около 65% рынка контроллеров Ethernet.

Модели контроллера: 8139/8139A/8139B/8139C/8139D

Технические характеристики 8139D 
 Корпус пластмассовый, типа PQFP (100 выводов, с шагом 0,65 мм) или LQFP (100 выводов, шаг выводов 0,50 мм)
 Скорость сетевого интерфейса 10 или 100 Мбит/с, с поддержкой автосогласования
 Системный интерфейс PCI 32 бита
 Соответствует версии PCI 2.2
 Частота шины PCI 16,75…40 МГц
 Поддержка стандарта ACPI и управления питанием
 Способность функционировать как ведущее устройство (PCI Bus Master)
 Соответствует стандартам PC99 и PC2001
 Наличие функции Wake-on-LAN
 Размер раздельных буферов приёма и передачи 2 Кбайт
 Данные конфигурации сохраняются во внешнем ППЗУ типа 93C46 (объёмом 1 Кбит, с организацией 64x16)
 Наличие выводов для управления светодиодными индикаторами сетевой активности
 Поддержка загрузки по сети (Boot ROM, объём до 128 Кбайт)
 Возможность работы в полудуплексном и полнодуплексном режимах, с поддержкой управления потоком в полнодуплексном режиме (IEEE 802.3x)
 Наличие режима пониженного энергопотребления
 Тактовая частота внешнего генератора — 25 МГц
 Напряжение источника питания 3,3 В (для некоторых моделей)); линий ввода-вывода — 5 В; потребляемый ток до 330 мА
 Рабочий диапазон температур 0..70°С
 Изготовлена по технологии КМОП 0,25 мкм

Драйверы 
Из-за неполноты документации и наличия лишь проприетарных (бинарных) драйверов, начальная реализация поддержки RTL8139 для операционных систем с открытым исходным кодом требовала значительных усилий. В частности, один из вариантов драйвера для Linux разрабатывался около 4 лет при участии 18 разработчиков. Первый драйвер разрабатывался в 1997—1999 годах Donald Becker. Многие драйверы поддерживали работу с упрощенной более ранней и менее производительной моделью контроллера — RTL8129.

Для передачи данных в сеть используется 4 дескриптора TSAD, размещенных по фиксированным смещениям, 4 статусных регистра TSD и 2 КБ FIFO буфер данных. Принимаемые из сети пакеты сначала помещаются в приемный FIFO-буфер, затем пересылаются в кольцевой буфер, непрерывный в физической памяти компьютера. Регистры CAPR и CBP используются для отслеживания позиций в этом буфере, статус принятого пакета и его длина (packet header) записывается перед данными пакета после его получения.

Награды 
 1997 -  Innovative Product Award, от Hsinchu Science Park Administration.
 1997 - “Best Component” and “Best of Show” от BYTE Magazine на Computex Taipei ’97.
2001 - RTL8139D - "Component Design Award 2001" от EDN Asia

См. также 
 NE2000 — популярные Ethernet-контроллеры, клонами которых являлось предыдущие чипы Realtek: RTL8019 и RTL8029 (10 Мбит Ethernet)
 RTL8169 — Гигабитный контроллер.

Примечания

Ссылки 
 RTL8139D Общее описание
 RTL8139(A/B) Programming guide: (V0.1)
 Структурная схема контроллера и драйвера, стр 57, 60
 Структурная схема контроллера 
 RTL8139 на wiki-портале osdev.org

Сетевое оборудование