aula 1 reorganização
This commit is contained in:
parent
e1eda0dd44
commit
52d1a2afbd
1 changed files with 19 additions and 15 deletions
|
@ -1,13 +1,17 @@
|
|||
* Aula 1 – Arquitetura de Computadores
|
||||
#+title: Aula 1 -- Arquitetura de computadores
|
||||
#+author: Blau Araujo
|
||||
#+email: cursos@blauaraujo.com
|
||||
|
||||
** Objetivos
|
||||
#+options: toc:3
|
||||
|
||||
* Objetivos
|
||||
|
||||
- Compreender os principais componentes de um computador sob o modelo de von Neumann.
|
||||
- Reconhecer os registradores da arquitetura x86_64.
|
||||
- Entender a relação entre hardware e código Assembly.
|
||||
- Executar o primeiro programa Assembly com uma chamada de sistema.
|
||||
|
||||
** Modelo de von Neumann
|
||||
* Modelo de von Neumann
|
||||
|
||||
Um computador possui:
|
||||
|
||||
|
@ -32,7 +36,7 @@ Como era antes:
|
|||
- A CPU executa o ciclo: busca → decodifica → executa, mas pode realizar a busca
|
||||
de dados e instruções em paralelo.
|
||||
|
||||
*** Influência nas arquiteturas modernas
|
||||
** Influência nas arquiteturas modernas
|
||||
|
||||
O modelo de Von Neumann influenciou profundamente as arquiteturas modernas de
|
||||
computadores, estabelecendo a base para a maioria dos designs de sistemas
|
||||
|
@ -74,7 +78,7 @@ computacionais atuais. Algumas das principais influências incluem:
|
|||
não estágios do processamento, são executadas simultaneamente.
|
||||
#+end_quote
|
||||
|
||||
*** Gargalo de Von Neumann
|
||||
** Gargalo de Von Neumann
|
||||
|
||||
O gargalo de Von Neumann é uma limitação de desempenho causada pelo fato de que
|
||||
a CPU e a memória compartilham o mesmo barramento para acessar instruções e
|
||||
|
@ -99,7 +103,7 @@ que usa memórias separadas internamente (como em caches) para dados e instruç
|
|||
mantendo um espaço de memória unificado do ponto de vista do programador.
|
||||
#+end_quote
|
||||
|
||||
** Arquiteturas x86
|
||||
* Arquiteturas x86
|
||||
|
||||
A arquitetura x86 é uma família de conjuntos de instruções (ISA – /Instruction
|
||||
Set Architecture/) baseada no modelo de Von Neumann e desenvolvida originalmente
|
||||
|
@ -121,7 +125,7 @@ com AMD64. Assim, AMD64 é a origem técnica da arquitetura x86 de 64 bits utili
|
|||
na maioria dos sistemas modernos.
|
||||
#+end_quote
|
||||
|
||||
*** Características
|
||||
** Características
|
||||
|
||||
- ISA complexa (CISC – /Complex Instruction Set Computing/), com centenas de
|
||||
instruções e modos de endereçamento.
|
||||
|
@ -140,7 +144,7 @@ da arquitetura (como troca de contexto e proteção básica), mas a segmentaçã
|
|||
como era usada no MS-DOS, é totalmente evitada.
|
||||
#+end_quote
|
||||
|
||||
*** Otimizações em relação ao modelo de Von Neumann
|
||||
** Otimizações em relação ao modelo de Von Neumann
|
||||
|
||||
A arquitetura x86 é uma evolução prática do modelo de Von Neumann, com
|
||||
otimizações como:
|
||||
|
@ -149,7 +153,7 @@ otimizações como:
|
|||
- Execução fora de ordem (/out-of-order execution/).
|
||||
- /Pipelines/ e paralelismo interno.
|
||||
|
||||
*** Comparativo com outras arquiteturas
|
||||
** Comparativo com outras arquiteturas
|
||||
|
||||
Todas as arquiteturas modernas seguem, em maior ou menor grau, os princípios
|
||||
do modelo de Von Neumann. No entanto, diferem na forma como organizam e executam
|
||||
|
@ -186,7 +190,7 @@ instruções. Veja o comparativo:
|
|||
| ARM | RISC | Média | Baixo | Celulares, IoT, Apple M1+ |
|
||||
| RISC-V | RISC | Baixa | Baixo | Pesquisa, sistemas embarcados |
|
||||
|
||||
** Componentes de uma CPU x86_64
|
||||
* Componentes de uma CPU x86_64
|
||||
|
||||
- Unidade de Controle (/Control Unit/ - CU) ::
|
||||
|
||||
|
@ -248,7 +252,7 @@ instruções. Veja o comparativo:
|
|||
Responsável por lidar com interrupções externas e internas, gerenciando a
|
||||
prioridade e o tratamento adequado das interrupções no sistema.
|
||||
|
||||
** Principais registradores e seus propósitos (64 bits)
|
||||
* Principais registradores e seus propósitos (64 bits)
|
||||
|
||||
- =RAX=: acumulador/propósito geral
|
||||
- =RBX=: base/propósito geral
|
||||
|
@ -264,7 +268,7 @@ instruções. Veja o comparativo:
|
|||
A arquitetura x86_64 ainda inclui oito registradores de propósito geral, de =R8=
|
||||
a =R15=.
|
||||
|
||||
** Primeiro exemplo em Assembly x86_64
|
||||
* Primeiro exemplo em Assembly x86_64
|
||||
|
||||
#+begin_src asm
|
||||
; Retorna 42 como estado de término
|
||||
|
@ -278,7 +282,7 @@ _start:
|
|||
syscall
|
||||
#+end_src
|
||||
|
||||
*** Compilação e execução (no terminal)
|
||||
** Compilação e execução (no terminal)
|
||||
|
||||
#+begin_example
|
||||
:~$ nasm -f elf64 -o exit42.o exit42.asm
|
||||
|
@ -288,13 +292,13 @@ _start:
|
|||
42
|
||||
#+end_example
|
||||
|
||||
** Exercícios sugeridos
|
||||
* Exercícios sugeridos
|
||||
|
||||
1. Modifique o programa Assembly para retornar "sucesso".
|
||||
2. Desmonte (=objdump -d=) os binários gerados e compare os códigos de máquina.
|
||||
3. Use =strace ./exit42= para verificar a chamada de sistema realizada.
|
||||
|
||||
** Referências
|
||||
* Referências
|
||||
|
||||
- [[https://namazso.github.io/x86/][Intel® 64 and IA-32 Instruction Set Reference]]
|
||||
- [[https://wiki.osdev.org/CPU_Registers_x86-64][OS Dev: CPU Registers x86-64]]
|
||||
|
|
Loading…
Add table
Reference in a new issue