
########################### make ###########################
make$B$9$kA0$K!"(BISIS-SimpleScalar$B$N(Baddress.h$B$X$N%j%s%/$rE=$kI,MW$,$"(B
$B$j$^$9!#Nc$($P!"(B/usr/local/sim/simplescalar$B$K(BISIS-SimpleScalar$B$r%$%s(B
$B%9%H!<%k$7$?$J$i!"(B

-------------------------------------

  % ln -s /usr/local/sim/simplescalar/include/isis/address.h address.h
  % make

-------------------------------------

a.out$B$,$G$-$l$P@.8y$G$9!#(B





########################### get_puid.c ###########################
main$B%W%m%0%i%`$K!"(B

-------------------------------------

  unsigned int puid = get_puid(); 
  if ( puid == 0 ) {
      $B=hM}(BA;
  }

-------------------------------------

$B$H5-=R$9$l$P!"%W%m%;%C%5(BID$B$,(B0$B$N%W%m%;%C%5$N$_$,=hM}(BA$B$r9T$$$^$9!#(B





########################### get_punum.c ###########################
main$B%W%m%0%i%`$K!"(B

-------------------------------------

  unsigned int puid = get_punum(); 
  printf("Number of processors is %d!!\n", punum);

-------------------------------------

$B$H5-=R$9$l$P!"$9$Y$F$N%W%m%;%C%5$,(B"Number of processors is XX"$B$H%W(B
$B%m%;%C%5?t$r=PNO$7$^$9!#(B





########################### barrier.c ###########################
main$B%W%m%0%i%`$K!"(B

-------------------------------------

  barrier();

-------------------------------------

$B$H5-=R$9$l$P!"$9$Y$F$N%W%m%;%C%5$,$3$N(Bbarrier()$B$KC#$9$k$^$G!"B>(B
$B$N%W%m%;%C%5$O(Bbarrier()$B$+$iH4$1$^$;$s!#$D$^$j!"$9$Y$F$N%W%m%;%C(B
$B%5$GF14|$r$H$k$3$H$,$G$-$^$9!#(B





#################### shared_addr_allocate.c ######################
main$B%W%m%0%i%`$K!"(B

-------------------------------------

  unsigned int *mem;
  mem = (unsigned int *)shared_addr_allocate(sizeof(unsigned int));

-------------------------------------

$B$H5-=R$9$l$P!"$9$Y$F$N%W%m%;%C%5$G6&M-$5$l$k(Bunsigned int$B7?$NBg$-(B
$B$5$NNN0h$r(Baddress.h$B$GDj5A$5$l$?(BSHARED_MEM_TOP$B!A(BSHARED_MEM_BOTTOM$B$NHO(B
$B0O$+$i3NJ]$7$^$9!#(B





#################### shared_addr_for_sync_allocate.c ######################
main$B%W%m%0%i%`$K!"(B

-------------------------------------

  unsigned int *mem;
  mem = (unsigned int *)shared_addr_for_sync_allocate(sizeof(unsigned int));

-------------------------------------

$B$H5-=R$9$l$P!"$9$Y$F$N%W%m%;%C%5$G6&M-$5$l$k(Bunsigned int$B7?$NBg$-(B
$B$5$NNN0h$r(Baddress.h$B$GDj5A$5$l$?(BSHARED_MEM_FOR_SYNC_TOP$B!A(B
SHARED_MEM_FOR_SYNC_BOTTOM$B$NHO0O$+$i3NJ]$7$^$9!#(B






######################### tas_addr_allocate.c #########################
main$B%W%m%0%i%`$K!"(B

-------------------------------------

  unsigned *idlock;
  idlock = (unsigned*)tas_addr_allocate(sizeof(unsigned));

-------------------------------------

$B$H5-=R$9$l$P!"$9$Y$F$N%W%m%;%C%5$G6&M-$5$l$k(Bunsigned$B7?$NBg$-$5$N(B
$BNN0h$r(Baddress.h$B$GDj5A$5$l$?(BTAS_MEM_TOP$B!A(BTAS_MEM_BOTTOM$B$NHO0O$+$i3NJ](B
$B$7$^$9!#$=$N8e!"(B

-------------------------------------

  unsigned int *id;
  id = (unsigned*)shared_addr_allocate(sizeof(unsigned));
  *id = 0;
  unsigned int Mynum;
  *idlock = 1;

  while (*idlock)) {     /* _LOCK_(Global->idlock) */

  }
 
  Mynum = id;
  id++;

  *(Global->idlock) = 1; /* _UNLOCK_(Global->idlock) */; 

-------------------------------------

$B$H5-=R$7!"%7%_%e%l!<%?$G$N(BTAS_MEM_TOP$B!A(BTAS_MEM_BOTTOM$B$X$N%a%b%j(B
$B%"%/%;%9$r!"(B
$B!&%a%b%j$NCM$,(B1$B$J$i$P%a%b%j$K(B0$B$r=q$-9~$_%W%m%;%C%5$K(B0$B$rJV$9(B
$B!&%a%b%j$NCM$,(B0$B$J$i%W%m%;%C%5$K(B1$B$rJV$9(B
$B$H$7$F$*$1$P!"3F%W%m%;%C%5$N(BMynum$B$9$Y$F0[$J$kCM$H$J$j$^$9!#(B





######################### fad_addr_allocate.c #########################
main$B%W%m%0%i%`$K!"(B

-------------------------------------

  unsigned int *mem;
  mem = (unsigned int *)fad_addr_allocate(sizeof(unsigned int));

-------------------------------------

$B$H5-=R$9$l$P!"$9$Y$F$N%W%m%;%C%5$G6&M-$5$l$k(Bunsigned int$B7?$NBg$-(B
$B$5$NNN0h$r(Baddress.h$B$GDj5A$5$l$?(BFAD_MEM_TOP$B!A(BFAD_MEM_BOTTOM$B$NHO0O$+(B
$B$i3NJ]$7$^$9!#$=$N8e!"(B

-------------------------------------

  if ( get_puid() == 0 )
      *mem = get_punum();

  unsigned int *a;
  a = (unsigned int *)shared_addr_allocate(sizeof(unsigned int));
  *a = 0;

  if ( *mem > 1 )
      while(!(*a))
  else
      *a = 1;

-------------------------------------

$B$H5-=R$7!"%7%_%e%l!<%?$G$N(BFAD_MEM_TOP$B!A(BFAD_MEM_BOTTOM$B$X$N%a%b%j(B
$B%"%/%;%9$r!"(B
$B!&%a%b%j$NCM$rFI$_=P$7!"$=$NCM$+$i(B1$B0z$$$??t$r%a%b%j$K=q$-9~$`!#(B
   $B%W%m%;%C%5$K$O!"(B1$B0z$/A0$NCM$rJV$9!#(B
$B$H$7$F$*$1$P!"$9$Y$F$N%W%m%;%C%54V$GF14|$r<h$k$3$H$,$G$-$^$9!#(B
$B$3$l$r1~MQ$7$?$b$N$,>e$K>R2p$7$?(Bbarrier.c$B$G$9!#(B


########################### system_clock.c ###########################
main$B%W%m%0%i%`$K!"(B

-------------------------------------

  unsigned int start = calc_start(); 

-------------------------------------

$B$H5-=R$9$l$P!"(B0xd0000000$BHVCO$X$N%"%/%;%9$,H/9T$5$l!"FCDjItJ,E}7W(B
$B%G!<%?$N<hF@$,;O$^$j$^$9!#(B

-------------------------------------

  unsigned int start = calc_start(); 

-------------------------------------

$B$H5-=R$9$l$P!"(B0xd0000100$BHVCO$X$N%"%/%;%9$,H/9T$5$l!"FCDjItJ,E}7W(B
$B%G!<%?$N<hF@$,=*N;$7$^$9!#<hF@$5$l$?E}7W%G!<%?$O!"%7%_%e%l!<%7%g(B
$B%sA4BN$rDL$7$F<hF@$5$l$?E}7W%G!<%?$H$OJL$K!"<B9T=*N;;~$K=PNO$5$l(B
$B$^$9!#(B
