Talk:Central processing unit: Difference between revisions

From Citizendium
Jump to navigation Jump to search
imported>Stephen Ewen
imported>Stephen Ewen
Line 75: Line 75:
I actually think the article reads rather well, but you're right that this section is likely to be a bit forbidding to the reader with no exposure to computer architecture. But a perfectly reasonable response is to ask whether every article should be expected to try and explain everything in elementary terms. It's perfectly reasonable to say the answer is ''no''. Maybe this article is going to be tough going, but is that really so terrible? Someone else can always come along and write an overview article. The obvious counterargument is that an article titled Central processing unit is likely to be where a lot of people will start reading. But even so, if we insist that authors always begin from ground zero, authors will start leaving in droves, either from burnout our out of sheer boredom. Having said that, examples or brief explanations could certainly help. Carrying out instructions takes time, so if the processor starts a division and has other opertations not depending on the result of that division that can be started while waiting for the division to complete, then out of order execution can save time. Similarly, adding one to the contents of a register is very fast. It may be wise to continue the process of incrementing a value in a register (without destroying information of course) even if the instruction to increment it has not arrived. The reason is that this is a common operation with counters, and it can save time (on the average) to guess that a counter is just being incremented and perform that operation "speculatively" even if when the next instructions actually arrive, it turns out that there was no need to increment that value any further, so the effort was wasted. In other words, instead of waiting and doing nothing, it can be more prudent to do something that may or may not turn out to have been necessary in the end. [[User:Greg Woodhouse|Greg Woodhouse]] 15:07, 17 May 2007 (CDT)
I actually think the article reads rather well, but you're right that this section is likely to be a bit forbidding to the reader with no exposure to computer architecture. But a perfectly reasonable response is to ask whether every article should be expected to try and explain everything in elementary terms. It's perfectly reasonable to say the answer is ''no''. Maybe this article is going to be tough going, but is that really so terrible? Someone else can always come along and write an overview article. The obvious counterargument is that an article titled Central processing unit is likely to be where a lot of people will start reading. But even so, if we insist that authors always begin from ground zero, authors will start leaving in droves, either from burnout our out of sheer boredom. Having said that, examples or brief explanations could certainly help. Carrying out instructions takes time, so if the processor starts a division and has other opertations not depending on the result of that division that can be started while waiting for the division to complete, then out of order execution can save time. Similarly, adding one to the contents of a register is very fast. It may be wise to continue the process of incrementing a value in a register (without destroying information of course) even if the instruction to increment it has not arrived. The reason is that this is a common operation with counters, and it can save time (on the average) to guess that a counter is just being incremented and perform that operation "speculatively" even if when the next instructions actually arrive, it turns out that there was no need to increment that value any further, so the effort was wasted. In other words, instead of waiting and doing nothing, it can be more prudent to do something that may or may not turn out to have been necessary in the end. [[User:Greg Woodhouse|Greg Woodhouse]] 15:07, 17 May 2007 (CDT)


:I don't think the choice is either/or here but ''both''. The choice is between whether articles will be ''layered'' or not, i.e., whether they will explain enough material in elementary terms so the article is a university-level introduction to ''both'' geeks and non-geeks.  By way of analogy, consider the topic "democracy". An excellent article on the topic should be accessible to people with little experience in the matter, ''as well as'' be meaningful to those seasoned in its exercise and theory.  Granted, that is both an art and an acquired skill. Yet it is one to which we should strive for reasons of both self-expansion and for the sake of having our knowledge and writing reach a maximimal audience. Thankfully, no one person need do that alone.  That's why we collaborate. :-) ---[[User:Stephen Ewen|Stephen Ewen]] 16:57, 17 May 2007 (CDT)
:I don't think the choice is either/or here but ''both''. The choice is between whether articles will be ''layered'' or not, i.e., whether they will explain enough material in elementary terms so the article is a university-level introduction to ''both'' geeks and non-geeks.  By way of analogy, consider the topic "democracy". An excellent article on the topic should be accessible to people with little experience in the matter, ''as well as'' be meaningful to those seasoned in its exercise and theory.  As an educator, I know that is both an art and an acquired skill, and it is not always easy. Yet it is one to which we should strive for reasons of self-expansion/improvement, and for the sake of having our knowledge and writing reach a maximimal audience. Thankfully, no one writer need do that alone.  That's why we collaborate. :-) ---[[User:Stephen Ewen|Stephen Ewen]] 16:57, 17 May 2007 (CDT)

Revision as of 16:01, 17 May 2007


Article Checklist for "Central processing unit"
Workgroup category or categories Computers Workgroup [Categories OK]
Article status Developed article: complete or nearly so
Underlinked article? No
Basic cleanup done? Yes
Checklist last edited by David Martin 09:50, 14 May 2007 (CDT)

To learn how to fill out this checklist, please see CZ:The Article Checklist.






Hi Matt, thanks for importing an article from WP that you wrote. Can I hope that you'll be working on it here at least as much as there? Also, if anyone else made any other edits, we must check that "Content is from Wikipedia?" box. --Larry Sanger 13:23, 16 February 2007 (CST)

