Diferenças entre edições de "Arquitetura de computadores"

57 bytes adicionados ,  22h54min de 6 de maio de 2018
→‎Pipeline ou segmentação das instruções: Correção do uso indevido de maiúscula. Inserção de itálico em termos ingleses. Emprego de termos equivalentes em língua portuguesa, quando existentes.
m (→‎top: peq. ajustes, replaced: |ISBN= → |isbn= utilizando AWB)
(→‎Pipeline ou segmentação das instruções: Correção do uso indevido de maiúscula. Inserção de itálico em termos ingleses. Emprego de termos equivalentes em língua portuguesa, quando existentes.)
 
Existem vários modos de uso do termo, que podem se referir a:
* desenho da arquitetura da [[CPU]] do computador, o seu [[conjunto de instruções]], "''addressing modes''"<!-- tradução por favor--> e técnicas, tais como [[Computação paralela|paralelismo]] [[SIMD]] e [[MIMD]].
* termo também utilizado com significado análogo, ou semelhante, a [[Arquitetura de microprocessadores]] ([[RISC]] x [[CISC]]).
* arquiteturas de [[hardware|''hardware'']] mais generalizadas, tais como computação em [[cluster|''cluster'']] e arquiteturas NUMA (acesso não-uniforme à memória).
* utilização menos formal do termo, referindo-se a uma descrição dos requisitos (especialmente requisitos de velocidades e interligação) ou implementação do design para as várias partes de um computador, tais como [[memória]], [[placa-mãe]], [[Periférico|periféricos eletrônicos]] ou, mais frequentemente, [[Unidade Central de Processamento|CPU]].
 
A arquitetura é frequentemente definida como o conjunto de atributos da máquina que um programador deve compreender para que consiga programar o computador específico com sucesso, ou seja, para que consiga compreender o que o programa irá fazer quando da sua execução. Por exemplo, parte da arquitetura são as instruções e o raio de operadores manipulados por elas. De uma maneira semelhante, a frequência em que o sistema opera não é incluída na arquitetura. Esta definição revela as duas principais considerações dos arquitetos de computadores: (1)desenhar ''hardware'' que se comporta como o programador pensa que se irá comportar, (2)e utilizar implementações existentes de tecnologias (por exemplo, [[semicondutor]]es), para construir o melhor computador possível. A segunda consideração é frequentemente referida como a [[microarquitetura]].<ref>[http://cpushack.net/CPU/cpu7.html]</ref>
 
== História ==
A expressão "Arquiteturaarquitetura de computadores", na literatura, pode ser atribuída a Lyle R. Johnson, Muhammad Usman Khan e Frederick P. Brooks, Jr. Em 1959, eram membros do departamento de Organização de Máquinas da IBM.
 
Johnson teve a oportunidade de escrever uma comunicação de pesquisa proprietária sobre Strech, um super computadorsupercomputador desenvolvido pela IBM para '''Loso Alamos Scientific Laboratory''' ([[Laboratório Nacional de Los Alamos]]). Na tentativa de caracterizar o seu nível desejado de detalhe, ele observou que sua descrição de formatos, tipos de instruções, os parâmetros de ''hardware'' e melhorias de velocidade foi no nível de "Arquiteturaarquitetura do Sistemasistema" - Um termo que parecia ser mais útil do que "Organizaçãoorganização de Máquinamáquina".
 
Posteriormente, Brooks, um dos designers[[Projetista|projetistas]] do Strech, começou o capítulo 2 de um livro (''Planning a Computer System: Project Stretch'', ed W. Buchholz, 1962), escrevendo,: "Arquitetura de computadores, como outra arquitetura, é a arte de determinar as necessidades do usuário de uma estrutura e, possível dentro das limitações econômicas e tecnológicas.".
 
Brooks passou a desempenhar um papel no desenvolvimento do [[IBM System/360]](agora chamado de IBM System z) linha de computadores, onde a "arquitetura" ganhou moeda como um substantivo com a definição como "o que o usuário precisa saber". Mais tarde, o mundo da informática, empregaria o termo, em formas muito menos explícitas.
Historicamente, a memória de acesso aleatório (RAM) foi centenas de vezes mais cara que o armazenamento mecânico rotativo, isto é, [[discos rígidos]], num computador moderno.
 
O [[Processador gráfico|processador]] só pode executar uma instrução que esteja na memória real. O mecanismo de Memória Virtual divide a memória real em FRAMESframed e divide um arquivo no disco em PÁGINASpáginas de mesmo tamanho dos ''frames''. No disco existem muito mais páginas do que ''frames'' na memória. Sempre que for preciso uma página é copiada da memória virtual (arquivo em disco) para um ''[[frame]]'' da memória real. Surge a necessidade de saber quando é preciso copiar. Surge a necessidade de saber se um ''frame'' pode ser descartado ou se precisa ser recopiado para sua página correspondente no [[Arquivo de computador|arquivo]] em disco. Sempre que uma instrução é executada a partir de um ''frame'' o hardware controlador de [[memória virtual]] testa se o dado a que ela se refere já se encontra em algum ''frame''. Se for o caso, uma interrupção ocorre para que a rotina de tratamento cuide de copiar do disco para a memória real uma página completa contendo o dado necessário.
 
== Pipeline ou segmentaçãoSegmentação das instruções (''pipeline'') ==
O conjunto e instruções orienta fortemente como funcionará oa [[Pipeline (hardware)|pipeline]]segmentação de [[Conjunto de instruções|instruções]]. A ideia é análoga a [[Produção em massa|linha de produções]] em série, mas utilizada na execução das instruções. Primeiro divide-se as instruções em pedaços menores de forma que uma instrução em código de máquina demore muitos ciclos curtos para ser executada. Depois disso o controle do [[microprocessador]] encarrega-se de executar várias instruções ao mesmo tempo, cada uma utilizando um pedaço distinto do processador. Isto tem como objetivo que na média cada instrução demore 1um ciclo curto para ser executada. Existem diversas complicações em instruções de desvio (condicionais), que são tratadas por paralelismo de código conhecida como ''[[Thread (ciência da computação)|threading]]'' (nome comercial da Intel [[Hyperthreading]]).
 
{{Referências}}