A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Arquitectura de Computadores – Introdução à arquitectura do hardware1José Delgado © 2011 Introdução à arquitectura do hardware Descodificação de endereços.

Apresentações semelhantes


Apresentação em tema: "Arquitectura de Computadores – Introdução à arquitectura do hardware1José Delgado © 2011 Introdução à arquitectura do hardware Descodificação de endereços."— Transcrição da apresentação:

1 Arquitectura de Computadores – Introdução à arquitectura do hardware1José Delgado © 2011 Introdução à arquitectura do hardware Descodificação de endereços Núcleo do processador Microprogramação

2 Arquitectura de Computadores – Introdução à arquitectura do hardware2José Delgado © 2011 Espaço de endereçamento FFFFH 0000H Espaço de endereçamento (com 16 bits) Memória 1 Periférico 1 Periférico 2 Periférico 3 Memória 2 Processador Unidade de controlo Unidadede dados Unidadede dados Memória Bus de endereços Bus de dados Bus de controlo Periférico 1 Periférico 2 Periférico 3

3 Arquitectura de Computadores – Introdução à arquitectura do hardware3José Delgado © 2011 Diagrama de blocos Processador MemóriaPeriférico Descodificador de endereços Bus de dados CS1 CS2 Bus de endereços RD WR

4 Arquitectura de Computadores – Introdução à arquitectura do hardware4José Delgado © 2011 Ciclo de bus com chip select Os chip selects são normalmente activos a zero Os flancos ascendentes dos sinais de RD e WR devem ocorrer “dentro” do período activo do chip select. Relógio Bus de RD WR dados endereços Bus de dados endereço select Chip

5 Arquitectura de Computadores – Introdução à arquitectura do hardware5José Delgado © 2011 Descodificação de endereços Cada dispositivo liga aos bits de menor peso do bus de endereços O descodificador de endereços liga aos bits de maior peso do bus de endereços. Processador MemóriaPeriférico Descodificador de endereços Bus de dados CS1 CS2 Bus de endereços RD WR

6 Arquitectura de Computadores – Introdução à arquitectura do hardware6José Delgado © 2011 Supondo um processador de 8 bits com este mapa de endereços: Mapa de endereços ROM Periféricos RAM 1 RAM FFFFF FFFFF FFFFFF FFF –Quantos bits deve ter no mínimo o bus de endereços? –Qual o espaço de endereçamento deste mapa de endereços? –Qual a capacidade da RAM? –Qual a capacidade da ROM? –Qual o espaço reservado para periféricos? –Qual o espaço livre? –Quantos bits de endereço devem ligar a cada módulo de RAM? –E à ROM? MB 2 MB 8 MB 4 KB 6 MB – 4 KB 20 23

7 Arquitectura de Computadores – Introdução à arquitectura do hardware7José Delgado © 2011 Geração dos chip selects A23 A22 A21 A20 ROM Periféricos RAM 1 RAM FFFFF FFFFF FFFFFF FFF Decoder 1 para 8 A12..A19

8 Arquitectura de Computadores – Introdução à arquitectura do hardware8José Delgado © 2011 A23 A22 A21 A20 ROM Periféricos RAM 1 RAM FFFFF FFFFF FFFFFF FFF Decoder 1 para 8 A12..A19 Geração dos chip selects A geração do chip select dos “GRANDES” dispositivos é geralmente simples e feita à medida. A geração do chip select dos “pequenos” dispositivos é geralmente feita por discriminação de um bocado médio (com gates ou com outros descodificadores). A geração do chip select dos dispositivos “médios” é geralmente feita com descodificadores que dividem o mapa de endereços em bocados iguais. Regra geral, não deve haver sobreposições.

9 Arquitectura de Computadores – Introdução à arquitectura do hardware9José Delgado © 2011 Descodificação com PROM Neste caso é possível programar os endereços em módulos de 4K. ROM Periféricos RAM 1 RAM FFFFF FFFFF FFFFFF FFF A A12 PROM (Programmable ROM) Em cada palavra da PROM, só um bit pode estar a 0.

