• Nenhum resultado encontrado

Arquitetura de Computadores ACH2055

N/A
N/A
Protected

Academic year: 2021

Share "Arquitetura de Computadores ACH2055"

Copied!
114
0
0

Texto

(1)

ACH2055

Aula 07 – Pipeline e seus Conflitos

Norton Trevisan Roman

([email protected])

(2)

Organizando o Modelo de Ciclo ´

Unico

Fonte: Adaptado de [1]

Voltemos ao datapath

de ciclo ´

unico

(3)

Organizando o Modelo de Ciclo ´

Unico

Fonte: Adaptado de [1]

Existe nele uma divis˜

ao de

est´

agios natural, seguindo

(4)

Organizando o Modelo de Ciclo ´

Unico

Fonte: Adaptado de [1]

Que vai da

es-querda para a direita

(5)

Organizando o Modelo de Ciclo ´

Unico

Fonte: Adaptado de [1]

Com exce¸

ao da

atua-liza¸c˜

ao do PC e

armaze-namento no registrador,

que “voltam” na pipeline

(6)

Organizando o Modelo de Ciclo ´

Unico

Fonte: Adaptado de [1]

Embora n˜

ao afetem a

instru¸

ao corrente,

in-fluenciam as posteriores

(7)

Pipeline

Organizando o Modelo de Ciclo ´

Unico

Separar em est´

agios,

contudo, n˜

ao ´

e simples

Precisamos ent˜

ao reter os

valores parciais de cada

instru¸c˜

ao, para que

possam ser usados nos

est´

agios seguintes

(8)

Pipeline

Organizando o Modelo de Ciclo ´

Unico

Separar em est´

agios,

contudo, n˜

ao ´

e simples

Rodaremos instru¸c˜

oes

diferentes em cada est´

agio

instru¸c˜

ao, para que

possam ser usados nos

est´

agios seguintes

(9)

Organizando o Modelo de Ciclo ´

Unico

Separar em est´

agios,

contudo, n˜

ao ´

e simples

Rodaremos instru¸c˜

oes

diferentes em cada est´

agio

Precisamos ent˜

ao reter os

valores parciais de cada

instru¸c˜

ao, para que

possam ser usados nos

(10)

Organizando o Modelo de Ciclo ´

Unico

Precisamos salvar esses valores em registradores

(11)

Organizando o Modelo de Ciclo ´

Unico

Precisamos salvar esses valores em registradores

(12)

Organizando o Modelo de Ciclo ´

Unico

Precisamos salvar esses valores em registradores

Fonte: [1]

Os registradores precisam

ser grandes o suficiente

para armazenar os dados

(13)

Organizando o Modelo de Ciclo ´

Unico

Precisamos salvar esses valores em registradores

Fonte: [1]

IF/ID, por exemplo,

possui 32b (instru¸

ao)

+ 32b (PC+4) = 64b

(14)

Organizando o Modelo de Ciclo ´

Unico

Precisamos salvar esses valores em registradores

Fonte: [1]

A cada ciclo do clock,

as instru¸

oes avan¸

cam

de um registrador

da pipeline ao outro

(15)

Pipeline

Organizando o Modelo de Ciclo ´

Unico

Mas se cada ciclo comanda a sa´ıda

e entrada de registradores da

pipeline, quando o arquivo de

registradores ser´

a atualizado, j´

a

que est´

a dentro de um est´

agio?

algum atraso (como veremos mais

adiante)

(16)

Organizando o Modelo de Ciclo ´

Unico

Mas se cada ciclo comanda a sa´ıda

e entrada de registradores da

pipeline, quando o arquivo de

registradores ser´

a atualizado, j´

a

que est´

a dentro de um est´

agio?

Podemos esperar a pr´

oxima borda do

ascendente clock, mas isso pode gerar

algum atraso (como veremos mais

adiante)

(17)

Organizando o Modelo de Ciclo ´

Unico

Alternativamente, podemos mudar

o projeto

Permitindo que o arquivo seja escrito e

lido no mesmo ciclo de clock

A escrita ocorrendo na primeira metade,

e a leitura na segunda

Assim, a leitura retorna o que foi escrito

Basta para isso usar a borda

descendente no arquivo de registradores

(18)

Exemplo 1: sw $17, 12($19)

Fonte: Adaptado de [1]

sw PC+4 PC+4

(19)

Exemplo 1: sw $17, 12($19)

Fonte: Adaptado de [1]

O PC ´

e

incremen-tado e escrito de

