News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

Knowing the Machine

Started by Arhk, September 23, 2009, 12:17:58 AM

Previous topic - Next topic

Arhk

I'd like some book recommendations for hardware, machine architecture or any other stuff relating to the sort that would help me in my pursuits of mastering Assembly programming.

::) so....

Quote from: Arhk on October 06, 2009, 12:07:46 AM
Obviously I see the need to rephrase here...
~
I want books on methodology, concepts etc. on the topic of how information is handled (in detail)  within a machine & maybe with little tidbits about more physical things on of the machine circuitry etc.

~ Please & Thank You
~ I Hope the Title was vague enough to attract enough attention

dedndave

the intel programmers reference is a good reference - not the best for learning, though - available in PDF
http://website.masm32.com/reference.htm

Randall Hyde has an html reference that is a good starting place...
http://www.arl.wustl.edu/~lockwood/class/cs306/books/artofasm/toc.html

then, there is always Ray's FPU tutorial
it is in the masm32\tutorials\fputute folder

those aren't really "hardware" references, per se
but programming windows doesn't really require an in-depth knowledge of the hardware
in fact, it won't easily allow a lot of direct hardware programming
a good Phoenix or AMI BIOS manual would be good for that stuff

Arhk

Quote from: dedndave on September 23, 2009, 12:31:56 AM

but programming windows doesn't really require an in-depth knowledge of the hardware
in fact, it won't easily allow a lot of direct hardware programming
a good Phoenix or AMI BIOS manual would be good for that stuff
I kinda figured but I'm a perfectionist, I feel shame using things without knowing the true intricacies.
~
Which is why my quest for knowledge is limited to no topic. It's at the same time a bad habit, alot of the times I'll refuse to do things simply because I know only the how & not the why. So I'm willing to learn as much about a computer as I can, that wont make my head explode.

dedndave

well - i am an electronics engineer
i have pretty in-depth knowledge of many integrated circuits on the market today - some more than others
i can tell you, if you want to learn the intricacies, as you said, it is a life-long project
i can read IC data sheets (spec sheets) until i am blue in the face, and still not keep up - lol
it takes a pretty good grasp of electronics just to interpret them
for the IBM XT, i knew all the IC's inards
for newer AT-class machines, there are too many IC's to stay abreast
i suppose if i designed motherboards for a living, i might have a better handle on them
not needing to read all those data sheets means i have room left in my head for some kind of social life - lol
you are in luck though...
the only piece of hardware you need to concern yourself with to get going in assembler is the processor
that, and the windows API, is plenty to learn, believe me

Arhk

 ::) I guess but I still would Love the chance to push myself regardless. In order for there to be truly revolutionary idea's & product there has to be someone dedicated to the cause willing to carry more than asked or more than might seem possible. Da Vinci made blueprints of things other people of the time couldn't think to conceptualize & I'd like to create things in the same light.
~

hutch--

I long ago learnt to confine what I learn to the stuff that is learnable and useful, with processors heading uphill of 125 million transistors, I don't really want to know. You can get the grasp of the logic of the devices, processors, memory, north and southbridge controllers and the IO stuff if you have a technical background but most of the fun is writing low level software where you can get it all to do something useful and with an assembler, you CAN write useful things.
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

Mirno

http://www.opencores.org/project,zet86 - opensource VHDL for an x86 core (16 bit).

The thing with saying you "want to learn hardware" is it's a pretty big field.

At one level, you pass in an instruction, some variables (mem, immediate, or registers), and get a result (mem, or register).
At the far end, you are passing signals into IOs, which get interpretted, placed in registers (not the programming ones), fed into logic clouds, which feed the next stage in the pipeline, which does blah blah blah...

Don't try to figure out how the processor works before you learn to program - I didn't learn machine code before I touched my first compiler. When you encounter a problem you tend to pick up the relevant bits of information as you go.

Mirno

cman

