Está en la página 1de 20

PROCESADOR

 RISC  
(  Reduced  Instruc4on  Set  Computer)  
 
 
Miguel    A.  Melgarejo  
 
Facultad  de  Ingeniería    
Universidad  Distrital  Francisco  José  de  Caldas  
 
 
 
Contenido  
•  Segmentación    
 
•  Arquitectura  de  un  procesador  RISC  
 
•  Caracterís4cas  del  procesador  RISC  
 
•  Operación  

•  Avance  de  datos  


 
•  Predicción  de  saltos  
Segmentación  

R1   c1   c2   c3   c4   R2  

CLK  

R1   C1   C2   C3   C4   R2  
R1   C1   C2   C3   C4   R2  
R1   C1   C2   C3   C4   R2  
Segmentación  
R1   c1   R2   c2   R3   c3   R4   c4   R5  

CLK  

R1   C1   R2   C2   R3   C3   R4   C4   R5  

R1   C1   R2   C2   R3   C3   R4   C4   R5  

R1   C1   R2   C2   R3   C3   R4   C4   R5  

R1   C1   R2   C2   R3   C3   R4   C4   R5  

R1   C1   R2   C2   R3   C3   R4   C4   R5  
U4lidad  de  la  segmentación  

•  Segmentar  mejora  el  desempeño  en  frecuencia,  


dado  que  los  4empos  de  propagación  entre  registros  
son  más  pequeños.  

•  Aumenta  el  paralelismo    (más  operaciones  por  ciclo  


de  reloj)  
 

 
Arquitectura  del  procesador  RISC  

No  hay  unidad  de  


control  

Cada  Etapa  de  la  


Segmentación  
Es  controlada  por  
Un  registro  
Caracterís4cas  del  procesador  RISC  

•  Set  de  instrucciones  reducido  (  pocas  


instrucciones)  
•  Mayor  longitud  de  palabra    
•  Memoria  para  datos  independiente  de  la  
memoria  para  programa.  
•  Ejecuta  operaciones  en  paralelo  
Conjunto  de  instrucciones  Wpico  
•  Rd=Rf1  op  Rf2  
•  Rd=K  op  Rf2   • Tanto  la  carga  como  el  almacenamiento  
está  limitado  al  modo  de  direccionamiento  
•  LDrel  Rd,  Rf2,  K   Rela4vo  
 
•  STrel  Rf1,Rf2,K   • Los  saltos  condicionados    4enen    direccionamiento  
•  Jump  K   Rela4vo  
 
•  Jump  K,Rf2   • Existe  una  instrucción  para  no  hacer  nada.  

•  Bflag  Rf1,Rf2,K  
•  No-­‐op  
 
Operación  
Ejemplo  de  programa  para  el  procesador  RISC  

Dirección   Instrucción  
100   Load  a,base,off  
101   Load  b,base,off  
102   Load  c,base,off  
103   Load  d,base,off   x  =  a  +  b  
104   Add  x,a,b   y  =  b  –  c  
105   Sub  y,b,c  
z  =  c  +  d  
106   Add  z,c,d  
107   Store  x,base,off  
108   Store  y,base,off  
109   Store  z,bae,off  
110   -­‐  
Operación  
Ciclo  de   0   1   2   3   4   5   6   7   8   9   10   11   12   13  
reloj  
Leer  PC   100   101   102   103   104   105   106   107   108   109   110  
                     
Escribir                      
en  IR   Load   Load   Load   Load   Add   Sub   Add   Store   Store   Store  
Escribir  en           a   b   c   x   y   z    
A                        
                       
Escribir                          
En  B   base   base   base   base   b   c   d   base   base   base    

Escribir  en   Base   Base+   Base   Base  +         Base Base  +   Base  +  


AR   +offa   off  b   +  off  c   offc  d         +off  x   off  y   off  z  
           
Escribir          
En  DR   a+b   b-­‐c   c+d  

Escribir  en         a   b   c   d   x   y   z          
RF                              
Escribir                              
En  Mem                       x   y   z    
Escribir  en                              
PC   101   102   103   104   105   106   107   108   109   110   111   112   113   114  
   
   
   
 
Dependencia  de  datos  
•  Suponga  que  se  4ene  el  siguiente  algoritmo:  

temp  =  a  +  b  
total  =  temp  +  c  
 
Observe  que  hay  una  dependencia  entre  la  variable  
total  y  la  variable  temp  (  es  necesario  haber  
calculado  temp  para  poder  calcular  total).  
 
Dependencia  y  No-­‐operaciones  
Dirección   Instrucción  
100   Load  a,base,  offa  
101   Load  b,base,oh  
102   Load  c,base,offc  
103   No-­‐op  
Dada  la  dependencia  entre  
104   Add  sum,a,b  
Datos  es  necesario  introducir  
105   No-­‐op   Instrucciones  de  No-­‐operación.  
106   No-­‐op  
107   Add  total,c,  sum  
108   No-­‐op  
109   No-­‐op  
110     Store  total,base,off  
Efectos  de  la  dependencia  
Ciclo  de   0   1   2   3   4   5   6   7   8   9   10   11   12   13  
reloj  
Leer  PC   100   101   102   103   104   105   106   107   108   109   110  
                       
Escribir                        
en  IR   Load   Load   Load   No-­‐op   Add   No-­‐op   No-­‐op   Add   No-­‐op   No-­‐op   store  
Escribir  en           a   Temp       Total  
A                    
                   
