SEGUNDO TRABALHO DE ARQUITECTURA E COMPUTADORES





Arquitectura CISC versus RISC



INDICE

  • INTRODUÇÃO

  • ARQUITECTURA CISC

  • ARQUITECTURA RISC

  • ARQUITECTURA CISC versus RISC

  • AUTOR









    INTRODUÇÃO



    O computador bem como qualquer sistema deverá possuir uma arquitectura que lhe permita encontrar um compromisso aceitável entre o hardware e software, devendo estar estruturado de modo a permitir uma fácil criação e gestão de software e assentar num modelo standardizado estabelecido por assembladores que permitam programar em linguagens de mais alto nível e para isso diminuir os custos relacionados com a criação de software, possibilitando actualmente que qualquer instituição possa possuir software dedicado e exclusivo sem que isso represente um elevado esforço financeiro.

    Baseados nestes conceitos, os desenhadores de sistemas desenvolveram arquitecturas que se destinavam fundamentalmente a reduzir custos de hardware e software através do melhoramento da semântica das linguagens de programação e dos compactadores de código, (para evitar as situações criticas de transferencia de dados e do espaço em memória) redução ou eliminação de software do sistema e facilidade na depuração. Com estes melhoramentos distinguem-se três arquitecturas, nomeadamente a HLLCA, RISC e CISC, mas só as duas últimas é que foram implementadas a nível comercial.



    Inicio Ý






    Arquitectura CISC (Complex Instruction Set Code)de modo pejorativo qualquer coisa que não RISC



    O desenvolvimento da micro-electrónica permitiu a construção de processadores cada vez mais complexas e mais próximas de instruções de linguagens de alto nível (HLL), mas manteve o modelo de programação ao nível da linguagem máquina, assente numa utilização elevada da memória em detrimento do uso de registos (por exigirem compiladores mais complexos).

    Esta arquitectura processa e trata grandes e complexas instruções, nomeadamente operações de multiplicação e divisão mas também executa e/ou descodifica grandes quantidades de operações, parecendo possuir outro processador pelo facto da maioria dos algoritmos já se encontrarem no processador sendo o seu tempo de restabelecimento praticamente nulo.

    A CISC é implementada e guardada em micro-código no processador, sendo difícil modificar a lógica de tratamento de instruções.

    Esta arquitectura suporta operações do tipo "a=a+b" descrita por "add a,b", ou seja podem simplesmente utilizar dois operandos para uma única instrução, sendo um deles fonte e destino (acumulador) e permite um ou mais operadores em memória para a realização das instruções. Com isto se comprova a necessidade de abranger um elevado leque de modelos de endereçamento, com acesso directo à memória e com apontadores para as variáveis em memória, armazenados eles próprios (ponteiros) em células de memória.

    A complexidade que envolve estes modelos compromete o produto a nível de comercialização e desenvolvimento, limitando ou diminuindo o aumento a frequência de relógio, não só pelo tempo de acesso às memórias como devido ao reduzido número de registos.

    Inicio Ý






    Arquitectura RISC (Reduced Instruction Set Code)



    Para os processadores anteriores a esta tecnologia, o tempo de execução representava 90% do tempo total de funcionamento e apenas os restantes 10% eram deixados para o estabelecimento das instruções de execução do algoritmo, devido a possuírem maior numero de instruções internas ao processador.

    Esta tecnologia baseia-se fundamentalmente numa estrutura de instruções simples e rápidas, que permitam interpretar maior número possível de instruções pelo processador, deixando para o compilador a tarefa de estruturar as funções mais complexas com base nas funções simples internas ao processador.

    Esta arquitectura suporta operações do tipo "a=b+c" descrita por "add a,b,c", ou seja, podem especificar três operandos para uma única instrução, mas exclusivamente se estes forem registos, originando em situação contrária (operadores em memória) um atraso provocado pela introdução de acções extra no processador que se reflecte no funcionamento encadeado (piplining).

    Para garantir rapidez e eficiência do sistema, pretende-se que os operadores sejam acedidos á velocidade de funcionamento do processador, logo se justifica a utilização dos registos, e para que a representação de todas as variáveis para processamento sejam apresentadas como registos, tem que se garantir um número elevado destes, assegurando-se actualmente a maioria das variáveis escalares pela utilização de 32 registos genéricos que caracterizam a maioria da tecnologia dos compiladores actuais.

    Na representação de variáveis estruturadas, a sua atribuição não se apresenta de forma tão linear, a titulo de exemplo, um inteiro nesta arquitectura ocupa 32 bits, os reais 32 ou 64 bits (consoante a precisão) e cada célula de memória contem apenas 8 bits, logo cada variável ocupa várias células, portanto uma operação básica entre duas variáveis estruturadas implicava várias operações entre registos (efectuadas parcelarmente, e implicavam elevado número de operações e registos), para isso utilizam um indicador (.align x) para alinhar a informação apenas em localizações de memória que começam por endereço par para 16 bits (x=1) ou então múltiplos de 4 para 32 bits (x=2).

    O comprimento das instruções em arquitecturas RISC tiveram que ser fixados devido á adopção de tecnologias tipo piplining e à maior facilidade e simplicidade e consequente redução do tempo de execução, estando o dimensionamento determinado por 32 bits para permitir especificar os três operandos.

    Arquitectura RISC implementa conceitos como:

  • Piplining - a cada ciclo de relógio entra uma instrução e é executada paralelamente as anteriores até terminarem, podendo-se chamar execução paralela desfasada.
  • Controle de execução - que é feito directamente por circuitos lógicos internos ao processador que provocam redução no tempo de execução e no espaço gasto internamente na pastilha (e consequentemente menor custo).
  • Registos - que contêm dados que são "trabalhados" por instruções, aliás as únicas operações que não são efectuadas sobre registos são os acessos à memória para carga e armazenamento destes registos, logo pode-se dizer que um sistema RISC necessita de mais instruções para executar a mesma tarefa, ele aloca variáveis nos registos locais, o que compensa esta diferença ao longo da execução de um programa.

    Inicio Ý






    Arquitectura CISC versus Risc


    Arquitectura CISC

    Arquitectura RISC

    Vantagem

    Número elevado de instruções.Todas as instruções são internas ao processador e encontram-se em micro-código.

    Número pequeno e limitado de instruções. Todas as instruções complexas são realizadas pela junção em software de instruções simples.

    RISC

    Aumenta o desempenho do processador.

    Instruções de formato variável e impossibilidade de processar em piplining.

    Instruções de formato fixo, cujo o código tem sempre o mesmo tamanho, o que lhe permite a descodificação da instrução e trabalhar em piplining.

    RISC

    Possibilita o processamento piplining e facilita o processamento paralelo.

    Instruções complexas.

    Instruções simples com tempo de execução constante.

    RISC

    Permite diminuir a complexidade e tamanho do processador e consequentemente aumentar a velocidade de execução.

    Instruções efectuadas sobre memória, retirando pouco partido da sua localização espaçial.

    Instruções de manipulação de registo a registo.As outras instruções resumem-se a buscar e colocar nas posições de memória valores existentes em registos.

    RISC

    Essa característica facilita a manipulação de memória.

    Maior dimensão da pastilha devido ao elevado micro-código constituído por muitas e grandes instruções.

    Menor dimensão física do processador devido ao menor número de componentes e micro-controlo interno.

    RISC

    Maior facilidade de desenvolvimento e aumento de velocidade.





































    Desta comparação podemos distinguir as arquitecturas pelos principais aspectos:

  • No acesso a operandos
  • Nas operações lógicas e aritméticas
  • Na programação de procedimentos e funções

    Mas como estas características não são suficientes para definir todos os tipos de processador, sendo alguns processadores considerados simultaneamente CISC e RISC, como é o caso do Pentium.

    Após a analise, não menosprezando a tecnologia CISC penso que a RISC se encontra em vantagem na maioria das aplicações, é e certamente continuará por mais alguns anos a ser a referencia das arquitecturas para computadores de aplicações múltiplas, como é o caso dos PCs.

    Inicio Ý























    Trabalho Realizado por: Bruno Tomé

    Departamento de Engenharia informática