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 © 2009 Introdução à arquitectura do hardware Programação cooperativa.

Apresentações semelhantes


Apresentação em tema: "Arquitectura de Computadores – Introdução à arquitectura do hardware1José Delgado © 2009 Introdução à arquitectura do hardware Programação cooperativa."— Transcrição da apresentação:

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

2 Arquitectura de Computadores – Introdução à arquitectura do hardware2José Delgado © 2009 Processos com multiprogramação Processos – forma de programar várias actividades de forma independente Mudança de processsos por meio de interrupção (assíncrona)

3 Arquitectura de Computadores – Introdução à arquitectura do hardware3José Delgado © 2009 Processos cooperativos Mudança de processo consentida pelo próprio processo Implementação de um processo que precise de manter estado entre invocações sucessivas: function ProcessoX () { switch estado { case 1:... /* instruções deste estado */ ; estado =...; /* indica qual o estado seguinte */ break;/* sai do processo */ case 2:... /* instruções deste estado */ ; estado =...; /* indica qual o estado seguinte */ break;/* sai do processo */.../* cláusulas dos outros estados */ } return; }

4 Arquitectura de Computadores – Introdução à arquitectura do hardware4José Delgado © 2009 Espera não bloqueante Não se deve fazer: ; rotina que implementa o processo 1 proc1:Lê posição de memória CMP com valor pretendido; vê se valor é o esperado JNZproc1; se ainda não é, vai tentar de novo...; a fazer caso o valor seja o esperado RET; acabou, regressa O que se deve fazer: ; rotina que implementa o processo 1 proc1:Lê posição de memória CMP com valor pretendido; vê se valor é o esperado JNZfim; se ainda não é, vai tentar de novo...; a fazer caso o valor seja o esperado fim:RET; acabou, regressa. Há-de voltar na próxima ; iteração do ciclo A espera deve ser externa à rotina, e não interna

5 Arquitectura de Computadores – Introdução à arquitectura do hardware5José Delgado © 2009 Estrutura em assembly ; rotina que implementa um processo processo:Lê variável com o estado do processo estado0:CMP com 0; vê se é o estado 0 JNZestado1 …; faz o processamento do estado 0 estado = novo valor; indica qual o próximo estado JMPfim; acabou execução do estado 0 estado1:CMP com 1; vê se está no estado 1 JNZestado2 …; faz o processamento do estado 1 estado = novo valor; indica qual o próximo estado JMPfim; acabou execução do estado 1 estado2:CMP com 2; vê se está no estado 2 JNZestado3 …; faz o processamento do estado 2 estado = novo valor; indica qual o próximo estado JMPfim; acabou execução do estado 2 estado3:...; etc. Outros estados... fim:RET; sai, para permitir que os outros ; processos corram

6 Arquitectura de Computadores – Introdução à arquitectura do hardware6José Delgado © 2009 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

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

8 Arquitectura de Computadores – Introdução à arquitectura do hardware8José Delgado © 2009 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

9 Arquitectura de Computadores – Introdução à arquitectura do hardware9José Delgado © 2009 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

10 Arquitectura de Computadores – Introdução à arquitectura do hardware10José Delgado © 2009 Supondo um processador de 8 bits com este mapa de endereços: Mapa de endereços ROM Periféricos RAM 1 RAM 0 000000 0FFFFF 100000 1FFFFF FFFFFF 800000 500000 500FFF –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? 24 16 MB 2 MB 8 MB 4 KB 6 MB – 4 KB 20 23

11 Arquitectura de Computadores – Introdução à arquitectura do hardware11José Delgado © 2009 Geração dos chip selects A23 A22 A21 A20 ROM Periféricos RAM 1 RAM 0 000000 0FFFFF 100000 1FFFFF FFFFFF 800000 500000 500FFF Decoder 1 para 8 A12..A19

12 Arquitectura de Computadores – Introdução à arquitectura do hardware12José Delgado © 2009 A23 A22 A21 A20 ROM Periféricos RAM 1 RAM 0 000000 0FFFFF 100000 1FFFFF FFFFFF 800000 500000 500FFF 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.

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

14 Arquitectura de Computadores – Introdução à arquitectura do hardware14José Delgado © 2009 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 0 000000 0FFFFF 100000 1FFFFF FFFFFF 800000 500000 500FFF A23...... A12 PROM ( Programmable ROM)

15 Arquitectura de Computadores – Introdução à arquitectura do hardware15José Delgado © 2009 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 500 200 a 4FF 100 a 1FF 000 a 0FF 1111 0111 1111 1111 1011 1111 1111 1101 1111 1110 ROM vazio periféricos vazio RAM 1 RAM 0 ROM Periféricos RAM 1 RAM 0 000000 0FFFFF 100000 1FFFFF FFFFFF 800000 500000 500FFF A23...... A12 PROM ( Programmable ROM)

