Computer Architecture I

129 downloads 86 Views 2MB Size Report
What is computer architecture? – Why should ... Introductory course to computer architecture. (Not for .... Taught intro/advanced digital design courses. – Worked ...
Computer  Architecture  I   Lecture  1:  Welcome  and  Introduc7on   Instructor:  David  Black-­‐Schaffer   TAs:  Muneeb  Khan  and  Andreas  Sembrant  

Today,  Part  1   •  About  the  Course  

–  What  is  computer  architecture?   –  Why  should  you  care?  

•  Ge-ng  to  Know  One  Another   •  Administra7ve  Details   –  Registra7on   –  Labs   –  Grading   –  Schedule  

About  the  Course   •  Introductory  course  to  computer  architecture    (Not  for  IT/DV  students;  they  take  the  7.5hp  one)     •  How  a  computer  is  built   –  Logic  -­‐>  circuits  -­‐>  datapath  

•  How  a  computer  is  controlled  

–  Basic  opera7ons  -­‐>  microarchitecture  -­‐>  instruc7ons  (ISA)  -­‐>  assembly  

•  Contents  (in-­‐order)   –  –  –  –  –  –  – 

MIPS  assembly   Logic  design  (adders,  ALU,  control)   Performance  analysis   Data  path  and  pipelining   Input/Output   Caches   Virtual  memory  

AXer  This  Course,  You  Should…   •  Understand  the  func7onality  and  opera7on  of   the  basic  elements  of  a  computer  system   including  processor,  memory  and  input/output   •  Reason  about  first-­‐order  performance   •  Understand  the  hardware/soEware  interface   •  Understand  and  be  able  to  write  programs  in   assembly  language  

Credits   •  Slides  and  material  adapted  from   –  Karl  Marklund   –  Jus7n  Pearson   –  Stefanos  Kaxiras   (Slides  originally  developed  by  Profs.  Hill,  Falsafi,   Marculescu,  Paaerson,  Rutenbar  and  Vijaykumar  of     CMU,  Purdue,  UCB,  UW,  Copyright  2003)  

–  Tanenbaum,  Structured  Computer  Organiza7on,   FiXh  Edi7on,  (c)  2006  Pearson  Educa7on,  Inc.    

Ques7ons  You  Should  Be  Asking   •  Why  MIPS?   (None  of  us  has  a  MIPS  computer…)   –  It’s  clean  and  easy  to  understand   –  x86  is  not  

•  Why  should  I  study  computer  architecture?  

Why  Should  Study  Computer   Architecture?   •  Press  release  from  last  week…  

•  ARM  introduced  the  “big.LITTLE”  processor   •  Huh?  

From  The  Register  

Backup:  Who  Knows  What  ARM  is?   •  Q:  How  many  of  you  have  an  ARM  computer?   –  A:  All  of  you  

A R M

From  The  Economist  

What  Exactly  Are  They  Doing?   •  What  is  big.LITTLE?   •  Big  cores  for  high  performance   •  LiOle  cores  for  low  power  

BIG  

LITTLE  

From  ARM  

Why  is  ARM  Doing  This?   •  Power  Efficiency  =  calcula7ons/energy     !"#$%&

BIG   LITTLE   !$%'"%()*+$&

The  Details   LITTLE  

LITTLE  

BIG  

•  Simple  (  fewer  func7onal  units)   •  Short  pipeline  (  slower  clock)   BIG   •  Complex   •  More  func7onal  units   •  Out  of  order  execu7on   •  Long  pipeline   •  Faster  clock   •  Bigger  branch  penalty    

From  ARM  

Why  Can  They  Do  This?   •  Scaling:  We  can  build  more  transistors  than  we   know  how  to  use   12/2005

A  whole  1995   processor  fits  in   this  much  of  a   2005  processor.  

6/2004

12/2002

6/2001

12/1999

6/1998 12/1996 6/1995

Why  Should  They  Do  This?   •  Can’t  increase  power:     Need  to  improve  power  efficiency  

10,000,000 1,000,000

Transistors per chip

100,000

Number of transistors (thousands) Relative performance Clock speed (MHz) Power type (W) Number of cores/chip

10,000 1,000

Power  Wall  

100 10 1 0 1985

1990

1995 2000 Year of introduction

2005

2010 From  Fuller  2011  

What  are  Others  Doing?   •  GPUs:  Lots  and  lots  of  very  small  cores   Nvidia  Fermi  

AMD  Barts    

This  is  Computer  Architecture   vs.  

•  •  •  • 

vs.  

Understanding  performance  and  efficiency   Design  tradeoffs  in  execu7ng  instruc7ons   Building  the  hardware   Making  it  programmable  

So,  Why  Should  You  Care?   •  Computers  are  evolving  very  fast   •  Need  to  understand  how  they  work  to   understand  why  they  are  changing   •  Computer  Architecture  is  cri7cal  to  performance   and  efficiency   •  Not  just  about  designing  hardware:   –  How  does  big.LITTLE  affect  soXware?   –  How  easy  is  it  to  program  a  GPU?  

Ques7ons?  

GETTING  TO  KNOW  ONE  ANOTHER  

About  Me   •  I’m  American  (as  if  you  haven’t  no7ced…)  

–  From  a  different  system  (e.g.,  graded  homework)   –  May  speak  too  quickly   –  Tell  me  if  I’m  doing  something  wrong   (and  how  to  make  it  beOer)  

•  Background  

–  Power-­‐efficient  computer  architecture   –  Taught  intro/advanced  digital  design  courses   –  Worked  in  industry  (Apple)  on  CPU/GPU  programming   systems  (OpenCL)   –  Speak/understand  Swedish  preay  well  

About  You   •  What  program(s)  are  you  in?   •  What  year(s)  are  you  in?   •  Why  are  you  taking  this  course?   •  Will  you  do  the  assigned  reading  before  class?   (Would  in-­‐class  short  quizzes  help?)  

•  Would  you  do  suggested  prac7ce  problems?  

About  Your  Background   •  How  many  have  taken  an  impera7ve   programming  course?  

–  Java,  C,  C++,  C#,  FORTRAN  (I  hope  not…),  MATLAB   –  Not  func7onal  languages  such  as  ML  or  Erlang  

•  How  many  have  seen  digital  design?  

–  AND/OR  gates,  mux/demux,  Karnaugh  maps   –  Flipflos,  finite  state  machines  

•  How  many  care  about  the  speed  of  your  code?  

Prerequisites   •  Basic  programming  (programmeringsteknik  II)   for  (int  i=0;  i