dimitrus
Member
Offline
Activity: 116
Merit: 10
|
|
August 24, 2013, 08:14:17 PM |
|
Если не используется INCLK/OUTCLK - через резистор 10-20к садим на землю и в строке инициализации меняем config_reg(6,1); -> config_reg(6,0); Вероятней всего будет прирост ~100Mh.
обе ножки на землю? а если чип не один а цепочка и слок тоже соеденен в цепочку но не используется, можеш прокоментировать что за регистры за что отвечают? За цепочку ничего сказать не могу, суть в чем, чип начинает чуть меньше шуметь и жрать, что дает небольшой прирост. Почему-то мне кажется, что для цепочки чипов, нужно развивать возможности регистров 7,8,9,10,11, которые пока никто не использует. Регистры описаны в примере bitfury. Configuration registers 7,8,9,10,11 - enable scan chain. All should be UNPROGRAMMED. Or instead of calculating useful jobs chip will activate scanchain of selected columns Configuration register 6 - if UNPROGRAMMED - output to OUTCLK is taken straight from INCLK pin, if PROGRAMMED - output to OUTCLK is taken from internal clock bus
Clock stages - first we take INCLK as input 1st stage: Configuration register 4 - if UNPROGRAMMED - then INCLK is fed to next oscillator stage if PROGRAMMED then programmable-delay slow oscillator output is MUXED to clock next clock stage 2nd stage: Configuration register 1 - if UNPROGRAMMED - then feedthrough clock to next stage, if PROGRAMMED then value of configuration register 0 is taken as clock signal (useful for single-step evaluation mode) Configuration register 2 - if UNPROGRAMMED then feedthough clock, if PROGRAMMED then fast ring oscillator is active and feeds next stage Configuration register 3 - if UNPROGRAMMED then clock is divided by 2, if PROGRAMMED then clock is fed directly to internal clock bus Config register 5 - reserved for future use
Addresses and their use:
0000 0001 Xlll ebbb - PROGRAM START/STOP SIGNALS lll 0 - PC MAX, 1 - ELNS, 2 - WLNS, 3 - RRSTN, 4 - WRSTN, 5 - WLN, 6 - ELN, 7 - WNON e - 1 - STOP, 0 - START bbb - bits 0..6 (7 bits) to match against PROGRAM COUNTER.
AEW (without address translation) load: 0001 rj0w wwwb bbbb - Where wwww is round expander position (0..15), bbbbb is bit number, j - is job number and q is 0 for first round, 1 for second round 0001 rj10 0eeb bbbb - Loading AL register 0001 rj10 1aab bbbb - Loading EL register
ATR (address-translated load): 0011 xxaa ooob bbbb address - CONVERTING ADDRESS TO LOAD EXACTLY NEXT JOB FOR NEXT SCANNING: <H,G,F,E,D,C,B,A> - midstate3 vector <A,B,C,D,E,F,G,H> - midstate0 vector <W0,W1,W2> - W vector Done by uploading of 19 32-bit values (single uploaded job) On read-back first 16 32-bit words read back - found nonces, last 3 32-bit words is current job - 0 or 1. Programming is done to job that currently is not SCANNED for valid solutions. All others read-back addresses return just current scan-chain output. Server (or controller) side should track new nonces that were found by a chip and program it quickly enough to keep number of answers within adequate limits, otherwise answers will be lost.
0101 xxxx xxaa aaaa - INTERNAL OSCILLATOR PROGRAMMING (THERMOMETER CODE) 0110 xxxx xxaa aaaa - SLOW INTERNAL OSCILLATOR PROGRAMMING (THERMOMETER CODE) x111 xxxa aaab bbbb - CONFIGURATION REGISTER MAGIC NUMBER PROGRAMMING.
Slow versus fast oscillators. Slow oscillator should give more uniform delay and less jitter for lower frequencies, while fast oscillator could give higher frequencies, but less stability at lower frequencies (could means that it behaves instable in SPICE, how it will in reality though is not known, while slow is definitely works under all conditions).
|
|
|
|
t309
Legendary
Offline
Activity: 1946
Merit: 1000
|
|
August 24, 2013, 08:33:32 PM |
|
ну чтож с апаратной частю наексперементировались пора в програмной покопатся )))
|
|
|
|
dimitrus
Member
Offline
Activity: 116
Merit: 10
|
|
August 25, 2013, 05:51:46 AM |
|
Вчера попался под руку DVB тюнер на RTL2832 на борту тюнер R820T Вот как выглядит частота от внутреннего генератора чипа. Гуляет по черному. { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00 }; ЗЫ Все кто сидит на внутреннем генераторе, все дружно отключайте внешний клок(регистр 6), результат вас обрадует.
|
|
|
|
needbmw
Legendary
Offline
Activity: 1302
Merit: 1008
|
|
August 25, 2013, 06:13:38 AM |
|
Гуляет по черному.
это вполне ожидаемо, его частота от напряжения зависит
|
NO PSAKING!
|
|
|
t309
Legendary
Offline
Activity: 1946
Merit: 1000
|
|
August 26, 2013, 02:25:42 AM |
|
ЗЫ Все кто сидит на внутреннем генераторе, все дружно отключайте внешний клок(регистр 6), результат вас обрадует.
вобще никакой разницы (((
|
|
|
|
bitfury
|
|
August 26, 2013, 03:04:01 AM |
|
Хочу добавить две вещи - первая - что дрыгающийся клок - это неплохо.
Вторая - фишка чипа - питание в цепочках работает! И - уже у одних ребят собрана успешно серия 100 плат по 10 чипов именно с цепочками без buck-регуляторов. Это в каком-то смысле открывает возможность паять чипы массово :-) И разрывает полностью конкурентные решения, потому как обвес чипа в данном случае требует только ~4-5 мкФ конденсаторов И ВСЕ (!). никаких танталов и бук-регуляторов рядом с чипов, никаких электролитов. Однако 6 - 9 керамических конденсаторов НУЖНЫ ОБЯЗАТЕЛЬНО (!!!!). Без них - толку не будет ну уж никакого - раскачиваться будет.
из ньюансов - на токе 3 mA например загнанного в CMMINUS получается 610 mV +- 10 mV (99.9% случаев) при температуре 25 градусов. При температуре в 85 градусов - порядка 560 mV (!!!).
Это делает регулирование чипа несколько неудобным (по CMPLUS-аналогично).
Т.е. если например IOVDD = 2*VDD и вы хотите поделить напряжения между двумя чипами одинаково - то при 25 градусах и при целевом напряжении в 0.8 V:
(0.8 - 0.61)/0.003 = 63 Ома (1.6 - 0.61)/0.003 = 330 Ом.
Однако предположим температура чипа увеличилась - тогда
(0.8 - 0.56)/63 = 0.0038 A а (1.6 - 0.56)/330 = 0.0031 A
и таким образом транзистор шунта будет открываться больше и уменьшать напряжение на чипе и поднимать напряжение на других чипах.
Плюс если в цепочке напряжение растет - получится:
(0.9 - 0.61)/0.003 = 0.0046 A и (1.8 - 0.61)/0.003 = 0.0036 A
перекос - 0.9V уже равномерно не поделят.
Итого - требуется или медленная корректировка путем докидывания дополнительного тока в CMMINUS, или ввод именно опорного тока в CMPLUS, или усложнения схемы для компенсации 0.61 V (зависимых от температуры) - намек - можно использовать компоненты с нелинейными характеристиками - тоже дешевые и массовые ;-). Собственно уже несколько разных решений разные команды сделали. Однако - из минусов - никто пока-что делиться находками не хочет, ибо эти находки позволяют бОльшие партии чипов запаивать БЕЗ предзаказа редких компонент с одной стороны, а с другой стороны - не хотят преждевременной критики пока не все дотестили. Из ньюансов - кроме цепи регулирования - утечка например - работает также на руку и так далее.
|
|
|
|
t309
Legendary
Offline
Activity: 1946
Merit: 1000
|
|
August 26, 2013, 03:24:36 AM |
|
радосные новости, а хешрейт при включении в цепочку какой получается, длина цепочки как я понял 10 чипов пока?
|
|
|
|
dimitrus
Member
Offline
Activity: 116
Merit: 10
|
|
August 26, 2013, 04:05:43 AM Last edit: August 26, 2013, 05:59:19 AM by dimitrus |
|
bitfuryПодскажи пожалуйста как запустить первый(быстрый) генератор? 0101 xxxx xxaa aaaa - INTERNAL OSCILLATOR PROGRAMMING (THERMOMETER CODE) 0110 xxxx xxaa aaaa - SLOW INTERNAL OSCILLATOR PROGRAMMING (THERMOMETER CODE) x111 xxxa aaab bbbb - CONFIGURATION REGISTER MAGIC NUMBER PROGRAMMING. Запись настроек частоты по адресу 0х5000 вместо 0х6000 ничего не дает. spi_emit_data(0x6000, (void*)osc, 8); -> spi_emit_data(0x5000, (void*)osc, 8); Можно строку инициализации чипа для его запуска? Отключил делитель(регистр 3) получил больший диапазон, но это на медленном, генератор работает на 392Mhz но уже чип дает всего ~600Mh. Ниже пример дает 212Mhz(40 бит) и по скорости эквивалентен варианту с делителем, на частоте 235Mhz(55 бит) unsigned char osc[8] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00 };
spi_clear_buf(); spi_emit_break(); spi_emit_fasync(chip_n); spi_emit_data(0x6000, (void*)osc, 8); config_reg(7,0); config_reg(8,0); config_reg(9,0); config_reg(10,0); config_reg(11,0); config_reg(6,1); config_reg(4,1); config_reg(1,0); config_reg(2,0); config_reg(3,1); ЗЫ Отключение делителя и понижение частоты дает такую же скорость, но чип кушает меньше. Сейчас еще понизил, сделал 39 бит без делителя, стало еще стабильней.
|
|
|
|
bitfury
|
|
August 26, 2013, 06:54:39 AM |
|
bitfury Подскажи пожалуйста как запустить первый(быстрый) генератор?
Увы никак - у меня в кремнии ошибка - и без респина его запустить невозможно (не программируется частота). Если-бы я в последний момент не сделал slow - то приехали - пришлось-бы использовать внешний - а это хуже походу. Поэтому запись ничего не дает в регистр. Там жесткая ошибка увы. ЗЫ Отключение делителя и понижение частоты дает такую же скорость, но чип кушает меньше. Сейчас еще понизил, сделал 39 бит без делителя, стало еще стабильней.
Без делителя можно точнее частоту выставить. Чип работает на обоих фронтах (потребления соответственно clk*2) - НО - на медленных клоках duty cycle (скважность) должен быть хороший (50% / 50%) в обоих случаях. Тут надо действительно внимательно. Просто из неприятных моментов - клок от slow к драйверу CLK проходит через некоторое количество MUX'ов - и если происходит изменение duty-cycle на них - то делитель должен был этот момент исправить. Я не уверен точно, как повлияют разбросы I(Von) / I(Voff) pmos и nmos транзисторов на количествах на это изменение - тогда возможно часть чипов будет работать лучше так, а часть с делителем.
|
|
|
|
KNK
|
|
August 26, 2013, 10:15:35 AM |
|
Увы никак - у меня в кремнии ошибка - и без респина его запустить невозможно (не программируется частота).
Эта ошибка будет исправлена для октябрьских чипов?
|
|
|
|
bitfury
|
|
August 26, 2013, 10:19:34 AM |
|
Увы никак - у меня в кремнии ошибка - и без респина его запустить невозможно (не программируется частота).
Эта ошибка будет исправлена для октябрьских чипов? Нет. Увы это не программирование, чтобы ошибки было легко исправить.
|
|
|
|
willrain
|
|
August 26, 2013, 10:20:49 AM |
|
Легко - нет. Но что мешает внести нужные изменения в проект при заказе очередной партии чипов?
Или пересоздание маски дорого обходится?
|
|
|
|
amidaemon
|
|
August 26, 2013, 10:28:06 AM |
|
битфури, а планируется новый чип скажем на 500 или более тх? ведь если верить новостям - уже такой есть в природе.
п.с. пробачте за нерiдну мову.
|
well done
|
|
|
t309
Legendary
Offline
Activity: 1946
Merit: 1000
|
|
August 26, 2013, 04:10:05 PM |
|
у меня без делителя на инженерных чипах хешрейт падает кстати я таки выжал 3+ гигахеша при 0.92в и 3f 00 клоке
|
|
|
|
bitfury
|
|
August 26, 2013, 04:22:02 PM |
|
Легко - нет. Но что мешает внести нужные изменения в проект при заказе очередной партии чипов?
Или пересоздание маски дорого обходится?
Пересоздание маски дорого обходится - как запуск нового чипа, или как часть его запуска в зависимости от вида изменений. 500 TH ?? на одном чипе ? ;-) наверное следующий 20-30 GH/s. мови - ок. 2 t309 - а я что говорил...
|
|
|
|
amidaemon
|
|
August 26, 2013, 04:26:36 PM |
|
500 TH ?? на одном чипе ? ;-) наверное следующий 20-30 GH/s. ой, точно - ошибся, 500 гх на одном чипе
|
well done
|
|
|
dimitrus
Member
Offline
Activity: 116
Merit: 10
|
|
August 26, 2013, 06:24:54 PM |
|
bitfuryНакопилось много вопросов На какой максимальной частоте получилось запустить чип от внешнего/внутреннего генератора? Была возможность проверить зависимость напряжения питания от частоты? Интересны диапазоны 250-450Mhz. По поводу программирования частоты, я верно понимаю, что налету менять ее нельзя, нужно полностью формировать заново пакет инициализации при этом все данные сбрасываются, нужно заново программировать счетчики и т.д.? Есть ли возможность читать данные из регистров и счетчиков, что вообще возможно читать из чипа кроме данных по адресу 0x3000? Есть еще какие-то регистры или иные адреса не описанные ранее? По поводу регистров 7-11, я верно понимаю, что используя их, можно вычисления одного хэша распределить на некоторое количество чипов? Есть пример или набросок? 0001 rj0w wwwb bbbb - Where wwww is round expander position (0..15), bbbbb is bit number, j - is job number and q is 0 for first round, 1 for second round JOB 0/1 - формирует тот самый меандр про который я ранее писал, как он формируется(механизм) относительно частоты генератора и как его можно контролировать/отключать/менять?
|
|
|
|
bitfury
|
|
August 26, 2013, 06:52:48 PM |
|
bitfuryНакопилось много вопросов На какой максимальной частоте получилось запустить чип от внешнего/внутреннего генератора? Была возможность проверить зависимость напряжения питания от частоты? Интересны диапазоны 250-450Mhz. По поводу программирования частоты, я верно понимаю, что налету менять ее нельзя, нужно полностью формировать заново пакет инициализации при этом все данные сбрасываются, нужно заново программировать счетчики и т.д.? Есть ли возможность читать данные из регистров и счетчиков, что вообще возможно читать из чипа кроме данных по адресу 0x3000? Есть еще какие-то регистры или иные адреса не описанные ранее? По поводу регистров 7-11, я верно понимаю, что используя их, можно вычисления одного хэша распределить на некоторое количество чипов? Есть пример или набросок? 0001 rj0w wwwb bbbb - Where wwww is round expander position (0..15), bbbbb is bit number, j - is job number and q is 0 for first round, 1 for second round JOB 0/1 - формирует тот самый меандр про который я ранее писал, как он формируется(механизм) относительно частоты генератора и как его можно контролировать/отключать/менять? Максимальная частота на которой стабильно жил ~270 мГц ; Зависимость питания от частоты хитрая - понять ее не получилось нормально - с шагом 10 mV если двигаться - то ошибок количество уменьшается/увеличивается; Частоту МОЖНО менять на лету - со счетчиками проблем быть не должно; Читать из чипа ничего нельзя; Других регистров нет; 7-11 регистры это scan-chain который предназначен для отладки ядра (на случай неудачного выпуска чипа); JOB 0/1 - это самый старший бит nonce-счетчика который в формировании nonce не участвует; это просто счетчик.
|
|
|
|
t309
Legendary
Offline
Activity: 1946
Merit: 1000
|
|
August 27, 2013, 04:34:12 AM |
|
bitfury есть ли реальная разница кроме корпусировки и маркировки между инженерными чипами и комерческими, с инжынерного без проблем выжымаю 3+ гигахеша с комерческого хоть ты тресни 2.75
|
|
|
|
bitfury
|
|
August 27, 2013, 04:52:38 AM |
|
bitfury есть ли реальная разница кроме корпусировки и маркировки между инженерными чипами и комерческими, с инжынерного без проблем выжымаю 3+ гигахеша с комерческого хоть ты тресни 2.75
Реальная разница в характеристиках полевиков. Они лучше ток проводят и меньше vth в инженерке, но это не бесплатно - вдвое больше текут и хуже по КПД, и больше ошибок при вычислениях. Насчет коммерческого - напряжение решает.
|
|
|
|
|