Page 22 - 4130
P. 22

computer  buses  and  switches;  memory  controllers  and  hierarchies;
         data processing other than the CPU, such as  direct memory access
         (DMA); miscellaneous issues such as virtualization, multiprocessing
         and software features.
               An  instruction set architecture (ISA)  is the  interface between
         the computer's software and hardware. Computers do not understand
         high  level  languages.  A  processor  only  understands  instructions
         encoded  in  some  numerical  fashion,  usually  as  binary  numbers.
         Software  tools,  such  as  compilers,  translate  high  level  languages,
         such as C into instructions.
               The ISA of a computer is usually described in a small book or
         pamphlet, which describes how the instructions are encoded. Also, it
         may  define  short  (vaguely)  mnemonic  names  for  the  instructions.
         The names can be recognized by a software development tool called
         an assembler. An assembler is a computer program that translates a
         human-readable  form  of  the  ISA  into  a  computer-readable  form.
         Disassemblers  are  also  widely  available,  usually  in  debuggers,
         software  programs  to  isolate  and  correct  malfunctions  in  binary
         computer programs.
               ISAs  vary  in  quality  and  completeness.  A  good  ISA
         compromises  between  programmer  convenience  (more  operations
         can  be  better),  cost  of  the  computer  to  interpret  the  instructions
         (cheaper is better), speed of the computer (faster is better), and size
         of the code (smaller is better).
               Computer  organization  helps  optimize  performance-based
         products.  For  example,  software  engineers  need  to  know  the
         processing ability of processors. They may need to optimize software
         in order to gain the most performance at the least expense. This can
         require  quite  detailed  analysis  of  the  computer  organization.  For
         example,  in  a  multimedia  decoder,  the  designers  might  need  to
         arrange for most data to be processed in the fastest data path and the
         various  components  are  assumed  to  be  in  place  and  task  is  to
         investigate the organizational structure to verify the computer parts
         operates.



                                          20
   17   18   19   20   21   22   23   24   25   26   27