Arquitecturas Avançadas de Computadores

Unidade Curricular / Curricular Unit
Arquitecturas Avançadas de Computadores

Ciclo de Estudos / Study Cycle
Licenciatura em Engenharia Informática

Nome do Docente Responsável
João Pedro Gonçalves Crespo Craveiro

Nome do Docente Adicional

Objectivos de aprendizagem (conhecimentos, aptidões e competências a desenvolver pelos estudantes)
Esta UC tem como objectivo apresentar as recentes evoluções na Arquitectura de Computadores, (chips multicore, GPUs, suporte de virtualização), no sentido de fornecer aos alunos uma compreensão detalhada da sua estrutura e funcionamento. Estas evoluções são enquadradas nos actuais avanços observados a nível funcional e de desempenho das infra-estruturas, sistemas operativos e aplicações.

É pretendido que, no final desta unidade curricular, os alunos detenham conhecimentos sobre os componentes de hardware de um computador moderno de um ponto de vista funcional. Esta competência é directamente aplicável nos domínios do hardware e da administração de sistemas, e indirectamente aplicável no domínio do software – permitindo formar futuros engenheiros informáticos que tomem decisões de análise, desenho e implementação de software que tirem partido das capacidades do hardware e/ou tenham em conta as eventuais limitações destas.

Learning outcomes of the curricular unit
This curricular unit aims to present the recent evolutions in Computer Architecture (multicore processors, GPUs, virtualization support), in order to provide students with a detailed comprehension of its structure and functioning. These evolutions are responsible for the current advances observed at functional and performance levels, in infra-structures, operating systems and applications.

At the end of this curricular unit, the students shall detain knowledge about the hardware components of a modern computer from a functional point of view. This competence is directly applicable in the hardware and systems administration realms, and indirectly applicable in the software realm – allows to educate future computer engineers who take software analysis, design and implementation decisions that take advantage from the hardware capabilities and/or take into account eventual limitations thereof.

Conteúdos programáticos
1. Introdução

2. O processador
Principais módulos funcionais
Condutas e riscos
Excepções
Paralelismo ao nível da instrução
Processadores actuais

3. Hierarquias de memória
Memórias cache
Memória virtual

4. Entradas/Saídas (E/S) e Armazenamento
Confiabilidade, fiabilidade, disponibilidade
Dispositivos e tecnologia de armazenamento: disco magnético, memória flash
Ligação física e lógica de dispositivos de E/S; interface com CPU, memória, e sistema operativo
RAID

5. Arquitecturas paralelas
Limites de frequência, dissipação de energia e memória
Paralelismo e limites ao aumento de desempenho
Arquitecturas de multiprocessador; aglomerados e computação em grelha. Casos de estudo.
Multithreading em hardware
SIMD e processadores vectoriais
Desempenho e exemplos reais
GPUs

6. Virtualização
Origens e definição do conceito de máquina virtual
Conceito de hipervisor
Variantes de implementação
Virtualização do processador, memória, periféricos (E/S)
Exemplos

Syllabus
1. Introduction

2. The processor
Main functional units
Pipeline and hazards
Exceptions
Instruction-level parallelism
State-of-the-art processors

3. Memory hierarchies
Cache memory
Virtual memory

4. Input/Output (I/O) and storage
Dependability, reliability, availability
Storage devices and technology: magnetic disk, flash memory
Physical and logical connection of I/O devices; interface with CPU, memory, and operating system
RAID

5. Parallel architectures
Clock speed, power dissipation, and memory limits
Parallelism and the limits to performance improvements
Multiprocessor architectures; clusters and grid computing. Case studies.
Hardware multithreading
SIMD and vector processors
Performance and real examples
GPUs

6. Virtualization
Origin and definition of the virtual machine concept
Hypervisor
Implementation variations
Virtualization of processor, memory, and peripheral devices (I/O)
Examples

