A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Arquitetura de Sistemas Embarcados

Apresentações semelhantes


Apresentação em tema: "Arquitetura de Sistemas Embarcados"— Transcrição da apresentação:

1 Arquitetura de Sistemas Embarcados
Edna Barros Centro de Informática – UFPE

2 Introdução Processador Processador de propósito único customizado:
Circuito digital que implementa tarefa computacional Controle e unidade de processamento Propósito Geral: variedade de tarefas Propósito Único: uma tarefa particular Propósito Único e Customizado: tarefa não padrão Processador de propósito único customizado: Rápido, pequeno e baixo consumo MAS : possui alto custo NRE, time-to-market long e apresenta pouca flexilibidade Microcontroller CCD preprocessor Pixel coprocessor A2D D2A JPEG codec DMA controller Memory controller ISA bus interface UART LCD ctrl Display ctrl Multiplier/Accum Digital camera chip lens CCD

3 Revisão: Projetando um processador de propósito único customizado

4 Roteiro Conceitos Básicos Lógica Combinacional Lógica Sequencial
Projetando um processador de propósito único

5 CMOS transistores em silício
O Componente Básico dos Sistemas Digitais Atua com chave Tensão no “gate” controla fluxo de corrente da fonte para o “drain” gate source drain Conducts if gate=1 source drain oxide gate IC package IC channel Silicon substrate 1

6 Implementações de Transistores CMOS
Complementary Metal Oxide Semiconductor Níveis Lógicos 0 é 0V, 1 é 5V Dois tipos básicos nMOS conduz se gate=1 pMOS conduz se gate=0 Portas Básicas Inverter, NAND, NOR gate source drain nMOS Conducts if gate=1 gate source drain pMOS Conducts if gate=0 x F = x' 1 inverter F = (xy)' x 1 y NAND gate 1 F = (x+y)' x y NOR gate

7 Portas Lógicas Básicas
x F x F 1 F x y x y F 1 F y x x y F 1 x y F x y F 1 F = x Driver F = x y AND F = x + y OR F = x  y XOR x F x F 1 x y F x y F 1 x y F x y F 1 x y F x y F 1 F = x’ Inverter F = (x y)’ NAND F = (x+y)’ NOR F = x y XNOR

8 Projeto de Circuitos Combinacionais
A) Problem description y is 1 if a is to 1, or b and c are 1. z is 1 if b or c is to 1, but not both, or if all are 1. B) Truth table 1 Inputs a b c Outputs y z C) Output equations y = a'bc + ab'c' + ab'c + abc' + abc z = a'b'c + a'bc' + ab'c + abc' + abc D) Minimized output equations 00 1 01 11 10 a bc y y = a + bc z z = ab + b’c + bc’ E) Logic Gates a b c y z

9 Circuitos Combinacionais
log n x n Decoder O1 O0 O(n-1) I0 I(log n -1) n bit, m function ALU n A B S0 S(log m) O n-bit Adder n A B sum carry n-bit Comparator n A B less equal greater n-bit, m x 1 Multiplexor O S0 S(log m) n I(m-1) I1 I0 O = I0 if S=0..00 I1 if S=0..01 I(m-1) if S=1..11 O0 =1 if I=0..00 O1 =1 if I=0..01 O(n-1) =1 if I=1..11 sum = A+B (first n bits) carry = (n+1)’th bit of A+B less = 1 if A<B equal =1 if A=B greater=1 if A>B O = A op B op determined by S. With enable input e  all O’s are 0 if e=0 With carry-in input Ci sum = A + B + Ci May have status outputs carry, zero, etc.

10 Circuitos Sequenciais
clear n-bit Register n load I Q shift I Q n-bit Shift register n-bit Counter n Q Q = 0 if clear=1, I if load=1 and clock=1, Q(previous) otherwise. Q = lsb - Content shifted - I stored in msb Q = 0 if clear=1, Q(prev)+1 if count=1 and clock=1.

