quinta-feira, 26 de janeiro de 2017

Interrupções de tarefas

Na Ciência da Computação, uma interrupção é um sinal de um dispositivo que tipicamente resulta numa troca de contextos, isto é, o processador para de fazer o que está fazendo para atender o dispositivo que pediu a interrupção.
Computadores digitais geralmente oferecem uma maneira de iniciar rotinas de software em resposta a eventos electrónicos assíncronos. Esses eventos são sinalizados para o processador através de pedidos de interrupção (IRQs). O processamento da interrupção compõe uma troca de contexto para uma rotina de software especificamente escrita para tratar a interrupção. Essa rotina é chamada rotina de serviço de interrupção, ou tratador de interrupção (interrupt handler). Os endereços dessas rotinas são chamados vetores de interrupção e são armazenados geralmente numa tabela na memória RAM, permitindo a sua modificação caso seja necessário. 
As Interrupções foram concebidas para evitar o desperdício de tempo computacional em loops de software (chamados polling loops) esperando os eventos que serão disparados por dispositivos. Ao invés de ficarem parados á espera do evento acontecer, os processadores tornaram-se capazes de realizar outras tarefas enquanto os eventos estão pendentes. A interrupção avisa ao processador quando o evento ocorreu, permitindo dessa forma uma acomodação eficiente para dispositivos mais lentos.

ULA ou ALU e UC

A unidade lógica e aritmética (ULA) ou em inglês Arithmetic Logic Unit (ALU) é um circuito digital que realiza operações lógicas e aritméticas. A ULA é uma peça fundamental da unidade central de processamento (CPU), e até dos mais simples microprocessadores. É na verdade, uma "grande calculadora eletrônica" do tipo desenvolvido durante a II Guerra Mundial, e a sua tecnologia já estava disponível quando os primeiros computadores modernos foram construídos.
A unidade de controlo (UC) é responsável pela interpretação das instruções do programa e pelo sequenciamento temporal das atividades necessárias para a sua execução; E tem como função: 
  • Procurar instruções na memória principal;
  • Determinar o tipo dessas instruções;

Hierarquia de memória

Na arquitectura de computadores, hierarquia de memória normalmente refere-se a uma tabela ou pirâmide que faz relação entre vários tipos de memória. Tais memórias são categorizadas entre si através da comparação das suas características.
Como se poderia esperar, as 3 características principais da memória-custo, capacidade, tempo de acesso.Uma variedade de tecnologias é utilizada para a implementação de sistemas de memória.
  • Tempo de acesso mais rápido, custo por bit maior.
  • Capacidade maior, custo por bit menor.
  • Capacidade maior, tempo de acesso maior.

Principais memórias organizadas tipicamente numa hierarquia de memórias por tempo de acesso

Registrador → Cache → Memória RAM → Memória secundária
Registrador: Memória temporária usada pelo processador no processamento das instruções.

EPROM/ROM: Memória onde se guardam as instruções de inicialização dos computadores.

Cache: Armazena partes da memória principal que são usados frequentemente pelos programas.

Memória RAM: Memória principal do computador, sendo diretamente endereçável pelo processador.

Memória secundária: Memória de armazenamento permanente.

quarta-feira, 23 de novembro de 2016

Hyper Threading

  • Hyper-Threading ou hiperprocessamento é uma tecnologia usada em processadores que faz com que cada núcleo do processador possa executar mais de um processo de uma única vez, tornando o sistema mais rápido quando se usam vários programas ao mesmo tempo. É uma tecnologia desenvolvida pela Intel e foi primeiramente empregada no processador Pentium 4 de núcleo Northwood, de 32 bit. Apesar do foco da tecnologia Hyper-Threading ser os processadores para servidores de rede, os processadores da série Intel® Core2™ (Extreme Edition) e Intel® Core™ (i3 e i7) usufruem dessa tecnologia proporcionando até 12 núcleos totais (i7 4960x). Essa técnica foi criada para oferecer maior eficiência na utilização dos recursos de execução do processador. Segundo a Intel, a Hyper-Threading oferece um aumento de desempenho de até 30% dependendo da configuração do sistema.

  • A simulação do segundo processador é feito utilizando partes não aproveitadas do processador na previsão de desvio do pipeline. Estas partes são conhecidas como bolhas do pipeline e não teriam utilidade nenhuma desperdiçando ciclos. Simulando em um único processador físico dois processadores lógicos, cada processador lógico recebe seu próprio controlador de interrupção programável (EPIC) e um conjunto de registradores. Os outros recursos do processador físico como cache de memória, unidade lógica e aritmética, barramentos, são compartilhados entre os processadores lógicos, parecendo assim um sistema com dois processadores.

  • Um efeito colateral do Hyper-Threading é o aumento do consumo de energia e, conseqüentemente, a dissipação térmica do processador em 6 a 8%.


