The idea is “Liquid core”, we change the approach to computing

    The idea of ​​a subject came the other day, I'm not sure that the topic has not been touched on before. Therefore, I apologize if I haven’t googled enough, and the topic is pulled by a bearded button accordion.

    image

    In a nutshell: we create a processor with programmable logic, as in FPGAs, but with a dynamic configuration. The program will not be a sequence of commands, but a sequence of configurations.


    What do we have

    Now all processors have a certain set of instructions. Any program, in any programming language, turns precisely into a sequence of these commands (naturally, not counting virtual platforms, for example Java). For example, in C ++ there will be only one operator for calculating the sine, but the compiler implements this calculation from many consecutive elementary instructions of the processor.

    There is FPGA , which logic is configured, you can calculate the sine in one! tact. But since the logical structure is set at startup, and sometimes hard-coded into the FPGA, in the end we can do nothing more than calculate the sine.

    What I offer

    To create a processor with a core from a sufficient number (how much I can’t even imagine) of the elementary logical elements - “AND”, “NOT”, “OR” ... But without any predefined relationships between them. Communications will be carried out dynamically, and in any form - i.e. any element can be associated with any other. What do we get. We need to calculate the sine - load the appropriate configuration. Moreover, you can calculate not only mathematical functions, but anything, for example, work with regular expressions. The compiler will simply have to turn the high-level command / instruction set into the optimal configuration. As a result, the program does not turn into a set of processor instructions, but into a set of kernel configurations.
    In practice, you can add such a core to the classical ones, and perform “liquid” calculations as necessary.

    The general essence of "liquid computing"

    To create not a solution algorithm on a specific computer, but to create a computer to solve a specific problem.

    In general, the idea outlined. I am pleased to hear the opinion of the habr community.

    Z.Y. Liquid core , liquid computing - it sounds like that!

    Also popular now: