ORGANIZAÇÃO DE COMPUTADORES-EC - 46183-04

Semestre 2020/2


Professor Responsável: Ney Laert Vilar Calazans
Turma: 590
Sala: 206, Prédio 32
Horário: 3AB e 6AB (das 8:00 às 9:40)

Curso: Engenharia da Computação
ESCOLA POLITÉCNICA - PUCRS


Àndice desta página

Conteúdos das Aulas
Bibliografia
Material de Apoio
Avaliação
Programa da Disciplina


Avisos Importantes


Conteúdo das Aulas para o SemestreAulas Online
Aula Data Dia Conteúdo Recurso
1 11/08 Ter Aula inaugural: apresentação da disciplina (conteúdo, datas, avaliação, bibliografia, etc.)

Revisão e complementação de conceitos prévios para Organização de Computadores

  • Circuitos combinacionais e sequenciais, oscilador em anel.

  • Definição de sistemas digitais, exemplo do tocador de MP3 (entra MP3 e sai PCM, depois um conversor DA e alto falantes)

  • Noções fundamentais de um computador: informações de dados e controle, blocos de controle e de dados, programas e instruções.

  • Transparências1-OrgComp-EC

Aula Online 
2 14/08 Sex Revisão de tópicos de disciplinas anteriores relevantes para Organização de Computadores-EC
  • Máquinas de Estados Finitas - especificação, diagrama de blocos, implementação em portas lógicas e flip-flops

  • Flip-Flops e Registradores - características de operação, características estruturais, sinais de controle essenciais (clock) e acessórios (reset, set,habilitação de escrita).

  • Relação entre processadores e máquinas de estado - processadores SÃO máquinas de estado (complexas).

  • Transparências1-OrgComp-EC

Aula Online 
3 18/08 Ter
  • Qual tamanho de máquina de estados corresponde um processador?

Unidade I: Introdução

Revisão e complementação de conceitos prévios para Organização de Computadores:

  • Modelo geral de um computador: a interface Processador-Memária
  • Modelos gerais de organizações de computadores: von Neumann e Harvard
  • Classificação das arquiteturas conforme o conjunto de instruções (Ler HP 2.2 p.67) - máquina de pilha, máquinas com acumulador, máquinas com conjunto de registradores (de uso geral) (subdivididas em registrador-memória e registrador-registrador)
  • Tipos de operações (Ler HP 2.7 p.79)
  • Codificação de instruções (Ler HP 2.10 p.86)
  • A função do compilador (Ler HP 2.11 p.89)
  • Arquitetura MIPS: características
Aula Online
4 21/08 Sex Unidade II: Programação em Linguagem de Montagem

Os seis (6) Elementos Definitórios de uma Arquitetura (1 de 2):

  1. Conjunto de Registradores Acessíveis (ao programador em linguagem de montagem)
  2. Conjunto de Instruções (da arquitetura)
  3. Formatos de Instrução (da arquitetura)
  4. Modos de Endereçamento (de cada operando de cada instrução)
  5. Linguagem de Montagem (da arquitetura)
  6. Modelo de Acesso à  Memória (pelo processador)

Para entender melhor, leiam:

  • Sobre tipo, quantidade e tamanho de operandos (Ler HP 2.5 p.77)
  • Modos de endereçamento principais (há muitos outros) - imediato, direto, base-deslocamento, indexado (Ler PH p.85)
  • Modelos de acesso a memória (Ler HP 2.3 p.70)
Aula Online
5 25/08 Ter

Os seis (6) Elementos Definitórios de uma Arquitetura (2 de 2):

  1. Conjunto de Registradores Acessíveis (ao programador em linguagem de montagem)
  2. Conjunto de Instruções (da arquitetura)
  3. Formatos de Instrução (da arquitetura)
  4. Modos de Endereçamento (de cada operando de cada instrução)
  5. Linguagem de Montagem (da arquitetura)
  6. Modelo de Acesso à  Memória (pelo processador)
Programação em linguagem de montagem do MIPS (1/8)
 
Conjunto de instruções da arquitetura MIPS
  • Classes de instruções do MIPS
  • Tudo que não é instrução em um programa do MIPS pode ser: diretiva do montador, pseudo-instrução ou comentário. Por exemplo, especificação de dados se faz com diretivas.
  • Uso da letra "u" (unsigned) em mnemônicos do MIPS
    • gerar interrupções de tratamento de exceções em instruções aritméticas (sem u) ou ignorar  tais condições (com u)
    • uso de representações numéricas em complemento de 2 (sem u) ou em binário puro (com u)
  • Instruções de controle de fluxo: saltos (branches (opcodes 10 e 11), jumps (opcode 4))
  • Instruções de comparação (test and set) (opcodes 4 e 8) slts (set if less than)
Leiam um pouco sobre o MIPS na Wikipedia
Leiam também o Apêndice A do HP Seções A.1, A.2, A.3 e A.10. O link para o material é: Apêndice A
Aula Online
6 28/08 Sex Especificação do  Trabalho Prático 1   (peso: 20% de G1) 
Lista de Grupos x Trabalhos Confirmados
Material de Apoio para o Trabalho TP1

Exemplo de Trabalho TP1

Programação em linguagem de montagem do MIPS
(2/8)

Exemplos a serem apresentados em aula:

Aula Online

7 01/09 Ter

 Programação em linguagem de montagem do MIPS (3/8)

Simulador MARS - documentação e tutorial:

Assuntos a abordar nesta aula depois de mostrar o MARS: (1) Como escrever um programa e a relação deste com o código objeto gerado pelo montador (processo de montagem e desmontagem de código); (2) Como trabalhar com escalares (primeiro programa), (3) e vetores de escalares (segundo programa)


8 04/09 Sex

Programação em linguagem de montagem do MIPS (4/8)


9 08/09 Ter

Programação em linguagem de montagem do MIPS (5/8) 

Como trabalhar com cadeias de caracteres ou strings: programa toupper.asm e tolower_acent.asm


10 11/09 Sex Programação em linguagem de montagem do MIPS (6/8)
- A questão de montagem e desmontagem de código (estudos de caso da instruções MIPS lw, sw, beq, bne, lui, ori, j e jr)
- Tratamento especial de endereços de dados (sem divisão por 4) e endereços de instruções (com divisão por 4)

- Mais exemplos de programas: Compilação da estrutura switch (uso de ponteiros), teste_subr.asm
- Mais um exemplo de programa (complicado) que chama uma subrotina recursiva: fatorial_trad_de_C.asm


11 15/09 Ter

Programação em linguagem de montagem do MIPS (7/8)

Procedimentos - uso de estruturas de pilha no MIPS:

12 18/09 Sex

Data Final de Entrega do TP1 (Moodle)

Programação em linguagem de montagem do MIPS(8/8)

Procedimentos - uso de estruturas de pilha no MIPS:

13 22/09 Ter
14 25/09 Sex

Apresentações de TP1

Grupos que Apresentam TP1 hoje (em ordem):
G1 -  ()
G2 -  ()
G3 -  ()


Lembrem-se 15-20 min de apresentação por grupo

Ver dicas de como preparar a apresentação do TP1 aqui

 
15 29/09 Ter

Apresentações de TP1 (Continuação)

Grupos que Apresentam TP1 hoje (em ordem):
G4 -  ()
G5 -  ()
G6 -
 ()


Lembrem-se 15-20 min de apresentação por grupo

Ver dicas de como preparar a apresentação do TP1 aqui

16 02/10 Sex

 Apresentações de TP1 (Continuação)

Grupos que Apresentam TP1 hoje (em ordem):

G7 -  ()
G8 -  ()
G9 -  ()

Lembrem-se 15-20 min de apresentação por grupo

Ver dicas de como preparar a apresentação do TP1 aqui

17 06/10 Ter

Especificação do  Trabalho Prático 2   (peso: 20% de G1)


Unidade III: Bloco de Dados e Bloco de Controle - Introdução

Revisão e complementação de conceitos prévios para Organização de Computadores (Circuitos Digitais e VHDL):

Um conjunto de descrições VHDL para elementos básicos de hardware:

Mádulos básicos em VHDL


Uma introdução a conceitos de hardware para Organização de Computadores:
Transparências2-OrgComp-EC

  • Multiplexadores, demultiplexadores e decodificadores
  • Circuitos aritméticos
  • O Paradigma Síncrono e Máquinas de Estado Finitas
  • Memórias ROM e RAM - Interface externa e estrutura interna
  • flip-flops D e registradores

Implementação do bloco de dados monociclo (1/8) (Ler PH 5 p.196-217)

  • A questão de como organizar hardware para criar um processador
    • Uma especificação de um processador simples, o MIPS_V0
      • Nove instruções: ADDU, SUBU, AND, OR, XOR, NOR, LW, SW, ORI
      • Dois formatos de instrução: Tipo R e Tipo I
      • Três modos de endereçamento: a Registrador, Imediato e Base-deslocamento
      • Linguagem de montagem - subconjunto da linguagem do MIPS
      • Modelo de acesso à  memória - organização Harvard com uma ROM que contém o programa (acessível a palavra) e uma RAM acessível a palavra, ambas endereçadas a byte
      • Registradores - Os mesmos 32 do banco de registradores do MIPS e o PC
18 09/10 Sex

Implementação do bloco de dados monociclo   (2/8) (Ler PH 5 p.196-217)

O processador MIPS_V0

  • Conjunto de Instruções
  • Formatos (R e I)
  • Pressupostos do processador:
    • Monociclo (1 instrução = 1 ciclo de relágio)
    • Sensível apenas à  borda de subida  do relágio (cada borda de subida inicia uma nova instrução e completa a anterior)
    • Organização Harvard (memária de instruções inicia no endereço 0x00400000 e memória de dados inicia no endereço 0x10010000)
  • Interface entre processador e memórias (i_address, instruction; d_address, data, ce, rw)
  • Memórias possuem acesso assíncrono (ROM-instruções e RAM-dados)

13/10 Ter  Feriado - Antecipação do Dia do Professor
19 16/10 Sex

