56
Arquitectura de Computadores Unidade Central de Processamento Nuno Cavaco Gomes Horta Universidade Técnica de Lisboa / Instituto Superior Técnico

Arquitectura de Computadores - fenix.tecnico.ulisboa.pt · • Instruções complexas que requerem vários ciclos de relógio para a sua ... MOVE numa estrutura de Memory-Mapped I/O

  • Upload
    dodan

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Arquitectura de Computadores

Unidade Central de Processamento

Nuno Cavaco Gomes Horta

Universidade Técnica de Lisboa / Instituto Superior Técnico

Arquitectura de Computadores

Unidade Central de Processamento

Sumário

• Introdução

• Unidade de Processamento

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

2

• Unidade de Processamento

• Unidade de Controlo

• Conjunto de Instruções

• Unidade Central de Processamento (CPU)

• Unidade de Entrada/Saída (I/O)

• Unidade de Memória

• Perspectiva Evolutiva das Arquitecturas de Computadores

Arquitectura de Computadores

Unidade Central de Processamento

Arquitectura Genérica de um Computador

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

3

Arquitectura de Computadores

Unidade Central de Processamento

CPU

• Arquitectura CISC

• Diagrama de Blocos

• Registos e Formatos das Instruções

• Classes de Instruções

• Modos de Enedreçamento

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

4

• Modos de Enedreçamento

• Unidade de Processamento

• Unidade de Controlo – Microprogramado

• Formato das Microinstruções

• Microsequenciador

• Descodificador de Instruções

• Microprogramação

• Arquitectura RISC

• Arquitectura Pipelined

• Outras Arquitecturas

Arquitectura de Computadores

Unidade Central de Processamento

Arquitectura CISC

• Generalidade das instruções com acesso directo à memória.

• Elevado número de modos de endereçamento (8).

• Formatos de instruções de dimensões diferentes (2).

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

5

• Instruções complexas que requerem vários ciclos de relógio para a sua

execução.

Nota: As instruções ST, LD, IN e OUT podem ser realizadas pela instrução

MOVE numa estrutura de Memory-Mapped I/O.

Arquitectura de Computadores

Unidade Central de ProcessamentoUnidade

Central de

Processamento (CPU)

Arquitectura CISCLS

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

6

Arquitectura de Computadores

Unidade Central de Processamento

CPU

• Arquitectura CISC

• Diagrama de Blocos

• Registos e Formatos das Instruções

• Classes de Instruções

• Modos de Enedreçamento

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

7

• Modos de Enedreçamento

• Unidade de Processamento

• Unidade de Controlo – Microprogramado

• Formato das Microinstruções

• Microsequenciador

• Descodificador de Instruções

• Microprogramação

• Arquitectura RISC

• Arquitectura Pipelined

• Outras Arquitecturas

Arquitectura de Computadores

Unidade Central de Processamento

Conjunto de Registos da CPU

Registos de Uso Geral: R0 a R7

Program Counter – Contador de Programa: PC

Stack Pointer – Apontador para o Stack: SP

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

8

PSR – Registo de Estado: EI, Z,N,C, V

EI – Enable Interrupt

Z – Zero

N – Signal

C – Carry

V - Overflow

Arquitectura de Computadores

Unidade Central de Processamento

Formato das Instruções (Geral)

Formato Genérico:

• OPCODE – Especificação daoperação.

• MODE e S – Utilizados nadeterminação dos endereços

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

9

determinação dos endereçosdos operandos.

• SRC e DST – Campos deEndereço dos Registos deDestino e Fonte.

• W – Segunda palavra utilizadaapenas por algumas instruçõespara especificação deendereços ou operandos.

Arquitectura de Computadores

Unidade Central de Processamento

Formato das Instruções (Zero Operandos)

Formato (Zero Operandos):

• OPCODE – IR(15:14) são 00

• OPCODE – IR(13 a 10)especificação de 16 operações,sem operandos ou comoperandos implícitos.

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

