learning computer architecture (books? kits?)

I want to spend a few months studying computer architecture, starting with the electronics.

The knowledge that i'm starting with, is that I just know logic gates (on paper), i've done some karnough maps before, and I have designed a full adder in VHDL using XiLinx. So my knowledge is small, and I have no experience whatsoever. The only circuit i've ever made is electricity not electronics - 2 wires a battery and a light bulb. I'd like to change that during a couple of months self-study.

I've got 2 basic electronics books, one by Wakerly another by Gajski

Between them they cover latches, Adders, Flip flops, registers, counters, ram, stacks, cmos, vhdl, and a little bit on processor design- risc and cisc.

The thing is though a)it all looks very theoretical, like VHDL. Is there any kit I could get where I could try these things practically? b)it's not computer centric at all, so doesn't build up to chipsets, which is what i'm interested in. I don't really know which computer architecture book to get, or if i would immediately be ready for detailed manufacturer's documentation / white papers.

Any advice/methods are appreciated thanks.

Reply to
Anon
Loading thread data ...

------------------ Go get some chips and a white solderless proteyping board and a regulated +5V supply and build a bunch of them.

And here's a site you should look at:

formatting link
formatting link
formatting link
formatting link

-Steve

--
-Steve Walz  rstevew@armory.com   ftp://ftp.armory.com/pub/user/rstevew
Electronics Site!! 1000's of Files and Dirs!!  With Schematics Galore!!
http://www.armory.com/~rstevew or http://www.armory.com/~rstevew/Public
Reply to
R. Steve Walz

You could download MPLAB (It's free) from MicroChip and write some RISC code for their "PIC" type (RISC) processors and run it (simulate it) on your PC without having to get your hands dirty.

Then you could buy the actual hardware i.e. a PIC and some other components (for a few pounds) and solder them together and transfer you code into the PIC with the "PICSTART" programmer (maybe a £100 ?) and try it out.

If you are a natural "fault-finder" i.e. a sort of technical gun-slinger - then you will succeed (and get hooked for life) otherwise you will get *very* frustrated, either way, you should borrow a 'scope and it will take more than a few months... or years...

For (small) PICs write in "assembler".

For others e.g. CISC type processors write in C.

Don't use BASIC, otherwise, as the fella said, you will be "crippled for life".

Cheers Robin

Reply to
robin.pain

Good advice above.

But this is wrong. People can learn.

Reply to
chrisv

Yes, of course. It was a tongue-in-cheek comment of EWD.

Reply to
robin.pain

thanks for the advice

Regarding basic though, I used basic, when I was 12 years old and didn't know any better 'cos qbasic was the language shipped with msdos

6.22 It did no damage, though it's a shame that I wasn't learning C or unix. (no internet, no knowledge of the outside world) You only get spaghetti code if you abuse if statements(like using if statements to jump around, instead of calling modules). Or perhaps if you use them for iteration in place of loops. But you can abuse if statements in any language. BASIC is rubbish compared to C, but it was great in DOS, to take over from where batch scripts didn't do the job. Batch scripts are so crap. So crap infact, that simple things require long winded tricks. Those lucky few(not me) that knew about Ray Duncan's MSDOS encyclopedia, or had a better source of information than help.com, would have also made use of peek and poke within BASIC. So I think BASIC was great as an aid to DOS, the weak syntax was an advantage there. Of course, that's a crap claim to fame for a programming language!
Reply to
Anon

Looking at

formatting link
does clocks and counters, but i'm also interested in buses, bridges, multipliers/PLLs/DLLs I want to wire up a clock to a multiplier, to a bus.

Reply to
Anon

google seems to be a bit slow in putting my posts on, it's been about

20 hours and my reply hasn't been archived, i don't know if it's been received at all by any servers. so here it is, I hope it doesn't appear twice.

I'd also like to put a bus on the board, a clock, a multiplier, DLLs, PLLs. is there any further link or resource that i'd need to cover that?

thanks

Reply to
Anon

-------------- Explain more clearly, none of that is related to digital computer studies. What do *YOU* mean by "bus", "bridge", "multiplier", and do you even know what PLL's are? What are DLL's, other than ..dll dynamic linked library files in Windows?? Did you mean PLDs and PALs? A bus is just a set of parallel connections between parts inmcomputer arechitecture, study the terms tri-state, open-collector, and bipolar inputs and outputs. A multiplier is a synthesis circuit for radio frequencies, as multiplication in computing is done by successive addition or by synthetic processes in program code.

-Steve

--
-Steve Walz  rstevew@armory.com   ftp://ftp.armory.com/pub/user/rstevew
Electronics Site!! 1000's of Files and Dirs!!  With Schematics Galore!!
http://www.armory.com/~rstevew or http://www.armory.com/~rstevew/Public
Reply to
R. Steve Walz

Those are pretty advanced things for an amateur to be attempting... with what goal? I'm not sure you need to be building such circuits to understand how they work. e.g. DLL (Delay Locked Loop) is a fairly recent name which Rambus coined and claims to have invented for use in memory interfacing; I suspect that similar circuits have been in use for a while by various people but it's one of the principal patents left in their case against the memory mfrs.

There's lots of good docs available for free download. Start at

formatting link
for data sheets and technical notes on their memory chips. Intel's data sheets are very informative for their bus interfaces - hint: look at early versions of them... e.g. the early P4 data sheets had timing diagrams which showed exactly how the double pumping of the address bus and quad pumping of the data bus works in relation to the system clock; later versions of the P4 data sheets removed that info.

For buses, most of the definition docs for recent ones require membership of a SIG to get at but I believe the AGP docs are still available through Intel and it's basically a modification of the PCI Bus. You can probably find docs by searching for some of the older standard buses, like the S100 which was one of the first buses used in the early microprocessor-based computers. There might still be stuff available for STB Bus, VersaBus, VME Bus, Multibus (an Intel one) and the PC ISA Bus.

Start reading.:-)