Arquiteturas RISC x CISC

  • O projeto do Conjunto de Instruções inicia com a escolha de uma entre duas abordagens, a abordagem RISC e a CISC. 
  • O termo RISC é a abreviação de Reduced Instruction Set Computer, ou Computador de Conjunto de Instruções Reduzido e CISC vem de Complex Instruction Set Computer, ou Computador de Conjunto de Instruções Complexo. 
  • Um computador RISC parte do pressuposto de que um conjunto simples de instruções vai resultar numa Unidade de Controle simples, barata e rápida
  • Já os computadores CISC visam criar arquiteturas complexas o bastante a ponto de facilitar a construção dos compiladores, assim, programas complexos são compilados em programas de máquina mais curtos. Com programas mais curtos, os computadores CISC precisariam acessar menos a memória para buscar instruções e seriam mais rápidos.
Os processadores RISC geralmente adotam arquiteturas mais simples e que acessam menos a memória, em favor do acesso aos registradores. A arquitetura Registrador-Registrador é mais adotada, enquanto que os computadores CISC utilizam arquiteturas Registrador-Memória.

CaracterísticasRISCCISC
ArquiteturaRegistrador-RegistradorRegistrador-Memória
Tipos de DadosPouca variedadeMuito variada
Formato das InstruçõesInstruções poucos endereçosInstruções com muitos endereços
Modo de EndereçamentoPouca variedadeMuita variedade
Estágios de PipelineEntre 4 e 10Entre 20 e 30
Acesso aos dadosVia registradoresVia memória

quinta-feira, 6 de outubro de 2016

 A evolução dos microprocessadores


  •       1978 - Intel 8086-8080

O 8086 era um verdadeiro processador de 16 bits e comunicava com as placas por uma ligação de dados de 16 vias. Mas em 1979 a venda à nova divisão de computadores pessoais da IBM fez do 8088 o cérebro do novíssimo êxito da IBM - o IBM PC. O sucesso do 8088 introduziu a Intel nas listas da Fortune 500, e companhia ainda foi nomeada como “Triunfos Empresariais dos Anos Setenta”. Era um processador de 16 bits, mas comunicava com as placas apenas por uma ligação de 8 bits. Trabalhava com um clock 4MHz e 1MB de RAM.
  •          1980 – Intel 80186

O 80186 foi um microprocessador desenvolvido pela Intel e lançado no mercado em 1982. O 80186 foi na verdade uma melhoria de seu predecessor 8086. O 80186 tinha um barramento externo de 16 bits, mas existia uma versão simplificada com o barramento externo de 8 bits, o Intel 80188. A versão inicial do 80186 tinha um clock de 6MHz, o que aliado a otimizações em seu núcleo fazia com que ele fosse muito mais rápido que um 8086. O Intel 80186 foi pouco usado em computadores pessoais, sendo geralmente encontrado em sistemas embarcados como roteadores por exemplo.
O Intel 80188 foi uma versão do microprocessador 80186 com o barramento externo de 8 bits, ao invés dos 16 bits originais. Apesar das diferenças externas, internamente um 80188 é muito similar ao 80186, sendo que ambos executam 1 milhão de instruções por segundo.
  • 1982 – Intel 80286

