Carga Horária: 64 horas aula
Período: 4º do Curso de Ciência da Computação
Presença:
Objetivos do curso:
O objetivo deste curso de Arquitetura de Computadores é dar ao aluno um entendimento mais aprofundado do funcionamento de um computador, no nível da CPU. O aluno aprenderá como comparar duas arquiteturas distintas sob o aspecto do desempenho e como são aplicados os benchmarks. Vai entender o funcionamento do conjunto de instruções de uma máquina para poder compreender como os elementos da arquitetura ou da linguagem de máquina são efetivamente usados na execução de um programa escrito em linguagem de alto nível e como suas variações influenciam a implementação eficiente de compiladores. Na segunda metade do curso, para um entendimento mais aprofundado de como é a arquitetura de uma CPU, estudaremos as técnicas de paralelismo a nível de instruções, como as técnicas de pipeline. O curso também aborda multiprocessadores e processamento vetorial, como visão geral de arquiteturas avançadas.
Avaliação:
Slides:
Download Capítulo 1 – Introdução
Download Capítulo 2 – Conjunto de Instruções
Download Capítulo 3 – Elementos do Datapath – caminho de dados e controle
Download Capítulo 4 – Paralelismo a Nível de Instruções
Download Capítulo 5 – Desempenho
Download Capítulo 6 – Multiprocessadores
Trabalhos Práticos:
Implementação do conjunto de instruções do MIPS
Download Exercício valendo nota de 20/9/2018 (EX)
Material:
Notas 2019-2:
Calendário 2019-2:
seg | 12/8/2019 | 1 | Apresentação do programa da disciplina e do contexto. Capítulo 1 - Introdução; Progresso da tecnologia; Desempenho dos processadores; Classes de Computadores; Arquitetura do Conjunto de Instruções (ISA); Exemplo: MIPS; Energia e Potência nos microprocessadores; CPI; Potência estática vs potência dinâmica; Processo de fabricação de chips |
sex | 16/8/2019 | 2 | Capítulo 2 - Arquitetura do conjunto de Instruções. Introdução; Classificação de Arquiteturas de Conjuntos de Instruções; Exemplo de uma arquitetura com acumulador; Combinações Típicas de Operandos; Endereçamento de Memória |
seg | 19/8/2019 | 3 | Modos de Endereçamento; Modos de endereçamento do Intel 8051; Harvard vs Von Neumann; Tipos e Tamanhos de Operandos; Instruções para Fluxo de Controle; Operações no Conjunto de Instruções; Codificação de Um Conjunto de Instruções; Exemplo: Intel 80x86 |
sex | 23/8/2019 | 4 | A arquitetura MIPS; Codificando Instruções MIPS; Exemplos |
seg | 26/8/2019 | 5 | A arquitetura MIPS; Codificando Instruções MIPS; Exemplos |
sex | 30/8/2019 | 6 | A arquitetura MIPS; Codificando Instruções MIPS; Exemplos |
seg | 2/9/2019 | 7 | Capítulo 3 - O Caminho de dados monociclo do MIPS. Introdução; Uma implementação MIPS básica; Sinopse da implementação; Multiplexadores (muxes) |
sex | 6/9/2019 | 8 | Sinais de controle; Implementação monociclo; Metodologia de clocking; Construindo um caminho de dados; Unidade de Controle |
seg | 9/9/2019 | 9 | Operação do caminho de dados; operações básicas da ALU, Loads e Stores |
sex | 13/9/2019 | 10 | Operação do caminho de dados; operações básicas da ALU, Loads e Stores |
seg | 16/9/2019 | 11 | Operação do caminho de dados; Desvios condicionais e jumps incondicionais |
sex | 20/9/2019 | 12 | Operação do caminho de dados; Implementando outras operações: JAL, JR, LUI, SLL, SRL, etc |
seg | 23/9/2019 | 13 | Assembly do MIPS: Convenções para chamada de procedimento e Chamadas de Sistema |
sex | 27/9/2019 | 14 | Assembly do MIPS: Algoritmos recursivos |
seg | 30/9/2019 | 15 | Assembly do MIPS: Algoritmos recursivos |
sex | 4/10/2019 | 16 | Exercício: Codificação de um algoritmo recursivo em MIPS |
seg | 7/10/2019 | 17 | Implementação Multiciclo |
sex | 11/10/2019 | 18 | Implementação Multiciclo |
seg | 14/10/2019 | recesso | |
sex | 18/10/2019 | 19 | P1 |
seg | 21/10/2019 | Semana Academica | |
sex | 25/10/2019 | Semana Academica | |
seg | 28/10/2019 | dia do servidor público | |
sex | 1/11/2019 | 20 | Capítulo 4 - Introdução; Ciclo único versus pipeline; Projetando o conjunto de instruções; Pipeline Hazards Pipeline Hazards; Caminho de dados usando o pipeline; |
seg | 4/11/2019 | 21 | Diagramas de Pipeline; Controle do Pipeline; Hazard de dados e forwarding; |
sex | 8/11/2019 | 22 | Detecção do Hazard ; Hazard de dados e forwarding; Hazard de dados e stalls |
seg | 11/11/2019 | 23 | Hazard de desvios; Caminho de dados completo; Exceções |
sex | 15/11/2019 | proclamação da república | |
seg | 18/11/2019 | 24 | Capítulo 5 - Desempenho; Tempo de Execução; Ciclos de Clock; Escala de integração e Desempenho; CPI (Ciclos de Clock por Instrução); Número de Instruções; MIPS (Milhões de Instruções por Segundo); Benchmarks; Lei de Moore; Lei de Amdahl |
sex | 22/11/2019 | 25 | Exercícios |
seg | 25/11/2019 | 26 | Lei de Amdahl e princípio da Localidade; Exercícios e Exemplos Resolvidos; Gargalo de Von Newmann; Influência dos Dispositivos de I/O, memória e Barramentos; Como melhorar a arquitetura |
sex | 29/11/2019 | 27 | Capítulo 6 - Introdução; Programando multiprocessadores; O problema do speed-up; Multiprocessadores conectados por um único barramento; Exemplo de programa paralelo; Coerência de cache em multiprocessadores; Sincronização; Multiprocessadores Conectados por Rede; Clusters; Topologias de rede; Multiprocessadores dentro de um Chip e Multithreading; O Cluster Google; Categorias de Paralelismo (Flynn,1966); Computadores SIMD; Computadores Vetoriais; Computadores MIMD |
seg | 2/12/2019 | 28 | Cálculo do speed-up em um sistema multiprocessado |
sex | 6/12/2019 | 29 | P2 |
seg | 9/12/2019 | 30 | VR |
sex | 13/12/2019 | 31 | VS |
Bibliografia:
[1] Organização e Projeto de Computadores – a interface hardware/software (3ª Edição) – David A. Patterson, John L. Hennessy
[2] Organização e Projeto de Computadores – a interface hardware/software (2ª Edição) – David A. Patterson, John L. Hennessy
[3] Arquitetura de Computadores Uma Abordagem Quantitativa, John L. Hennessy e David A. Patterson, Tradução da 3ª Edição Americana, Ed. Campus
[4] Computer Architecture: Quantitative Approach, John L. Hennessy e David A. Patterson, Fifth Edition, Elsevier
Carga Horária: 32 horas aula
Pré-Requisito: Fundamentos de Arquitetura de Computadores (RCT00013)
Período: 3º do Curso de Ciência da Computação
Presença:
Mínimo de 75% de presença. (Regulamento, Art. 80, §14) (ou seja: no máximo 4 faltas)
Reprovação com média 0 se presença < 75%. (Regulamento, Art. 80, §14)
Nenhuma falta será abonada. (Regulamento Art. 80, §15)
Objetivos do curso:
Comprovar na prática os conceitos ensinados na disciplina RCT00011 – Circuitos Digitais. Serão abordados os conceitos de portas lógicas, circuitos combinacionais e circuitos sequenciais. Cada aula consistirá da implementação de um circuito digital utilizando-se como hardware uma placa de desenvolvimento com FPGA da ALTERA. O desenvolvimento será feito através do editor esquemático. Não será foco do curso o estudo das linguagens de descrição de hardware. A placa utilizada será a DE2-70 ou DE2-115, mostrada abaixo.
Avaliação:
A avaliação será feita ao longo do semestre, com a execução dos experimentos, com entrega de um relatório a cada aula.
Slides:
Sequência de ações para criar o projeto (resumo). Passo a passo para a criação de um projeto esquemático no QuartusII da Aletra.
Bibliografia:
[1] Sistemas Digitais – Princípios e Aplicações, 8a Edição, Ronald Tocci e Neal Widmer, Pearson/Prentice Hall
[2] Sistemas Digitais – Uma Abordagem Integrada, John P. Uyemura, Thomson Pioneira
[3] Digital Systems: Principles and Applications, 11 Edition, Ronald Tocci, Neal Widmer, & Greg Moss, Pearson/Prentice Hall
Carga Horária: 64 horas aula
Período: 3º do Curso de Ciência da Computação
Presença:
Objetivos do curso:
O objetivo do curso de Circuitos Digitais é apresentar ao aluno os princípios, os conceitos e as operações fundamentais que são comuns aos sistemas digitais. O entendimento de circuitos digitais é pré-requisito para posteriormente entender-se o funcionamento de um circuito digital mais complexo: o microprocessador. Serão abordados os conceitos de portas lógicas, circuitos combinacionais e circuitos sequenciais. O conhecimento adquirido será suficiente para permitir a análise e manutenção de qualquer sistema digital.
Avaliação:
Slides:
Capítulo 1 – Introdução
Capítulo 2 – Sistemas de Numeração e Códigos
Capítulo 3 – Portas Lógicas e Álgebra Booleana
Capítulo 4 – Circuitos Combinacionais
Capítulo 5 – Aritmética Digital
Capítulo 6 – Circuitos Sequenciais
Capítulo 7 – Contadores
Capítulo 8 – Registradores
Materiais:
Download Lista de exercícios para a P1
Download Lista de exercícios para a P2
Calendário 2019-2
seg | 12/8/2019 | 1 | Apresentação da Disciplina Cap 1 - Introdução; Representações Numéricas; Instrumentação Industrial; Analógico x Digital; Sistemas Analógicos e Digitais; Vantagens e Limitações das técnicas digitais; Conversão A/D e D/A; Desvantagens dos S.D.; Sinal Amostrado (sample and hold); Harmônicos (Fourier) |
sex | 16/8/2019 | 2 | Sistemas de Numeração Digital; Contagem Decimal x Binária; Contadores Binários; Representação de Quantidades Binárias; O Dip Switch; Exemplos de CIs: 74HCT245/74HC245; Sinais Digitais e Diagramas de Tempo; Visualização de Diagramas de tempo: osciloscópio digital; Circuitos Digitais/Circuitos Lógicos; Transmissão Paralela e Serial; Circuitos com Memória; O Computador Digital; Circuito digital de uma CPU |
seg | 19/8/2019 | 3 | Cap. 2 - Sistemas de Numeração e Códigos Código BCD; Comparação entre BCD e Binário; Circuitos Digitais para BCD; Código Gray; Código ASCII; Detecção de erros pelo método de Paridade |
sex | 23/8/2019 | 4 | Cap. 3 - Portas Lógicas e Álgebra Booleana; Tabela Verdade; Operações OR e AND; Portas OR e AND; Exemplos; Inversor; Resumo das Operações Lógicas Booleanas; Expressões Algébricas; Avaliando a Saída dos Circuitos Lógicos |
seg | 26/8/2019 | 5 | Implementando circuitos a partir de expressões Booleanas; Portas NAND e NOR; Teoremas Booleanos; |
sex | 30/8/2019 | 6 | Teoremas Booleanos |
seg | 2/9/2019 | 7 | Teoremas de Demorgan; Universalidade das portas NAND e NOR; Símbolos Lógicos Padrão IEEE/ANSI |
sex | 6/9/2019 | 8 | Cap. 4 - Circuitos Combinacionais; Soma de produtos e produto de somas; Simplificação algébrica; Mintermos e maxtermos; Simplificação Algébrica |
seg | 9/9/2019 | 9 | Projeto de circuitos lógicos combinacionais; Mapas de Karnaugh |
sex | 13/9/2019 | 10 | Mapas de Karnaugh |
seg | 16/9/2019 | 11 | Mapas de Karnaugh |
sex | 20/9/2019 | 12 | Portas XOR e XNOR; Gerador e Verificador de Paridade; Circuitos para habilitar e desabilitar; MUXES e DEMUXES |
seg | 23/9/2019 | 13 | Cap. 5 - Aritmética Digital Números decimais; Números binários positivos; Adição Binária; Números negativos; Extensão do bit de sinal; Adição e Subtração ; Overflow Aritmético. |
sex | 27/9/2019 | 14 | Circuitos Aritméticos; Somador Binário Paralelo; Projeto de um Full Adder (FA); Somador completo com registradores; Atraso de propagação do Carry; Circuitos Integrados somadores |
seg | 30/9/2019 | 15 | Exercícios |
sex | 4/10/2019 | 16 | P1 |
seg | 7/10/2019 | 17 | Correção da prova/vista |
sex | 11/10/2019 | 18 | Cap 6 - Circuitos Sequenciais Circuitos com memória; Latches NAND e NOR e exemplos de utilização; Estado do Flip-flop ao ligar o circuito ; Pulsos digitais; Sinais de clock e flip-flops com clock – circuitos síncronos e assíncronos |
seg | 14/10/2019 | recesso | |
sex | 18/10/2019 | 19 | Flip-flop S-R com clock de transição positiva e negativa; Circuito interno de um flip-flop com clock; Flip-flop J-K com clock |
seg | 21/10/2019 | Semana Academica | |
sex | 25/10/2019 | Semana Academica | |
seg | 28/10/2019 | dia do servidor público | |
sex | 1/11/2019 | 20 | Flip-flop D com clock; Latch D (latch transparente); Entradas Assíncronas PRESET e CLEAR; Flip-flop T |
seg | 4/11/2019 | 21 | Aplicações com flip-flops; Sincronização com flip-flops; Detecção de sequências de entrada; Armazenamento e transferência de dados ; Transferência de dados paralela; Transferência de dados serial: registradores de deslocamento (shift registers); Transferência Serial vs Paralela; Divisão de frequência e contadores binários (assíncronos); Contador BCD; Dispositivos SCHMITT-TRIGGER; Multivibrador monoestável; Circuitos Geradores de Clock; Osciladores Schmitt-Trigger; Timer 555 usado como um multivibrador astável |
sex | 8/11/2019 | 22 | Cap. 7 - Contadores Contadores Assíncronos (Ripple); MOD número; Divisão de Frequência; Atraso de propagação nos contadores assíncronos; Contadores Síncronos; Contadores com MOD-number < 2^N; Contadores Síncronos DOWN e UP/DOWN; Contadores com PRESET; Contadores UP/DOWN com PRESET; Arranjos Multi-estágios; Decodificando um Contador |
seg | 11/11/2019 | 23 | Análise e projeto de Contadores Síncronos com flip-flops JK e D |
sex | 15/11/2019 | proclamação da república | |
seg | 18/11/2019 | 24 | Análise e projeto de Contadores Síncronos com flip-flops JK e D |
sex | 22/11/2019 | 25 | Análise e projeto de Contadores Síncronos com flip-flops JK e D |
seg | 25/11/2019 | 26 | Cap 8 - Registradores PARALLEL IN / PARALLEL OUT 74LS174/74HC174 SERIAL IN / SERIAL OUT —74ALS166/74HC166 PARALLEL IN / SERIAL OUT— 74ALS165/74HC165 SERIAL IN / PARALLEL OUT—74ALS164/74HC164 Shift-registers como Contadores – Contador em anel Shift-registers como Contadores – Contador Johnson |
sex | 29/11/2019 | 27 | Shift-registers como Contadores – Contador em anel e Contador Johnson |
seg | 2/12/2019 | 28 | Exercícios |
sex | 6/12/2019 | 29 | P2 |
seg | 9/12/2019 | 30 | VR |
sex | 13/12/2019 | 31 | VS |
Bibliografia:
[1] Sistemas Digitais – Princípios e Aplicações, 8a Edição, Ronald Tocci e Neal Widmer, Pearson/Prentice Hall
[2] Sistemas Digitais – Uma Abordagem Integrada, John P. Uyemura, Thomson Pioneira
[3] Digital Systems: Principles and Applications, 11 Edition, Ronald Tocci, Neal Widmer, & Greg Moss, Pearson/Prentice Hall