10 Arquitectura de Computadores – Introdução à arquitectura do hardware10José Delgado © 2011 Descodificação com PROM A PROM permite gerar tantos chip selects quantos os bits da sua largura. Em cada palavra, só pode haver um bit a 0. Os bits de endereço da PROM ligam aos bits de maior peso do bus de endereços. São precisos tantos bits quantos os requeridos pelo dispositivo de endereçamento mais fino (que ocupará apenas uma palavra da PROM). Os dispositivos “maiores” (RAM, por exemplo) ocuparão várias palavras da PROM com o bit da saída respectiva a 0. Zonas do espaço de endereçamento sem dispositivo têm a palavra respectiva com os bits todos a 1. ROM Periféricos RAM 1 RAM FFFFF FFFFF FFFFFF FFF A A12 PROM ( Programmable ROM)

11 Arquitectura de Computadores – Introdução à arquitectura do hardware11José Delgado © 2011 Descodificação com PROM Neste exemplo, cada palavra da PROM corresponde a 4 K endereços do processador (para bater certo com o requerido pelos periféricos). Quantas palavras deve ter a PROM? Mudar o mapa de endereços implica apenas substituir ou reprogramar a PROM (que então tinha de ser EPROM, EEPROM, FLASH, etc). 4 K Qual o conteúdo da PROM? 800 a FFF 501 a 7FF a 4FF 100 a 1FF 000 a 0FF ROM vazio periféricos vazio RAM 1 RAM 0 ROM Periféricos RAM 1 RAM FFFFF FFFFF FFFFFF FFF A A12 PROM ( Programmable ROM)

12 Arquitectura de Computadores – Introdução à arquitectura do hardware12José Delgado © 2011 Descodificação mista Isto permite que a PROM seja 8 vezes mais pequena, com menos palavras repetidas. ROM Periféricos RAM 1 RAM FFFFF FFFFF FFFFFF FFF Decoder 1 para 8 A A15 PROM (Programmable ROM) A12 A14 A13

13 Arquitectura de Computadores – Introdução à arquitectura do hardware13José Delgado © 2011 Endereçamento de byte e de palavra A memória é vista como um vector linear : –de bytes (8 bits), ou –de palavras do processador (N bits) Endereçamento de byte: –Permite acesso directo a um byte –Complica interface de memória (acesso aos bytes que não sejam o de menor peso de cada palavra) –Espaço de endereçamento é menor –PC e SP têm de variar de 2 em 2 (processador de 16 bits) ou de 4 em 4 (processador de 32 bits) Endereçamento de byte (  P de 32 bits) 0CH 08H 04H 00H 10H Endereçamento de palavra 03H 02H 01H 00H 04H

14 Arquitectura de Computadores – Introdução à arquitectura do hardware14José Delgado © 2011 “Big-endian” vs “little-endian” Em ambos os casos, os inteiros representam-se com os bits de maior peso à esquerda. A diferença está na ordem pela qual os bytes aparecem. Big-endian 0CH 08H 04H 00H 10H 89AB Little-endian 0CH 08H 04H 00H 10H BA Exemplo 03 0F 0A 07 H

15 Arquitectura de Computadores – Introdução à arquitectura do hardware15José Delgado © 2011 “Big-endian” vs “little-endian” No big-endian, o byte de maior peso está no byte com menor endereço (isto é, aparece primeiro quando se vai incrementando os endereços). No little-endian, é o byte de menor peso que aparece primeiro. Big-endian 0CH 08H 04H 00H 10H 89AB Little-endian 0CH 08H 04H 00H 10H BA Exemplo 03 0F 0A 07 H

16 Arquitectura de Computadores – Introdução à arquitectura do hardware16José Delgado © 2011 “Big-endian” vs “little-endian” Esta distinção só é importante: –Ao aceder aos bytes individuais de uma palavra; –Ao trocar dados entre computadores. Big-endian 0CH 08H 04H 00H 10H 89AB Little-endian 0CH 08H 04H 00H 10H BA Exemplo 03 0F 0A 07 H

