Differences

This shows you the differences between two versions of the page.

Link to this comparison view

ac-is:lab:lab08 [2021/11/22 10:34]
ionut.pascal
ac-is:lab:lab08 [2023/12/13 11:09] (current)
alexandru.predescu [Unitatea de comandă]
Line 1: Line 1:
 ====== Laboratorul 8 - Calculatorul Didactic: Instrucțiuni cu un operand ====== ====== Laboratorul 8 - Calculatorul Didactic: Instrucțiuni cu un operand ======
  
-Obiectivul acestui laborator și al celor care urmează după el, îl reprezintă familiarizarea cu formatul instrucțiunilor calculatorului didactic și cu modul de funcționare al unității de comandă. În acest scop se vor implementa în Verilog interpretarea și comandarea execuției pentru instrucțiunile specificate în arhitectura calculatorului didactic studiat la curs. +Obiectivul acestui laborator și al celor care urmează după el, îl reprezintă familiarizarea cu **formatul instrucțiunilor** calculatorului didactic și cu **modul de funcționare al unității de comandă**. În acest scop se vor implementa în Verilog ​**interpretarea** și **comandarea execuției** pentru instrucțiunile specificate în arhitectura calculatorului didactic studiat la curs. 
  
 În laboratorul curent vom implementa unitatea de comandă pentru instrucțiunile aritmetice și logice cu un singur operand. În laboratorul curent vom implementa unitatea de comandă pentru instrucțiunile aritmetice și logice cu un singur operand.
Line 9: Line 9:
  
  
-Componentele calculatorului didactic implementate în laboratoarele precedente ([[.:​lab06|registre]],​ [[.:lab07|ual]]) formează unitatea de execuție a procesorului. Pentru ca acestea să rețină date și să execute instrucțiunile procesorului,​ avem nevoie de o logică hardware de comandă a acestora, logică implementată în unitatea de comandă. ​+Componentele calculatorului didactic implementate în laboratoarele precedente ([[.:​lab06|registre]],​ [[.:lab07|UAL]]) formează unitatea de execuție a procesorului. Pentru ca acestea să rețină date și să execute instrucțiunile procesorului,​ avem nevoie de o logică hardware de comandă a acestora, logică implementată în unitatea de comandă. ​
  
 În interiorul unui procesor, instrucțiunile trec prin mai multe etape. Pentru calculatorul didactic avem următoarele faze:  În interiorul unui procesor, instrucțiunile trec prin mai multe etape. Pentru calculatorul didactic avem următoarele faze: 
   * //Fetch// - aducerea instrucțiunii din memorie în registrul instrucțiune (RI)   * //Fetch// - aducerea instrucțiunii din memorie în registrul instrucțiune (RI)
   * //Decode// - decodificarea instrucțiunii   * //Decode// - decodificarea instrucțiunii
 +  * //Load// - încărcarea operanzilor
   * //Execute// - executarea instrucțiunii   * //Execute// - executarea instrucțiunii
-  * //Write-back// - scrierea rezultatului (dacă este cazul)+  * //Store// - scrierea rezultatului (dacă este cazul)
  
 Unitatea de comandă este implicată în toate etapele de mai sus: comandă prin semnalare aducerea codurilor instrucțiunilor din memorie, le decodifică și transmite semnale către unitățile (registre, ual, memorie) implicate în execuția acelor instrucțiuni. La terminarea execuției fiecărei instrucțiuni se comandă scrierea rezultatului (dacă este cazul) și se actualizează registrul //CP// (Contor Program) cu adresa instrucțiunii următoare. Unitatea de comandă este implicată în toate etapele de mai sus: comandă prin semnalare aducerea codurilor instrucțiunilor din memorie, le decodifică și transmite semnale către unitățile (registre, ual, memorie) implicate în execuția acelor instrucțiuni. La terminarea execuției fiecărei instrucțiuni se comandă scrierea rezultatului (dacă este cazul) și se actualizează registrul //CP// (Contor Program) cu adresa instrucțiunii următoare.
Line 35: Line 36:
  
  
-Unitatea de comandă este implementată ca un automat de stări. Modulul acesteia are următoarele semnale:+Unitatea de comandă este implementată ca un **automat de stări**. Modulul acesteia are următoarele semnale:
   * intrări: //clk//, //rst//, //ri// (codul instrucțiunii),​ //ind// (indicatorii de condiție)   * intrări: //clk//, //rst//, //ri// (codul instrucțiunii),​ //ind// (indicatorii de condiție)
   * ieșiri: ​   * ieșiri: ​
Line 155: Line 156:
  
   * {{.:​lab07:​sol:​lab8_skel.zip|Schelet de cod}}   * {{.:​lab07:​sol:​lab8_skel.zip|Schelet de cod}}
-  * {{|Soluție laborator}} (disponibilă începând cu 27.11.2021) 
   * <​html><​a class="​media mediafile mf_pdf"​ href="​https://​ocw.cs.pub.ro/​courses/​ac-is/​lab/​lab08?​do=export_pdf">​PDF laborator</​a></​html> ​   * <​html><​a class="​media mediafile mf_pdf"​ href="​https://​ocw.cs.pub.ro/​courses/​ac-is/​lab/​lab08?​do=export_pdf">​PDF laborator</​a></​html> ​
   * {{..:​resurse:​cheat-sheet.pdf|Cheat-sheet calculator didactic}}   * {{..:​resurse:​cheat-sheet.pdf|Cheat-sheet calculator didactic}}
   * {{..:​resurse:​ac5.pdf|Arhitectura calculatorului didactic}}   * {{..:​resurse:​ac5.pdf|Arhitectura calculatorului didactic}}
 +  * {{.:​lab08:​sol:​lab8_sol.zip|Soluție laborator}}
  
  
-<ifauth @user>+<ifauth @ac-is>
 ---- ----
 +  * {{.:​lab08:​sol:​lab8_sol.zip|Soluție laborator}}
   * [[ac-is:​internal:​guidelines|Ghid asistent]]   * [[ac-is:​internal:​guidelines|Ghid asistent]]
 </​ifauth>​ </​ifauth>​
  
ac-is/lab/lab08.1637570080.txt.gz · Last modified: 2021/11/22 10:34 by ionut.pascal
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0