Pontifícia Universidade Católica do Rio Grande do Sul Faculdade 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: 19/05/2017 Sumário Org_Comp 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 http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html [email protected] 1 - Sistemas Digitais – Definição Estrutural 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! Entradas Saídas E(1) C(1) S(1) C(K+1) E(2) C(2) S(2) C(K+2) E(K-2) C(K-2) Sistema Digital Processamento Numérico de Informação E(K-1) C(K-1) E(K) C(K) http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html S(3) C(K+3) S(L-1) C(K+L-1) S(L) C(K+L) [email protected] Sumário Org_Comp 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 http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html [email protected] 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 Engenharia de Sistemas Digitais VLSI Métodos de Fabricação Auxiliada por Computador Ciência da Computação Física de Semicondutores Sistemas VLSI Matemática Aplicada Métodos de Projeto Auxiliado por Computador http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html Métodos de Modelagem de Processos Físicos [email protected] 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 = ~70mm 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 [email protected] 2 - Processos Planares de Fabricação “silicon wafer” ou “bolacha de silício” chip circuitos de teste http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html [email protected] 2 - Um Exemplo de Circuito Integrado As zonas em azul claro e escuro representam duas camadas de metal (no caso, fios de alumínio) CPU da HP (1987) 80.000 transistores http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html [email protected] 2 - Um Microprocessador – Pentium-Pro http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html [email protected] 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 1248 pinos, 14 camadas, 343 pinos E/S Encapsulamento Estado da Arte em Processadores – exemplo de chip de pesquisa da Intel http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html [email protected] 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 [email protected] Sumário Org_Comp 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 http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html [email protected] 3 - SDs Combinacionais e Sequenciais SD Combinacional - comportamento de cada saída descrito como função exclusivamente dos valores instântaneos das entradas A A^B B http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html A B A^B 0 0 0 0 1 0 1 0 0 1 1 1 [email protected] 3 - SDs Combinacionais e Sequenciais SD Seqüencial qualquer SD que não possa, em geral atender à definição de SD combinacional A X 0 Xi 0 1 Xi-1 A X Oscilador em Anel E D Captura de Zeros http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html 1 bit de RAM E D Xi 0 0 0 1 Xi-1 Xi-1 1 0 0 1 1 1 [email protected] 3 - Armazenamento de Informação e Estado Em geral, laço de realimentação implica armazenar informação, e conceito de estado Contra-exemplo: circuito com realimentação, contudo combinacional B Estado - excluindo realimentações redundantes, cada configuração distinta de valores destas http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html A X A B X 0 0 0 0 1 0 1 0 0 1 1 1 [email protected] 3 - SDs Combinacionais e Sequenciais Definição de tipos de SDs baseada em estados Todo SD SD é um SD seqüencial 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 [email protected] Sumário Org_Comp 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 http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html [email protected] 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 [email protected] NÃO PROGRAMÁVEIS OU RÍGIDOS EX: FAMÍLIA TTL 74XX NÃO PERSONALIZÁVEIS OU FIXOS PROGRAMÁVEIS EX: FAMÍLIA INTEL MCS'86 RETENÇÃO EM FUNCIONAMENTO EX: FPGA BASEADO EM RAM flexibilidade CIRCUITOS INTEGRADOS PÓS-FABRICAÇÃO RETENÇÃO ETERNA, EXCETO POR PROCEDIMENTOS ESPECIAIS EX: EPROM, EEPROM, FPGA BASEADO EM EPROM RETENÇÃO ETERNA, APÓS PRIMEIRA PERSONALIZAÇÃO EX: PROM, FPGA BASEADO EM ANTIFUSÍVEIS PERSONALIZÁVEIS PRÉ-DIFUNDIDOS EX: GATE ARRAY PARCIALMENTE PERSONALIZÁVEIS, OU SEMI-DEDICADOS, OU PRÉCARACTERIZADOS (SEMI-CUSTOM) PÓS-DIFUNDIDOS EX: STANDARD-CELL POR FABRICAÇÃO Uma Classificação de CIs baseada em quatro critérios http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html TOTALMENTE PERSONALIZÁVEIS, OU DEDICADOS (FULL-CUSTOM) [email protected] 4 - Circuitos FPGA Blocos com função lógica programável Bloco K Bloco K Bloco K Bloco K Linhas de conexão Bloco K Bloco K Bloco K Bloco K Bloco K Bloco K Bloco K Bloco K Bloco K Bloco K Bloco K Bloco K Canal n linhas m colunas canais de roteamento caixa de conexão http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html [email protected] Sumário Org_Comp 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 http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html [email protected] 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 [email protected] 5 - Níveis de Abstração de Projeto http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html [email protected] 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 [email protected] 5 - Modelo de Suzim Suzim propõe modelo unidimensional ... Extração Síntese . Validação Critério: nível de abstração Nível de Abstração i Nível de abstração = quantidade de informação Nível de Abstração i+1 Síntese ... Extração Síntese Validação Otimização Otimização Extração Transformação entre níveis (aresta) = ferramenta de projeto Nível de abstração (vértices) = conjunto de descrições http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html [email protected] 5 - Modelo de Gajski-Kuhn ou Diagrama Y Domínio Estrutural Domínio Comportamental Sistêmico Arquitetural Processadores, Memórias, Barramentos Processos Comunicantes, Algoritmos Registradores, ULAs, Muxs, Decods Portas Lógicas, Biestáveis Transistores, Lineares Modelo bidimensional Critérios: nível de abstração e domínio de descrição Domínio de descrição = tipo de informação Lógico HDLs, Transferência entre Registradores Elétrico Expressões Booleanas, Tabelas de Transição Funções de Transferência, Equações Diferenciais "Layout" de Transistores e Lineares Planta Baixa de Células Lógicas Planta Baixa de Blocos de CIs Placas, Módulos Multi-chip Domínio Físico Círculo = nível de abstração, eixo = domínio de descrição Intersecção círculo-eixo (vértices) = descrição Transformação entre níveis (aresta no grafo) = ferramenta http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html [email protected] Sistêmico Eixo Comportamental Eixo Estrutural Algorítmico Micro arquitetural Lógico Elétrico idéia Circuito Real (fabricado) Eixo Geométrico http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html [email protected] Sistêmico Eixo Comportamental Eixo Estrutural Algorítmico Especificações Especificações funcionais funcionais Micro arquitetural Algoritmos Algoritmos processadores, processadores, memórias, memórias, barramentos barramentos módulos módulos de de hardware hardware Lógico registradores, registradores, multiplexadores, multiplexadores, operadores operadores Máquinas Máquinas de de estado estado finitas, finitas, operações operações Elétrico Equações Equações booleanas, booleanas, tabelas tabelas verdade, verdade, BDDs BDDs Funções Funções de de transferência, transferência, equações equações diferenciais diferenciais Portas Portas lógicas, lógicas, flip-flops flip-flops Transistores, Transistores, resistores, resistores, capacitores, capacitores, indutores indutores Leiaute Leiaute das das máscaras, máscaras, retângulos, retângulos, polígonos polígonos Células Células de de biblioteca, biblioteca, modelos modelos de de posição posição de de pinos pinos Macro-células, Macro-células, planta planta baixa baixa de de blocos blocos Módulos, Módulos, clusters, clusters, cores, cores, planos planos de de clock/alimentação clock/alimentação Partições Partições físicas, físicas, componentes, componentes, placas placas Eixo Geométrico http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html [email protected] Eixo Comportamental Sistêmico C, C++, Hardware C Java Algorítmico Eixo Estrutural processadores, memórias, barramentos Micro arquitetural VHDL Lógico Especificações funcionais Algoritmos módulos de hardware registradores, multiplexadores, operadores Máquinas de estado finitas, operações Elétrico Equações booleanas, tabelas verdade, BDDs Portas lógicas, flip-flops Transistores, resistores, capacitores, indutores Funções de transferência, equações diferenciais Spice EDIF CIF, GDS2 Leiaute das máscaras, retângulos, polígonos Células de biblioteca, modelos de posição de pinos LEF / DEF Macro-células, planta baixa de blocos Módulos, clusters, cores, planos de clock/alimentação Partições físicas, componentes, placas Eixo Geométrico http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html [email protected] Sistêmico Eixo Comportamental Eixo Estrutural Algorítmico Micro arquitetural Especificações funcionais 1- “síntese” Lógico Algoritmos processadores, memórias, barramentos módulos de hardware registradores, multiplexadores, operadores Máquinas de estado finitas, operações 2- simulação Elétrico Equações booleanas, tabelas verdade, BDDs Funções de transferência, equações diferenciais Portas lógicas, flip-flops Transistores, resistores, capacitores, indutores 3- mapeamento 5- fabricação Leiaute das máscaras, retângulos, polígonos 4- place&route Células de biblioteca, modelos de posição de pinos Macro-células, planta baixa de blocos Processo Clássico de Sistemas Digitais (projeto RTL, do inglês, Register Transfer Level) Módulos, clusters, cores, planos de clock/alimentação Partições físicas, componentes, placas Eixo Geométrico http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html [email protected] Sumário Org_Comp 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 – Estrutura de um Processador e Componentes Digitais Importantes em Organização de Computadores http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html [email protected] 6 – Estrutura Geral de um Processador – Detalhes Processador ou CPU ou Core Controles Status Bloco de Controle Comandos Dados de Entrada Qualificadores Bloco de Dados Dados de Saída Comentar: FPU, MMU, Caches, CPU hoje é chamada de core http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html [email protected] 6 - Componentes Digitais Importantes em OrgComp Circuitos Combinacionais Portas lógicas Elementares, Vetores de Portas Lógicas Somadores / Subtratores Multiplexadores Decodificadores Comparadores ULA http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html Circuitos Sequenciais Flip-flops e Registradores (deslocamento, carga paralela, acumulador, serial-paralelo, etc.) Contadores (binário e outros, up, down, updown, etc.) Memórias RAM Máquina de Estados [email protected] 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 cada um um fio 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 AND(s) de três entradas http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html [email protected] 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 é uma NAND de 3 entradas (Se A a D são de 1 bit)! Ou seja, cuidado com lógica negada!! http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html [email protected] 6 - Componentes Digitais Importantes em OrgComp Circuitos Combinacionais √ Portas lógicas Elementares, Vetores de Portas Lógicas Somadores / Subtratores Multiplexadores Decodificadores Comparadores ULA http:/ /www.inf.pucrs.br/~calazans/orgcomp_EC.html Circuitos Sequenciais Flip-flops e Registradores (deslocamento, carga paralela, acumulador, serial-paralelo, etc.) Contadores (binário e outros, up, down, updown, etc.) Memórias RAM Máquina de Estados [email protected]