Demonstração da coerência dos conteúdos programáticos com os objectivos da unidade curricular
Assiste-se actualmente a uma mudança de paradigma na utilização das plataformas de computação, em que a sofisticação das funcionalidades dos processadores e o consequente aumento de desempenho têm um papel preponderante. Os conteúdos programáticos desta UC permitem realizar uma abordagem detalhada das evoluções funcionais e optimizações introduzidas na arquitectura dos processadores actuais, complementando o conhecimento adquirido em UCs introdutórias anteriores. A escolha dos pontos essenciais do programa baseia-se em referências bibliográficas relevantes utilizadas internacionalmente nesta área da engenharia, e apoia-se na observação das necessidades formativas dos alunos ao longo do percurso do ciclo de estudos, cumprindo assim os objectivos enunciados para a Unidade Curricular.

Demonstration of the syllabus coherence with the Curricular Unit’s objectives
We observe currently a paradigm shift in the usage of computer platforms, where processor functions sophistication and the consequent performance increase have played a important role. The programmatic contents of this curricular unit allows developing a detailed approach of the functional evolutions and optimizations introduced in the current processor architectures, which complements the knowledge acquired in previous curricular units.

The choice of the Syllabus essential themes is based in bibliographic relevant references that internationally adopted in this engineering area, and supported by the observation of the formative needs of students across the study cycle, thus fulfilling the goals established for this Curricular Unit.

Metodologias de ensino (avaliação incluída)
Tendo em conta os objectivos, a metodologia utilizada deverá basear-se em dois aspectos fundamentais. (1) Abordagem expositiva dos principais temas do programa, levando o aluno a entender os fundamentos dos novos conceitos introduzidos nos últimos anos nas arquitecturas de processadores. O aluno é encorajado a realizar o seu percurso formativo de forma autónoma, baseando-se nos conhecimentos já adquiridos, e completando-os com novos elementos adquiridos. (2) Orientação para uma aprendizagem aberta, baseada no fazer e na pesquisa, através de concepção e programação de casos práticos concretos com base no microcomputador integrado Raspberry Pi e com o auxílio de breadboards, LEDs, sensores de temperatura, e outros componentes electrónicos.

A avaliação é contínua, baseada em vários testes e TPCs teóricos (50%) e nos resultados obtidos nos trabalhos de laboratório realizados ao longo do semestre (50%); cada componente está sujeita a uma nota mínima de 8,00 valores.

Planned learning outcomes, teaching methods and assessment methods and criteria
Given the announced goals, the used methodology is based in two fundamental aspects. (1) Exposition of the main topics of the program, leading learners to comprehend the new concepts recently introduced in processor architectures. Students are encouraged to perform their formative course autonomously, based in previous acquired knowledge, complemented by new acquired elements. (2) Orientation towards open learning, based on doing and research, through the conception and programming of concrete functional modules based on the single-board computer Raspberry Pi, and aided by breadboard, LEDs, temperature sensors, and other electronic components.

The assessment is continuous, based in multiple theoretical tests and homeworks (50%) and in the results obtained in laboratorial exercises, which are performed across the semester (50%). Each component is subject to a minimum grade of 8.00 points (out of 20).

Demonstração da coerência das metodologias de ensino com os objectivos de aprendizagem da unidade curricular
As metodologias de ensino garantem a coerência com os objectivos propostos na medida em que a exposição dos princípio de funcionamento e evolução dos processadores permite numa primeira fase que os estudantes estabeleçam contacto numa perspectiva teórica com os temas da UC, em complementaridade dos  conhecimentos adquiridos em UCs anteriores. A exposição dos temas nas aulas teóricas é feita na base da interacção e discussão dos temas, que os alunos devem estudar autonomamente – quer com antecedência (para preparação), quer após a leccionação (para aprofundamento). Esta metodologia incide sobre o objectivo de que os alunos adquiram um entendimento global dos temas abordados e capacidade de abstração para raciocinaram sobre estes (e não apenas conhecimento bruto e/ou mecânico com o mero fito da aprovação). A introdução de TPCs regulares visa estimular este estudo autónomo. Estes TPCs visam também, em conjunto com a existência de dois testes de frequência (intercalar e final), promover que esse estudo aconteça continuamente ao longo do semestre, por oposição ao estudo concentrado no final do semestre.

