Você está na página 1de 15

Acadêmico: Leandro Victor Girão da Silva

Dispositivos de Entrada e Saída


Pipeline
Arquitetura RISC x CISC
Família de processadores Intel e AMD

Boa Vista – Roraima


Outubro/2017
2

Leandro Victor Girão da Silva

Dispositivos de Entrada e Saída


Pipeline
Arquitetura RISC x CISC
Família de processadores Intel e AMD

Trabalho acadêmico orientado pela


Prof° Espec. Clenya Barros para
obtenção de nota para composição da
N3 do curso de Ciência da
Computação – 2° Semestre/2017.2

Boa Vista – Roraima


Outubro/2017
3

Sumário

1. Introdução……………………………………………………….Pág. 4
2. Dispositivo de Entrada e Saída………………………………..Pág. 5
3. Pipeline…………………………………………………………..Pág.
3.1 Conflitos de Pipeline……………………………………..Pág. 7
3.2 Conflitos Estruturais……………………………………...Pág. 7
3.3 Conflitos de Controle……………………………………..Pág. 7
4. Arquitetura RISC x CISC……………………………………….Pág. 8
5. Família de Processadores Intel e AMD……………………….Pág. 10
5.1 História………………………………………………..........Pág. 10
5.2 Linha do Tempo…………………………………………..Pág. 11
5.2.1 1982……….………………………………………. Pág. 11
5.2.2 1985 - 1990………………………………………...Pág. 11
5.2.3 1993 – 1995 (A quinta geração)……..……….....Pág. 12
5.3 A Era dos 64 Bits………………………………………...Pág. 12
6. Conclusão……………………………………………………….Pág.
7. Referência Bibliográfica………………………………………..
4

1 . Introdução

Esse trabalho tem o objetivo de mostrar a formação completa da arquitetura e


organização de computadores e toda a parte de controles para os futuros
acadêmicos e a interatividade com os dispositivos de primeira mão.
5

2. Dispositivos de Entrada e Saída

De acordo com o modelo previsto por Von Neumann e apresentado ao longo


das seções anteriores, um computador deve ser capaz de armazenar dados e
instruções necessários para a execução de uma tarefa, na memória e no formato
binário. Para que possam ser executados, esses dados e instruções são buscados
pela UCP diretamente na memória. É na memória também que o resultado desse
processamento será disponibilizado. Como esses dados e instruções chegaram à
memória? Como o resultado do processamento desse conteúdo mantido na memória
é retornado ao usuário?

A resposta para essas perguntas é que são necessários elementos que


permitam a interface do usuário com o computador, tanto para dar a entrada de dados
e instruções quanto para proporcionar a saída de resultados ao usuário, no formato
adequado, tal qual foi solicitado.

Esses elementos de interface podem ser chamados de dispositivos (ou


periféricos) de entrada e saída (E/S). São considerados um subsistema de memória,
pois fazem parte do sistema maior que é o sistema computacional, onde os
dispositivos de E/S compõem o chamado subsistema de E/S, o qual, segundo
Monteiro (2007), deve ser capaz de realizar duas funções: a) receber ou enviar
informações ao meio exterior; b) converter as informações (de entrada e saída) em
uma forma inteligível para a máquina (se estiver recebendo) ou para o programador
ou usuário (se estiver enviando).

Interface: é a fronteira ou canal de comunicação que define a forma de


comunicação entre duas entidades (ex.: usuário, computador).

Dentre os diversos dispositivos de E/S podemos citar: teclado, mouse, monitor


de vídeo, impressora, webcam, modem, dispositivos de armazenamento (ex.: disco
rígido, CD/DVD – ROM, pen-drive). Esses dispositivos se interligam à UCP e memória
principal através do barramento de expansão e podem ser classificados em duas
categorias: entrada (teclado, mouse, webcam, modem, disco rígido) e saída
(impressoras, disco rígido, monitor de vídeo). Sublinhamos que o disco rígido, assim
como outros meios de armazenamento, são dispositivos tanto de entrada quanto de
saída. Lembramos que todos os estímulos gerados pelos dispositivos de E/S, por
exemplo - a pressão de uma tecla, são convertidos em vários sinais elétricos, com
6

