Organiza ção e Arquitetura de Computadores Ijoseana/OAC_NA21.pdf · Microarquitetura...

Post on 30-Sep-2020

4 views 0 download

Transcript of Organiza ção e Arquitetura de Computadores Ijoseana/OAC_NA21.pdf · Microarquitetura...

DSC/CEEI/UFCGDSC/CEEI/UFCG

Universidade Federal de Campina GrandeUniversidade Federal de Campina Grande

Unidade Acadêmica de Sistemas e ComputaUnidade Acadêmica de Sistemas e Computaççãoão

Curso de Bacharelado em Ciência da ComputaCurso de Bacharelado em Ciência da Computaççãoão

NNíível da vel da MicroarquiteturaMicroarquitetura(Parte Complementar) (Parte Complementar)

ProfProfaa Joseana Joseana MacêdoMacêdo FechineFechine RRéégis de Aragis de Araúújojojoseana@computacao.ufcg.edu.brjoseana@computacao.ufcg.edu.br

Carga Horária: 60 horas

OrganizaOrganizaçção e Arquitetura ão e Arquitetura de Computadores Ide Computadores I

2DSC/CEEI/UFCGDSC/CEEI/UFCG

Tópicos

� Nível ISA

� Nível da Microarquitetura

− Datapath

− Unidade de Controle

3DSC/CEEI/UFCGDSC/CEEI/UFCG

Microarquitetura

� Microarquitetura: forma como está implementada a

arquitetura em hardware

� Processador:

� Datapath: blocos funcionais

� Controle: sinais de controle

Physics

Devices

Analog

Circuits

Digital

Circuits

Logic

Micro-

architecture

Architecture

OperatingSystems

Application

Software

electrons

transistors

diodes

amplifiers

filters

AND gates

NOT gates

adders

memories

datapaths

controllers

instructions

registers

device drivers

programs

4DSC/CEEI/UFCGDSC/CEEI/UFCG

Microarquitetura

Múltiplas implementações para uma mesmaarquitetura:

� Single-cycle− Cada instrução é executada em um único ciclo

� Multicycle− A execução de cada instrução é dividida em uma série

de passos menores

� Pipelined− A execução de cada instrução é dividida em uma série

de passos menores− Múltiplas instruções (parte de) executando ao mesmo

tempo.

5DSC/CEEI/UFCGDSC/CEEI/UFCG

Microarquitetura

Conceitos importantes:

� Program execution time

