• Nenhum resultado encontrado

Unidade Central de Processamento

N/A
N/A
Protected

Academic year: 2021

Share "Unidade Central de Processamento"

Copied!
159
0
0

Texto

(1)

Arquitetura e Organização de Computadores 1

Unidade Central de Processamento

Prof. Otávio Gomes

[email protected]

Prof. Mário Luiz Rodrigues

[email protected]

(2)

Arquitetura e Organização de Computadores 2

Unidade Central de Processamento

Unidade Central de Processamento Unidade Lógica e Aritmética

Micro-Arquiteturas

Organização em Parte Operativa e de Controle Controle Microprogramado

Controle FSM (Máquina de Estados Finitos)

(3)

Arquitetura e Organização de Computadores 3

(4)

Arquitetura e Organização de Computadores 4

A unidade central de processamento do computador

busca, decodifica e executa as instruções dos programas.

As duas partes principais da CPU são o caminho dos dados (datapath) e a unidade de controle.

O datapath consiste em uma unidade lógica-aritmética e unidade de armazenamento (registradores) que estão interconectados ao barramento de dados, que está conectado à memória principal.

Os componentes da CPU realizam operações sequenciais de acordo com os sinais fornecidos pela unidade de

controle.

Unidade Central

de Processamento

(5)

Arquitetura e Organização de Computadores 5

Registrados mantém os dados guardados e podem ser prontamente acessados pela CPU.

Eles podem ser implementados utilizando flip-flops do tipo D.

Um registrador 32-bit requer 32 flip-flops D.

A unidade lógica-aritmética (ALU) é reponsável pelas

operações lógicas e aritméticas requisitados pela unidade de controle.

A unidade de controle determina que ações devem ser

executadas de acordo com os valores dos registros contador de programas (Program Counter) e de status (flags).

Unidade Central

de Processamento

(6)

Arquitetura e Organização de Computadores 6

Unidade Central

de Processamento

(7)

Arquitetura e Organização de Computadores 7

A CPU compartilha dados com componentes de outros sistemas através do barramento de dados.

– Um barramento é um conjunto de linhas que transfere/suporta um bit por linha.

Dois tipos de barramentos são encontrados com frequência:

point-to-point e multipoint.

O Barramento (Bus)

(8)

Arquitetura e Organização de Computadores 8

Barramentos são linhas de dados, linhas de controle e linhas de endereços.

Enquanto as linhas de dados trasnferem bits de um dispositivo para outro, as linhas de controle determinam o fluxo dos dados e quando o dispositivo poderá acessar o barramento.

Linhas de endereço determinam a localização da fonte de dados ou o destino do dado.

Há diferentes tipos de conexão para diferentes dispositivos/unidades:

Memória

I/O (Entrada/Saída) CPU

O Barramento (Bus)

(9)

Arquitetura e Organização de Computadores 9

Módulos

do Computador

(10)

Arquitetura e Organização de Computadores 10

Recebe e envia dados

Recebe endereços ( de localizações) Recebe sinais de controle

– Read – Write – Timing

Memória

(11)

Arquitetura e Organização de Computadores 11

Similar à memória do ponto de vista dos computadores

Saída (Output)

– Recebe dados do computador – Envia dados aos periféricos

Entrada (Input)

– Recebe dados dos periféricos – Envia dados ao computadores

Entrada/Saída (I/O)

(12)

Arquitetura e Organização de Computadores 12

Recebe sinais de controle do computador

Envia sinais de controle aos periféricos Recebe endereços do computador

– Número da porta para identificar periférico

Envia sinais de interrupção (controle)

Entrada/Saída (I/O)

(13)

Arquitetura e Organização de Computadores 13

Leitura de Instruções e Dados

Escrita de Dados (Após processamento) Envio de sinais de controle para outras unidades/dispositivos

Recebe (e atua) nas interrupções

Conexões da CPU

(14)

Arquitetura e Organização de Computadores 14

Um caminho de comunicação entre dois ou mais dispositivos

Usualmente utiliza broadcast Frequentemente agrupado

– O número de canais em um barramento

– Um barramento de 32 bits é um conjunto de 32 canais simples de um bit cada

Linhas de energia podem não ser exibidas, mas são essenciais.

O que é um barramento?

(15)

Arquitetura e Organização de Computadores 15

Transferência de dados

– Lembre-se que não há diferença entre “data” e

“instruction” neste nível

O comprimento da palavra é a chave que determina a performance

– 8, 16, 32, 64 bit

Barramento

De Dados

(16)

Arquitetura e Organização de Computadores 16

É necessário identificar a fonte e o destino dos dados

O barramento determina a capacidade máxima de memória de sistema.

– Por exemplo, o microprocessador 8080 tem 16 bit, sendo assim, o barramento de

endereçamentos fornece 64k de espaço de endereçamento

Barramento

De Endereços

(17)

Arquitetura e Organização de Computadores 17

Controle e informações de tempo

– Sinal de Leitura/Escrita na memória – Requisição de Interrupção

– Sinais de Clock

Barramento

De Controle

(18)

Arquitetura e Organização de Computadores 18

Barramento

De Controle

(19)

Arquitetura e Organização de Computadores 19

Esquema de Interconexão

dos Barramentos

(20)

Arquitetura e Organização de Computadores 20

Muitos dispositivos em um único

barramento podem levar a propagação de atraso.

Muitos sistemas utilizam múltiplos

barramentos para evitar este problema.

Problemas de

Barramentos Simples

(21)

Arquitetura e Organização de Computadores 21

ISA (Industrial Standard Architecture)

Primeiro sistema aberto de arquitetura de barramento para PCs

8 bit

4.77 MHz, 20 address lines (1M address space)

16 bit (introduced with the 286)

8.33 MHz, 24 address lines (16M address space)

EISA (Extended ISA)

Introduced in 88-89

16/32 bit data lines, 24/32 bit address, 8.33MHz

Backward compatible with ISA, roughly twice the space of ISA

ISA

(22)

Arquitetura e Organização de Computadores 22

ISA

(23)

Arquitetura e Organização de Computadores 23

Barramentos de Alta

Performance

(24)

Arquitetura e Organização de Computadores 24

Dedicado

– Linhas de endereço e de dados separadas

Multiplexado

– Linhas compartilhadas

– Linha de controle de validação de endereço ou dado

– Vantagem: menos linhas – Desvantagens

Controle muito mais complexo

Controle de performance

Tipos de

Barramentos

(25)

Arquitetura e Organização de Computadores 25

Mais de um módulo controlando o barramento, por exemplo, controladores CPU e DMA.

Somente um módulo pode controlar o barramento por vez. O controle pode ser centralizado ou

distribuído.

Controle de Barramento

(Bus Arbitration)

(26)

Arquitetura e Organização de Computadores 26

Centralizado

– Um único dispositivo hardware controla o acesso ao barramento

Controle do Barramento

Árbitro

– Pode ser parte da CPU ou estr separado

Distribuído

– Cada módulo pode solicitar o controle do barramento

– Lógica de controle em todos os módulos

Controle de Barramento

(Bus Arbitration)

(27)

Arquitetura e Organização de Computadores 27

Coordenação de eventos no barramento Síncrono (

Synchronous

)

– Eventos são determinados pelos sinais de clock – Controle do barramento inclui uma linha de clock – Uma simples transição 1-0 é um ciclo de

barramento

– Todos os dispositivos devem ler a linha de clock

Timing

(28)

Arquitetura e Organização de Computadores 28

Timing

(29)

Arquitetura e Organização de Computadores 29

Peripheral Component Interconnection Intel released to public domain

33/100/133/266/333+ MHz clock, independent of processor

32 or 64 bit data and address lines (128 bit soon)

50 lines

Supports up to 16 slots and ISA slots

Normally, 2 ISA slot, 1 of which is a “shared” slot with PCI

PCI Express x16 adapters and PCI Express x1 adapters

Barramento PCI

(30)

Arquitetura e Organização de Computadores 30

PCI 32 bit slot

AGP slot

PCI Express x16 slot

PCI Express x1 slot

Slots PCI

(31)

Arquitetura e Organização de Computadores 31

Systems lines

– Including clock and reset

Address & Data

– 32 time mux lines for address/data – Interrupt & validate lines

Interface Control Arbitration

– Not shared

– Direct connection to PCI bus arbiter

Error lines

Linhas de Barramento

PCI (necessárias)

(32)

Arquitetura e Organização de Computadores 32

Interrupt lines

– Not shared

Cache support

64-bit Bus Extension

– Additional 32 lines – Time multiplexed

– 2 lines to enable devices to agree to use 64-bit transfer

Linhas de Barramento

PCI (opcionais)

(33)

Arquitetura e Organização de Computadores 33

Transaction between initiator (master) and target Master claims bus

Determine type of transaction

– e.g. I/O read/write

Address phase

One or more data phases

Comandos PCI

(34)

Arquitetura e Organização de Computadores 34

Todo computador contém pelo menos um clock que sincroniza as atividades de seus dispositivos.

Um número fixo de clocks é necessário para a tranferência dos dados e para as operações computacionais.

A frequência do clock, medida em megahertz or gigahertz, determina a velocidade em que estas operações serão

executadas.

O tempo do ciclo de clock está ligado à frequência de clock.

Um clock de 800 MHz clock tem um tempo de ciclo de 1.25 ns.

Clocks

(35)

Arquitetura e Organização de Computadores 35

Velocidade de clock não pode ser confundido com performance da CPU.

O tempo necessário para que a CPU execute um programa é dado pela equação:

– Nós podemos aumentar o throughput da CPU

