Can't find a good book on mircroprocessor design

Mothergoose729

Senior member
Mar 21, 2009
409
2
81
I like to do a little independent academic reading. I have looked through all the computer science book in my schools and in other schools libraries and books on computer engineering of microprocessors are incredibly scarce. The ones that I have found are extremely dated, the most recent of any help being from almost 10 years old. I am looking for a good book that can explain different types of units in modern microprocessors (GPUs and/or CPUs) covering everything from logic gates to internal ring bus and multiprocessor dies. I understand that a lot of details of current microarchitectures are still under various forms of NDA, but I know there has to be books out there at least discussing the first athlon and P4 dual cores, and maybe even the 7 and 1900xt graphics from that age. Does anybody know of some good books I can pick up for a little informed reading?
 

theawddone

Member
Sep 1, 2006
55
0
0
Your best bet would be trying to find published papers on those topics, here's a couple that I read for a grad ee digital course I took last quarter, about the P4 microarchitecture and general microprocessor architecture design. They are kind of dated, but still have some interesting stuff in it...hopefully your school has some kind of database you can search for more.

http://docs.google.com/viewer?a=v&q...apdiDV&sig=AHIEtbTLfiLSg3VSAiqD8SpDnsEknKGOXg

http://74.125.155.132/search?q=cach...gn"&cd=1&hl=en&ct=clnk&gl=us&client=firefox-a
 

CountZero

Golden Member
Jul 10, 2001
1,796
36
86
These two books are pretty much standard reading material for comp. arch:

http://www.amazon.com/Computer-Organ...tt_at_ep_dpi_1

http://www.amazon.com/Computer-Archi...2066135&sr=8-3

I haven't seen the fourth edition yet but I have the second and third of that first book. It doesn't hit issues nearly as complex as the quantitative book but gives the flavor for why things are done the way they are and builds up the complexity.

Neither of those is going to start you at logic gates up. For the most part knowing the logic gate/transistor level stuff, while useful, isn't at all necessary to understand processor arch. Actually an understanding of some network concepts is probably more useful for modern systems.

Those two books will give you plenty of background to understand most any research paper and the implications of that research.
 

Mothergoose729

Senior member
Mar 21, 2009
409
2
81
These two books are pretty much standard reading material for comp. arch:

http://www.amazon.com/Computer-Organ...tt_at_ep_dpi_1

http://www.amazon.com/Computer-Archi...2066135&sr=8-3

I haven't seen the fourth edition yet but I have the second and third of that first book. It doesn't hit issues nearly as complex as the quantitative book but gives the flavor for why things are done the way they are and builds up the complexity.

Neither of those is going to start you at logic gates up. For the most part knowing the logic gate/transistor level stuff, while useful, isn't at all necessary to understand processor arch. Actually an understanding of some network concepts is probably more useful for modern systems.

Those two books will give you plenty of background to understand most any research paper and the implications of that research.


I found a copy of the second one for less then 20 dollars and bought it. Thank you for sharing :). I am open to more suggestion. Free online sources?
 
May 11, 2008
21,665
1,294
126
I have this book, translated it means "all about the pentium" by Hans-Peter Messmer. It covers the 386,486,pentium, ppc, mipsR3000, alpha, sparc, transputers. The transistor, memory architectures, memory addressing principles, memory mapping techniques,Risc and Cisc principles, interrupts, dataformats, databuses, pipelining,flags, registers. All the goods. The only drawback is it is in dutch. It seems to be translated from german. The publisher is Addison Wesley. The ISBN number is 90-6789-531-8.

Perhaps this is the english version. It must be updated because the book i have has a copyright remark from 1994.

I think that book would be exactly what you are looking for.
http://www.amazon.com/s?ie=UTF8&rh=i...Messmer&page=1




On Ars technica there are some in depth articles by Jon Hannibal Stokes.
The best way is to search for this name only. If the arstechnica search enigine does not return something relevant , try google to find it on the arstechnica site. Jon stokes has a great way of explaining how things work in a cpu...

Here are a few links, i hope it helps...

http://arstechnica.com/cpu/03q1/ppc970/ppc970-0.html#Introduction
http://arstechnica.com/cpu/03q1/ppc970/ppc970-11.html

http://arstechnica.com/cpu/3q99/k7_theory/k7-two-1.html