Execution Time = (# instructions)(cycles/instruction)(seconds/cycle)

− Cycles/instruction = CPI

− Seconds/cycle = clock period

− 1/CPI = Instructions/cycle = IPC

� Desafios na implementação de uma microarquitetura

� Custo

� Power

� Desempenho

6DSC/CEEI/UFCGDSC/CEEI/UFCG

Microarquitetura

� Processador MIPS

� Subconjunto das instruções MIPS:− R-type instructions: and, or, add, sub, slt

− Memory instructions: lw, sw

− Branch instructions: beq

7DSC/CEEI/UFCGDSC/CEEI/UFCG

Micro-Arquitetura

� Estado da Arquitetura

� Determina o estado do Processador em um dado instante de tempo

− PC

− 32 registradores

− Memória

8DSC/CEEI/UFCGDSC/CEEI/UFCG

Microarquitetura

� Elementos de estados do MIPS:

A RD

Instruction

Memory

A RD

Data

Memory

WD

WE

CLK

32 32

32

32

32

CLK A1

A3

WD3

RD2

RD1WE3

A2

CLK

Register

File

PCPC'

32 32

32

32

32

5

5

5

9DSC/CEEI/UFCGDSC/CEEI/UFCG

Microarquitetura -Processador MIPS

� Datapath

� Unidade de Controle

10DSC/CEEI/UFCGDSC/CEEI/UFCG

ProcessadorMIPS Single-Cycle

� Execução de lw

1: Fetch da Instrução

CLK

A RD

InstructionMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

RegisterFile

A RD

DataMemory

WD

WEPCPC'

Instr

CLK

11DSC/CEEI/UFCGDSC/CEEI/UFCG

ProcessadorMIPS Single-Cycle

� Execução de lw

2: Lê o operando fonte do RF

Instr

CLK

A RD

InstructionMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

RegisterFile

A RD

DataMemory

WD

WEPCPC'

25:21

CLK

12DSC/CEEI/UFCGDSC/CEEI/UFCG

ProcessadorMIPS Single-Cycle

� Execução de lw

3: Sign-extend o imediato

SignImm

CLK

A RD

InstructionMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

A RD

DataMemory

WD

WEPCPC' Instr

25:21

15:0

CLK

13DSC/CEEI/UFCGDSC/CEEI/UFCG

ProcessadorMIPS Single-Cycle

� Execução de lw

4: Calcula o endereço efetivo de memória

SignImm

CLK

A RD

InstructionMemory

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

A RD

DataMemory

WD

WEPCPC' Instr

25:21

15:0

SrcB

ALUResult

SrcA Zero

CLK

ALUControl2:0

ALU

010

14DSC/CEEI/UFCGDSC/CEEI/UFCG

ProcessadorMIPS Single-Cycle

� Execução de lw

5: Lê o dado da memória e o escreva no RF

A1

A3

WD3

RD2

RD1WE3

A2

SignImm

CLK

A RD

InstructionMemory

CLK

Sign Extend

Register

File

A RD

DataMemory

WD

WEPCPC' Instr

25:21

15:0

SrcB20:16

ALUResult ReadData

SrcA

RegWrite

Zero

CLK

ALUControl2:0

ALU

0101

15DSC/CEEI/UFCGDSC/CEEI/UFCG

ProcessadorMIPS Single-Cycle

� Execução de lw

6: Determina o endereço da próxima instrução

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

A RD

DataMemory

WD

WEPCPC' Instr

25:21

15:0

SrcB20:16

ALUResult ReadData

SrcA

PCPlus4

Result

RegWrite

Zero

CLK

ALUControl2:0

ALU

0101

16DSC/CEEI/UFCGDSC/CEEI/UFCG

ProcessadorMIPS Single-Cycle

� Execução de sw

� Precisa escrever o valor do registrador na memória

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

A RD

DataMemory

WD

WEPCPC' Instr

25:21

20:16

15:0

SrcB20:16

ALUResult ReadData

WriteData

SrcA

PCPlus4

Result

MemWriteRegWrite

Zero

CLK

ALUControl2:0

AL

U

10100

17DSC/CEEI/UFCGDSC/CEEI/UFCG

ProcessadorMIPS Single-Cycle

� Instruções R-Type: add, sub, and, or, ….

� Escrever ALUResult no RF

− Escreve em rd e não em rt

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PCPC' Instr25:21

20:16

15:0

SrcB

20:16

15:11

ALUResult ReadData

WriteData

SrcA

PCPlus4WriteReg

4:0

Result

RegDst MemWrite MemtoRegALUSrcRegWrite

Zero

CLK

ALUControl2:0

ALU

0varies1 001

18DSC/CEEI/UFCGDSC/CEEI/UFCG

ProcessadorMIPS Single-Cycle

� Instrução beq

� Determina se os conteúdos dos registradores são iguais

� Calcula o endereço alvo do desvio

− (sign-extended immediate + PC+4)

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1

PC' Instr25:21

20:16

15:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

RegDst Branch MemWrite MemtoRegALUSrcRegWrite

Zero

PCSrc

CLK

ALUControl2:0

ALU

01100 x0x 1

19DSC/CEEI/UFCGDSC/CEEI/UFCG

ProcessadorMIPS Single-Cycle

Unidade de Controle

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1

PC' Instr25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

20DSC/CEEI/UFCGDSC/CEEI/UFCG

ProcessadorMIPS Single-Cycle

RegDst

Branch

MemWrite

MemtoReg

ALUSrcOpcode5:0

ControlUnit

ALUControl2:0Funct5:0

MainDecoder

ALUOp1:0

ALUDecoder

RegWrite

Control Unit

21DSC/CEEI/UFCGDSC/CEEI/UFCG

Processador MIPS Single-Cycle

ALU

A & B000

A | B001

A + B010

not used011

A & ~B100

A | ~B101

A - B110

SLT111

FunctionF2:0

ALU

N N

N

3

A B

Y

F

22DSC/CEEI/UFCGDSC/CEEI/UFCG

ProcessadorMIPS Single-Cycle

+

2 01

A B

Cout

Y

3

01

F2

F1:0

[N-1] S

NN

N

N

N NNN

N

2

Ze

roE

xte

nd

ALU

23DSC/CEEI/UFCGDSC/CEEI/UFCG

ProcessadorMIPS Single-Cycle

ALU Decoder

Not Used11

Look at Funct10

Subtract01

Add00

MeaningALUOp1:0

111 (SLT)101010 (slt)1X

001 (Or)100101 (or)1X

000 (And)100100 (and)1X

110 (Subtract)100010 (sub)1X

010 (Add)100000 (add)1X

110 (Subtract)XX1

010 (Add)X00

ALUControl2:0FunctALUOp1:0

24DSC/CEEI/UFCGDSC/CEEI/UFCG

ProcessadorMIPS Single-Cycle

� Funcionalidades

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1PC' Instr

25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

0

1

25:0 <<2

27:0 31:28

PCJump

Jump

25DSC/CEEI/UFCGDSC/CEEI/UFCG

ProcessadorMIPS Single-Cycle

� Decodificador Principal

1XXX0XXX0000100j

0

0

0

0

0

Jump

00000101001000addi

01X010X0000100beq

00X101X0101011sw

00100101100011lw

10000011000000R-type

ALUOp1:0

MemtoRegMemWriteBranchAluSrcRegDstRegWriteOp5:0

Instruction

26DSC/CEEI/UFCGDSC/CEEI/UFCG

ProcessadorMIPS Single-Cycle

� Desempenho: Quão rápido é o processador?

� Cycle time: limitado pelo caminho crítico - lw

SignImm

CLK

A RD

InstructionMemory

+

4

A1

A3

WD3

RD2

RD1WE3

A2

CLK

Sign Extend

RegisterFile

0

1

0

1

A RD

DataMemory

WD

WE0

1

PC0

1

PC' Instr25:21

20:16

15:0

5:0

SrcB

20:16

15:11

<<2

+

ALUResult ReadData

WriteData

SrcA

PCPlus4

PCBranch

WriteReg4:0

Result

31:26

RegDst

Branch

MemWrite

MemtoReg

ALUSrc

RegWrite

Op

Funct

ControlUnit

Zero

PCSrc

CLK

ALUControl2:0

ALU

1

0100

1

0

1

0 0

27DSC/CEEI/UFCGDSC/CEEI/UFCG

Processador MIPS Single-Cycle

� Caminho crítico

Tc = tpcq_PC + tmem + max(tRFread, tsext) + tmux + tALU + tmem + tmux + tRFsetup

� Na maioria das implementações os caminhos

limitantes são: memória, ALU, register file. Assim,

Tc = tpcq_PC + 2tmem + tRFread + 2tmux + tALU + tRFsetup

28DSC/CEEI/UFCGDSC/CEEI/UFCG

ProcessadorMIPS Single-Cycle

30tpcq_PCRegister clock-to-Q

Delay (ps)ParameterElement

20tsetupRegister setup

25tmuxMultiplexer

200tALUALU

250tmemMemory read

150tRFreadRegister file read

20tRFsetupRegister file setup

Tc = tpcq_PC + 2tmem + tRFread + 2tmux + tALU + tRFsetup

= [30 + 2(250) + 150 + 2(25) + 200 + 20] ps

= 950 ps

29DSC/CEEI/UFCGDSC/CEEI/UFCG

ProcessadorMIPS Single-Cycle

� Para um programa com 100 bilhões de instruções executandoem um processador MIPS single-cycle,

� Execution Time

= (# instructions)(cycles/instruction)(seconds/cycle)

= (100 × 109)(1)(950 × 10-12 s)

= 95 seconds

30DSC/CEEI/UFCGDSC/CEEI/UFCG

Processadores Intel

Evolução dos Microprocessadores Intel

31DSC/CEEI/UFCGDSC/CEEI/UFCG

Processadores Intel

32DSC/CEEI/UFCGDSC/CEEI/UFCG

Processadores Intel IA-32

Chip do Pentium 4

Chip do Core Duo

33DSC/CEEI/UFCGDSC/CEEI/UFCG

Chip do Core i7

Processadores Intel IA-32

Chip do Core i3 Chip do Core i5

34DSC/CEEI/UFCGDSC/CEEI/UFCG

Processadores Intel IA-32

Fonte: http://techreport.com/review/18216/intel-core-i3-and-i5-dual-core-processors