learning computer architecture (books? kits?)

  • Thread starter Thread starter Anon
  • Start date Start date
A

Anon

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.
 
Anon said:
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.
------------------
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:
http://www.play-hookey.com
http://www.play-hookey.com/digital/
http://www.play-hookey.com/digital/electronics/
http://www.play-hookey.com/digital/experiments/

-Steve
 
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.

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
 
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

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!
 
R. Steve Walz said:
------------------
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:
http://www.play-hookey.com
http://www.play-hookey.com/digital/
http://www.play-hookey.com/digital/electronics/
http://www.play-hookey.com/digital/experiments/

-Steve


Looking at http://www.play-hookey.com/digital/experiments/it 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.
 
Anon said:
Looking at http://www.play-hookey.com/digital/experiments/it 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.
--------------
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
 
R. Steve Walz said:
------------------
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:
http://www.play-hookey.com
http://www.play-hookey.com/digital/
http://www.play-hookey.com/digital/electronics/
http://www.play-hookey.com/digital/experiments/

-Steve


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
 
Looking at http://www.play-hookey.com/digital/experiments/it 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.

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
www.micron.com 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??
 
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.

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.
 
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

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 http://webster.cs.ucr.edu/ and get his
"Art of Assembly" books (there is one for DOS, one for Windows, etc.) and tools.
Or go to my site at http://users.easystreet.com/jkirwan/new/x86lrn.html or any
number of other good sites to get the tools, documentation, etc., to just get
going on it.

Best of luck,
Jon
 
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!


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
 
George Macdonald said:
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
www.micron.com 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

ok
those experiments at http://www.play-hookey.com 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
 
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.

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:
http://www.rdrop.com/~cary/html/computer_architecture.html

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 :)
 
Anon said:
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.

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 http://www.opencores.org 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.
 
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! ;-)

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??
 
Back
Top