Ir ao conteúdo
  • Cadastre-se

Pq existe + CISC do que RISC?


mshonorato

Posts recomendados

Por quê é usado mais processadores CISC do que RISC, apesar de o RISC ser bem melhor?

No aguardo!

Fazer RISCs rápidos é mais fácil, mas fazer um CISC rápido compensa mais, porque existe muito software, plataformas, enfim, um ecossistema pronto para uma arquitetura CISC em especial (a x86). Mudar pra uma arquitetura RISC, atualmente, significaria trocar todo esse ecossistema, o que sairia muito caro e não compensaria.

Link para o comentário
Compartilhar em outros sites

Mudar pra uma arquitetura RISC, atualmente, significaria trocar todo esse ecossistema, o que sairia muito caro e não compensaria.

Na verdade o back-end dos CPUs x86 é RISC desde o K5 ou Pentium Pro.

Mas o decoder continua "CISC", senão todo o software seria perdido, como você mencionou.

[]'s

DT

Link para o comentário
Compartilhar em outros sites

Na verdade o back-end dos CPUs x86 é RISC desde o K5 ou Pentium Pro.

RISC é uma classificação destinada a arquiteturas. Você pode falar de Alpha, MIPS, ARM... mas não de processadores específicos. Também não dá pra falar de "back-end RISC". Mesmo porque nada impede que uma arquitetura RISC seja implementada toda em microcódigo, se essa for uma melhor opção (e aposto que vai ser mais rápido e simples do que um CISC similar), ou que um CISC qualquer use serialização, superescalaridade, entre outras técnicas, como os x86s fazem.

De qualquer modo, se "back-end RISC" dos x86s se refere ao fato das unidades de execução executarem instruções mais complicadas através do uso de várias micro-operações independentes: isso não é exclusividade dos CISCs, não é novo (microcódigo, em alguma implementações, é mais ou menos isso, e não é só de microcódigo que falo) e também não é completamente correto, já que alguma lógica precisa considerar as dependências inteiras, e na verdade todo o "back-end" ainda inclui algumas características "x86icas".

Quem realmente pode dizer que tem "back-end" RISC é o K5... porque o "back-end" inteiro dele foi arrancado de um RISC e adaptado para a x86. Deu no que deu. Não é uma boa forma de se fazer x86s :).

Mas o decoder continua "CISC", senão todo o software seria perdido, como você mencionou.

[]'s

DT

Bom, claro :)... pra decodificar CISC, só com um decodificador que decodifique CISC. Mas isso não quer dizer que o "back-end" seja RISC.

EDIT: O que é "back-end"? Nomenclaturas há aos montes para isso...

Link para o comentário
Compartilhar em outros sites

RISC é uma classificação destinada a arquiteturas. Você pode falar de Alpha, MIPS, ARM... mas não de processadores específicos. Também não dá pra falar de "back-end RISC". Mesmo porque nada impede que uma arquitetura RISC seja implementada toda em microcódigo, se essa for uma melhor opção (e aposto que vai ser mais rápido e simples do que um CISC similar), ou que um CISC qualquer use serialização, superescalaridade, entre outras técnicas, como os x86s fazem.

RISC é sobre arquiteturas, mas você pode escolher qualquer modelo específico de CPU Alpha, MIPS, Sparc, etc, e dizer "este é um CPU RISC" sem problemas. O mesmo vale para qualquer CPU Intel ou AMD desde o PPro ou K5 até o i7 ou K10. O front-end é CISC, o resto é RISC (ou pós-RISC, como alguns chamam).

Se você faz um CPU RISC com microcódigo ou não, não existe CISC "similar". E sim, um CISC pode ter pipelines e ser superescalar, como o Pentium1.