diferentes intensidades, podendo representar os valores 0 ou 1. Monteiro destaca


algumas observações relevantes que influenciam na comunicação dos dispositivos
com a UCP e memória principal. São elas: – Os dispositivos de E/S apresentam
diferentes características, o que tornaria a comunicação entre UCP e periférico
extremamente complicada, caso esta fosse realizada direta e individualmente (ex.:
comunicação direta entre UCP e teclado, entre UCP e vídeo). Isso ocorre em função
da grande diferença de velocidade entre UCP e os dispositivos de E/S, além de haver
grandes diferenças de velocidade entre os pró- prios dispositivos, como por exemplo
o disco rígido, que é mais rápido que o teclado.

3. Pipeline

Pipeline é uma técnica de implementação de processadores que permite a


sobreposição temporal das diversas fases da execução de instruções.
Tradicionalmente, as instruções do MIPS são executadas em ate 5 passos:

1. Busca da instrução na memória;


2. Leitura dos registradores enquanto uma instrução é decodificada, (o formato das
instruções do MIPS permite que a leitura e a codificação ocorram simultaneamente);
3. Execução de uma operação ou cálculo de um endereço;
4. Acesso a um operando de memória;
5. Escrita do resultado em um registrador;

Portanto, o pipeline do MIPS tem cinco estágios.


Performance do processador monociclo versus performance do processador pipeline
Em condições ideais, o ganho devido ao pipeline é igual ao numero de estágios do
pipe.
Entretanto, por razões de balanceamento imperfeito (estágios gastam mesmo tempo)
overhead do pipeline (representado pelo tempo que se gaste para “encher” todo o
pipe), e o ganho será menor que o numero de estágios do pipeline.
Em suma, o pipeline melhora a performance por meio do aumento do troughput das
instruções, ou seja, aumentando o número de instruções por unidade de tempo, e não
por meio da diminuição de execução de uma instrução individual.
Projeto do conjunto de instruções para execução em pipeline
7

Todas as instruções do MIPS têm o mesmo tamanho que torna simples a busca das
instruções e sua decodificação.
O MIPS tem poucos formatos de instruções, sempre com o registrador-fonte
localizado na mesma posição. Essa simetria permite que seja realizada a leitura do
banco de registradores ao mesmo tempo em que o hardware está determinando o tipo
de instrução.
Na arquitetura do MIPS só as instruções de load Word ou store Word é que
manipulam operandos na memória, permitindo usar o estágio de execução para
efetuar o cálculo do endereço de memória, sendo o acesso à memória realizado no
próximo estagio.
Os operandos do MIPS precisam estar alinhados na memória.

2.1 Conflitos do Pipeline


Existem situações em que a instrução seguinte não pode ser executada no próximo
ciclo de clock.

3.2. Conflitos estruturais


Significa que o hardware não pode suportar a comunicação de instruções que
o pipeline deseja executar no mesmo ciclo de clock. No caso do MIPS, suponha que
só tivéssemos uma única memória, em vez de duas (instruções e dados). No
pipeline a primeira instrução estaria acessando um dado da memória e a quarta
estaria sendo buscada na mesma memória, no mesmo ciclo de clock.

3.3. Conflitos de Controle


Se origina da necessidade de se tomar uma decisão com base nos resultados
de uma instrução, enquanto outras estão sendo executadas. Parada do Pipeline =
bolha (inserção de uma instrução NOP).
Soluções

Parada: Ocorre uma perda de performance muito alta. Torna-se necessário inserir
no pipeline
um estagio de parada, ou bolha após o desvio condicional.
Predição: Um esquema simples é sempre predizer que os desvios condicionais vão
falhar.
8

Quando você estiver certo, o pipeline prossegue na velocidade máxima. Somente


