So I'm reading Introduction to computing systems:From bits and gates to C and beyond, and the author states that a CPU is the mechanism that

...directs the processing of information. Which is figuring out what task should get carried out next

My question is: what exactly does he mean when he says that a processor "figures out" the next task that the computer has to carry out? Do we have a model for this from a software perspective?

The way that I currently understand this statement is that by "figuring out", he's referring to the Control Unit, from the Von Neumann model of a stored program computer, but I know there's different computer architectures out there. The author implying that the a computer is essentially a CPU in the same paragraph just adds to my confusion.

We have used the word computer many times in the preceding paragraphs, and although we did not say so explicitly, we used it to mean a mechanism that does two things: It directs the processing of information and it performs the actual processing of information. It does both of these things in response to a computer program. When we say "directing the processing of information," we mean figuring out which task should get carried out next. When we say "performing the actual processing," we mean doing the actual additions, multiplications, and so forth that are necessary to get the job done. A more precise term for this mechanism is a central processing unit (CPU), or simply a processor.


Given that this is an introduction, I wouldn't get too concerned about the wording. It's normal to describe things in general terms, and then go into specifics later.

In a typical computer system, everything ultimately happens because some program running in the CPU made it happen. Even with external events such as interrupts (e.g. someone typed on a keyboard, or a network packet arrived), it is software's responsibility to decide what that means.

Of course, the central processing unit isn't necessarily the only processing unit that you have to think about. Modern peripherals (e.g. DMA controllers, network adapters, USB hubs, monitors) tend to be quite "smart", and are often fully-realised computers in their own right.

For now, understand that the central processing unit is the programmable processing unit that a) directs the behaviour of the system as a whole, and b) is where general-purpose computation happens. This picture can be modified (e.g. to account for coprocessors) as you learn more.

  • 1
    $\begingroup$ So basically take the "figuring out which task should be carried out next" with a grain of salt because it's ambiguous. Got it. $\endgroup$ – lmn32 Mar 16 at 0:36
  • $\begingroup$ By the way, I separated those two tasks (directing the system and running general-purpose software) because they're logically distinct, and may in fact be somewhat distributed even in a symmetric multiprocessing environment. As a little fun factoid, the XBox One has 8 CPU cores, only 7 of which are available to the programmer. The other one is dedicated to running the operating system, hardware device drivers, etc. $\endgroup$ – Pseudonym Mar 16 at 0:43
  • $\begingroup$ ultimately happens because some program running in the CPU made it happen is not the solid state physicist's notion of ultimately. Or the philosopher's, musing about intelligence and everything. $\endgroup$ – greybeard Mar 16 at 6:45
  • 1
    $\begingroup$ @greybeard I think what Pseudonym's getting at is that the first like 2 chapters of most textbooks don't matter because they're very ambiguous. $\endgroup$ – lmn32 Mar 16 at 18:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.