17 Arquitectura de Computadores – Introdução à arquitectura do hardware17José Delgado © 2011 Acessos à memória flexíveis Alguns processadores suportam: –Acessos a bytes e a palavras de 16 bits e 32 bits (potências de 8 bits até à largura da palavra do processador). Cada instrução tem de indicar o tipo de acesso; –Acessos desalinhados a palavras, em qualquer endereço, o que pode implicar dois acessos e corte e costura...). 10 0CH 08H 04H 00H 10H CDEF 89AB Acessos alinhados em 8, 16 e 32 bits Acesso desalinhado (32 bits, endereço 01H)

18 Arquitectura de Computadores – Introdução à arquitectura do hardware18José Delgado © 2011 Bits de menor peso As memórias são geralmente feitas com chips (circuitos integrados) com largura de 8 bits, por isso são precisos: –2 em paralelo para fazer 16 bits. –4 em paralelo para fazer 32 bits. Os vários chips em paralelo podem ser acedidos simultaneamente em cada acesso, e é o processador que depois individualiza os bytes, se necessário. No endereçamento de byte, os bits de menor peso do bus de endereço não ligam à memória: –num processador de 16 bits, A0 –num processador de 32 bits, A1 e A0 Endereçamento de byte (  P de 32 bits) 0CH 08H 04H 00H 10H Endereçamento de palavra 03H 02H 01H 00H 04H

19 Arquitectura de Computadores – Introdução à arquitectura do hardware19José Delgado © 2011 Ligação de RAMs em paralelo RAM (8 bits) Descodificador de endereços CS-RAM RD WR RAM (8 bits) RAM (8 bits) RAM (8 bits) Bus de endereços An..A2 Bus de dados Processador (32 bits) BS3 BS0 BS3..0 (Byte Select) – Indica que bytes são acedidos.

20 Arquitectura de Computadores – Introdução à arquitectura do hardware20José Delgado © 2011 Voltemos ao PEPE-8 Objectivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) soma  0(inicializa soma com zero) 2.temp  N(inicializa temp com N) 3.Se (temp < 0) salta para 8(se temp for negativo, salta para o fim) 4.Se (temp = 0) salta para 8(se temp for zero, salta para o fim) 5.soma  soma + temp(adiciona temp a soma) 6.temp  temp – 1(decrementa temp) 7.Salta para 4(salta para o passo 4) 8.Salta para 8(fim do programa)

21 Arquitectura de Computadores – Introdução à arquitectura do hardware21José Delgado © 2011 Só uma constante por instrução Decompôr instruções com várias constantes em instruções mais simples, cada uma só com uma constante. Já não há endereços e valores numéricos na mesma instrução). Usa-se um registo auxiliar (A) para guardar valores entre instruções. 0M[soma]  0 0A  0 1M[soma]  A 1M[temp]  N 2A  N 3M[temp]  A 2Se (M[temp] < 0) PC  74(A < 0) : PC  12 3Se (M[temp] = 0) PC  75(A = 0) : PC  12 4M[soma]  M[soma] + M[temp] 6A  A + M[soma] 7M[soma]  A 5M[temp]  M[temp] – 1 8A  M[temp] 9A  A – 1 10M[temp]  A 6PC  311PC  5 7PC  712PC  12

22 Arquitectura de Computadores – Introdução à arquitectura do hardware22José Delgado © 2011 Que operações são necessárias? Para correr o programa anterior, o hardware tem de suportar as seguintes operações: Opera ç ão Exemplo Escrever uma constante no registo A A  0 Armazenar o registo A na mem ó ria M[soma]  A Ler uma c é lula de mem ó ria e escrever no registo A A  M[temp] Opera ç ão com o registo A e uma c é lula de mem ó ria como operandos A  A + M[soma] Opera ç ão com o registo A e uma constante como operandos A  A – 1 Salto incondicional PC  7 Salto condicional (A = 0) : PC  12 Esta notação designa-se RTL (Register Transfer Language)