http://arstechnica.com/old/content/2004/07/pentium-1.ars
http://arstechnica.com/old/content/2004/07/pentium-2.ars


http://arstechnica.com/cpu/03q1/x86-64/x86-64-1.html


The search results combined :
http://arstechnica.com/search/#jon+hannibal+stokes

And realworldtechnology.com has also a lot of information.
David Kanter also has great articles..
I would like to add a link but the site is busy i think. At the moment i write this it is very slow. I will post a few later.



.
 
Last edited:

Cogman

Lifer
Sep 19, 2000
10,284
138
106
Have a look at the tutorials section of the Hardware Secrets.They have covered on pretty much all the issues.. http://www.hardwaresecrets.com/type/1
... Except for computer architecture. I counted maybe 2 or 3 tutorials that could be considered Engineery. The rest are in the lines of "How to install a video card"

Their DAC article was interesting, but the rest are pretty easy to find using google (That page needs some serious reorganization)
 

CTho9305

Elite Member
Jul 26, 2000
9,214
1
81
These two books are pretty much standard reading material for comp. arch:

http://www.amazon.com/Computer-Organ...tt_at_ep_dpi_1

http://www.amazon.com/Computer-Archi...2066135&sr=8-3

I haven't seen the fourth edition yet but I have the second and third of that first book. It doesn't hit issues nearly as complex as the quantitative book but gives the flavor for why things are done the way they are and builds up the complexity.

Neither of those is going to start you at logic gates up. For the most part knowing the logic gate/transistor level stuff, while useful, isn't at all necessary to understand processor arch. Actually an understanding of some network concepts is probably more useful for modern systems.

Those two books will give you plenty of background to understand most any research paper and the implications of that research.

I recommend the first one (Computer Organization and Design), but I did not like the second one (Quantitative Approach) nearly as much. For circuit stuff (gate/transistor-level), pm recommended "Principles of CMOS VLSI Design" by Neil Weste and Kamran Eshraghian, and I found it interesting and informative (although I may hbe only read individual chapters rather than the whole book... I can probably find the list if you're interested). After you learn about all the circuit techniques used I. The mid 90s, you'll get to be disappointed by the few that still work on modern process nodes ;).
 

theawddone