16 Arquitectura de Computadores – Introdução à arquitectura do hardware16José Delgado © 2009 Descodificação mista Isto permite que a PROM seja 8 vezes mais pequena, com menos palavras repetidas. ROM Periféricos RAM 1 RAM 0 000000 0FFFFF 100000 1FFFFF FFFFFF 800000 500000 500FFF Decoder 1 para 8 A23...... A15 PROM (Programmable ROM) A12 A14 A13

17 Arquitectura de Computadores – Introdução à arquitectura do hardware17José Delgado © 2009 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

18 Arquitectura de Computadores – Introdução à arquitectura do hardware18José Delgado © 2009 “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 4567 0123 Little-endian 0CH 08H 04H 00H 10H BA98 7654 3210 Exemplo 03 0F 0A 07 H

19 Arquitectura de Computadores – Introdução à arquitectura do hardware19José Delgado © 2009 “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 4567 0123 Little-endian 0CH 08H 04H 00H 10H BA98 7654 3210 Exemplo 03 0F 0A 07 H

20 Arquitectura de Computadores – Introdução à arquitectura do hardware20José Delgado © 2009 “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 4567 0123 Little-endian 0CH 08H 04H 00H 10H BA98 7654 3210 Exemplo 03 0F 0A 07 H

21 Arquitectura de Computadores – Introdução à arquitectura do hardware21José Delgado © 2009 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 111213 CDEF 89AB 4567 0123 Acessos alinhados em 8, 16 e 32 bits Acesso desalinhado (32 bits, endereço 01H)

22 Arquitectura de Computadores – Introdução à arquitectura do hardware22José Delgado © 2009 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

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

24 Arquitectura de Computadores – Introdução à arquitectura do hardware24José Delgado © 2009 Voltemos ao PEPE-8 Objectivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) +... + 2 + 1 1.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)

25 Arquitectura de Computadores – Introdução à arquitectura do hardware25José Delgado © 2009 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

26 Arquitectura de Computadores – Introdução à arquitectura do hardware26José Delgado © 2009 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)

27 Arquitectura de Computadores – Introdução à arquitectura do hardware27 Arquitectura de base José Delgado © 2009

28 Arquitectura de Computadores – Introdução à arquitectura do hardware28José Delgado © 2009 A  M[endereço]

29 Arquitectura de Computadores – Introdução à arquitectura do hardware29José Delgado © 2009 M[endereço]  A

30 Arquitectura de Computadores – Introdução à arquitectura do hardware30José Delgado © 2009 A  A + M[endereço]

31 Arquitectura de Computadores – Introdução à arquitectura do hardware31José Delgado © 2009 A  0 ???

32 Arquitectura de Computadores – Introdução à arquitectura do hardware32José Delgado © 2009 A  constante

33 Arquitectura de Computadores – Introdução à arquitectura do hardware33José Delgado © 2009 A  A + constante

34 Arquitectura de Computadores – Introdução à arquitectura do hardware34José Delgado © 2009 Salto (PC  7) ???

35 Arquitectura de Computadores – Introdução à arquitectura do hardware35José Delgado © 2009 PC  constante

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

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

38 Arquitectura de Computadores – Introdução à arquitectura do hardware38José Delgado © 2009 PEPE-8: instruções com opcodes

39 Arquitectura de Computadores – Introdução à arquitectura do hardware39José Delgado © 2009 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

40 Arquitectura de Computadores – Introdução à arquitectura do hardware40José Delgado © 2009 Instrução LD [endereço]

41 Arquitectura de Computadores – Introdução à arquitectura do hardware41José Delgado © 2009 Instrução ADD valor

42 Arquitectura de Computadores – Introdução à arquitectura do hardware42José Delgado © 2009 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

43 Arquitectura de Computadores – Introdução à arquitectura do hardware43José Delgado © 2009 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

44 Arquitectura de Computadores – Introdução à arquitectura do hardware44José Delgado © 2009 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

45 Arquitectura de Computadores – Introdução à arquitectura do hardware45José Delgado © 2009 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

46 Arquitectura de Computadores – Introdução à arquitectura do hardware46José Delgado © 2009 Estrutura do processador

47 Arquitectura de Computadores – Introdução à arquitectura do hardware47José Delgado © 2009 Núcleo do processador

48 Arquitectura de Computadores – Introdução à arquitectura do hardware48José Delgado © 2009 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

49 Arquitectura de Computadores – Introdução à arquitectura do hardware49José Delgado © 2009 Controlo e circuito controlado Deslocar o registo X de N bits

50 Arquitectura de Computadores – Introdução à arquitectura do hardware50José Delgado © 2009 Micro- programa

51 Arquitectura de Computadores – Introdução à arquitectura do hardware51José Delgado © 2009 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

52 Arquitectura de Computadores – Introdução à arquitectura do hardware52José Delgado © 2009 Unidade de controlo

53 Arquitectura de Computadores – Introdução à arquitectura do hardware53José Delgado © 2009 Microprogramação


Carregar ppt "Arquitectura de Computadores – Introdução à arquitectura do hardware1José Delgado © 2009 Introdução à arquitectura do hardware Programação cooperativa."

Apresentações semelhantes


Anúncios Google