HY220 Pipelines and FSMs Χειμεριν Χειμερι ό Εξ άμη Εξ ν άμη ο

Σχετικά έγγραφα
Σχεδίαση υψηλών επιδόσεων pipelining παράλληλη επεξεργασία

Εργαστήριο Ψηφιακών Κυκλωμάτων

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων

ΗΥ220: Εργαστήριο σχεδίασης ψηφιακών κυκλωμάτων Χριστόφορος Κάχρης

Εργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Μηχανές Πεπερασμένων Καταστάσεων

ΗΥ225 Οργάνωση Υπολογιστών. Εισαγωγή στη Verilog

HY430 Εργαστήριο Ψηφιακών Κυκλωμάτων. Πολυπλέκτες Καμπύλη Παρέτο. Κωδικοποιητές/Από-κωδικοποιητές D FF

Σχεδίαση Ψηφιακών Συστημάτων

Μετρητής Ριπής ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ. Αναφορά 9 ης. εργαστηριακής άσκησης: ΑΦΡΟΔΙΤΗ ΤΟΥΦΑ Α.Μ.:

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

Εισαγωγή στη Verilog με το ISE

Σχεδίαση Ψηφιακών Συστημάτων

Εργαστήριο Ψηφιακών Κυκλωμάτων

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων

VERILOG. Γενικά περί γλώσσας

Δημοκρίτειο Πανεπιστήμιο Θράκης Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών. Συστήματα VLSI. Πρόοδος Άνοιξη 2018

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων

Επιβεβαίωση ορθής λειτουργίας απλών ψηφιακών κυκλωμάτων

Xρονισμός ψηφιακών κυκλωμάτων

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Ακολουθιακός Κώδικας

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων

HY130 Ψηφιακή Σχεδίαση

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Συντρέχων Κώδικας

Εργαστήριο Ψηφιακών Κυκλωμάτων. Χειμερινό Εξάμηνο

Χρονισμός και Απόδοση Υπολογιστικών Συστημάτων

Εισαγωγή στη Verilog

Χρονισμός Σύγχρονων Κυκλωμάτων, Καταχωρητές και Μανταλωτές. Χειμερινό Εξάμηνο

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 Συµπληρωµατική ΔΙΑΛΕΞΗ 14: Περιγραφή Ακολουθιακών Κυκλωµάτων στη VHDL

Περιγραφή Κυκλωμάτων με χρήση της VHDL. Δομική περιγραφή και περιγραφή Μηχανών Πεπερασμένων Καταστάσεων

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 18: Διαδικασία Σχεδίασης Ψηφιακών Συστηµάτων - Επανάληψη

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

Κυριάκης - Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.

HY330 Ψηφιακά Κυκλώματα - Εισαγωγή στα Συστήματα VLSI. 1 ΗΥ330 - Διάλεξη 7η - Ακολουθιακά Κυκλώματα

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Pipelining και Παράλληλη Επεξεργασία

Τέτοιες λειτουργίες γίνονται διαμέσου του

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 15: Καταχωρητές (Registers)

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

ΗΥ-225. Verilog HDL. Τα βασικά...

CLK CLK D Q D Q. Όταν η είσοδος αλλάζει μέσα D στο παράθυρο δειγματοληψίας Q η έξοδος μπορεί να γίνει

Χ. Σωτηρίου. Σχήμα 1: Προτεινόμενο Πρόγραμμα Επαλήθευσης του ολοκληρωμένου Επεξεργαστή

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Γλώσσα περιγραφής υλικού: Verilog

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Προχωρημένα Θέματα Σχεδιασμού με VHDL

Σχεδίαση Ψηφιακών Συστημάτων

ΠΛΕ- 027 Μικροεπεξεργαστές 4ο μάθημα: γλώσσα περιγραφής υλικού Verilog

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Πακέτα και Συστατικά Στοιχεία (Υποκυκλώματα)

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων

HY430 Εργαςτήριο Ψηφιακών Κυκλωμάτων. Πολυπλζκτεσ Καμπφλθ Παρζτο. Κωδικοποιθτζσ/Από-κωδικοποιθτζσ D FF

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων

Παράρτηµα Γ. Τα Βασικά της Λογικής Σχεδίασης. Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 13: Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων (Κεφάλαιο 6.

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων

VHDL για Σχεδιασµό Ακολουθιακών Κυκλωµάτων

26-Nov-09. ΗΜΥ 210: Λογικός Σχεδιασμός, Χειμερινό Εξάμηνο Καταχωρητές 1. Διδάσκουσα: Μαρία Κ. Μιχαήλ

Αρχιτεκτονική Υπολογιστών

Χρονισμός ψηφιακών κυκλωμάτων

Εισαγωγή στη γλώσσα περιγραφής υλικού VHDL. Βασικές εντολές και η περιγραφή συνδυαστικών κυκλωµάτων. Ψηφιακή Σχεδίαση µε CAD ΙΙ - ιάλεξη 2 -

Κυκλωμάτων» Χειμερινό εξάμηνο

Ψηφιακά Συστήματα VLSI

Τεχνικές σχεδιασμού μονοπατιών ολίσθησης

HY430 Εργαςτήριο Ψηφιακών Κυκλωμάτων. 1 ΗΥ430 - Διάλεξθ 10θ - Μθχανζσ Ρεπεραςμζνων Κατάςταςεων

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επιλογής. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

ΗΥ 232 Οργάνωση και στον Σχεδίαση Η/Y. Διάλεξη 8. Concepts of Digital Design Introduction to Verilog

Chapter 6 Αύξηση της απόδοσης με διοχέτευση (pipeline)

Κατανεμημένα Συστήματα. Javascript LCR example

Λογική Σχεδίαση Ι - Εξεταστική Φεβρουαρίου 2013 Διάρκεια εξέτασης : 160 Ονοματεπώνυμο : Α. Μ. Έτος σπουδών:

Μικροηλεκτρονική - VLSI

ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ : Κ. ΠΕΚΜΕΣΤΖΗ

Οδηγίες εγκατάστασης και χρήσης του Quartus

Κεφάλαιο 10 ο. Γ. Τσιατούχας. VLSI Systems and Computer Architecture Lab. Ακολουθιακή Λογική 2

Πανεπιστήμιο Πατρών. Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών

Εργαστήριο Αρχιτεκτονικής Υπολογιστών Ι. Εισαγωγή στη VHDL

Σύνθεση σε επίπεδο Αρχιτεκτονικής

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I

ΗΜΥ211 Εργαστήριο Ψηφιακών Συστηµάτων

ΗΥ 232 Οργάνωση και στον Σχεδίαση Η/Y. Διάλεξη 8. Concepts of Digital Design Introduction to Verilog

inputs outputs Σχήμα 3.1: Σχηματική παράσταση της λειτουργίας του testbench

Ακολουθιακές εντολές. (Peter Ashenden, The Students Guide to VHDL)

Multi Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

Κάθε functional unit χρησιμοποιείται μια φορά σε κάθε κύκλο: ανάγκη για πολλαπλό hardware = κόστος υλοποίησης!

8 η Θεµατική Ενότητα : Εισαγωγή στις Γλώσσες Περιγραφής Υλικού: Μοντέλα Συνδυαστικών Κυκλωµάτων

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Καταχωρητές 1

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. VHDL για Ακολουθιακά Κυκλώματα 1

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ

ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων

Άσκηση 2.1 Να σχεδιαστεί το διάγραµµα ροής πρωτοβάθµιας εξίσωσης της µορφής:

Όταν το πρόγραμμα φτάσει σε αυτή την εντολή και ο καταχωρητής PINA έχει την τιμή

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

Transcript:

HY220 Pipelines and FSMs Χειμερινό Εξάμηνο 2009 2010

Latency Throughput Tc a[n] b[n] x[n] a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] c[n] Input Regs +1 + Output Reg Input Regs Output Reg b[0] b[1] b[2] b[3] b[4] b[5] b[6] b[7] c[0] c[1] c[2] c[3] c[4] c[5] c[6] c[7] x[0] x[1] x[2] x[3] x[4] x[5] x[6] x[7] Η περίοδος Τc ανάλογη της καθυστέρησης ενός πολλαπλασιαστή και ενός αθροιστή + επιβάρυνση από καταχωρητές Τc > Tc2q + Tmult + Tadd + Tsetup Latency = Tc Throughput = 1/Tc ΗΥ220 University of Crete 2

Pipeline Χώριστε την εργασία που εκτελείτε σε επιμέρους μικρότερες υπο εργασίες Κάθε υπο εργασία περιμένουμε να χρειάζεται αρκετά λιγότερο χρόνο από τη συνολική εργασία. Στην ιδανική περίπτωση αν η συνολική εργασία απαιτούσε Τ μονάδες χρόνου θα θέλαμε κάθε υποεργασία (έστω Ν στο σύνολο) να απαιτεί Τ/Ν μονάδες χρόνου ΗΥ220 University of Crete 3

Pipeline ΗΥ220 University of Crete 4

Pipeline ΤMULT = 5 ns TADD = 2 ns TINC = 1 ns TSETUP= 0.4 ns TC2Q = 0.3ns To χειρότερο μονοπάτι στο πρώτο στάδιο ΤCYCLE > TC2Q + TMULT + TSETUP = 0.3 + 5 + 0.4 = 5.7 ns Επιβάρυνση καταχωρητών = Χρόνος λόγω καταχωρητών / Συνολικός χρόνος = 0.7 ns / 5.7 = 12% Στην αρχική εκδοχή ή( (χωρίς ί pipeline καταχωρητές) ) Συνολικός χρόνος = 7.7 ns (TC2Q + TMULT + ΤADD +TSETUP ) Επιβάρυνση καταχωρητών εισόδου/εξόδου / = 0.7/7.7 = 9% ΗΥ220 University of Crete 5