quando os desvios se realizarem é que há necessidade de se atrasar o avanço
normal das instruções por meio do pipeline.

4. Arquitetura RISC x CISC


‘ Até o momento foram apresentadas algumas características das instruções de
máquina, destacando que arquitetura de um processador está fortemente relacionada
com o seu conjunto de instruções e que um processador sempre estará preparado
para processar instruções básicas (ex.: soma, subtração, comparação). A presença
de outros tipos de instruções depende da orientação da arquitetura (Complex
Instruction Set Computer – CISC ou Reduced Instruction Set Computer – RISC) e se
está voltada para aplicações gerais ou específicas.
Nesta aula discutimos a organização e arquitetura do processador (UCP), com
destaque para o modelo de Von Neumann, o qual previa que o computador deveria:
codificar instruções que pudessem ser armazenadas na memória, e que utilizassem
cadeias de uns e zeros (binário) para codificá-las, armazenar na memória as
instruções e todas as informações que fossem necessárias para a execução da tarefa
desejada e, ao processarem o programa, as instruções fossem buscadas diretamente
na memória. Vimos também que a Unidade Central de Processamento (UCP) é
composta por várias partes distintas, entre elas: registradores, Unidade de Controle
(UC) e Unidade Lógica Aritmética (ULA). A UCP pode ser dividida em duas categorias
funcionais, as quais podem ser chamadas de unidade, conforme segue: Unidade
Funcional de Controle e a Unidade Funcional de Processamento. A Unidade Funcional
de Processamento é composta pelos seguintes elementos: Registradores, ACC, ULA.
A Unidade Funcional de Controle é composta pelos seguintes elementos: RDM, REM,
CI, RI, Decodificador de Instruções, UC, Clock (relógio). Foi apresentado um tópico
específico acerca de barramentos, em que foi mostrado o conceito de Monteiro (2007),
que entende ser um conjunto de condutores elétricos que interligam os diversos
componentes do computador e de circuitos eletrônicos que controlam o fluxo dos bits.
O barramento de um sistema computacional, denominado barramento do sistema, é
o caminho por onde trafegam todas as informações dentro do computador. Esse
barramento é formado basicamente por três vias específicas/ funções básicas:
barramento de dados – interliga o RDM (localizado na UCP) à memória principal, para
transferência de instruções ou dados a serem executados; barramento de endereços
9

– interliga o REM (localizado na UCP) à memória principal, para transferência dos bits
que representam um determinado endereço de memória onde se localiza uma
instrução ou dado a ser executado e; barramento de controle – interliga a UCP, mais
especificamente a Unidade de Controle (UC) aos demais componentes do sistema
computacional (memória principal, componentes de entrada e de saída) para
passagem de sinais de controle gerados pelo sistema
De acordo com Monteiro (2007), existe uma grande diferença de características dos
diversos componentes existentes em um computador, principalmente periféricos (ex.:
a velocidade de uma transferência de dados de um teclado é muitas vezes menor que
a velocidade de transferência de dados de um disco magnético). Considerando esse
fato, os projetistas de sistemas de computação criaram diversos tipos de barramento,
apresentando taxas de transferência de bits diferentes e apropriadas às velocidades
dos componentes interconectados (ex.: UCP, memória, disco rígido, teclado). Assim,
atualmente os modelos de organização de sistemas de computação adotados pelos
fabricantes possuem diferentes tipos de barramento: barramento local – barramento
de maior velocidade de transferência de dados, interligando basicamente a UCP à
memória principal; barramento de sistema – trata-se de um barramento opcional,
adotado por alguns fabricantes, fazendo com que o barramento local faça a ligação
entre o processador e a memória cache e esta se interligue com os módulos de
memória principal (RAM) através dele; e barramento de expansão (ou de entrada e
saída) – é responsável por interligar os diversos dispositivos de entrada e saída aos
demais componentes do computador. Os barramentos permitem o seu
compartilhamento com os demais componentes do sistema, especialmente o
barramento de expansão, que é compartilhado com diversos dispositivos de entrada
e saída. Para que isso ocorra, é indispensável um mecanismo de controle de acesso
baseado em regras, que garanta que quando um dos dispositivos estiver utilizando o
barramento, os demais componentes deverão aguardar a sua liberação. Esse
mecanismo de controle de acesso é denominado protocolo, fazendo com que um
barramento não seja composto somente de fios condutores, mas também de um
protocolo. Sendo assim, os fabricantes de computadores têm procurado criar uma
padronização na definição de protocolos, de forma a evitar que cada um crie o seu
próprio, com características diferentes dos demais, o que tornaria muito inflexível o
uso de certos componentes (ex.: vídeo, impressoras, discos rígidos) disponibilizados
no mercado. Dessa forma, muitos padrões de barramento de expansão foram
10

