Arquitectura do Conjunto de Instruções - Autenticação · PDF...

41
Arquitectura de Computadores Arquitectura do Conjunto de Instruções Nuno Cavaco Gomes Horta Universidade Técnica de Lisboa / Instituto Superior Técnico

Transcript of Arquitectura do Conjunto de Instruções - Autenticação · PDF...

Page 1: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

Arquitectura de Computadores

Arquitectura do Conjunto de Instruções

Nuno Cavaco Gomes Horta

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

Page 2: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

2

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Sumário

• Introdução• 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

Page 3: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

3

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Arquitectura Genérica de um Computador

Page 4: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

4

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Conceitos/Definições das Arquitecturas de Computadores

Linguagem Máquina: Linguagem binária utilizada na definição e armazenamento de instruções em memória.

Linguagem Assembly: Linguagem simbólica, utilizada para efeito de programação, que utiliza nomes em vez dos códigos de operação, endereços e operandos binários.

Formato das Instruções: O conjunto de bits que compõem a instrução organizam-se em grupos ou campos designados por (podem surgir outras tipo de campos não especificados nesta fase):opcode - código da operação a ser executada;address - endereço para selecção de uma posição de memória ou registo do processador;mode - modo como o campo de endereço deve ser interpretado.

Page 5: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

5

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Conceitos/Definições das Arquitecturas de Computadores

Ciclo Básico de Operação de um Computador: A U. de Controlo é projectada para executar cada instrução de um programa seguindo os seguintes passos:1. Aquisição de instrução da memória para um registo de controlo.2. Descodificação de instrução3. Localização dos operandos utilizados pela instrução.4. Aquisição de operando da memória (caso seja necessário)5. Execução da operação6. Armazenamento do resultado e regresso ao passo 1.

Conjunto de Registos: Registos da CPU acessíveis ao programador, normalmente descritos no manual de programação Assembly, neste caso:– Registos de uso geral (R0 a R7)– Contador do Programa (PC – Program Counter)– Registo de Estado (PSR – Processor Status Register) – Apontador para a Pilha (SP – Stack Pointer)

Page 6: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

6

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Conceitos/Definições das Arquitecturas de Computadores

Endereçamento de Operandos: O endereçamento explícito de operandos pode ser através da especificação do endereço de memória ou do endereço do registo do processador, contudo, o endereçamento de um operando pode também ser feito de forma implícita através do código da operação.

Definição da Arquitectura do Conjunto de Instruções: O número de operandos de endereçamento explícito, numa instrução de manipulação de dados, e destes o número de operandos que podem ser directamente endereçados em memória são factores fundamentais na definição de uma Arquitectura para o Conjunto de Instruções e, naturalmente, na dimensão das instruções.

Page 7: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

7

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Endereçamento de Operandos

A influência do número de operandos no desenvolvimento de programasserá ilustrada através do cálculo da seguinte expressão aritmética:

X=(A+B)(C+D)

Instruções com 3 Operandos, de Endereçamento Explícito:(a) Armazenamento temporário em memória

(A,B,C,D,X,T1,T2 são Endereços de memória)

ADD T1,A,B M[T1]�M[A]+M[B]

ADD T2,C,D M[T2]�M[C]+M[D]

MUL X,T1,T2 M[X]�M[T1]xM[T2]

(b) Armazenamento temporário em registoADD R1,A,B R1�M[A]+M[B]

ADD R2,C,D R2�M[C]+M[D]

MUL X,R1,R2 M[X]�R1xR2

180

15

12

A

B

C

D

X

T1

T2

12

3

4

8

MEM.

Page 8: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

8

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Endereçamento de Operandos (cont.)

X=(A+B)(C+D)

Instruções com 2 Operandos:Cada campo de endereço permite especificar um registo ou um endereço de memória. O registo R1 pode substituir T1 (endereço de memória) no armazenamento temporário.

MOVE T1,A M[T1]�M[A]