Τοποθέτηση καταχωρητών ΗΥ220 University of Crete 6

Τοποθέτηση καταχωρητών Διαφορετικά μονοπάτια συναντούν διαφορετικό πλήθος από καταχωρητές στη διαδρομή τους προς την έξοδο Μια σωστά pipelined λύση αυτό πρέπει να το απαγορεύει ΗΥ220 University of Crete 7

Παραδείγματα Pipeline ΗΥ220 University of Crete 8

More Pipelined ΗΥ220 University of Crete 9

Παράλληλες μονάδες με χρονική επικάλυψη ΗΥ220 University of Crete 10

Παράλληλες μονάδες με χρονική επικάλυψη ΗΥ220 University of Crete 11

FIR Example Create an FIR filter y[n] = ax[n] + bx[n 1] + cx[n 2] x[n] x[n 1] x[n 2] *a *b *c * y[n] ΗΥ220 University of Crete 12

FIR Example The easy way 3multipliers, 2 adders assign y <= a*x + b*x x_1 1+ c*x x_2; x[n] x[n 1] x[n 2] *a *b *c * y[n] ΗΥ220 University of Crete 13

FIR Example Dataflow x[n] x[n 1] x[n 2] a b c * 0 + ΗΥ220 University of Crete 14

FSM always @( posedge Clock) begin if (Reset) CurrentState <= STATE_0; else CurrentState <= NextState; always @(CurrentState) begin sel_x = 2'b0; sel_ coef = 2'b0; x[n x[n x[n] sel_adder = 1'b0; 1] 2] case (CurrentState) STATE_0: STATE_1: STATE_2: begin sel_x = 0; sel_coef = 0; sel_adder = 0; NextState = STATE_1; begin sel_x = 1; sel_coef = 1; sel_adder = 1; NextState = STATE_2; begin sel_x = 2; sel_coef = 2; sel_adder = 1; NextState = STATE_0; case ΗΥ220 University of Crete 15 a b c * 0 +

Multiplexers always @(sel_x or x or x_1 or x_2) begin case (sel x) _ 0: selected_x <= x; 1: selected_x <= x_1; 2: selected_x <= x_2; default: selected_x <= x; case x[n] x[n x[n 1] 2] * always @(sel_coef) begin case (sel_coef) 0: selected_coef <= 1; 1: selected_coef <= 2; 2: selected_coef <= 3; default:selected_coef <= 1; case a b c 0 + always @(sel_adder or mul_out) begin case (sel_adder) 0: selected_add <= 0; 1: selected_add <= mul_out; default:selected_coef <= 1; case ΗΥ220 University of Crete 16

Adder Multiplier always @(selected_coefcoef or selected_x) begin mul_out <= selected_x * selected_coef; x[n] x[n x[n 1] 2] always @(mul_out or selected_add) begin add_out <= mul_out + selected_add; a b c * 0 + always @( posedge Clock) begin if (Reset) Out <= 0; else Out <= add_out; ΗΥ220 University of Crete 17

FSM Pipeline x[n] x[n 1] x[n 2] a b c * 0 + ΗΥ220 University of Crete 18

Pipelined FSM always @( posedge Clock) begin if (Reset) CurrentState <= STATE_0; else CurrentState <= NextState; always @(CurrentState) begin sel_x = 2'b0; sel_ coef = 2'b0; x[n x[n x[n] sel_adder = 1'b0; 1] 2] case (CurrentState) STATE_0: STATE_1: STATE_2: begin sel_x = 0; sel_coef = 0; sel_adder = 1; NextState = STATE_1; begin sel_x = 1; sel_coef = 1; sel_adder = 1; NextState = STATE_2; begin sel_x = 2; sel_coef = 2; sel_adder = 0; NextState = STATE_0; case ΗΥ220 University of Crete 19 a b c * 0 +

Processor ΗΥ220 University of Crete 20

Processor Pipelined ΗΥ220 University of Crete 21

Inputs in FSM Case study: Read the PIN and them print it to the LCD FSM ΗΥ220 University of Crete 22

FSM with inputs assign key_pressed = 1 2 3 0; always @(key_pressed or CurrentState) begin output = 0; case (CurrentState) STATE_S0: begin if (key_pressed) NextState = STATE_S1; STATE_S1: S1: begin if (key_pressed) NextState = STATE_S2; STATE_S2: begin if (key_pressed) NextState = STATE_S3; STATE_S3: begin output = pin; if (key_pressed) NextState = STATE_S0; default: begin // in case we reach a bad state case S0 S1 S2 S3 key key key print ΗΥ220 University of Crete 23

FSM with inputs pin[0] pin[1] pin[2] key_pressed always @(posedge Clk) begin if (~Reset_) pin = 3 b0; else if (FSMstate==S0) pin = {2 b0, key_pressed}; else if (FSMstate==S1) pin = {1 b0, pin[0], key_pressed}; else if (FSMstate==S2) pin = {pin[1:0], key_pressed}; ΗΥ220 University of Crete 24