Sie sind auf Seite 1von 52

Arquitetura de Computadores

Arquitetura do conjunto de instrues

Arquitetura de Computadores

Arquitetura de conjunto de instrues, permite dar uma viso um pouco acima do hardware, onde iremos conhecer a linguagem de mquina e a linguagem de montagem. Vamos estudar a arquitetura ARC, baseada numa arquitetura comercial da SUN Um compilador traduz de uma linguagem de alto nvel para uma de baixo nvel

Alto Nvel Baixo Nvel Hardware


C, Pascal, etc -> independente de arquitetura Montagem -> dependente de arquitetura

Um montador assembly responsvel por traduzir a linguagem de assembly para linguagem de cdigo de mquina Linguagem com o C, pascal, fortran traduzem diretamente para cdigo de mquina da arquitetura. A linguagem JAVA traduz para uma linguagem intermediria, chamada de byte code. A mquina virtual JAVA interpreta o byte code para a linguagem de mquina de cada arquitetura.

Arquitetura de Computadores

As instrues de linguagem de mquina apenas apresentam as operaes de acesso lgicas aritmticas, a memria, aos I/Os e registradores. O objetivo do barramento reduzir o numero de interconexes entre as unidades Toda comunicao feita pelo barramento. Nem todas as arquiteturas so assim. Existem aquelas que possuem barramentos dedicados, por exemplo: uma exclusiva entre a CPU e a memria.

Arquitetura de Computadores

Funcionamento tpico

Um programa de feito em uma linguagem de alto nvel e armazenado no disco rgido. O usurio carrega o programa para memria, com a ajuda do sistema operacional. O programa executado, operando instrues de baixo nvel. Todas as instrues so executadas na ALU e gerenciados pela unidade de controle, o qual responsvel em direcionar quando uma instruo far uma operao de acesso de memria, I/O ou se lgica e aritmticas devem ser realizadas.

Arquitetura de Computadores

Um byte composto de 8 bits ou dois nibbles Todas as outros tamanhos so compostos em termos de bytes.

Arquitetura de Computadores

Memria

um conjunto de registradores que armazenam bytes e que podem ser acessados atravs de um endereamento. Mesmo uma word ou palavras maiores podem ser acessados na memria, pois estes dados esto organizados sequencialmente na memria.

Formatos Big-Endian e Little Endian


A forma como os dados podem estar organizado podem variar de arquitetura para arquitetura. Os chamados Big-Endian, tem os bytes mais significativos nos endereos mais baixos. OLittle-endian tem os bytes menos significativos no endereo mais baixo.

Arquitetura de Computadores

O acesso a memria sequencial A forma de acesso apresentado pela figura ao lado. Atravs do endereamento ou Address podemos indicar a unidade de memria qual dado estamos interessados em acessar.

Arquitetura de Computadores

Mapeamento de memria

Alguns dispositivos podem ter mapeando como posio de memria as entradas e sadas de dados. Ao invs de usar I/O, um programa pode ler e escrever dados aos dispositivos simplesmente lendo ou escrevendo dados num dado endereamento. Estas regies so protegidas e so usados somente para este fim, no podem ser usados pelos programas para armazenar informaes dos aplicativos.

Arquitetura de Computadores

Consideraes sobre memria

Normalmente, as memrias podem ser considerados como um grande intervalo de endereos contnuos. Mas h outras formas de organizao de memrias, como por exemplo: tipo segmentado.

Arquitetura de Computadores

A CPU

Consiste de uma seo contendo registradores, ALU e a Unidade de Controle. A seo de dados tambm conhecida de DATAPATH

10

Arquitetura de Computadores

A unidade de controle responsvel por executar uma por uma as instrues de cdigo de mquina armazenadas na memria. Utiliza dois registradores especiais, que so a interface entre a unidade de controle e de dados. So o IR e PC, o primeiro contm a instruo lida da memria. A segunda possui o prximo endereo a ser lido pela unidade de controle para a proxima instruo.