Rgds, George Macdonald

"Just because they're paranoid doesn't mean you're not psychotic" - Who, me??

Reply to
George Macdonald

DLLs have been around since the year of the flood. I didn't see where DamnBus tried to claim them too. Really? Someone should tel Xilinx! ;-)

A DLL is similar to a PLL except it uses digital (usually) delays as a feedback mechanism instead of a charge-pump and VCO (again, usually).

One detects the phase and varies the phase by delays, the other varies the frequency. Each has its benefits and problems.

--
  Keith
Reply to
keith

I started with BBC Basic.

We were lucky because it had an easy to use built-in assembler and the architecture was so simple, you could poke the "screen" directly or even assemble your code in the screen area and "see" it (working).

When you write in assembler, you have to discipline yourself with your variables because they are all global of course and it is very easy to accidently have them interfer with each other, so you over-react and never "overlay" and allocate them all individually with great care. Maybe later on, or when you run out of memory, you tentatively overlay certain types that "will never be in use at the same time".

In C you try to keep your variables local because then they are bomb-proof. You can see the output of the C compiler doing this i.e. "creating the local variables on the stack", it is a wonderful piece of "automation"; just try and do the same thing by hand in assembler - it would be soul destroying and forever bug-ridden.

Cheers Robin

Reply to
robin.pain

ok those experiments at

formatting link
include stuff with clocks. I'll forget about building a multiplier, and i'll study the older bus specs like AGP, and timing diagrams.I just need to build a circuit with a clock and read the spec to appreciate the electronics and the timing diagram and how it works. I think that can be done in short period of time

thanks

Reply to
Anon

A decent beginners computer architecture book is "Microprocessor & Microcomputers" by Tocci. A standard textbook for many courses. Google gave me this which looks like a good start:

formatting link

Talking Electronics did an excellent kit called to TEC-1A many moons ago, you might be able to still get the books or a kit.

