Computer architecture  

Prerequisites Boole's algebra; binary numbering systems; basic programming skills Objectives - Identify the fundamental computer architecture components and their roles. - Identify the main processor's components and their role. - Identify the different instruction types and the required mechanisms for their execution (at an introductory-level). - Understand how a program, written in a high-level language, is executed, including the role of the compiler, assembler, and loader. - Write simple programs in Assembly language. - Understand the underlying principals of interruptions/exceptions and the interface with processor peripherals. - Understand the importance of a hierarchical memory subsystem and its role in the performance of applications. - Identify the advantages and drawbacks stemming from the evolution of computers with respect to the original architecture. Program - Historical evolution of computing systems. - Instruction Set Architectures: operands and operation types; memory map; peripherals interface; handling of interruptions and exceptions. - Processors' operation: datapath; control structures; single-cycle and pipelined architectures. - Memory hierarchy: structure and operation of cache memories; hierarchical cache systems; physical and virtual addressing and translation. - Advances in computer architectures. Evaluation Methodology 50% avaliação contínua; 50% avaliação não contínua Cross-Competence Component The curricular unit covers the development of transversal competences in Critical and Innovative Thinking, Interpersonal and Intrapersonal Competences (oral, organizational and teamwork, self-discipline, perseverance, self-motivation) and Information and media literacy (ability to locate and access information) in the laboratory component. The grading weight associated with these skills is of around 10%. Laboratorial Component The curricular unit involves weekly laboratory work aiming at the monitoring and deepening of the topics taught in theoretical lectures. The evaluation of the laboratory work comprises the demonstration of the performed work, the reports, and the discussion. Programming and Computing Component The Computer Architecture discipline comprehends competences in the programming and computing domains, namely through: Assembly programming; the principles of program translation (compilation) from a high-level language to assembly and machine code; the loading of programs; the interface with peripherals; handling of interruptions and exceptions; the impact of the memory subsystem in an application performance and the basic principles of cache-aware programming. These competencies are evaluated through laboratory work (percentage >80%) and the final exam (percentage >50%). More information at: https://fenix.tecnico.ulisboa.pt/cursos/lerc/disciplina-curricular/845953938490009
Presential
English
Computer architecture
English

Funded by the European Union. Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union or HaDEA. Neither the European Union nor the granting authority can be held responsible for them. The statements made herein do not necessarily have the consent or agreement of the ASTRAIOS Consortium. These represent the opinion and findings of the author(s).