metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2011-03-09 03:39 pm

Кварц на 11.666375 мгц

На тему бинарных протоколов и прочего доисторического вуду.
Внезапно меня посетило прозрение что все значения фреймрейтов, промежуточных частот и тому подобного реально придумываются какими-то числопоклонниками-пифагорейцами, в угаре от нюхания спиртоканифоли и цапон-лака.
А методика выдумывания такая: берем какое-нибудь гадостное простое число, которое то и запомнить сложно, затем умножаем его на неебическую комбинацию из степеней двойки, тройки и пятерки таким образом чтобы результат попал в необходимый диапазон. Таким образом простое число и все его использующие приносятся в жертву Числобогу.
Вот например 44100=210^2=(2^2)*(3^2)*(5^2)*(7^2) - явный сатанизм и числофетиш.
А все кварцы, работающие на разнообразных вуду-частотах, создают специальные вибрации, чтобы привлекать цифровых бесов в наш мир.

[personal profile] ex0_planet 2011-03-09 03:06 pm (UTC)(link)
Ребе, вы не забывайте одну вещь: все это надо рассматривать с точки зрения схемотехники и микроэлектроники 80-х годов, а уж 232 еще на 25 лет старше.

> Чтоб не развлекаться с клок рекавери и адскими синхропосылками.
Ну если мы соединяем Большой Сложный Аппарат с другим таким же, стоящим в соседней комнате, можно и поразвлекаться (но все это не нужно, на 232-х скоростях). Так в общем-то и делают в эзернетах и прочих файбер ченнэлах. Другое дело что по плате (для чего и предназначен i2c) лишнюю дорожку кинуть - нефиг делать, чтобы не пихать всю тряхомудию прямо в микросхемы (которая вообще не факт что поместиться в нее). Обычный инженерный компромисс, короче говоря.

> А при чем тут скорость? Нужная точность зависит только от длины посылки.
При том, что на битовых скоростях в ~1000 раз меньше тактовой частоты можно обойтись полусофтовыми методами в виде счетчика, а не городить адские PLL и самосинхронизирующиеся коды, стаффинги и прочий жопный ад.

> работает от частот в 0.0001 гц,
Ну да, работает. Осмысленные данные все равно так не передашь. Еще зачем-то оно нужно?

А, да. Все коды с выделенным сигналом синхронизации безоговорочно сосут в случаях, когда физический канал один - например, радио или оптика.

[identity profile] nicka-startcev.livejournal.com 2011-03-09 03:14 pm (UTC)(link)
>Ребе, вы не забывайте одну вещь: все это надо рассматривать с точки зрения схемотехники и микроэлектроники 80-х годов, а уж 232 еще на 25 лет старше.

Может я тупой, но я бы тянул две дифф.пары - одну с клоком, вторую с данными. Данные защелкивать, например, по нарастанию клока. Кстати, низкоуровневая часть и у и2ц неплоха, но поверх нее навернут ад. По уму, например, можно было взять две дифф.пары и договориться, что перепад данных при высоком клоке -- это спецсигнал, а нормальные данные передаются по фронту клока.

>можно обойтись полусофтовыми методами

Да. Об этом не подумал. Но любой асинхронный инерфейс приведет к потребности в таких извратах. Если взять и2ц и заменить три провода на две дифф.пары - то получим довольно таки вкусное решение. Или нет?

С радиоканалом всё сложнее, да. Но и там можно извратиться например с поляризацией и передавать два бита за такт.

[personal profile] ex0_planet 2011-03-09 03:51 pm (UTC)(link)
> Может я тупой, но я бы тянул две дифф.пары - одну с клоком, вторую с данными. Данные защелкивать, например, по нарастанию клока.
Строго говоря, начиная с некоторой скорости вас и это не спасет из за неодинаковости параметров линии. В PCIe, например, несколько параллельных lane'ов, но каждый из них - отдельный сериальный канал с отдельным, внедренным в сигнал клоком - по другому просто не получается.

> Если взять и2ц и заменить три провода на две дифф.пары - то получим довольно таки вкусное решение. Или нет?
Зачем? Недалеко (по плате) можно и без дифсигнала, далеко и быстро - невыгодно ни по ресурсам (проводов много надо), ни энергетически, ни даже технологичным это решение не является (согласовывать умучаемся). Остается сомнительная ниша "далеко и небыстро" (случай "недалеко и небыстро" отметаем как вырожденный) - но там и RS-232 неплохо справляется.

> С радиоканалом всё сложнее, да. Но и там можно извратиться например с поляризацией и передавать два бита за такт.
За идею тратить половину канальной емкости на передачу клока связисты вас удавят коаксиалом.

[identity profile] nicka-startcev.livejournal.com 2011-03-09 03:59 pm (UTC)(link)
Интересно, кого надо давить и чем за идеи "на год 1 байт в пакованом БЦД" и "на секунды хватит и 5 бит"? :)

>За идею тратить половину канальной емкости на передачу клока связисты вас удавят коаксиалом.