Na componente prática, a implementação de módulos funcionais concretos permite aos estudantes compreender, numa vertente de aprendizagem aberta baseada em métodos de auto aprendizagem, as aplicações, desafios e potencialidades dos conceitos adquiridos, fornecendo-lhes competências para intervir profissionalmente numa área em constante evolução. Sendo baseadas na experimentação, as aulas práticas ajudam o cumprir o objectivo de formar profissionais competentes na área das arquitecturas de computadores, quer para incursão na indústria quer para investigação científica no âmbito do prosseguimento de estudos pós-graduados (2.º e 3.º ciclos).

A avaliação contínua tem implícita uma vertente formativa, pois permite avaliar o progresso dos estudantes em ambas as componentes e também que estes possam adaptar as suas próprias estratégias de aprendizagem aos objectivos pretendidos.

Demonstration of the teaching methodologies coherence with the curricular unit’s objectives
The teaching methodologies utilized in this curricular unit guarantee the coherence with its objectives in the following manner: in a first phase, the exposition of the processors’ functioning principles and evolution allows students to take contact with a theoretical perspective of the unit contents, as a complement of previous acquired knowledge. The exposition in the lectures is based on interaction and discussion of the subjects, which students should study autonomously – both beforehand (in preparation) and after the lecture (for a deeper understanding). This methodology focuses on the goal of having students acquire a full understanding of the approached subjects and abstraction capacities to reason about the latter (and not just raw and/or mechanical knowledge in the mere pursuit of a passing grade). The introduction of regular homework aims to stimulate the aforementioned autonomous study; this homework also aims, together with the existence of two tests (midterm and final), to promote the continuity of that study over the whole semester, as opposed to crammed towards the end of the semester

The practical component complements the previous approach with the implementation of real functional modules, in a open learning approach, allowing students to understand, through self-learning methodologies, the applications, challenges and potentialities of the concepts acquired, and also acquire competencies to act professionally an area in constant evolution. Being based on experimentation, the practical classes help fulfill the goal of educating competent professionals in the field of computer architectures, either to enter the industrial/corporate world or to embark in scientific research in the scope of postgraduate studies (Master and Doctorate degrees).

The continuous assessment also contains a formative approach, since it allows evaluating the progress of students in both components, so they can adapt their own learning strategies to attain their objectives.

Bibliografia Principal / Main Bibliography
Principal / required:
Patterson, D.A., & Hennessy, J.L. (2013). Computer Organization and Design: The Hardware/Software Interface (5th ed.). Morgan Kaufmann.

Recomendada / recommended:

Barham, P., et al. (2003). Xen and the art of virtualization. In SOSP ’03. New York, NY, USA: ACM. doi:10.1145/945445.945462

Barroso, L.A., Dean, J., & Hölzle, U. (2003). Web Search for a Planet: the Google Cluster architecture. IEEE Micro, 23(2), 22-28. doi: 10.1109/MM.2003.1196112

Hennessy, J.L., & Patterson, D.A. (2011). Computer Architecture: A Quantitative Approach (5th ed.). Morgan Kaufmann.

Kivity, A., et al. (2007). kvm: the linux virtual machine monitor. In 2007 Linux Symposium (pp. 225-230).

Popek, G.J., & Goldberg, R.P. (1974). Formal requirements for virtualizable third generation architectures. Communications of the ACM 17(7), 412-421. doi:10.1145/361011.361073

Smith, J., & Nair, R. (2005). Virtual Machines: Versatile Platforms for Systems and Processes. Morgan Kaufmann.

Universidade Lusófona


ECATI Escola de Comunicação, Arquitetura, Artes e Tecnologias da Informação

Departamento de Engenharia Informática e Sistemas de Informação
Edifício F, sala F.1.3
Direção — 217 515 500 (ext: 683)
Serviço de Apoio Tecnico-Admistrativo (SATA) — 17 515 500 (ext: 764)


Lisboa
Avenida do Campo Grande,
376 1749-024 Lisboa, Portugal
Tel.: 217 515 500 | email: info.cul@ulusofona.pt
Porto
Rua Augusto Rosa,
Nº 24, 4000-098 Porto - Portugal
Tel.: 222 073 230 | email: info.cup@ulusofona.pt

Gestão de conteúdos por Lucio Studer Ferreira © 2022 COFAC.