From 0d44b0458b1f4d5176695185dfc59294ff772d82 Mon Sep 17 00:00:00 2001 From: apostolof Date: Mon, 26 Apr 2021 19:31:49 +0300 Subject: [PATCH] Add report for first workshop --- reports/.gitignore | 284 ++++++++++++++++++++++ reports/workshop-1/1.0.introduction.tex | 5 + reports/workshop-1/2.0.implementation.tex | 24 ++ reports/workshop-1/3.0.issues-faced.tex | 3 + reports/workshop-1/4.0.testing.tex | 3 + reports/workshop-1/5.0.appendix.tex | 64 +++++ reports/workshop-1/front_page.tex | 1 + reports/workshop-1/report.pdf | Bin 0 -> 45320 bytes reports/workshop-1/report.tex | 66 +++++ 9 files changed, 450 insertions(+) create mode 100644 reports/.gitignore create mode 100755 reports/workshop-1/1.0.introduction.tex create mode 100644 reports/workshop-1/2.0.implementation.tex create mode 100644 reports/workshop-1/3.0.issues-faced.tex create mode 100644 reports/workshop-1/4.0.testing.tex create mode 100644 reports/workshop-1/5.0.appendix.tex create mode 100755 reports/workshop-1/front_page.tex create mode 100644 reports/workshop-1/report.pdf create mode 100755 reports/workshop-1/report.tex diff --git a/reports/.gitignore b/reports/.gitignore new file mode 100644 index 0000000..8a42ebb --- /dev/null +++ b/reports/.gitignore @@ -0,0 +1,284 @@ +## Core latex/pdflatex auxiliary files: +*.aux +*.lof +*.log +*.lot +*.fls +*.out +*.toc +*.fmt +*.fot +*.cb +*.cb2 +.*.lb + +## Intermediate documents: +*.dvi +*.xdv +*-converted-to.* +# these rules might exclude image files for figures etc. +# *.ps +# *.eps +# *.pdf + +## Generated if empty string is given at "Please type another file name for output:" +.pdf + +## Bibliography auxiliary files (bibtex/biblatex/biber): +*.bbl +*.bcf +*.blg +*-blx.aux +*-blx.bib +*.run.xml + +## Build tool auxiliary files: +*.fdb_latexmk +*.synctex +*.synctex(busy) +*.synctex.gz +*.synctex.gz(busy) +*.pdfsync + +## Build tool directories for auxiliary files +# latexrun +latex.out/ + +## Auxiliary and intermediate files from other packages: +# algorithms +*.alg +*.loa + +# achemso +acs-*.bib + +# amsthm +*.thm + +# beamer +*.nav +*.pre +*.snm +*.vrb + +# changes +*.soc + +# comment +*.cut + +# cprotect +*.cpt + +# elsarticle (documentclass of Elsevier journals) +*.spl + +# endnotes +*.ent + +# fixme +*.lox + +# feynmf/feynmp +*.mf +*.mp +*.t[1-9] +*.t[1-9][0-9] +*.tfm + +#(r)(e)ledmac/(r)(e)ledpar +*.end +*.?end +*.[1-9] +*.[1-9][0-9] +*.[1-9][0-9][0-9] +*.[1-9]R +*.[1-9][0-9]R +*.[1-9][0-9][0-9]R +*.eledsec[1-9] +*.eledsec[1-9]R +*.eledsec[1-9][0-9] +*.eledsec[1-9][0-9]R +*.eledsec[1-9][0-9][0-9] +*.eledsec[1-9][0-9][0-9]R + +# glossaries +*.acn +*.acr +*.glg +*.glo +*.gls +*.glsdefs +*.lzo +*.lzs + +# uncomment this for glossaries-extra (will ignore makeindex's style files!) +# *.ist + +# gnuplottex +*-gnuplottex-* + +# gregoriotex +*.gaux +*.gtex + +# htlatex +*.4ct +*.4tc +*.idv +*.lg +*.trc +*.xref + +# hyperref +*.brf + +# knitr +*-concordance.tex +# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files +# *.tikz +*-tikzDictionary + +# listings +*.lol + +# luatexja-ruby +*.ltjruby + +# makeidx +*.idx +*.ilg +*.ind + +# minitoc +*.maf +*.mlf +*.mlt +*.mtc[0-9]* +*.slf[0-9]* +*.slt[0-9]* +*.stc[0-9]* + +# minted +_minted* +*.pyg + +# morewrites +*.mw + +# nomencl +*.nlg +*.nlo +*.nls + +# pax +*.pax + +# pdfpcnotes +*.pdfpc + +# sagetex +*.sagetex.sage +*.sagetex.py +*.sagetex.scmd + +# scrwfile +*.wrt + +# sympy +*.sout +*.sympy +sympy-plots-for-*.tex/ + +# pdfcomment +*.upa +*.upb + +# pythontex +*.pytxcode +pythontex-files-*/ + +# tcolorbox +*.listing + +# thmtools +*.loe + +# TikZ & PGF +*.dpth +*.md5 +*.auxlock + +# todonotes +*.tdo + +# vhistory +*.hst +*.ver + +# easy-todo +*.lod + +# xcolor +*.xcp + +# xmpincl +*.xmpi + +# xindy +*.xdy + +# xypic precompiled matrices and outlines +*.xyc +*.xyd + +# endfloat +*.ttt +*.fff + +# Latexian +TSWLatexianTemp* + +## Editors: +# WinEdt +*.bak +*.sav + +# Texpad +.texpadtmp + +# LyX +*.lyx~ + +# Kile +*.backup + +# gummi +.*.swp + +# KBibTeX +*~[0-9]* + +# TeXnicCenter +*.tps + +# auto folder when using emacs and auctex +./auto/* +*.el + +# expex forward references with \gathertags +*-tags.tex + +# standalone packages +*.sta + +# Makeindex log files +*.lpz + +# xwatermark package +*.xwm + +# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib +# option is specified. Footnotes are the stored in a file with suffix Notes.bib. +# Uncomment the next line to have this generated file ignored. +#*Notes.bib diff --git a/reports/workshop-1/1.0.introduction.tex b/reports/workshop-1/1.0.introduction.tex new file mode 100755 index 0000000..4725fc1 --- /dev/null +++ b/reports/workshop-1/1.0.introduction.tex @@ -0,0 +1,5 @@ +\section{Εισαγωγή} + +Το παρόν έγγραφο είναι η αναφορά του πρώτου εργαστηρίου στο μάθημα Μικροεπεξεργαστές και Περιφερειακά. Στο πρώτο εργαστήριο μας ζητήθηκε να υλοποιήσουμε κώδικα που θα υπολογίζει την τιμή κατακερματισμού (hash) μίας αλφαριθμητικής ακολουθίας. Η βασική ρουτίνα main υλοποιήθηκε στη γλώσσα C και περιλαμβάνει την αρχικοποίηση του αλφαριθμητικού, την κλήση της συνάρτησης κατακερματισμού και την τύπωση της τιμής στην κονσόλα. Η συνάρτηση κατακερματισμού υλοποιήθηκε σε ARM Assembly, δέχεται ως ορίσματα το αλφαριθμητικό προς κατακερματισμό και τη διεύθυνση ενός lookup table με τις τιμές κατακερματισμού κάθε γράμματος που μας δόθηκαν στην εκφώνηση της άσκησης. + +Ο κώδικας είναι διαθέσιμος στο παράρτημα καθώς και στο Gitlab repository \href{https://gitlab.com/apostolof-ece-auth-gr/microprocessors-and-peripherals-2021}{εδώ}. diff --git a/reports/workshop-1/2.0.implementation.tex b/reports/workshop-1/2.0.implementation.tex new file mode 100644 index 0000000..2c284ff --- /dev/null +++ b/reports/workshop-1/2.0.implementation.tex @@ -0,0 +1,24 @@ +\section{Υλοποίηση} + +Στα πλαίσια του εργαστηρίου υλοποιήθηκε συνάρτησης σε ARM Assembly με την παρακάτω υπογραφή: + +\colorbox{codebackground}{ + \footnotesize\texttt{int generate\_hash( const char *str, const uint8\_t *hashtbl, int *hashptr )} +} + +Αρχικά, δόθηκαν ονόματα στους καταχωρητές οι οποίοι χρησιμοποιήθηκαν μέσα στη συνάρτηση ώστε αυτή να είναι πιο εύχρηστοι. Τονίζεται εδώ ότι ο καταχωρητής R0 είναι ο δείκτης (pointer) προς το αλφαριθμητικό (πρώτο όρισμα της συνάρτησης), ο καταχωρητής R1 είναι ο δείκτης προς το lookup table (δεύτερο όρισμα της συνάρτησης), ενώ ο καταχωρητής R3 είναι ο δείκτης προς τον ακέραιο αριθμό στον οποίο θα αποθηκευτεί το αποτέλεσμα της συνάρτησης (τρίτο όρισμα της συνάρτησης). + +Για την αποθήκευση και εύρεση των τιμών κατακερματισμού κάθε γράμματος δημιουργήθηκε ένα lookup table που αποθηκεύει στη μνήμη πίνακα με τις τιμές των γραμμάτων σειριακά. Έτσι, για την εύρεση της κατάλληλης τιμής αρκεί ο pointer που δείχνει στον πίνακα να μετακινηθεί τόσες θέσεις όσες η απόσταση του εκάστοτε γράμματος από τον χαρακτήρα A στο ASCII table. + +Έπειτα υλοποιήθηκε ένα τμήμα κώδικα με ετικέτα (label) hash\_loop. Ο κώδικας αυτός φορτώνει στη μνήμη το επόμενο γράμμα και μετά από μία σειρά ελέγχων αποφασίζει τη σωστή διαχείριση: + +\begin{itemize} + + \item Αν ο χαρακτήρας είναι μικρότερος από τον χαρακτήρα ``0'' στο ASCII table ή είναι ίσος με αυτόν, τότε το πρόγραμμα προσπερνάει αυτόν τον χαρακτήρα και πηγαίνει στο label hash\_skip + \item Αν ο χαρακτήρας είναι μικρότερος ή ίσος με το ``9'' στο ASCII table (δηλαδή ο χαρακτήρας είναι 1-9) τότε η τιμή του αφαιρείται από το hash\_val και έπειτα προστίθεται 48 διότι τα αριθμητικά ψηφία στο ASCII table ξεκινούν από το 48 + \item Αν ο χαρακτήρας είναι μικρότερος από τον χαρακτήρα ``A'', τότε το πρόγραμμα προσπερνάει τον χαρακτήρα και πηγαίνει στο label hash\_skip + \item Αν ο χαρακτήρας είναι μεγαλύτερος από τον χαρακτήρα ``Z'', τότε το πρόγραμμα προσπερνάει τον χαρακτήρα και πηγαίνει στο label hash\_skip + \item Σε κάθε άλλη περίπτωση (δηλαδή ο χαρακτήρας είναι A-Z), αφαιρούμε την τιμή 65 (η τιμή του ``A'' στο ASCII table) από τον χαρακτήρα ώστε να πάρουμε τη θέση του χαρακτήρα στο lookup table, έπειτα προσθέτουμε στη θέση τη διεύθυνση του lookup table, φορτώνουμε την τιμή της θέσης που έχει υπολογιστεί και την προσθέτουμε στο hash\_val +\end{itemize} + +Το τελευταίο τμήμα κώδικα που υλοποιήσαμε είναι αυτό με label hash\_skip. Σε αυτόν τον κώδικα αυξάνουμε την τιμή του pointer του αλφαριθμητικού κατά ένα. Μετά ελέγχουμε αν ο τελευταίος χαρακτήρας που διαβάστηκε είναι ίσος με τον χαρακτήρα NUL (τερματισμός string της C, ``/0'') και αν η ισότητα ισχύει, άρα έχουμε φτάσει στο τέλος του αλφαριθμητικού επομένως μεταφέρουμε το hash\_val στον καταχωρητή r0 ο οποίος είναι ο καταχωρητής που επιστρέφει και επιστρέφουμε από τη συνάρτηση. Ενώ, σε περίπτωση που η ισότητα δεν ισχύει κάνουμε branch εκ νέου στο label hash\_loop. diff --git a/reports/workshop-1/3.0.issues-faced.tex b/reports/workshop-1/3.0.issues-faced.tex new file mode 100644 index 0000000..6a2fb8c --- /dev/null +++ b/reports/workshop-1/3.0.issues-faced.tex @@ -0,0 +1,3 @@ +\section{Προβλήματα που αντιμετωπίστηκαν} + +Αρχικά έγινε προσπάθεια δημιουργίας του lookup table μέσα στο κομμάτι κώδικα της Assembly. Μετά από διάφορες δοκιμές και προσεγγίσεις, η προσπάθεια αυτή απέτυχε. Ως λύση στη δήλωση και αρχικοποίηση του lookup table, έγινε ορισμός του ως στατική (static), global σταθερά (const) της C και η διεύθυνση του πίνακα δόθηκε ως παράμετρος στη συνάρτηση. diff --git a/reports/workshop-1/4.0.testing.tex b/reports/workshop-1/4.0.testing.tex new file mode 100644 index 0000000..b80309e --- /dev/null +++ b/reports/workshop-1/4.0.testing.tex @@ -0,0 +1,3 @@ +\section{Δοκιμές (testing)} + +Για τον έλεγχο της υλοποίησης έγινε δοκιμή του κώδικα καλώντας τη συνάρτηση κατακερματισμού και χρησιμοποιώντας την κονσόλα ως έξοδο του αποτελέσματος. Η υλοποίηση δοκιμάστηκε με το αλφαριθμητικό που περιλαμβάνει όλους τους χαρακτήρες (σε τυχαία σειρά) του ASCII table (εκτός του χαρακτήρα NUL που χρησιμοποιείται για τον τερματισμό). Αποδεικνύεται μαθηματικά ότι αυτός ο έλεγχος είναι επαρκής. diff --git a/reports/workshop-1/5.0.appendix.tex b/reports/workshop-1/5.0.appendix.tex new file mode 100644 index 0000000..1855521 --- /dev/null +++ b/reports/workshop-1/5.0.appendix.tex @@ -0,0 +1,64 @@ +\section{Παράρτημα Α} + +\subsection{Κώδικας} + +\begin{lstlisting}[language=C] +#include +#include + +static const uint8_t hashtbl[] = { + 18, 11, 10, 21, 7, 5, 9, 22, 17, 2, 12, 3, 19, 1, 14, 16, 20, 8, 23, 4, 26, 15, 6, 24, 13, 25 +}; + +__asm int generate_hash( const char *str, const uint8_t *hashtbl, int *hashptr ) +{ +input_str RN r0 +hashtbl RN r1 +hashptr RN r2 +curr_char RN r6 +hash_val RN r3 + + MOV hash_val, #0 +hash_loop + LDRB curr_char, [input_str] + CMP curr_char, #'0' + BLS hash_skip + + CMP curr_char, #'9' + SUBLS hash_val, curr_char + ADDLS hash_val, #48 + BLS hash_skip + + CMP curr_char, #'A' - 1 + BLS hash_skip + + CMP curr_char, #'Z' + BHI hash_skip + + SUB r4, curr_char, #65 + ADD r4, hashtbl, r4 + LDRB r5, [r4] + ADD hash_val, r5 + +hash_skip + ADD input_str, input_str, # + CMP curr_char, #0 + BNE hash_loop + MOVEQ r0, hash_val + STR hash_val, [hashptr] + BX lr +} + +int main( void ) +{ + static const char STRING_TO_HASH[] = "FD7N8JT!EGMIQH2@3ZW0ABCRSLOYV45PK1#X6U!9"; + int hash = 0; + int hash2; + + hash = generate_hash(STRING_TO_HASH, hashtbl, &hash2); + printf("%d", hash); + printf("%d", hash2); + + return 0; +} +\end{lstlisting} diff --git a/reports/workshop-1/front_page.tex b/reports/workshop-1/front_page.tex new file mode 100755 index 0000000..1babec1 --- /dev/null +++ b/reports/workshop-1/front_page.tex @@ -0,0 +1 @@ +\maketitle \ No newline at end of file diff --git a/reports/workshop-1/report.pdf b/reports/workshop-1/report.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7a2d3b052a49e4b07886cfe8e6c002847736cbb0 GIT binary patch literal 45320 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