ADD T1,B M[T1]�M[T1]+M[B]

MOVE X,C M[X]�M[C]

ADD X,D M[X]�M[X]+M[D]

MUL X,T1 M[X]�M[X]x M[T1] 180

15

12

A

B

C

D

X

T1

T2

12

3

4

8

MEM.

Page 9: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

9

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Endereçamento de Operandos (cont.)

X=(A+B)(C+D)

Instruções com 1 Operando:No caso das arquitecturas com instruções de apenas um operando (explícito) é utilizado um registo - acumulador - de forma implícita para obter um dos operandos e para localizar o resultado da operação.

LD A ACC�M[A]

ADD B ACC�ACC+M[B]

ST X M[X]�ACC

LD C ACC�M[C]

ADD D ACC�ACC+M[D]

MUL X ACC�ACC x M[X]

ST X M[X]�ACC

180

15

12

A

B

C

D

X

T1

T2

12

3

4

8

MEM.

ACC

Page 10: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

10

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Endereçamento de Operandos (cont.)

X=(A+B)(C+D)

Instruções sem Operandos:No caso das arquitecturas com instruções sem operandos (explícitos), todos os operandos terão de surgir de forma implícita. A forma convencional de solucionar este problema é recorrendo a um STACK (pilha), estrutura de memória do tipo LIFO para armazenamento de dados dinâmicos. (TOS –Top of Stack)

PUSH A TOS�M[A]

PUSH B TOS�M[B]

ADD TOS�TOS+TOS-1

PUSH C TOS�M[C]

PUSH D TOS�M[D]

ADD TOS�TOS+TOS-1

MUL TOS�TOSxTOS-1

POP X M[X]�TOS

[A]

STACK

[B]

[A]+[B]

STACK

[A]+[B]

STACK

[C]

[D]

[A]+[B]

STACK

[C]+[D]

(...) x (...)

STACK

Page 11: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

11

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Arquitecturas de Endereçamento

Classificação:1. Memory-Memory: O endereçamento dos operandos é na totalidade

realizado sobre a memória.2. Register-Register ou Load/Store: O endereçamento dos operandos faz-se

com recusro a registos. O acesso à memória é restrito às instruções do tipo LD (load) e ST (store).

Nota: No caso de ser necessária uma palavra de memória adicional para especificar o endereço de cada operando, o número de acessos à memória no primeiro caso é de 21, enquanto no segundo é de 18.Justifique!

MEMORY-MEMORY

ADD T1,A,B M[T1]�M[A]+M[B]

ADD T2,C,D M[T2]�M[C]+M[D]

MUL X,T1,T2 M[X]�M[T1]xM[T2]

REGISTER-REGISTER

LD R1,A R1�M[A]

LD R2,B R2�M[B]

ADD R3,R1,R2 R3�R1+R2

LD R1,C R1�M[C]

LD R2,D R2�M[D]

ADD R1,R1,R2 R1�R1+R2

MUL R1,R1,R3 R1�R1xR3

ST X,R1 M[X]�R1

A solução Memory-Memory conduz a uma maior complexidade das estruturas de controlo, enquanto na Register-Register énecessário um maior número de registos.

Page 12: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

12

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Arquitecturas de Endereçamento (cont.)

Classificação:

3. Register-Memory: O endereçamento dos operandos faz-se com recurso a registos e memória.

4. Single Accumulator: O endereçamento não recorre a registos de uso geral, sendo as transferências realizadas na totalidade entre a memória e o registo Acumulador.

5. Stack: O endereçamento é realizado de forma implícita com recurso ao STACK.

Page 13: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

13

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Modos de Endereçamento

O modo de endereçamento descreve o modo como os operandos são seleccionados durante a execução do programa.

O endereço do operando obtido pelas regras subjacentes aos modos de endereçamento designa-se endereço efectivo.

Os vários modos de endereçamento tem por objectivos fundamentais:1. Conferir Flexibilidade de Programação através da utilização de

