Часть четвёртая.
"Хабовые" флэши.
Как всё было просто в старые добрые времена
- шина адреса, шина данных, CE/WE/OE…
;) Но прогресс (особенно в отдельно взятой
фирме ;) не стоял на месте и с появлением
чипсетных наборов i8xx получило распространение
это страшное и многим малопонятное название
- "хабовые" флэшки.
LPC-интерфейс.
В конце 97-го года Intel решила, что у мощного
процессора обязательно должен быть баальшой
биос (4-8MBit и больше, хотя большинство фирм
до сих пор используют в основном лишь 2Mbit),
а для этого никак не хватит ног (для линий
адреса) на широкораспространённых "обычных"
PLCC32-флэшках. Сказано -
сделано, так появился стандарт LPC
(LowPinCount - "малоколичественноножное"
соединение, хотя корпус по понятным причинам
оставили прежним - PLCC32).
Кроме возможности использования больших (до
4Gb!) объёмов флэшей одной из самых главных
причин называлась скорая погибель ISA-шной
шины, отстутствие которой снимало потребность
разводить линии адреса/данных и позволяло
ограничиться меньшим количеством линий для
общения, в первую очередь, "мультика"
(SuperIO) и южного моста
(очевидная возможность же интеграции SIO
в сам SB скромно умалчивалась;).
В LPC для этого используется
лишь пять проводов: LAD0-LAD3
+ LFRAME# (поэтому "lowpin…").
Применительно к флэшам (т.к. использовать
LPC-интерфейс могут разные устройства) этот
стандарт вылился в следующее воплощение:
() - в скобках - значение
ножки в режиме LPC или FWH
Как видно, такая флэшка может работать сразу
в двух различных режимах - LPC-mode
и PP-mode (Parallel-Programming).
Режим работы выбирается уровнем на ножке IC
(Interface Configuration Pin) во
время старта компьютера- "0" - LPC-mode,
"1" - PP-mode.
Режим PP наиболее близок
к "обычным" флэшкам и совместим
с ними по многим (но не по всем) ножкам, с
учётом только того, что линий адресов всего
11 (0-10), но зато они мультиплексируются,
т.е. сначала выдаётся/считывается значение
A00-A10,
а затем A11-A21.
С учётом этого (мультиплексирования адресов)
и "пропажи" сигнала CE всё остальное
полностью аналогично "обычным" флэшкам.
В режиме LPC общение между
мостом и флэшкой происходит лишь по четырёхбитной
шине, а пятый LFRAME# служит
в качестве стартового (для начала операции
по обмену данными). Плюс LRESET#
и LCLK#, которые полностью
аналогичны своим собратьям на материской плате
- вот и весь набор нужных проводов (остальные
- опционально). В общем, это есть попытка
максимально упростить интерфейс, но не скатиться
до "абсолютно последовательного",
типа I2C, оставив возможность
использования даже режимов DMA
и BusMaster-инга (которые
могут использоваться, например, в устройствах
типа DiskOnChip/LPC).
Режим PP используется при
"заводской" прошивке флэшки (он,
ведь, понятно - быстрей, что и важно при массовом
производстве) , а LPC - при
работе в составе плат. Только вот для работы
с такими флэшами нужно, чтоб южный мост умел
это делать - в результате такой стандарт стал
реально популярен лишь с приходом популярного
Nforce2 (потому как он никогда
и не слышал про ISA-шину…
:)
FWH-интерфейс.
В результате достигнутых высот в области
стандартизации ;) , компания Intel, с выходом
чипсетных наборов i8xx продолжила нести знамя
родителя новых стандартов. Так появился ещё
один режим работы - FWH (FirmWareHub,
от которого, собственно, и пошло название
"хабовые"). Он был полностью аналогичен
LPC электрически (по ножкам/разъёму),
но (дальше сами догадаетесь;) - абсолютно
_несовместим_
по протоколу передачи данных. Как можно прочитать
в некоторых документах, это было сделано для
возможности поставить в систему кроме LPC-устройства
ещё и FWH, повесив их на
одну и ту же шину (ведь они электрически совместимы,
но при передаче пакетов данных каждый будет
брать свой из-за разных протоколов), при чём
"хабовых" флэшей можно было навешать
до шестнадцати штук, т.к. в них появились
дополнительные ID0-ID3
сигналы.
(прим. автора: все мои уколы в сторону родителя
x86 просьба воспринимать как шутку, хотя как известно
- в каждой шутке есть доля шутки… ;)
см. рис. выше.
Как видно, картина совершенно аналогично
LPC, только названия LAD0-3
+ LFRAME# заменены на FWH0-3
+ FWH4.
Режим PP совершенно тот
же.
FWH отличается от LPC
протоколом, т.е. все команды для операций
имеют совершенно другие кодовые значения в
полях обмена данными. Плюс возможность использовать
несколько (до 16) FWH-устройств,
благодаря введению новых "идентификационных"
сигналов ID0-3. По умолчанию
для работы в качестве флэшки на матплате принимается
ID=0000 (что и запросто можно
проверить, прозвонив соответсвующие ножки
(9-12) на вашей интеловской плате (они все
"на земле").
Вообще, универсальным способом отличить
флэшку по типу хабовая/обычная можно просто
прозвонив ножку pin28 - в хабовой она будет
строго на земле, в то время как в "обычной"
будет что-то в районе килоома ("звонить"
надо в колодке самой матплаты, хотя некоторые
флэшки тоже "звонятся" - для этого
используйте pin16/28).
Часть 1 Часть
2 Часть 3 Часть
4 Часть 5
|