Escribir                    
En  B   base   base   base     b   c     base  
 
 
 
Escribir  en   Base   Base+   Base           Base
AR   +offa   off  b   +  off  c           +oi  
             
Escribir            
En  DR   a+b   temp+c   total  

Escribir  en         a   b   c     temp       total        


RF                              
Escribir                              
En  Mem                              
Escribir  en                             total  
PC   101   102   103   104   105   106   107   108   109   110   111   112   113   114  
   
   
   
 
Avance  de  datos  
•  Se   puede   incluir   caminos   que   permitan  
avanzar   datos   una   o   más   etapas   de  
segmentación  (  data  forwarding).  
 
•  Ejemplos:  
 Camino  directo  entre  la  ALSU  y  el  registro  A.  
  Camino   directo   entre   DR   o   la   memoria   y   el  
registro  B.  
 
 
Avance  de  datos  
Avance  de  datos  
Dirección   Instrucción  

100   Load  a,base,  offa  

101   Load  b,base,oh  

102   Load  c,base,offc  

103   Add  sum,a,b  

104   Add  total,c,  sum  

105   Store  total,base,off  

0   1   2   3   4   5   6   7   8  
Leer  PC   100   101   102   103   104   105  
             
Escribir  IR   Load   Load   Load   Add   Add   Store  
Escribir    A         a   a+b   Temp  +  c  
             
Escribir    B   Base   Base   Base   b   c   base  

Escribir    AR   Base+   Base  +  off   Base+       Base+off    


  off   off          
Escribir    DR   a+b   Temp  +  c   Temp+c    
   
Escribir  RF         a   b   c   Temp   Temp  +  c    
Escribir  Mem                   Total  
Escribir    PC   101   102   103   104   105   106   107   108   109  
Saltos    
Dirección   Instrucción  
Este  programa  calcula  el  máximo  y  el  
100   Bgoeq  a,b,  +10   mínimo  de  dos  números  almacenados  
101   No-­‐op   en  las  variables  a  y  b.  
 
102   No-­‐op  
La  primera  instrucción  verifica  si  a  >  b.  
103   No-­‐op    
104   Move  max,b   En  caso  verdadero,  el  procesador  debe  
saltar  a  la  posición  de  memoria  110,  
105   Move  min,a   donde  carga  la  variable  max  con  el  
106   Jump+6   valor  de  a  y  la  variable  min  con  el  de  b.  
107   No-­‐op    
En  caso  contrario,  el  procesador  
108   No-­‐op   con4nua  a  par4r  de  la  posición  101.  Se  
109   No-­‐op   ejecutan  tres  no-­‐operaciones  luego  a  la  
110   Move  max,  a   variable  max  se  le  asigna  el  valor  de  b  y  
a  la  variable  min  el  de  a.  El  procesador  
111   Move  min,  b   salta  a  la  posición  112.  
112   -­‐    
 
Saltos  
No  se  produce  el  salto  
0   1   2   3   4   5   6   7   8   9   10  
Leer  PC   100   101   102   103   104   105   106   107   108   109   112  
Escribir  IR   Bgoeq   Nop   Nop   Nop   Move   Move   Jump   Nop   Nop   Nop  

Escribir    A   a   b   a  
Escribir    B   b  

Escribir    AR        
Escribir    DR     b   a  
Escribir    Status   a≥b  

Escribir  RF                 Max   Min    


Escribir  Mem                      
Escribir    PC   101   102   103   104   105   106   107   108   109   112  

Se  produce  el  salto  


0   1   2   3   4   5   6   7   8   9   10  
Leer  PC   100   101   102   103   110   111   112  
Escribir  IR   Bgoeq   Nop   Nop   Nop   Move   Move    

Escribir    A   a   a   b  
Escribir    B   b  

Escribir    AR        
Escribir    DR     a   b  
Escribir    Status   a≥b  

Escribir  RF                 Max   Min    


Escribir  Mem                      
Escribir    PC   101   102   103   110   111   112        
Predicción  del  salto  
Salto  no  
0   1   2   3   4   5   6   7   8  
Leer  PC   100   101   102   103   104   105   106   106  
Escribir  IR   Bgoeq   Move   Move   Jump   Move   Move  

Escribir    A   a   b   a   a   b  
Escribir    B   b  

Escribir    AR            
Dirección   Instrucción   Escribir    DR     b   a   a   a  
Escribir    Status   a≥b  
100   Bgoeq  a,b,+4  
Escribir  RF           max   min    
101   Move  max,b   Escribir  Mem                
Escribir    PC   101   102   103   104   105   106   106  
102   Move  min,  a  

103   Jump  +3  


Salto  si  
104   Move  max,  a  
0   1   2   3   4   5   6   7   8  
105   Move  min,  b  
Leer  PC   100   101   102   103   104   105   106   106  
106   Escribir  IR   Bgoeq   Move   Move   Jump   Move   Move  

Escribir    A   a   b   a   a   b  
Escribir    B   b  

Escribir    AR            
Escribir    DR     b     a   b  
Escribir    Status   a≥b  

Escribir  RF                 max   min  


Escribir  Mem                
Escribir    PC   101   102   103   104   105   106    
Referencias  
Esta  lección  está  basada  en  el  material  de  
referencia:  
 
D.  Gajski,  “  Principios  de  diseño  digital”,  Pren4ce  
Hall,  Madrid,  1997,  Cap  9  (  9.7  –  9.12)  
 

También podría gustarte