Handling Local Variables General Purpose Registers DESIGN AND TUNING OF THE AVR ARCHITECTURE AVR = RISC, Store/Load machine, 32 registers, ALU instructions of one cycle, single level pipeline, Harvard architecture, αλλά με σχετικά μεγάλο αριθμό εντολών. Tuned to optimize C code, i.e. Handling Local Variables General Purpose Registers
Μελετώντας τις εντολές προγραμμάτων σε γλώσσα υψηλού επιπέδου (ΓΥΕ) και σε γλώσσα χαμηλού επιπέδου (ΓΧΕ) ανακαλύπτεται το σημασιολογικό κενό ανάμεσα τους. Η συχνότητα κατανομής των εντολών στις διάφορες κατηγορίες είναι διαφορετική. Πρέπει να εξετασθούν προγράμματα σε διαφορετικές ΓΥΕ με τα αντίστοιχα σε ΓΧΕ που προκύπτουν από τον μεταγλωττιστή ΜΕ ΣΚΟΠΟ ΤΗΝ ΣΧΕΔΙΑΣΗ ΤΗΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΤΟΥ ΥΣ ΕΤΣΙ ΏΣΤΕ ΣΥΧΝΑ ΧΡΗΣΙΜΟΠΟΙΟΥΜΕΝΕΣ ΕΝΤΟΛΕΣ ΝΑ ΕΚΤΕΛΟΥΝΤΑΙ ΤΑΧΥΤΕΡΑ ΚΑΙ ΝΑ ΚΑΤΑΛΑΜΒΑΝΟΥΝ ΛΙΓΟΤΕΡΟ ΧΩΡΟ. In order to ensure that the new ATMEL AVR family of microcontrollers was well suited as a target for C compiler, the external C compiler development was started before the AVR architecture and instruction set were completed. During the initial development of the C compiler, several potential improvements in the AVR were identified and implemented.
Instruction Set Architecture : Σετ εντολών Βελτίωση των επιδόσεων στα διάφορα στάδια σχεδίασης της CPU Instruction Set Architecture : Σετ εντολών Τρόποι προσπέλασης Μοντέλο προγραμματισμού Λειτουργική οργάνωση και Λογική σχεδίαση (Τρόπος υλοποίησης των ΑLU, Kαταχωρητών, μονάδας ελέγχου, DB, AB, CB, χρονισμού, συγχρονισμού) Κατασκευή ( Τεχνολογία ΟΚ, κατανάλωση ισχύος, ψύξη) ΑΠΑΡΑΙΤΗΤΗ Η ΓΝΩΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΙΚΡΟΗΛΕΚΤΡΟΝΙΚΗΣ ΜΕΤΑΓΛΩΤΤΙΣΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΑΠΑΙΤΗΣΕΩΝ ΣΕ ΠΕΡΙΦΕΡΕΙΑΚΑ
In general it is important to use 8-bit numbers in an 8-bit MCU since all data memories are 8 bit wide. However, when using C, larger number like integers (16 bit), long (32 bit) and float (32 bits floating point) are frequently used. Traditionally, computing on such numbers generates very large code, but since the AVR is designed to handle it, the AVR code generated is small.
Tuning the AVR architecture and instruction set Implementation of : 1) 1a)
1b) Μemory pointers (three pointers instead of two)
1c) Direct addressing
Κ.μ. 4 2 Κ.μ. 10 8
2) Zero flag propagation
3) Introduction of instructions: SBCI – CPI - CPC 3a) 3b)
3c)