MAC 412 - Organização de Computadores - 2006 |
Avisos:
A entrega de exercícios pode ser ou em papel ou por email.
Se voce entregar por
email, mande para ambos os endereços: ulisses"at"ime"ponto"usp"ponto"br
e 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: Ulisses Kendi Hayashida
Contacto: ulisses"at"ime"dot"usp"dot"br
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 29 de setembro de 2006 (sexta feira).
Prova com consulta.
Matéria: até a aula 12 inclusive.
Data da segunda prova:
Dia 8 de dezembro de 2006 (sexta feira).
Prova com consulta.
Matéria: da aula 13 à aula 23 inclusive.
Data da terceira prova (prova substitutiva opcional):
Dia 12 de dezembro de 2006 (terça-feira).
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 2006.
Aula 1 (01/08/06): 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 4.4 Mbyes): 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 (04/08/06): 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/2006 (.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 733K). Passar para casa a Lista de Exercícios No. 1 (.html).
Aula 3 (07/08/06): Introdução a tecnologia MOS (circuitos integrados) (.pdf 1.7M): 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 (11/08/06): (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 (15/08/06):
Mostrar o crescimento da capacidade dos processadores/memória
segundo a Lei de Moore, que diz que
"O número de transistores em uma pastilha dobra a cada 18 meses".
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,4M).
Primeiro chip foi fabricado na Texas Instruments
em 1958 por Jack Kilby, que ganhou o
Prêmio Nobel 2000 de Física.]
Aula 6 (18/08/2006): 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 7 (22/08/06): 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 8 (25/08/06): 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. Continuando a aula anterior, 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 9 (29/08/06): Grid Computing (apresentação feita por Ulisses). Não vai entrar na prova.
Aula 10 (15/09/06): 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 (19/09/06): Os slides sobre ISPS (.pdf 110K). 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 12 (22/09/06): Continuação do assunto ISPS. Cálculo do endereço efetivo, execução de instruções.
Aula 13 (26/09/06): 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.
Aula 14 (29/09/06): Primeira prova. Prova com consulta. Matéria: até a aula 12 inclusive.
Aula 15 (06/09/06): Continuação do assunto ISPS. Tratamento de interrupções. Fim do assunto ISPS. (Os curiosos podem ver como é a HDL - Hardware Description Language no tutorial ABEL-HDL Primer.) 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 16 (17/10/06): 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 17 (24/10/06): 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 18 (27/10/06): (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 19 (31/10/06): (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 20 (7/11/06): (Continuação - usando os mesmos slides Introdução a microprogramação (.pdf 748K).) Exemplos de microinstruções usando micro-assembler.
Aula 21 (10/11/06): (Continuação - usando os mesmos slides Introdução a microprogramação (.pdf 748K).) Descrever o microprograma. Como escrever microprogramas eficientes. Passar a Lista de Exercícios No. 5.
Aula 22 (21/11/06): (Continuação - usando os mesmos slides Introdução a microprogramação (.pdf 748K).) 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 23 (24/11/2006): 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 24 (5/12/2006): Apresentação do trabalho Reliable Systolic Computing through Redanduncy, um algoritmo paralelo para ambientes heterogênegos em grid computing, mediante o uso de redundância de recursos. Esse assunto não vai entrar nas provas.
Aula 25 (8/12/2006): Segunda Prova.
Aula 26 (12/12/2006): Terceira Prova (opcional).