Mais conhecido por 286, foi o primeiro processador que executava todo o software escrito para o seu predecessor. Esta compatibilidade de software continua a ser uma tradição na família de processadores da Intel. Em apenas 6 anos após o lançamento, estima-se que se compraram cerca de 15 milhões de computadores pessoais baseados no 286 em todo o mundo. Era um processador a 16 bits capaz de endereçar memória de até 16MB de RAM e era também capaz de trabalhar com memória virtual. O 286 foi o primeiro processador "real". Foi também com ele que se introduziu o conceito de protection mode. Isto é a habilidade de ter multitarefa, ter diferentes programas separados sendo executados ao mesmo tempo. Esta nova habilidade não foi aproveitada pelo DOS, mas os sistemas operacionais que vieram depois, como o Windows 9x e Unix a utilizaram bastante. Este chip foi usado pela IBM no PC AT. Trabalhava a cerca de 6MHz, e modelos posteriores conseguiram funcionar a 20MHz.
  •          1985 – Intel 386, 386SX e 386SL

O 80386 ou 386 era constituído por 275.000 transistores, mais de 100 vezes o 4004. Foi com este chip que tudo verdadeiramente começou, os PCs passaram a ser ferramentas de trabalho bastante úteis. Foi o primeiro processador de 32 bits e podia conseqüentemente consumir o dobro de informação. Foram desenhados para ser user-friendly e eram compatíveis pino-por-pino e de binários com as famílias anteriores da Intel a partir do 186. Também trabalhavam a baixa voltagem e usavam o System Management Mode para desligar componentes para poupar energia. Logo depois a Intel desenvolveu o 386SX que seria uma versão de baixo custo similar ao 8088 no IBM PC original, ou seja, tinha barramento interno de 32bits, porém um externo de 16bits. Além do 386SX, surgiu o 386SL voltado para Laptops e com funções para gerenciamento de energia para economizar nas baterias.
  •          1989 – Intel 486DX

Os Intel 486 são uma família de microprocessadores CISC da Intel que fazem parte da família de processadores x86. Seu predecessor foi o processador 386. Foi nomeado sem o prefixo usual "80" porque uma corte de justiça vetou a patente de um simples número (como 80486) e então a Intel abandonou completamente a nomeação baseada somente em números a partir do seu sucessor, o processador Pentium.
Do ponto de vista do software, o conjunto de instruções da família i486 é similar ao do seu predecessor com a adição de umas poucas instruções extras.
Entretanto, do ponto de vista do hardware, a arquitetura do i486 é um grande avanço. Ele vem com um cache de dados e instruções no chip, uma unidade de ponto flutuante (FPU) adicional, pela primeira vez dentro do chip (os modelos DX), e uma unidade de interface de barramento aprimorada. Em adição a isso, o núcleo do processador pode sustentar a taxa de execução de uma instrução por ciclo de clock. Esses avanços dobraram o desempenho bruto em relação a um 386 de mesmo clock. Entretanto, alguns modelos do i486 são mais lentos que os mais rápidos 386, especialmente os "SX".
Uma versão de 25 MHz foi introduzida em abril de 1989, uma de 33 MHz em maio de 1990 e uma de 50 MHz em junho de 1991.
  •          1993 – Intel Pentium

O Pentium é a quinta geração da arquitetura x86 de microprocessadores criada pela Intel, sucessor direto da linha 486. O Pentium possui dois canais de execução de dados (pipelines) que lhe permitem completar mais do que uma instrução por ciclo de clock. Um canal lida com qualquer tipo de instrução, enquanto o outro lida apenas com as instruções mais simples e comuns. O uso de mais do que um canal de dados era uma característica quase exclusiva dos processadores RISC. A sua adoção no Pentium foi uma novidade significativa na linha da plataforma x86 que até então era totalmente CISC. Seguiram-se depois outras melhoramentos inspirados em tecnologias já conhecidas das máquinas RISC, mostrando ser possível combinar as duas filosofias. O Pentium possui barramento externo de 64bits, mas seus registradores ainda de 32bits. Também trouxe instruções MMX voltadas para aplicações multimídia.
Apesar de oferecer o dobro de performance de um 486, alguns modelos topo de linha eram quase tão rápidos quanto os Pentium e alguns 486 fabricados pela AMD eram praticamente tão rápidos como o Pentium 75.
  •          1994 – PowerPC

