Course title, code: Computer Architectures 2, GAINBAN-SZAMARC2-1

Name and type of the study programme: Computer science engineering, BSc
Curriculum: 2021
Number of classes per week (lectures+seminars+labs): 2+0+2
Credits: 5
Theory: 50 %
Practice: 50 %
Recommended semester: 5
Study mode: full-time
Prerequisites: Computer Architectures 1 + 100 cr
Evaluation type: term mark
Course category: required optional
Language: english
Responsible instructor: Dr. Drenyovszki Rajmund
Responsible department: Department of Information Technologies
Instructor(s): Koszna Ferenc
Course objectives:
The aim of the course is to introduce the possibilities and limitations of increasing computing power at the level of computer architectures, to review the properties of microprocessor chipsets other than IA32/x86-64 architecture, SIMD and parallelisation.
Course content - lectures:

1. Microarchitecture and ILP (instruction level parallelism). 2. Arithmetic pipeline and mathematical background 3. Instruction pipelines and hazards 4. Cache mechanisms and reducing dissipation 5. Instruction Set Architecture and types of ISA. 6. RPN and hardware support for FPU. 7. Calculating CRC and usage in hardwares 8. SIMD: ARM, AVR, TMS320C5000 ISA, IA32/x86-64 MMX, SSE 9. IA32/x86-64 MMX and SSE ISA learning, practising and implementing simple algorithms 10. HW support for operating system implementation, operating system functions and SW interrupts. 11. Modern processor SIMD implementations and comparisons 12. AVX ISA in details 13. Non-standard SIMD/MIMD based computers and usage in modern ways.


Course content - labs:

1. Review from Computer Architectures 1: Calculation part 2. Review from Computer Architectures 1: programming in Assembly part (using Visual Studio) 3. Floating point instructions and RPN style programming 4. Introduction SIMD: MMX instructions 5. Programming in MMX: basic instructions, data movements, vectorization 6. Programming in MMX: complex instructions, conditional branching 7. Complex task solving using MMX instructions 8. Introducing SIMD: SSE history and basic instructions 9. SSE: single scalar instructions and tasks solving. 10. SSE: packed instructions and tasks solving. 11. Complex task solving using SSE instructions 12. Introducing SIMD: AVX instructions and basic usage 13. Speed comparison: non-SIMD, MMX, SSE, AVX instructions on real time coding.

Acquired competences:
Knowledge:

- He/she knows the operations of hardware and software elements, the technology of their implementation, how to solve problems related to their operation and the possibilities of the interconnection of IT and other technical systems. - He knows the vocabulary and special terms of the engineering profession in the Hungarian and English languages at least on the basic level.

Skills:

- He/she is abile to specify and implement embedded systems using the knowledge gained from his/her studies. He/she can apply his/her knowledge acquired during his/her study to acquire deeper knowledge in the field of information engineering and to process special literature and solve problems related to information technology. - He/she cooperates with other computer science engineers, electrical engineers during team work, and with other experts during the analysis and solution of a problems. - He/she constantly improves his/her knowledge and keeps up with the development of the computer engineering profession.

Attitude:

- He/she genuinely represents the professional principles of engineering and information technology fields. - He/she aims to see through the entire engineering system not only his/her own field. - He/she makes an effort to work efficiently and to high standards.

Autonomy and responsibilities:

- He/she feels responsible for IT systems analysis, development and operation, both individually and as part of a team. - He/she reveals the weaknesses of the technologies applied, risks of processes and initiates measures which reduce them.

Additional professional competences:

- Efficient use of digital technology, knowledge of digital solutions to fulfill educational objectives

Requirements, evaluation, grading:
Mid-term study requirements:
Scoring tests from lecture and practical material. These will earn 100 points. The practical grade is determined on the basis of the Study and Examination Regulations. Regularly one lecture test based on the lecture materials and two practice tests on programming.
Exam requirements:

Study aids, laboratory background:

Compulsory readings:

Jim Ledin: Modern Computer Architecture and Organization - Second Edition: Learn x86, ARM, and RISC-V architectures and the design of smartphones, PCs, and cloud servers 2nd ed., ISBN: 978-1803234519, Packt Publishing, 2022.

Recommended readings:

Tanenbaum, Austin: Structured Computer Organization 6th Edition, ISBN-13: 978-0132916523, Pearson, 2013. Hennessy, Patterson: Computer Architecture 6th Edition, ISBN: 9780128119051, Morgan Kaufmann, 2017.