volta, esperando o

pr´

oximo ciclo de clock

sw PC+4 PC+4

(20)

Exemplo 1: sw $17, 12($19)

Fonte: Adaptado de [1]

PC+4 tamb´

em ´

e

salvo no registrador

da pipeline, caso a

instru¸

ao seja um beq

sw PC+4 PC+4

(21)

Exemplo 1: sw $17, 12($19)

Fonte: Adaptado de [1]

Toda informa¸

ao

necess´

aria em um

est´

agio posterior deve

ser passada via um

registrador da pipeline

sw PC+4 PC+4

(22)

Exemplo 1: sw $17, 12($19)

Fonte: Adaptado de [1] PC+4 19 17 $19 $17 12

(23)

Exemplo 1: sw $17, 12($19)

Fonte: Adaptado de [1] PC+4 PC+4 $19 $17 12 $19+12

(24)

Exemplo 1: sw $17, 12($19)

Fonte: Adaptado de [1] $19+12 $17 PC+4 PC+4

(25)

Exemplo 1: sw $17, 12($19)

Fonte: Adaptado de [1]

Mas a instru¸

ao

em PC+4 j´

a n˜

ao

est´

a rodando no

3

o

est´

agio (Ex)?

$19+12

$17 PC+4 PC+4

(26)

Exemplo 1: sw $17, 12($19)

Fonte: Adaptado de [1]

Sim, e justamente

para controlar

isso existe o MUX

$19+12

$17 PC+4 PC+4

(27)

Exemplo 1: sw $17, 12($19)

(28)

Exemplo 1: sw $17, 12($19)

Fonte: Adaptado de [1]

Mesmo tendo acabado

no est´

agio anterior, a

instru¸

ao ainda passa

por todos os demais

(29)

Exemplo 1: sw $17, 12($19)

Fonte: Adaptado de [1]

Como as instru¸

oes

seguintes j´

a est˜

ao

em progresso, n˜

ao h´

a

(30)

Exemplo 1: sw $17, 12($19)

Fonte: Adaptado de [1]

Assim, as instru¸

oes

passam por

to-dos os est´

agios,

mesmo sem precisar

(31)

Exemplo 1: sw $17, 12($19)

Fonte: Adaptado de [1]

Pois as instru¸

oes

posteriores j´

a est˜

ao

caminhando o mais

apido que podem

(32)

Exemplo 2: lw $17, 12($19)

Fonte: Adaptado de [1]

lw PC+4 PC+4

(33)

Exemplo 2: lw $17, 12($19)

Fonte: Adaptado de [1] PC+4 19 17 $19 12

(34)

Exemplo 2: lw $17, 12($19)

Fonte: Adaptado de [1] PC+4 PC+4 $19 12 $19+12

(35)

Exemplo 2: lw $17, 12($19)

Fonte: Adaptado de [1] $19+12 $19+12 ($19+12) PC+4 PC+4

(36)

Exemplo 2: lw $17, 12($19)

Fonte: Adaptado de [1]

($19+12)

(37)

Exemplo 2: lw $17, 12($19)

Fonte: Adaptado de [1]

Que valor est´

a aqui,

se h´

a outra instru¸

ao

rodando nesse est´

agio?

($19+12)

(38)

Exemplo 2: lw $17, 12($19)

Fonte: Adaptado de [1]

OPS! Assim como

o valor a ser

arma-zenado, tamb´

em o

registrador deve vir

do ´

ultimo est´

agio

($19+12)

(39)

Exemplo 2: lw $17, 12($19)

Fonte: Adaptado de [1]

Ent˜

ao...

($19+12) ($19+12) 17 17 17 17

(40)

Exemplo 3: lw $10,40($11); sub $11,$22,$23

PC1+4

lw

(41)

Exemplo 3: lw $10,40($11); sub $11,$22,$23

PC1+8 sub PC1+4 11 10 40 $11 Fonte: Adaptado de [1]

(42)

Exemplo 3: lw $10,40($11); sub $11,$22,$23

PC1+8 22 23 11 $22 $23 PC1+4 40 $11 10 $11+40 Fonte: Adaptado de [1]

(43)

Exemplo 3: lw $10,40($11); sub $11,$22,$23

10 $11+40 ($11+40) PC1+8 $22 $23 11 $22-$23 Fonte: Adaptado de [1]

(44)

Exemplo 3: lw $10,40($11); sub $11,$22,$23

($11+40) ($11+40) 10 10 $22-$23 11 Fonte: Adaptado de [1]

