Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática (FACIN-PUCRS)...

Preview:

Citation preview

Pontifícia Universidade Católica do Rio Grande do SulFaculdade de Informática (FACIN-PUCRS)

Introdução a Organização de Computadores

Parte 2 – Uma Re-Introdução a Sistemas Digitais (com VHDL)

Ney Calazans

Última alteração: 23/09/2011

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

Sumário

1 - Sistemas Digitais

2 - Projeto e Fabricação de SDs

3 - SDs Combinacionais e Sequenciais

4 - Taxonomia de SDs

5 - O Processo de Projeto de SDs

6 - Componentes Digitais Importantes em Organização de

Computadores

Org_Comp

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

1 - Sistemas Digitais – Definição Estrutural

Sistema DigitalProcessamento Numérico

de Informação

Entradas Saídas

E(1) C(1)

E(2)

E(K-2)

E(K)

E(K-1)

S(1) C(K+1)

S(2)

S(3)

S(L)

S(L-1)

C(2)

C(K-2)

C(K-1)

C(K)

C(K+2)

C(K+3)

C(K+L-1)

C(K+L)

Sistema Digital – Um Aparato dotado de conjuntos finitos de entradas e saídas e capaz de processar informação

representada sob forma numérica.

Em francês, systèmes numériques!

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

Sumário

1 - Sistemas Digitais

2 - Projeto e Fabricação de SDs

3 - SDs Combinacionais e Sequenciais

4 - Taxonomia de SDs

5 - O Processo de Projeto de SDs

6 - Componentes Digitais Importantes em Organização de

Computadores

Org_Comp

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

2 - Projeto e Fabricação de Sistemas Digitais

Três ramos do conhecimento científico envolvidos: Ciência da Computação Física de Semicondutores Matemática Aplicada

Ciência daComputação

Física deSemicondutores

Métodos de FabricaçãoAuxiliada por Computador

Métodos de Modelagemde Processos Físicos

Métodos de ProjetoAuxiliado por Computador

Engenharia deSistemas Digitais

VLSI

SistemasVLSI

MatemáticaAplicada

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

2 - Projeto e Fabricação de SDs VLSI

Projeto de SDs - método p/ desenvolver plano de um SD manufatura automática

Estilo de Projeto - conjunto de métodos

Base da tecnologia atual - processos planares de fabricação

CI VLSI moderno - pastilha de 1cm2 de lado, espessura < 1mm, mais 109 dispositivos

Parâmetro de base - “min-feature-size”: em 96 - 0,25µm/ em 98 - 0,18µm e 0,12µm; hoje 0,028µm ou 28nm!! Um fio de cabelo = ~70m de diâmetro, oco. É possível passar

19,6 milhões de fios da tecnologia 28nm por dentro de um único fio de cabelo!!

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

chipchip

circuitoscircuitosde testede teste

2 - Processos Planares de Fabricação

““silicon silicon wafer” ou wafer” ou “bolacha “bolacha de silício” de silício”

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

As zonas em azul claro e escuro representam duas camadas de metal (no caso, fios de alumínio)

CPU da HP (1987)CPU da HP (1987)80.000 transistores80.000 transistores

2 - Um Exemplo de Circuito Integrado

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

2 - Um Microprocessador – Pentium-Pro

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

1 - Motivação

Tecnologia CMOS 65nm

Interconexões 1 poly, 8 metal (Cu)

Transistores 100 Milhões

Área do Chip 275 mm2

Área do Tijolo 3 mm2

Encapsulamento1248 pinos, 14 camadas,

343 pinos E/S

Estado da Arte em Processadores – exemplo de chip de pesquisa da Intel

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

2 - Projeto e Fabricação de SDs – a lei de Moore

“A densidade de Circuitos Integrados dobra a intervalos regulares de 18 meses”Gordon E. Moore,

(1965)

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

Sumário

1 - Sistemas Digitais

2 - Projeto e Fabricação de SDs

3 - SDs Combinacionais e Sequenciais

4 - Taxonomia de SDs

5 - O Processo de Projeto de SDs

6 - Componentes Digitais Importantes em Organização de

Computadores

Org_Comp

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

3 - SDs Combinacionais e Sequenciais

SD Combinacional - comportamento de cada saída descrito como função exclusivamente dos valores instântaneos das entradas

A

0

0

1

1

B

0

1

0

1

A

B

A^B

0

0

0

1

A^B

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

3 - SDs Combinacionais e Sequenciais

SD Seqüencial - qualquer SD que não possa, em geral atender à definição de SD combinacional

X Xi-1

0

1

Xi

1

0

Oscilador em Anel

A

XA

0

1

Xi

0

Xi-1

Captura de Zeros

E

D

E

0

0

1

1

D

0

1

0

1

Xi

Xi-1

Xi-1

0

1

X

1 bit de RAM

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

3 - Armazenamento de Informação e Estado

Em geral, laço de realimentação implica armazenar informação, e conceito de estado

B

A X

A

0

0

1

1

B

0

1

0

1

X

0

0

0

1

Contra-exemplo: circuito com realimentação, contudo combinacional

Estado - excluindo realimentações redundantes, cada configuração distinta de valores destas

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

3 - SDs Combinacionais e Sequenciais

Definição de tipos de SDs baseada em estados

Todo SD é um SD seqüencial

SD combinacional - possui apenas 1 estado

SD estritamente seqüencial - sob mesmas condições, possui mais de um estado

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

Sumário

1 - Sistemas Digitais

2 - Projeto e Fabricação de SDs

3 - SDs Combinacionais e Sequenciais

4 - Taxonomia de SDs

5 - O Processo de Projeto de SDs

6 - Componentes Digitais Importantes em Organização de

Computadores

Org_Comp

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

4 - Taxonomia de SDs

Fundamental - escolha de critérios de classificação adequados

Ortogonalidade - meta da escolha de critérios

Critérios - podem depender de diversas características físicas, de uso, de construção, de custo, etc.

Critérios: personalizabilidade, programabilidade, retenção da personalização, complexidade, forma de produção, relação entradas/saídas, pressupostos de sincronismo, etc.

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

NÃO PROGRAMÁVEIS OU RÍGIDOSEX: FAMÍLIA TTL 74XX

PROGRAMÁVEISEX: FAMÍLIA INTEL MCS'86

NÃO PERSONALIZÁVEISOU FIXOS

CIRCUITOSINTEGRADOS

PERSONALIZÁVEIS

PÓS-FABRICAÇÃO

POR FABRICAÇÃO

RETENÇÃO EM FUNCIONAMENTOEX: FPGA BASEADO EM RAM

RETENÇÃO ETERNA, EXCETO PORPROCEDIMENTOS ESPECIAIS EX:

EPROM, EEPROM, FPGABASEADO EM EPROM

RETENÇÃO ETERNA, APÓS PRIMEIRAPERSONALIZAÇÃO EX: PROM, FPGA

BASEADO EM ANTIFUSÍVEIS

PARCIALMENTE PERSONALIZÁVEIS,OU SEMI-DEDICADOS, OU PRÉ-

CARACTERIZADOS (SEMI-CUSTOM)

TOTALMENTE PERSONALIZÁVEIS,OU DEDICADOS (FULL-CUSTOM)

PRÉ-DIFUNDIDOSEX: GATE ARRAY

PÓS-DIFUNDIDOSEX: STANDARD-CELL

Uma Classificação de CIs baseada em quatro critérios

flexibilidade

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

Bloco K Bloco K Bloco K Bloco K

Bloco K Bloco K Bloco K Bloco K

Bloco K Bloco K Bloco K Bloco K

Bloco K Bloco K Bloco K Bloco K

m colunas canais de roteamento caixa de conexão

n linhas

Blocos comfunção lógicaprogramável

Canal

Linhas de conexão

4 - Circuitos FPGA

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

Sumário

1 - Sistemas Digitais

2 - Projeto e Fabricação de SDs

3 - SDs Combinacionais e Sequenciais

4 - Taxonomia de SDs

5 - O Processo de Projeto de SDs

6 - Componentes Digitais Importantes em Organização de

Computadores

Org_Comp

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

5 - O Processo de Projeto de SDs

Processo de Projeto - descrição inicial (especificação) descrição final (projeto final ou detalhado)

Diferença entre especificação e projeto final - quantidade de informação

Informação no projeto final permite fabricar automaticamente (ou quase) o SD

Problema - controlar a complexidade de projeto VLSI!

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

5 - Níveis de Abstração de Projeto

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

5 - O Processo de Projeto de SDs

Problema derivado - complexidade impede passagem direta especificação projeto final;

Solução - decomposição hierárquica do processo de projeto, continuum de descrições;

Complexidade requer organização da hierarquia de descrições - modelos para representar o processo de projeto.

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

5 - Modelo de Suzim

Critério: nível de abstração

.

Validação

Síntese

Síntese

Síntese

Nível de Abstração i+1

Nível de Abstração i

Extração

Extração

Extração

Otimização

Validação Otimização...

...

Transformação entre níveis (aresta) = ferramenta de projetoNível de abstração (vértices) = conjunto de descrições

Suzim propõe modelo unidimensional

Nível de abstração = quantidade de informação

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

5 - Modelo de Gajski-Kuhn ou Diagrama Y

Modelo bidimensional Critérios: nível de abstração e

domínio de descrição Domínio de descrição = tipo

de informação

Elétrico

Lógico

Arquitetural

SistêmicoDomínio Estrutural Domínio Comportamental

Domínio Físico

Processadores, Memórias, Barramentos

Registradores, ULAs, Muxs, Decods

Portas Lógicas, Biestáveis

Transistores, Lineares Funções de Transferência, Equações Diferenciais

Expressões Booleanas, Tabelas de Transição

HDLs, Transferência entre Registradores

Processos Comunicantes, Algoritmos

Placas, Módulos Multi-chip

Planta Baixa de Blocos de CIs

Planta Baixa de Células Lógicas

"Layout" de Transistores e Lineares

Círculo = nível de abstração, eixo = domínio de descriçãoIntersecção círculo-eixo (vértices) = descriçãoTransformação entre níveis (aresta no grafo) = ferramenta

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

Mais abstr

ação

Eixo ComportamentalSistêmico

Algorítmico

Micro arquitetural

Lógico

Elétrico

Eixo Estrutural

Eixo Geométrico

Circuito Real(fabricado)

idéia

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

Eixo ComportamentalSistêmico

Algorítmico

Micro arquitetural

Lógico

Elétrico

Eixo Estrutural

Eixo Geométrico

processadores, memórias, barramentos

módulos de hardware

registradores, multiplexadores, operadores

Portas lógicas, flip-flops

Transistores, resistores, capacitores, indutores

processadores, memórias, barramentos

módulos de hardware

registradores, multiplexadores, operadores

Portas lógicas, flip-flops

Transistores, resistores, capacitores, indutores

Leiaute das máscaras, retângulos, polígonos

Células de biblioteca, modelos de posição de pinos

Macro-células, planta baixa de blocos

Módulos, clusters, cores, planos de clock/alimentação

Partições físicas, componentes, placas

Leiaute das máscaras, retângulos, polígonos

Células de biblioteca, modelos de posição de pinos

Macro-células, planta baixa de blocos

Módulos, clusters, cores, planos de clock/alimentação

Partições físicas, componentes, placas

Funções de transferência, equações diferenciais

Equações booleanas, tabelas verdade, BDDs

Máquinas de estado finitas, operações

Algoritmos

Especificações funcionais

Funções de transferência, equações diferenciais

Equações booleanas, tabelas verdade, BDDs

Máquinas de estado finitas, operações

Algoritmos

Especificações funcionais

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

EDIF

LEF / DEF

Spice

VHDL

C, C++, Hardware C

Java

Spice

CIF, GDS2

Eixo ComportamentalSistêmico

Algorítmico

