3 ms·
"software is the operational part of a device that can be copied and changed in a computer; hardware is the operational part that can't be. This is the right wa
by NTDF9 12y ago
"software is the operational part of a device that can be copied and changed in a computer; hardware is the operational part that can't be. This is the right way to make the distinction because it relates to the practical consequences."
I disagree.
Operation of computers cannot be classified simply into hardware and software. There are 3 important parts:
- Hardware
- Software
- The interface (basically the instruction set)
Another way to view ISAs is like a "Contract" between hardware and software. Hardware promises that certain instructions will provide certain behavior. Software acknowledges this and uses these instructions to build software on top of it.
- olalonde 12y agoFPGAs are not processors and don't have "ISAs".
- ericfontaine 12y agoAs mentioned earlier, FPGA's do not fit this 3-part distinction. In addition, CPU microcode doesn't fit this distinction, as the microcode is software (not hardware) that is hidden behind the ISA's interface. Also, I can think of computers that only have hardware and data input (without any programs or instruction set). Basically number crunchers that run a fixed program (e.g. DSP's or non-general GPU's that perfom a specific function), with only the data input that can change. You bring up a good point by acknowledging "The Interface". But I would reclassify into a different set of parts, something along the lines of: "Interface" - "Implementation". I/O can be programs and/or data that interface with the implementation which can be hardware and/or software, or another whole computer. (This is potentially recursive classification, so it can include virtual machines.)