Arquitetura de computadores: diferenças entre revisões
Linha 42: | Linha 42: | ||
[[Categoria:Arquitetura de computadores]] |
[[Categoria:Arquitetura de computadores]] |
||
[[ar:معمارية الحاسوب]] |
|||
[[bg:Компютърна архитектура]] |
|||
[[bn:কম্পিউটার স্থাপত্য]] |
|||
[[bs:Računarska arhitektura]] |
|||
[[ca:Arquitectura (informàtica)]] |
|||
[[de:Rechnerarchitektur]] |
|||
[[el:Αρχιτεκτονική υπολογιστών]] |
|||
[[en:Computer architecture]] |
|||
[[es:Arquitectura de computadoras]] |
|||
[[et:Arhitektuur (infotehnoloogia)]] |
|||
[[eu:Konputagailu arkitektura]] |
|||
[[fa:معماری رایانه]] |
|||
[[fi:Tietokonearkkitehtuuri]] |
|||
[[fr:Architecture (informatique)]] |
|||
[[he:ארכיטקטורת מחשב]] |
|||
[[hr:Arhitektura računala]] |
|||
[[hu:Számítógép-architektúra]] |
|||
[[id:Arsitektur komputer]] |
|||
[[it:Architettura (computer)]] |
|||
[[ja:コンピュータ・アーキテクチャ]] |
|||
[[ko:컴퓨터 구조]] |
|||
[[lv:Datora arhitektūra]] |
|||
[[mhr:ЭШМ чоҥымойыртем]] |
|||
[[ml:കമ്പ്യൂട്ടർ ആർക്കിടെക്ചർ]] |
|||
[[ms:Seni bina komputer]] |
|||
[[nl:Computerarchitectuur]] |
|||
[[no:Dataarkitektur]] |
|||
[[pl:Architektura komputera]] |
|||
[[ru:Архитектура компьютера]] |
|||
[[simple:Computer architecture]] |
|||
[[sk:Architektúra počítača]] |
|||
[[sq:Arkitektura kompjuterike]] |
|||
[[sv:Datorarkitektur]] |
|||
[[ta:கணினி கட்டுமானம்]] |
|||
[[th:สถาปัตยกรรมคอมพิวเตอร์]] |
|||
[[tr:Bilgisayar mimarisi]] |
|||
[[uk:Архітектура комп'ютера]] |
|||
[[vi:Kiến trúc máy tính]] |
|||
[[zh:计算机系统结构]] |
Revisão das 14h24min de 15 de março de 2013
Este artigo não cita fontes confiáveis. (Janeiro de 2011) |
A evolução da informática foi caracterizada pelo desenvolvimento de computadores com características as mais diversas, traduzidas pelos diferentes parâmetros, cada vez mais conhecidos da maioria de usuários de computador: a CPU adotada, a capacidade de memória, a capacidade do disco rígido, a existência de memória cache e outros menos conhecidos. A definição destes parâmetros e a forma como os diversos componentes de um computador são organizados, define aquilo que é conhecido por arquitetura de computador e vai determinar aspectos relacionados à qualidade, ao desempenho e à aplicação para a qual o computador vai ser orientado.
Existem vários modos de uso do termo, que podem ser usados referindo-se a:
- O desenho da arquitetura da CPU do computador, o seu conjunto de instruções, "addressing modes" e técnicas, tais como paralelismo SIMD e MIMD.
- Arquiteturas de hardware mais generalizadas, tais como computação em cluster e arquiteturas NUMA (acesso não-uniforme à memória).
- A utilização menos formal do termo refere-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éricos eletrônicos ou, mais frequentemente, 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 aquando 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)utilizar implementações existentes de tecnologias (por exemplo, semicondutores) para construir o melhor computador possível. A 2ª consideração é frequentemente referida como a microarquitetura.
História
A expressão "Arquitetura 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 computador desenvolvido pela IBM para Los 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 a nível de "Arquitetura do Sistema" - Um termo que parecia ser mais útil do que "Organização de Máquina".
Posteriormente, Brooks, um dos designers 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.
Memória virtual
Outro problema recorrente envolve a memória virtual. 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 só pode executar uma instrução que esteja na memória real. O mecanismo de Memória Virtual divide a memória real em FRAMES e divide um arquivo no disco em PÁ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 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ção das instruções
O conjunto e instruções orienta fortemente como funcionará o pipeline de instruções. A ideia é análoga a 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 1 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 threading (nome comercial da Intel Hyperthreading).
Ligações externas
- ISCA: Proceedings of the International Symposium on Computer Architecture
- Micro: IEEE/ACM International Symposium on Microarchitecture
- HPCA: International Symposium on High Performance Computer Architecture
- ASPLOS: International Conference on Architectural Support for Programming Languages and Operating Systems
- ACM Transactions on Computer Systems
- IEEE Computer Society
- Microprocessor Report