MAC 412 - Organização de Computadores - 2005 |
Na sala de xerox do Bloco B, a pasta no. 121 contém todos os slides até a aula 12, inclusive.
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 (aluno de doutorado)
E-mail: ulisses at ime . usp . 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 6 - Bloco B - Térreo - 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:
7 de outubro de 2005 (sexta-feira).
Prova com consulta. Matéria: Até a aula 12 inclusive.
Data da segunda prova:
2 de dezembro de 2005 (sexta-feira).
Prova com consulta. Matéria: da aula 13 até a aula 21.
Data da terceira prova (prova substitutiva opcional):
9 de dezembro de 2005 (sexta-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 2005.
Aula 1 (02/08/05): Breve descrição da disciplina: ementa, bibliografia, monitor, material didático, cálculo da média de aproveitamento, etc.
Aula 2 (12/08/2005): Breve descrição da disciplina, motivando sua importância. Um breve histórico da evolução dos computadores (.pdf 33K): 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 3 (16/08/2005): Estado da arte da Computação de Alto Desempenho analisado através da lista 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 (.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 535K) estão disponíveis. Passar para casa a Lista de Exercícios No. 1 (.html).
Aula 4 (23/08/05): 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 5 (26/08/05): (Usamos os mesmos slides da aula passada.) Mostrar o funcionamento de portas lógicas NOT, NAND e NOR em MOS; mostrar uma tabela com o número de transistores da linha Intel; 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". Passar a Lista de Exercícios No. 2. Relógio de duas fases. Uso de transistores de passagem para controlar o fluxo de dados. Comentário sobre a diferença entre as tecnologias NMOS e CMOS.
[Curiosidades (não vai cair 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 (30/08/05): Uma aula sobre a chamada grid computing, suas características e aplicações.
Aula 7 (02/09/05): Os slides sobre Lógica Combinatória (.pdf 96K). Uso de portas NAND apenas (ou NOR apenas) para projetar circuitos de lógica combinatória. Fazer exercícios em classe. Projeto de lógica combinatória usando circuitos como multiplexador, ROM, PLA, etc. Multiplexador MUX (seletor) e demultiplexador DEMUX (decodificador). Uso de MUX e DEMUX para comunicação de dados. Uso do ROM para implementar lógica combinatória. Uso do PLA para projetar lógica combinatória, comparado com o uso do ROM e uso de portas lógicas discretas.
Aula 8 (13/09/05): Projeto de lógica sequencial usando um diagrama de estados finitos e implementada por uma PLA. Ilustrar a técnica com o projeto de uma lógica sequencial para o controle de tráfego com semáforos (.pdf 204K): diagrama de estados finitos, tabela de transção, codificação e a implementação por uma PLA. Passar a Lista de Exercícios No. 3.
Aula 9 (16/09/2005): 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 10 (23/09/05): 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). Mostrar o slide 2 e slide 3 de http://www.cs.pdx.edu/~robboy/CLASSES/CS201/slides/cache.friendly.code.pdf. Memória e códigos de deteção e correção de erros: paridade e código de Hamming. 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.
Aula 11 (26/09/05): 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. 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 12 (30/09/05): 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 13 (04/09/05): Os slides sobre ISPS (.pdf 110K). ISPS (de Bell e Newell): introdução e objetivos de uma linguagem de descrição de hardware.
Aula 14 (07/10/05): Primeira Prova.
Aula 15 (18/10/05): Continuação do assunto ISPS. Descrever um exemplo de especificação de um computador simples. Estado de memória, estado de processador, cálculo do endereço efetivo, execução de instruções.
Aula 16 (21/10/05): 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. (Os curiosos podem ver como é a HDL - Hardware Description Language no tutorial ABEL-HDL Primer.)
Aula 17 (01/11/05): 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 18 (08/11/05): 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: ALU, shifter, MUX, registradores, MAR, MBR. Micro instruções: sinais de controle para controlar a microarquitetura.
Aula 19 (11/11/05): Microinstrução da arquitetura MIC. Formato da microinstrução. ROM contendo o micro-store (micro-programa). Exemplos de microinstruções usando micro-assembler. Lista de Exercícios No. 5.
Aula 20 (22/11/2005): Como escrever microprogramas eficientes. 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 (25/11/2005): 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 (29/11/2005): Apresentação de um algoritmo paralelo para ambientes heterogênegos em grid computing, mediante o uso de redundância de recursos. Esse assunto foi a dissertação de mestrado de Marcos Yamamoto, orientado pelo Prof. Kunio. Não vai entrar nas provas.
Aula 23 (02/12/2005): Segunda Prova.
Aula 24 (02/12/2005): Aula para tirar dúvidas. Não haverá lista de presença (presença coletiva).
Aula 25 (02/12/2005): Terceira Prova (opcional).