INSTITUTO POLITÉCNICO DE COIMBRA INSTITUTO SUPERIOR DE CONTABILIDADE E ADMINISTRAÇÂO DE COIMBRA Aprovação do Conselho Pedagógico 5/11/2014 Aprovação do Conselho Técnico-Científico 23/2/2015 Ficha de Unidade Curricular (FUC) de Arquitectura de Computadores Curso(s): Licenciatura em Informática de Gestão Ano Curricular: 1ºano Semestre curricular: 1º Semestre Ano lectivo: 201415 Docente Responsável: Isabel Maria Mendes Pedrosa Im-183-05 1
Unidade Curricular Designação: Arquitectura de Computadores Curso(s): Licenciatura em Informática de Gestão Ano curricular: 1ºano Semestre curricular: 1º Semestre Número de ECTS: 5 Horas de contacto: 45 1.Corpo Docente ***Replicar pelo nº de docentes, sendo que o primeiro deverá ser o responsável da UC. Nome: Email: Isabel Maria Mendes Pedrosa ipedrosa@iscac.pt Im-183-05 2
2.Funcionamento a) Objectivos: [conteúdo atualizado a 23 de setembro de 2014 e escrito de acordo com o novo acordo ortográfico] A unidade curricular de Arquitetura de Computadores pretende explorar vertentes relacionadas com a componente de hardware do Computador, desvendando o mistério da \"caixa negra\" relativamente aos componentes internos de uma máquina computacional. Inicia-se o estudo da unidade curricular com conceitos elementares acerca de arquitetura e organização, função e estrutura de uma máquina computacional. É efetuada uma retrospetiva histórica sintética - percurso geracional - desde a 1.ª máquina computacional, ENIAC, até aos processadores e componentes mais recentes. O equilíbrio de desempenho, técnicas implementadas para otimização de processamento e medidas de performance e Benchmarks são estudados para se compreender, de forma mais sustentada, a evolução e modelos e componentes atuais. Nesta fase são estudadas a Lei de Amdhal e a Lei de Moore. A abordagem aos componentes internos de um sistema computacional tem também como objetivo o desenvolvimento de competências elementares ao nível da manipulação desses componentes, compreensão das possibilidades de compatibilidade e hipóteses de atualização. O estudo dos componentes internos inicia-se com a abordagem do processador e das suas interligações aos diversos componentes, memória cache (e técnicas de otimização de desempenho a esse nível), outras memórias internas, memórias externas e evolução das memórias. Compreender o funcionamento do sistema operativo, conhecendo o tipo de representação dos dados, mecanismos de endereçamento de memória, e a aprendizagem de uma linguagem de programação máquina, com um conjunto instrução elementar, associada a um simulador (Little Man Computer, LMC), explorando os paralelismos com uma linguagem de alto nível, o que se pretende que conduza a uma maior compreensão do conceito de ponteiro a lecionar na unidade curricular de Algoritmos e Programação II, constituem parte importante dos conteúdos programáticos, especialmente no que respeita à transversalidade dos conhecimentos a adquirir. Os alunos são incentivados, durante todo o semestre e como pedra angular do seu conhecimento em hardware e software de baixo nível, a conhecerem a atualidade ao nível da evolução dos componentes e dispositivos I/O. b) Regime de frequencia e metodologia de avaliação: [Metodologias atualizadas a 23 de Setembro de 2014 e escritas ao abrigo do novo acordo ortográfico] NOTA:Para a realização de avaliação distribuída é OBRIGATÓRIA a presença em 70% das aulas, excepto aos alunos com estatuto Trabalhador-Estudante. Os alunos que pretendam realizar a avaliação por exame, em Época de Avaliação Normal ou de Recurso, não estão obrigados a um limite mínimo de presenças. A avaliação dos alunos inscritos na unidade curricular pode ser feita por um de dois métodos : 1) Avaliação distribuída: 3 Testes com duração de 30 minutos (peso total de 12 valores na nota final, 4 valores/teste) + 1 trabalho de investigação (peso total de 8 valores na nota final) 2) Avaliação Final: a realizar em época de exame em Época Normal ou de Recurso, composta por exame escrito para 12 valores (com duração de 90 minutos + 15 de tolerância) + 1 trabalho de investigação individual (peso de 8 valores na nota final). Não esta prevista a realização de provas orais. Im-183-05 3
c) Programa: 1. Introdução ao estudo da Arquitetura de Computadores 1.1 Organização e Arquitetura 1.2 Estrutura e Função 2. Evolução e desempenho do computador 2.1 Breve história 2.2 Design e desempenho i. Velocidade do microprocessador ii. Balanceamento do desempenho iii. Avanços na organização e arquitetura do chip 2.3 Evolução da Arquitetura Intel x86 2.4 Avaliação de desempenho i. Clock Speed e Instructions per Second ii. Benchmarks iii. Lei de Amdahl 3. Vista Top-level do computador: função e interligação 3.1 Componentes 3.2 Função i. Instruction Fetch and Execute ii. Interrupts iii. I/O Function 3.3 Estruturas de interligação 3.4 Interligação de Bus i. Estrutura de Bus ii. Hierarquias Multiple-Bus iii. BUS: elementos de projeto 3.5 PCI i. Estrutura do Bus PCI ii. Comandos PCI iii. Transferência de dados iv. Arbitragem 4. Aritmética Computacional 4.1 Unidade Aritmética e Lógica (ALU) 4.2 Representação de inteiros 4.3 Aritmética de inteiros 4.4 Representação de vírgula flutuante 4.5 Aritmética de vírgula flutuante 5. O Little Man Computer (LMC) 5.1 O Modelo LMC: A máquina LMC e o seu funcionamento genérico; 5.2 Conjunto de instruções básicas do LMC: Sintaxe das instruções e Mnemónicas. Instruções de movimentação de dados (LOAD e STORE) Instruções aritméticas simples (ADD e SUBTRACT) Instruções para I/O Instruções de controlo da máquina (COFFEE BREAK) 5.3 Programação em LMC: Paralelismo entre programação em LMC e linguagem C 5.4 Conjunto de Instruções Estendido do LMC: Instruções BRANCH 5.5 Ciclo de Instrução em LMC : Fetch e Execute 5.6 Aplicação prática e programação em LMC usando o simulador edu.lmc 6. Memória cache 6.1 Abordagem genérica do sistema de Memória Im-183-05 4
i. Características ii. Hierarquia de memória 6.2 Princípios da memória cache 6.3 Elementos de projeto de uma cache i. Endereços de cache ii. Capacidade da cache iii. Mapping Function iv. Replacement Algorithms v. Write Policy vi. Line Size vii. Número de caches 6.4. A cache num Pentium 4 noutros processadores mais recentes 7. Tecnologias de memória interna 7.1 Memória principal 7.2 Correção de erros 7.3 Organização avançada da DRAM 8. Memória Externa 8.1 Discos magnéticos 8.2 RAID 8.3 Dispositivos óticos 8.4 Tapes 9. Input/Output 9.1 Dispositivos externos 9.2 Módulos I/O 9.3 I/O Programado 9.4 Gestão de interrupções 9.5 DMA, Direct Memory Access 9.6 Canais de I/O e Processador 9.7 Interfaces externos FireWire 10. Suporte ao Sistema Operativo 10.1Sistema Operativo 10.2 Scheduling 10.3 Gestão de memória 10.4 Gestão de memória e processador Pentium 11. Conjuntos instrução (Instruction Sets): características e funcionamento 11.1 Características das instruções máquina 11.2 Tipos de Operandos 11.3 Tipos de dados no Intel x86 11.4 Tipos de Operações 11.5 Tipos de Operações no Intel x86 12. Conjuntos instrução: modos de endereçamento e formatos 12.1 Endereçamento 12.2 Modos de endereçamento na família Intel x86 12.3 Formatos das instruções 12.4 Formatos das instruções na família Intel x86 12.5 Linguagem Assembly e paralelismo com LMC d) Bibliografia: Livro principal adoptado William Stallings, Computer Organization and Architecture, 8th edition, Prentice-Hall Intern., Abril 2009 Im-183-05 5
Monteiro, Rui Vasco e outros, Tecnologia dos Equipamentos Informáticos, FCA Editores, 2004 Irv Englander, The Architecture of Computer Hardware and Systems Software - An Information Technology Approach, 4.th edition, John Willey & Sons, 2009 Null, Linda e Lobur, Júlia, Essentials of Computer Organization and Architecture, 3.rd edition, Dezembro, 2010 Nicholas Carter, Computer Architecture, Bookman, 2002, Colecção Schaum Goodman & Miller, A Programmer s View of Computer Architecture, Saunders College Publishing, 2011 Andrew S. Tanenbaum, Structured Computer Organization, 5a edição, Prentice Hall, 2006 Im-183-05 6