10

Arquitectura de Computadores

Unidade Central de Processamento

Formato das Instruções ( 1 Operando)

Formato (1 Operando):

•OPCODE – IR(15:14) são 01

•MODE – Modo deEndereçamemto

•S e SHA – Utilizado apenasnas operações de deslocamento,indicando o número de

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

11

indicando o número dedeslocamentos unitários (0 a15)

• DST – Pode ser utilizado nadeterminação do endereço dooperando.

Arquitectura de Computadores

Unidade Central de Processamento

Formato das Instruções (2 Operandos)

Formato (2 Operandos):

• OPCODE – IR(15:14) são 10

• S – Determina qual doscampos do endereço, S=0 –SRC e S=1 – DST, utiliza omodo de endereçamentoespecificado por MODE.

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

12

especificado por MODE.

• W – Pode ser utilizada,dependendo de MODE, comoum endereço ou operandoimediato.

Arquitectura de Computadores

Unidade Central de Processamento

Formato das Instruções (Controlo de Programa)

Formato (Controlo de Prog.):

• OPCODE – IR(15:14) são 11

• MODE – Endereçamento porregisto não utilizado. Oendereço de destinocorresponde ao novo valor doPC.

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

13

PC.

Arquitectura de Computadores

Unidade Central de Processamento

Modos de Endereçamento

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

14

MODE:

• MODE(2:1) – Especifica um dos quatro modos de endereçamento (00 – Registo; 01 –Imediato; 10 - Indexado; 11 – Relativo). No modo registo não se utiliza a palavraadicional W.

• MODE(0) – Especifica se o endereço gerado é para utilizar como endereçamentoindirecto (MODE(0) = 1).

Arquitectura de Computadores

Unidade Central de Processamento

Modos de Endereçamento

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

15

MODE ADDRESSMODE IR(15:14) = 01 or 11 IR(15:14) = 10, S=0 IR(15:14) = 10, S=1

000 Registo DEC R1 ADD R1, R2 ADD R1, R2

001 Indirecto por Registo INC M[R1] ADD R1, M[R2] ADD M[R1], R2

010 Imediato PUSH 23 MOVE R1, 1024 COMP 1024, R2

011 Directo SHR 5, M[1024] MOVE R1, M[1024] MOVE M[1024], R2

100 Indexado PUSH M[R1+256] AND R1, M[R2+22] AND M[R1+12], R2

101 Indirecto Indexado ROR M[R1+12] MOVE R1, M[M[R2+22]] MOVE M[M[R1+12]], R2

110 Relativo JMP 17 AND R1, M[PC+22] COMP M[PC+12], R2

111 Indirecto Relativo BRZ M[PC+230 ] MOVE R1, M[M[PC+22]] COMP M[M[PC+12]], R2

Nota: Na generalidade dos casos os offsets são obtidos por substituição das etiquetas e não especificados directamente no código assembly.

Arquitectura de Computadores

Unidade Central de Processamento

CPU

• Arquitectura CISC

• Diagrama de Blocos

• Registos e Formatos das Instruções

• Classes de Instruções

• Modos de Enedreçamento

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

16

• Modos de Enedreçamento

• Unidade de Processamento

• Unidade de Controlo – Microprogramado

• Formato das Microinstruções

• Microsequenciador

• Descodificador de Instruções

• Microprogramação

• Arquitectura RISC

• Arquitectura Pipelined

• Outras Arquitecturas

Arquitectura de Computadores

Unidade Central de ProcessamentoUnidade

Central de

Processamento (CPU)

Arquitectura CISCLS

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

17

Arquitectura de Computadores

Unidade Central de Processamento

Unidade de Processamento

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

18

Arquitectura de Computadores

Unidade Central de Processamento

Unidade de Processamento

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

19

Arquitectura de Computadores

Unidade Central de Processamento

Unidade de Processamento (U. Armazenamento)

INSTRUÇÃO

