MAC 412 - Organização de Computadores - 2015 |
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
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 substitutiva: toda a matéria
4 de dezembro de 2015.
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 2015.
Até dia 26 de outubro de 2015:
Até dia 4 de dezembro de 2015 (adiada para o dia 8 de dezembro de 2015)
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.
Ver a
Programação das apresentações dos grupos selecionados
Os grupos selecionados para fazerem as apresentações
devem enviar para mim o arquivo com os slides na véspera da sua apresentação.
Aula 1 (04/08/2015):
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 (07/08/2015):
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/2015 (.html) está disponível.
Aula 3 (11/08/2015):
Continuação da aula anterior.
Passar a lista de exercício número 1.
Aula 4 (14/08/2015):
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 (18/08/2015):
Continuação da aula anterior.
Mostrar o funcionamento da porta NÃO, usando os mesmos slides da
aula anterior.
Aula 6 (21/08/2015):
Mostrar o funcionamento das portas NOR e NAND, usando os mesmos slides da
aula anterior.
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.
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 7 (25/08/2015):
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 (28/08/2015):
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 (01/09/15):
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.
Aula 10 (04/09/2015):
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 (15/09/2015):
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 (18/09/2015):
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 (22/09/2015):
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.
Falar sobre a Monografia, temas, etc.
Aula 14 (25/09/2015):
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 (29/09/2015):
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 (2/10/2015):
Essa aula e as seguintes usam os mesmos slides da aula 15.
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 (6/10/2015):
Microinstrução da arquitetura MIC.
Formato da microinstrução.
ROM contendo o micro-store (micro-programa).
Desvios (incondicional e condicional).
Aula 18 (9/10/15):
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 19 (20/10/2015):
Descrever o microprograma.
Como escrever microprogramas eficientes.
Aula 20 (23/10/2015):
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.
Passar a lista de exercício número 5.
Aula 21 (27/10/2014):
Palestra (não vai entrar em prova.)
Computação paralela: oportunidades e desafios - Computação paralela em todo
lugar e 40 anos de computação paralela.
Aula 22 (3/11/2015):
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 23 (6/11/2015):
Prova (com consulta). Matéria até arquitetura CISC (microprogramada)
inclusive.
Aula 24 (10/11/2015):
Uma apresentação sobre projeto de algoritmos paralelos para máquinas
paralelas.
Aula 25 (24/11/2015):
Apresentação por alunos.
Ver a
Programação das apresentações dos grupos selecionados.
Aula 26 (27/11/2015):
Apresentação por alunos.
Ver a
Programação das apresentações dos grupos selecionados.
Aula 27 (1/12/2015):
Apresentação por alunos.
Ver a
Programação das apresentações dos grupos selecionados.
Aula 28 (4/12/2015):
Prova substitutiva.
Prova regular:
6 de novembro de 2015.
Avaliação:
Avisos:
Monografias
Prazos:
Informar ao professor por email o tema escolhido e os nomes do grupo (no
máximo 3 alunos).
Entrega da monografia.
Temas:
Os temas sugeridos (por mim e pelo Prof. Alfredo Goldman quando ele ministrou
a disciplina em 2010) são os
seguintes. O grupo pode escolher qualquer tema, mesmo que ele já tenha sido
apresentado por algum grupo em 2010. Neste caso, naturalmente não vale fazer
copy-paste do trabalho já apresentado :-)
Programação das apresentações
Apenas os grupos selecionados farão as apresentações de seus trabalhos, além de
entregar as monografias.
Exercícios:
A entrega de exercícios pode ser ou em papel ou por email.
Se prefere entregar em papel, entregue em aula ou na
Secretaria do MAC no Bloco C.
Se voce entregar por
email, mande para song"at"ime"ponto"usp"br".
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
Passar a lista de exercícios 2.
Last modified: Sun Apr 2 20:02:36 BRT 2017