MAC 412 - Organização de Computadores - 2007 |
Avisos:
A entrega de exercícios pode ser ou em papel ou por email.
Se voce entregar por
email, mande para
song"at"ime"ponto"usp"br".
Se prefere entregar em papel, entregue em aula ou na
Sala 293 Bloco A (pode ser colocado
por baixo da porta se eu não estiver na sala).
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, 3091-6135
Sala do Professor: Sala 293 (2.o andar) - Bloco A 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 143 - Bloco B - 1.o andar - IME
Horário das aulas: 3.a feiras: 8-10 h e 6.a feiras: 10-12 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
Data da primeira prova:
Dia 5 de outubro de 2007 (sexta-feira).
Prova com consulta.
Matéria: até a aula 11 (ISPS) inclusive.
Data da segunda prova:
Dia 30 de novembro de 2007 (sexta-feira).
Prova com consulta.
Matéria: da aula 12 à aula 21 inclusive.
Data da terceira prova (prova substitutiva opcional):
Dia 7 de dezembro de 2007 (sexta-feira).
Prova com consulta.
Prova com consulta.
Matéria: toda a matéria.
Data da prova de recuperação:
Listas de exercícios: média E
Nota de aproveitamento final A:
A = 0.2 E + 0.8 P
. Para informações sobre prazos de matrículas, trancamento, dias sem aula, etc. veja o
Calendário da Graduação para 2007.
Aula 1 (31/07/2007): 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 5.6 Mbytes): mecânicos, eletro-mecânicos, válvula, transistores, circuitos integrados, VLSI. Uma tabela mostrando a busca por produtividade (.html) (desde o ábaco até o uso da Internet).
Aula 2 (03/08/2007): Estado da arte da Computação de Alto Desempenho analisado no site TOP 500 - os 500 computadores mais velozes do mundo (.html). Essa lista é publicada duas vezes cada ano: em junho e novembro. A última lista completa TOP500 de junho/2007 (.html) está disponível. Comentar sobre as características da lista TOP500, quando a tendências arquitetônicas, tecnologia de chip, fabricantes, etc. Os slides sobre o estado de arte dos computadores mais velozes do mundo segundo a lista TOP 500 (.pdf 787K). Passar para casa a Lista de Exercícios No. 1 (.html) (Entregar até o dia 21/08/2007).
Aula 3 (17/08/07): 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 4 (21/08/07): (Usamos os mesmos slides da aula passada.) Mostrar o funcionamento de portas lógicas NOT, NAND e NOR em MOS. Passar a Lista de Exercícios No. 2.
Aula 5 (24/08/07):
Mostrar o crescimento da capacidade dos processadores/memória
segundo a Lei de Moore.
Mostrar uma tabela com o
número de transistores da linha Intel.
(São usados
os slides 20 e 21 da apresentação sobre VLSI.)
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.]
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.
Ciclo "busca-decodifica-executa".
Arquitetura de von Neumann: programa armazenado.
Conceito de "data path" no processador.
Aula 6 (28/08/07): Os slides sobre a hierarquia de memória e código de deteção e correção de memória (.pdf 128K). 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). Passar a Lista de Exercícios No. 3. Memória e códigos de deteção e correção de erros: 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 7 (31/08/07): 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. Passar a Lista de Exercícios No. 4. 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.
Aula 8 (11/09/07): 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 9 (14/09/07): 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.
Aula 10 (18/09/07): Continuação do assunto ISPS. Cálculo do endereço efetivo, execução de instruções.
Aula 11 (21/09/07): Continuação do assunto ISPS. Ciclo de interpretação de instruções do processador. Verificação de pedido de interrupção no ciclo de interpretação de instruções. Tratamento de interrupções. Dar vários links sobre HDL (Hardware Description Language): Abel Hardware Description Language HDL , Verilog Hardware Desciption Language HDL, Verilog HDL Examples.
Aula 12 (2/10/07): Os slides para essa aula sobre notação PMS (.pdf 166K). Notação PMS (de Bell, Newell e Siewiorek): uma breve introdução dos componentes D, M, K, T, etc.
Aula 13 (5/10/07): Primeira prova. Prova com consulta. Matéria: até a aula 11 (ISPS) inclusive.
Aula 14 (16/10/07): 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.
Aula 15 (19/10/07): 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.
Aula 16 (23/10/07): (Continuação - usando os mesmos slides Introdução a microprogramação (.pdf 748K).) 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 (26/10/07): (Continuação - usando os mesmos slides Introdução a microprogramação (.pdf 748K).) Microinstrução da arquitetura MIC. Formato da microinstrução. ROM contendo o micro-store (micro-programa).
Aula 18 (30/10/07): (Continuação - usando os mesmos slides Introdução a microprogramação (.pdf 748K).) Exemplos de microinstruções usando micro-assembler.
Aula 19 (06/11/07): (Continuação - usando os mesmos slides Introdução a microprogramação (.pdf 748K).) Descrever o microprograma.
Aula 20 (09/11/07): (Continuação - usando os mesmos slides Introdução a microprogramação (.pdf 748K).) Como escrever microprogramas eficientes. Passar a Lista de Exercícios No. 5. Microcódigo vertical e horizontal. Fazer exercício em classe no. 1 sobre microcódigo para instruções de máquinas novas, onde há leitura de memória. Fazer exercício em classe no. 2, onde há escrita de memória. [A solução do exercício em classe no. 1. e a solução do exercício em classe no. 2.]
Aula 21 (23/11/2007): Introdução a arquitetura RISC (.pdf 134K) (Reduced Instruction Set Computer): motivação e características de arquitetura RISC. Material complementar: uma discussão sobre RISC e CISC (para os curiosos): RISC vs. CISC: the Post-RISC Era.
Aula 22 (27/11/2007): Apresentação do trabalho Reliable Systolic Computing through Redanduncy, um algoritmo paralelo para ambientes heterogêneos em grid computing, mediante o uso de redundância de recursos. Esse assunto não vai entrar nas provas :-)
Aula 23 (30/11/2007): Segunda Prova.
Aula 24 (04/12/2007): Aula para tirar dúvidas.
Aula 25 (07/12/2007): Terceira Prova (opcional).