MICROINSTRUÇÃO

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

20

Arquitectura de Computadores

Unidade Central de Processamento

Unidade de Processamento (U. Armazenamento)

Unidade de Armazenamento:

• Registos (16 de 16 bits)

• Registos de Uso Geral (R0 a R7) – Registosvisíveis para o programador (R1 a R7utilizáveis).

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

21

utilizáveis).

• Registos Temporários (R8 a R15) –Registos para armazenamento temporário deoperandos dos microprogramas.

• R0 – Fornece a constante 0.

• R12 – Endereço de origem.

• R13 – Dado de origem.

• R14 – Endereço de destino.

• R15 – Dado para destino.

Arquitectura de Computadores

Unidade Central de Processamento

Unidade de Processamento (U. Armazenamento)

INSTRUÇÃO

MICROINSTRUÇÃO

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

22

Endereçamento: 4 bits da microinstrução para endereçamento de cada registo + 1 bit damicroinstrução para seleccionar entre estes endereços ou os da instrução.

Nota: Instrução lida de memória, Microinstrução obtida na U.C; após descodificação da Instrução.

Arquitectura de Computadores

Unidade Central de Processamento

Unidade de Processamento (U. Armazenamento)

SELECÇÃO de ENDEREÇO de

REGISTO:MICROINSTR.

ouINSTRUÇÃO

SELECÇÃO de ENDEREÇO na INSTRUÇÃO

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

23Nota: (1) Apenas um dos bits DSA4 ou SB4 pode estar a 1 de cada vez para seleccionar o campo deendereço da instrução; (2) Os bits DS3 e SB3 seleccionam qual o campo de endereços da instrução.

INSTRUÇÃO

MICROINSTRUÇÃO

Arquitectura de Computadores

Unidade Central de Processamento

Unidade de Processamento

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

24

Arquitectura de Computadores

Unidade Central de Processamento

Unidade de Processamento (U. Deslocamento)

Implementação das instruções:

SHR, SHL, SHRA, SHLA, ROR, ROL, RORC, ROLC

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

25

Arquitectura de Computadores

Unidade Central de Processamento

Unidade de Processamento (U. Deslocamento)

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

26

Arquitectura de Computadores

Unidade Central de Processamento

Unidade de Processamento (U. Deslocamento)

INSTR. S3 S2 S1 S0 SHR 0 1 0 0

SHRA 0 1 0 1

ROR 0 1 1 0

RORC 0 1 1 1

SHL 1 0 0 0

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

27

SHLA 1 0 0 1

ROL 1 0 1 0

ROLC 1 0 1 1

Nota: Os sinais deselecção S3 a S0correspondem aos bitsFS3 a FS0 de selecçãoda operação na U.Funcional.

Arquitectura de Computadores

Unidade Central de Processamento

Unidade de Processamento (U. Deslocamento)

INSTR. S3 S2 S1 S0 SHR 0 1 0 0

SHRA 0 1 0 1

ROR 0 1 1 0

RORC 0 1 1 1

SHL 1 0 0 0

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

28

SHLA 1 0 0 1

ROL 1 0 1 0

ROLC 1 0 1 1

Nota: Os sinais deselecção S3 a S0correspondem aos bitsFS3 a FS0 de selecçãoda operação na U.Funcional.

Arquitectura de Computadores

Unidade Central de Processamento

Unidade de Processamento

PC, PSR e SP –Armazenamento/Leitura em/dememória realizado via U.Processamento. (PC e SPatravés do MUX A; PSR

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

29

através do MUX A; PSRatravés do MUX B)

PSR Program Status Register– Armazena os bits de estadoentre instruções.

MSTS Microstatus Register –Armazena os bits de estadopara utilização nas rotinas domicroprograma sem alterar oPSR.

Arquitectura de Computadores

Unidade Central de Processamento

CPU

• Arquitectura CISC

• Diagrama de Blocos

• Registos e Formatos das Instruções