11

Arquitetura de Computadores

Algoritmo bsico (ciclo de busca e execuo)


Ler a prxima instruo, apontada pelo PC Decodificar os operandos Ler o operando da memria, se houver Executar a instruo e armazenar os resultados Repetir

12

Arquitetura de Computadores

Datapath feito sobre uma coleo de registradores conhecidos como registradores de arquivo e a ALU.

13

Arquitetura de Computadores

Conjunto de Instrues

So uma coleo de instrues/comandos que so usados para executar tarefas de receber, processar e transmitir dados dentro do processador. Estes conjuntos so chamados de linguagem de mquina. Cada arquitetura pode ter diferentes conjuntos de instrues. Necessidades de compiladores: C, Pascal, Java, etc.

14

Arquitetura de Computadores

Compiladores

So software para gerar programas em linguagem de mquinas. Como entrada, so usados linguagens de alto nvel, como alinguagem C, Fortran, Pascal, etc. Usando o cdigo fonte, por exemplo da linguagem C, possvel compilar um mesmo programa em vrias arquiteturas diferentes.

15

Arquitetura de Computadores

Processo de compilagem

Linguagem de alto nvel Linguagem de montagem Tempo para linkagem Cdigo de mquina

16

Arquitetura de Computadores

Exemplo de computador RISC

ARC

ARC uma mquina de 32 bits com memria endereada por byte Podem manipular dados de 32 bits Tem reas de memrias separadas por funo

17

Arquitetura de Computadores

Os menores 2048, so reservado para o S.O. Acima de 2048 e abaixo de da pilha, reservada para os programas do usurio A pilha est localizada, 231- 4 e cresce em direo a endereos menores Acima disso, entre 231 e 232 1 reservado para dispositivos de entradas e sadas.

18

Arquitetura de Computadores

Conjuntos de instrues especiais


Os Registradores, so memrias especiais e so diferentes da memria, por estarem internas a CPU. O ARC tem 32 registradores de 32 bits Possui um PC, IR e PSR

PC Program Count IR Instrution Register PSR registrador de status

Load-Store uma arquitetura que carrega e armazena. Todos dados so necessariamente carregados em registradores para processamentos. O resultado tambm sempre carregado em um registrador.

19

Arquitetura de Computadores

Instrues de Movimentao de Dados

Ld e St, so respectivamente de leitura e escrita de dados da memria para registrador e viceversa. So as nicas instrues que podem acessar a memria no ARC.

20

Arquitetura de Computadores

Instrues de Controle

So responsveis por chamar subrotinas, gerar saltos condicionais e incondicionais na execuo de um algortmos. Exemplo de incondicionais: Call e Jmpl Exemplo das instrues condicionais: be, bneg, bcs, bvs e ba

21

Arquitetura de Computadores

sdf

22

Arquitetura de Computadores

O Registrador PSR

Ele especifica o status a uma dada operao aritmtica. z, define se uma operao matemtica deu Zero n, define se a operao deu negativo c, Carry out v, Overflow

23

Arquitetura de Computadores

Formato de linguagem de montagem ARC

24

Arquitetura de Computadores

Registradores

25

Arquitetura de Computadores

Formato das instrues

26

Os Formatos de dados ARC

Temos formatos de:

Inteiros sem sinal Inteiros com sinal Ponto flutuantes

27

Arquitetura de Computadores

Pseudo Ops

So operandos especiais que so necessrios que no fazem parte dos opscodes de uma arquitetura. Porm eles so necessrios durante o processo de montagem de cdigos de mquinas.

28

Arquitetura de Computadores

Pseudo Ops

29

Arquitetura de Computadores

Exemplo de cdigo assembly

30

Um pouco mais complexo

31

Arquitetura de Computadores

Variaes na Arquitetura e endereamento da mquina.


