Beruflich Dokumente
Kultur Dokumente
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
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.
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
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
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
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
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
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
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
24
Arquitetura de Computadores
Registradores
25
Arquitetura de Computadores
26
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
30
31
Arquitetura de Computadores
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
33
Arquitetura de Computadores
O tamanho do programa: 3x(1+2+2) = 15 bytes Trfico de memria: 15 + 2x2 + 2x3 + 2x3 = 31 bytes
34
Arquitetura de Computadores
35
Arquitetura de Computadores
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
40
Arquitetura de Computadores
41
Arquitetura de Computadores
42
43
Cont.
44
Arquitetura de Computadores
45
Arquitetura de Computadores
46
Arquitetura de Computadores
47
Arquitetura de Computadores
48
Arquitetura de Computadores
49
Arquitetura de Computadores
50
Arquitetura de Computadores
Cont
51
Arquitetura de Computadores
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
52
0x00ef