Of course. I'm going to remove a lot of red links that I don't think will have articles here in the near future and try and clean up some of the templates that don't exist on CZ. I'm also importing the images it uses that can be used here. I did actually check the box you mentioned in the original import, but it doesn't automagically stay checked in subsequent revisions. Do I need to manually check it for each revision I commit here (assuming that these subsequent revisions are applied on CZ exclusively)? -- Matt Britt 13:32, 16 February 2007 (CST)

Some changes have been done to the article to simplify the summary of the definition, move the CPU operation section above the history section for better visibility, and restructure the CPU operation section for the purpose of a more concise description. Also, the terms instruction set architecture and program counter have been given their own entries and their ref tags removed from the main body of this article. None of the core information has been changed; simply reworded in more concise terms to allow for an easier read. No changes have been made to the history and implementation sections, as they are largely the advanced explanations of the term and need no simplification. Thanks! --Dominic DeStefano 16:03, 30 March 2007 (CDT)

Wikipedia Status?

Can we get some clarification on the article status vis a vis Wikipedia? Does it need to be marked or not? Greg Woodhouse 11:13, 14 May 2007 (CDT)

HUGE article

Can this article could be broken out a little more? On CZ the policy is more of a "layman's definition" on the main article, and if someone wants to dig deeper they can. Maybe History of the CPU, CPU Manufacturing, CPU Design and Implementation etc. need to get broken out into their own articles? --Eric M Gearhart 16:01, 8 April 2007 (CDT)

I'm not sure it's necessary. The article seems rather accessible to me, covering the fundamentals of processors in enough depth to be of value to a layperson, without using a great deal of jargon or requiring specialist knowledge to understand. Greg Woodhouse 10:51, 14 May 2007 (CDT)
I should add that I think there is plenty of room for subarticles such as those you mention. In fact, I had originally thought that such things as RISC vs. CISC processors, multi-core processors would have been covered here, but it may be more appropriate to go into detail in other articles. Greg Woodhouse 11:05, 14 May 2007 (CDT)

history of computing

We are starting work on history of computing, and if no one objects, I might move the history part of this somewhere to match the style we're using there. The contents of this history section of this article is much more about computers and computer architecture as a whole than just about the CPU part of a computer. It's useful material (thanks to those who created it).Pat Palmer 09:07, 12 May 2007 (CDT)

Approval nomination

We still need clarification on the WP issue, but this article seems accessible, providing reasonably good coverage of the topic at an appropriate level, and quite stable. I'm going ahead and nominating it for approval. Nice work. Greg Woodhouse 11:25, 14 May 2007 (CDT)