desenvolvidos ao longo do tempo, alguns deles já não mais utilizados. Os mais


populares são apresentados a seguir, conforme Monteiro (2007): PCI, USB, AGP, PCI
Express. Cada um desses barramentos apresenta um slot ou encaixe específico na
placa-mãe do computador, permitindo maior flexibilidade no uso de periféricos .

5. Família de Processadores Intel e AMD

O microprocessador, popularmente chamado de processador, é um circuito integrado que


realiza as funções de cálculo e tomada de decisão de um computador. Todos os
computadores e equipamentos eletrônicos baseiam-se nele para executar suas funções. O
primeiro microprocessador comercial foi inventado pela Intel em 1971 para atender uma
empresa japonesa que precisava de um circuito integrado especial. A Intel projetou o 4004
que era um circuito integrado programável que trabalhava com registradores de 4 bits, 46
instruções, clock de 740Khz e possuía cerca de 2300 transistores. Como grande concorrente
da Intel, a AMD aparece inicialmente como fabricante de microprocessadores da linha x86
alternativa, mas a partir de certo momento deixou de correr atrás da Intel e partiu para o
desenvolvimento de sua própria linha de microprocessadores. A evolução tecnológica
envolvida é surpreendentemente grande, de microprocessadores que trabalhavam com clock
de dezenas de kHz e que podiam processar alguns milhares de instruções por segundo,
atingiu-se clocks na casa dos 4 GHz e poder de processamento de dezenas de bilhões de
instruções por segundo. A complexidade também cresceu: de alguns milhares de transístores
para centenas de milhões de transístores numa mesma pastilha. O CPU tem como função
principal unificar todo o sistema, controlar as funções realizadas por cada unidade funcional,
e é também responsável pela execução de todos os programas do sistema, que deverão estar
armazenados na memória principal.

5.1 História
Em 1976, ano no qual a AMD e Intel assinam seu primeiro acordo de troca de licenças,
por meio do qual concordam em licenciar para a outra parte todas as patentes que
cada uma das empresas detém. Nessa época a Intel já tinha criado o
microprocessador 8085 de 2 MHZ e a AMD tinha um clone do 8080, o antecessor. A
partir desse momento começa uma parceria de sucesso que depois vai culminar em
uma das maiores competições do mundo da informática.

5.2 Linha do Tempo


11

5.2.1 1982
A IBM escolhe um microprocessador Intel para seu PC, mas somente com a condição de
que haja um fornecedor alternativo confiável para atender às suas necessidades em termos
de processadores para PC. O resultado disso é que a AMD renova seu acordo abrangente de
troca de licenças com a Intel e se torna fabricante alternativo dos microprocessadores 8086 e
8088 para a IBM. Um juiz da Califórnia disse posteriormente que, ao concordar em ser um
fornecedor alternativo para a Intel, “a AMD veio para ajudar a Intel quando esta precisava de
assistência para estabelecer sua primeira arquitetura [de microprocessador] do mercado.”
Essa iniciativa contribuiu para que a Intel estabelecesse o x86 como arquitetura dominante
para o PC. Lançamento do Intel 80286 e seus clone da AMD.
A diferença mais significativa entre os 80286 e 8086/8088 é a adição de um modo
protegido. Entre outras coisas, o modo protegido permite a execução segura de vários
programas ao mesmo tempo, protegendo cada programa na memória. DOS normalmente
opera em modo real, em que os registradores de agem exatamente como eles fazem no
8086/8088. Modo Protegido é usado pelo Microsoft Windows, IBM OS / 2 e UNIX.l
Com o 80286, os primeiros "chipsets" foram introduzidos. O chipset do computador é
um conjunto de chips que substituíram dezenas de outros chips periféricos, mantendo a
mesma funcionalidade.