De qualquer modo, se "back-end RISC" dos x86s se refere ao fato das unidades de execução executarem instruções mais complicadas através do uso de várias micro-operações independentes: isso não é exclusividade dos CISCs, não é novo (microcódigo, em alguma implementações, é mais ou menos isso, e não é só de microcódigo que falo) e também não é completamente correto, já que alguma lógica precisa considerar as dependências inteiras, e na verdade todo o "back-end" ainda inclui algumas características "x86icas".

Não me lembro agora de nenhum chip comercial além de x86 que converta CISC em RISC.

O backend é otimizado para x86 (menos no K5), mas é considerado RISC.

Quem realmente pode dizer que tem "back-end" RISC é o K5... porque o "back-end" inteiro dele foi arrancado de um RISC e adaptado para a x86. Deu no que deu. Não é uma boa forma de se fazer x86s

Todos os CPUs x86 Intel e AMD do PPro ou K5 em diante podem ser considerados RISC internamente (google!).

O K5 foi problemático porque foi o primeiro CPU x86 100% feito pela AMD sem usar um design da Intel como base. Por isso aproveitaram o 29K que já tinham pois já estavam muito atrasados em relação à Intel.

Bom, claro ... pra decodificar CISC, só com um decodificador que decodifique CISC. Mas isso não quer dizer que o "back-end" seja RISC.
Se o back-end não fosse RISC não existiria necessidade de um decoder traduzindo várias instruções x86 complicadas em microinstruções simples, como você mesmo disse não se tratar de algo novo.

Se o backend não fosse RISC a AMD a não chamaria de "RISC86" as instruções do backend do K5 e K6 (no K7 em diante a nomenclatura mudou).

EDIT: O que é "back-end"? Nomenclaturas há aos montes para isso...
É o que você chamou de unidades de execução, que entendem apenas microinstruções RISC86, ROps, Micro-Ops ou seja qual for o nome usado no dia da semana pelos fabricantes.

Na figura do link abaixo sobre o K7, é a parte pintada de rosa. Repare que no lado da figura o K5 e K6 são chamados de CPUs RISC. O mesmo seria válido para o Pentium Pro em diante.

http://en.wikipedia.org/wiki/Athlon#General_architecture

Claro que devem existir links bem melhores, mas não vou atrás, sinceramente.

[]'s

DT

Link para o comentário
Compartilhar em outros sites

RISC é sobre arquiteturas, mas você pode escolher qualquer modelo específico de CPU Alpha, MIPS, Sparc, etc, e dizer "este é um CPU RISC" sem problemas.

Tá, tudo bem, quer dizer "CPU que executa instruções de uma arquitetura RISC".

O mesmo vale para qualquer CPU Intel ou AMD desde o PPro ou K5 até o i7 ou K10. O front-end é CISC, o resto é RISC (ou pós-RISC, como alguns chamam).

O que significa um "back-end RISC"? Eu não consigo entender, sinceramente, não é ironia não. Se quer dizer que o "back-end" executa comandos mais simples, autocontidos, já disse o que penso a respeito. Além do mais, como eu disse, o equivalente ao "back-end" de um processador com microcódigo também é assim e eu nunca ouvi ninguém dizer que o S/360 tinha um "back-end" RISC...

Se você faz um CPU RISC com microcódigo ou não, não existe CISC "similar".

Monta um processador com arquitetura RISC baseado todo em microcódigo, agora, muda o microcódigo para executar uma arquitetura CISC, os processadores serão similares, certo?

E sim, um CISC pode ter pipelines e ser superescalar, como o Pentium1.

Então, qual é o sentido de "back-end" RISC?

Não me lembro agora de nenhum chip comercial além de x86 que converta CISC em RISC.

z10. Muitos com microcódigo, se tivermos "mente aberta". MicroVAXs, todos...

O backend é otimizado para x86 (menos no K5), mas é considerado RISC.

Mesmo tendo 8 registradores em pilha (o K7 tem um mecanismo que converte as referências para uma RF, mas mesmo assim usa 8 registradores em pilha como comandos), modelo de memória x86, instruções com dois operandos e toda lógica de controle x86?

