RAMUART PCI IDE. Microprocessador -> CPU encapsulada em um único circuito integrado. Pelo fato de...

Post on 07-Apr-2016

218 views 0 download

Transcript of RAMUART PCI IDE. Microprocessador -> CPU encapsulada em um único circuito integrado. Pelo fato de...

RAM UART

PCI IDE

Microprocessador -> CPU encapsulada em um único circuito integrado. Pelo fato deconcentrar apenas a função de controle no “chip”, as aplicações de microprocessadores sãocomplexas voltadas para multimídia (controle de som + imagem + comunicação).Exemplo:- Microprocessador Pentium IV da Intel. A aplicação do Pentium é em computadoresmultimídia.- Microprocessador ARM voltado para aplicações multimídia dedicadas.Microcontrolador -> CPU + MEMORIA + PERIFËRICOS encapsulados em um únicocircuito integrado. Dedicado a funções menos complexas de controle. Normalmente está“embarcado” em equipamentos dedicados. Utiliza o conceito de “firmware” para oprograma dedicado.Ex:- Microcontrolador 8051 da Intel (89S51 – Atmel; LPC932 – NXP)- Microcontrolador PIC12F628A Microchip- Microcontrolador MC9RS08LC60 Freescale.

Unidade Central de Processamento : • Controle de Todo o Sistema;• Manipulação dos Dados;• Acessa e interpreta instruções do programa contido na memória;• Executa operações Lógicas e Aritméticas

Memória : • Armazena os Programas;• Armazena os Dados que serão manipulados;

Dispositivos de Entrada e Saída : • Conexão do computador com sistemas externos

Barramento de Dados : Linhas paralelas que permitem a comunicação bidirecional entre CPU, Memórias e Dispositivos de IO. Somente um dispositivo utiliza o barramento de cada vez.

Barramento de Endereços : Linhas paralelas unidericionais pelas quais a CPU habilita qual dispositivo utilizará o barramento de dados.

Barramento de Controle : Linhas por onde trafegam os sinais de controle e sinalização do sistema.

Memória:Bloco semicondutor com capacidade de armazenar informações. Armazena basicamente asinstruções a serem processadas (através de seus códigos de operação), variáveis (comoresultados de operações da C.P.U.) ou dados de entrada e saída dos periféricos. Oprograma a ser processado deve necessariamente estar presente na memória (por isso otamanho cada vez maior das memórias voláteis - RAMs - dos computadores atuais, pois osprogramas têm tamanhos cada vez maiores).A memória dos computadores pode ser dividida em volátil (RAM estática / dinâmica) e nãovoláteis (ROM / PROM / EPROM / E2PROM - FLASH).Em computadores pessoais temos o conceito de BIOS (programa de inicialização deperiféricos) + SISTEMA OPERACIONAL ( interface gráfica amigável ao usuário) +APLICATIVO (programa final).

Periféricos:Bloco de comunicação do conjunto CPU / memória com o meio exterior. Pode sercaracterizado como entrada (teclado, mouse, etc.) ou saída (monitor, impressora, plotter,etc.). É a interface de comunicação com o usuário e a parte do sistema que normalmentetem acesso.Em microcontroladores estes periféricos são menos complexos, como PORTS, TIMERS,UARTS, CONVERSORES A/D e D/A, SPI / I2C, etc.

- Barramento de Dados (Data Bus): carrega a informação da instrução (através do códigode operação), variável do processamento (cálculo intermediário de uma fórmula porexemplo) ou informação de um periférico de E/S (dado digitado em um teclado). Otamanho da via de dados determina respectivamente o máximo número de instruções (eportanto o potencial de processamento) e a precisão do processamento aritmético (atravésdo cálculo de ponto flutuante) ou o número de símbolos possíveis a ser representado (porexemplo, pontos de uma foto).Exemplo:1) - O processador 8085 possui 8 bits no barramento -> máximo de 256 instruções evariáveis numéricas entre -127 a +127 (ou 0 a 255).2) - O processador Pentium possui 32 bits no barramento -> variáveis numéricas entre -2147483648 e + 2147483648.

Barramento de Endereço (Address Bus) : carrega a informação binária da localizaçãode um dado de memória ou E/S. A capacidade de acesso é determinada pela expressão 2n.O tamanho do barramento de endereço acompanhou a evolução do poder de processamentodo microprocessadores já que foi necessário cada vez mais memória para armazenar umaquantidade cada vez maior de dados.Exemplo:- 8085 -> 16 bits na via de endereço -> 216 = 65512 kbytes- 8088 -> 20 bits na via de endereço -> 1 Mbyte

