Анатомия валидатора
Конвейерная обработка
Валидаторы широко используют оптимизацию, распространенную в дизайне ЦП, называемую pipelining. Конвейерная обработка — это правильный инструмент для работы, когда есть поток входных данных, который необходимо обработать в виде последовательности шагов, и за каждый из них отвечает различное оборудование. Типичным примером является использование стиральной машины и сушилки для стирки/сушки/складывания нескольких партий белья. Стирка должна происходить перед сушкой и сушка перед складыванием, но каждая из трех операций выполняется отдельным агрегатом. Чтобы максимизировать эффективность, создается конвейер из стадий. Мы назовем стирку одним этапом, сушку — другим, а процесс складывания — третьим. Чтобы запустить конвейер, нужно добавить вторую загрузку белья в стиральную машину сразу после того, как первая загрузка добавлена в сушилку. Точно так же третья загрузка добавляется в стиральную машину после того, как вторая находится в сушилке, а первая складывается. Таким образом, можно добиться прогресса при трех загрузках белья одновременно. При бесконечных нагрузках конвейер будет последовательно завершать загрузку со скоростью самого медленного этапа в конвейере.
Конвейерная обработка в валидаторе
Валидатор содержит два конвейерных процесса, один из которых используется в режиме лидера, называемый TPU, а другой используется в режиме валидатора, называемый TVU. В обоих случаях конвейерное оборудование одинаковое: сетевой ввод, карты графического процессора, ядра ЦП, запись на диск и сетевой вывод. То, что он делает с этим оборудованием, отличается. TPU существует для создания записей в бухгалтерской книге, тогда как TVU существует для их проверки.