Skip to main content
130 votes

What is meant by the phrase “Software can replace hardware”?

I am surprised nobody mentioned yet one of the most glaring examples: software-defined radio. If you took a present-day smartphone back in time some 50 years and showed it to a competent engineer ...
Viktor Toth's user avatar
  • 1,000
95 votes
Accepted

How does a single thread run on multiple cores?

The operating system offers time slices of CPU to threads that are eligible to run. If there is only one core, then the operating system schedules the most eligible thread to run on that core for a ...
Erik Eidt's user avatar
  • 34.4k
42 votes

What is meant by the phrase “Software can replace hardware”?

Consider this circuit: It is a Flip Flop, aka a Bistable Multivibrator. It can be replaced with this code: static bool toggle; if (toggle == true) { lblTop.BackColor = Color.Black; ...
Robert Harvey's user avatar
32 votes
Accepted

Why does Mike Pound measure his computer's computational ability by its graphics cards, and not its processors?

Mike Pound obviously values the computational ability of the graphics cards higher than the computational ability of the CPUs. Why? A graphics card is basically made up of MANY simplified ...
Maybe_Factor's user avatar
  • 1,391
29 votes

How does a single thread run on multiple cores?

There is no such thing as a single thread running on multiple cores simultaneously. It doesn't mean, however, that instructions from one thread cannot be executed in parallel. There are mechanisms ...
Frax's user avatar
  • 1,864
29 votes

How does a single thread run on multiple cores?

summary: Finding and exploiting the (instruction-level) parallelism in a single-threaded program is done purely in hardware, by the CPU core it's running on. And only over a window of a couple ...
Peter Cordes's user avatar
28 votes

What is meant by the phrase “Software can replace hardware”?

It means exactly what it sounds like. A particularly famous example is the Disk II Drive designed by Steve Wozniak for the Apple II: The chief innovation was making the controller compact by using ...
8bittree's user avatar
  • 5,666
11 votes

What is meant by the phrase “Software can replace hardware”?

Another field in which this is true is synthesisers. Early synthesizers were 100% analog hardware that generated waveforms directly then modified them via circuitry (filters, amplifiers, etc.). It ...
Joe McMahon's user avatar
11 votes
Accepted

What role did hardware improvements have in the development of modern languages (eg Python / Java)?

No, the available hardware resources do not seem to have a significant impact on programming language design. Garbage collection was not an innovation by 90's languages. Instead, it was available ...
amon's user avatar
  • 135k
10 votes

How does the Base Address Registers (BARs) in a PCI card work?

This question should be moved to stackoverflow. Maybe someone will do that. Am I correct? Essentially, yes. Each BAR holds the address of a communication area. This address can be set and read ...
Erik Eidt's user avatar
  • 34.4k
8 votes
Accepted

What does "data bus control" mean?

Yes. The DMA controller takes ownership of the bus for the duration of the transfer. That said, I feel obliged to point out that at least on PC-based machines, DMA controllers have been almost ...
Jerry Coffin's user avatar
  • 44.7k
7 votes

Why running threaded algorithms with exact number of cores the machine has, is faster than anything else?

Some of the many things that may or may not be relevant include: if the threads use all CPU time they're given, or are constantly blocking/unblocking (e.g. for file IO, time delays, mutexes, ...) ...
Brendan's user avatar
  • 3,995
7 votes
Accepted

How data is accessed in Memory-Mapped I/O?

So basically you access the device controller registers through memory. Not exactly, which is why the diagram in the question doesn't quite depict memory-mapped I/O. Memory-mapped I/O uses the same ...
Blrfl's user avatar
  • 20.4k
7 votes
Accepted

How is it possible to have limitless availability of threads while only having a finite number of physical processing units?

A processor with 2 cores operating at 1 kHz can execute 2000 commands per second, right? Not quite. For the simplest processors, that might be true. But many processors can can execute multiple ...
8bittree's user avatar
  • 5,666
7 votes

How are electrons moved in processors/CPU?

The symbol below represents a transistor, the fundamental element of any modern computing device. It acts as a switch; current (the movement of electrons) flows from the bottom wire to the top wire ...
Robert Harvey's user avatar
6 votes

What does "address space" means when talking about IO devices?

An Address Space is simply a range of allowable addresses. An I/O address is a unique number assigned to a particular I/O device, used for addressing that device. I/O addresses can be memory-...
Robert Harvey's user avatar
6 votes
Accepted

Why do disks write data in chunks of page size?

That's due to the mechanics. A disk is a surface which rotates around its axis at a high speed (in reality several surfaces). The surface is divided into concentric tracks, and a motor controls the ...
Christophe's user avatar
  • 80.6k
6 votes

Is it possible to write unit tests for embedded systems with no prior embedded programming knowledge?

I had been programming embedded systems for a while. I think the key thing you need to write good unit tests for embedded systems is that you need to have a clean interface for accessing hardware. If ...
Ken Hung's user avatar
  • 188
6 votes
Accepted

How to show fluctuating data smoothly and accurately?

As @amon already noted, domain knowledge may help to find an appropriate function. For a vehicle tank you need to consider two types of value change: slow fuel consumption and fast fill. There are ...
Hans-Martin Mosner's user avatar
5 votes

What is meant by the phrase “Software can replace hardware”?

A comparison between the arcade game Tank (circa 1976) and the home console game Combat (1977) yields a nice example of how software could replace hardware even 40 years ago. The arcade game Tank (...
supercat's user avatar
  • 8,609
5 votes

Is it possible for a computer system to have constant/zero CPU load?

Could computer systems theoretically have constant/zero/minimum CPU load ? Of course they can, theoretically. There are three scenarios that I can think of: Temporary zero CPU load when waiting for ...
Mike Nakis's user avatar
  • 32.7k
5 votes

OO software design for interfacing hardware

You mentioned COM ports, so I'll specifically address that case. Designing and structuring classes around hardware interfaces to maximize encapsulation. There are two broad ways to utilize ...
RubberDuck's user avatar
  • 9,021
5 votes

Why does Mike Pound measure his computer's computational ability by its graphics cards, and not its processors?

Check out https://developer.nvidia.com/cuda-zone (and google cuda nvidia for lots more info). The cuda architecture and high-end graphics cards are pretty widely used for desktop supercomputers. You ...
John Forkosh's user avatar
5 votes

What does "address space" means when talking about IO devices?

The basic idea is pretty simple: a chip can have one bus to connect to memory, and a second bus to connect to I/O devices--or it can share a single bus between the two. In practice, even a CPU that ...
Jerry Coffin's user avatar
  • 44.7k
5 votes

Are design principles of functional programming languages and current hardware (register-machines) contrary?

Functional programming is not inherently inefficient. There is no reason why the language semantics have to closely match the underlying execution model, although a closer match certainly makes ...
amon's user avatar
  • 135k
5 votes
Accepted

API and motherboard

You're confusing two fairly different realms of the overall computing system. APIs are fairly high level constructs, built over many layers of abstraction. Motherboards and CPUs are way, way down ...
whatsisname's user avatar
  • 27.7k
5 votes

What is hardware debugging?

Debugging HDL normally has 2 major steps after just looking at the code. Analysing the logic: this is normally done but simulating the behaviour of the hardware and the usual software process kicks ...
ANone's user avatar
  • 311
5 votes

Can we reliably use unaligned scalars on contemporary hardware?

This is really architecture-dependent. No processor will just crash, but some architectures will raise exceptions for unaligned accesses. The performance overhead from unaligned accesses (if allowed) ...
amon's user avatar
  • 135k

Only top scored, non community-wiki answers of a minimum length are eligible