A arquitetura PowerPC foi criada pela aliança da Apple, IBM e Motorola no início dos anos 90 para criar um processador RISC a ser usado nos computadores da Apple. Sua primeira implementação foi o modelo 601, no PowerMac 6100 de 1994. É uma arquitetura de 64bits que possui um subconjunto de características de 32bits. Apesar de atualmente a Apple ter aderido à arquitetura x86 da Intel, os processadores PowerPC ainda estão presentes em consoles como Xbox 360 (Microsoft) e Nintendo Wii (Nintendo), além das máquinas PowerMac G4 e G5 multi-core que ainda tem suporte da Apple. Esta arquitetura também está presente no microprocessador Cell do Playstation 3 (Sony), projetado em parceria entre IBM, Sony e Toshiba também para os reprodutores multimídia de Blu-Ray (Sony) e HD-DVD (Toshiba, abandonado).
  •         1995 – Intel Pentium Pro

Voltado para servidores e aplicações 32bit principalmente para softwares CAD das áreas de engenharia, arquitetura e computação científica. Cada chip Pentium Pro era construído conjuntamente de um chip de aceleração de memória cache. Tinha 5.5 milhões de transistores.
  • ·         1996 – AMD K5 / K6

Foi o primeiro processador x86 da AMD e seria o principal concorrente do Pentium, porém devido a atrasos no projeto, foi adiado até 1996. A AMD era uma empresa nova, mas mesmo assim as características de seus processadores se assemelhavam com o Pentium Pro e com o Pentium original, além de ser mais barato que os processadores da Intel.
  •        1997 – Intel Pentium II

Agora trazendo 7.5 milhões de transistores, o Pentium II já incorporava a tecnologia MMX especialmente para processar vídeo, áudio e gráficos de modo eficiente.
  •         1998 – Intel Celeron

É a marca usada pela Intel para processadores x86 de baixo custo ou segunda linha para concorrer com a AMD que fabricava modelos parecidos com os antecessores da Intel. O nome Celeron permanece até hoje nas linhas de baixo custo da Intel.
  •          1999 – Intel Pentium III

Processador da 6ª geração fabricado pela Intel tendo a mesma arquitetura do Pentium Pro, atingindo clocks de 450MHz a 1400MHz. Além do conjunto de instruções MMX, trazia também SSE.
  •          1999 – AMD Athlon / K7

O Athlon clássico foi disponibilizado com clocks de 500 a 700 MHz e mais tarde em freqüências de até 1000MHz. Internamente é um x86 RISC que decodifica suas próprias instruções em tempo de execução. Conectava-se na placa-mãe de forma mecanicamente similar ao Pentium II, porém não compatível.
  •          2000 – Intel Pentium 4

Introduzindo a arquitetura NetBurst, é o primeiro processador totalmente redesenhado desde o Pentium Pro da Intel. O Pentium 4 original foi lançado com clocks de 1.3 a 2.0GHz. Junto foi lançado uma versão Celeron (2ª linha) e outra para servidores, o Xeon. O Pentium 4 executa muito menos trabalhos pro ciclo do que outros microprocessadores, mas o objetivo do projeto original fora cumprido – sacrificando o clock a fim de conseguir maior número de ciclos por segundo (freqüência de clock). Logo mais tarde foram lançados processadores com a tecnologia hyperthreading, simulando dois processadores rendendo um acréscimo de até 20% em média na velocidade dos programas desde que sejam executados simultaneamente.
  •          2000 – AMD Athlon Thunderbird

O Athlon Thunderbird foi a segunda geração de Athlon da AMD e era conectado a placa-mãe em um soquete denominado 462 ou Socket A. Foi fabricado a freqüências que variam de 650 a 1400MHz e seu desempenho foi superior aos Pentium III e aos Pentium 4 que estavam no mercado no momento. Com o lançamento do Pentium 4 de 1.7 GHz em 2001, o Thunderbird já não era mais o líder em desempenho, mas foi o produto de maior sucesso da AMD desde sua versão do 386DX.
  •          2000 – AMD Duron

É a linha de processadores da AMD de baixo custo baseada no Athlon, assim como a Intel fez com o Celeron. Fora descontinuada em 2004 dando lugar ao Sempron
  •          2001 – AMD Athlon XP

