Reducing Inefficiency of Computers

Knowing about efficiency is one thing, increasing it is another

Increasing efficiency is extremely important in modern day computers. This is done in a variety of ways, from the design of components, to the process size, to the cooling solutions. I have previously talked about cooling, now I will talk about the design of components.






source




Increasing Efficiency


Computers would be nothing without the actual design of the circuits that make them up. These circuits are incredibly complex. The tasks computers must handle get more varied by the day, and finding the most efficient ways to handle them can take massive teams of engineers. The basis of these operations is a transistor. A transistor is an electronic device that manipulates a flow of electricity, they usually have three connection points. These connections are a source, a transistor, and a gate. The source provides the electricity, but it is only allowed to go through to the sink if the gate is powered as well. By combining these we can make a simple logic gate. Logic gates typically have two inputs and one output. The most simple logic gate is an “and” gate, where both inputs must be on for the output to be on, this can be achieved with a transistor alone. An “or” gate can be achieved with 3 transistors. Two are used for “and” inputs, and those inputs are used as the gate in the third transistor. A CPU can have billions of these transistors, AMD’s Ryzen series has around 4.8 billion. There is much more to CPU’s than just raw data processing, there are different modules that do things like hold data for later interactions. This adds even more layers of complexity, those 4.8 billions transistors each have their own role to play after all.
[1] [2]

Increasing the efficiency of the circuits within CPU’s themselves happens all the time. CPU actions are not instant, but are instead defined by power cycles, the max cycles per second varies even between individual CPUs, and even more so between different designs. Typical desktop grade CPUs can usually hit at least 4 billion of these cycles a second. With each of these cycles a CPU processes different commands. The speed of this is measured in instructions per cycle. Between each generation of CPUs there is almost always a difference in instructions per cycle, or IPC for short. One of the more simple operations within a CPU is floating point operations, which involve multiplying, dividing, adding, and subtracting numbers with something after the decimal point. A modern CPU can do this multiple times in one cycle, AMD ryzen can do this 16 times each cycle, for example. The raw output of a CPU isn’t all that matters, the time it takes to move data around and wait for the next command has a massive impact as well. Not every cycle will be filled with actions, moving data from ram can takes hundreds of these for example.
[3]

Raw efficiency isn’t enough. As CPUs get more advanced so does their predictive technology. When it takes a long time to load information from memory, loading it before you actually need it can save a massive amount of time. This is done through the aid of something called an instruction pipeline. An instruction pipeline is what helps keep a CPU as busy as possible during its execution by breaking down tasks into different steps. These individual steps can often be done in different orders for a different level of efficiency in different situations. Branch prediction is one example of this. Branch prediction involves a CPU guessing what to do before an if/else statement. In these statements two completely different pieces of code may be executed based on the inputs, so efficient prediction is important. Some forms of branch prediction will start computing both possibilities, and then discard the incorrect one once it is determined.

[4]

The only way to increase efficiency in this area is to use the newest and most efficiently made components made by professionals, there isn’t much you can do personally that affects this. There are often incremental improvements over time, but these have a limit. At one point one of the best ways to get more out of a CPU was to find a way to increase the clock speed generation over generation. This seems to be slowing down, so new technologies are becoming a necessity, like AMD’s infinity fabric, which allows inter-core communication of CPU’s to happen much faster, and scale better. Instead of one massive CPU it can be split into smaller packages that can scale. One way to increase efficiency is reduce the overall amount of components besides a CPU that are needed, two 8-core CPUs are less efficient overall than one 16 core CPU with that technology. [5]




Thanks for reading, Subscribe and Upvote for more science!

[1] [2] [3] [4] [5]

Sort:  

The use of SSDs in place of the HDDs reduces the energy consumption of PCs and makes them become more efficient.

the speed increase part of it is probably more important

Yes, it is sure faster and conserves battery better. The CPU type and operating OS plays a major role too.

Great post with much effort in creating it !

Good article!

Another important topic is reducing software inefficiencies and bloat. I think that many applications use outdated data formats and inefficient storage methods. Many modern APIs use unnecessary bandwidth.

If software was more efficient, we would gain a lot of processing power. Software developers are getting lazy because of the increased computing power & bandwidth. Their applications work nicely even with the ineffiencies. But on a larger scale, they end up wasting huge amounts of CPU time globally, causing lost energy and pollution on the side.

Also, today's applications often have resource-intensive features that no-one seems to want. Just check the task manager of your OS to see what processes are running. That will prove my point.

Maybe there should be energy ratings for programs, just like there are energy ratings for refrigerators :D

and fr a lot of OS, like windows, the bloatware and extra programs are not there because of some random choice of programmers, it is there because of capitalism so thats the source of the inefficiency

well, devs are limited. I would rather have 10 useful and inefficient programs than 1 useful and very efficient one

good info can you tell me which pcb is good for making projects

what is that?

From our conversation-debate some 'time' ago in relation to capital & its foundationally violent effects; enacted by quasi-'opposing' ideologies (syndicalism/'anarcho-capitalism') in service to imagistic fetishistic paganism - 'my' previous position largely renounced/essentially altered, so dialectical 'tensions' perhaps now (almost) zero? ...

https://steemit.com/history/@outtayourbox/when-intervention-fails-or-essay-part-1

the basis of communism is abolishing private property, which is the basis of capitalism. They are complete opposites in every possible way.

english please

.

I think I would need more details on the group itself, you mind talking to me personally?

They are running a comedy platform, and I talked to them about it. It seems very problematic and is willing to call punching down to minorities funny.

a trans-man or a trans-women has the right to say, you're branding and name calling, but that's your right until challenged

we usually consider it offensive to use it as a noun, you going to fix your statement?

i like to be respectful what pronoun or how do you recommend i fix my statement, i mean this sincerely and i don't take or give any excuses just because english being my 3rd language

lol suddenly worse english after I called you out. I mentioned that using trans/transgender as a noun is often considered highly offensive in the discord conversation too, you really think the people here are that stupid? Impressive. It's funny how you even have to mention you used it as a noun in the actual comment and still pretend you don't know what you did wrong

https://en.wiktionary.org/wiki/transgender