- Реорганизовать и агрессивно Трубопроводный круглый процессор таким образом, чтобы достичь тактовой частоты (и эффективности аппаратного обеспечения) близко к максимально возможному на данном FPGA. (Задержка критического пути этой конкретной конструкции, на мой взгляд, не более чем один 32-битный добавить задержку, а также зарегистрировать время установки.)
- Для получения улучшенной масштабируемости, чтобы максимально использовать FPGAs любого размера, не раскатать круглый контур, но вместо того, чтобы построить небольшие итеративные, однообходной процессор, множество копий которых может работать параллельно. Каждый из этих ядер может одновременно хэш столько кандидатов блоков, как это имеет этапы трубопровода (4 в этой конструкции). Правильно спроектированная блок работы диспетчеризации (по-прежнему быть написано) может гарантировать, что все ядра всегда оставаться полностью использовать кандидат блока хэширования.
В качестве примера выполнения этого подхода, вот несколько примеров статистики, полученной для текущего проекта, на основе его компиляции для Стратикса III FPGA (EP3SL150F1152C2N, как найти в плате Altera / Terasic DE3).
- Площадь 1 сердечник, в том числе испытательной установки: 2,113 клеток (плюс немного памяти)
- Максимальная частота: 385 - 421 МГц (в зависимости от температуры)
- Тактовых циклов на SHA-256 (1 порция): 64 (в среднем, если трубопровод хранится полностью)
- тактовых циклов в двойном SHA-256: 128 (то же самое)
- Биткойн Mhash / с на ядро: 3.0 - 3.3 (Темп-зависимый)
- Сердечники на FPGA: По крайней мере 50
- Биткойн Mhash / с на FPGA: 150 - 165 Mhash / с (в зависимости от температуры)
Это особенно FPGA является довольно дорогим; Я до сих пор не изучены, которые FPGA платформа будет наиболее экономически эффективным для этой конструкции. Но, если кто-то заинтересован в изучении этой линии работы, а также помогает интегрировать эту новую основу в более полное решение горнорудной, я был бы рад выпустить код.
С Уважением,
-Майк