23 Arquitectura de Computadores – Introdução à arquitectura do hardware23 Arquitectura de base José Delgado © 2011

24 Arquitectura de Computadores – Introdução à arquitectura do hardware24José Delgado © 2011 A  M[endereço]

25 Arquitectura de Computadores – Introdução à arquitectura do hardware25José Delgado © 2011 M[endereço]  A

26 Arquitectura de Computadores – Introdução à arquitectura do hardware26José Delgado © 2011 A  A + M[endereço]

27 Arquitectura de Computadores – Introdução à arquitectura do hardware27José Delgado © 2011 A  0 ???

28 Arquitectura de Computadores – Introdução à arquitectura do hardware28José Delgado © 2011 A  constante

29 Arquitectura de Computadores – Introdução à arquitectura do hardware29José Delgado © 2011 A  A + constante

30 Arquitectura de Computadores – Introdução à arquitectura do hardware30José Delgado © 2011 Salto (PC  7) ???

31 Arquitectura de Computadores – Introdução à arquitectura do hardware31José Delgado © 2011 PC  constante

32 Arquitectura de Computadores – Introdução à arquitectura do hardware32José Delgado © 2011 (A = 0) : PC  constante SEL_PC (2 bits): não salta, salto incondicional, salto condicional (se A = 0 e se A < 0)

33 Arquitectura de Computadores – Introdução à arquitectura do hardware33José Delgado © 2011 PEPE-8: instruções com todos os sinais de controlo

34 Arquitectura de Computadores – Introdução à arquitectura do hardware34José Delgado © 2011 PEPE-8: instruções com opcodes

35 Arquitectura de Computadores – Introdução à arquitectura do hardware35José Delgado © 2011 Linguagem assembly Categoria Instru ç ão assembly SignificadoOpcode Descri ç ão em RTL Transferência de dados LDvalorLoad (imediato)00HA  valor LD[endereço]Load (memória)01HA  M[endereço] ST[endereço]Store (memória)02HM[endereço]  A Operações aritméticas ADDvalorAdd (imediato)03HA  A + valor ADD[endereço]Add (memória)04HA  A + M[endereço] SUBvalorSubtract (imediato)05HA  A – valor SUB[endereço]Subtract (memória)06HA  A – M[endereço] Operações lógicas ANDvalorAND (imediato)07H A  A  valor AND[endereço]AND (memória)08H A  A  M[endereço] ORvalorOR (imediato)09H A  A  valor OR[endereço]OR (memória)0AH A  A  M[endereço] Saltos JMPendereçoJump0BHPC  endereço JZendereçoJump if zero0CH(A=0) : PC  endereço JNendereçoJump if negative0DH(A<0) : PC  endereço DiversosNOPNo operation0EH

36 Arquitectura de Computadores – Introdução à arquitectura do hardware36José Delgado © 2011 Instrução LD [endereço]

37 Arquitectura de Computadores – Introdução à arquitectura do hardware37José Delgado © 2011 Instrução ADD valor

38 Arquitectura de Computadores – Introdução à arquitectura do hardware38José Delgado © 2011 Programação em assembly Programa em RTLPrograma em assembly 0A  0 1M[soma]  A 2A  N 3M[temp]  A 4(A < 0) : PC  12 5(A = 0) : PC  12 6A  A + M[soma] 7 M[soma]  A 8A  M[temp] 9A  A – 1 10M[temp]  A 11PC  5 12PC  12 00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH in í cio:LD0 ST[soma] LDN ST[temp] JNfim teste: JZfim ADD[soma] ST[soma] LD[temp] SUB1 ST[temp] JMPteste fim:JMPfim

39 Arquitectura de Computadores – Introdução à arquitectura do hardware39José Delgado © 2011 Agora um processador de 16 bits Já não faz uma instrução por ciclo de relógio Tem um ciclo por cada instrução