quando reduzimos o número de instruções em um programa, reduzimos o número de ciclos por

instrução, ou reduzimos o número de nanosegundos por ciclo de clock.

Clocks

(36)

Arquitetura e Organização de Computadores 36

O computador se comunica com o mundo através do subsistema de entrada/saída (I/O).

Os dispositivos de I/O são conectados à CPU através de várias interfaces.

Os dispositivos de I/O podem ser mapeados em memória (memory-mapped), onde o dispositivo se

comporta como a memória principal, do ponto de vista da CPU.

Ou o dispositivo de I/O pode ser controlado por instruções (instruction-based), onde a CPU tem instruções específicas para o controle de I/O.

I/O Subsystem

(37)

Arquitetura e Organização de Computadores 37

• Como o computador acessa uma localização de

memória correspondente a um endereço específico?

• Podemos observar que 4M pode ser expresso como 2 2 × 2 20 = 2 22 words.

• As localizações de memória para este espaço de endereçamento vão de 0 até 2 22 -1.

• Neste caso, o barramento de memória deste sistema necessita de, pelo menos, 22 linhas de endereço.

Organização da Memória

(38)

Arquitetura e Organização de Computadores 38

A memória física geralmente consiste em mais do que um chip de RAM.

O acesso à memória é mais eficiente quando ela está organizada em bancos de chips, com intervalos de

acesso entre eles.

Uma parte do endereço fará a designação do banco de memória e outra parte apontará o endereço

específico dentro daquele banco.

Organização da Memória

(39)

Arquitetura e Organização de Computadores 39

Organização

da Memória

(40)

Arquitetura e Organização de Computadores 40

Organização

da Memória

(41)

Arquitetura e Organização de Computadores 41

Componentes do Computador

Top Level

(42)

Arquitetura e Organização de Computadores 42

Ciclo de Intrução com Interrupções

DECODE

(43)

Arquitetura e Organização de Computadores 43

Fluxo de Dados

Diagrama de Busca

(44)

Arquitetura e Organização de Computadores 44

Diagrama de Estados

Ciclos de Instrução

(45)

Arquitetura e Organização de Computadores 45

Pode ter diversas formas

Depende da instrução que está sendo executada Pode incluir

– Memory read/write – Input/Output

– Register transfers – ALU operations

Fluxo de Dados

Execução

(46)

Arquitetura e Organização de Computadores 46

Controle de Transferência

Interrupções

(47)

Arquitetura e Organização de Computadores 47

Múltiplas Interrupções

Sequenciais

(48)

Arquitetura e Organização de Computadores 48

Múltiplas Interrupções

Aninhadas (Nested)

(49)

Arquitetura e Organização de Computadores 49

Fluxo de Controle

Programa

(50)

Arquitetura e Organização de Computadores 50

A CPU é projetada e fabricada com o propósito único de executar sucessivamente pequenas operações matemáticas (ou outras manipulações simples com dados), na ordem e na sequência definidas pela organização do programa.

As atividades realizadas pela CPU podem ser divididas em duas grandes categorias funcionais:

Função processamento;

Função controle.

Funções da CPU

(51)

Arquitetura e Organização de Computadores 51

A função processamento se encarrega de realizar as atividades relacionadas com a efetiva execução de uma operação, ou seja, processar.

Processar o dado é executar com ele uma ação que produza algum tipo de resultado.

Função de

Processamento

(52)

Arquitetura e Organização de Computadores 52

• Tarefas comuns a esta função são as que realizam:

Operações aritméticas (somar, subtrair, multiplicar, dividir);

Operações lógicas (and, or, xor, etc);

Movimentação de dados (memória - CPU, CPU - memória, registrador - registrador etc);

Desvios (alteração de sequência de execução de instruções);

Operações de entrada ou saída.

Função de

Processamento

(53)

Arquitetura e Organização de Computadores 53

• Fazem parte dessa área funcional os seguintes dispositivos:

Unidade Aritmética e Lógica (ALU);

Acumulador (ACC);

Registradores.

(54)

Arquitetura e Organização de Computadores 54

M P

ULA ACC

Reg Barramento

de endereços Barramento

de dados

(55)

Arquitetura e Organização de Computadores 55

Em 1980, David Patterson e Carlo Séquin começaram a projetar chips para CPU e cunharam o termo RISC para os chips que produziram.

Em 1984, Hennessy projetou e fabricou o MIPS. A partir daí começou a diferenciação e a guerra entre os defensores do CISC e RISC.

RISC x CISC

(56)

Arquitetura e Organização de Computadores 56

CISC (Complex Instruction Set Computer)

Se caracteriza por possuir um conjunto de instruções bastante complexo.

Possui uma quantidade muito maior de instruções.

Possui uma quantidade menor de registradores.

RISC (Reduced Instruction Set Computer)

Se caracteriza por possuir um conjunto de instruções bastante simples.