Forget microcontrollers is you want to learn actual architecture, they won't really teach you much, even if you program in assembler. Forget VHDL, it's useless. But FPGA's can allow you to build and experiment with your own architectures.

Dave :)

Reply to
David L. Jones

I've read the other responses and it's still a little hard to gather where you want to go. A "few months" isn't very long, by the way. Perhaps enough time to assimilate one good book.

You may consider the following thoughts I have:

(1) There is a two-book series on computer chips and architecture, which was pretty well written for someone getting started, I think. Don Lancaster is the author and the two book set is called "Micro Cookbook," vol 1 is Fundamentals and vol 2 is Machine Language Programming. This book set refers to rather old chips by today's standards, but the basic ideas remain pretty well over time (with some modifications.) And I believe it is written well for someone trying to understand some of the details of the elements found in computers. Vol 2 may not be nearly as worthwhile as Vol 1, though.

(2) Another book I really like, if you are considering learning almost all of the various details of how a computer CPU works inside, then the "Bebop BYTES Back -- An Unconventional Guide to Computers" is excellent. There is some software to go along with it, but the book stands alone quite well. This is unlike much more dry books such as Patterson and Hennessy's "Computer Organization & Design," for example. Bebop BYTES Back speaks to a newbee very, very well, I think, yet gets the details down adequately for you to sit down and consider writing VHDL code. Almost, anyway.

(3) If you are into VHDL, a book I like for starters (though it does nothing to help you understand floorplanning in any detail) is Smith's "HDL Chip Design." He provides opposing pages documenting both VHDL and Verlog for the same systems, covers things from the ground up for folks just trying to fathom the syntax and details of expression, and covers many practical elements, including the sequential logic Booth multiplier, for example. A book I learned on (I've still a whole lot to learn, of course.)

(4) If you are interested in just getting started writing in assembler (x86?), then you might go to Randy Hyde's site at

formatting link
and get his "Art of Assembly" books (there is one for DOS, one for Windows, etc.) and tools. Or go to my site at
formatting link
or any number of other good sites to get the tools, documentation, etc., to just get going on it.

Best of luck, Jon

Reply to
Jonathan Kirwan

Uh, verilog. Sorry.

Jon

Reply to
Jonathan Kirwan

That's what I figured... that this was a standard circuit when you needed to (re)align signal transitions. It was certainly one of the original

20(or was it 50 ?) claims they made for use in a memory interface - I may have mispoken that it is one of the remaining 4 or so claims left but still not sure on that. Looking it up always leads to stepping in err, something nasty, so I'll demur on that.

Remember they also wanted to make a claim on using a umm, register to hold the CAS Latency countdown counter etc. I'm pretty sure that one's been thrown out.

Rgds, George Macdonald

"Just because they're paranoid doesn't mean you're not psychotic" - Who, me??

Reply to
George Macdonald

It looks as if you're looking for a prototyping board with some Xilinx FPGA on it. You can then implement the circuits you've designed in practice. There are a number of such boards in existence. You'll want one with a large enough FPGA so that you can fit in entire processors.

You may want to look at

formatting link
for both board designs and for circuit designs that you can peruse. For hardware, have a look at their OCRP-1 board.

I don't know what you mean when you say you want to build up chipsets. Do you mean chipsets for PC mainboards? That's unreasonable given that you want to spend a few months only. PLLs are also a fairly deep matter.

If you want to get more into using the soldering iron, it might be better to assemble a computer board out of separate chips, using separate CPU, memory, I/O chips, but that's fairly outdated stuff. It has its educational value, however. The Z80 family chips and the 65xx family chips are still widely available, and a lot of books have been written about them, though many are out of print now.

--
Cheers
Stefan
Reply to
Stefan Heinzmann

Computer architecture books..... 'How to master Autocad in 21days'..... '3D Studio Max for Dummies'.... oh... you didnt mean archtecture using computers? Never mind....

Reply to
BobGardner

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.