Тут еще такой вопрос - что нам важнее, хорошая латентность, или хорошее заполнение канальной емкости? Если к каждому передаваемому пакету из 16 бит довешивать сотню бит всякой синхры, то будет ли это накладнее, чем взять две поляризации и одну из них потратить на синхру?

[personal profile] ex0_planet 2011-03-09 04:10 pm (UTC)(link)
> Интересно, кого надо давить и чем за идеи "на год 1 байт в пакованом БЦД" и "на секунды хватит и 5 бит"? :)
Джобса, очевидно. Просто за компанию. Вы еще gate A20 вспомните, и 640Kb - писюк можно просто целиком приводить в качестве примера антидизайна.

>>За идею тратить половину канальной емкости на передачу клока связисты вас удавят коаксиалом.
> Тут еще такой вопрос - что нам важнее, хорошая латентность, или хорошее заполнение канальной емкости? Если к каждому передаваемому пакету из 16 бит довешивать сотню бит всякой синхры, то будет ли это накладнее, чем взять две поляризации и одну из них потратить на синхру?

Почему сотню? Удвоение (плюс стаффинг и служебка всякая) в худшем случае (манчестер), но его: a) никто уже наверное не использует; б) это всего лишь удвоение занимаемой полосы, а для передачи клока не встроенного в сигнал, вам потребуется второй модулятор и вторая антенна. В компакт дисках еще 8 бит раздувают до 14 (плюс восстановительные коды сверху) и ничего - никто не жалуется. Кстати, хороший пример: куда в компакте будем клок запихивать - вторым лазером на другой длине волны или просто второй диск приклеим сверху ? :-)

[identity profile] nicka-startcev.livejournal.com 2011-03-09 04:18 pm (UTC)(link)
>Джобса, очевидно. Просто за компанию.

За компанию с гейтсом и ко? :)

а20, 640кб, 15мб холе, как минимум 5 лимитов размера носителей, 63 сектора на трек вместо 64..
именно что "писюк можно просто целиком приводить в качестве примера антидизайна."

>Почему сотню?
вольный пересказ контрол трансфер протокола из USB. Тоже, кстати, яркий пример антидизайна.

>Кстати, хороший пример: куда в компакте будем клок запихивать
если это не аудиоСД, то там контроль в начале каждого сектора, плюс линейная скорость вполне себе известна из независящих источников. в аудиоСД что-то обрезали, но подробности гуглить лень.

[personal profile] ex0_planet 2011-03-09 04:40 pm (UTC)(link)
> 5 лимитов размера носителей
ATA вообще трагикомедия...

> вольный пересказ контрол трансфер протокола из USB. Тоже, кстати, яркий пример антидизайна.
Оно может и так, но оно ж не 99% трафика составляет.

>> Кстати, хороший пример: куда в компакте будем клок запихивать
> если это не аудиоСД, то там контроль в начале каждого сектора, плюс линейная скорость вполне себе известна из независящих источников. в аудиоСД что-то обрезали, но подробности гуглить лень.
Из каких источников? Вот у нас алюминиевая пластина с дырками, на нее светит лазер, когда попадает на люминий - отражается и засвечивает диод, когда попадает в дырку - не засвечивает.
Последние 35.82нс было темно. Вопрос: это два нулевых бита, или уже три?

[identity profile] nicka-startcev.livejournal.com 2011-03-09 04:44 pm (UTC)(link)
>Последние 35.82нс было темно. Вопрос: это два нулевых бита, или уже три?

Текущий радиус трека и скорость вращения шпинделя неизвестны, да?

[personal profile] ex0_planet 2011-03-09 05:06 pm (UTC)(link)
> Текущий радиус трека и скорость вращения шпинделя неизвестны, да?

Я умолчу про абсолютную точность привода, подумайте вот о чем: у любых реальных дисков бывает эксцентриситет, и центр спиральной дорожки вообще говоря не совпадает с центром вращения шпинделя. За дорожкой следит специальная система, так что проблем это не создает, но вот скорость _модуляции_луча_поверхностью_ (а не скорость участка диска под лазером) - величина слабопредсказуемая.

[identity profile] nicka-startcev.livejournal.com 2011-03-09 05:10 pm (UTC)(link)
как мне кажется, вся эта механика может дать +-30% точность линейной скорости, а зная скорость с такой точностью можно смело округлить длину считанного нуля до целого числа бит, или послать всех нафиг, что-то поменять и прочитать еще раз.

[identity profile] nicka-startcev.livejournal.com 2011-03-09 05:45 pm (UTC)(link)
>Оно может и так, но оно ж не 99% трафика составляет.

Кстати, тут тоже не всё так радужно. Если надо записать 1 бит, вычитать результат, записать второй бит - то получится даже не 1 бит в пакете, а 1 бит в кадре, что даст трансфер порядка 1кб в минуту.

[identity profile] denisioru.livejournal.com 2011-03-09 06:44 pm (UTC)(link)
На самом деле похуй, потому что рид-соломон это сила :)