(45)

Exemplo 3: lw $10,40($11); sub $11,$22,$23

$22-$23 $22-$23 11 11 Fonte: Adaptado de [1]

(46)

Pipeline

Controlando a pipeline

Fonte: [1]

(47)

Controlando a pipeline

Fonte: [1]

Agora que temos a pipeline, que mais falta?

(48)

Controlando a pipeline

(49)

Controlando a pipeline

Fonte: [1]

O PC e os registradores

da pipeline s˜

ao escritos

a cada ciclo do clock,

por isso seus sinais

ao s˜

ao mostrados

(50)

Controlando a pipeline

Fonte: [1]

Inclu´ımos os 6 bits

do campo funct

da instru¸

ao, para

o controle da ALU

(51)

Controlando a pipeline

Fonte: [1]

Bem como um

MUX, para definir

se o registrador de

escrita ser´

a o do

campo rd ou rt

(52)

Controlando a pipeline

Fonte: [1]

Para controlar a

pipeline, basta definir

os valores de controle

durante cada est´

agio

(53)

Controlando a pipeline

Fonte: [1]

Busca de instru¸

ao:

os sinais de controle

est˜

ao sempre

liga-dos, ent˜

ao n˜

ao h´

a

nada para controlar

(54)

Controlando a pipeline

Fonte: [1]

Decodifica¸

ao:

O mesmo que na

busca da instru¸

ao.

(55)

Controlando a pipeline

Fonte: [1]

Execu¸

ao: Devemos

definir RegDst,

ALUOp e ALUSrc

(56)

Controlando a pipeline

Fonte: [1]

Acesso `

a mem´

oria:

Devemos definir

Branch, MemRead

(57)

Controlando a pipeline

Fonte: [1]

Lembrando que PCsrc

seleciona entre PC+4

(da instru¸

ao em IF) e

(58)

Controlando a pipeline

Fonte: [1]

Write back: definimos

MemtoReg e RegWrite

(este no 3

o

est´

agio)

(59)

Pipeline

Controlando a pipeline

E como fica o

controle ent˜

ao?

sinais necess´

arios

em cada est´

agio

Uma vez que as

linhas come¸cam no

est´

agio de

execu¸c˜

ao (EX),

Fonte: [1]

(60)

Pipeline

Controlando a pipeline

E como fica o

controle ent˜

ao?

sinais necess´

arios

em cada est´

agio

Uma vez que as

linhas come¸cam no

est´

agio de

execu¸c˜

ao (EX),

Fonte: [1]

(61)

Pipeline

Controlando a pipeline

E como fica o

controle ent˜

ao?

Cada instru¸c˜

ao

carrega consigo os

sinais necess´

arios

em cada est´

agio

est´

agio de

execu¸c˜

ao (EX),

Fonte: [1]

(62)

Controlando a pipeline

E como fica o

controle ent˜

ao?

Cada instru¸c˜

ao

carrega consigo os

sinais necess´

arios

em cada est´

agio

Uma vez que as

linhas come¸cam no

est´

agio de

execu¸c˜

ao (EX),

Fonte: [1]

(63)

Controlando a pipeline

Fonte: [1]

(64)

Pipeline

Conflitos de Pipeline

9 ciclos de clock

Considere as seguintes instru¸c˜

oes

lw $10, 20($1)

sub $11, $2, $3

add $12, $3, $4

lw $13, 24($1)

add $14, $5, $6

(65)

Pipeline

Conflitos de Pipeline

Para complet´

a-las

todas ser˜

ao necess´

arios

9 ciclos de clock

Considere as seguintes instru¸c˜

oes

lw $10, 20($1)

sub $11, $2, $3

add $12, $3, $4

lw $13, 24($1)

add $14, $5, $6

(66)

Conflitos de Pipeline

Para complet´

a-las

todas ser˜

ao necess´

arios

9 ciclos de clock

Considere as seguintes instru¸c˜

oes

lw $10, 20($1)

sub $11, $2, $3

add $12, $3, $4

lw $13, 24($1)

add $14, $5, $6

(67)

Conflitos de Pipeline

(68)

Conflitos de Pipeline

Fonte: [1]

Um componente

sem cor indica

que n˜

ao ´

e usado

(69)

Conflitos de Pipeline

Fonte: [1]

Colorido `

a direita

indica que ´

e lido

(70)

Conflitos de Pipeline

Fonte: [1]

