Arquitetura de Computadores
Objetivos
Conhecimentos
- Organização geral do hardware de um sistema computacional.
- Representação no hardware de dados e instruções.
- Processo de tradução entre os programas em C, o assembly, e a linguagem máquina.
- Interface de baixo nível para os dispositivos de entradas/saídas.
- Características das unidades de memória.
Aptidões e competências
- Programação em C, assembly, e a tradução entre ambos.
- Compreensão profunda dos vários componentes da arquitetura de Von Neumann
Caracterização geral
Código
11152
Créditos
9.0
Professor responsável
Pedro Abílio Duarte de Medeiros
Horas
Semanais - 5
Totais - 70
Idioma de ensino
Português
Pré-requisitos
Conhecimentos de Introdução à Programação e de Sistemas Lógicos.
Bibliografia
Dive Into Systems, S. Matthews et al., 2022 https://diveintosystems.org/
Operating Systems: Three Easy Pieces (2018) , R. e A. Arpaci-Dusseau, https://pages.cs.wisc.edu/~remzi/OSTEP/
How to Think Like a Computer Scientist - C Version, T. Scheffler e A. B. Downey, 2019, https://github.com/tscheffl/ThinkC/
Método de ensino
Nas aulas teóricas explicar-se-ão e discutir-se-ão os sucessivos tópicos do programa da cadeira.
Nas aulas práticas serão desenvolvidos diversos trabalhos práticos de programação, cujo objectivo é aplicar e consolidar os conceitos que foram aprendidos nas aulas teóricas.
Método de avaliação
A avaliação tem dois componentes: componente teórica e componente prática. As questões de plágio e fraude serão tratadas de acordo com o indicado no regulamento de avaliação da FCT. As notas intermédias são arredondadas à centésima e a nota final à unidade. Durante a realização dos testes não é permitida a utilização de qualquer tipo de dispositivo eletrónico, incluindo máquinas de calcular de qualquer espécie.
Componente teórica
A nota desta componente (NT) é obtida em dois testes teórico / práticos presenciais sem consulta sobre a matéria das aulas teóricas, ou exame de recurso (também presencial).
NT = (nota teste 1 + nota teste2 ) / 2 ou
NT = nota exane de recurso
Para ter sucesso na unidade curricular, um estudante tem de ter pelo menos 9,5 valores nesta componente.
Componente laboratorial
A nota desta componente (NL) é obtida em quatro trabalhos práticos de média dimensão (EP1, EP2, EP3, EP4) elaborados em grupos de até 2 estudantes. A utilização de ferramentas como o Copilot e o ChatGPT é possível mas deve ser reportada através de comentários incluídos no código IGNOREe entregue; relembra-se que estas anotações são muito relevantes se o código entregue for submetido a software de deteção de plágio.
Para ter sucesso na unidade curricular, um estudante tem de ter pelo menos 6,0 valores nesta componente. A obtenção de uma nota NL maior ou igual a 6,0 permite obter frequência à UC no corrente ano letivo.
Os trabalhos têm notas NEP1, NEP2, NEP3, NEP4.
NL = (NEP1 + NEP2 + NEP3 + NEP4) / 4.
A nota NEPi é obtida através de duas componentes:
- Avaliação do grupo, NGi, relacionada com a funcionalidade e correção do código entregue.
- Avaliação individual de cada membro do grupo NTPi, que é obtida através das respostas a perguntas sobre os trabalhos práticos nos dois testes (sobre o EP1 e EP2 no 1º teste, sobre o EP3 e EP4 no 2º teste). Essas perguntas não contribuem para a nota do teste. As perguntas sobre o EPi são classificadas com uma nota NTPi entre 0 e 100 e a nota final NEPi será dada pelas regras seguintes:
se NTPi >= 50, NEPi = minimo( 20 , NGi )
senão se NTPi >= 20, NEPi = mínimo( 12, NGi )
senão NEPi=0
Se um estudante faltar com justificação ao teste em que é obtido NTPi, será submetido a uma prova oral; de acordo com o desempenho nessa prova, NEPi poderá ser um valor entre 0 e NGi. Cabe à equipa docente avaliar se a justificação da falta é ou não considerada.
Nota final (NF)
NF = 0,70*NT + 0,30*NL
Frequência de anos anteriores
Os estudantes que obtiveram frequência nos dois anos anterioers conservam a nota obtida. Podem obter uma nova nota NL em 2023/24, devendo nesse caso inscrever-se num turno prático, entregar os trabalhos nas datas especificadas e responder às perguntas sobre os exercícios nos testes. Estes estudantes não precisam de indicar se pretender optar pela nota laboratorial obtida em anos anteriores ou pela nota obtida em 2023/24, uma vez que
NL = Máximo( NL obtida em anos anteriors, NL obtida em 2023/24)
Conteúdo
1. Organização por níveis de um sistema computacional. Arquitetura de Von Neumann. O nível do sistema operativo. Funções do sistema operativo. Noção de ficheiro. Interpretador de comandos.
2. O componente CPU: organização geral, representação dos dados, tipos de instruções máquina, formato das instruções, suporte pelas instruções máquina dos conceitos presentes em linguagens de alto nível
3. O componente memória central (RAM): Níveis da hierarquia de memória. Caches. Endereçamento físico e virtual. Páginas. Compilação, ligação e carregamento.
4. O componente Dispositivos de Entrada / Saída: tipos de periféricos, suporte dos periféricos pelo sistema operativo.