From a programming standpoint the two are often used interchangeably. Even on
a single-core CPU, the pipeline means that you can have several things happening
during the same clock cycle. It's also common to think and talk in terms of
multiple threads executing simultaneously even on a single-core system, they
can't physically do that but you still think and talk about them as if they
could because if you don't you end up with subtle bugs when the code is run on a
multi-core system. I've never in a couple of decades of doing software
development seen a major distinction made between "concurrently" and
"simultaneously".
Part of it's a corollary to a programming adage that
the proper counting sequence is zero, one, many. It's that things either occur
exactly simultaneously or not, and if it's "not" you can't know by exactly how
much "not". Oh, and things won't happen exactly simultaneously, ever, due
to the limits on how fast signals propagate in electronic circuits. Unless, of
course, you're gambling that two things will never happen exactly
simultaneously, in which case Murphy will pretty much guarantee they will
line up exactly just so he can watch the pretty fireworks as your software blows
up. So software engineers tend to to get too hung up on whether things happen at
exactly the same time or not, because we're trying to write code that works when
the time delta between two things is anywhere in the range
(-∞,+∞). [ Reply to This | Parent | # ]
|