Barramento de controle (Control Bus): Agrupa todos os sinais necessários ao controle da transferência de informação entre as unidades do sistema.

Habilita e desabilita periféricos, regula o modo de operação R, W, etc

ULA: A Unidade Lógica Aritmética (ULA) é um bloco que executa operações aritméticas e lógicas. Entre as operações aritméticas que excuta, ela soma, subtrai, divide e determina se um número é positivo ou negativo ou se é zero. Ela pode também executar funções lógicas como "E", "OU" ou "OU EXCLUSIVO".

Von Neuman (1903 - 1957)

Unidade de Controle

Unidade Lógica e

Aritmética

Memória I/O

VIA DE ENDEREÇOS

VIA DE DADOS

VIA DE CONTROLE

UCP

Von Neuman (1903 - 1957)

Harvard

FlipFlops:

Tem apenas dois estados estáveis(1/0, Alto/Baixo) e possui a capacidade de reter seu estado.Tem dois estados de saída sendo um o complemento do outro.Pode ser sensível ao nível(estado da entrada) ou a mudança de nível(borda de subida ou descida).

Registrador é o elemento básico de memória em um sistema computacional. Um registrador é a ligação de FlipFlops sincronizados pelo mesmo relógio. O conteúdo de cada FlipFlop normalmente está associado a um bit de informação.

Nunca muda de estado se as entradas R(reset) e S(set) são 0. Com 0 na entrada S e um na entrada R passa para o estado Q(saída)=0. Com 1 em S e 0 em R passa para o

estado Q=1. R e S em 1 não definem um estado válido.

R S Q0 0 Q0

1 0 00 1 11 1 ND

Funciona como uma unidade de atraso, sua saída Q apresenta o estado da entrada D anterior ao último pulso de clock. .

D Q0 D0

1 D0

Funciona similarmente ao RS porém apresenta um clock e inverte seu ultimo estado quando apresentar ambas entradas em nível lógico 1.

J K Q0 0 Q0

1 0 10 1 01 1 Q0

Note que o FlipFlop D apresenta lógica baixa na entrada ao contrário do JK.

Considerando dois registradores (A e B) formados por n(tamanho da palavra) flipflops JK.

A transferência de informação de a para b será efetuada quando o sinal de clock global do sistema juntamente com o sinal de controle (MOVE A -> B) ativarem o

clock dos flipflops do registrador B, mantendo o conteúdo de A inalterado.

Monte um circuito de transferência de 2 bits usando flipFlops JK.

Exercício 2.1®:

Considerando dois registradores (A e B) formados por n(tamanho da palavra) flipflops JK.

A transferência de informação de a para b será efetuada quando o sinal de clock global do sistema juntamente com o sinal de controle (MOVE A -> B) ativarem o

clock dos flipflops do registrador B, mantendo o conteúdo de A inalterado.

A saída do registrador será complementada ao sinal de clok. Essa operação é executada, por exemplo, para realizar subtração em circuitos somadores.

Essa operação tem a propriedade de deslocar os bits de um registrador com flipflops ligados em cadeia. Costuma ser utilizado para operações de multiplicação.

Operações de incremento e decremento são muito utilizadas em sistemas computacionais, desde a contagem de posições em vetores à marcação de posição de execução de um programa. Um contador pode ser controlado como crescente

ou decrescente. Ainda pode ser síncrono ou Assincrono.

Monte um contador BCD, isto é um incrementador que reset quando chegar em 1010.

Exercício 2.2:

Monte um circuito capaz de efetuar somas com sinal e multiplicação de dois números binários de 4 bits. Esse circuito poderá ainda operar comparação de

magnitude(<,>,=). Use portas lógicas e flipflops a vontade.

Exercício 2.3 **DESAFIO**:

Unidade de Controle

Unidade Lógica e

Aritmética

UCP

Unidade Central de Processamento :

• Unidade Lógica e Aritmética

• Unidade de Registros

• Unidade de Controle

Sistema hipotético:

Definiremos um sistema hipotético que possui uma ULA que opera dois registradores de 8 bits (A e B) e possui outro (F) para apresentar a saída com os seguintes Controles: M, S1 e S2 seleciona a operação a ser executada conforme a tabela:

STA e STB carrega o conteúdo do barramento de Dados nos registradores A e B respectivamente.

OE carrega o conteúdo de F no barramento de Dados.

S0 S1 M=0 op.Aritméticas M=1 op.Lógicas0 0 F = A plus B AND0 1 F = A minus B OR1 0 F = A X B NOT1 1 F = A /B XOR

Registros A e B :Registros de Propósito geral: armazenam informações variadas a serem processadas:• LD : Carrega inf. Do bar. De dados.• OE Entrega o conteúdo armazenado para o bar. De dados