Member
Sep 1, 2006
55
0
0
Also, I just remembered that I when one of the guys who helped create QPI came and talked at my school he mentioned the only official literature on the topic was available directly from Intel. I tried to find that book specifically (he had it in hand, but didn't catch the title unfortunately) and wasn't able to, but there seem to be quite a few topics covered here:

http://www.mindshare.com/shop/?section=132B067E

edit: actually, looks like that website sells both AMD and Intel literature, its definitely worth checking out if you want to find out about specific architecture implementations, I may buy a book or two from there myself... And I found the book referenced, on the intel site: http://www.intel.com/intelpress/sum_qpi.htm
 
Last edited:

Mothergoose729

Senior member
Mar 21, 2009
409
2
81
Thank you guys so much. I just bought "The Indispensable PC Hardware Book 3r edition" for five dollars on Amazon, and I am definitely going to check out some of the other sources you guys mentioned, especially these books from intel and AMD. If anybody else wants to weight in please do, I am going to book mark this page for later.
 

omghaxcode

Senior member
Feb 8, 2007
376
2
76
I'm a sophomore in compeng at uiuc and this is the book you use for several courses


http://books.google.com/books?id=UC...resnum=6&ved=0CCUQ6AEwBQ#v=onepage&q=&f=false

I really loved it. I don't know if this is the type of thing you're looking for though since it covers mostly an architecture called LC-3 which isn't really in use. LC-3 is similar to real architectures but it is simplified a great deal. If you want to know about computer architectures from the gate level up I highlyyyyyyyyyyy suggest it. If you want specifics on x86 stuff then this is not the book for you.
 

Mothergoose729

Senior member
Mar 21, 2009
409
2
81
I'm a sophomore in compeng at uiuc and this is the book you use for several courses


http://books.google.com/books?id=UC...resnum=6&ved=0CCUQ6AEwBQ#v=onepage&q=&f=false

I really loved it. I don't know if this is the type of thing you're looking for though since it covers mostly an architecture called LC-3 which isn't really in use. LC-3 is similar to real architectures but it is simplified a great deal. If you want to know about computer architectures from the gate level up I highlyyyyyyyyyyy suggest it. If you want specifics on x86 stuff then this is not the book for you.

The link you gave me... is this entire book available online? Seems that way! Thank you.
 

omghaxcode

Senior member
Feb 8, 2007
376
2
76
no there are big chunks missing. it is a google book preview. just check it out there and if you like it, buy it. I really did.
 

Gamingphreek

Lifer
Mar 31, 2003
11,679
0
81
I'm a sophomore in compeng at uiuc and this is the book you use for several courses


http://books.google.com/books?id=UC...resnum=6&ved=0CCUQ6AEwBQ#v=onepage&q=&f=false

I really loved it. I don't know if this is the type of thing you're looking for though since it covers mostly an architecture called LC-3 which isn't really in use. LC-3 is similar to real architectures but it is simplified a great deal. If you want to know about computer architectures from the gate level up I highlyyyyyyyyyyy suggest it. If you want specifics on x86 stuff then this is not the book for you.

OP - You need to start somewhere. You can't just jump in to the middle of a Microprocessor and start from there. You need to start with things like Logic Gates, Finite State Machines, the Von Neumann Architecture in general, CISC vs RISC, Cache Mapping, (etc...) and work your way up.

Ring bus and what not, I am assuming you heard from various articles on reviews and what not. These are not light topics and they require a great deal of understanding to fully grasp the concept (Though they are interesting to learn about).

The LC-3 while aggravating for a variety of reasons is a good starting point. The MIPS architecture is significantly more advanced but a good step up after you have a good feel for the LC-3.

The x86 is NOT the place to start learning. You will get discouraged if you simply start plowing through the architecture without learning other concepts first.

-Kevin
 
May 11, 2008
21,665
1,294
126
I am doing a home(hobby study) on the ARM processor.
I recently bought a development kit based on the SAM7S256. The fun part is the compiler is free. It is the GNU C++ for the arm architecture. There are many free distribution kits for linux and windows and i assume for the mac too. For windows there are free distrubtutions like winarm and yagarto , to name a few. I am creating a version that is a combination of the yagarto and the wilarm tools. And i am writing a win32 program that will automagically create a makefile/linkerfile and perhaps some startup code based on the source and header files provided together with some general settings provided by the user and it is gui based. But it is still a work in progress and not functional at the moment. But i am slowly getting there... But i wonder off...

Since the ARM architecture is relatively easy, it is a great way to upgrade from 8 bitters to full power 32bit(with thumb you get 16 bit). The arm architecture is widely spread, it is for sure here to stay. Has the best mips/watt compared to other processors. It's fast (when compared to other embedded controllers). And it is relatively cheap. I am still at the blinking led stage. IMO learning and in the end being able to use the arm architecture is increasing your value on the market. Plus it is a great way to learn what a compiler/linker actually does. Up until recently i just had a vague idea that a compiler was a step in between from c source to assemble source and then from assembler to machine language instructions for the cpu. But it is a lot more advanced. The GNU compiler is widely documented and there are a lot of free ebooks(in pdf) about the ARM architecture. I am using a controller with the ARM7, maybe not the newest, but it is much fun too learn how the arm designers solved a lot of problems and still keeping the amount of transistors used very low compared to other designs. ARM7 around 30.000 with out cache. Yet it achieves almost 1MIPS/MegaHertz. The arm architecture is a good way to learn about cpu's. I am really falling in love with the way that every instruction can be conditionally executed. It has some very nice features indeed.
Books are cheap and easy to find.

http://www.arm.com/documentation/books.html

I will buy this book pretty soon :

ARM System-on-chip Architecture

In English language, by Steve Furber
Second Edition
published by Addison Wesley
ISBN-10: 0201675196
ISBN-13: 978-0201675191

From the book:

The future of the computer and communications industries is converging on mobile information appliances - phones, PDA's laptops and other devices. The ARM is at the heart of this trend, leading the way in system-on-chip (SoC) development and becoming the processor core of choice for many embedded applications.

System-on-chip technology is changing the way we use computers, but it also sets designers the very challenging problem of getting a complex SoC design right first time. ARM system-on-chip architecture introduces the concepts and methodologies employed in designing a system-on-chip based around a microprocessor core and in designing the core itself. Extensive illustrations, based on the ARM, give practical substance to the design principles set out in the book, reinforcing the reader's understanding of how and why SoC's and microprocessors are designed as they are.

ARM system-on-chip architecture:
presents and discusses the major issues of system-on-chip design, including memory hierarchy, caches, memory management, on-chip buses, on-chip debug and production tests
provides an overview of the ARM processor family, enabling the reader to decide which ARM is best for the job in hand
describes the ARM and Thumb programming models, enabling the designer to begin to develop applications.
covers all the latest ARM products and developments, including StrongARM, the ARM9 and ARM10 series of cores, and the ARM-based SoC components at the heart of Ericsson's Bluetooth technology, the Psion Series 5 PDA and Samsung's SGH2400 GSM handset
includes details on the AMULET asynchronous ARM cores and the AMULET3H asynchronous SoC subsystem.

ARM system-on-chip architecture is an essential handbook for system-on-chip designers using ARM processor cores and engineers working with the ARM. It can also be used as a course text for undergraduate and masters students of computer science, computer engineering and electrical engineering.

Steve Furber has a long association with the ARM, having helped create the first ARM chips during the 1980's. Now an academic, but still actively involved in ARM development, he presents an authoritative perspective on the many complex factors that influence the design of a modern system-on-chip and the microprocessor core that is at the heart.

This book represents the culmination of fifteen years' experience of ARM research and development and of teaching undergraduate, masters and industrial training courses in system-on-chip design using the ARM.


Maybe this can help you understand more about cpu's/ mcu's as well...
 
Last edited:

bobsmith1492

Diamond Member
Feb 21, 2004
3,875
3
81
Ah the good ol' AT91SAM7S... :)

I'll say, though, it's not exactly a simple micro to use; it's very much full-featured which means a lot of registers to set up and check. The interrupt controller is very slick but tricky to set up.

Also, a minor correction - in thumb mode it is still a 32-bit processor; it is only the instruction size that changes to 16-bit, giving you more instructions for the program memory space.

If you need any help with the linker script or makefile or a simple bootloader, I have some code to get you started if you'd like.
 
May 11, 2008
21,665
1,294
126
Ah the good ol' AT91SAM7S... :)

I'll say, though, it's not exactly a simple micro to use; it's very much full-featured which means a lot of registers to set up and check. The interrupt controller is very slick but tricky to set up.

Also, a minor correction - in thumb mode it is still a 32-bit processor; it is only the instruction size that changes to 16-bit, giving you more instructions for the program memory space.

If you need any help with the linker script or makefile or a simple bootloader, I have some code to get you started if you'd like.

You are right about the thumb mode. My thoughts and the text i type is not always in sync. :D
It is indeed no easy processor to start with. But i have experience with Z80 (very long time ago used at school and had a MSX2 at home) and the pic series of microchip. I played with AVR for a short while too before i used the pic. I built a very rudimentary co-operative os (for learning and understanding practices )once for a pic16F690 in assembler :cool: . It had a simple gui on a graphical lcd ), 2 buttons and a rotary button to go through the menu's. It had audio too (used a pdc3312 for tone generation). Then i run out of memory :( before the actual application was finished). It had task switching / and hardwire priority, although higher processes gave up their time slice when there was nothing to do and could use some more cpu time to finish the current task . It was 1 big trade off because of the components i used (all external hardware was connected to a software I2C bus)but i was still amazed how much speed that small 8Mhz 8 bit controller has. If i did not run out of memory i would have continued and finished my idea. Looked for a bigger pic but found out that when i want lot's of memory in a contagious way( and after deciding on a lot of other more important factors too) i had to go to the ARM way, plus it gives me the option to do some advanced things. The ARM will be my first processor where i will also be learning embedded c.