5.2.2 1985-1990
Nesse período começa divisão entre AMD e Intel. 1987 - A Intel notifica a AMD que
está encerrando o acordo de fornecimento alternativo, numa atitude agressiva para impedir
que a AMD produzisse um microprocessador compatível com a plataforma 486. A notificação
dá início a anos de disputas judiciais entre a AMD e a Intel, e limita a escolha do cliente a um
único fornecedor de microprocessadores para PC nos anos seguintes.
Em 1985 a Intel lança o 80386, que foi o sucessor do processador 80286 e o primeiro
processador da Intel com os dados de 32 bits e barramento de endereços. Ele permite que
programas sejam executados ao mesmo tempo (quando executado em sistemas operacionais
de 386-específicas), utilizando o Modo Protegido. O 386 pode endereçar até quatro gigabytes
(2 ^ 32 bytes) de memória usando Enhanced Mode, uma extensão de 32 bits do modo
protegido. Ao contrário do 286, porém, dentro de cada segmento pode-se usar deslocamentos
de 32 bits, o que permitiu a cada aplicação acessar os 4GB da memória. No entanto, era típico
ter somente 16 megabytes em PCs da IBM.
Com o 386, a Intel introduziu o sistema de nomeação 'DX' - 'SX. DX significa Double-
word eXternal, SX Single-word eXternal. As versões SX, portanto, são a versão de menor
velocidade dos 386 (DX), introduzido em 1989. Eles usam 16 bits ao invés de um barramento
12

de 32 bits de dados. A próxima geração é o Intel 486, que não apresenta muitas melhorias
em relação ao seu antecessor, a AMD também mantém seus lançamentos AM386 e AM486
após vencer disputas judiciais, esses processadores apresentam melhorias em relação ao da
Intel, mas seu maior sucesso em relação ao concorrente é o preço.

5.2.3 1993 – 1995 (A quinta geração)


O Intel Pentium é a quinta geração da arquitetura x86 de microprocessadores, introduzido em
22 de março de 1993. É o sucessor da linha 486. O Pentium foi criado originalmente para ser
nomeado 80586 ou i586, mas o nome foi alterado para Pentium, porque os números não
podiam ser patenteados. 586, porém, é utilizada na programação referindo-se a todos os
processadores Pentium, e os processadores Pentium, feito pela concorrência da Intel.
As primeiras versões de 60-100 MHz Pentiums teve um problema na unidade de ponto
flutuante que, em casos raros, resultou em precisão reduzida de operações de divisão. Este
bug, descoberto em 1994, ficou conhecido como o bug FDIV Pentium e causou grande
embaraço para a Intel, que criou um programa de trocas para substituir o transformador
defeituoso. A 60 e 66 Mhz 0,8 mM de versões do Pentium também ficaram conhecidos pela
sua fragilidade e seus, altos níveis de produção de calor.
A primeira tecnologia desenvolvida pela AMD foi o processador K5 (com K de
Kryptonite) que foi lançado em 1995, concorrente direto do Pentium (Pentium 1 ou 586),
lançado em 1993.
Infelizmente, o processador AMD foi entregue com um ano de atraso em relação ao
seu concorrente e em velocidades muito mais baixas do que tinha sido inicialmente previsto.
Como resultado, em vez de ser o "assassino Pentium". A AMD esperava, o K5 foi posicionado
como uma alternativa de baixo custo. O K5 é, internamente, um processador muito avançado,
o mais avançado dos "chips" de quinta geração. Internamente é mais comparável ao Pentium
Pro.