Possui uma quantidade pequena de instruções.

Possui muitos registradores.

RISC x CISC

(57)

Arquitetura e Organização de Computadores 57

Elementos funcionais de um processador:

Elementos que operam nos valores de dados

São os elementos combinacionais.

Suas saídas dependem apenas da entrada atual.

Dada a mesma entrada, estes elementos sempre produzem uma mesma saída.

Não possuem memória.

Elementos que contêm estados

São os elementos seqüenciais

Possuem um armazenamento interno

Possuem, no mínimo, duas entradas e uma saída.

Valores de entrada: clock e o dado a ser escrito.

Valor de saída: dado a ser lido.

Clock informa quando se deve escrever. Porém, a leitura pode ser feita a qualquer momento.

Convenções Lógicas

de Projetos

(58)

Arquitetura e Organização de Computadores 58

Define quando os sinais podem ser lidos e quando podem ser escritos.

– Importante para estabelecer a sincronização destas operações.

Sem uma metodologia de clocking, ou seja, sem a sincronização das leituras/escritas não teríamos garantia que o sinal lido corresponde ao valor antigo, ao valor recém-escrito ou ainda a uma mistura de ambos.

Metodologia de

Clocking

(59)

Arquitetura e Organização de Computadores 59

Sincronização acionada por transição

– Quaisquer valores armazenados em um elemento seqüencial são atualizados apenas em uma transição de clock (transição de subida ou descida).

Metodologia de

Clocking

(60)

Arquitetura e Organização de Computadores 60

Qualquer ULA é um aglomerado de circuitos lógicos e componentes eletrônicos simples que, integrados, realizam as operações já mencionadas.

Essas operações são sempre realizadas sobre duas palavras da máquina.

Em geral, esse circuito que trabalha com palavras de n bits é construído a partir de n circuitos idênticos, cada qual responsável por uma posição individual de bits.

ULA

(61)

Arquitetura e Organização de Computadores 61

Para que um dado possa ser transferido para a ULA, é necessário que ele permaneça, mesmo que por um breve instante, armazenado em um registrador.

O resultado de uma operação aritmética ou lógica realizada na ULA é armazenado temporariamente, para que possa ser reutilizado (por outra instrução) ou apenas para ser transferido para a memória.

Para atender a estes propósitos, a CPU é fabricada com uma certa quantidade de registradores, destinados ao armazenamento de dados.

O número de registradores e suas funções varia de processador para processador e é um dos maiores problemas no projeto de uma CPU.

Registradores

(62)

Arquitetura e Organização de Computadores 62

Há sistemas nos quais um desses registradores, denominado acumulador (abrevia-se, em inglês, ACC), além de armazenar dados, serve de elemento de ligação da ALU com os outros dispositivos da CPU.

Os registradores da CPU são divididos em 2 tipos:

Registradores visíveis para o usuário

– Permite ao usuário minimizar referências à memória através do uso deles.

Registradores de controle e de estado

– Utilizados pela UC para controlar operações da CPU e programas privilegiados do sistema operacional para controlar a execução de programas.

Registradores

(63)

Arquitetura e Organização de Computadores 63

Registradores visíveis para o usuário Registradores visíveis para o usuário

a. Registradores de propósito geral b. Registradores de dados

c. Registradores de endereço (segmento, apontador de pilha e de índice)

d. Registradores de código de condição (flags)

Registradores

(64)

Arquitetura e Organização de Computadores 64

Registradores de Controle e de Estado Registradores de Controle e de Estado

a. Contador de Programa

– Contém o endereço da instrução a ser buscada.

b. Registrador de Instrução

– Contém a última instrução a ser buscada.

c. Registradores de endereçamento à memória

– Contém o endereço de uma posição da memória.

d. Registradores de armazenamento temporário de dados.

– Contém uma palavra de dados a ser escrita na memória ou a palavra lida mais recentemente.

Registradores

(65)

Arquitetura e Organização de Computadores 65

Atividades:

Busca da instrução a ser executada, armazenando-a em um registrador especialmente projetado para esta finalidade;

Interpretação das ações a serem desencadeadas com a execução da instrução (se é soma, subtração, etc e como realizá-la);

Geração de sinais de controle apropriados para ativação das atividades requeridas para a execução propriamente dita da instrução identificada. Estes sinais são enviados tanto para componentes internos (ULA, por ex.) quanto externos (MEM, E/S).

Função de

Controle

(66)

Arquitetura e Organização de Computadores 66

Em resumo, a área de controle é projetada para entender o que fazer, como fazer e comandar quem vai fazer, no momento adequado.

Os dispositivos básicos que devem fazer parte dessa área funcional são:

Unidade de controle (UC);

Decodificador;

Registrador de instrução (RI) ou IR - "instruction register";

Contador de instrução (CI) ou PC "program counter";

Relógio ou "clock";