Arhk , I'm the exact same way , I drive my self crazy trying to know every detail of what I'm studying ( I've been studying electronics lately and when I come to a mathematical model for a transistor or something ( like the "Gummel-Poon" bipolar junction transistor model ) I have to get a book in silicon physics and try to figure out the physics derivation of the formula  :bg ). Anyway , these are some good computer architecture/digital electronics texts I've been looking at:

Digital Design and Computer Architecture by David Harris and Sarah Harris ( a good starter book )

Computer Architecture: A Quantitative Approach by John L. Hennessy and David A. Patterson ( more advanced )


Check them out!

Ossa

Hi there,

yeah, it is a pretty big topic and there are so many levels to learn about it on but it is not impossible to get a good grasp of it all.

From the bottom up, there is the transistor physics as mentioned before which isn't much help unless you're designing the transistors. As an example, I design monolithic microwave ICs (MMICs) on GaAs (Gallium Arsenide) and InP (Indium Phosphide) to work up to 40GHz (we don't use Silicon because it is too slow... but it hits us in cost) and I still don't use device physics as that is all done at the foundry. You also have to consider what type of transistor you use: BJT, MOSFET, MESFET, JFET, IGBT, .... They all have particular applications that they excel at and others that they are completely useless for - each behaves differently and has different advantages and disadvantages. You can pick up textbooks devoted to just one of those types. I wouldn't suggest learning about this unless you happen to be doing an electronics degree.

The step above transistors is circuits and here you deal with transistors as parameterized components - i.e. mathematical or computer models - that allow you to design small circuits to do specific functions (i.e. in the analogue world that could mean an amplifier, or for digital it could be an individual gate). At this level there are so many standard options; do you pick an emitter-follower or a common-base or a cascode amplifier? do you go for static or dynamic logic? what is the target operating voltage? how does that relate to the devices you have available and the fabrication process and what does that mean for your circuit choices? This is perhaps the largest "pure" electronics area and one that whole libraries are devoted to in university departments. There are plenty of resources on this - I can't really recommend any, as I mostly use my old university notes, however everyone seems to ave a copy of "The Art of Electronics" by Horowitz and Hill. I would also suggest using OCW (a free MIT resource) and looking at course 6.012 (although the lecturer - Sodini - can't teach and don't bother buying his book - it's tat) - also don't judge OCW if you think that that course is rubbish (there is a more advanced course too, 6.720).

Going down the digital route now, above the transistor-circuit level you have the configuration of individual gates to form combinatorial or clocked logic. You have the idea of registers and such. Some smaller designs (or small parts of large designs) are still designed by hand at this level but more and more now, we use VHDL or Verilog HDL to describe the circuit. These hardware description languages allow the quick design of very complex circuits (VLSI - very large scale integration) without having to worry about the exact gate-level description. At this point, the digital design philosophies such as pipelining and such creep in. The top level of this point in the design hierarchy is where the most common descriptions of IC architecture are centred. I do a small amount of this but due to the industry I work in, I spend more time documenting and verifying that my code works under all circumstances than actually writing it (DO-254 is a pig). Now there is tons of free material on this topic - I would suggest using OCW course 6.004 (which is excellent, if basic - there is a more detailed course, 6.374, but I don't think the course notes are online).

Looking at it the other way, to learn about the specifics of the PC, there is a textbook that I suggest you get a hold of... but rather uselessly I can't remember what it's called - I will get back to you if I suddenly remember it.

Anyway, hope (some of) that helps,
Ossa
Website (very old): ossa.the-wot.co.uk

hutch--

Osasa,

Sounds like you are having some genuine fun there. I gave up analog audio years ago when I could no longer read the colour coding on blue 1% resistors but there were some qality op amps around in the few years before I stopped, a lot of good stuff made by National Semiconductors and I do remember a very good Signetics low loise op amp (5534AN) that was a lot quieter than anything else around.

I gather the slewing rate on later design stuff is far faster and the noise levels have dropped considerably so there should be some potential to make signal processing of analog sources both more accurate and a lot quieter than the stuff I played with.

I was building power amps on the tail end of TO3 can transistors and with split power supplies and differential input board designs these things were producing good square waves at 100k and were so quiet that you could put your head into a loud speaker and could not hear anything.
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

cman

Quote from: Ossa on September 23, 2009, 10:27:38 PM
You also have to consider what type of transistor you use: BJT, MOSFET, MESFET, JFET, IGBT, .... They all have particular applications that they excel at and others that they are completely useless for - each behaves differently and has different advantages and disadvantages. You can pick up textbooks devoted to just one of those types.

Can you recommend a text for the BJT , JFET , MOSFET? I didn't know you could find books that treat each in detail. I been reading Microelectronic Circuit Design by Richard Jaeger ( I'm often time frustrated with the text as the author often leaves out key formula derivations or chooses to approximate away small non-linear aspects of circuit operation and I end up having to recalculate things myself or dig through physics books to find answers ). I already have a number of texts including The Art Of Electronics ( which the authors admit at the start of the book that much math and solid state physics is avoided). I know electronics is a "10% science" and that semiconductor operation is very complicated on an atomic level , but I'm looking for more detail. Thanks for any input...

Ossa

Quote from: cman on September 25, 2009, 05:34:56 PM
Can you recommend a text for the BJT , JFET , MOSFET?

Well, as I said, I mostly use my old university texts so I can't really recommend a specific one. What I do have is a copy of the 6.720 notes by Jesus A. del Alamo which should have been published as a book by now (I can't quite work out whether it is out yet or not... it is on Amazon though): Integrated Microelectronic Devices: Physics and Modeling. It is not specific to each type of transistor (covering both FETs and BJTs) but it should be fairly in-depth. What I like about him is that on the first pass he ignores second order effects and then goes around again to deal with them. It is fairly easy to come across books exclusively about MOSFETs (and to a more limited extent, MESFETs) - i.e. just type MOSFET or MESFET or whatever into the amazon search bar. JFETs and BJTs usually seem to be lumped together with other things in more general texts, although many of the (much) older texts deal with BJTs in much more detail. As I say, I really can't recommend any - the detail of the physics never attracted me that much.

