MAC 412 - Organização de Computadores - 2014 |
Avisos:
Ver regras e temas de monografias abaixo.
Em cada aula será passada lista de presença.
Disciplina oferecida pela Unidade: Instituto de Matemática e Estatística
Departamento: Departamento de Ciência da Computação
Professor responsável: Siang Wun Song
Telefones: 3091-6141 (minha sala), 3091-6135 (secretária)
Sala do Professor: Sala 10 (Térreo) - Bloco C do IME
Monitor da disciplina:
Disciplina oferecida: ao Bacharelado de Ciência da Computação - IME
Pré-requisito desejável: MAC 329 Álgebra Booleana e Aplicações
Local das aulas: Sala 142 - Bloco B - 1.o andar - IME
Horário das aulas: 3.a feira: 8:00 - 9:50 h e 6.a feira: 10:00 - 11:50 h
Programa: Tecnologias de implementação de circuitos. Organização de um computador; conceito de programa armazenado; endereçamento; formato de instruções e conjunto de instruções; microprogramação; memória e gerenciamento de cache; interrupção e dispositivos de entrada/saída. Arquiteturas de computadores de alto desempenho (RISC, pipeline); organização de computadores paralelos.
Tipo de aulas: Aulas teóricas e práticas
Critérios de avaliação:Provas, exercícios e projetos e/ou seminários de grupos
Bibliografia:
Regime de oferecimento: Cada semestre (2.o semestre de cada ano)
Duração: do início de agosto ao início de dezembro
Carga horária semanal e número de créditos: 4 horas - 4 créditos
Datas das provas:
Prova regular: dia 7 de novembro de 2014
Prova substitutiva: dia 5 de dezembro de 2014 Matéria: até RISC, inclusive
Haverá uma prova substitutiva no final do semestre (com toda a matéria dada).
Pode fazer a prova substitutiva mesmo quem fez a prova regular: vale a maior nota das duas provas feitas.
Nota de aproveitamento final A = 0.2 E + 0.4 P + 0.4 M
. Para informações sobre prazos de matrículas, trancamento, dias sem aula, etc. veja o
Calendário da Graduação para 2014.
Até dia 31 de outubro de 2014:
Informar ao professor por email o tema escolhido e os nomes do grupo (no
máximo 3 alunos).
Até dia 5 de dezembro de 2014:
Entrega da monografia.
As apresentações serão programadas em breve.
O grupo pode, caso queira, sugerir um tema diferente, com a concordância do professor.
Os demais grupos precisam apenas entregar as monografias. Não precisam preparar slides.
As notas serão baseadas na monografia.
Aula 1 (04/08/2014): Breve descrição da disciplina: ementa, bibliografia, monitor, material didático, cálculo da média de aproveitamento, etc. Breve descrição da disciplina, motivando sua importância. Um breve histórico da evolução dos computadores (.pdf 2.3 Mbytes): mecânicos, eletro-mecânicos, válvula, transistores, circuitos integrados, VLSI.
Aula 2 (08/08/2014): Uma tabela mostrando a busca por produtividade (.html) (desde o ábaco até o uso da Internet). Os slides sobre o estado de arte dos computadores mais velozes do mundo segundo a lista TOP 500 (.pdf 3.882 Mbytes). A última lista completa TOP500 de junho/2014 (.html) está disponível.
Aula 3 (12/08/2014): Continuação da aula anterior. Passar a lista de exercício número 1.
Aula 4 (15/08/2014): Motivação da importância da tecnologia de microeletrônica: o transistor MOS é a base para construir portas lógicas minúsculas, que são as unidades básicas (tijolos) para construir ciruitos lógicos digitais. Introdução a tecnologia MOS (circuitos integrados) (.pdf 1.8M): mostrar a evolução da área em termos de capacidade de armazenamento de uma pastilha e tamanho de um transistor, mostrar o princípio de funcionamento de um transistor MOS (chave abre-fecha).
Aula 5 (19/08/2014): Continuação da aula anterior.
Aula 6 (22/08/2014):
Mostrar o funcionamento da porta NOR e porta NAND, usando os mesmos slides das
aulas anteriores.
Breve comentário sobre a diferença entre as tecnologias NMOS e CMOS:
NMOS apresenta tempo assimétrico para mudança de estado
(1 para 0 e vice versa);
em CMOS essa assimetria é eliminada tornando a tecnologia mais rápida.
[Seguem algumas curiosidades (não caem em provas :-):
Breve explicação sobre o processo de fabricação (.pdf 1,9M).
Primeiro chip foi fabricado na Texas Instruments
em 1958 por Jack Kilby, que ganhou o
Prêmio Nobel 2000 de Física.]
Passar a lista de exercícios 2.
Aula 7 (26/08/2014): Os slides sobre a introdução a organização de computadores (.pdf 39K). Máquina multi-nível: nível sistema operacional, nível convencional (linguagem de máquina), nível microprogramação, nível lógica digital. Esclarecer os diversos níveis, destacando a existência de instruções de máquina no nível convencional e as chamadas micro-instruções, que a execução de uma instrução de máquina pode corresponder a execução de uma sequência de micro-instruções. Introduzir a nomenclatura de CISC ( complex instruction set computer) e RISC (reduced instruction set computer). Organização de um computador: processador, memória, periféricos, barramento. Lembrar o problema da "memory wall": o desempenho do processador avança bem mais rapidamente do que a memória. Ciclo "busca-decodifica-executa". Arquitetura de von Neumann: programa armazenado. Conceito de "data path" no processador.
Aula 8 (29/08/2014): Os slides sobre a hierarquia de memória e código de deteção e correção de memória (.pdf 191K). Hierarquia de memória: registradores, on-chip cache, off-chip cache, memória principal (RAM), armazenamento secundário (discos), outros de armazenamento remotos (arquivos distribuidos, servidores web). Códigos de deteção e correção de erros de memória: paridade e código de Hamming. Ilustrar primeiro um caso simples: palavra de 4 bits com mais 3 bits adicionais, formando um código de Hamming de 7 bits.
Aula 9 (02/09/14): Continuação da aula anterior, usando os mesmos slides. Método do código de Hamming: mostrar o caso para palavra de 8 bits e 4 bits adicionais, formando o código de Hamming de 12 bits. Os slides usados são os mesmos já apresentados acima. Mostrar como o código de Hamming pode ser usado para transmitir uma mensagem longa, permitindo recuperação de uma pequena sequência consecutiva de bits danificados. Passar a lista de exercícios 3.
Aula 10 (05/09/2014): Cada computador possui um conjunto de instruções de máquina. O formato das instruções de máquina pode variar de computador para computador. Um compilador transforma um programa em linguagem de alto nível em instruções de máquina (código objeto). Os slides sobre endereçamento e formato de instruções (.pdf 82K). Formas de endereçamento: uso de registradores base, registradores segmento, registrador banco. Formas de endereçamento: uso de registradores base, registradores segmento, formato de instruções, instruções com 0, 1, 2 ou mais endereços, ``opcodes'' que expandem.
Aula 11 (16/09/2014): Os slides sobre ISPS (.pdf 110K) usados nesta e nas próximas aulas. ISPS (de Bell e Newell): introdução e objetivos de uma linguagem de descrição de hardware. Descrever um exemplo de especificação de um computador simples. Estado de memória, estado de processador. Cálculo do endereço efetivo.
Aula 12 (19/09/2014): Continuação do assunto ISPS, usando os mesmos slides da aula anteior. Definição do conjunto de instruções. Ciclo de interpretação de instruções do processador. Verificação de pedido de interrupção no ciclo de interpretação de instruções.
Aula 13 (23/09/2014): Tratamento de interrupções: antes é necessário salvar o contexto do processo sendo interrompido. Depois de tratada a interrupção, restaura-se o contexto do processo suspenso e retoma a sua execução. Discussão: o que deve ser feito para permitir encadeamento de interrupções (i.e. uma interrupção pode ser interrompida por outra). Dar vários links sobre HDL (Hardware Description Language): Abel Hardware Description Language HDL , há também essa outra: Verilog Hardware Desciption Language HDL, Para quem tiver curiosidade sobre essa linguagem: veja Verilog HDL Examples.
Aula 14 (26/09/2014): Os slides sobre processador, pinos típicos e barramento (.pdf 91K). Processador em uma pastilha e os pinos típicos de entrada e saída. Árbitro de barramento. Leitura de memória em vários ciclos de relógio. Comentar as regras para fazer a monografia e escolha de temas.
Aula 15 (30/09/2014): Introdução a microprogramação (.pdf 748K): arquitetura CISC (Complex Instruction Set Computer) e e exemplos de máquinas CISC. Arquitetura MAC: conjunto de instruções. Microarquitetura MIC e os componentes básicos.
Aula 16 (3/10/2014): Microarquitetura MIC e os componentes básicos: ALU, shifter, MUX, registradores, MAR, MBR. Micro instruções: sinais de controle para controlar a microarquitetura.
Aula 17 (7/10/2014): Microinstrução da arquitetura MIC. Formato da microinstrução. ROM contendo o micro-store (micro-programa). Exemplos de microinstruções usando micro-assembler: operações usando ALU, shifter, desvios (incondicional e condicional).
Aula 18 (31/10/14): Leitura e escrita de memória. Descrever o microprograma. Como escrever microprogramas eficientes. Passar a lista de exercício número 4.
Aula 19 (4/11/2014): Exercício em classe. Fazer um exercício e classe sobre como escrever um microprograma eficiente. Introdução a arquitetura RISC (.pdf 134K) (Reduced Instruction Set Computer): motivação e características de arquitetura RISC.
Aula 20 (7/11/2014): Prova.
Aula 21 (11/11/2014): Um seminário sobre como preparar um seminário (.pdf 98K). Logo após, usando os slides disponíveis em (ver o item Presentation 101 for graduate students) http://www.cyto.purdue.edu/Education/index.htm, apresentarei algumas orientações sobre como apresentar um seminário. Serão destacados vários aspectos: postura do palestrante, abertura e conclusão, uso de cor, tamanho dos fonts, uso de apontador laser, animação, etc.
Aula 22 (14/11/2014): Breve explicação de arquiteturas de processadores avançadas: superescalar, VLIW, multi-core. (.pdf 76K) Palestras diversas (não vão entrar em prova.) Computação de alto desempenho: de 2000 a 2030. Desafio do projeto de algoritmos paralelos.
Aula 23 (25/11/2014): Palestra (não vai entrar em prova.) A computação paralela nos útlimos 40 anos.
Aula 24 (28/11/2014): Apresentação por alunos. Ver a Programação das apresentações dos grupos selecionados.
Aula 25 (02/12/2014): Apresentação por alunos. Ver a Programação das apresentações dos grupos selecionados.
Aula 26 (05/12/2014):
Prova substitutiva (aberta). Mesmo quem já fez a prova pode fazer essa
prova. Será considerada a melhor nota das duas.