Re:Can MIPS Leapfrog RISC-V?
by ChuckMcM on Friday March 22, 2019 @02:53PM
(#19465695)
It matters a lot. But there are different technologies that are converging that give it a better shot at success this time.
An Instruction Set Architecture (ISA), by itself, is really nothing more than a computer science exercise. However, a systems architecture which allows you to build complete systems, that is something entirely different.
For a new "system" to take hold, you need four things:
1) An ISA that can express useful computation in a way that the computation can be completed in a useful amount of time. Everyone loves to build a little Turing machine which can compute anything, but nobody really wants to run and editor that is running on a simple Turing processor because it isn't performant enough to be useful as an editor. So the combination is critical, good ISA, and an efficient way to process that ISA in hardware.
2) Tools to convert algorithms expressed in a common high level language, into a reasonably efficient use of the ISA. The gcc suite of tools has really helped here for a large number of ISAs. The majority of engineers express their algorithmic ideas in languages like C and C++ Etc. When they are compiled into code on a machine, the less space they use in RAM and FLASH and the faster they can run, increase the value of the ISA.
3) Resource and configuration management for the systems. Typically the operating system, Linux works well for this, it is software that is already built/available that means you only need to invest in the "new" algorithm code to get your idea running, not a bunch of basic system management code. For example, developing for Android, you just need to write your app, you don't need to create a new compiler, or write an OS, or device drivers, just your app. Successful systems have this "eco-system" already in place to support a wide variety of applications.
4) An effective I/O channel. If you want a good example of this, look at routers in the early 2000's. The Power architecture had a much better infrastructure for building many many lanes of I/O into the CPU and so folks like Cisco, Juniper, and others used systems based on that architecture for their routers and switches. The "software" could run on x86 architecture systems, but those systems were always challenged in creating hundreds of I/O endpoints in part due to the legacy of the IBM PC and Intel's "southbridge"/chipset strategy for holding on to additional margin (aka profits).
Open source hardware is getting to the point where all of these conditions are close to being met, and when they are, it really changes who gets to keep the 'value' that is derived from selling complete systems. It takes it away from the chip maker and moves it toward the system integrator. Perhaps it is surprising but that translates into systems integrators selling systems for less money and making more (or at least the same) profit on them.
An Instruction Set Architecture (ISA), by itself, is really nothing more than a computer science exercise. However, a systems architecture which allows you to build complete systems, that is something entirely different.
For a new "system" to take hold, you need four things:
1) An ISA that can express useful computation in a way that the computation can be completed in a useful amount of time. Everyone loves to build a little Turing machine which can compute anything, but nobody really wants to run and editor that is running on a simple Turing processor because it isn't performant enough to be useful as an editor. So the combination is critical, good ISA, and an efficient way to process that ISA in hardware.
2) Tools to convert algorithms expressed in a common high level language, into a reasonably efficient use of the ISA. The gcc suite of tools has really helped here for a large number of ISAs. The majority of engineers express their algorithmic ideas in languages like C and C++ Etc. When they are compiled into code on a machine, the less space they use in RAM and FLASH and the faster they can run, increase the value of the ISA.
3) Resource and configuration management for the systems. Typically the operating system, Linux works well for this, it is software that is already built/available that means you only need to invest in the "new" algorithm code to get your idea running, not a bunch of basic system management code. For example, developing for Android, you just need to write your app, you don't need to create a new compiler, or write an OS, or device drivers, just your app. Successful systems have this "eco-system" already in place to support a wide variety of applications.
4) An effective I/O channel. If you want a good example of this, look at routers in the early 2000's. The Power architecture had a much better infrastructure for building many many lanes of I/O into the CPU and so folks like Cisco, Juniper, and others used systems based on that architecture for their routers and switches. The "software" could run on x86 architecture systems, but those systems were always challenged in creating hundreds of I/O endpoints in part due to the legacy of the IBM PC and Intel's "southbridge"/chipset strategy for holding on to additional margin (aka profits).
Open source hardware is getting to the point where all of these conditions are close to being met, and when they are, it really changes who gets to keep the 'value' that is derived from selling complete systems. It takes it away from the chip maker and moves it toward the system integrator. Perhaps it is surprising but that translates into systems integrators selling systems for less money and making more (or at least the same) profit on them.