E `

a esquerda

que ´

e escrito

(71)

Conflitos de Pipeline

Fonte: [1]

Embora apare¸

ca

2×, o conjunto

de

registrado-res ´

e um s´

o

(72)

Conflitos de Pipeline

Fonte: [1]

Problema

ne-nhum com essa

(73)

Pipeline

Conflitos de Pipeline

E agora?

sub $2, $1, $3

and $12, $2, $5

or $13, $6, $2

add $14, $2, $2

sw $15, 100($2)

$2 definido em sub

Valor este definido no 5

o

est´

agio dessa instru¸c˜

ao

Mas qu˜

ao grave ´

e esse

problema, e que instru¸c˜

oes

ser˜

ao afetadas?

(74)

Pipeline

Conflitos de Pipeline

E agora?

sub

$2

, $1, $3

and $12,

$2

, $5

or $13, $6,

$2

add $14,

$2

,

$2

sw $15, 100(

$2

)

a uma grande

dependˆ

encia do valor de

$2 definido em sub

Valor este definido no 5

o

est´

agio dessa instru¸c˜

ao

(75)

Conflitos de Pipeline

E agora?

sub

$2

, $1, $3

and $12,

$2

, $5

or $13, $6,

$2

add $14,

$2

,

$2

sw $15, 100(

$2

)

a uma grande

dependˆ

encia do valor de

$2 definido em sub

Valor este definido no 5

o

est´

agio dessa instru¸c˜

ao

Mas qu˜

ao grave ´

e esse

problema, e que instru¸c˜

oes

ser˜

ao afetadas?

(76)

Conflitos de Pipeline

(77)

Conflitos de Pipeline

Fonte: [1]

Suponha que o valor de

$2, antes 10, foi feito

-20 por sub, durante

o 5

o

ciclo do clock

(78)

Conflitos de Pipeline

Fonte: [1]

and e or usar˜

ao o

valor antigo (10)

(79)

Conflitos de Pipeline

Fonte: [1]

E somente add e

sw usar˜

ao o

va-lor correto (-20)

(80)

Conflitos de Pipeline

Fonte: [1]

Isso se o arquivo de

registradores puder ser lido

(81)

Conflitos de Pipeline

Fonte: [1]

As linhas em azul

mos-tram as dependˆ

encias

(82)

Conflitos de Pipeline

Fonte: [1]

E o problema fica

claro quando uma

de-pendˆ

encia precisa viajar

(83)

Pipeline

Conflitos de Pipeline

Temos aqui um caso de conflito de pipeline

(pipeline hazard )

Uma situa¸c˜

ao em que a instru¸c˜

ao seguinte n˜

ao pode

executar no pr´

oximo ciclo de clock

De dados

De controle

(84)

Conflitos de Pipeline

Temos aqui um caso de conflito de pipeline

(pipeline hazard )

Uma situa¸c˜

ao em que a instru¸c˜

ao seguinte n˜

ao pode

executar no pr´

oximo ciclo de clock

a 3 tipos diferentes de conflitos:

Estruturais

De dados

De controle

(85)

Pipeline

Conflitos de Pipeline

Conflitos estruturais

Quando o hardware n˜

ao permite que

uma determinada combina¸c˜

ao de

instru¸c˜

oes seja executada no mesmo

ciclo de clock

os registradores da pipeline

(86)

Conflitos de Pipeline

Conflitos estruturais

Quando o hardware n˜

ao permite que

uma determinada combina¸c˜

ao de

instru¸c˜

oes seja executada no mesmo

ciclo de clock

Ex: se o arquivo de registradores for

ativado na mesma borda do clock que

os registradores da pipeline

(87)

Conflitos de Pipeline

Ou se tiv´

essemos uma ´

unica mem´

oria

Nesse caso, Ter´ıamos um conflito toda vez

que busc´

assemos uma nova instru¸c˜

ao no

mesmo ciclo em que outra acessa dados da

mem´

oria

(88)

Pipeline

Conflitos de Pipeline

Conflitos de Dados

Quando uma instru¸c˜

ao

ao pode executar porque

o dado de que necessita

ao est´

a dispon´ıvel

rela¸c˜

ao a outra anterior

que ainda est´

a na pipeline

Fonte: [1]

´

(89)

Pipeline

Conflitos de Pipeline

Conflitos de Dados

Quando uma instru¸c˜

ao

ao pode executar porque

o dado de que necessita

ao est´

a dispon´ıvel

Surgem da dependˆ

encia

de uma instru¸c˜

ao com

rela¸c˜

ao a outra anterior

que ainda est´

a na pipeline

(90)

Conflitos de Pipeline

Conflitos de Dados

Quando uma instru¸c˜

ao

ao pode executar porque

o dado de que necessita

ao est´

a dispon´ıvel

Surgem da dependˆ

encia

de uma instru¸c˜

ao com

rela¸c˜

ao a outra anterior

que ainda est´

a na pipeline

Fonte: [1]

´

(91)

Pipeline

Conflitos de Pipeline

Conflitos de Dados

Precisamos ent˜

ao parar

(stall ) a pipeline at´

e a 1

a

instru¸c˜

ao se completar

add $s0, $t0, $t1

sub $t2, $s0, $t3

Temos um conflito

(92)

Pipeline

Conflitos de Pipeline

Conflitos de Dados

Precisamos ent˜

ao parar

(stall ) a pipeline at´

e a 1

a

instru¸c˜

ao se completar

Suponha agora que temos

as seguintes instru¸c˜

oes:

add $s0, $t0, $t1

sub $t2, $s0, $t3

(93)

Conflitos de Pipeline

Conflitos de Dados

Precisamos ent˜

ao parar

(stall ) a pipeline at´

e a 1

a

instru¸c˜

ao se completar

Suponha agora que temos

as seguintes instru¸c˜

oes:

add

$s0

, $t0, $t1

sub $t2,

$s0

, $t3

Temos um conflito

(94)

Conflitos de Pipeline: Conflitos de Dados

A solu¸c˜

ao parte do princ´ıpio de que n˜

ao precisamos

esperar que a instru¸c˜

ao se complete:

Assim que a soma ´

e calculada, podemos envi´

a-la a sub

(95)

Conflitos de Pipeline: Conflitos de Dados

Processo denominado forwarding ou bypassing

Requer, naturalmente, a adi¸c˜

ao de hardware

Al´

em de ser v´

alido somente se o est´

agio de destino estiver

mais no futuro que o atual

(96)

Pipeline

Conflitos de Dados: Forwarding

Forwarding, contudo, n˜

ao previne todo stall

sub $t2, $s0, $t3

O dado estaria dispon´ıvel somente ap´

os o 4

o

est´

agio

de lw

(97)

Pipeline

Conflitos de Dados: Forwarding

Forwarding, contudo, n˜

ao previne todo stall

Suponha que as instru¸c˜

oes fossem:

lw $s0, 20($t1)

sub $t2, $s0, $t3

(98)

Conflitos de Dados: Forwarding

Forwarding, contudo, n˜

ao previne todo stall

Suponha que as instru¸c˜

oes fossem:

lw $s0, 20($t1)

sub $t2, $s0, $t3

O dado estaria dispon´ıvel somente ap´

os o 4

o

est´

agio

de lw

(99)

Pipeline

Conflitos de Dados: Forwarding

Mesmo com forwarding, ainda precisar´ıamos parar a

pipeline por um est´

agio

(100)

Conflitos de Dados: Forwarding

Mesmo com forwarding, ainda precisar´ıamos parar a

pipeline por um est´

agio

Fonte: [1]

Stalls da pipeline

ao tamb´

em

conhe-cidas como bolhas

(101)

Conflitos de Dados: Forwarding

Uma maneira de lidar com isso ´

e reordenar o c´

odigo,

quando poss´ıvel

Procedimento adotado por compiladores e montadores

(102)

Pipeline

Conflitos de Pipeline

Conflitos de Controle (ou de Branch)

Quando precisamos tomar uma decis˜

ao de controle baseada

no resultado de uma instru¸c˜

ao enquanto outras executam

O atraso em determinar qual instru¸

ao rodar ´

e chamado de conflito

de controle

Solu¸c˜

ao 1: stall

Pare a pipeline imediatamente ap´

os buscar um branch da mem´

oria

Aguarde at´

e que a pipeline possa determinar o resultado do branch

(103)

Pipeline

Conflitos de Pipeline

Conflitos de Controle (ou de Branch)

Quando precisamos tomar uma decis˜

ao de controle baseada

no resultado de uma instru¸c˜

ao enquanto outras executam

O atraso em determinar qual instru¸

ao rodar ´

e chamado de conflito

de controle

Como, quando em um beq, a instru¸c˜

ao que est´

a na pipeline

ao ´

e a que deveria ser rodada

(104)

Conflitos de Pipeline

Conflitos de Controle (ou de Branch)

Quando precisamos tomar uma decis˜

ao de controle baseada

no resultado de uma instru¸c˜

ao enquanto outras executam

O atraso em determinar qual instru¸

ao rodar ´

e chamado de conflito

de controle

Como, quando em um beq, a instru¸c˜

ao que est´

a na pipeline

ao ´

e a que deveria ser rodada

Solu¸c˜

ao 1: stall

Pare a pipeline imediatamente ap´

os buscar um branch da mem´

oria

Aguarde at´

e que a pipeline possa determinar o resultado do branch

(105)

Conflitos de Pipeline: Conflitos de Controle

Mesmo com adi¸c˜

ao de hardware para todo o c´

alculo

do branch no 2

o

est´

agio, ainda ter´ıamos paradas

Pois a nova instru¸c˜

ao s´

o poderia ser buscada ap´

os isso

(106)

Conflitos de Pipeline: Conflitos de Controle

Ent˜

ao o custo dessa op¸c˜

ao ´

e alto

Pois ter´ıamos que parar a cada branch

(107)

Pipeline

Conflitos de Pipeline: Conflitos de Controle

Solu¸c˜

ao 2: Predi¸c˜

ao

Assuma (prediga) que o branch sempre ir´

a falhar

(108)

Conflitos de Pipeline: Conflitos de Controle

Solu¸c˜

ao 2: Predi¸c˜

ao

Assuma (prediga) que o branch sempre ir´

a falhar

Se estivermos corretos, n˜

ao haver´

a atraso

(109)

Conflitos de Pipeline: Conflitos de Controle

Se estivermos errados, haver´

a o atraso

Al´

em do controle ter que “limpar” a pipeline das instru¸c˜

oes

incorretamente em andamento

(110)

Conflitos de Pipeline: Conflitos de Controle

Solu¸c˜

ao 3: Decis˜

ao Adiada

Imediatamente ap´

os o branch, posicione uma instru¸c˜

ao que

ao seja afetada por ele

Assim, o branch muda o endere¸co somente da instru¸c˜

ao

seguinte a esta instru¸c˜

ao

(111)

Pipeline

Conflitos de Controle: Decis˜

ao Adiada

No exemplo abaixo, o add n˜

ao afeta o branch

(112)

Conflitos de Controle: Decis˜

ao Adiada

No exemplo abaixo, o add n˜

ao afeta o branch

Podemos ent˜

ao movˆ

e-lo para depois do branch, escondendo

o atraso

(113)

Conflitos de Controle: Decis˜

ao Adiada

No exemplo abaixo, o add n˜

ao afeta o branch

Podemos ent˜

ao movˆ

e-lo para depois do branch, escondendo

o atraso

(114)

1

Patterson, D.A.; Hennessy, J.L. (2013): Computer Organization and

Design: The Hardware/Software Interface. Morgan Kaufmann. 5

a

ed.

Para detalhes sobre as partes do circuito consulte tamb´

em o

Apˆ

endice B e a se¸

ao avan¸

cada 4.13 (online)

2

http://bellerofonte.dii.unisi.it/index.asp

Referências

Documentos relacionados

a) Executar os serviços durante 12 (doze) meses, a contar da publicação do extrato desta Ata no Jornal Oficial do Município, os itens relacionados na presente Ata, na forma

O administrador CMSW poderá utilizar o relacionamento global de licenças de software para agilizar a manutenção das informações por software, usuário ou equipamento.. Clique

São vedadas na campanha eleitoral a confecção, utilização, distribuição por comitê, candidato, ou com a sua autorização, de camisetas, chaveiros, bonés, canetas, brindes,

Um segmento absoluto de c´ odigo ´ e uma zona de mem´ oria com endere¸ co inicial conhecido onde est˜ ao instru¸ c˜ oes do programa e/ou operandos com valor constante. end ; Fim do

Tipo, se você está casado lá nos Estados Unidos, isso quer dizer que você já teve casamento na igreja, que é casamento para a vida, com certeza, você tem super ações e

At the Anatomy Laboratory, 20 human male and female cadavers’ hips were dissected through an ‘open book’* posterior access port (Figure 1), identifying and proximally isolating

No caso de falecimento do Usuário fora de seu município de residência e havendo a necessidade de um membro da família para liberação do corpo, a ASSISTÊNCIA BB SEGURO

Engenharia de Software Características Operacionais Usuário Desenvolvedor Adaptabilidade a Novos Ambientes Habilidade de ser Alterado Corretitude Confiabilidade