420 likes | 561 Views
CPU: Estrutura e Funcionalidade. Roteiro da Aula. Ciclo de Instrução Projeto de uma CPU simples: conceitos Componentes básicos Leitura da instrução Operação entre registradores Acesso à memória Implementação Mono-ciclo Leitura da Instrução Operações Aritméticas
E N D
CPU: Estrutura e Funcionalidade Infra-estrutura de Hardware
Roteiro da Aula • Ciclo de Instrução • Projeto de uma CPU simples: conceitos • Componentes básicos • Leitura da instrução • Operação entre registradores • Acesso à memória • Implementação Mono-ciclo • Leitura da Instrução • Operações Aritméticas • Leitura + Operação entre registradores • Acesso à Memória • Desvio Condicional • Visualizando a execução da instrução • Análise de Desempenho Infra-estrutura de Hardware
Como um documento é processado? 1- Busca documento 2 - Identifica tipo de transação 3 - Verifica se saldo é positivo 4 - Efetiva transação e atualiza saldo Infra-estrutura de Hardware
Memória Programas + Dados Vídeo Teclado Componentes de um computador CPU Execução das instruções de um programa E/S Buffers Infra-estrutura de Hardware
Reg. IR PC Reg. FLAGS Gerais ALU Unidade Central de Processamento • Unidade de controle Dados Endereço MAR MBR Controle • Unidade de processamento Infra-estrutura de Hardware
Ciclo de Instrução Busca instrução Incrementa PC Decodifica instrução Busca operando Executa instrução Armazena resultado Infra-estrutura de Hardware
Projeto de uma Arquitetura • Conjunto de registradores • Tipos de Dados • Formato e Repertório de instruções Infra-estrutura de Hardware
Instruções • Tipos de instruções • Processamento: • aritméticas e lógicas • Armazenamento • E/S • Controle: • teste e desvio 6 5 5 5 5 6 F1 Opcode rt rd rs shamt funct F2 Opcode rs Endereço rt 6 5 5 16 Infra-estrutura de Hardware
Aritm Opcode rt rd rs funct shamt lw/sw Opcode rs Endereço rt beq Opcode rs Endereço rt Projeto: uma CPU simples... Infra-estrutura de Hardware
MIPS - Visão Abstrata D a t a R e g i s t e r # A d d r e s s P C I n s t r u c t i o n R e g i s t e r s A L U A d d r e s s R e g i s t e r # I n s t r u c t i o n D a t a m e m o r y m e m o r y R e g i s t e r # D a t a Infra-estrutura de Hardware
S t a t e S t a t e e l e m e n t C o m b i n a t i o n a l l o g i c e l e m e n t 1 2 C l o c k c y c l e Relógio - Clock Infra-estrutura de Hardware
Início Busca a próxima instrução Executa a instrução Término Mono-ciclo C l o c k c y c l e Busca - Executa Infra-estrutura de Hardware
80000000 02480020 Componentes Básicos: Busca de Instrução Contador Programa I n s t r u c t i o n a d d r e s s 00000004 P C 80000004 I n s t r u c t i o n A d d S u m I n s t r u c t i o n m e m o r y 80000000 Adicionador Memória (Instrução) Infra-estrutura de Hardware
A d d 4 R e a d P C a d d r e s s I n s t r u c t i o n I n s t r u c t i o n m e m o r y Busca de Instrução 80000004 80000000 80000000 02480020 Infra-estrutura de Hardware
Componentes Básicos: Operações Aritméticas 00010 5 R e a d 00000004 r e g i s t e r 1 R e a d 00011 d a t a 1 5 R e g i s t e r R e a d r e g i s t e r 2 n u m b e r s 00000004 R e g i s t e r s D a t a 5 00000002 W r i t e r e g i s t e r R e a d d a t a 2 00000002 W r i t e D a t a d a t a R e g W r i t e Banco de registradores Leitura Infra-estrutura de Hardware
Componentes Básicos: Operações Aritméticas 5 R e a d r e g i s t e r 1 R e a d d a t a 1 5 00000006 R e g i s t e r R e a d r e g i s t e r 2 n u m b e r s 00000004 R e g i s t e r s D a t a 00001 5 00000002 W r i t e r e g i s t e r R e a d d a t a 2 W r i t e D a t a d a t a 00000006 R e g W r i t e 1 Banco de registradores Escrita Infra-estrutura de Hardware
A L U c o n t r o l 3 Z e r o A L U A L U r e s u l t b . A L U Componentes Básicos: Operações Aritméticas +: 001 00000004 00000006 00000002 ALU Infra-estrutura de Hardware
Instruções Aritméticas/Lógicas 001 (+) A L U o p e r a t i o n 00010 3 R e a d r e g i s t e r 1 00000004 R e a d 00000006 d a t a 1 00011 R e a d 0000000001000011000010000100000 Z e r o 00000004 r e g i s t e r 2 I n s t r u c t i o n R e g i s t e r s A L U 00000002 A L U 00000006 W r i t e r e s u l t r e g i s t e r 00001 000000002 R e a d d a t a 2 W r i t e d a t a 1 R e g W r i t e Infra-estrutura de Hardware
80000004 80000000 A L U o p e r a t i o n 3 R e a d r e g i s t e r 1 R e a d d a t a 1 R e a d Z e r o r e g i s t e r 2 I n s t r u c t i o n R e g i s t e r s A L U A L U W r i t e r e s u l t 02480020 r e g i s t e r R e a d d a t a 2 W r i t e d a t a R e g W r i t e Busca e Execução de Instruções Aritméticas/Lógicas add$1, $2, $3 A d d + 4 00010 00000004 R e a d 00000006 P C a d d r e s s 00011 00000004 00000006 00000002 I n s t r u c t i o n 00001 I n s t r u c t i o n m e m o r y 000000002 1 Infra-estrutura de Hardware
8000000C Componentes Básicos: Acesso à memória 0 M e m W r i t e 00000005 R e a d A d d r e s s d a t a D a t a W r i t e m e m o r y 00000005 d a t a 1 M e m R e a d Memória de Dados - Leitura Infra-estrutura de Hardware
1 80000010 00000005 0 Componentes Básicos: Acesso à memória M e m W r i t e R e a d A d d r e s s d a t a D a t a W r i t e m e m o r y d a t a 00000007 00000007 M e m R e a d Memória de Dados - Escrita Infra-estrutura de Hardware
Componentes Básicos: Acesso à memória 1 6 3 2 FFFD S i g n FFFFFFFD e x t e n d 00000002 0002 Extensão de Sinal Infra-estrutura de Hardware
0 R e a d r e g i s t e r 1 R e a d d a t a 1 R e a d Z e r o r e g i s t e r 2 I n s t r u c t i o n A L U R e g i s t e r s A L U R e a d W r i t e r e s u l t A d d r e s s d a t a r e g i s t e r R e a d d a t a 2 W r i t e D a t a d a t a m e m o r y W r i t e d a t a 1 1 6 3 2 S i g n e x t e n d Instruções Load/Store lw$8, desl($9) + 01001 A L U o p e r a t i o n 3 M e m W r i t e 80000008 01000 00000002 800004B8 00000002 80000008 8D28 04B0 1 R e g W r i t e 00000002 04B0 000004B0 M e m R e a d Infra-estrutura de Hardware
1 R e a d r e g i s t e r 1 R e a d d a t a 1 R e a d Z e r o r e g i s t e r 2 I n s t r u c t i o n A L U R e g i s t e r s A L U R e a d W r i t e r e s u l t A d d r e s s d a t a r e g i s t e r R e a d d a t a 2 W r i t e D a t a d a t a m e m o r y W r i t e d a t a 0 1 6 3 2 S i g n e x t e n d Instruções Load/Store sw $t0, desl($t1) + 01001 A L U o p e r a t i o n 3 M e m W r i t e 80000008 01000 00000005 80000008 800004B8 AB28 04B0 00000005 R e g W r i t e 00000005 04B0 000004B0 M e m R e a d Infra-estrutura de Hardware
A L U o p e r a t i o n 3 R e a d r e g i s t e r 1 M e m W r i t e R e a d d a t a 1 M e m t o R e g R e a d A L U S r c Z e r o r e g i s t e r 2 I n s t r u c t i o n R e g i s t e r s A L U R e a d A L U R e a d W r i t e d a t a 2 A d d r e s s r e s u l t d a t a r e g i s t e r M M u u W r i t e x D a t a x d a t a m e m o r y W r i t e R e g W r i t e d a t a 1 6 3 2 S i g n M e m R e a d e x t e n d 0 1 02480020 Instruções Aritméticas e de Load/Store add$1, $2, $3 + 00010 00000004 00011 00000006 00000004 000000002 00000006 00000002 00001 00000006 1 00000006 Infra-estrutura de Hardware
A L U o p e r a t i o n 3 R e a d r e g i s t e r 1 M e m W r i t e R e a d d a t a 1 M e m t o R e g R e a d A L U S r c Z e r o r e g i s t e r 2 I n s t r u c t i o n R e g i s t e r s A L U R e a d A L U R e a d W r i t e d a t a 2 A d d r e s s r e s u l t d a t a r e g i s t e r M M u u W r i t e x D a t a x d a t a m e m o r y W r i t e R e g W r i t e d a t a 1 6 3 2 0 S i g n M e m R e a d e x t e n d 1 0 1 Instruções Aritméticas e de Load/Store lw$8, desl($9) 01001 80000008 01000 00000006 800004B8 00000004 00000005 8D28 04B0 80000008 00000005 1 00000005 04B0 000004B0 00000005 Infra-estrutura de Hardware
A L U o p e r a t i o n 3 R e a d r e g i s t e r 1 M e m W r i t e R e a d d a t a 1 M e m t o R e g R e a d A L U S r c Z e r o r e g i s t e r 2 I n s t r u c t i o n R e g i s t e r s A L U R e a d A L U R e a d W r i t e d a t a 2 A d d r e s s r e s u l t d a t a r e g i s t e r M M u u W r i t e x D a t a x d a t a m e m o r y W r i t e R e g W r i t e d a t a 1 6 3 2 S i g n M e m R e a d e x t e n d Instruções Aritméticas e de Load/Store Infra-estrutura de Hardware
P C + 4 f r o m i n s t r u c t i o n d a t a p a t h A d d S u m B r a n c h t a r g e t S h i f t l e f t 2 R e a d I n s t r u c t i o n R e a d d a t a 1 T o b r a n c h R e g i s t e r s A L U Z e r o c o n t r o l l o g i c W r i t e r e g i s t e r R e a d d a t a 2 1 6 3 2 S i g n e x t e n d Instrução de Branch on equal Beq $1,$2, end. 800012C4 80000004 000012C0 00001 A L U o p e r a t i o n 3 comp r e g i s t e r 1 00000006 00000006 R e a d 00000006 r e g i s t e r 2 00010 00000006 W r i t e 00000005 d a t a R e g W r i t e Endereçamento relativo 04b0 000004b0 Infra-estrutura de Hardware
M A d d u x 0 4 R e g W r i t e I n s t r u c t i o n [ 2 5 – 2 1 ] R e a d r e g i s t e r 1 R e a d M e m W r i t e R e a d P C d a t a 1 I n s t r u c t i o n [ 2 0 – 1 6 ] a d d r e s s R e a d M e m t o R e g A L U S r c r e g i s t e r 2 Z e r o I n s t r u c t i o n R e a d A L U [ 3 1 – 0 ] R e a d W r i t e d a t a 2 1 A d d r e s s r e s u l t r e g i s t e r d a t a M I n s t r u c t i o n W r i t e u m e m o r y R e g i s t e r s x d a t a D a t a 0 W r i t e m e m o r y R e g D s t d a t a 1 6 3 2 S i g n I n s t r u c t i o n [ 1 5 – 0 ] e x t e n d M e m R e a d I n s t r u c t i o n [ 5 – 0 ] A L U O p Unidade de Processamento P C S r c 1 A L U A d d r e s u l t S h i f t l e f t 2 1 A L U 1 M M u u I n s t r u c t i o n [ 1 5 – 1 1 ] x x 0 0 A L U c o n t r o l Infra-estrutura de Hardware
M A d d u x 0 4 R e g W r i t e I n s t r u c t i o n [ 2 5 – 2 1 ] R e a d r e g i s t e r 1 R e a d M e m W r i t e R e a d P C d a t a 1 I n s t r u c t i o n [ 2 0 – 1 6 ] a d d r e s s R e a d M e m t o R e g A L U S r c r e g i s t e r 2 Z e r o I n s t r u c t i o n R e a d 31-26 25-21 20-16 15-11 10-6 5-0 A L U [ 3 1 – 0 ] R e a d W r i t e d a t a 2 1 A d d r e s s r e s u l t r e g i s t e r d a t a M I n s t r u c t i o n W r i t e u m e m o r y R e g i s t e r s x d a t a D a t a 0 Aritm W r i t e Opcode rt rd rs funct m e m o r y shamt R e g D s t 15-0 31-26 25-21 20-16 d a t a 1 6 3 2 S i g n I n s t r u c t i o n [ 1 5 – 0 ] e x t e n d M e m R e a d lw/sw 15-0 20-16 I n s t r u c t i o n [ 5 – 0 ] 31-26 25-21 Opcode rs Endereço rt A L U O p beq Opcode rs Endereço rt Unidade de Processamento P C S r c 1 A L U A d d r e s u l t S h i f t l e f t 2 1 A L U 1 M M u u I n s t r u c t i o n [ 1 5 – 1 1 ] x x 0 0 A L U c o n t r o l Infra-estrutura de Hardware
0 M u x A L U A d d 1 r e s u l t A d d S h i f t P C S r c l e f t 2 R e g D s t 4 B r a n c h M e m R e a d M e m t o R e g I n s t r u c t i o n [ 3 1 2 6 ] C o n t r o l A L U O p M e m W r i t e A L U S r c R e g W r i t e I n s t r u c t i o n [ 2 5 2 1 ] R e a d R e a d r e g i s t e r 1 P C R e a d a d d r e s s d a t a 1 I n s t r u c t i o n [ 2 0 1 6 ] R e a d Z e r o r e g i s t e r 2 I n s t r u c t i o n 0 R e g i s t e r s A L U R e a d A L U [ 3 1 – 0 ] 0 R e a d W r i t e A d d r e s s M d a t a 2 r e s u l t 1 d a t a I n s t r u c t i o n r e g i s t e r M u M u m e m o r y x u I n s t r u c t i o n [ 1 5 1 1 ] W r i t e x D a t a 1 x d a t a 1 m e m o r y 0 W r i t e d a t a 1 6 3 2 I n s t r u c t i o n [ 1 5 0 ] S i g n e x t e n d A L U c o n t r o l I n s t r u c t i o n [ 5 0 ] Unidade de Controle Infra-estrutura de Hardware
0 M u x A L U A d d 1 r e s u l t R e g D s t 4 h I n s t r u c t i o n [ 3 1 2 6 ] C o n t r o l A L U S r c R e a d r e g i s t e r 1 R e a d d a t a 1 R e 0 R e g i s t e r s R e a d 0 W r i t e M d a t a 2 r e g i s t e r u x W r i t e 1 d a t a 0 1 6 3 2 I n s t r u c t i o n [ 1 5 0 ] Busca de instrução A d d S h i f t P C S r c l e f t 2 B r a n c M e m R e a d M e m t o R e g A L U O p M e m W r i t e R e g W r i t e I n s t r u c t i o n [ 2 5 2 1 ] R e a d P C a d d r e s s I n s t r u c t i o n [ 2 0 1 6 ] a d Z e r o r e g i s t e r 2 I n s t r u c t i o n A L U A L U [ 3 1 – 0 ] R e a d A d d r e s s r e s u l t 1 d a t a I n s t r u c t i o n M M u m e m o r y u I n s t r u c t i o n [ 1 5 1 1 ] x D a t a x 1 m e m o r y W r i t e d a t a S i g n e x t e n d A L U c o n t r o l I n s t r u c t i o n [ 5 0 ] Infra-estrutura de Hardware
Leitura de registradores 0 M u x A L U A d d 1 r e s u l t A d d S h i f t P C S r c l e f t 2 R e g D s t 4 B r a n c h M e m R e a d M e m t o R e g I n s t r u c t i o n [ 3 1 2 6 ] C o n t r o l A L U O p M e m W r i t e A L U S r c R e g W r i t e I n s t r u c t i o n [ 2 5 2 1 ] R e a d R e a d r e g i s t e r 1 P C R e a d a d d r e s s d a t a 1 I n s t r u c t i o n [ 2 0 1 6 ] R e a d Z e r o r e g i s t e r 2 I n s t r u c t i o n 0 R e g i s t e r s A L U R e a d A L U [ 3 1 – 0 ] 0 R e a d W r i t e A d d r e s s M d a t a 2 r e s u l t 1 d a t a I n s t r u c t i o n r e g i s t e r M u M u m e m o r y x u I n s t r u c t i o n [ 1 5 1 1 ] W r i t e x D a t a 1 x d a t a 1 m e m o r y 0 W r i t e d a t a 1 6 3 2 I n s t r u c t i o n [ 1 5 0 ] S i g n e x t e n d A L U c o n t r o l I n s t r u c t i o n [ 5 0 ] Infra-estrutura de Hardware
Instr. Aritmética: Operação com ALU 0 M u x A L U A d d 1 r e s u l t A d d S h i f t P C S r c l e f t 2 R e g D s t 4 B r a n c h M e m R e a d M e m t o R e g I n s t r u c t i o n [ 3 1 2 6 ] C o n t r o l A L U O p M e m W r i t e A L U S r c R e g W r i t e I n s t r u c t i o n [ 2 5 2 1 ] R e a d R e a d r e g i s t e r 1 P C R e a d a d d r e s s d a t a 1 I n s t r u c t i o n [ 2 0 1 6 ] R e a d Z e r o r e g i s t e r 2 I n s t r u c t i o n 0 R e g i s t e r s A L U R e a d A L U [ 3 1 – 0 ] 0 R e a d W r i t e A d d r e s s M d a t a 2 r e s u l t 1 d a t a I n s t r u c t i o n r e g i s t e r M u M u m e m o r y x u I n s t r u c t i o n [ 1 5 1 1 ] W r i t e x D a t a 1 x d a t a 1 m e m o r y 0 W r i t e d a t a 1 6 3 2 I n s t r u c t i o n [ 1 5 0 ] S i g n e x t e n d A L U c o n t r o l I n s t r u c t i o n [ 5 0 ] Infra-estrutura de Hardware
Instr. Aritmética: Escrita Reg. 0 M u x A L U A d d 1 r e s u l t A d d S h i f t P C S r c l e f t 2 R e g D s t 4 B r a n c h M e m R e a d M e m t o R e g I n s t r u c t i o n [ 3 1 2 6 ] C o n t r o l A L U O p M e m W r i t e A L U S r c R e g W r i t e I n s t r u c t i o n [ 2 5 2 1 ] R e a d R e a d r e g i s t e r 1 P C R e a d a d d r e s s d a t a 1 I n s t r u c t i o n [ 2 0 1 6 ] R e a d Z e r o r e g i s t e r 2 I n s t r u c t i o n 0 R e g i s t e r s A L U R e a d A L U [ 3 1 – 0 ] 0 R e a d W r i t e A d d r e s s M d a t a 2 r e s u l t 1 d a t a I n s t r u c t i o n r e g i s t e r M u M u m e m o r y x u I n s t r u c t i o n [ 1 5 1 1 ] W r i t e x D a t a 1 x d a t a 1 m e m o r y 0 W r i t e d a t a 1 6 3 2 I n s t r u c t i o n [ 1 5 0 ] S i g n e x t e n d A L U c o n t r o l I n s t r u c t i o n [ 5 0 ] Infra-estrutura de Hardware
Lw/Sw: Operação com ALU (cálculo do endereço) 0 M u x A L U A d d 1 r e s u l t A d d S h i f t P C S r c l e f t 2 R e g D s t 4 B r a n c h M e m R e a d M e m t o R e g I n s t r u c t i o n [ 3 1 2 6 ] C o n t r o l A L U O p M e m W r i t e A L U S r c R e g W r i t e I n s t r u c t i o n [ 2 5 2 1 ] R e a d R e a d r e g i s t e r 1 P C R e a d a d d r e s s d a t a 1 I n s t r u c t i o n [ 2 0 1 6 ] R e a d Z e r o r e g i s t e r 2 I n s t r u c t i o n 0 R e g i s t e r s A L U R e a d A L U [ 3 1 – 0 ] 0 R e a d W r i t e A d d r e s s M d a t a 2 r e s u l t 1 d a t a I n s t r u c t i o n r e g i s t e r M u M u m e m o r y x u I n s t r u c t i o n [ 1 5 1 1 ] W r i t e x D a t a 1 x d a t a 1 m e m o r y 0 W r i t e d a t a 1 6 3 2 I n s t r u c t i o n [ 1 5 0 ] S i g n e x t e n d A L U c o n t r o l I n s t r u c t i o n [ 5 0 ] Infra-estrutura de Hardware
Lw: Leitura de Memória 0 M u x A L U A d d 1 r e s u l t A d d S h i f t P C S r c l e f t 2 R e g D s t 4 B r a n c h M e m R e a d M e m t o R e g I n s t r u c t i o n [ 3 1 2 6 ] C o n t r o l A L U O p M e m W r i t e A L U S r c R e g W r i t e I n s t r u c t i o n [ 2 5 2 1 ] R e a d R e a d r e g i s t e r 1 P C R e a d a d d r e s s d a t a 1 I n s t r u c t i o n [ 2 0 1 6 ] R e a d Z e r o r e g i s t e r 2 I n s t r u c t i o n 0 R e g i s t e r s A L U R e a d A L U [ 3 1 – 0 ] 0 R e a d W r i t e A d d r e s s M d a t a 2 r e s u l t 1 d a t a I n s t r u c t i o n r e g i s t e r M u M u m e m o r y x u I n s t r u c t i o n [ 1 5 1 1 ] W r i t e x D a t a 1 x d a t a 1 m e m o r y 0 W r i t e d a t a 1 6 3 2 I n s t r u c t i o n [ 1 5 0 ] S i g n e x t e n d A L U c o n t r o l I n s t r u c t i o n [ 5 0 ] Infra-estrutura de Hardware
Lw: Escrita em Registrador 0 M u x A L U A d d 1 r e s u l t A d d S h i f t P C S r c l e f t 2 R e g D s t 4 B r a n c h M e m R e a d M e m t o R e g I n s t r u c t i o n [ 3 1 2 6 ] C o n t r o l A L U O p M e m W r i t e A L U S r c R e g W r i t e I n s t r u c t i o n [ 2 5 2 1 ] R e a d R e a d r e g i s t e r 1 P C R e a d a d d r e s s d a t a 1 I n s t r u c t i o n [ 2 0 1 6 ] R e a d Z e r o r e g i s t e r 2 I n s t r u c t i o n 0 R e g i s t e r s A L U R e a d A L U [ 3 1 – 0 ] 0 R e a d W r i t e A d d r e s s M d a t a 2 r e s u l t 1 d a t a I n s t r u c t i o n r e g i s t e r M u M u m e m o r y x u I n s t r u c t i o n [ 1 5 1 1 ] W r i t e x D a t a 1 x d a t a 1 m e m o r y 0 W r i t e d a t a 1 6 3 2 I n s t r u c t i o n [ 1 5 0 ] S i g n e x t e n d A L U c o n t r o l I n s t r u c t i o n [ 5 0 ] Infra-estrutura de Hardware
Sw: Escrita de Memória 0 M u x A L U A d d 1 r e s u l t A d d S h i f t P C S r c l e f t 2 R e g D s t 4 B r a n c h M e m R e a d M e m t o R e g I n s t r u c t i o n [ 3 1 2 6 ] C o n t r o l A L U O p M e m W r i t e A L U S r c R e g W r i t e I n s t r u c t i o n [ 2 5 2 1 ] R e a d R e a d r e g i s t e r 1 P C R e a d a d d r e s s d a t a 1 I n s t r u c t i o n [ 2 0 1 6 ] R e a d Z e r o r e g i s t e r 2 I n s t r u c t i o n 0 R e g i s t e r s A L U R e a d A L U [ 3 1 – 0 ] 0 R e a d W r i t e A d d r e s s M d a t a 2 r e s u l t 1 d a t a I n s t r u c t i o n r e g i s t e r M u M u m e m o r y x u I n s t r u c t i o n [ 1 5 1 1 ] W r i t e x D a t a 1 x d a t a 1 m e m o r y 0 W r i t e d a t a 1 6 3 2 I n s t r u c t i o n [ 1 5 0 ] S i g n e x t e n d A L U c o n t r o l I n s t r u c t i o n [ 5 0 ] Infra-estrutura de Hardware
Beq: Operação com ALU (comparação) e cálculo de endereço de desvio 0 M u x A L U A d d 1 r e s u l t A d d S h i f t P C S r c l e f t 2 R e g D s t 4 B r a n c h M e m R e a d M e m t o R e g I n s t r u c t i o n [ 3 1 2 6 ] C o n t r o l A L U O p M e m W r i t e A L U S r c R e g W r i t e I n s t r u c t i o n [ 2 5 2 1 ] R e a d R e a d r e g i s t e r 1 P C R e a d a d d r e s s d a t a 1 I n s t r u c t i o n [ 2 0 1 6 ] R e a d Z e r o r e g i s t e r 2 I n s t r u c t i o n 0 R e g i s t e r s A L U R e a d A L U [ 3 1 – 0 ] 0 R e a d W r i t e A d d r e s s M d a t a 2 r e s u l t 1 d a t a I n s t r u c t i o n r e g i s t e r M u M u m e m o r y x u I n s t r u c t i o n [ 1 5 1 1 ] W r i t e x D a t a 1 x d a t a 1 m e m o r y 0 W r i t e d a t a 1 6 3 2 I n s t r u c t i o n [ 1 5 0 ] S i g n e x t e n d A L U c o n t r o l I n s t r u c t i o n [ 5 0 ] Infra-estrutura de Hardware
Análise de Desempenho • Mono-ciclo: • Período do relógio definido em função da duração da instrução mais lenta • 8ns (5ns) • Implementação pouco eficiente • Como melhorar o desempenho na execução de várias instruções? • Multi-ciclo: cada estágio é executado em um ciclo do relógio. • Começar uma instrução ANTES da última instrução iniciada terminar. Infra-estrutura de Hardware