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.
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".
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!
-------------- 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 Walz email@example.com ftp://ftp.armory.com/pub/user/rstevew
Electronics Site!! 1000's of Files and Dirs!! With Schematics Galore!!
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
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.
Rgds, George Macdonald
"Just because they're paranoid doesn't mean you're not psychotic" - Who, me??
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.
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
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:
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.
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
and get his "Art of Assembly" books (there is one for DOS, one for Windows, etc.) and tools. Or go to my site at
or any number of other good sites to get the tools, documentation, etc., to just get going on it.
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??
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
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.