Implementação do bloco de dados monociclo (3/8) (Ler PH 5 p.196-217

  • O processador MIPS_V0 (continuação)
20 20/10 Ter

 

Implementação do bloco de dados monociclo (4/8) (Ler PH 5 p.196-217)

 

Estrutura da Implementação VHDL da MIPS_V0 e simulação

  • Descrições VHDL de apoio: Package p_MIPS_V0, registrador de 32 bits

  • Descrições VHDL dos blocos fundamentais: ULA, Banco de Registradores, Decodificação de instruções

  • Módulos de mais alto nível: Bloco de Controle, Bloco de Dados, Processador

  • Conceitos para executar programas: O testbench MIPS-V0_tb.vhd, Criação do software com o Mars

Simulação de um exemplo

21 23/10 Sex

 

Implementação do bloco de dados monociclo (5/8) (Ler PH 5 p.196-217)

 

Estrutura da Implementação VHDL da MIPS_V0 e simulação

  • Descrições VHDL de apoio: Package p_MIPS_V0, registrador de 32 bits;

  • Descrições VHDL dos blocos fundamentais: ULA, Banco de Registradores, Decodificação de instruções

  • Módulos de mais alto nível: Bloco de Controle, Bloco de Dados, Processador

  • Conceitos para executar programas: O testbench MIPS-V0_tb.vhd, Criação do software com o Mars

Simulação de um exemplo


22 27/10 Ter

 

Implementação do bloco de dados monociclo (6/8) (Ler PH 5 p.196-217)

  • Simulação da MIPS_V0 - Continuação

Como simular o MIPS_V0 :

  • Simulações do Processador MIPS_V0 completo, usando memórias externas preenchíveis a partir de arquivos em disco.

  • Processo de geração do arquivo de carga de memárias - uso do MARS, edição manual de texto e limitação ao subconjunto de instruções do MIPS_V0 .
  • Programa de teste utilizado: prog1.asm (neste exemplo, antes de se gerar o Dump do código no MARS substituir a primeira instrução pelo ori da segunda, ou seja, a primeira e segunda instrução serão iguais)
  • Inclusão dos saltos condicionais no VHDL
23 30/10 Sex

 Implementação do bloco de dados monociclo (7/8) ( Ler PH Seções 5.1 a 5.3)

Evolução do processador MIPS_V0:

  • Como acrescentar novas instruções
  • Estudos de caso das instruções BEQ e LUI
  • Expansão do MIPS_V0 para acomodar a instrução LUI
  • Expansão do MIPS_V0 para acomodar a instrução BEQ

Estrutura do Testbench da arquitetura MIPS_V0:

  • Exercícios para a Unidade III - Alguns exercícios para organizações monociclo e alguns para organizações multiciclo, não necessariamente aquelas vistas em aula.

  • Exercício Recomendado: alterar a organização MIPS monociclo para dar a esta capacidade de executar as seguintes instruções adicionais: ADDIU, ANDI, XORI

Continuação de exercícios de alteração/simulação do MIPS_V0 

24 03/11 Ter

 

Implementação do bloco de dados monociclo (8/8) (Ler PH Seções 5.4 e 5.7 a 5.10)

O Processador MIPS_V0+ (MIPS_V0 mais as instruções LUI e BEQ)

Exercício proposto, para ser corrigido na práxima aula:

  1. Partir do programa Soma uma constante a cada elemento de um vetor e fazer o seguinte:
  2. Adaptar este programa para rodar na MIPS_V0+, trocando as instruções que a MIPS_V0+ não reconhece por instruções ou sequências de instruções que ela reconhece, ignorando as últimas duas linhas do código fonte (li e syscall). Ao todo, deve-se adaptar as linhas (4) que possuem as instruções blez, addiu (2 linhas) e j.
  3. Gerar o código objeto do programa gerado no item 2 com o MARS e acrescentá-lo no projeto ISE da MIPS_V0+.
  4. Simular o novo programa como o simulador ISIM do ISE.

O Processador MIPS_V0++ (MIPS_V0 mais as instruções LUI e BLEZ)

Data Final de Entrega do Trabalho TP2 (Moodle)


25 06/11 Sex Especificação do  Trabalho Prático 3   (peso: 30% do G1)
Material para realizar o trabalho:

Implementação do bloco de dados multiciclo(1/4) (Ler PH Seções 5.4 e 5.7 a 5.10) 

 

Lâminas da aula (1-26): multi_ciclo_apresentacao.pdf. Se o PDF estiver rotacionado, use o botão de girar do Acrobat Reader - ao lado do zoom. Desempenho e limitações da implementação monociclo

  • Lâminas da aula (27-40), mesmo conjunto de lâminas da aula anterior
  • Bloco de controle com máquina de estados
  • Tempo de execução de programas
  • O arquivo mult_div.zip corresponde ao projeto a ser usado na práxima aula
 
26 10/11 Ter
Implementação do bloco de dados multiciclo(2/4) (Ler PH Seções 5.4 e 5.7 a 5.10)

Simulação avançada do MIPS Multiciclo - Integração do multiplicador ao MIPS

27 13/11 Sex Implementação do bloco de dados multiciclo(3/4) (Ler PH Seções 5.4 e 5.7 a 5.10)

Lâminas da aula (1-26): multi_ciclo_apresentacao.pdf. Se o PDF estiver rotacionado, use o botão de girar do Acrobat Reader - ao lado do zoom. Desempenho e limitações da implementação monociclo

28 17/11 Ter

Implementação do bloco de dados multiciclo(4/4)

Especificação do Trabalho_Prático 4  (peso: 30% de G1)

29 20/11 Sex Apoio para a execução dos trabalhos TP3/TP4
30 24/11 Ter

Apoio para a execução dos trabalhos TP3/TP4

 
31 27/11 Sex Data Final de Entrega do Trabalho TP3 (Moodle)
32 01/12 Ter Data Final de Entrega do Trabalho TP4 (Moodle)
33 04/12 Sex Professor disponível para resolução de dúvidas e revisões
34 08/12 Ter Professor disponível para resolução de dúvidas e revisões
--- 11/12 Sex Prova de G2 (INCLUI CONTEÚDO DE TODAS AS UNIDADES, INCLUSIVE UNIDADE IV)  


This page was last updated on August, 12th, 2020.

If you find problems in this page, please send an e-mail to ney.calazans at pucrs.br.
We will fix it in the shortest possible delay. Thanks for your help!