[Novalug] computer instruction, and intel architecture

Walt Smith waltechmail@yahoo.com
Mon Mar 29 12:32:27 EDT 2010


List,

Topic 1:

But first Bryan,

THANK YOU for including something to go along with
the acronyms.   You do that occassionally in your other works.

- [S]ATA -- Dumb, Serial or Parallel Hardware Block AT Attachment (ATA)
- SCSI -- Queued, Block Small Computer Systems Interface (SCSI)
- AHCI -- Queued, Block Serial AT Attachment ("modern" SATA)
- SAS -- Queued, Block Serial Attached SCSI-2 (SAS)
- USB -- Dumb, Software Block Peripheral
- SBP-2 -- Intelligent, Serial Bus Protocol (SBP), aka "FireWire"
- ONFI -- Prototype EEPROM NAND Interfaces (still being finalized)

Also one "FOSS" poster recently also included "more than an average" 
number of expansions.  Thanks to that poster also.

Topic 2:

I'd like to say that assembler should be taught early on in
computer education. But perhaps it need not be an entire course
by itself.  Perhaps 1/3 semester of a "what is it".
Higher assembler could be an elective at the undergrad level, or
perhaps as a graduate course. I don't think that kernel mode
switching necessarily be taught at the undergrad level.
But, what is our influence on colleges ?  Let them decide on their
courses. 

Topic 3:

I would really prefer that explanations of some things not sound so
much like a textbook.  I've always had trouble with textbooks 
because most are written so badly.  The Motorola processors, like
the MOS processors tended to use combinatorial logic with few
clock cycles to run instructions; i.e. very few cycles needed
for the micocoding.  Intel was the opposite; they
ran a lot more real microcode so a simple instruction might take a dozen
or more "clock cycles".  Same for the bus interfaces. Thats why a
1 Mhz Motorola was as fast as a 5 mhz intel ( 8080 )..  
GASP !!! how ancient !!  But the example is valid for todays
interfaces if one knows what they are.  Take ATA... or not ...


The Motorola interfaces to memory were async.  Intels were synced
( 1980's).  Async means handshaking, ( think REQuest, ACKnowledge ).
Sync means send data with a clock and hope it arrives.
Just to show an interesting example regarding flexibility, I once designed
a parallel interface to a non-standard printer ( to a custom processor
board  I designed (now called "embedded").  The printer interface was
async.  But because I needed the experience, I synced all the asyn signals.
At the lowest "level, they were clocked".  At one level up, they
were async - the level the printer was designed for.  To me, it was
easier to debug and eliminated combo-logic "glitches".

Topic 4:

At one time, I bought the arguments that Intels architecture was crap.
I stopped a long time ago.  The advancement thru segment registers was
a quick way to market to get more memory and wider data calculations.
Having the registers specialized I regarded as a PITA.  BUT-designated
registers made the programming easier on the brain. And forced a
programmer to differentiate between code and data memory blocks when 
there was no hardware protection available.  Intel didn't invent
the segmentation.  It was on another popular computer first !

The scheme Intel had, once 286 type machines arrived, allowed the systems
programmer to decide to use old style segments to move files in/out of 
"swap" space, or to move "pages", or to move blocks, and later pick block
sizes, and to actually protect memory "segments" with hardware, creating
"exceptions" on a violation (IOW, "protected" mode).  It also had(s) the
capability of somewhat traditional supervisor vs user modes  ( can
anyone suggest a OS that used this on a 386? ).

Given the fluid state of multiprocessors ( tightly coupled), I think
it behooves a system programmer to really know the mechanisms behind
tightly coupled processors.  Have I worked on such a system.  
No, I haven't.  But if you're an Intel system programmer, you may not
easily switch to ppc.. or arm...   I doubt application programmmers will
have much trouble since the system level can hide the underlay.
What is the definition of a "systems programmer" today on a Linux ?

I missed out on the VHDL revolution..   But I figure it's in the
syntax.  I still know what an OR does, and function blocks for a 
design appear to be easier to deal with the async counters and their
glitches.

PS - it's still surprising how many designs are still done using
30 year old 8048/8051 style "controllers". And anyone who has worked
on one knows they were designed by REAL hardware guys. <g> And yes, 
"pic" processors have bred like rabbitz.  Can't wait to see a 
linux on a pic...


Walt.......




      



More information about the Novalug mailing list