Sunday, August 30, 2009 2:36 AM,



A student writes:



	Hello Dr. Patt

	As I have been reading about ISA's I have a question. 
	If I am correct, I saw that they have data types. 



I would prefer to say the ISA "specifies" data types, which are 
representations of data, as we will see in class on Monday.

I prefer "specifies" because the ISA is, as I said in class on Wednesday, the 
interface between software and the hardware.  If you prefer, you can think of 
the ISA as the language that the hardware and software both understand.  
Indeed, ISA used to be called "machine language."

The software tells the hardware using the 0s and 1s of this language exactly 
what it wants the hardware to do, and the hardware carries out the work 
specified by the 0s and 1s.  

One of the things that must be conveyed from software to hardware is the 
format of the representation of the data to be processed.  Those 
representations are called data types.  As I said, more on that on Monday.



	I have previously taken a programming class in
	C++ and I was wondering if the ISA is equivalent, or at least 
	similar to a "library" such as "<iostream>" or "<fstream>" used 
	in C++? 



No, the concept of ISA and the concept of library are very, very different.
A C++ library is a collection of tasks (we use the word procedures or 
functions, usually) that have been prespecified so the typical C++ programmer 
can get the hardware to do a task without even knowing enough to be able to 
write the program needed to carry out the work.

Without going into the details of C++ libraries, which is not a prerequisite 
for EE 306, I will at least give you another of my automobile analogies to 
highlight the differences.

Recall my analogy from Wednesday, that the ISA of the automobile involved 
"stepping on middle pedal stops the car,"  and "rotating handlebar 
counterclockwise turns the car to the left," etc.  The library is equivalent 
to the collection of sets of instructions you can get from Mapquest to get 
from any place A to any place B.  One of the procedures in the "Mapquest 
library" would be the directions you would need to get from the UT Union to a 
particular beach on Padre Island.  And certainly, driving to Padre Island will 
require multiple steps like turning the handle bar and stepping on the brake.  

But I would no more consider an ISA similar to a C++ library than I would 
consider the individual operations a driver does to make the automobile do his 
bidding as similar to the set of directions MapQuest would give me for getting 
to Padre Island.



	Or is the ISA deeper than that, since it is below the "High Level 
	Language" slot in your table in the text book.



Indeed, the ISA is at a lower level than the High Level Language.



	Thank you,
	<<name withheld to protect the student guilty of a little C++ knowledge>



Good luck with EE 306.
Yale Patt