Registradores de endereço de memória (REM) e de dados da memória (RDM).

Função de

Controle

(67)

Arquitetura e Organização de Computadores 67

M P

ULA

RDM REM CI

ACC

Reg Barramento

de endereços Barramento

de dados CPU

U C Decodificador

de instruções

Clock RI

Barramento de controle

(68)

Arquitetura e Organização de Computadores 68

(69)

Arquitetura e Organização de Computadores 69

Uma implementação do MIPS simplificada, contendo somente:

Instruções de referência à memória: lw, sw

Instruções aritméticas e lógicas: add, sub, and, or, slt Instruções de fluxo de controle: beq, j

Implementação genérica:

usar o contador de programa (PC) para fornecer o endereço da instrução

Ler a instrução da memória ler registradores

Usar a instrução para decidir exatamente o que fazer

Todas as instruções usam a ALU após a leitura dos registradores Por que? Referência a memória?Aritmética? Fluxo de controle?

Fluxo de Dados

e Controle

(70)

Arquitetura e Organização de Computadores 70 Resumo / Vista Simplificada:

Dois tipos de unidades funcionais:

Elementos que operam sobre dados (combinacional) Elementos que contêm estado (sequencial)

Registers Register # Data Register #

Data memory Address

Data Register #

PC Instruction ALU

Instruction memory Address

Fluxo de Dados

e Controle

(71)

Arquitetura e Organização de Computadores 71 Sem clock vs. com clock

Clocks são usados em lógica síncrona

como um elemento que contem estado pode ser atualizado?

Tempo de ciclo

Borda de subida

Borda de descida

Fluxo de Dados

e Controle

(72)

Arquitetura e Organização de Computadores 72

Inclui as unidades funcionais que necessitamos para as instruções

PC Instruction

memory Instruction address

Instruction

a. Instruction memory b. Program counter

Add Sum

c. Adder

ALU control

RegWrite Registers Write

register

data 1Read

data 2Read Readregister 1

Readregister 2

Write data

resultALU ALU

Data

Data Register

numbers

a. Registers b. ALU

Zero 5

5

5 3

16 32

Sign extend

b. Sign-extension unit MemRead

MemWrite

Data memory Write

data

Readdata

a. Data memory unit Address

Fluxo de Dados

e Controle

(73)

Arquitetura e Organização de Computadores 73

Operando A

Operando B

resultado

Flag de resultado zero

Fluxo de Dados

e Controle

(74)

Arquitetura e Organização de Computadores 74

Set a31

0

Result0 a0

Result1 a1

0

Result2 a2

0

Operation

b31 b0

b1

b2

Result31

Overflow Bnegate

Zero ALU0

Less CarryIn

CarryOut

ALU1 Less CarryIn

CarryOut

ALU2 Less CarryIn

CarryOut

ALU31 Less CarryIn 32

32

32

Seleção

result a

b

ALU

Linhas de controle:

000 = and 001 = or 010 = add 110 = subtract

111 = slt

Fluxo de Dados

e Controle

(75)

Arquitetura e Organização de Computadores 75

endereço de 32 bits

pelo PC

instrução de 32 bits

Fluxo de Dados

e Controle

(76)

Arquitetura e Organização de Computadores 76

Para leitura: deve fornecer

o endereço (Address) e acionar o controle de leitura (MemRead=1)

Para escrita deve fornecer o endereço (Address), o dado a ser escrito no (Writedata) e acionar o controle de escrita

(MemWrite=1)

Fluxo de Dados

e Controle

(77)

Arquitetura e Organização de Computadores 77

endereço da próxima de instrução

endereço da instrução corrente

Quando é sequencial, é o endereço da instrução corrente adicionado de 4 (memória de instruções constituída

de bytes)

Fluxo de Dados

e Controle

(78)

Arquitetura e Organização de Computadores 78 Usar os multiplexadores para juntar os elementos

PC

Instruction memory Readaddress

Instruction

16 32

Add ALUresult

Mu x

Registers

Write register Write data

data 1Read

data 2Read Readregister 1

Readregister 2

Shift left 2 4

Mu x

ALU operation 3

RegWrite

MemRead

MemWrite PCSrc

ALUSrc

MemtoReg resultALU

Zero ALU

memoryData Address

Write data

Readdata M ux

Sign extend Add

Fluxo de Dados

e Controle

(79)

Arquitetura e Organização de Computadores 79

Selecionar as operações para executar (ALU, leitura/escrita, etc.) Controlar o fluxo de dados (entradas para o multiplexador)

A informação vem de 32 bits da instrução Exemplo:

add $8, $17, $18 Formato de Instrução:

000000 10001 10010 01000 00000 100000 op rs rt rd shamt funct

Operação da ALU baseada no tipo de instrução e código da função

Fluxo de Dados

e Controle

(80)

Arquitetura e Organização de Computadores 80

Fluxo de Dados e Controle

