The Role of Computer Architecture in Computer Engineering.

Computer Architecture: The Definition
The coordination of abstract levels of a processor under constantly and rapidly changing set
of forces, involving design, measurement and evaluation.
As the definition suggest, computer architecture deals with mainly three elements.
    1. Instruction Set Architecture
    2. Computer Organization
    3. Hardware
Instruction Set Architecture is the interface that is laid between the software and hardware,
or rather; it can be expressed as a set of instructions that bridges the gap between high level
software  and  assembler.  It  contains  instructions  to  interpret  how  a  command  should  be
executed by a processor. For a processor to understand a command, it should be in binary,
thus  ISA  deals  with  encoding  these  values.  Further,  ISA  deals  with  data  types,
registers, addressing  modes,  memory  organization  etc.  Registers  are  high  speed  storage
slots  which  can  be  accessed  by  a  processor.  Data  as  well  as  Instructions  are  stored  in  a
register. Addressing mode refers how each instruction specifies the location for its data or
operands. Memory organization specifies how instructions interact with the memory.
The Computer Organization refers to the constituent parts of the processor and how these
interconnect and interoperate to implement the ISA. It acts as a bridging between ISA and
Hardware.
The Hardware is the way actual hardware components are designed. It requires the ISA and
Computer  Organization  for  the  design  process.  Basically  it  deals  with  how  the  hardware
elements  are  interconnected  with  each  other  in  an  optimised  manner  to  execute  the
operations as ISA demands.
That  been  said,  moving  on  to  the  role  of  Computer  Architecture  will  be  a  broad  area.  In
computer  designs,  the  first  law  is  that,  “Nothing  Comes  Free”.  If  you  have  to  optimize
something, it must be done in the expense of another thing. For an example, if you want to
increase  the  speed  of  access  to  a  memory  element,  it  should  be  reduced  in  size,  thus
showing that, the speed is increased in the expense of the storage. 
This has always been a startling problem for the Computer Engineers to deal with because;
no  design  can  be  absolutely  completely  optimized,  because  optimization  depends  on  the
purpose of the element. Even when the purpose is determined, heuristic optimization may
occur  to  yield  an  optimized  model,  but  it  still  might  not  be  the  best  model.  The  role  of
Computer Architecture is mainly to gain this optimization in the designing process in order
to get the maximum benefit of the resources. 
Computer  Architecture  is  very  important  in  yielding  performance  biased  products.  For  an
example, if you are a software engineer and you are working on a project, you need to know
the  processing  ability  of  the  target  processors.  If  it  is  some  old  processors,  you  need  to
optimize your software in order to gain the most possible outcome from those processors
while keeping the performance indicators intact.
Further,  if  you  are  in  to  developing  utility  software;  say  multimedia  decoder,  you  should
know what would make the best use of the processor and place that in to the right section.
You need to know the cache inefficiencies n the traffic flow that occurs and have to mitigate
it  in  order  to  optimize  the  performance  it.  Further,  if  you  know  enough  about  the
architecture to dip into design, then you can design and enhance the architecture in order
to work best with the implied project.
Another  important  use  of  knowing  how  the  internal  systems  work  is  in  making  a  buying
decision. Say you are the techie of a company and it needs you to buy products for a specific
task.  The  processor  you  are  going  to  buy  should  be  cost  effective  as  well  as  performance
biased  for  that  task.  In  order  to  do  that  as  their  engineer,  you  need  a  thorough
understanding of the architecture of the processor and in which way they would facilitate
the  implementation  of  the  required  program.  For  an  example,  some  processors  have
internal  circuitry  that  makes  them  perform  better  than  other  chips  running  at  the  same
clock  speed  in  certain  specific  tasks  while  they  outperform  the  latter  by  a  considerable
margin  in  other  processes.  Sometimes  certain  tasks  need  additional  components  in  the
processor  as  well;  for  an  example,  to  implement  a  virtual  system,  a  processor  needs  a
special feature called VT to perform the real time tasks efficiently and with 100% speed as if
it were performed in the real system which has become a trend dealing with security issues.
Thus you need to analyse it in a cost beneficial way and choose what should be the best for
the company. Further, you may have to consider the power consumption and the area cost
of the processor as well which is governed by its architecture. A person who is competent in
Computer Architecture would be able to perform this task efficiently.
Even  as  an  average  buyer,  you  can  still  make  your  buying  decision  is  the  most  cost‐and‐
performance effective way. For an example, as an average user, buying a 64‐bit processor
would not add much benefit compared to its cost. You can go for that if that is task specific
and is essential.
I  would  like  to  conclude  this  report  by  the  fact  that  it  is  always  handy  to  know  how  the
‘thing’ you are writing programs to; works, not just thinking it like a ‘magic black box’ which
gives  the  required  output  when  you  give  an  input.  It  may  rather  be  the  objective  of  a
programmer, but it should not be the objective of a Computer Engineer. It would be even
better if you can, as a Computer Engineer, get into the designing process of the architecture
itself  starting  from  ISA  and  going  all  the  way  down  to  physical  implementation  of  the
circuitry. After all we should not forget that the mostly used embedded microprocessor as
of 2009; the ARM: Acorn RISC Machine was inspired by a project that was initiated by the
Berkeley RISC project that was carried out by a group of undergraduates with the inspection
Professor David Patterson in University of Berkeley.

0 comments:

Post a Comment

: AbouT :

Well....this blog will be the counterpart of my සිංහල blog. But that doesn't mean this is merely an extension or a translated version of it. This will, indeed have similar pieces as well as different pieces. If you like to work in English, but still interested in reading what I write. I'd say this is your place.

Followers