Upload
vuongnhi
View
216
Download
0
Embed Size (px)
Citation preview
9
Raspberry Pi 2 model B
February 2015
900MHz quad-core ARM Cortex-A7 CPU
1GB RAM
Micro SD card slot
10
Raspberry Pi 2 model B
4 USB ports
40 GPIO pins
Full HDMI port
Ethernet port
Combined 3.5mm audio jack and composite video
Camera interface (CSI)
Display interface (DSI)
VideoCore IV 3D graphics core
11
Raspberry Pi 2 model B
Because it has an ARMv7 processor,
it can run the full range of ARM GNU/Linux,
including Snappy Ubuntu Core,
as well as Microsoft Windows 10
12
Unidade Central de Processamento
Principal componente
Localiza e executa as
instruções de um programa
o Aritmética
o Lógica
o Desvio
Executa operações simples
com grande rapidez
13
Memória Principal (RAM)
Memória volátil
o usada para armazenar dados e programas
Conteúdo modificável pelas
instruções dos programas
o leitura
o escrita
Permite acesso aleatório
o direto
o não sequencial
14
Disco Rígido (HD)
memória para
armazenamento
não-volátil (1 TB)
armazenamento em
superfícies
magnetizáveis
acesso aleatório aos
dados armazenados
15
Cartões de Memória (SD)
Capacidades
o 8 GB, 16 GB, 32 GB, 64 GB
Velocidade de Leitura
o até 95MB/s
Velocidade de Gravação
o até 90MB/s
Velocidade de Vídeo
o C10
o U3
16
Instruções de Máquina
Um processador executa instruções de máquina
Um conjunto típico de instruções inclui operações Aritméticas
Lógicas
e de desvio
Muito simples mas executadas em altíssima
velocidade
bilhões de instruções de ponto flutuante por Segundo
Representadas por sequências de dígitos binários
17
Exemplo em X64 Assembly
A common instruction is the LOOP instruction, which
decrements ECX, and then jumps if the result is not 0.
XOR EAX, EAX ; zerar o valor de EAX
;
MOV ECX, 10 ; loop 10 vezes
Aqui: ; este é um marcador para repetição
ADD EAX, 2 ; incrementa EAX de 2
LOOP Aqui ; decrementa ECX, loop se não for 0
18
X64 Assembly – operações usuais
Opcode Meaning Opcode Meaning MOV Move to/from/between
memory and registers AND/OR/XOR/NOT Bitwise operations
CMOV* Various conditional moves SHR/SAR Shift right logical/arithmetic
XCHG Exchange SHL/SAL Shift left logical/arithmetic
BSWAP Byte swap ROR/ROL Rotate right/left
PUSH/POP Stack usage RCR/RCL Rotate right/left through carry bit
ADD/ADC Add/with carry BT/BTS/BTR Bit test/and set/and reset
SUB/SBC Subtract/with carry JMP Unconditional jump
MUL/IMUL Multiply/unsigned JE/JNE/JC/JNC/J* Jump if equal/not
equal/carry/not carry/ many others
DIV/IDIV Divide/unsigned LOOP/LOOPE/LOOPNE
Loop with ECX
INC/DEC Increment/Decrement CALL/RET Call subroutine/return
NEG Negate NOP No operation
CMP Compare CPUID CPU information
19
Linguagens de Alto-Nível
Programar em assembler excesso de detalhes devidos a natureza da máquina
propensa a erros
baixa produtividade
Meados dos anos 50 surgimento de várias linguagens de alto nível
Nível de abstração cada vez mais elevado mais próximas das linguagens utilizadas pelos seres
humanos
20
Linguagens de Alto-Nível
FORTRAN (1957)
COBOL (1960)
ALGOL (1968)
PASCAL (1970)
C (1972)
C++ (1983)
JAVA (1995)