O Athlon XP processava mais instruções por clock que o Pentium 4 e 10% mais que o Athlon Thunderbird, apresentando o mesmo nível de desempenho a uma freqüência menor. Foi disponibilizado suportando oficialmente biprocessamento. Fora atribuído um termo de marketing chamado “Performance Rating” que gerava confusões com relação à freqüência de clock. Era disponibilizado com freqüências de 1333 a 1733 MHz, mas com índices de 1500+ a 2100+ de PR. O Athlon XP trouxe novamente a AMD para a liderança de desempenho na plataforma x86.
  •          2001 – Intel Itanium

Desenvolvido em conjunto com a HP para plataformas de multiprocessamento simétrico de 64 bits, nem RISC nem CISC, mas numa arquitetura nova chamada EPIC. Era utilizado em servidores. Com clocks baixos, o desempenho era obtido pela distribuição de processos entre os processadores e pelo grande tamanho do cache no processador.
  •          2002 – Intel Pentium 4 Northwood

Para retomar a liderança da AMD, a Intel lançou o Pentium 4 com um novo núcleo, atingindo freqüências de 2GHz e 2,2GHz. A concorrência com a AMD permanecia competitiva, porém o Pentium 4 agora era mais rápido que o Athlon XP. Até o fim de 2002 os processadores Pentium 4 já atingiam 3.06GHz com suporte ao hyperthreading.
  •          2003 – Intel Pentium 4 Gallatin (Extreme Edition)

Pouco antes de a AMD lançar o Athlon 64, a Intel anuncia uma versão do Pentium 4 voltada para jogos e processamento multimídia. Esta linha de processadores não se tornou tão útil em computadores de escritório. Mesmo o foco ter sido para jogos, apenas aqueles desenvolvidos sob medida para a Intel é que mostraram algum desempenho superior. Engines como Unreal e Quake III que na verdade eram tentativas mascaradas da Intel de dominar o mercado e jogos eletrônicos para PC, vendendo SDK’s para produtoras.
  •        2003 – AMD Athlon 64

Introduziu o processamento de 64bits para computadores de mesa, mantendo compatibilidade com softwares x86 de 32bits. Outra característica marcante é a controladora de memória integrada no processador.
  •          2003 – AMD Athlon 64 FX

É um Athlon 64 para entusiastas de overclocking. Mais tarde a AMD lançaria versões com quatro núcleos para concorrer com o Core 2 da Intel.
  •         2004 – AMD Sempron

É o nome comercial dos processadores de baixo custo da AMD sucessores do Duron e competindo com o Celeron da Intel. Era baseado no Athlon XP original, depois baseado no núcleo Barton. A segunda geração de Sempron foi baseada no Athlon 64, porém sem suporte a tecnologia AMD64 em modelos iniciais.
  •         2004 – Intel Pentium 4 Prescott

A Intel introduziu um novo núcleo chamado Prescott, trazendo a tecnologia de 90nm e um novo arranjo na arquitetura da linha Pentium 4. A Intel poderia então ter chamado de Pentium 5 e lançara ainda o Socket T compatível apenas com alguns modelos do processador, mas logo depois a micro arquitetura deste núcleo se tornou uma das maiores falhas de engenharia da história da Intel, que esperava freqüências de até 8GHz, mas o máximo conseguido fora de 3.4GHz com overclocking e sérios problemas de aquecimento.
  •         2005 – Intel Pentium D

O Pentium D consiste em dois Pentium 4 Prescott (ou dois Pentium 4 Cedar Mill, lançados posteriormente) em um único encapsulamento (não são dois núcleos fundidos em um único núcleo). Foi o primeiro processador a anunciar o CPU multi-core para computadores de mesa. O Pentium D e o Extreme Edition são os últimos a utilizarem a arquitetura NetBurst assim como a nomenclatura Pentium.
  •          2005 – AMD Sempron 64

A nomenclatura oficial da AMD nunca adicionou o “64” ao nome Sempron, mas neste ano foi dado suporte ao AMD64 aos processadores Sempron, um passo aproximando o uso doméstico de baixo custo de processadores que suportam 64bits.
  •         2005 – AMD Athlon 64 X2

