Bitcoin Forum
June 16, 2024, 06:39:10 PM *
News: Voting for pizza day contest
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [22] 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 »
  Print  
Author Topic: [Применение чипов Bitfury], схемные решения и т.п.  (Read 141675 times)
dimitrus
Member
**
Offline Offline

Activity: 116
Merit: 10



View Profile
August 24, 2013, 08:14:17 PM
 #421

Если не используется INCLK/OUTCLK -  через резистор 10-20к садим на землю и в строке инициализации меняем config_reg(6,1); -> config_reg(6,0);
Вероятней всего будет прирост ~100Mh.


обе ножки на землю? а если чип не один а цепочка и слок тоже соеденен в цепочку но не используется, можеш прокоментировать что за регистры за что отвечают?
За цепочку ничего сказать не могу, суть в чем, чип начинает чуть меньше шуметь и жрать, что дает небольшой прирост.
Почему-то мне кажется, что для цепочки чипов, нужно развивать возможности регистров 7,8,9,10,11, которые пока никто не использует.

Регистры описаны в примере bitfury.
Code:
 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 Offline

Activity: 1946
Merit: 1000


View Profile
August 24, 2013, 08:33:32 PM
 #422

ну чтож с апаратной частю наексперементировались пора в програмной покопатся )))
dimitrus
Member
**
Offline Offline

Activity: 116
Merit: 10



View Profile
August 25, 2013, 05:51:46 AM
 #423

Вчера попался под руку DVB тюнер на RTL2832 на борту тюнер R820T
Вот как выглядит частота от внутреннего генератора чипа. Гуляет по черному.
Code: (55bit)
{ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00 };



ЗЫ Все кто сидит на внутреннем генераторе, все дружно отключайте внешний клок(регистр 6), результат вас обрадует.
needbmw
Legendary
*
Offline Offline

Activity: 1302
Merit: 1008



View Profile
August 25, 2013, 06:13:38 AM
 #424

Гуляет по черному.
это вполне ожидаемо, его частота от напряжения зависит

NO PSAKING!
t309
Legendary
*
Offline Offline

Activity: 1946
Merit: 1000


View Profile
August 26, 2013, 02:25:42 AM
 #425

ЗЫ Все кто сидит на внутреннем генераторе, все дружно отключайте внешний клок(регистр 6), результат вас обрадует.