apontadores para memória, contadores para controlo de ciclos, indexação dos dados e relocalização de programas.

2. Reduzir o número de bits nos campos de endereço da instrução.

A especificação do modo de endereçamento pode ser através de um campo próprio ou fazer parte do código da operação.

Page 14: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

14

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Modos de Endereçamento (Formato das Instruções)

Page 15: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

15

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Modos de Endereçamento

1. Implícito: Operando especificado de forma implícita, não é referido explicitamente na instrução, e.g., ADD.

2. Imediato: Operando especificado na instrução, e.g., MOVE R1,3.

3. Registo: Operando corresponde a um registo do processador, e.g., MUL R1,R2,R3.

4. Indirecto por Registo: Endereço do operando corresponde ao conteúdo do registo especificado na operação, e.g., ADD (R1),3.

Add

----

Implícito

Move

3

Imediato

Mul

---

Registo

Opcode

Endereço ou Operando

Modo

Add

3

Indirecto p/ Reg.

Page 16: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

16

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Modos de Endereçamento

5. Directo: Operando obtido pela especificação do seu endereço em memória no campo de endereço da instrução, e.g,, ACC����M[ADRS].

Page 17: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

17

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Modos de Endereçamento

5. Directo (cont.): ... e.g., instrução de salto condicional.

Page 18: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

18

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Modos de Endereçamento

6. Indirecto: O campo de endereço da instrução especifica o endereço de memória que guarda o endereço efectivo do operando, e.g., ACC����M[M[ADRS]].

7. Relativo: O endereço efectivo do operando é determinado pela soma do valor do campo de endereço da instrução com o conteúdo de um registo da CPU, tipicamente o PC, i.e., end.efectivo = campo_end_inst + PC.

8. Indexado: O endereço efectivo do operando é determinado pela soma do valor do campo de endereço da instrução com o conteúdo de um registo de índice ou de base que define o endereço de início de um array, i.e., end.efectivo = campo_end_inst + Registo_Índice.

LD

ADRS

Indirecto

LD

ADRS

Relativo

LD

ADRS

Indexado

Page 19: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

19

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Modos de Endereçamento - Sumário

Simbologia (Mano):ADRS Endereço Efectivo#NBR Número@ ou [ADRS] Endereço Indirecto$ADRS Endereço Efectivo

relativo ao PCADRS (R1) Endereço Efectivo

relativo ao R1R1 Registo(R1) Endereço Efectivo em R1

Page 20: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

20

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Modos de Endereçamento - Sumário

Simbologia (Mano):ADRS Endereço Efectivo#NBR Número@ ou [ADRS] Endereço Indirecto$ADRS Endereço Efectivo

relativo ao PCADRS (R1) Endereço Efectivo

relativo ao R1R1 Registo(R1) Endereço Efectivo em R1

Page 21: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

21

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Modos de Endereçamento - Sumário

Simbologia (Mano):ADRS Endereço Efectivo#NBR Número@ ou [ADRS] Endereço Indirecto$ADRS Endereço Efectivo

relativo ao PCADRS (R1) Endereço Efectivo

relativo ao R1R1 Registo(R1) Endereço Efectivo em R1

Page 22: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

22

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Modos de Endereçamento - Sumário

Simbologia (Mano):ADRS Endereço Efectivo#NBR Número@ ou [ADRS] Endereço Indirecto$ADRS Endereço Efectivo

relativo ao PCADRS (R1) Endereço Efectivo

relativo ao R1R1 Registo(R1) Endereço Efectivo em R1

+

Page 23: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

23

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Modos de Endereçamento - Sumário

Simbologia (Mano):ADRS Endereço Efectivo#NBR Número@ ou [ADRS] Endereço Indirecto$ADRS Endereço Efectivo

relativo ao PCADRS (R1) Endereço Efectivo

relativo ao R1R1 Registo(R1) Endereço Efectivo em R1

+

Page 24: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