I will remember your offer , thank you in advance.


Although i have a "first try it yourself, then ask questions when you really get stuck" attitude, it is handy to be able to ask some questions to clarify or for confirmation. I have been plowing through some makefile/linker examples and the CDC usb to serial example from atmel and starting to see what all does. Also i am for learning purposes planning to write a bootloader and because i then do no longer need the built in SAM-BA(although it works great, just don't like the 10 second erase time). When i am able to write a bootloader i hope i will have mastered how to execute code from anywhere in the memory space.
 
Last edited:

bobsmith1492

Diamond Member
Feb 21, 2004
3,875
3
81
To be fair, when I said bootloader I meant simply a power-up check that either jumps to a copy of Sam-ba in flash or to your user program; it's a bit crude but works great. I just use a pushbutton input to select which. So, upon reset or power up, if you hold the button the code jumps to Sam-ba and lets you program the chip. Not really a bootloader but it lets you program (over serial or USB) or run your code just fine.
 

Modelworks

Lifer
Feb 22, 2007
16,240
7
76
I am doing a home(hobby study) on the ARM processor.
I recently bought a development kit based on the SAM7S256.

If you want to go further with ARM I highly recommend the beagleboard. It consumes only 2.5 watts power and cost $149 . People already have linux distributions running and even xbox media center is working. Only problem is finding them in stock. The newest revision is C4 , main difference is cpu was upgraded from 600Mhz to 720Mhz.

http://beagleboard.org/
ARM Cortex-A8 microprocessor 720Mhz
HD video capable TMS320C64x+ DSP for versatile signal processing at up to 430MHz
OpenGL© ES 2.0 capable 2D/3D graphics accelerator capable of rendering 10 million polygons per second
2Gb MDDR (256Mbytes)
24 Bit RGB Display interface (DSS)
SD/MMC interface
USB OTG interface
NTSC/PAL/S-Video output
Power management
Serial interface
I2C interface
I2S Audio interface (McBSP2)
Expansion McBSP1
JTAG debugging interface

Connectors:
Stereo Audio Out
Stereo Audio in
SD/MMC 6 in 1 Connector
JTAG Connector
RS232 Header
28 pin header for access to GPIO
Mini AB USB connector
DVI-D
S-Video
USB Power
DC Power
 

bobsmith1492

Diamond Member
Feb 21, 2004
3,875
3
81
How much different is ARM Cortex from ARM7? Is the assembly code the same? I'm afraid we're a bit off-topic here...
 
May 11, 2008
21,665
1,294
126
To be fair, when I said bootloader I meant simply a power-up check that either jumps to a copy of Sam-ba in flash or to your user program; it's a bit crude but works great. I just use a pushbutton input to select which. So, upon reset or power up, if you hold the button the code jumps to Sam-ba and lets you program the chip. Not really a bootloader but it lets you program (over serial or USB) or run your code just fine.

In all honesty , that sounds great. :)
 