11 Projeto de Circuitos Sequenciais
A) Problem Description You want to construct a clock divider. Slow down your pre-existing clock so that you output a 1 for every four clock cycles C) Implementation Model Combinational logic State register a x I0 I1 Q1 Q0 D) State Table (Moore-type) 1 Inputs Q1 Q0 a Outputs I1 I0 x 1 2 3 x=0 x=1 a=1 a=0 B) State Diagram

12 Projeto de Circuitos Sequenciais
D) State Table (Moore-type) 1 Inputs Q1 Q0 a Outputs I1 I0 x 1 Q1Q0 I1 I1 = Q1’Q0a + Q1a’ + Q1Q0’ 00 11 10 a 01 I0 I0 = Q0a’ + Q0’a x = Q1Q0 x E) Minimized Output Equations F) Combinational Logic a Q1 Q0 I0 I1 x

13 Modelo Básico de um Processador de Propósito Único
a view inside the controller and datapath controller datapath state register next-state and control logic registers functional units controller and datapath controller datapath external control inputs control outputs data outputs

14 Exemplo: greatest common divisor
y = y -x 7: x = x - y 8: 6-J: x!=y 5: !(x!=y) x<y !(x<y) 6: 5-J: 1: 1 !1 x = x_i 3: y = y_i 4: 2: 2-J: !go_i !(!go_i) d_o = x 1-J: 9: (c) state diagram Descreva o algoritmo Converta o algoritmo para uma FSM complexa FSMD: finite-state machine with datapath Templates podem ser usados GCD (a) black-box view x_i y_i d_o go_i 0: int x, y; 1: while (1) { 2: while (!go_i); 3: x = x_i; 4: y = y_i; 5: while (x != y) { 6: if (x < y) 7: y = y - x; else 8: x = x - y; } 9: d_o = x; (b) desired functionality

15 Templates de Diagramas de Estado
Assignment statement a = b next statement Loop statement while (cond) { loop-body- statements } next statement cond !cond J: C: Branch statement if (c1) c1 stmts else if c2 c2 stmts else other stmts next statement c1 !c1*c2 !c1*!c2 others J: C:

16 Criando a Unidade de Processamento
Crie um registrador para cada variável declarada Crie uma unidade funcional para cada operação aritmética Faça a conexão dos registradores às unidades funcionais Baseado nas leituras e escritas Use multiplexadores para fontes múltiplas Crie um identificador único para cada saída e entrada da unidade de processamento y = y -x 7: x = x - y 8: 6-J: x!=y 5: !(x!=y) x<y !(x<y) 6: 5-J: 1: 1 !1 x = x_i 3: y = y_i 4: 2: 2-J: !go_i !(!go_i) d_o = x 1-J: 9: x_i y_i Datapath x_sel n-bit 2x1 n-bit 2x1 y_sel x_ld 0: x 0: y y_ld != < subtractor subtractor 5: x!=y 5: x!=y 6: x<y 8: x-y 7: y-x x_neq_y x_lt_y 9: d d_ld d_o

17 Criando um controle baseado em FSM
Mesma estrutura que uma FSMD Substitua ações complexas por configurações da unid. de processamento y = y -x 7: x = x - y 8: 6-J: x!=y 5: !(x!=y) x<y !(x<y) 6: 5-J: 1: 1 !1 x = x_i 3: y = y_i 4: 2: 2-J: !go_i !(!go_i) d_o = x 1-J: 9: y_sel = 1 y_ld = 1 7: x_sel = 1 x_ld = 1 8: 6-J: x_neq_y 5: !x_neq_y x_lt_y !x_lt_y 6: 5-J: d_ld = 1 1-J: 9: x_sel = 0 3: y_sel = 0 4: 1: 1 !1 2: 2-J: !go_i !(!go_i) go_i 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 Controller subtractor 7: y-x 8: x-y 5: x!=y 6: x<y x_i y_i d_o 0: x 0: y 9: d n-bit 2x1 x_sel y_sel x_ld y_ld x_neq_y x_lt_y d_ld < != Datapath

18 Conectando controle e unidade de processamento
go_i Controller implementation model y_sel x_sel Combinational logic Q3 Q0 State register go_i x_neq_y x_lt_y x_ld y_ld d_ld Q2 Q1 I3 I0 I2 I1 Controller !1 0000 1: subtractor 7: y-x 8: x-y 5: x!=y 6: x<y x_i y_i d_o 0: x 0: y 9: d n-bit 2x1 x_sel y_sel x_ld y_ld x_neq_y x_lt_y d_ld < != (b) Datapath 1 !(!go_i) 0001 2: !go_i 0010 2-J: x_sel = 0 x_ld = 1 0011 3: y_sel = 0 y_ld = 1 0100 4: x_neq_y=0 0101 5: x_neq_y=1 0110 6: x_lt_y=1 x_lt_y=0 7: y_sel = 1 y_ld = 1 8: x_sel = 1 x_ld = 1 0111 1000 1001 6-J: 1010 5-J: 1011 9: d_ld = 1 1100 1-J:

19 Tabela de Estado para o controle do GCD
Inputs Outputs Q3 Q2 Q1 Q0 x_neq_y x_lt_y go_i I3 I2 I1 I0 x_sel y_sel x_ld y_ld d_ld * 1 X

20 Completando o projeto do Processador de Funcionalidade Ùnica - GCD
Projeto dos Componentes da Unidade de Processamento Implementação da lógica combinacional para a unidade de controle Esta não é uma implementação otimizada mas FUNCIONA a view inside the controller and datapath controller datapath state register next-state and control logic registers functional units

21 Otimizando processadores de propósito único
Otimização: melhorar métricas de projeto Oportunidades de Otimização Especificação inicial FSMD Unidade de Processamento FSM

22 Otimizando a Descrição Inicial
Análise do programa de forma a identificar possíveis otimizações Número computações Tamanho das variáveis Complexidade de tempo e espaço Operações usadas

23 Otimizando o programa original program optimized program 0: int x, y;
1: while (1) { 2: while (!go_i); 3: x = x_i; 4: y = y_i; 5: while (x != y) { 6: if (x < y) 7: y = y - x; else 8: x = x - y; } 9: d_o = x; 0: int x, y, r; 1: while (1) { 2: while (!go_i); // x must be the larger number 3: if (x_i >= y_i) { 4: x=x_i; 5: y=y_i; } 6: else { 7: x=y_i; 8: y=x_i; 9: while (y != 0) { 10: r = x % y; 11: x = y; 12: y = r; 13: d_o = x; replace the subtraction operation(s) with modulo operation in order to speed up program GCD(42, 8) - 9 iterations to complete the loop x and y values evaluated as follows : (42, 8), (43, 8), (26,8), (18,8), (10, 8), (2,8), (2,6), (2,4), (2,2). GCD(42,8) - 3 iterations to complete the loop x and y values evaluated as follows: (42, 8), (8,2), (2,0)

24 Otimizando a FSMD Possíveis otimizações Merge de Estados
Estados com constantes nas transições podem ser eliminados, transições são conhecidas Estados com operações independentes podem ser agrupados Separação de Estados Estados incluindo operações complexas (a*b*c*d) podem ser quebrados em estados menores Escalonamento

25 Otimizando a FSMD (cont.)
int x, y; !1 original FSMD optimized FSMD 1: int x, y; 1 !(!go_i) Elimina Estado 1 2: 2: !go_i go_i !go_i 2-J: x = x_i y = y_i 3: merge estados 2 e 2J 3: x = x_i 5: 4: y = y_i merge estados 3 e 4 x<y x>y 7: y = y -x 8: x = x - y 5: !(x!=y) x!=y merge estados 5 e 6 9: d_o = x 6: x<y !(x<y) y = y -x 7: 8: x = x - y Elimina estados 5J e 6J 6-J: 5-J: Elimina estado 1-J d_o = x 9: 1-J:

26 Resumo Processadores de Propósito ÚNICO Técnicas de projeto
Implementação de Algoritmos Tipicamente se começa com uma FSMD Ferramentas de CAD são imprescindíveis


Carregar ppt "Arquitetura de Sistemas Embarcados"

Apresentações semelhantes


Anúncios Google