Processador Athlon 64 com dois núcleos, permitindo realizar duas tarefas simultâneas, otimizando o desempenho em certas tarefas e diminuindo o tempo de execução. A AMD estava novamente à frente da Intel na batalha de processadores contra o Pentium D, até o lançamento do Core 2.
  •         2006 – Intel Core 2

Representou a substituição da marca Pentium como designação dos modelos topo de linha. Apesar de ser o substituto do Pentium 4, sua arquitetura foi baseada no Pentium III com várias melhorias. Os modelos mais conhecidos são os Core 2 Duo (dois núcleos) e Core 2 Quad (com núcleo quádruplo). Posteriormente a Intel melhorou o processo de fabricação, baixando de 65nm para 45nm. O clock de um processador Core 2 Quad pode alcançar até 3.33GHz. Com overclocking em cooler de ar até 4GHz, watercoolers até 5GHz e com refrigeração a nitrogênio líquido já foi alcançado 6GHz. A Intel apresentou o EM64T como resposta ao AMD64.
  •          2007  – AMD Phenom

Nova série de processadores da AMD com versões de 3 e 4 núcleos. A AMD considera que os Phenom X4 são os primeiros Quad core reais, já que possuem um núcleo monolítico. Seu primeiro lançamento foi muito criticado por ser lançado após o Core 2 e mesmo assim não podendo atingir freqüências como o concorrente.
  •       2008  – Intel Core i7

Sucessor do Core 2, atualmente existem ao todo três modelos de processadores de quatro núcleos. O processo de fabricação é de 45nm e a Intel traz de volta novamente o hyperthreading. Uma nova tecnologia chamada QuickPath substituirá o barramento frontal com uma banda de aproximadamente 25GB por segundo. Também conta com um sistema de gerenciamento de energia e overclocking embutidos e um controlador de memória integrado que a AMD já utilizava há tempos.
  •         2008  – Intel Atom

Microprocessadores da Intel com freqüências de 800MHz a 1870MHz voltados para smartphones e outros portáteis com baixo consumo de energia.

domingo, 25 de setembro de 2016

A evolução dos Computadores !


  • A evolução dos computadores acompanhou a evolução da sociedade durante os séculos século XX e XXI.
  • Uma das primeiras máquinas de computar foi o “ábaco”, instrumento mecânico de origem chinesa criado no século V a.c , assim, ele é considerado o “primeiro computador”, uma espécie de calculadora que realizava operações algébricas, mas o computador tal como conhecemos hoje passou por diversas transformações...

De acordo com os sistemas e ferramentas utilizados, a história da computação está dividida em quatro períodos:



  • Primeira Geração (1951-1959): os computadores de primeira geração funcionavam por meio de circuitos e válvulas electrónicas, os quais possuíam o uso restrito, além de serem imensos e consumiam muita energia. Um exemplo é o ENIAC (Eletronic Numerical Integrator and Computer) que consumia cerca de 200 quilowatts e possuía 19.000 válvulas.
  • Segunda Geração (1959-1965): ainda com dimensões muito grandes, os computadores da segunda geração funcionavam por meio de transístores, os quais substituíram as válvulas que eram maiores e mais lentas. Nesse período já começam a se espalhar o uso comercial.
  • Terceira Geração (1965-1975): os computadores da terceira geração funcionavam por circuitos integrados, os quais substituíram os transístores e já apresentavam uma dimensão menor e maior capacidade de processamento. Foi nesse período que os chips foram criados e a utilização de computadores pessoais começou.
  • Quarta Geração (1975-até os dias atuais): com o desenvolvimento da tecnologia da informação, os computadores diminuem de tamanho, aumentam a velocidade e capacidade de processamento de dados. São incluídos os microprocessadores com gasto cada vez menor de energia. Nesse período, mais precisamente a partir da década de 90, há uma grande expansão dos computadores pessoais. Além disso, surgem os softwares integrados e começam a surgir os computadores de mão, ou seja, os smartphones, iPod, iPad e tablets, que incluem conexão móvel, com navegação na web.



  • Fonte !