Considere A = B * C + D Dependendo do tipo de instrues usado, esta expresso pode ocupar diferentes tamanhos. Premissa que todos os operandos ocupem dois bytes e opcodes apenas um byte.

32

Arquitetura de Computadores
Tipo

com trs parmetros


mult add B, C, A D, A, A A <- B x C A <- A + D

O tamanho do programa ocupado : 7x2 = 14 bytes. Trfico de Memria: 14 + 2x(2x3) = 26 bytes

33

Arquitetura de Computadores

Tipo com dois parmetros

Um dos operandos usando para acomodar o resultado


load mult add B, A C, A D, A A <- B A <- A x C A <- A + D

O tamanho do programa: 3x(1+2+2) = 15 bytes Trfico de memria: 15 + 2x2 + 2x3 + 2x3 = 31 bytes

34

Arquitetura de Computadores

Tipo com dois parmetros

Um dos operandos usando para acomodar o resultado


load mult add store B C D A Acc <- B Acc <- Acc x C Acc <- Acc + D A <- Acc

Tamanho do programa: 4x3 = 12 bytes Trfego de memria: 12 + 4 x 2 = 20 bytes

35

Arquitetura de Computadores

Registradores de Uso Especial

Algumas arquiteturas possuem registradores especiais de acordo com os fins especficos

Registradores de indexao da memria, os registradores de ndice de origem (SI) e de origem (DI) do Intel 80x86 so usados para marcar o incio ou fim de um vetor de memria. Registradores de ponto flutuante: muitos processadores usam esses registradores para tratar com pontos flutuantes

36

Arquitetura de Computadores

Registradores que implementa operaes de tempo: o processador PowerPC 601 tem registradores de clock de tempo que oferecem medidas de tempo de alta resoluo. Registradores de apoio ao S.O. : ex: apoio ao acesso a memria Registradores que podem ser acessados por instrues privilegiadas: so comandos que s S.O tem acesso e permisso usar.

37

Arquitetura de Computadores

Modos de endereamento

Uma constante que conhecido em tempo de montagem Contedo direto de um registrador Soma de dois registradores Soma de registradores e uma constante

38

Arquitetura de Computadores

Ligao de Sub-rotinas

39

Arquitetura de Computadores

rea de ligao de dados

A sub-rotina linkado com uma rea de dados de memria atravs de r5.

40

Arquitetura de Computadores

Passagem de parmetros usando a pilha

41

Arquitetura de Computadores

Exemplo de uso da pilha em linguagem de alto nvel.

42

Comportamento da pilha no exemplo anterior

43

Cont.

44

Arquitetura de Computadores

Mapeamento da memria ARC.

45

Arquitetura de Computadores

Touchscreen I/O Device

46

Arquitetura de Computadores

Flowchart for I/O Device

47

Arquitetura de Computadores

Java Virtual Machine Architecture

48

Arquitetura de Computadores

Programa Java e o arquivo com a classe compilada

49

Arquitetura de Computadores

A Java Class File

50

Arquitetura de Computadores

Cont

51

Arquitetura de Computadores

Byte code java

Byte code disassembled para um programa java


Code Mnemonic Meaning

Location

0x00e3 0x10
0x00e4 0x0f 0x00e5 0x3c 0x00e6 0x10 0x00e7 0x09 0x00e8 0x3d 0x00e9 0x03 0x00ea 0x3e 0x00eb 0x1b 0x00ec 0x1c 0x00ed 0x60 0x00ee 0x3e

bipush
15 istore_1 bipush 9 istore_2 iconst_0 istore_3 iload_1 iload_2 iadd istore_3 0xb1

Push next byte onto stack


Argument to bipush Pop stack to local variable 1 Push next byte onto stack Argument to bipush Pop stack to local variable 2 Push 0 onto stack Pop stack to local variable 3 Push local variable 1 onto stack Push local variable 2 onto stack Add top two stack elements Pop stack to local variable 3 return Return

52

0x00ef

Das könnte Ihnen auch gefallen