I'd rather wait and not approve this yet. The corpus of Computers Workgroup articles is still in flux. A lot of this information crosses over with the information in computer architecture (or, it ought to). I also think the article is too long, and would benefit from having some topics broken out into subtopics. Finally, it takes a lot of work to comb through an article getting it ready for "Approval". I frankly would rather any editors/authors we have spend their time helping us grow the corpus of related articles and help stabilize them into a working form for the long run. Temporarily snapshotting an article by "approving" it will make this work of seeking the best inter-article relationships more awkward. I find myself constantly arguing against seeking early approval. This article, though full of good material, is far from as good as it could be. Finally, I don't know that we have enough deep experts working in Citizendium to approve this particular article. Processor architecture is a huge topic and, although this is a very good start, I don't feel that it's done yet. Sorry to sound like a party pooper :-( Pat Palmer 11:49, 14 May 2007 (CDT)
If it seems "stable", that's probably because there are not enough authors active in the area yet (in my opinion). I'd work on it but can't, right now, for lack or time. There are articles I feel are more urgent. I know enough to work on it, but I really want to get cracking on Java and .NET, which are where I'm actively working these days. Pat Palmer 11:52, 14 May 2007 (CDT)

grooming for approval

I'm starting to pick at this article to get it ready for approval, since the Computers Workgroup seems to strongly desire to get an article approved! Pat Palmer 12:43, 14 May 2007 (CDT)

let's break out history part

I would come closer to finding this ready if we could break out the history section into a new article, as I am beginning to recommend as a general strategy at CZ_Talk:Computers_Workgroup#need_to_break_out_history_parts_from_some_articles . If no one objects, that's what I'd like to do. That allows us to deal with the potential duplication which is happening across articles when authors start writing about the history of a technology. I think it will be much easier to agree on the current technology description if we break out the history, and also, that will help us organize the relationships for all the history of computing type articles. Pat Palmer 12:24, 14 May 2007 (CDT)

I just did it. Pat Palmer 12:43, 14 May 2007 (CDT)

Further reading

I think the pipelining and SIMD links under further reading should become references instead. Pat Palmer 12:43, 14 May 2007 (CDT)

Endnotes need to be changed to references

The current endnotes need to become references linked to particular sentences of the text. It is confusing to use both endnotes and references, and other articles mainly use references. Let's stick with one style. However, it's going to be tedious to convert them :-( Pat Palmer 12:46, 14 May 2007 (CDT)

Synchronous operation

I'm not sure that it's accurate to say that most CPUs operate synchronously. Operations initiated on one clock cycle (such as reads from memory) may take multiple cycles to complete. Optimizations such as pipelining (which are commonplace nowadays) are also highly asynchronous. Greg Woodhouse 13:36, 14 May 2007 (CDT)

Maybe it's apples and oranges; I think pipelines usually stick registers in between all the stages, so the pipeline is effectively prevented from being flow-through (combinatorial). Pat Palmer 13:42, 15 May 2007 (CDT)
P S - I didn't write that stuff and haven't spent much time reading it. But it seems like it's better not to say something that may be uncertain. I also was a little startled by the sentence that you noticed. Pat Palmer 13:43, 15 May 2007 (CDT)
On the other hand, it's probably harmless to say that (though maybe it doesn't add much but just confuses people). There are always conbinatorial bits; the ALU itself will usually be combinatorial. But everything in a CPU is pretty much clocked and controlled by the control unit so that things happen in the right order. It's a finite state machine, and so it has to work that way by definition. And finally, it is really hard to design asynchronous circuits. I've only heard of that being done for very small widgets. Pat Palmer 13:45, 15 May 2007 (CDT)

Von Neumann architecture

You might want to check on definitions of "Von Neumann" architecture (and please don't use Wikipedia as the source in this case). Doesn't it mean having program and instructions AND data in one sequential physical memory? As opposed to a "Harvard architecture" (from the Harvard Mark I) in which there are two physical memory banks, one for instructions, and another for data? I'm not sure the definition of this in the article is clear at present. Pat Palmer 22:32, 16 May 2007 (CDT)

P.S. - The choice between the two (Von Neumann type arch. vs. Harvard) has several important implications that could be discussed to good purpose, such as that it is not possible to tell by looking at a set of bits whether that set of bits represents data, an address, or a machine instruction (in Von Neumann where it's just one memory). But with separate memories it is not possible to confuse instructions and data (eliminating some possible virus causes, for example). Some machines today do still have separate memories (at least, some SPARC/Solaris machines do). Pat Palmer 22:46, 16 May 2007 (CDT)

very dense information; can we explain these terms before starting to use them?

This sentence: It also makes hazard-avoiding techniques like branch prediction, speculative execution, and out-of-order execution crucial to maintaining high levels of performance. contains several advanced concepts. The section goes on to discuss these without attempting any kind of simple explanation, to a relatively non-expert reader, about what they are. In other words, at present it seems to be written for people who already understand these concepts. Would it be possible to rewrite this for people who don't yet understand them but would like to? Even though there are hot links to a subarticle (yet to be written), it might be helpful to include a quickie overview, here, of what each term means. Pat Palmer 22:38, 16 May 2007 (CDT)

I'm struggling with it. I'd be considered a power-user, and I've taught Intro to Computers. Stephen Ewen 23:18, 16 May 2007 (CDT)

I actually think the article reads rather well, but you're right that this section is likely to be a bit forbidding to the reader with no exposure to computer architecture. But a perfectly reasonable response is to ask whether every article should be expected to try and explain everything in elementary terms. It's perfectly reasonable to say the answer is no. Maybe this article is going to be tough going, but is that really so terrible? Someone else can always come along and write an overview article. The obvious counterargument is that an article titled Central processing unit is likely to be where a lot of people will start reading. But even so, if we insist that authors always begin from ground zero, authors will start leaving in droves, either from burnout our out of sheer boredom. Having said that, examples or brief explanations could certainly help. Carrying out instructions takes time, so if the processor starts a division and has other opertations not depending on the result of that division that can be started while waiting for the division to complete, then out of order execution can save time. Similarly, adding one to the contents of a register is very fast. It may be wise to continue the process of incrementing a value in a register (without destroying information of course) even if the instruction to increment it has not arrived. The reason is that this is a common operation with counters, and it can save time (on the average) to guess that a counter is just being incremented and perform that operation "speculatively" even if when the next instructions actually arrive, it turns out that there was no need to increment that value any further, so the effort was wasted. In other words, instead of waiting and doing nothing, it can be more prudent to do something that may or may not turn out to have been necessary in the end. Greg Woodhouse 15:07, 17 May 2007 (CDT)

I don't think the choice is either/or here but both. The choice is between whether articles will be layered or not, i.e., whether they will explain enough material in elementary terms so the article is a university-level introduction to both geeks and non-geeks. By way of analogy, consider the topic "democracy". An excellent article on the topic should be accessible to people with little experience in the matter, as well as be meaningful to those seasoned in its exercise and theory. As an educator, I know that is both an art and an acquired skill, and it is not always easy. Yet it is one to which we should strive for reasons of self-expansion/improvement, and for the sake of having our knowledge and writing reach a maximimal audience. Thankfully, no one writer need do that alone. That's why we collaborate. :-) ---Stephen Ewen 16:57, 17 May 2007 (CDT)