May 11, 2008
21,665
1,294
126
If you want to go further with ARM I highly recommend the beagleboard. It consumes only 2.5 watts power and cost $149 . People already have linux distributions running and even xbox media center is working. Only problem is finding them in stock. The newest revision is C4 , main difference is cpu was upgraded from 600Mhz to 720Mhz.

http://beagleboard.org/
ARM Cortex-A8 microprocessor 720Mhz
HD video capable TMS320C64x+ DSP for versatile signal processing at up to 430MHz
OpenGL© ES 2.0 capable 2D/3D graphics accelerator capable of rendering 10 million polygons per second
2Gb MDDR (256Mbytes)
24 Bit RGB Display interface (DSS)
SD/MMC interface
USB OTG interface
NTSC/PAL/S-Video output
Power management
Serial interface
I2C interface
I2S Audio interface (McBSP2)
Expansion McBSP1
JTAG debugging interface

Connectors:
Stereo Audio Out
Stereo Audio in
SD/MMC 6 in 1 Connector
JTAG Connector
RS232 Header
28 pin header for access to GPIO
Mini AB USB connector
DVI-D
S-Video
USB Power
DC Power

You are very right, and i have indeed planned that if i can understand and do some decent ARM programming i will advance for the ARM 9. I have read that the ARM company is busy designing a 2 GHz double core ARM of the very latest arm architecture. May be a new cortex ?
A colleague showed me a board similar as you described, but i felt it was to much at once. Hence my choice for the ARM7. It will be a great study platform.
 
May 11, 2008
21,665
1,294
126
How much different is ARM Cortex from ARM7? Is the assembly code the same? I'm afraid we're a bit off-topic here...

I assume that there will always be 100% backwards compatibility.

But i think the biggest differences are THUMB V2 - THUMB.
More ARM instructions.
DSP VECTOR enhancements.
Deeper pipeline for higher clocks.

I am not entirely sure what is the difference...

http://en.wikipedia.org/wiki/ARM_architecture