Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Introdução aos Sistemas 
Computacionais 
Disciplina: 113468 
 
Prof. Marcus Vinicius Lamar 
 
Arquitetura de Computadores 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
3 
Sistema Computacional 
FireFox 
Software Básico 
ou 
Software de Sistema 
 É um conjunto de programas desenvolvido para gerenciar um computador 
 
 
Software de Aplicação 
e utilitários 
Arquitetura do 
Conjunto de Instruções 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
Sistema Computacional 
4 
Arquitetura do Conjunto de Instruções 
Memória Processador E/S 
Sistemas Digitais 
Portas Lógicas 
Transistores 
Física dos Semicondutores 
Software de Desenvolvimento 
Software de Aplicação 
Sistema Operacional 
Problema do Usuário 
Software 
Hardware 
UnB/CIC 113468– Introdução aos Sistemas Computacionais UnB/CIC 113468 – Introdução aos Sistemas Computacionais 
Sistemas Operacionais 
 Fornecer Interface amigável do hardware com o usuário 
 Hoje em dia qualquer pessoa consegue usar 
 Gerenciar a execução de programas e uso da memória 
 carregamento e execução de programas 
 Gerenciar o armazenamento secundário 
 controla o uso de discos (HD), CD, DVD, Pendrives, etc. 
 Gerenciar atividades de E/S 
 teclado, mouse, vídeo, etc. 
 Tratamento de Erros 
 Tela azul  
 Exemplos: Unix, DOS, Windows, AIX, Solaris, Linux, Android, 
Mac OS X, FreeBSD, Symbian, ... 
5 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
6 
Software de Desenvolvimento 
 Principais categorias: 
 Compiladores: convertem previamente códigos em linguagens de 
alto nível para linguagem de máquina para posterior execução 
 O programa executável é carregado pelo sistema operacional 
Ex.: C, C++, COBOL, Fortran, Pascal, BASIC,... 
 Interpretadores: convertem códigos em linguagens de alto nível 
para linguagem de máquina em tempo de execução 
 Necessita um ambiente de execução 
Ex.: Python, LISP, HTML, JavaScript, MatLab, BASIC, ... 
 Híbridos: atuam com características de interpretadores e 
compiladores 
Ex.: Java, ... 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
Processo de Compilação (gcc) 
7 
hello.c 
hello.s 
hello.o 
libc.a lib.lib bib.dll lib.so 
hello.exe 
cpp.exe (pré-proc) + cc1.exe (comp) 
as.exe 
ld.exe 
exesv.exe 
UnB/CIC 113468– Introdução aos Sistemas Computacionais UnB/CIC 113468 – Introdução aos Sistemas Computacionais 
Compiladores x Interpretadores 
Compilação e 
Interpretação 
8 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
9 
Arquitetura do Conjunto de Instruções (ISA) 
 - interface entre o hardware e o software de baixo nível 
 - padroniza instruções, padrões de bits de linguagem de máquina, etc. 
 
 Arquiteturas de conjunto de instruções modernas: 
 EM64T, AMD64, x86-64 ou x64 
 IA-32 (x86), 
 ARMv7 (32) e ARMv8 (64), 
 PowerPC, 
 MIPS32 e MIPS64, 
 SUN SPARC, 
 HP PA-RISC 
 e outras 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
Principais arquiteturas hoje 
 -ARMv7 (32 bits) e ARMv8 (64 bits) 
 -x86 (32 bits) e x64 (64 bits) 
10 
Arquiteturas de Processadores 
MIPS=Microprocessor without Interlocked Pipeline Stages 
Arquitetura projetada na universidade de Stanford em 1981. 
Empresa fundada em 1984. 
A MIPS Inc. foi comprada pela Imagination Tech. em Fev de 2013. 
Vamos usar a arquitetura do processador MIPS32 como exemplo 
de aplicação dos conceitos básicos em um projeto completo. 
http://www.mips.com http://www.imgtec.com 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
11 
O Processador MIPS: 
 Semelhante a outras arquiteturas RISC desenvolvidas desde a década de 
1980 (ARM, SunSparc,...) 
 Foi usada pela NEC, Nintendo, Cisco, Broadcom, Silicon Graphics, Sony... 
 MIPS 32 e 64 bits, e coprocessadores (3D,DSP,...) 
 Preparado para Android e Linux. 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
12 
Programação 
Programar em Linguagem de Alto nível: 
• Linguagem próxima à humana 
• Aumenta a produtividade 
• Independência da máquina 
• Hoje, compiladores muito eficientes 
 
Porém, processadores só “entendem” 
Linguagem de Máquina, 
logo necessita tradução 
 
 A+B 
 add A,B 
 1000110010100000 
 
 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
13 
Linguagem Assembly MIPS 
Código de Alto-nível Pseudo Assembly 
a = b + c; add a, b, c 
a = b - c; sub a, b, c 
‘add’ e ‘sub’ códigos mnemônicos das instruções 
a, b, c argumentos ou operandos das instruções 
Ex.: Código mais complexo 
a = b + c - d; add t, b, c 
 sub a, t, d 
 ou, ou, ou... 
 sub t, c, d 
 add a, b, t 
t: variável temporária 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
14 
Obs.: RISC versus CISC 
RISC : Reduced Instruction Set Computer 
 - Processador com um conjunto reduzido de instruções 
 - Apenas instruções simples 
 - “Rápidas” e “Compactas” 
 - Ex.: ARM, MIPS, SunSPARC 
 
