Sunteți pe pagina 1din 4

1 Objetivo

O objetivo desse trabalho é definir os principais conceitos acerca de


microprocessadores de modo que os conceitos teóricos e linguajar técnico sejam de
conhecimento dos estudantes. As diferenças entre arquitetura de processadores RISC
e CISC, arquitetura Harvard, Von Neumann e não Von Neumann, linguagem assembly
e linguagem C, bem como a distinção entre processadores ARM, x64 e x86 serão
contempladas neste texto.

2 Introdução
O desenvolvimento dos transistores foi um marco na história da engenharia, pois
permitiu a fabricação de dispositivos eletrônicos portáteis. Os circuitos chaveados,
lógicos e os amplificadores pararam, então, de ser implementados através de válvulas
e essas funções começaram a ser desempenhadas por transistores, sejam eles
bipolares de junção (TBJ) ou por efeito de campo (FET).
Com isso vieram as invenções e desenvolvimento das arquiteturas e linguagem
de programação que são utilizadas, atualmente, na implementação de circuitos e lógicas
para microprocessadores.

3 CISC E RISC
CISC e RISC são tipos de arquitetura de processadores. Enquanto RISC
(Reduced Instruction Set Computing) preza por um set de instruções reduzido e simples,
a CISC (Complex Instruction Set Computing) busca a redução do código executável dos
programas.
A vantagem da arquitetura CISC encontra-se no fato de uma única instrução
executar múltiplas operações já que essas instruções já estão guardadas no próprio
processador (microprogramação), com isso, a programação é facilitada e reduzida em
tamanho. Por ser muito abrangente, o seu conjunto de instruções é grande e com alto
nível de complexidade. Essa abrangência leva a um ponto negativo do CISC que é a
velocidade, já que algumas operações da instrução podem ser executadas sem
necessidade.
Já na arquitetura RISC o conjunto de instruções é menor e todas tem o mesmo
tamanho, isso ocorre pela busca da redução de acesso à memória e da melhoria de
desempenho, criando uma arquitetura que trabalha em pipeline, onde todas as
operações ocorrem no mesmo ciclo de clock nos diversos estágios da “linha de
montagem” da programação. Apesar disso, o programa é maior pela necessidade de
implementar diversas instruções, dando mais trabalho ao programador que deve
combinar as instruções simples se quiser utilizar algum comando mais complexo.

RISC CISC
Múltiplos conjuntos de registradores Único conjunto de registradores
(muitas vezes mais de 256) (normalmente entre 6 e 16)
Três operandos de registradores por No máximo dois operandos de
instrução registradores por instrução
Passagem eficiente de parâmetros pelos Passagem ineficiente de parâmetro pela
registradores memória
Instruções de único ciclo Instruções de múltiplo ciclo
Controle hardwired Controle microprogramado
Altamente paralelizado Fracamente paralelizado
Instruções simples e em número Instruções complexas
reduzido
Instruções de tamanho fixo Instruções de tamanho variável
Complexidade no compilador Complexidade no código
Poucas instruções Grande número de instruções
Mais barato Mais custoso
Apenas load e store podem acessar a Muitas instruções podem acessar a
memória memória
Poucos modos de endereçamento Muitos modos de endereçamento
Tabela 1: comparação entre RISC e CISC

É interessante notar a diferença entre o número de registradores utilizados em


CISC e RISC. Isso se deve ao fato de estudos indicarem que as chamadas de funções
consomem um tempo significativo de processador. Elas requerem poucos dados, mas
demoram muito tempo nos acessos a memória. Por isso, na arquitetura RISC foram
utilizados mais registradores. As chamadas de função que na arquitetura CISC ocorriam
com acessos a memória, mas na RISC isso era feito dentro do processador mesmo,
utilizando os registradores que foram colocados a mais.
Atualmente, usa-se um hibrido das duas arquiteturas: internamente, o
processador processa apenas instruções simples (RISC), que variam de processador
para processador; sobre estas instruções internas, temos um circuito decodificador, que
converte as instruções complexas (CISC), que são comuns a todos os processadores,
utilizadas pelos programas em várias instruções simples que podem ser entendidas pelo
processador.

4 Arquitetura Von Neumann, Arquitetura Harvard e Arquitetura Não


Von Neumann
A Arquitetura Von Neumann, é uma arquitetura de computador que se
caracteriza pela possibilidade de uma máquina digital armazenar seus programas no
mesmo espaço de memória que os dados, podendo assim manipular tais programas. A
máquina proposta por Von Neumann reúne os componentes como representados na
figura abaixo. Além disso, é importante notar que todas as operações ocorrem de forma
não simultânea já que existe apenas um barramento.

Figura 1: organização dos componentes na arquitetura Von Neumann