J-type (jump) and I-type (immediate) instructions are fully specified by op. R-type (register) instructions include an additional field funct to determine the exact operation. The fields used in these types are:

6 5 5 5 5 6 bits

[ op | rs | rt | rd |shamt| funct] R-type [ op | rs | rt | address/immediate] I-type [ op | target address ] J-type rs, rt, rd: register operands;

Shamt: shift amount;

Address/immediate: operand directly.

For example adding the registers 1 and 2 and placing the result in register 6 is encoded:

[ op | rs | rt | rd |shamt| funct]

0 1 2 6 0 32 decimal 000000 00001 00010 00110 00000 100000 binary

(81)

Arquitetura e Organização de Computadores 81 Dado o tipo de instrução

00 = lw, sw 01 = beq,

10 = aritmética

Código de função para aritmética

Descrição de uma tabela verdade (que pode ser convertido em portas):

ALUOp

Computado do tipo de instrução

ALUOp Funct field Operation ALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0

0 0 X X X X X X 010

0 1 X X X X X X 110

1 0 X X 0 0 0 0 010

1 0 X X 0 0 1 0 110

1 0 X X 0 1 0 0 000

1 0 X X 0 1 0 1 001

1 0 X X 1 0 1 0 111

Controle

(82)

Arquitetura e Organização de Computadores 82 Lógica combinacional simples (tabela verdade)

Operation2

Operation1

Operation0

Operation ALUOp1

F3 F2 F1 F0 F (5– 0)

ALUOp0 ALUOp

ALU control block

R-format Iw sw beq

Op0 Op1 Op2 Op3 Op4 Op5 Inputs

Outputs RegDst ALUSrc MemtoReg RegWrite MemRead MemWrite Branch ALUOp1 ALUOpO

Controle

(83)

Arquitetura e Organização de Computadores 83

Calcular o tempo de ciclo assumindo atrasos desprezíveis exceto:

Memória (2ns), ALU e somadores (2ns), acesso aos registradores (1ns)

MemtoReg

MemRead MemWrite

ALUOp ALUSrc

RegDst PC

Instruction memory Readaddress

Instruction [31– 0]

Instruction [20– 16]

Instruction [25– 21]

Add

Instruction [5– 0]

RegWrite 4

16 32

Instruction [15– 0]

0 Registers

Write register Write data

Write data data 1Read

data 2Read Readregister 1

Readregister 2

Sign extend

resultALU Zero

Data memory Address Read

data M

ux 1 0

Mu x 1

0 Mu x 1

0 Mu x 1 Instruction [15– 11]

controlALU Shift left 2

PCSrc

ALU Add ALU

result

Implementação

de um ciclo

(84)

Arquitetura e Organização de Computadores 84

Uma implementação do MIPS simplificada, contendo somente:

Instruções de referência à memória: lw, sw

Instruções aritméticas e lógicas: add, sub, and, or, slt Instruções de fluxo de controle: beq, j

Implementação genérica:

Usar o contador de programa (PC) para fornecer o endereço da instrução

Permitir a leitura da instrução da memória e dos registradores Definir número e tamanho dos registradores

Criar instruções que se façam necessárias

Usar a instrução para decidir exatamente o que fazer

Implementação e

Funcionamento

(85)

Arquitetura e Organização de Computadores 85

Micro-Arquiteturas

(86)

Arquitetura e Organização de Computadores 86

Uma Microarquitetura é dividida em uma Parte Operativa e uma Parte de Controle

• Parte Operativa (ou Caminho de Dados)

– Constituída de todos os componentes responsáveis pela execução das operações elementares sobre os dados (transformações nos dados)

• Parte de Controle

– Constituída de circuitos sequenciais e/ou memória de programa que gera o controle ciclo-a-ciclo da parte

operativa

Micro-Arquiteturas

(87)

Arquitetura e Organização de Computadores 87

Physics Devices Analog Circuits

Digital Circuits

Logic Micro- architecture Architecture Operating

Systems Application

Software

electrons transistors

diodes amplifiers

filters AND gates NOT gates

adders memories datapaths controllers instructions

registers device drivers

programs

Micro-Arquiteturas

(88)

Arquitetura e Organização de Computadores 88

Micro-Arquitetura

(89)

Arquitetura e Organização de Computadores 89

Parte Operativa

• Uma microarquitetura executa instruções que são armazenadas na memória

• Recupera e armazena dados em memória LEITURA E ESCRITA NA MEMÓRIA

• Necessita de registradores de endereço e dados

• Necessidade de barramentos de endereços e dados

Micro-Arquitetura

(90)

Arquitetura e Organização de Computadores 90

Parte Operativa

Micro-Arquitetura

(91)

Arquitetura e Organização de Computadores 91

Parte Operativa

Instruções de um programas são executados segundo uma ordem precisa

• Uma microarquitetura necessita saber, sempre, qual a próxima instrução a ser executada