Quote from: cman on September 25, 2009, 05:34:56 PM
I know electronics is a "10% science" and that semiconductor operation is very complicated on an atomic level , but I'm looking for more detail. Thanks for any input...

I see that the book you have seems to deal with electronics from a circuit perspective, which is really a different ball game altogether - as you note, it isn't really a science after you get exposed to it for a while but more of an art. Most of the best circuit people I know don't use any of the mathematics beyond an approximate initial design, after that it's down to simulation (based on measured results from previous wafer runs), intuition and experience. The problem with a lot of the device physics stuff is that, as a circuit designer, you don't have most of the required information and even when you do, the tolerance ranges on the values are so large that half the design work is compensating for device to device variation (i.e. over the wafer and between wafer runs). The value of IS or the small signal "beta" in BJTs is a good example of this (although I don't work with BJTs) as it can vary by up to an order of magnitude (or more in some cases) between different components if the process isn't very tightly controlled. However, it is this that makes circuit design so interesting (naturally analogue electronics is more affected by this than digital).

Hope that helps somewhat,
Ossa

Website (very old): ossa.the-wot.co.uk

cman

OK, thanks for the tips Ossa! :U I guess I'm not used how loose the calculations are that are involved in circuit analysis that involves silicon devices. I'll look for something in the area of semiconductor modeling or solid state physics. Thanks for the tips....

Arhk

Obviously I see the need to rephrase here...
~
I want books on methodology, concepts etc. on the topic of how information is handled (in detail)  within a machine & maybe with little tidbits about more physical things on of the machine circuitry etc.

FORTRANS

Hi,

   The book "The Undocumented PC" by Frank Van Gilluwe is a description
of the hardware and some of the low-level software of a PC compatible
computer.  If what you want is a generic discussion of how things
work this is a good reference.  If you want specific information, you
will want to look at the chip specifications put out by the manufacturers.

   For methodology, an algorithms book would be good.  If a more hands
on approach is wanted then "The Working Programmers Guide to Serial
Protocols" by Tim Kientzle (googled that so I may have the wrong one)
and "The Data Compression Book" were two that I enjoyed.  Image
processing also covers low level concepts of handling information.

HTH,

Steve N.