How Hardware and Software communicates?

816 views

I still wonder how people manage to create a machine that visualize a graphic to a screen then commands it with a button.
I still wonder how “programming” works through metal/gold/copper
I’m still amaze that people made these stuff

In: Technology

8 Answers

Anonymous 0 Comments

The software is a bunch of electrical charges arranged inside of the hardware. It’s not necessarily “communicating” to the hardware as much as it’s what’s going on inside of the hardware at a given moment. If you want to get a grasp of what’s happening, it’s best to ignore the fancy “how does it make this fancy spreadsheet or play Skyrim” and go back to basics: How do we get a computer to represent numbers and do basic stuff with them like adding? Once you see that it’s fairly easy to imagine how that scales up.

A very simple demonstration is made [in this excellent video](https://www.youtube.com/watch?v=lNuPy-r1GuQ) that demonstrates how you can make a basic calculator with dominoes. It’s the same principle as a computer uses, but it replaces transistors (little electrical switches) with dominoes knocking each other over. It doesn’t demonstrate all the complexity involved in a full computer, but gives a good flavor of what’s happening.

If you have a few hours to burn and know how breadboards work (a pretty easy thing to look up on Google or Youtube) you can watch Ben Eater demonstrate [how to build an 8-bit computer from scratch in this playlist](https://www.youtube.com/playlist?list=PLowKtXNTBypGqImE405J2565dvjafglHU). If you want to see how that translates to displaying graphics on a monitor he has a short series where he shows how to build a simple (and not very good) video card in a short series that begins with [this video](https://www.youtube.com/watch?v=l7rce6IQDWs).

The tl;dr of the series is that there are instructions that can be hard-wired into the CPU, which we represent as binary numbers. That number is represented by either having voltage on a wire or not, so a 4-bit number might be hot, cold, hot, cold (1010 or 9). When those voltages are applied to the CPU wires it triggers the hardwired arrangement of transistors to execute whatever the 1010 instruction is, which the CPU manufacturers have determined. This works just like the dominoes example I explained earlier. You’re telling the CPU to “knock over that particular arrangement of dominoes” which then turns on some arrangement of output wires from the CPU that gives you the answer to your math problem or sends a signal to some other part of the computer to do something. The input wires from the CPU are connected to the RAM chips (actually a bus on the mobo I believe, but let’s keep it simple). The RAM is holding the series of instructions as charges inside of capacitors (or other methods, again keep it simple). Those charges in the capacitors *are* the software.

You are viewing 1 out of 8 answers, click here to view all answers.