Micro arquitetural

Lógico

Elétrico

Eixo Estrutural

Eixo Geométrico

processadores, memórias, barramentos

módulos de hardware

registradores, multiplexadores, operadores

Portas lógicas, flip-flops

Transistores, resistores, capacitores, indutores

Leiaute das máscaras, retângulos, polígonos

Células de biblioteca, modelos de posição de pinos

Macro-células, planta baixa de blocos

Módulos, clusters, cores, planos de clock/alimentação

Partições físicas, componentes, placas

Funções de transferência, equações diferenciais

Equações booleanas, tabelas verdade, BDDs

Máquinas de estado finitas, operações

Algoritmos

Especificações funcionais

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

Eixo ComportamentalSistêmico

Algorítmico

Micro arquitetural

Lógico

Elétrico

Eixo Estrutural

Eixo Geométrico

processadores, memórias, barramentos

módulos de hardware

registradores, multiplexadores, operadores

Portas lógicas, flip-flops

Transistores, resistores, capacitores, indutores

Leiaute das máscaras, retângulos, polígonos

Células de biblioteca, modelos de posição de pinos

Macro-células, planta baixa de blocos

Módulos, clusters, cores, planos de clock/alimentação

Partições físicas, componentes, placas

Funções de transferência, equações diferenciais

Equações booleanas, tabelas verdade, BDDs

Máquinas de estado finitas, operações

Algoritmos

Especificações funcionais

1- “síntese”

2- simulação

3- mapeamento

4- place&route

5- fabricação

Processo Clássico de Sistemas Digitais (projeto RTL, do inglês, Register Transfer Level)

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

Sumário

1 - Sistemas Digitais

2 - Projeto e Fabricação de SDs

3 - SDs Combinacionais e Sequenciais

4 - Taxonomia de SDs

5 - O Processo de Projeto de SDs

6 - Componentes Digitais Importantes em Organização de

Computadores

Org_Comp

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

Circuitos Combinacionais

Portas lógicas Elementares, Vetores de Portas Lógicas

Somadores / Subtratores Multiplexadores Decodificadores Comparadores ULA

Circuitos Sequenciais

Flip-flops e Registradores (deslocamento, carga paralela, acumulador, serial-paralelo, etc.)

Contadores (binário e outros, up, down, up-down, etc.)

Memórias RAM Máquina de Estados

6 - Componentes Digitais Importantes em OrgComp

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

6 - Portas lógicas Elementares, Vetores de Portas A <= B and C; -- Implementa o quê em VHDL? Uma porta AND de duas entradas, se A, B e C forem

fios Um vetor de n portas AND de duas entradas, caso A,

B e C sejam vetores de n bits Notem, se A, B, C não tiverem todos a mesma

largura Erro de sintaxe em VHDL! O mesmo vale para outras portas

A <= B and C and D; Esta descrição muda a(s) portas AND de duas

entradas para ANDs de três entradas

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

6 - Portas lógicas Elementares, Vetores de Portas

A <= B nand C; Cuidado com lógica negada! A linha acima implementa uma ou

mais porta(s) NAND de duas entradas

A <= B nand C nand D; Esta descrição é um erro de sintaxe! Porquê?

A <= B nand (C nand D); Esta descrição compila OK, mas o que ela gera?

Isto não é (não são) uma NAND (NANDs) de 3 entradas!

A <= not (B and (C and D));

Isto é (são) uma NAND (NANDs) de 3 entradas!

Ou seja, cuidado com lógica negada!!

http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html ney.calazans@pucrs.br

Circuitos Combinacionais

√ Portas lógicas Elementares, Vetores de Portas Lógicas

Somadores / Subtratores Multiplexadores Decodificadores Comparadores ULA

Circuitos Sequenciais

Flip-flops e Registradores (deslocamento, carga paralela, acumulador, serial-paralelo, etc.)

Contadores (binário e outros, up, down, up-down, etc.)

Memórias RAM Máquina de Estados

6 - Componentes Digitais Importantes em OrgComp

Recommended