24

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Modos de Endereçamento - Sumário

Simbologia (Mano):ADRS Endereço Efectivo#NBR Número@ ou [ADRS] Endereço Indirecto$ADRS Endereço Efectivo

relativo ao PCADRS (R1) Endereço Efectivo

relativo ao R1R1 Registo(R1) Endereço Efectivo em R1

Page 25: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

25

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Modos de Endereçamento - Sumário

Simbologia (Mano):ADRS Endereço Efectivo#NBR Número@ ou [ADRS] Endereço Indirecto$ADRS Endereço Efectivo

relativo ao PCADRS (R1) Endereço Efectivo

relativo ao R1R1 Registo(R1) Endereço Efectivo em R1

Page 26: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

26

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Arquitecturas do Conjunto de Instruções

O conjunto de instruções de diferentes computadores varia em vários aspectos, e.g., código de operação no campo opcode da instrução, o nome simbólico dado às instruções, etc.

Classes de Arquitecturas de Instruções:

RISC – Reduced Instruction Set Computers1. Acesso à memória restrito a instruções de carregamento – load - e

armazenamento – store. As instruções de manipulação de dados são do tipo Registo-Registo.

2. Modos de Endereçamento em número limitado.3. Formatos das Instruções todos da mesma dimensão.4. As instruções correspondem à execução de operações elementares

O objectivo das arquitecturas RISC é conferir um elevado ritmo de execução, para isso minimiza os acessos à memória e em contrapartida aumenta o número de registos da CPU. A dimensão fixa das instruções e a simplicidade das suas operações conduz a unidades de controlo relativamente simples, tipicamente “Hardwired” e arquitecturas pipelined.

Page 27: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

27

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Arquitecturas do Conjunto de Instruções

Classes de Arquitecturas de Instruções: (cont.)

CISC – Complex Instruction Set Computers1. Acesso à memória disponível para a generalidade dos tipos de instrução.2. Modos de Endereçamento em número elevado.3. Formatos das Instruções de diferentes dimensões.4. As instruções executam tanto operações elementares como operações

complexas.

O objectivo das arquitecturas CISC é conferir uma maior proximidade entre as operações utilizadas em linguagens de programação e as operações desencadeadas por cada instrução. Facilita o desenvolvimento de programas compactos e eficiência em termos de desempenho advém de um menor número de acessos à memória em relação ao número de operações elementares realizadas. Neste caso, a CPU apresenta um menor número de registos do que nas arquitecturas RISC e a utilização do controlo microprogramado é o mais usual dada a variedade de formatos de instruções utilizados.

Nota: Cada instrução CISC, em geral, corresponde a uma sequência de instruções RISC.

Page 28: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

28

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Arquitecturas do Conjunto de Instruções

Classes de Arquitecturas de Instruções: (cont.)

RISC, CISC

Independentemente das arquitecturas serem CISC, RISC ou uma solução híbrida CISC-RISC, existe, tipicamente, um conjunto de operações elementares disponíveis na generalidade dos casos e associadas às seguintes classes:

– Instruções de Transferência de Dados: Transferência de dados de uma localização para outra sem alterar a informação.

– Instruções de Manipulação de Dados: Execução de operações aritméticas, lógicas e de deslocamento.

– Instruções de Controlo de Programa: Permitem decidir sobre o fluxo do programa durante a sua execução.

Page 29: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

29

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Instruções de Transferência de Dados

• Memória ����Registo – LD, ST, MOVE, XCH• Registo ����Registo – MOVE, XCH• Memória ���� Memória – MOVE, XCH• Stack (Pilha) ����Registo, Memória – PUSH, POP• I/O (Entradas/Saídas - Periféricos) – IN, OUT

Page 30: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

30

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Instruções de Transferência de Dados

PUSH R1 SP����SP-1,

M[SP]����R1

POP R1 R1����M[SP],

SP����SP+1

STACK

EXEMPLO: STACK (Instruções)