5.3 A ERA 64 BITS


Pulamos algumas gerações para falar do início da era dos microprocessadores de 64
bits, pois, esse foi um momento divisor, no qual a AMD saiu na frente da Intel.
O Athlon 64 foi o primeiro microprocessador para computadores de mesa (desktops)
a utilizar as instruções x86-64 (a AMD mais tarde trocou o nome da arquitetura para AMD64;
a Intel usa a expressão EM64T). Uma característica importante e inovadora é a controladora
de memória integrada no processador.
13

• Possui 16 registradores de propósito geral (GPR) de 64 bits. Pode acessar até 1 TB


de memória física e 256 TB de memória virtual;
• Tecnologia EVP (Enhanced Vírus Protection), também conhecida como “NX Bit
Disable”;
• Tecnologia Cool’n’Quiet.
• 64 KB de cache L1 de instruções e 64 KB de cache L1 de dados;
• 512 KB ou 1 MB de cache L2;
• Tecnologia de 130 nm, 90nm ou 65nm;
• HT800 ou HT1000 ( HyperTransport ).
A história do projeto EM64T é longa e complicada, principalmente devido a políticas
internas da Intel. Começou com o nome de código Yamhill (nome inspirado numa localidade
do Oregon nos EUA). Após vários anos a negar que este projeto existia, a Intel eventualmente
admitiu no início de 2004 a sua existência, dando-lhe aí o nome de código CT (Clackamas
Technology), (Clackamas é uma localidade vizinha de Yamhill). Então, dentro de um espaço
de semanas do anúncio da Intel, a companhia renomeou o projecto várias vezes: após o Intel
Developer Forum da primavera de 2004, a Intel batizou-o de IA- 32E (IA-32 Extensions) e
umas semanas mais tarde criaram o nome EM64T. O Chairman da Intel, Craig Barrett, admitiu
que este foi um dos seus segredos mais mal guardados.
14

6. Conclusão
Os dispositivos de entrada e saída (E/S) ou input/output (I /O) são também
denominados periféricos. Eles permitem a interação do processador com o homem,
possibilitando a entrada e/ou a saída de dados. O que todos os dispositivos de entrada
têm em comum é que eles codificam a informação que entra em dados que possam
ser processados pelo sistema digital do computador. Já os dispositivos de saída
decodificam os dados em informação que pode ser entendida pelo usuário. Há
dispositivos que funcionam tanto para entrada como para saída de dados, como o
modem e o drive de CD-ROM.
Atualmente, outro dispositivo híbrido de dados é a rede de
computadores. Como as arquiteturas RISC visam Unidades de Controle mais simples,
rápidas e baratas, elas geralmente optam por instruções mais simples possível, com
pouca variedade e com poucos endereços. A pouca variedade dos tipos de instrução
e dos modos de endereçamento, além de demandar uma Unidade de Controle mais
simples, também traz outro importante benefício, que é a previsibilidade. Como as
intrusões variam pouco de uma para outra, é mais fácil para a Unidade de Controle
prever quantos ciclos serão necessários para executa-las. Esta previsibilidade traz
benefícios diretos para o ganho de desempenho com o Pipeline. Ao saber quantos
ciclos serão necessários para executar um estágio de uma instrução, a Unidade de
Controle saberá exatamente quando será possível iniciar o estágio de uma próxima
instrução.
15

Referências Bibliográficas

https://www.passeidireto.com/arquivo/5741747/pipeline---resumo

http://redeetec.mec.gov.br/images/stories/pdf/eixo_infor_comun/tec_inf/081112_org_
arq_comp.pdf

http://www.ic.unicamp.br/~ducatte/mo401/1s2010/T2/087563-t2.pdf

Wikipedia. Acessado em 29 de Outubro de 2017 de http://pt.wikipedia.org/wiki/AMD e


http://pt.wikipedia.org/wiki/Intel .