Что такое конвейерный процессор

«Что такое конвейерный процессор» — вопрос из категории Архитектура, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Пример на Go с конвейером для обработки данных:

func producer(nums []int) <-chan int {
    out := make(chan int)
    go func() {
        for _, n := range nums {
            out <- n
        }
        close(out)
    }()
    return out
}

func square(in <-chan int) <-chan int {
    out := make(chan int)
    go func() {
        for n := range in {
            out <- n * n
        }
        close(out)
    }()
    return out
}

// Использование:
nums := []int{1, 2, 3}
pipeline := square(producer(nums))