Objectivos

Licenciatura Bolonha em Engenharia Informática e de Computadores - Alameda

Os temas a abordar pela cadeira e sobre os quais o aluno no final da cadeira deve ter noções concretas (num nível introdutório) são os seguintes: ■ Identificar os componentes fundamentais numa arquitectura de computador e o seu papel no conjunto; ■ Identificar os componentes fundamentais num processador e o seu papel no conjunto; ■ Projectar os componentes fundamentais de um processador elementar; ■Programar um computador em linguagem assembly; ■Aplicar o conceito das interrupções, nomeadamente nas operações de transferência de dados; ■Utilizar uma estrutura hierárquica de memória no contexto das arquitecturas de computadores; ■Identificar as vantagens e restrições inerentes ao funcionamento de um computador decorrentes das evoluções face à arquitectura original.

Licenciatura (5 anos) em Engenharia Informática e de Computadores - Alameda

Objectivos Gerais

{pt_PT=<ol> <li> Princípios gerais da arquitectura de sistemas digitais complexos <li> Arquitectura interna de um microprocessador <li> Programação de um microprocessador <li> Hierarquia de memória <li> Sistema de entradas e saídas </ol>, en_GB=<ol> <li> General principles of the architecture of complex digital systems <li> Internal architecture of a microprocessor <li> Assembly programming <li> Memory hierarchy <li> Input/output system </ol>}

Objectivos Operacionais

{pt_PT=No final do semestre, o aluno deve ser capaz de: <ol> <li>Noções gerais de arquitectura de computadores <ul> <li>conhecer os elementos principais que constituem um computador <li>compreender o funcionamento dos barramentos de dados, endereços e controlo e os ciclos de leitura e escrita nestes barramentos <li>descrever os diferentes intervenientes na execução de uma instrução Assembly <li>realizar a lógica de descodificação de endereços de forma a seleccionar uma dada posição de memória ou um periférico <li>ter uma atitude crítica em relação à avaliação do desempenho de um sistema </ul> <li>Arquitectura interna de um microprocessador <ul> <li>compreender o funcionamento de um sistema em termos de unidade de processamento e unidade de controlo <li>projectar um módulo de processamento a partir do conjunto de micro-operações que ele é suposto executar e vice-versa <li>compreender o conjunto de instruções, registos de uso geral e específico (program counter e stack pointer), os bits de estado (ou flags), os barramentos e as interfaces de um processador baseado na sua descrição <li>conseguir analisar o comportamento do sistema ao longo do tempo <li>compreender o funcionamento das interrupções </ul> <li>Instruções Assembly <ul> <li>descrever o efeito das instruções Assembly em todos os elementos do ponto anterior <li>compreender os diferentes modos de endereçamento do microprocessador <li>ter uma noção da eficiência das instruções em termos do número de ciclos de relógio que demoram a executar <li>ser capaz de fazer o assembly e disassembly de um programa por conhecimento do formato das instruções <li>descrever as micro-operações envolvidas numa instrução Assembly e ser capaz de as micro-programar </ul> <li>Programação de um microprocessador <ul> <li>analisar um problema em linguagem informal e ser capaz de o descrever em alto nível, nomeadamente em termos de fluxograma <li>transcrever este fluxograma para linguagem Assembly através de uma programação modular, estruturada e documentada <li>realizar rotinas com diferentes métodos de passagem de parâmetros: por registo, por posição de memória, e pela pilha <li>programar rotinas de atendimento a interrupções <li>dominar técnicas simples de detecção e correcção de erros <li>compreender o processo de tradução de linguagens de alto nível para código objecto </ul> <li>Hierarquia de memória <ul> <li>descrever os diferentes níveis de memória, cache, memória primária e memória virtual, e compreender o modo de funcionamento do sistema <li>construir mapas de memória <li>compreender o modo de funcionamento de uma cache, e a forma como o endereço é interpretado por esta <li>compreender o sistema de tradução do endereço virtual para físico </ul> <li>Sistema de entradas e saídas de um microprocessador <ul> <li>compreender as formas de organização, Memory-mapped vs. Independent IO, dos espaços de memória e de entradas e saídas <li>descrever os modos de transferência de informação: sob controlo do programa, por interrupção e por DMA <li>descrever as transferências por strobe e handshaking <li>descrever a comunicação paralela e série, quer síncrona quer assíncrona </ul> </ol>}