Registro RI:Registrador de Instruções: Armazena o código da instrução a ser executada.• LD : Carrega inf. Do bar. De dados.

Registro REM:Registrador de endereço de memória: Armazena o endereço de memória a ser acessado.

Un. de Registros

Registro PC:Contador de Programa: Armazena o endereço da próxima instrução a ser buscada na memória. É incrementado a cada busca.•CKEN : Habilita incremento pelo Clock do sistema .•PCldl e PCldh: Carrega informação do Bar. De dados, bits menos significativos e mais significativos respectivamente.

Registro PSW:Registrador de Status: Armazena informações relevantes ao funcionamento da UCP.

Unidade de Controle :É a unidade que controla a execução das instruções:• Extrai a instrução da memória principal.• Interpreta o Código de operação (na ROM).•Controla a execução da instrução pelo sequenciamento dos sinais de controle.

Recebe o código da instrução proveniente de RI e possui um sequenciador que incrementa os bits menos significativos de endereço da ROM executando assim as microinstruções :

Unidade de Controle :

Além dos controles:• M, S1, S0, STA, STB, OEalu => Unidade Lógica e Aritmética • Ckenpc, LDpch, LDpcl, LDa, OEa, LDb, OEb, LDri, Ldrem, CkenremComanda:•MREQ(habilita memória),IORQ(habilita i/o),RD(leitura do dispositivo), WR(escrita no dispositivo) .

Transferência de dados :Transfere dados ou blocos de dados entre os registradores, posições de memória e barramento de dados.• MOVE A, B

Tratamento de operandos:Realizam operações aritméticas ou lógicas.• ADD A, B

TIPOS DE INSTRUÇÕES

Instruções de desvio:Determinam desvio no fluxo do programa.• JMP, Jcond, JSR, RET

Entrada/Saída:Comunicação da UCP com interfaces de I/O.• IN port

Miscelânea:Instruções especiais de um processador em particular.

Fase de Busca(fetch) :É o ciclo de máquina para leitura do código de operação(c.o), a primeira palavra da instrução. O ciclo de busca é idêntico para qualquer instrução.

Fase de Execussão :São os ciclos de máquinas necessários para busca das palavras restantes da instrução e execução dessa. É diferente e compreende números de ciclos de máquina diferentes para cada instrução.

Ciclo de Máquina :É 1(UMA) seqüência de microoperações que são executadas caracterizando uma operação. A execução de instruções é dividida em ciclos de máquina.

•Instrução•Ciclo•Microprograma

•Microinstruções•Microoperações•Microcomando

0000

00

1

0001

00

00 0000 05h

2

0002

00

0005h00

05h

05h

05h

3

0500

01

000500

053d

4

0501

01

000500

053d

3d

3d

3d

5

0000

01

000500

05

3d

3d

6

0001

01

012701

053d

3d

7

0002

01

012701

3d

3d

27

27

27

8

2700

02

012701

3d

3d

27

9

2701

02

012701

3d

3d

27

3d

3d

10

2702

02

026d02

3d

3d

27

3d

11

2703

02

026d02

3d

3d

27

3d

6d

6d

6d

12

2704

03

026d02

3d

3d

27

3d

6d

13

2705

03

026d02

3d27

3d

6d

9d9d

9d

14

0000

03

026d02

3d

27

3d

6d

9d

9d

15

0000

03

026d02

3d27

3d

6d

9d

9d

16

2: { 3: int x,a; 4: x = 20; C:0x0800 7F14 MOV R7,#0x14 5: x = x + 5; C:0x0802 7405 MOV A,#0x05 C:0x0804 2F ADD A,R7 C:0x0805 FF MOV R7,A C:0x0806 E4 CLR A C:0x0807 33 RLC A 6: a = x; C:0x0808 F508 MOV 0x08,A C:0x080A 8F09 MOV 0x09,R7 7: } C:0x080C 22 RET ...

Endereço de Retorno em PilhaAs pilhas normalmente são definidas dentro da própria memóriaO registrador SP(Stack Pointer) contém o endereço da 1ª posição livre na pilha.

Sub-Rotinas :

Endereço de Retorno junto à Sub-RotinaArmazena-se a primeira palavra para o endereço de retorno(DS).Chamada : JSR SUB (Sub está armazenada a partir da posição de memória endsub)

endsub <- (PC)

PC <- endsub +1

Retorno:

JUMP(SUB)

PUSH PC (SP) <- (PC)

SP <- (SP)+1

JUMP endsub

POP PC (SP) <- (SP)-1

PC <- ((SP))