APONTADOR DE PROGRAMA

• Necessidade de um registrador apontador de programa (PC)

• Necessidade de realização de operações sobre o conteúdo do PC, para atualização a cada instrução

Micro-Arquitetura

(92)

Arquitetura e Organização de Computadores 92

Parte Operativa

Micro-Arquitetura

(93)

Arquitetura e Organização de Computadores 93

Parte Operativa

A Instrução lida da memória é armazenada para decodificação e uso futuro.

REGISTRADOR DE INSTRUÇÕES

• Necessidade armazenamento dos dados vindos da memória

• Necessidade de um registrador de instrução

Micro-Arquitetura

(94)

Arquitetura e Organização de Computadores 94

Parte Operativa

Micro-Arquitetura

(95)

Arquitetura e Organização de Computadores 95

Parte Operativa

O processo de escrita de dados na memória também utiliza os registradores e barramentos de dados e endereços

CAMINHO PARA A SAÍDA DE DADOS

• Necessidade de recursos específicos para saída de dados.

Micro-Arquitetura

(96)

Arquitetura e Organização de Computadores 96

Parte Operativa

Saída de dados

Micro-Arquitetura

(97)

Arquitetura e Organização de Computadores 97

Parte Operativa

Para realização de instruções aritméticas a existência de registrado internos aceleram a busca de dados

REGISTRADORES DE USO GERAL

• Necessidade de uma banco de registradores de propósito geral

• Necessidade de uma ULA com um conjunto de operadores adequados

Micro-Arquitetura

(98)

Arquitetura e Organização de Computadores 98

Parte Operativa

Micro-Arquitetura

(99)

Arquitetura e Organização de Computadores 99

Parte Operativa

Instruções podem usar um, dois ou três endereços – A = NOT A

– A = A + B – A = B + C

• O uso de mais endereços requer mais bits no formato da instrução REGISTRADOR ACUMULADOR

• Necessidade do uso de um registrador Acumulador (AC)

Micro-Arquitetura

(100)

Arquitetura e Organização de Computadores 100

Parte Operativa

Micro-Arquitetura

(101)

Arquitetura e Organização de Computadores 101

Parte Operativa

A Capacidade de empilhar e desempilhar dados em uma região reservada da memória é um recurso importante em muitas arquitetura

APONTADOR DE PILHA

• Necessidade de um registrador apontador de pilha (PS)

Micro-Arquitetura

(102)

Arquitetura e Organização de Computadores 102

Parte Operativa

Micro-Arquitetura

(103)

Arquitetura e Organização de Computadores 103

Parte Operativa

Micro-Arquitetura

(104)

Arquitetura e Organização de Computadores 104

Parte Operativa

Muitas unidades da parte operativa de um processador necessitam de controle explicito

• Estes controles são gerados pela Parte de controle e enviados Ciclo-a-Ciclo à Parte de Controle

SINAIS DE CONTROLE

Micro-Arquitetura

(105)

Arquitetura e Organização de Computadores 105

Parte Operativa

Micro-Arquitetura

(106)

Arquitetura e Organização de Computadores 106

O projeto do nível de microarquitetura depende:

da arquitetura do conjunto das instruções a serem implementadas

dos objetivos de custo e performance do computador que estiver sendo projetado

A maioria das ISAs modernas, em particular os projetos RISC, tem instruções simples que podem ser executadas em um único ciclo de clock

As ISAs mais complexas, como a do Pentium, precisam de mais ciclos para executar uma única instrução. Neste caso faz-se

necessário metodologias de sequenciamento de instruções mais otimizados para melhorar a performance da máquina em termos de tempo.

Micro-Arquitetura

Controle

(107)

Arquitetura e Organização de Computadores 107

Temporização do caminho de dados

O primeiro ciclo (explicito, do caminho de dados, apresentado na figura), pode ser visto como um conjunto de subciclos implícitos O início do primeiro subciclo é marcado pela transição negativa do clock.

Micro-Arquitetura

Controle

(108)

Arquitetura e Organização de Computadores 108

Temporização do caminho de dados

As atividades, junto com sua duração (entre parênteses), que ocorrem durante os subciclos são:

Os sinais de controle são ativados (dw - leia delta w)

O barramento B é carregado a partir dos registradores (dx) A UAL e o deslocador operam (dy)

O resultado da operação da UAL e do deslocador se propaga através do barramento C em direção aos registradores (dz)

O resultado é armazenado nos registradores na transição positiva do próximo clock

Micro-Arquitetura

Controle

(109)

Arquitetura e Organização de Computadores 109

Temporização do caminho de dados

É de responsabilidade dos engenheiros de projeto assegurar que essa transição positiva ocorra somente após passado o tempo

dw+dx+dy+dz. Caso contrário a carga dos registradores não é realizada

Micro-Arquitetura

Controle

(110)

