MAC 412 - Organização de Computadores - 2016 |
Avisos:
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
Sala do Professor: Sala 10 (Térreo) - Bloco C do IME
Telefones: 3091-6141 (minha sala), 3091-6135 (secretária)
Monitor da disciplina: Não há.
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 267 - Bloco A - 2.o andar - IME
Horário das aulas: 2.a feira: 10:00 - 11:50 e 5.a feira: 8:00 - 9:50
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:
7 de novembro de 2016 (prova com consulta).
Prova substitutiva:
5 de dezembro de 2016 (toda a matéria, prova com consulta).
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 2016.
Avaliação:
Avisos:
Monografias
Programação das apresentações das monografias.
Os grupos devem enviar para mim o arquivo com os slides na véspera da sua apresentação ou antes
Prazos:
Até dia 27 de outubro de 2016:
Informar ao professor por email o tema escolhido e os nomes do grupo (no
máximo 3 alunos).
Até dia 5 de dezembro de 2016
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.
Aula 1 (01/08/2016):
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 6.8 Mbytes):
mecânicos, eletro-mecânicos, válvula, transistores,
circuitos integrados, VLSI e uma breve apresentação do sistema Sunway,
o computador mais veloz do mundo anunciado em junho de 2016.
Aula 2 (04/08/2016):
Continuação da aula anterior, usando o mesmo conjunto de slides.
Aula 3 (08/08/2016):
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/2016 (.html) está disponível.
Passar a lista de exercício número 1.
Aula 4 (11/08/2016):
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 (15/08/2016):
Continuação da aula anterior (funcionamento de um transistor MOS - ou chave
liga-desliga).
Aula 6 (18/08/2016):
Mostrar o funcionamento da porta NÃO, usando os mesmos slides da
aula anterior.
Uma vez conhecida a porta NÃO, é fácil mostrar o funcionamento das portas
NOR e NAND.
Passar a lista de exercícios 2.
Aula 7 (22/08/2016):
Mostrar o uso de portas NOR ou NAND para produzir qualquer função booleana.
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.
Mostrar de forma informal o processo de fabricação de
pastilhas VLSI NMOS (não cai 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.
Aula 8 (25/08/2016):
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 9 (29/08/2016):
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 10 (01/09/2016):
Aula 11 (12/09/2016):
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.
Curiosidades e links úteis sobre assuntos relacionados com nosso curso:
Aqui colocarei links sobre assuntos interessantes relacionados ocm essa
disciplina. Sua colaboração
será bem apreciada: mandem-me links que voces acharem interessantes.
Assuntos tratados em aulas
Aula 12 (15/09/2016): 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 13 (19/09/2016): 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 14 (22/09/2016): 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 15 (26/09/2016): 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. Passar a lista de exercícios 4. Falar sobre a Monografia, temas, etc.
Aula 16 (29/09/2016): 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 (03/10/2016): 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 18 (06/10/2016): Essa aula e as seguintes usam os mesmos slides da aula passada. Explicar a 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 (17/10/2016): Microinstrução da arquitetura MIC. Formato da microinstrução. ROM contendo o micro-store (micro-programa). Desvios (incondicional e condicional).
Aula 20 (20/10/2016):
Aula 21 (24/10/2016): Exemplos de microinstruções usando micro-assembler: operações usando ALU, shifter, desvios (incondicional e condicional). Leitura e escrita de memória: precisam de dois ciclos.
Aula 22 (27/10/2016): Descrever o microprograma. (O microprograma completo do MIC tem apenas 79 microinstruções.) Como escrever microprogramas eficientes. Exercício em classe. Fazer um exercício e classe sobre como escrever um microprograma eficiente. Passar a lista de exercício número 5.
Aula 23 (31/10/2016): Introdução a arquitetura RISC (.pdf 134K) (Reduced Instruction Set Computer): motivação e características de arquitetura RISC.
Aula 24 (03/11/2016): Exercício em classe. Fazer um exercício e classe sobre como escrever um microprograma eficiente. Tópicos diversos: Palestra Computação Paralela em Todo Lugar.
Aula 25 (07/11/2016): Prova.
Aula 26 (10/11/2016): 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 27 (21/11/2016): Computação Parlela em todo lugar: oportunidades e desafios.
Aula 28 (24/11/2016):
Aula 29 (28/11/2016): Apresentação de monografias.
Aula 30 (01/12/2016): Apresentação de monografias.
Aula 31 (05/12/2016): Prova substitutiva.