Talk:Microprocessor Design/Computer Architecture

CPU part picture
I was thinking to create a picture about the main component inside the CPU plus its connection to memory. It would contain the data bus, address bus, arithmetic unit plus program counter and so on. Ervinn 02:32, 26 January 2007 (UTC)

Something's wrong with endianness!
The error I'm pointing out is so common that I've always been completely unable to clearly know the difference between each endianness. I mean, it's clear that the in-memory representation of multi-byte data on a LE computer will look reversed when compared with a BE computer; however, the definition given here (as well as in every other reference document I've consulted) is equivalent for both cases, so one of the definitions must be wrong. To put this issue clear, according to the definitions given: Computers that order data with the  LS byte in the lowest address  are known as "Little Endian", and computers that order the data with the  MS byte in the highest address  are known as "Big Endian". let's look at what would be putting each machine at the lowest address: the Little Endian machine is putting, as explicitly stated in the definition, the LS byte. For the Big Endian machine, a bit of reasoning is required: it's putting the MS byte in the highest address, so on the opposite (lowest) address it'd be putting the opposite (LS) byte. Hence both machines are puting the LS byte in the lowest address? Something's wrong here. I'd like to fix that myself, but since this error is so common (that thing that is wrong here is, unfortunately, wrong almost everywhere), I don't know which would be the right definition and which the one that has to be fixed.

Suggestion to the author (or to who decides to fix it): make a table showing the storing of a 16-byte (or larger) value in the memory for each case, so ambiguity would completely disappear. For example: 0x--34: MS: 00110011 (0x33) 0x--35: LS: 10101010 (0xAA) The actual data would be 0011 0011 1010 1010 (0x33AA), while interpreted in the other endianness (which one is this and which is the other??) would be 1010 1010 0011 0011 (0xAA33). If somebody can tell me if this example is either Little or Big endian I could fix the article myself (and even add some examples). Actually, since this example doesn't put either the LS byte in the lowest address nor the MS byte in the highest address, it wouldn't be any endianness according to the current definition.

Herenvardo 20:32, 23 September 2007 (UTC)

Yes, too many people are confused by this. I hope you and I can write something that will eliminate the confusion. Your example. increasing address > 0x33(MSB) 0xAA(LSB) to represent 0x33AA is big-endian -- the "big end" (MSB) comes first.

Allow me to quote "ON HOLY WARS AND A PLEA FOR PEACE" by Danny Cohen 1980 :


 * The first word  in  memory  is  designated  as  W0,  by  both  regimes.
 * Unfortunately, the harmony goes no further.


 * The Little-Endians assign B0 to the LSB of the words and B31 is the MSB.
 * The Big-Endians do just the opposite, B0 is the MSB and B31 is the LSB.

It all focuses on which end comes first. Computers that put the least-significant byte in the lowest ("first") address are little-endian. Computers that put the most-significant byte in the lowest ("first") address are big-endian.

I've added a little more explanation to the module. Does it make sense? Does it conform to Cohen's definition? Please do edit that section to make it easier to understand. Certainly we need to say it several different ways -- because too many people are confused, and just saying it once isn't enough to un-confuse them -- but also avoid making it sound more complicated and confusing than it really is. --DavidCary (talk) 17:48, 3 January 2008 (UTC)

"RISC and CISC and DSP" section
I've added another external link to where Phil Koopman's "Stack Machines" book can be read (or downloaded) online at no cost. Please note that he retains copyright & asks people to not pass on their copy but instead refer them to his website. Also, the book has been little changed since 1989, unlike it's subject. Phil's attention has moved on to other subjects, mostly robust OS security.

One reason I added this link is that Jeff Fox, the creator of the Ultratechnology website used in the previous link, died in 2011. I recall some discussion on comp.lang.forth about hosting his website. website.http://groups.google.com/group/comp.lang.forth/browse_thread/thread/622263caccba35b5/a1f9671f53b8cf78?lnk=gst&q=%22Jeff+Fox%22#a1f9671f53b8cf78 According to this, Jeff's lease on the Ultratechnology domain name will run out on May 12th, 2012 & unless the complang.forth can solve the problem link 2 will no longer work.

With another link it's less likely both won't work before someone can replace them. Spyk (discuss • contribs) 05:42, 7 January 2012 (UTC)

Von Neuman, Harvard & Princeton Architectures.
Are Harvard & Princeton architectures 2 different types of Von Neumann architecture (as I suspect) , or are they 3 different architectures?, or is Princeton Architecture an impure Harvard Architecture ?

As I've found in my own writing, we really need better ways of illustrating the hierarchy of categories than size & boldness of text & scored lines.

Also we have to be very careful making statements about the history of ideas;- eg. was Charles Babbage's Analytical Engine, (chiefly conceived but unbuilt by him, partly? built by others), a Von Neumann architecture machine? John nee Janos Von wasn't conceived at that point in time!

Spyk (discuss • contribs) 08:06, 7 January 2012 (UTC)