A memória em STACK apresenta a vantagem de poder ser referidapelo processador sem ter de especificar o endereço.

Instrução Microoperação

Page 31: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

31

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Instruções de Transferência de Dados

IN R1, Porto R1����[Porto]

OUT Porto, R1 [Porto]����R1

EXEMPLO: I/O (Instruções)

Instrução Microoperação

Porto: Registo, identificado por um endereço, associado a um determinado periférico.

I/O Isolado: Espaço de endereçamento específico para I/O.

Memory-Mapped I/O: Espaço de endereçamento idêntico para acessos àmemória e a I/O. Neste caso, não existe diferenciação entre instruções de acesso a memória e a I/O.

LD R1, Porto R1����[Porto]

ST Porto, R1 [Porto]����R1

Instrução Microoperação

a) I/O Isolado

b) Memory-Mapped I/O

Page 32: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

32

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Instruções de Manipulação de Dados

• Aritméticas

Page 33: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

33

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Instruções de Manipulação de Dados

• Lógicas

Page 34: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

34

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Instruções de Manipulação de Dados

• Deslocamento

Page 35: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

35

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Instruções de Controlo de Programa

• Salto Incondicional – JMP, SKP• Salto Condicional - BR• Chamada/Retorno a/de Procedimento – CALL, RET• Comparação – CMP, TEST

x

Page 36: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

36

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Instruções de Controlo de Programa

• Salto Condicional

– Bits de estado

– Num. sem sinal

– Num. com sinal

Page 37: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

37

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Instruções de Controlo de Programa

• Chamada/Retorno a/de Procedimento

CALL PROC SP����SP-1,M[SP]����PC,PC����ENDEREÇO EFECTIVO

EXEMPLO: CALL e RET

Instrução Microoperação

CALL: Chamada a procedimento com armazenamento no STACK do endereço de retorno e carregamento do PC com o endereço de início do procedimento.

RET: Retorno do procedimento com carregamento do PC com o endereço de retorno no programa principal.

RET PC����M[SP],SP����SP+1

Instrução Microoperação

a) CALL

b) RET

Page 38: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

38

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Interrupções

A Interrupção corresponde à ocorrência de um pedido interno ou externo ao processador que provoca a interrupção do programa correntemente em execução passando a ser executado o programa ou rotina de serviço a essa Interrupção. O controlo regressa ao programa original após a execução da rotina de serviço à Interrupção.

Interrupção vs CALL

1. A interrupção surge, normalmente, num ponto indeterminado do programa e em consequência de um sinal interno ou externo ao processador.

2. O endereço da rotina de atendimento da interrupção é determinado por mecanismos de hardware em vez de ser através do campo de endereço de uma instrução.

3. A resposta a uma interrupção obriga à salvaguarda dos conteúdos dos vários registos do processador, uma vez que pode ocorrer em qualquer instante, em vez do simples armazenamento do endereço de retorno.

Page 39: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

39

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Interrupções

Tipos de Interrupções:• Interrupção Externa (hardware): Iniciada por um periférico de entrada ou

de saída, por um circuito de monitorização da alimentação ou por qualquer outra fonte externa, e.g., transferência de dados, falha de alimentação, etc.

• Interrupção Interna (hardware): Provocada pelo uso ilegal ou erróneo de uma instrução ou dado, e.g., overflow aritmético, divisão por zero, etc.

• Interrupção de Software: Instrução executada na sequência, natural, da execução de um programa, e.g., chamadas ao sistema.

Page 40: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

40

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

Interrupções

Processamento de Interrupções Externas

Microinstruções

SP����SP-1,M[SP]����PC,SP����SP-1,M[SP]����PSR, EI����0,INTACK����1,PC����IVAD

x

Page 41: Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

N. Horta, IST - UTL Arquitectura de Computadores2006/2007

41

Arquitectura de ComputadoresArquitectura do Conjunto de Instruções

BIBLIOGRAFIA

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