Tecnologias de Computadores

Código

01062968

Créditos ECTS

6

Objetivos

  • A. Descrever e interpretar formatos numéricos básicos;
  • B. Desenhar circuitos lógicos combinatórios e sequenciais simples;
  • C. Explicar a funcionalidade de circuitos lógicos padrão;
  • D. Descrever os principais subsistemas de um computador;
  • E. Explicar a codificação de instruções e os modos de endereçamento;
  • F. Escrever programas em linguagem “assembly” com operações aritméticas e lógicas, testes e saltos;
  • G. Descrever o funcionamento de um processador simples.

Programa

1. Representação binária de números inteiros e de fracionários (vírgula flutuante)
1.1. Códigos binários e alfanuméricos
1.2. Operações aritméticas elementares
2. Circuitos combinatórios
2.1. Portas lógicas elementares
2.2. Diagramas lógicos
2.3. Circuitos com funções padrão (seletores e descodificadores)
3. Circuitos sequenciais
3.1. Elementos de memória
3.2. Registos e contadores.
4. Funções de um computador
4.1. Subsistemas (modelo de von Neumann)
4.2. CPU, memória, periféricos
4.3. Modelo concetual da execução de um programa.
5. Linguagem “assembly”
5.1. Conceitos básicos de programação
5.2. Conjunto de instruções (tipos de instruções, modos de endereçamento, codificação); Instruções para operações aritméticas e lógicas
5.3. Implementação de controlo de fluxo (testes, saltos condicionais).
6. Unidade de processamento central
6.1. Organização lógica de uma CPU e de uma GPU
6.2. Processadores multi-core.

Métodos de Ensino

Nas aulas teórico-práticas são apresentados e discutidos os conceitos fundamentais da codificação da informação, do desenho de circuitos lógicos, dos componentes de um computador e da programação em linguagem "assembly".
Os estudantes serão envolvidos em atividades de participação ativa e transmitindo feedback formativo em tempo real através de tecnologias educativas (Vevox).
Os conteúdos teóricos são disponibilizados previamente em formato digital na área Moodle da unidade curricular.
No sistema Moodle, os estudantes estarão igualmente disponíveis atividades de avaliação como quizzes e de interação como fóruns.
As aulas práticas laboratoriais funcionam articuladas com as teórico-práticas e são preenchidas pela aplicação de técnicas de análise e desenho de circuitos lógicos. Será utilizado um software de simulação para a construção e validação dos circuitos desenhados.
Com o recurso a um "assembler" de uso livre, os estudantes implementarão programas simples em linguagem "assembly" específica da CPU com uma arquitetura aberta.

Bibliografia

Essencial:
- Morris Mano (2016), Digital Logic And Computer Design, Pearson India.
- William Stallings (2021), Computer Organization and Architecture: Design for Performance, 11th Edition, Prentice-Hall.
- David A. Patterson e John Hennessy (2020), Computer Organization and Design RISC-V Edition: The Hardware Software Interface, Morgan Kaufmann.

Complementar:
- John Wakerly (2018), Digital Design: Principles and Practices, 5th Edition, Pearson.
- José Delgado, Carlos Ribeiro (2014), Arquitetura de Computadores, 5ª Edição, FCA..
- Andrew S. Tanenbaum (2016), Structured Computer Organization, 6th Edition. Pearson India.

Método de Avaliação