• Classes de Instruções

• Modos de Enedreçamento

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

30

• Modos de Enedreçamento

• Unidade de Processamento

• Unidade de Controlo – Microprogramado

• Formato das Microinstruções

• Microsequenciador

• Descodificador de Instruções

• Microprogramação

• Arquitectura RISC

• Arquitectura Pipelined

• Outras Arquitecturas

Arquitectura de Computadores

Unidade Central de ProcessamentoUnidade de

Controlo

Microprogramado

Memória de Controlo –ROM 256 palavras de31 bits.

Registos de Controlo –IR (Instruction

LS

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

31

IR (InstructionRegister), PC (ProgramCounter), SP (StackPointer).

Micro-Sequenciador –Define a sequência deoperações na UC. CAR(Control AddressRegister), SBR(Subroutine BranchRegister)

Descodificador deInstruções – Geraçãodo endereço para CAR.

Arquitectura de Computadores

Unidade Central de Processamento

Unidade de Controlo Microprogramado

Formato das Microinstruções armazemadas na memória de controlo:

DATAPATH

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

32

MC – Selecciona o formato utilizado

Formato A (MC =00, 01 ou 10) – A microinstrução realiza transferência, manipulaçãode dados, descodificação de instruções e retorno de microsubrotinas.

Formato B (MC =11) – A microinstrução permite alterar o fluxo do microprograma(call, br, etc.)

Controlo da DATAPATH (Bits 23 a 4 do Formato A)

Arquitectura de Computadores

Unidade Central de Processamento

Unidade de Controlo Microprogramado: Formato das Microinstruções (bit 23 a 4)

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

33

Arquitectura de Computadores

Unidade Central de Processamento

Unidade de Controlo Microprogramado: Microsequenciador

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

34INTS – InterruptStatus Bit

Arquitectura de Computadores

Unidade Central de ProcessamentoUnidade de Controlo Microprogramado:

Microsequenciador

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

35

Microinstruções com Formato B (MC =11) – Não afectam registos da UP.

SBR – 1 registo para armazenar retorno de Microsubrotina, implica apenas um nível de subrotinasnos Microprogramas.

ST – Gerado internamento no Microsequenciador. LS – Permite guardar em SBR o end. de retorno.

Arquitectura de Computadores

Unidade Central de Processamento

Unidade de Controlo Microprogramado: Microsequenciador

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

36

MS – Especificação do tipo de salto.

PS – Especificação do nível de activação (H ou L) do bit de teste.

Arquitectura de Computadores

Unidade Central de Processamento

Unidade de Controlo Microprogramado: Descodificador de Instruções

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

37

Arquitectura de Computadores

Unidade Central de Processamento

Unidade de Controlo Microprogramado: Descodificador de Instruções

INSTRUÇÃO

MICROINSTRUÇÃO

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

38

A utilização de diferentes valores dos campos de controlo permite aceder a diferentes endereços damemória de controlo e, portanto, permite a execução de diferentes microrotinas durante a execuçãode uma mesma instrução.

MM – Define que parte dainstrução deve serconsiderada na determinaçãodo endereço da memória demapeamento cujo conteúdoserá enviado para CAR ecorresponderá ao endereço damemória de controlo.

MR (MicroprogramRegion) – permite autilização dediferentes conjuntosde endereços para osmesmos campos deIR.

Arquitectura de Computadores

Unidade Central de Processamento

Unidade de Controlo Microprogramado

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

39

MO (MiscellaneousOperations) – Controlode operações sobrememória, PC, IR, SP,PSR e MSTS.

Arquitectura de Computadores

Unidade Central de Processamento

Fluxograma para a execuçãodas Microrotinas –

(1) Aquisição de Instruções;

• PC fornece endereço de inst.

• Inst. armazenada em IR

Estrutura do Microprograma

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

40

• Inst. armazenada em IR

• PC incrementado

(2) Aquisição de Operandos

• Descodificação da instrução

• Endereços e valores deoperandos armazenados nosregistos de R12 a R15 (SA, SD,DA e DD)

Arquitectura de Computadores

Unidade Central de Processamento

Fluxograma para a execuçãodas Microrotinas –

(3) Execução de Instruções;

• Utiliza os operandos eendereços nos registos R12 aR15 e em geral coloca o

Estrutura do Microprograma

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

41

R15 e em geral coloca oresultado em DD.

(4) Actualização de Registos;

• Coloca o resultado daoperação no destinopretendido (registo ou mem.)

.

(5) Atendimento de Interrupções.

• Após a execução de cadainstrução verifica a existênciade pedidos de interrupção.

Arquitectura de Computadores

Unidade Central de ProcessamentoMicrorotinas:

Aquisição de

Instruções

Microinstruções

IF0 e IF1

LS

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

42

Arquitectura de Computadores

Unidade Central de Processamento

Microrotinas: Aquisição de Instruções

Formato AFormato B

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

43

LS

Arquitectura de Computadores

Unidade Central de Processamento

CPU

• Arquitectura CISC

• Diagrama de Blocos

• Registos e Formatos das Instruções

• Classes de Instruções

• Modos de Enedreçamento

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

44

• Modos de Enedreçamento

• Unidade de Processamento

• Unidade de Controlo – Microprogramado

• Formato das Microinstruções

• Microsequenciador

• Descodificador de Instruções

• Microprogramação

• Arquitectura RISC

• Arquitectura Pipelined

• Outras Arquitecturas

Arquitectura de Computadores

Unidade Central de Processamento

Arquitectura RISC: Registos e Formato de Instruções

• Registos

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

45

• Formato de Instruções

Arquitectura de Computadores

Unidade Central de Processamento

Arquitectura do Conjunto de Instruções

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

46

Modos de Endereçamento

• Registo, Indirecto, Imediato e Relativo

Arquitectura de Computadores

Unidade Central de Processamento

Unidade de Controlo: Palavras de

Controlo para Instruções

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

47

Arquitectura de Computadores

Unidade Central de Processamento

Pipeline CPU

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

48

Arquitectura de Computadores

Unidade Central de Processamento

Limitações da Arquitectura Pipelined: Data and Control Hazards

Solução por Software

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

49

Arquitectura de Computadores

Unidade Central de Processamento

Limitações da Arquitectura Pipelined: Data and Control Hazards

Solução por Hardware

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

50

Arquitectura de Computadores

Unidade Central de Processamento

Limitações da Arquitectura Pipelined: Data and Control Hazards

Solução por Hardware

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

51

Arquitectura de Computadores

Unidade Central de Processamento

CPU

• Arquitectura CISC

• Diagrama de Blocos

• Registos e Formatos das Instruções

• Classes de Instruções

• Modos de Enedreçamento

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

52

• Modos de Enedreçamento

• Unidade de Processamento

• Unidade de Controlo – Microprogramado

• Formato das Microinstruções

• Microsequenciador

• Descodificador de Instruções

• Microprogramação

• Arquitectura RISC

• Arquitectura Pipelined

• Outras Arquitecturas

Arquitectura de Computadores

Unidade Central de Processamento

CPU – Arquitecturas para Aumento do Desempenho

Pipeline e Paralelismo

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

53

Arquitectura de Computadores

Unidade Central de Processamento

CPU – Arquitecturas para Aumento do Desempenho

RISC-CISC

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

54

Arquitectura de Computadores

Unidade Central de Processamento

CPU – Arquitecturas para Aumento do Desempenho

Superescalar

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

55

Arquitectura de Computadores

Unidade Central de Processamento

BIBLIOGRAFIA

[1] M. Morris Mano, Charles R. Kime, “Logic and Computer Design Fundamentals”, Prentice-Hall International, Inc. (Capítulo 10)

N. Horta, IST - UTL Arquitectura de Computadores

2006/2007

56