Arquitetura e Organização de Computadores 110

Microinstruções

Para controlar um caminho de dados, precisamos de um conjunto de sinais de controle que atuam sobre os componentes do nível da lógica digital.

Os valores desses sinais de controle especificam as operações a serem executadas em um ciclo do caminho de dados.

A figura abaixo mostra um possível formato para agrupar os bits de controle da nossa arquitetura em 6 grupos, e 36 sinais, assim

divididos:

Micro-Arquitetura

Controle

(111)

Arquitetura e Organização de Computadores 111

Microinstruções

Micro-Arquitetura

Controle

(112)

Arquitetura e Organização de Computadores 112

Microinstruções

Endereço - contém o endereço da próxima instrução a ser potencialmente ativada

Desvio - determina como a próxima instrução será selecionada UAL - especifica as funções da UAL e do deslocador

Barramento C - seleciona qual ou quais registradores serão carregados com o valor que estiver no barramento C

Memória - especifica as funções da memória (escrita, leitura ou busca)

Barramento B - seleciona a entrada do barramento B. Os 4 bits são suficientes para selecionar um dos 9 registradores que disponibilizará seus dados no barramento B.

Micro-Arquitetura

Controle

(113)

Arquitetura e Organização de Computadores 113

Controle Microprogramado: o Mic-1

Para decidir quais dos sinais de controle devem ser habilitados em cada ciclo faz-se necessário a inclusão de um sequenciador em

nossa arquitetura.

O sequenciador:

é responsável pela execução de todos os passos necessários a execução de 1 única instrução do nível ISA.

produz dois tipos de informações a cada ciclo:

1. O estado de cada sinal de controle do sistema

2. O endereço da microinstrução que será executada em seguida

Micro-Arquitetura

Controle

(114)

Arquitetura e Organização de Computadores 114

A figura mostra o diagrama de blocos detalhado da microarquitetura Mic.

O diagrama de blocos tem 2 partes: O caminho de dados, à esquerda e a seção de controle, à direita.

Micro-Arquitetura

Controle

(115)

Arquitetura e Organização de Computadores 115

A memória de controle:

É o ítem maior e mais importante da parte de controle da máquina Não deve ser confundida com a memória principal (RAM), acessível via MBR e MDR

Não precisa de sinais de leitura/escrita pois é uma memória ROM (só de leitura)

Guarda microinstruções, ao invés de instruções do nível ISA

Tem 512 palavras, cada palavra contendo uma instrução de 36 bits.

As microinstruções não são executadas sequencialmente, como as instruções da memória principal. Cada microinstrução especifica

explicitamente sua sucessora.

Micro-Arquitetura

Controle

(116)

Arquitetura e Organização de Computadores 116

A memória de controle:

O endereço da próxima microinstrução é guardado no registrador MPC (Microprogram Counter)

O registrador de dados da memória de controle é

chamado MIR (MicroInstruction Register). Sua função é armazenar a microinstrução corrente cujos bits alimentam os sinais de controle que operam o caminho de dados.

Micro-Arquitetura

Controle

(117)

Arquitetura e Organização de Computadores 117

Micro-Arquitetura

Controle

(118)

Arquitetura e Organização de Computadores 118

ALUSrcA PCSrc

Branch ALUSrcB1:0 Opcode5:0

Control Unit

ALUControl2:0 Funct5:0

Main Controller

(FSM)

ALUOp1:0

ALU Decoder

RegWrite PCWrite

IorD

MemWrite IRWrite

RegDst MemtoReg

Register Enables Multiplexer Selects

MIPS Multiciclo

Unidade de Controle

Referências

Documentos relacionados

A estabilidade do corpo docente permanente permite atribuir o conceito muito bom, segundo os parâmetros da área, para o item 2.2 (pelo menos 75% dos docentes permanentes foram

Assim com Miles (1980), Hall também convenciona o ambiente em: a) ambiente geral: que afeta todas as organizações e é igual para todas (condições tecnológicas,

Here, we aim to understand how expression of RA degradation enzymes (Cyp26) can be correlated with RA distribution and functions during amphioxus (B. lanceolatum)

No código abaixo, foi atribuída a string “power” à variável do tipo string my_probe, que será usada como sonda para busca na string atribuída à variável my_string.. O

Para analisar as Componentes de Gestão foram utilizadas questões referentes à forma como o visitante considera as condições da ilha no momento da realização do

I interpret the difference in the estimates obtained when using ordinary least squares (in column (i)) and instrumental variables (in column (ii)) as indicative

Segundo Cheng (2007) a casa da qualidade (planejamento do produto) é utilizada para traduzir a qualidade demandada pelos clientes em requisitos técnicos do produto

Diante dos discursos levantados por tais instituições, sejam elas, os Museus, os Institutos, ou as Faculdades, a obra de Schwarz 1993, fornece amplo conhecimento sobre a formação