Todos os CPUs x86 Intel e AMD do PPro ou K5 em diante podem ser considerados RISC internamente (google!).

Eu não vejo por quê.

O K5 foi problemático porque foi o primeiro CPU x86 100% feito pela AMD sem usar um design da Intel como base. Por isso aproveitaram o 29K que já tinham pois já estavam muito atrasados em relação à Intel.

Realmente.

Se o back-end não fosse RISC não existiria necessidade de um decoder traduzindo várias instruções x86 complicadas em microinstruções simples, como você mesmo disse não se tratar de algo novo.

Isso sempre aconteceu: não é nada trivial montar um "back-end" decente que execute algumas piras da x86 ou da VAX... além do mais, até os POWERs fazem isso, vai dizer que os POWERs tem um núcleo RISC?

Se o backend não fosse RISC a AMD a não chamaria de "RISC86" as instruções do backend do K5 e K6 (no K7 em diante a nomenclatura mudou).

Na época, RISC=bom...

É o que você chamou de unidades de execução, que entendem apenas microinstruções RISC86, ROps, Micro-Ops ou seja qual for o nome usado no dia da semana pelos fabricantes.

Certo.

Na figura do link abaixo sobre o K7, é a parte pintada de rosa. Repare que no lado da figura o K5 e K6 são chamados de CPUs RISC. O mesmo seria válido para o Pentium Pro em diante.

Como disse, preciso de uma explicação lógica para aceitar esse tipo de coisa...

Claro que devem existir links bem melhores, mas não vou atrás, sinceramente.

[]'s

DT

Eu também não vou, então nem se preocupe :).

Link para o comentário
Compartilhar em outros sites

Eu também não vou, então nem se preocupe :).

Nesses CPUs backend é a parte que executa as microinstruções de tamanho fixo que foram decodificadas a partir das instruções complexas e de tamanho variável do padrão x86. É onde estão os registradores, agendadores e OOO (caso tenha), etc, onde estão as ALUs e FPUs que vão executar as operações inteiras ou de ponto flutuante em vez de agendar, que é feito pelo frontend.

OK se não quiser procurar. Mas acho que já é de conhecimento geral hoje em dia que todo x86 pode ser considerado RISC do K5 ou P6 em diante. Acho que em todos os datasheets de todos eles isso pode ser encontrado.

[]'s

DT

EDIT: Não ia comentar para não falarem que estou caçando briga, mas é melhor informar que POWER obviamente e reconhecidamente são CPUs RISC, e que VAX são CPU CISC (o sucessor do VAX, o Alpha, era RISC).

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
ou pós-RISC, como alguns chamam

Vivemos na era pós-RISC, onde os processadores RISC se tornaram complexos e com instruções de tamanho variável e os CISC só rodam direito algumas poucas instruções mais utilizadas e com diversas marcadas como obsoletas.

Resumindo, hoje faz pouca diferença se o processador é CISC ou RISC, exceto para celulares, por enquanto.

no K7 em diante a nomenclatura mudou

A as macro-instruções também, agora quase todas as instruções x86 tinham um código correspondente, nada de quebrar em 3 ou 4 logo no início e deixar o agendador se f(*) para arrancar algum paralelismo, algo mais "CISCy".

mas é melhor informar que POWER obviamente e reconhecidamente são CPUs RISC

É, é RISC...

Mas tem quase (ou já atingiram?) mil instruções, instruções de tamanho variável, diferentes formas de endereçamento e muitas das implementações atuais usam micro-código para cuidarem de instruções mais complexas.

ps: Conhecem a ISA da R600? EPIC, tamanho variável, variações por operador, forwarding explicito e mais quinhetas maluquices do tipo, imagino a cara de um dos engenheiros da MIPS logo após bolar uma ISA limpa vendo isso :devil:

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...