A Arquitetura de Harvard baseia-se em um conceito mais recente que a de Von
Neumann, tendo vindo da necessidade de um microcontrolador mais rápido. É uma
arquitetura de computador que se distingue das outras por possuir duas memórias
diferentes e independentes em termos de barramento – memória de instrução do
programa e memória de dados – e ligação ao processador, o que permite o acesso
simultâneo a elas. Isso melhora o desempenho em relação à Arquitetura Von Neumann
pois é possível executar uma instrução enquanto busca outra em um processo de linha
de montagem (pipelining).

Figura 2: esquemático da arquitetura Harvard

Von Neumann foi pioneiro no desenvolvimento do conceito de arquitetura e na


classificação. Sendo assim, tudo o que não pode ser classificado como arquitetura
computacional Von Neumann é considerada arquitetura não Von Neumann. Além da
arquitetura Harvard, existem diversas outras que podem ser definidas como arquitetura
não Von Neumann, como por exemplo as máquinas de fluxo de dados e as redes
neurais artificiais.

Von Neumann Harvard


Acesso não simultâneo às Acesso simultâneo às
memórias memórias
Geralmente implementado Geralmente implementado
com CISC com RISC
Única memória para Armazenamento de
instruções e dados instruções e dados
separadas
Processo lento por ter Processo rápido por
execução em único possuir diversos
barramento ligando a CPU barramentos
à memória
Tabela 2: comparação entre arquitetura Von Neumann e arquitetura Harvard

5 ARM, x64 e x86


Os processadores ARM tem entre as suas principais características o baixo
consumo de energia, baixa dissipação de calor, trabalho em frequências baixas e
utilização, em geral, de arquitetura RISC. Essas características os tornam adequados
para o uso em dispositivos móveis, que prezam por uma bateria duradoura ao invés de
rapidez nos processos.
Já os processadores x64 e x86 necessitam de sistemas de refrigeração,
consomem mais energia, garantem um consumo mais eficiente da memória RAM,
trabalham de forma mais rápida devido a frequência do clock e utilizam como base a
arquitetura CISC, sendo usados principalmente em computadores.
Apesar de terem algumas características em comum, os processadores x64 e
x86 se diferem no set de instruções, bem como no tamanho de instruções e
referenciamento de memória com que podem lidar. Enquanto o x64 trabalha com
instruções de 64 bits, o x86 é o processador de 32 bits. Com isso, sem que sejam
realizados artifícios no código, o x86 só é capaz de acessar uma memória de 4GB
enquanto o x64 acessa duas vezes esse número.

6 Linguagem Assemby e Linguagem C


A linguagem assemby é uma linguagem de baixo nível, ou seja, seus
mnemônicos são referentes à exata operação que ocorre no processador. Sendo assim,
a linguagem assembly não depende do compilador para escrever o código em baixo
nível, já que a tradução para a escrita na máquina sempre gerará o mesmo. Entretanto,
ao usar assembly é necessário um número maior de instruções e, por isso é mais
indicada para programas pequenos, já que alterar um código assembly, por lidar com
registradores, pode trazer muitos erros.
Já a linguagem C é uma linguagem de alto nível e, por isso, o compilador tem
papel fundamental para a eficiência do código, já que todas as instruções são traduzidas
por ele, sendo imprescindível a utilização de compiladores de qualidade.
Apesar disso, é importante se ter uma noção das operações assembly por trás
de um programa escrito em C. Já que, embora a codificação em assembly seja mais
susceptível a erros que em C, é possível otimizar trechos do código já compilados do C
para assembly diretamente nessa linguagem, adaptando esses trechos às
particularidades assembly do hardware utilizado.

7 Referências Bibliográficas
https://www.youtube.com/watch?v=g2cbAlDwY64
https://www.gruponetcampos.com.br/2011/03/17/arquitetura-cisc-e-risc-qual-diferenca/
http://producao.virtual.ufpb.br/books/edusantana/introducao-a-arquitetura-de-
computadores-livro/livro/livro.chunked/ch04s04.html
http://ac-rak.blogspot.com.br/
http://www.diegomacedo.com.br/arquitetura-von-neumann-vs-harvard/
http://www.walkerb.net/blog/x64-vs-arm/
https://www.quora.com/What-is-the-actual-difference-between-x86-ARM-and-MIPS-
architectures
http://www.diegomacedo.com.br/arquitetura-de-processadores-risc-e-cisc/
https://www.techadvisor.co.uk/feature/pc-components/32-bit-vs-64-bit-3584953/
http://net-informations.com/q/mis/x86.html
https://www.palpitedigital.com/qual-a-diferenca-entre-windows-x86-x64-qual-o-seu/
https://www.androidauthority.com/arm-vs-x86-key-differences-explained-568718/

S-ar putea să vă placă și