40 Arquitectura de Computadores – Introdução à arquitectura do hardware40José Delgado © 2011 Controlo Unidade de controlo CLK Unidade aritmética e lógica (ALU) A B Unidade de processamento de dados Banco de registos MPX PC Registo de instrução flags endereços dados dados/instr. Bus dados Interface de memória Bus end. Bus contr. F Ciclo do processador Descodifica Registo de instrução Controlo flags Executa Banco de registos MPX Unidade aritmética e lógica (ALU) Escreve resultado Banco de registos Unidade aritmética e lógica (ALU) MPX Busca instrução Registo de instrução PC MPX Interface de memória MPX Busca operandos (registos) Banco de registos Busca operandos (memória) Banco de registos MPX Interface de memória MPX

41 Arquitectura de Computadores – Introdução à arquitectura do hardware41José Delgado © 2011 Controlo Unidade de controlo CLK Unidade aritmética e lógica (ALU) A B Unidade de processamento de dados Banco de registos MPX PC Registo de instrução flags endereços dados dados/instr. Bus dados Interface de memória Bus end. Bus contr. F Exemplo MOV R2, [R3] ADD R1, R2 MOV [R3], R1 MOV R2, [R3] RI  M[PC] PC  PC + 2 R2  M[R3] ADD R1, R2 RI  M[PC] PC  PC + 2 R1  R1 + R2 MOV [R3], R1 RI  M[PC] PC  PC + 2 M[R3]  R1 PC RI  M[PC] PC  PC + 2 R2  M[R3] RI  M[PC] PC  PC + 2 R2  M[R3] RI  M[PC] PC  PC + 2 R2  M[R3] RI  M[PC] PC  PC + 2 R1  R1 + R2 RI  M[PC] PC  PC + 2 R1  R1 + R2 RI  M[PC] PC  PC + 2 R1  R1 + R2 RI  M[PC] PC  PC + 2 M[R3]  R1 RI  M[PC] PC  PC + 2 M[R3]  R1 RI  M[PC] PC  PC + 2 M[R3]  R1

42 Arquitectura de Computadores – Introdução à arquitectura do hardware42José Delgado © 2011 Estrutura do processador

43 Arquitectura de Computadores – Introdução à arquitectura do hardware43José Delgado © 2011 Núcleo do processador

44 Arquitectura de Computadores – Introdução à arquitectura do hardware44José Delgado © 2011 Controlo microprogramado Entradas da unidade de controlo Registo de endereço de controlo Gerador do próximo endereço Próximo endereço Saídas para unidade de controlo Saídas para unidade de processamento de dados relógio Bits de estado (flags) microinstrução ROM com micro- programa Endereço da microinstrução

45 Arquitectura de Computadores – Introdução à arquitectura do hardware45José Delgado © 2011 Controlo e circuito controlado Deslocar o registo X de N bits

46 Arquitectura de Computadores – Introdução à arquitectura do hardware46José Delgado © 2011 Micro- programa

47 Arquitectura de Computadores – Introdução à arquitectura do hardware47José Delgado © 2011 Descodificação da instrução Entradas da unidade de controlo Registo de endereço de controlo Gerador do próximo endereço Próximo endereço Saídas para unidade de controlo Saídas para unidade de processamento de dados relógio Bits de estado (flags) microinstrução ROM com micro- programa Endereço da microinstrução ROM de mapeamento opcode Registo de instrução

48 Arquitectura de Computadores – Introdução à arquitectura do hardware48José Delgado © 2011 Unidade de controlo

49 Arquitectura de Computadores – Introdução à arquitectura do hardware49José Delgado © 2011 Microprogramação


Carregar ppt "Arquitectura de Computadores – Introdução à arquitectura do hardware1José Delgado © 2011 Introdução à arquitectura do hardware Descodificação de endereços."

Apresentações semelhantes


Anúncios Google