CISC: Complex Instruction Set Computer 
 - Processador com um grande número de instruções 
 - Instruções simples e complexas 
 - “Lentas” e “Grandes” 
 - Ex.: x86, x64 
 
 
Grande questão: RISC ou CISC qual a melhor estratégia ??? 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
15 
Localização dos Operandos 
Os operandos das instruções podem estar localizados: 
No Banco de Registradores: internos à CPU 
 - Banco de Registradores (Register File ou Bank) 
 - Pequena quantidade (8, 16, 32) 
 - Acesso rápido 
 
Na Memória de Dados: geralmente externa à CPU 
 - Memória RAM 
 - Grande quantidade (4, 8, 16 GiB) 
 - Acesso lento 
 
Na Própria Instrução: geralmente externa à CPU 
 - Memória RAM 
 - No próprio programa 
 - Acesso muito rápido (na própria instrução) 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
 Cada registrador 32 flip-flops 
 
 Exceção registrador $0 
 
 “Processador de x bits”: 
x número de bits de um registrador 
No Banco de Registradores: 32 registradores de 32 bits cada 
Arquitetura MIPS32 - Operandos 
$0 
Registrador Conteúdo 
32 bits 
32 bits 
32 bits 
32 bits 
32 bits 
32 bits 
32 bits 
32 bits 
$1 
$2 
$3 
$4 
$5 
$6 
$7 
$30 
$31 
32 bits 
... 
32 bits 
32 bits 
$8 
16 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
17 
Geralmente os registradores possuem nomes específicos segundo 
uma convenção de utilização. 
 
$0 ($zero) : contém sempre o valor 0 (hardwired). 
$1 ($at) : reservado para uso do montador (Assembly Temporary) 
$2 e $3 ($v0, $v1) : retorno de valores de funções (Return Values). 
$4 ... $7 ($a0,...,$a3) : passagem de argumentos de funções (Arguments) 
$8...$15, $24, $25 ($t0...$t9) : dados temporários (Temporary) 
$16...$23 ($s0...$s7) : dados salvos (Saved) 
$26 e $27 ($k0, $k1): reservados para uso do sistema operacional (Kernel) 
$28 ($gp): Ponteiro Global (Global Pointer) 
$29 ($sp): Ponteiro da Pilha (Stack Pointer) 
$30 ($fp): Ponteiro de Frame (Frame Pointer) 
$31 ($ra): Endereço de retorno de funções (Return Address) 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
18 
Linguagem Assembly MIPS 
Obs.: /* Comentário em C */ # comentário em Assembly MIPS 
 
Código de Alto-nível Assembly MIPS 
a = b + c; # $s0 = a, $s1 = b, $s2 = c 
 add $s0, $s1, $s2 # a=b+c 
 
Ex.: 
// Programa em C # MIPS assembly code 
a = b - c; # $s0 = a, $s1= b, $s2 = c, $s3 = f, 
f = (g + h) - (i + j); # $s4 = g, $s5 = h, $s6 = i, $s7 = j 
 sub $s0, $s1, $s2 # a = b - c 
 add $t0, $s4, $s5 # $t0 = g + h 
 add $t1, $s6, $s7 # $t1 = i + j 
 sub $s3, $t0, $t1 # f = (g + h) - (i + j) 
 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
 "Byte addressing" significa que um endereço 
aponta para um byte na memória 
 
 Word: 32 bits -> 4 endereços 
 
 Half-word: 16bits-> 2 endereços 
 
 Byte: 8 bits -> 1 endereço. 
 
 “Processador de x bits”: 
 32 bits: N=32 
 64 bits: N=36, 40, 48, ...,64 
Na Memória de Dados: 
 - Muito maior porém mais lenta 
Arquitetura MIPS32 - Operandos 
0 
Endereço Dado 
8 bits 
8 bits 
8 bits 
8 bits 
8 bits 
8 bits 
8 bits 
8 bits 
1 
2 
3 
4 
5 
6 
7 
2N-2 
2N-1 
8 bits 
... 
8 bits 
8 bits 
8 
19 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
20 
• Arquitetura Load/Store: Apenas as instruções load e store têm acesso à 
memória. 
• As outras instruções operam apenas com registradores. 
• Formação de endereço básico do MIPS: 
 Imm (registrador) endereço = registrador + imediato. 
 
 $s0 = Memoria[$t1+10] Memoria[$t1+10] = $s0 
 • Instruções: LOAD STORE 
 word (32 bits) : lw $s0,10($t1) sw $s0,10($t1) 
 half-word (16 bits): lh $s0,10($t1) sh $s0,10($t1) 
 byte (8 bits): lb $s0,10($t1) sb $s0,10($t1) 
 
Linguagem Assembly MIPS 
UnB/CIC 113468– Introdução aos Sistemas Computacionais 
21 
Arquitetura MIPS32 - operandos 
Na própria instrução: 
- Usado para fazer operações com constantes nos programas 
- Uso de números imediatos (Imm) na instrução 
 
Instruções 
addi $s1,$s0, 12 # $s1 = $s0 + 12 
andi $s1,$s0,0x0001 # $s1 = $s0 & 0x0001 
ori $s1,$s0,0xFFF0 # $s1 = $s0 | 0xFFF0 
xori $s1,$s0,0xFF00 # $s1 = $s0 ^ 0xFF00 
 
Ex.: Linguagem alto nível Assembly MIPS 
 # $s0 = a, $s1 = b 
 b++; addi $s1, $s1, 1 
 a = b - 37; addi $s0, $s1, -37

Mais conteúdos dessa disciplina