вобще никакой разницы (((
bitfury
Sr. Member
****
Offline Offline

Activity: 266
Merit: 251


View Profile
August 26, 2013, 03:04:01 AM
 #426

Хочу добавить две вещи - первая - что дрыгающийся клок - это неплохо.

Вторая - фишка чипа - питание в цепочках работает! И - уже у одних ребят собрана успешно серия 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 Offline

Activity: 1946
Merit: 1000


View Profile
August 26, 2013, 03:24:36 AM
 #427

радосные новости, а хешрейт при включении в цепочку какой получается, длина цепочки как я понял 10 чипов пока?
dimitrus
Member
**
Offline Offline

Activity: 116
Merit: 10



View Profile
August 26, 2013, 04:05:43 AM
Last edit: August 26, 2013, 05:59:19 AM by dimitrus
 #428

bitfury
Подскажи пожалуйста как запустить первый(быстрый) генератор?
Code:
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 ничего не дает.
Code:
spi_emit_data(0x6000, (void*)osc, 8);  -> spi_emit_data(0x5000, (void*)osc, 8);
Можно строку инициализации чипа для его запуска?
Отключил делитель(регистр 3) получил больший диапазон, но это на медленном, генератор работает на 392Mhz но уже чип дает всего ~600Mh.
Ниже пример дает 212Mhz(40 бит) и по скорости эквивалентен варианту с делителем, на частоте 235Mhz(55 бит)
Code:
	
        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
Sr. Member
****
Offline Offline

Activity: 266
Merit: 251


View Profile
August 26, 2013, 06:54:39 AM
 #429

bitfury
Подскажи пожалуйста как запустить первый(быстрый) генератор?

Увы никак - у меня в кремнии ошибка - и без респина его запустить невозможно (не программируется частота). Если-бы я в последний момент не сделал slow - то приехали - пришлось-бы использовать внешний - а это хуже походу. Поэтому запись ничего не дает в регистр. Там жесткая ошибка увы.

ЗЫ Отключение делителя и понижение частоты дает такую же скорость, но чип кушает меньше.
Сейчас еще понизил, сделал 39 бит без делителя, стало еще стабильней.

Без делителя можно точнее частоту выставить. Чип работает на обоих фронтах (потребления соответственно clk*2) - НО - на медленных клоках duty cycle (скважность) должен быть хороший (50% / 50%) в обоих случаях. Тут надо действительно внимательно. Просто из неприятных моментов - клок от slow к драйверу CLK проходит через некоторое количество MUX'ов - и если происходит изменение duty-cycle на них - то делитель должен был этот момент исправить. Я не уверен точно, как повлияют разбросы I(Von) / I(Voff) pmos и nmos транзисторов на количествах на это изменение - тогда возможно часть чипов будет работать лучше так, а часть с делителем.
KNK
Hero Member
*****
Offline Offline

Activity: 692
Merit: 502


View Profile
August 26, 2013, 10:15:35 AM
 #430

Увы никак - у меня в кремнии ошибка - и без респина его запустить невозможно (не программируется частота).
Эта ошибка будет исправлена для октябрьских чипов?

Mega Crypto Polis - www.MegaCryptoPolis.com
BTC tips: 1KNK1akhpethhtcyhKTF2d3PWTQDUWUzHE
bitfury
Sr. Member
****
Offline Offline

Activity: 266
Merit: 251


View Profile
August 26, 2013, 10:19:34 AM
 #431

Увы никак - у меня в кремнии ошибка - и без респина его запустить невозможно (не программируется частота).
Эта ошибка будет исправлена для октябрьских чипов?

Нет. Увы это не программирование, чтобы ошибки было легко исправить.
willrain
Full Member
***
Offline Offline

Activity: 190
Merit: 100



View Profile
August 26, 2013, 10:20:49 AM
 #432

Легко - нет. Но что мешает внести нужные изменения в проект при заказе очередной партии чипов?

Или пересоздание маски дорого обходится?

amidaemon
Sr. Member
****
Offline Offline

Activity: 395
Merit: 250



View Profile
August 26, 2013, 10:28:06 AM
 #433

битфури, а планируется новый чип скажем на 500 или более тх? ведь если верить новостям - уже такой есть в природе.

п.с. пробачте за нерiдну мову.

well done
t309
Legendary
*
Offline Offline

Activity: 1946
Merit: 1000


View Profile
August 26, 2013, 04:10:05 PM
 #434

у меня без делителя на инженерных чипах хешрейт падает кстати я таки выжал 3+ гигахеша при 0.92в и 3f 00 клоке
bitfury
Sr. Member
****
Offline Offline

Activity: 266
Merit: 251


View Profile
August 26, 2013, 04:22:02 PM
 #435

Легко - нет. Но что мешает внести нужные изменения в проект при заказе очередной партии чипов?

Или пересоздание маски дорого обходится?

Пересоздание маски дорого обходится - как запуск нового чипа, или как часть его запуска в зависимости от вида изменений.

500 TH ?? на одном чипе ? ;-)

наверное следующий 20-30 GH/s. мови - ок. Wink

2 t309 - а я что говорил...
amidaemon
Sr. Member
****
Offline Offline

Activity: 395
Merit: 250



View Profile
August 26, 2013, 04:26:36 PM
 #436


500 TH ?? на одном чипе ? ;-)
наверное следующий 20-30 GH/s. Wink
ой, точно - ошибся, 500 гх на одном чипе Wink

well done
dimitrus
Member
**
Offline Offline

Activity: 116
Merit: 10



View Profile
August 26, 2013, 06:24:54 PM
 #437

bitfury
Накопилось много вопросов Smiley
На какой максимальной частоте получилось запустить чип от внешнего/внутреннего генератора?
Была возможность проверить зависимость напряжения питания от частоты? Интересны диапазоны 250-450Mhz.

По поводу программирования частоты, я верно понимаю, что налету менять ее нельзя, нужно полностью формировать заново пакет инициализации при этом все данные сбрасываются, нужно заново программировать счетчики и т.д.?
Есть ли возможность читать данные из регистров и счетчиков, что вообще возможно читать из чипа кроме данных по адресу 0x3000?
Есть еще какие-то регистры или иные адреса не описанные ранее?
По поводу регистров 7-11, я верно понимаю, что используя их, можно вычисления одного хэша распределить на некоторое количество чипов? Есть пример или набросок?

Code:
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
Sr. Member
****
Offline Offline

Activity: 266
Merit: 251


View Profile
August 26, 2013, 06:52:48 PM
 #438

bitfury
Накопилось много вопросов Smiley
На какой максимальной частоте получилось запустить чип от внешнего/внутреннего генератора?
Была возможность проверить зависимость напряжения питания от частоты? Интересны диапазоны 250-450Mhz.

По поводу программирования частоты, я верно понимаю, что налету менять ее нельзя, нужно полностью формировать заново пакет инициализации при этом все данные сбрасываются, нужно заново программировать счетчики и т.д.?
Есть ли возможность читать данные из регистров и счетчиков, что вообще возможно читать из чипа кроме данных по адресу 0x3000?
Есть еще какие-то регистры или иные адреса не описанные ранее?
По поводу регистров 7-11, я верно понимаю, что используя их, можно вычисления одного хэша распределить на некоторое количество чипов? Есть пример или набросок?

Code:
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 Offline

Activity: 1946
Merit: 1000


View Profile
August 27, 2013, 04:34:12 AM
 #439

bitfury
есть ли реальная разница кроме корпусировки и маркировки между инженерными чипами и комерческими, с инжынерного без проблем выжымаю 3+ гигахеша с комерческого хоть ты тресни 2.75
bitfury
Sr. Member
****
Offline Offline

Activity: 266
Merit: 251


View Profile
August 27, 2013, 04:52:38 AM
 #440

bitfury
есть ли реальная разница кроме корпусировки и маркировки между инженерными чипами и комерческими, с инжынерного без проблем выжымаю 3+ гигахеша с комерческого хоть ты тресни 2.75

Реальная разница в характеристиках полевиков. Они лучше ток проводят и меньше vth в инженерке, но это не бесплатно - вдвое больше текут и хуже по КПД, и больше ошибок при вычислениях. Насчет коммерческого - напряжение решает.
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [22] 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!