ПРОЦЕССОР С РЕКОНФИГУРИРУЕМЫМ АЛГОРИТМИЧЕСКИМ КОНВЕЙЕРНЫМ ЯДРОМ И АЛГОРИТМИЧЕСКИМ СОГЛАСУЮЩИМ КОНВЕЙЕРНЫМ КОМПИЛЯТОРОМ

1. Многократно используемое алгоритмическое конвейерное ядро, содержащее процессорный блок,
набор реконфигурируемых пользователем вентилей, в котором программируемые вентили программируются алгоритмическим согласующим конвейерным компилятором, так что алгоритмический согласующий конвейерный компилятор прекомпилирует исходный код, разработанный для работы на стандартном процессоре без параллельной обработки для обработки процессорным блоком, и процессорный блок и алгоритмический согласующий конвейерный компилятор конфигурируют программируемые вентили, чтобы они работали как конвейерные параллельные процессоры.
2. Ядро по п. 1, в котором алгоритмический согласующий конвейерный компилятор является прекомпилятором.
3. Ядро по п. 2, в котором прекомпилятор выполнен с возможностью прекомпилировать стандартный язык программирования более высокого уровня, написанный не для ядра, а для типа обычного нереконфигурируемого процессора, и прекомпилятор генерирует машинный код для ядра, используя тип обычного нереконфигурируемого процессора, для которого стандартный язык программирования более высокого уровня был написан для генерирования машинного кода, чтобы конфигурировать набор реконфигурируемых программируемых пользователем вентилей.
4. Ядро по п. 3, в котором стандартным языком программирования более высокого уровня является «С» или «С++».
5. Ядро по п. 2, в котором ядро содержит пул компьютеров, выполненный с возможностью обрабатывать алгоритмы, необходимые для конкретного вычисления, на основании выходных данных из прекомпилятора, и в котором программируемые пользователем вентили конфигурируются на выполнение задач без дальнейших служебных операций процессорного блока.
6. Ядро по п. 5, дополнительно содержащее интеллектуальный контроллер шины или логический процессор, в котором интеллектуальный контроллер шины или логический процессор выполняют все логические функции, обрабатываемые ядром.
7. Ядро по п. 5, дополнительно содержащее логический процессор и главный шинный переключатель, и логический процессор содержит реконфигурируемые логические функции для управления главным шинным переключателем.
8. Ядро по п. 7, дополнительно содержащее процессор цифровой обработки сигналов, причем процессор цифровой обработки сигналов содержит реконфигурируемый математический процессор для выполнения математических вычислений.
9. Ядро по п. 8, в котором главный шинный переключатель является матричным маршрутизатором или переключателем шин, содержащим схему, программируемую реконфигурируемым образом прекомпилятором и процессорным блоком, так что данные и результаты маршрутизируются от ядра на другое ядро для завершения алгоритма, без дальнейшего вмешательства центрального или периферийного процессора при обработке алгоритма, уменьшая количество служебных операций посредством конвейеризации по сравнению со статичным не реконфигурируемым аппаратным обеспечением, которое требует вмешательства центрального процессора или периферийного процессора, чтобы направлять данные и результаты на арифметические блоки обработки и от них.
10. Ядро по п. 9, в котором логический процессор обрабатывает логические решения и циклы итерации, и память с результатом предоставляется логическим процессором для обучающих алгоритмов.
11. Система, содержащая множество ядер по п. 1, включающая в себя шаги обработки всех математических операций с использованием процессоров
цифровой обработки сигнала одного или более множества ядер, и
обработки всех логический функций с использованием одного или более логических процессоров одного или более множества ядер.
12. Система по п. 11, дополнительно содержащая шаг конфигурирования множества ядер как пула ядер, и каждое из пулов ядер реконфигурируется путем программирования отдельно, без изменений в аппаратном обеспечении.
13. Система по п. 12, в которой шаг конфигурации конфигурирует все множество ядер для обработки алгоритмов параллельно без дальнейшего вмешательства центрального или периферийного процессора, чтобы направлять данные и результаты на арифметические блоки обработки и из них.
14. Система по п. 13, в которой алгоритмический согласующий конвейерный компилятор является прекомпилятором, и логический процессор каждого из множества ядер использует блоки памяти, сконфигурированные прекомпилятором, как справочные таблицы и регистры для постоянных коэффициентов или значений, полученных с помощью обучения.
15. Система по п. 14, дополнительно содержащая настройку справочной таблицы логическим процессором, причем справочная таблица является n-битной справочной таблицей, и n-битная справочная таблица используется для шифрования п-битной булевой логической функции как таблицы истинности.
16. Система по п. 11, дополнительно содержащая: генерирование машинного кода из стандартного языка программирования более высокого уровня, написанного для обычного неконфигурируемого и неконвейерного компьютерного процессора общего назначения, используя алгоритмический согласующий конвейерный компилятор для одного или более множества ядер.
17. Система по п. 16, в которой стандартный язык программирования более высокого уровня написан для типа обычного нереконфигурируемого процессора, и шаг генерирования машинного кода содержит алгоритмический согласующий конвейерный компилятор как прекомпилятор, используя тип обычного нереконфигурируемого процессора для генерирования машинного кода для конфигурирования массива реконфигурируемых программируемых пользователем вентилей каждого из множества ядер.
18. Система по п. 17, которая содержит по меньшей мере один процессор типа обычного нереконфигурируемого процессора, для которого написан стандартный язык программирования более высокого уровня, и этот по меньшей мере один процессор типа обычного нереконфигурируемого процессора, для которого написан стандартный язык программирования более высокого уровня, генерирует машинный код для конфигурирования массива реконфигурируемых программируемых вентилей каждого из множества ядер.
19. Система по п. 18, в которой каждое из множества ядер конфигурируется, чтобы независимо разрешать сложные математические и логические алгоритмы без дальнейшего вмешательства по меньшей мере одного процессора типа обычного нереконфигурируемого процессора, для которого написан стандартный язык программирования более высокого уровня.
20. Система по п. 19, далее содержащая ввод значений в систему, и система выводит решение на главный шинный переключатель системы без дальнейшего вмешательства.
21. Система по п. 20, в которой множество ядер содержит 2000 ядер.
22. Система по п. 21, которая выполняет 360 триллионов команд в секунду с тактовой частотой 500 МГц.
23. Система по п. 22, которая имеет задержку для ввода данных, но конвейеризация уменьшает количество служебных операций, так что система конфигурируется, чтобы выполнять вычисление и выводить результат на каждый такт от каждого ядра после того, как задержка была инициирована.