Description: Description: Description: Description: Description: Description: UCY

University of Cyprus
Dept. of Computer Science

ΕΠΛ 221: Οργάνωση Υπολογιστών
και
Συμβολικός Προγραμματισμός

Χειμερινό 2017


Directory
EPL221 | Course Contract | Lectures & Readings | Tutorials | Labs | Resources | What's New?


Θέματα Εργαστήριων

Οι βαθμολογίες από τις εργασίες και τα διαγνωστικά είναι εδώ. (Πέμπτη, 7 Δεκεμβρίου 2017)

Αντιπροσώπευση Functions σε flowcharts δέστε σελίδα 10 πιο κάτω:

http://wps.aw.com/wps/media/objects/8415/8617573/appendices/AppendixC.pdf

 

Week

Date

Περιγραφή

Εργασίες / ΑΝΑΓΝΩΣΜΑΤΑ

Διαφάνειες

1

04/09/2017

Εισαγωγή στον Συμβολικό Προγραμματισμό

Εργαστήριo 1 Εισαγωγή στην Συμβολική Γλώσσα Προγραμματισμού ARMv8-A

 

2

11/09/2017

Εργαλεία για Συμβολικό Προγραμματισμό σε ARMv8-A

 

Εργαστήριo 1 Εισαγωγή στην Συμβολική Γλώσσα Προγραμματισμού ARMv8-A

 

3

18/09/2017

ARMv8-A

Arithmetic, Load/Store

Κατ’ οίκoν Εργασία 1: Ημερομηνία Παράδοσης 02/10/2017

 Homework1Fall2017.pdf

Εργαστήριo 2 στην Αρχιτεκτονική ARMv8 -A

Arithmetic and Logic Instr. data, Branch and Loops

Lab2_examples.zip

4

25/09/2017

ARMv8-A

Load/Store, Control Flow Instructions

 

Εργαστήριo 2 στην Αρχιτεκτονική ARMv8 -A

Arithmetic and Logic Instr. data, Branch and Loops

 

5

02/10/2017

Στοίβα και Υπόλοιπο Διαίρεσης (%)

Εργαστηριακή Άσκηση με στοίβα και υπολογιστής υπολοίπου διαίρεσης.

 

Κατ’ οίκον Εργασία 2:

Homework2Fall2017.pdf

(Use a different Seed that mine)

./a.out > output.txt

1234567890ABCDEF

1000

1000000

After removing the first line in output.txt

cat output.txt | sort -n | uniq -c > results.txt

 

In Excel you should get something like this:

 

EPL221Lab5_ARMv8.pdf

6

09/10/2017

 

Quiz 1:

 

7

16/10/2017

Συναρτήσεις Φύλλα (Leaf Functions)

Memory Allocation

https://sourceware.org/binutils/docs/as/

Using GNU as: The gnu Assembler

https://linux.die.net/man/3/malloc

 

EPL221Lab6ARMv8Fall2017.pdf

Lab6_Exercises.zip

8

23/10/2017

Non-Leaf Functions/Recursion and

fopen, fclose, fscanf, fprintf, feof,

stdio, fgets

Παράδοση Εργασίας 2.

 Κατ’ οίκον Εργασία 3: Είναι εδώ (Thursday, 7 December 2017)

EPL221Lab7ARMv8Fall2017.pdf

Lab7_examples.zip

9

30/10/2017

 

Quiz 2:

Πολύ σημαντικό όσο αφορά την Assembly:

Η χρήση των καταχωρητών στα προγράμματα σας θα πρέπει να συνάδει με τις τυποποιήσεις

για τις οποίες μιλήσαμε στο εργαστήριο (δες Procedure Call Standard for the ARM 64-bit Architecture/ ABI).

Οι καταχωρητές θα πρέπει να χρησιμοποιούνται με αύξουσα σειρά.

Π.χ. αν η συνάρτηση έχει 3 παραμέτρους τότε οι τιμές των παραμέτρων θα πρέπει να είναι στους καταχωρητές

x0, x1, x2 και αν επιστρέφει δύο τιμές αυτές θα πρέπει να είναι αποθηκευμένες στους x0 και x1.

Δεν υπάρχει άλλος τρόπος για να στείλω και να πάρω πίσω τιμές από συναρτήσεις.

Οι συναρτήσεις να γράφονται μετά την main. Μελετήστε και τα παραδείγματα που σας έχω δώσει.

Σε αντίθετη περίπτωση ΟΛΟ το πρόγραμμα σας θα είναι λάθος.

 

10

06/11/2017

AArch64 Floating-Point

Παράδοση Εργασίας 3.

Παρουσίαση Προτεινόμενου αλγορίθμου για Project (Υποβολή στο moodle)

Διαφάνεια 1: Ποιος είναι ο αλγόριθμος που προτείνω και πιο το πρόβλημα που λύνει.

Διαφάνεια 2: Λύση του αλγορίθμου σε γλώσσα υψηλού επιπέδου.

Διαφάνεια 3: Ποιες οι δομές δεδομένων που χρησιμοποιεί.

Διαφάνεια 4: Βιβλιογραφία και αναφορές.

 

Readings and References from the Web:

http://infocenter.arm.com/help/topic/com.arm.doc.uan0015b/Cortex_A57_Software_Optimization_Guide_external.pdf

https://community.arm.com/android-community/f/discussions/3188/optimizing-code-for-arm-armv7-armv8-memory-models-and-neon-intrinsics

 

PROJECT: Υλοποίηση ενός αναδρομικού αλγορίθμου σε ARMv8-A και σύγκριση  του με τον αντίστοιχου κώδικα που παράγει από την υλοποίηση σε C ο gcc για –O0, -O1, -O2, -O3 και –Os.

Η αναφορά θα πρέπει να έχει την μορφή 2014_04_msw_a4_format.doc

Μπορείτε να επιλέξετε ένα από τους πιο κάτω αναδρομικούς αλγορίθμους.

Algorithm Implementation:

Backtracking and game solvers

Sudoku Solver Using Recursive Backtracking

N Queen Problem Using Recursive Backtracking

http://www.geeksforgeeks.org/backtracking-algorithms/

ή

BLAS (Basic Linear Algebra Subprograms) Wikipedia

EPL221Lab8ARMv8Fall2017.pdf

 

Lab8_examples.zip

11

13/11/2017

 

Read this first.

ProjectReportTemplateForEPL221.doc

Check this sample.

 

??? Quiz 3:

https://en.wikipedia.org/wiki/Basic_block

Control flow analysis

sei.pku.edu.cn/~yaoguo/ACT11/slides/lect2-opt.ppt

 

 

12

20/11/2017

 

PROJECT Phase A Submission

 

13

27/11/2017

 

PROJECT Final Submission

 

 


[EPL221]


Petros Panayi, © 2017