Wikipedia for Schools in Portuguese is available here
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
MIPS (arquitetura) - Wikipédia

MIPS (arquitetura)

Origem: Wikipédia, a enciclopédia livre.

MIPS, acrônimo para Microprocessor without interlocked pipeline stages (Microprocessador sem estágios interligados de pipeline - não confundir com o outro significado de "MIPS"), é uma arquitetura de microprocessadores RISC desenvolvido pela MIPS Computer Systems.

O MIPS é uma arquitetura de processadores RISC desenvolvida pela MIPS Computer Systems. Em meados de 1990s estimou-se que um em cada três microprocessadores RISC eram MIPS.

Os processadores MIPS são usados em aplicações tais como:

[editar] Arquitetura

As primeiras versões das CPU's MIPS eram de 32-bits, mas as mais recentes tornaram-se 64-bits. Existem 5 versões da implementação MIPS, compatíveis entre si, chamadas MIPS I, MIPS II, MIPS III, MIPS IV, e MIPS 32/64. O mais recente, MIPS 32/64 de liberação 2, define um registrador de controle ajustado assim como o conjunto de instruções.

  • Diversas extensões “add-on” estão também disponíveis, incluindo MIPS-3D que é um conjunto simples das instruções floating-point de SIMD dedicadas 3D às tarefas comuns;
  • MDMX, que é um conjunto de instruções mais extensivo do inteiro SIMD usando os registos floating-point 64-bit;
  • MIPS MT , adições ao sistema similar a HyperThreading nas famílias mais recentes de processadores da Intel Intel.

Pelo fato de ser um processador com design "limpo", esta arquitetura MIPS pode ser usada com fins educacionais, e influenciou processadores tais como o SPARC da Sun.


[editar] História

Em 1981, uma equipe conduzida por John L. Hennessy na universidade de Stanford começou a pensar no que hoje é o processador MIPS. O conceito básico era aumentar muito o desempenho com o uso profundo de pipelines para instruções, uma técnica que, embora fosse sabidamente boa, era difícil de fazer. Geralmente um pipeline divide a tarefa de executar uma instrução em diversas etapas, começando o trabalho em uma etapa, "passo a passo", várias instruções ao mesmo tempo. Porém, os projetos tradicionais da era esperavam para terminar uma instrução inteira antes de seguir adiante, desse modo deixando boa parte do processador sem fazer nada enquanto uma instrução era completada.

Uma barreira grande ao pipelining era que requereu bloqueios ser ajustada até se assegura de que as instruções que fizeram exame de ciclos de pulso de disparo múltiplos para terminar parassem o encanamento de carregar mais dados - bàsicamente para pausar quando terminou. Estes bloqueios podem fazer exame de um tempo longo ajustar-se acima, e foram pensados para ser uma barreira principal às melhorias futuras da velocidade. Um aspecto principal do projeto do projeto dos MIPS era exijir que todas as instruções fazem exame de somente um ciclo para terminar, desse modo removendo todas as necessidades para bloquear.

Embora este projeto eliminasse um número de instruções úteis, notàvelmente coisas como multiplicar e dividir que faria exame de etapas múltiplas, sentiu-se que o desempenho total do sistema estaria melhorado dramàtica porque as microplaquetas poderiam funcionar em umas taxas de pulso de disparo muito mais elevadas. Este ramping da velocidade seria difícil com bloquear envolvido, porque o tempo needed para ajustar acima fechamentos é tanto quanto uma função do tamanho do dado quanto a taxa de pulso de disparo: adicionar a ferragem necessitada pôde realmente retardar abaixo a velocidade total.

O elimination destas instruções transformou-se um ponto contentious. Muitos observadores reivindicaram o projeto (e o RISC no general) nunca viveriam até seu hype. Se um substituir simplesmente o complexo multiplicar a instrução com muitas adições mais simples, onde é o aumento da velocidade? Esta análise excedente-simples ignorou o fato que a velocidade do projeto estava nos encanamentos, não as instruções.

Em 1984 Hennessy foi convencido do potencial comercial futuro do projeto, e de Stanford esquerdo dar forma aos sistemas computatorizados dos MIPS. Liberaram seu primeiro projeto, o R2000, em 1985, melhorando o projeto como o R3000 em 1988. Estes 32 processadores centrais do bocado deram forma à base de sua companhia com os 1980s, usada primeiramente na série do SGI das estações de trabalho. Estes projetos do comercial deviated da pesquisa académico de Stanford executando a maioria dos bloqueios na ferragem, fornecendo completamente multiplicar e dividir instruções (entre outros).

Em 1991 MIPS liberados o primeiro microprocessador 64-bit, o R4000. Entretanto, os MIPS tiveram dificuldades financeiras ao trazê-lo ao mercado. O projeto era assim importante para o SGI, então um de poucos clientes principais dos MIPS, que o SGI comprado a companhia outright em 1992 a fim garantir o projeto não estaria perdido. Como uma subsidiária do SGI, a companhia tornou-se sabida como tecnologias dos MIPS.

Nos MIPS dos 1990s adiantados começados licenciar seus projetos aos vendedores third-party. Isto provou razoavelmente bem sucedido devido ao simplicity do núcleo, que permitiu que fosse usado em um número de aplicações que usariam anteriormente projetos muito mais menos capazes de CISC da contagem e do preço similares da porta -- os dois são fortemente relacionados; o preço de um processador central é relacionado geralmente ao número das portas e ao número dos pinos externos. Sun Microsystems tentado seguir seu sucesso licenciando seu núcleo de SPARC, mas nunca estêve em qualquer lugar próximo como bem sucedidos. Por 1990s atrasados os MIPS eram um powerhouse no campo encaixado do processador, e em 1997 os 48 millionth MIPS-basearam o processador central enviado, fazendo lhe o primeiro processador central do RISC ao outship a família 68k famosa. Os MIPS eram assim bem sucedidos que o SGI girou-fora tecnologias dos MIPS em 1998. Inteiramente a metade da renda dos MIPS vem hoje de licenciar seus projetos, quando muito do descanso vier do trabalho de projeto do contrato nos núcleos que estarão produzidos então por terceiros partidos.

Em 1999 MIPS formalized seu sistema licenciando em torno de dois projetos básicos, 32 do bocado MIPS32 e de MIPS64 64-bit. NEC, Toshiba e SiByte (adquiridos mais tarde por Broadcom) cada licenças obtidas para o MIPS64 assim que se anunciar. Philips, a lógica do LSI e IDT têm-nos juntado desde. Sucesso o sucesso seguido os MIPS que, e hoje os núcleos são um do mais-usou núcleos do “heavyweight” no marketplace para os dispositivos computer-like (computadores hand-held, caixas do ajust-alto, etc.), com outros desenhadores que lutam o para fora por outros niches. Alguma indicação de seu sucesso é o fato que os núcleos dos MIPS dos usos de Motorola/Freescale em seus projetos da caixa do ajust-alto, em vez do seus próprios PowerPC-basearam núcleos.

Desde que a arquitetura dos MIPS é licensable, atraiu diversas companhias de start-up do processador sobre os anos. Uma das primeiras partidas para projetar processadores dos MIPS era dispositivos do efeito de Quantum (ver a seção seguinte). A equipe de projeto dos MIPS que projetou o R4300 enfiou a companhia SandCraft, que projetou o R5432 para NEC e produziu mais tarde o SR7100, um dos primeiros processadores out-of-order da execução para o mercado encaixado. A equipe StrongARM original do DEC rachou eventualmente em duas partidas MIPS-baseadas: Sibyte que produziu o SB-1250, uma da primeira sistema-em-um-microplaqueta MIPS-baseada high-performance (SOC); quando o semicondutor do Alchemy produziu o Au-1000 SOC para aplicações low-power. Sibyte foi adquirido por Broadcom quando o Alchemy foi adquirido por AMD. Lexra usou a MIPS-como a arquitetura e adicionou extensões de DSP para o mercado audio da microplaqueta e a sustentação multithreading para o mercado do trabalho em rede. Devido a Lexra que não licencia a arquitetura, dois lawsuits foram começados entre as duas companhias. O primeiro foi resolvido rapidamente quando Lexra prometeu não anunciar seus processadores como MIPS-compatíveis. O segundo protracted, feriu ambo o negócio companies, e culminado nas tecnologias dos MIPS que dão a Lexra uma licença livre e um pagamento de dinheiro grande. [editar]

Família do processador central

O primeiro modelo comercial do processador central dos MIPS, o R2000, foi anunciado em 1985. Adicionou o múltiplo-ciclo multiplica e divide instruções em uma unidade um tanto independente da em-microplaqueta. As instruções novas foram adicionadas para recuperar os resultados desta parte traseira da unidade ao núcleo da execução. Ironically, as instruções derecuperação foram bloqueadas, que melhoraram a densidade compilada do código mas fizeram o nome dos MIPS sem sentido.

O R2000 podia ser grande-endian ou pequeno-endian carregado. Não teve o thirty-two 32 registos de uso geral do bocado, mas o nenhum registo do código de circunstância, considerando o um bottleneck potencial, uma característica que compartilhasse com o AMD 29000 e o alfa do DEC. Ao contrário de outros registos o contador de programa não é diretamente acessível.

O R2000 teve também a sustentação para até quatro co-processadores, um de que foi construído no processador central principal e segurou exceções e armadilhas, quando os outros três foram deixados para outros usos. Um destes poderia ser enchido pelo R2010 opcional FPU, que teve o thirty-two 32 registos do bocado que poderiam ser usados como dezesseis registos 64-bit para double-precision.

O R3000 sucedeu o R2000 em 1988, adicionando esconderijos de 32 kB (aumentados logo a 64 KB) para instruções e dados, junto com a sustentação da coerência do esconderijo para o uso do multi-processor. Quando havia umas falhas na sustentação do multiprocessor de R3000, controlou ainda ser uma parte de diversos projetos bem sucedidos do multiprocessor. O R3000 incluiu também um MMU interno, uma característica comum nos processadores centrais da era. O R3000 era os primeiros MIPS bem sucedidos projeta no marketplace, e sobre 1 milhão foram feitos eventualmente. O R3000A, usado em Sony extremamente bem sucedido PlayStation, era uma versão colidida velocidade que funciona em 40 megahertz que entregou um desempenho de 32 VUPs. Como o R2000, o R3000 foi emparelhado com o R3010 FPU. Pacemips produziu um R3400 e IDT produziu R3500, ambos ele era R3000s com o fpu R3010 em uma única microplaqueta. R3900 de Toshiba era virtualmente um primeiro SoC para os PCes Handheld adiantados baseados no CE de Windows.

A série R4000, liberada em 1991, estendida o jogo de instrução dos MIPS a uma arquitetura 64-bit cheia, movida o FPU no dado principal para criar um sistema single-chip, e operada em uma velocidade de pulso de disparo interna radical elevada (foi introduzida em 100 megahertz). Entretanto, a fim conseguir a velocidade de pulso de disparo os esconderijos foram reduzidos a 8 KB cada e fizeram exame de três ciclos ao acesso. As freqüências operando-se elevadas foram conseguidas com a técnica do encanamento profundo (chamado super-encanamento naquele tempo). Com a introdução do R4000 um número de versões melhoradas seguiram logo, including o R4400 de 1993 que incluíram esconderijos de 16 KB, a operação 64-bit pela maior parte bug-free, e um controlador para um outro esconderijo externo de 1 MB (2 nivelados).

Os MIPS, agora uma divisão do SGI chamaram MTI, projetams o baixo-custo R4200, e mais tarde o custo mesmo mais baixo R4300, que era o R4200 com uma barra-ônibus externa de 32 bocados. Nintendo 64 usou um processador central de NEC VR4300 que fosse baseado nos MIPS low-cost R4300i. [1]

Os dispositivos do efeito de Quantum (QED), uma companhia separada enfiada por refugees dos MIPS, projetaram o R4600 “Orion”, o R4700 “Orion”, o R4650 e o R5000. Onde o R4000 tinha empurrado a freqüência de pulso de disparo e é sacrificado a capacidade do esconderijo, os projetos de QED emfatizaram os esconderijos grandes que poderiam ser alcançados em apenas dois ciclos e no uso eficiente da área do silicone. Os R4600 e os R4700 foram usados nas versões low-cost da estação de trabalho do SGI Indy assim como os routers baseados primeiros MIPS de Cisco, tais como os routers 36x0 e 7x00-series. O R4650 foi usado nas caixas originais do ajust-alto de WebTV (agora tevê de Microsoft). O R5000 FPU teve programar floating-point mais flexível da única precisão do que o R4000, e em conseqüência, R5000-based SGI Indys teve o desempenho muito melhor dos gráficos do que R4400 similarmente cronometrado Indys com a mesma ferragem dos gráficos. O SGI deu à placa velha dos gráficos um nome novo quando foi combinado com o R5000 a fim emfatizar a melhoria. QED projetou mais tarde a família RM7000 e RM9000 dos dispositivos para mercados encaixados como o trabalho em rede e as impressoras de laser. QED foi adquirido pelo PMC-Sierra do fabricante do semicondutor em agosto 2000, última companhia que continua a invest na arquitetura dos MIPS.

O R8000 (1994) era os primeiros MIPS superscalar projeta, capaz de executar dois ALU e duas operações de memória por o ciclo. O projeto foi espalhado sobre seis microplaquetas: uma unidade do inteiro (com esconderijos de dados de 16 KB da instrução e de 16 KB L1), uma unidade floating-point, três ram secundárias do Tag do esconderijo do cheio-costume (dois para acessos secundários do esconderijo, um para a barra-ônibus que snooping), e um controlador ASIC do esconderijo. O projeto mandou a precisão dois dobro inteiramente pipelined multiplic-adicionar as unidades, que poderiam fluir dados do esconderijo secundário off-chip do MB 4. O R8000 powered usuários do computador do desafio do poder do SGI nos 1990s mid e tornou-se mais tarde disponível na estação de trabalho do poder Indigo2. Seus desempenho limitado do inteiro e custo elevado umedeceram a apelação para a maioria de usuários, embora seus usuários científicos aptos do desempenho de FPU completamente bem, e o R8000 não fossem no marketplace por somente um ano e remanescessem razoavelmente raros.

Em 1995, o R10000 foi liberado. Este processador era um projeto single-chip, funcionava em uma velocidade de pulso de disparo mais rápida do que o R8000, e tinha 32 KB maiores esconderijos preliminares da instrução e dos dados. Era também superscalar, mas sua inovação principal era execução out-of-order. Mesmo com um único encanamento da memória e um FPU mais simples, o desempenho do inteiro, o preço mais baixo vastamente melhorado, e a densidade mais elevada fizeram o R10000 preferível para a maioria de clientes.

Os projetos recentes tudo foram baseados no núcleo R10000. O R12000 usou o manufacturing melhorado encolher a microplaqueta e operar-se em umas taxas de pulso de disparo mais elevadas. O R14000 revisado permitiu umas taxas de pulso de disparo mais elevadas com sustentação adicional para DDR SRAM no esconderijo off-chip, e uma barra-ônibus mais rápida do lado dianteiro cronometrou a 200 megahertz para o throughput melhor. Umas iterações mais atrasadas são nomeadas o R16000 e o R16000A e caracterizam a velocidade de pulso de disparo aumentada, o esconderijo L1 adicional, e o manufacturing menor do dado comparado com antes. MIPS das especificações do microprocessador Modelo Freqüência [megahertz] Ano Processo [µm] Transistor [milhões] Tamanho do dado [² do milímetro] Pinos do IO Poder [W] Tensão Dcache [k] Icache [k] Scache [k] R2000 8-16.7 1985 2.0 0.11 -- -- -- -- 32 64 nenhuns R3000 20-40 1988 1.2 0.11 66.12 145 4 -- 64 64 nenhuns R4000 100 1991 0.8 1.35 213 179 15 5 8 8 1024 R4400 100-250 1992 0.6 2.3 186 179 15 5 16 16 1024 R4600 100-133 1994 0.64 2.2 77 179 4.6 5 16 16 512 R5000 150-200 1996 0.35 3.7 84 223 10 3.3 32 32 1024 R8000 75-90 1994 0.5 2.6 299 591 30 3.3 16 16 1024 R10000 150-250 1995 0.35 6.8 299 599 30 3.3 32 32 512 R12000 270-400 1998 0.18-0.25 6.9 204 600 20 4 32 32 1024 R14000 500-600 2001 0.13 7.2 204 527 17 -- 32 32 2048 R16000 700-800 2002 0.11 -- -- -- 20 -- 64 64 4096

Nota: Estas especificações são somente configurações comuns do processador. As variações existem, especialmente no esconderijo do nível 2. [editar]

Aplicações

Entre os fabricantes que fizeram sistemas da estação de trabalho do computador que usam processadores dos MIPS ser SGI, MIPS de Sistemas Computatorizados, Inc., Olivetti, Siemens-Nixdorf, Acer, Digital Equipment Corporation, NEC, e DeskStation. Os vários sistemas operando-se foram movidos à arquitetura, tal como o CE de IRIX do SGI, de Windows NT de Microsoft (embora sustentação para os MIPS terminados com a liberação de Windows NT 4.0) e de Windows, Linux, sistema V do DEB, do UNIX, SINIX, MIPS próprio RISC/os dos sistemas computatorizados, e outros.

Entretanto, o uso dos MIPS como o processador principal de estações de trabalho do computador declinou, e o SGI anunciou suas plantas para cessar de desenvolver iterações high-performance da arquitetura dos MIPS no favor de usar processadores de Intel IA64-based (ver a “outra seção dos modelos e das plantas futuras” abaixo).

Na uma mão, o uso dos microprocessadores dos MIPS em papéis encaixados é provável remanescer comum, por causa das características baixas de execuções encaixadas dos MIPS, a disponibilidade larga do poder-consumo e do calor de ferramentas de desenvolvimento encaixadas para MIPS, as well as os peritos knowledgeable sobre a arquitetura. [editar]

Outros modelos e plantas futuras

Outros membros da família dos MIPS incluem o R6000, uma execução do ECL da arquitetura dos MIPS que foi produzida pela tecnologia integrada bipolar. O microprocessador R6000 introduziu o jogo de instrução dos MIPS II. Sua arquitetura de TLB e de esconderijo é diferente de todos membros restantes da família dos MIPS. O R6000 não entregou os benefícios prometidos do desempenho, e embora visse algum uso em máquinas dos dados de controle, desapareceu rapidamente do mercado mainstream. O RM7000 era uma versão do R5000 com um built-in 256 esconderijo do nível 2 do kB e um controlador para o esconderijo opcional do nível três. Foi alvejado primeiramente em projetos encaixados, including processadores dos gráficos do SGI e várias soluções do trabalho em rede, primeiramente por Cisco. O nome R9000 foi usado nunca.

Em uma vez o SGI tinha pretendido mover-se fora da plataforma dos MIPS para Intel Itanium, e o desenvolvimento era ter terminado com o R10000. O sempre-mais longo atrasa em introduzir o Itanium significou que a base instalada de máquinas MIPS-baseadas continuou a aumentar. Por 1999 estava desobstruído que o desenvolvimento tinha terminado demasiado logo, e os R14000 e os R16000 foram liberados em conseqüência. O SGI tinha sugerido R8000 em um estilo mais complexo FPU para umas R-séries mais atrasadas, e também em um processador duplo do núcleo, mas os problemas financeiros e o uso oficialmente suportado do SGI da emulation de QuickTransit funcionar binaries de IRIX em Altix eliminaram essencialmente o desenvolvimento da ferragem de IRIX/MIPS. [editar]

Núcleos

Em anos recentes da tecnologia usada nas várias gerações dos MIPS foi oferecido mais como IP-núcleos (edifício-obstrui) para projetos encaixados do processador. O bocado ambos os 32 e os núcleos básicos 64-bit são oferecidos, sabido como o 4K e o 5K respectivamente, e o projeto próprio pode ser licenciado como MIPS32 e MIPS64. Estes núcleos podem ser misturados com as unidades add-in tais como FPUs, sistemas de SIMD, a vária entrada - dispositivos de saída, etc.

Os MIPS dos núcleos foram comercialmente bem sucedidos, agora sendo usado nos muitos consumidor e aplicações industriais. Os MIPS dos núcleos podem ser encontrados em uns routers mais novos de Cisco e de Linksys, em uns modem de cabo e em uns modem do ADSL, em uns smartcards, em uns motores da impressora de laser, em umas caixas do ajust-alto, em uns robôs, em computadores handheld, em Sony PlayStation 2 e em Sony PlayStation portátil. Em aplicações de cellphone/PDA, o núcleo dos MIPS foi incapaz de deslocar o encarregado, núcleo competindo do BRAÇO.

Exemplos de dispositivos MIPS-powered: Broadcom BCM5352E - Processador do router de WiFi com 54g WLAN, Ethernet rápido, 200 megahertz, ins 16KiB. esconderijo dos dados 8KiB, esconderijo do prefetch 256B, MMU, 16 flash de série/paralelo do controlador do megahertz SDRAM do bocado 100, 5 Ethernet do porto 100 Mbit/s (interruptor), 16 GPIO, JTAG, 2xUART, 336 esfera BGA. BCM 11xx, 12xx, 14xx - linha dos MIPS de 64bit “SiByte”.

IDT RC32438, ATI Xilleon, Alchemy Au1000, 1100, 1200, Broadcom Sentry5, Cavium Octeon CN34xx e CN38xx, tecnologias EasyPort de Infineon, Amazon, ADM5120, WildPass, INCA-IP, INCA-IP2, EMMA de NEC e EMMA2, NEC VR4181A, VR4121, VR4122, VR4181A, VR5432, VR5500, geração das tecnologias do carvalho, PMC-Sierra RM11200, QuickLogic QuickMIPS ESP, Toshiba “Donau”, Toshiba TMPR492x, TX4925, TX9956, TX7901 [editar]

Programação e emulation

   Artigo principal: MIPS do conjunto

Há dos “um simulador livremente disponível” SPIM chamado MIPS R2000/R3000 para diversos sistemas operando-se (especificamente Unix ou GNU/Linux; Ósmio X do Mac; MS Windows 95, 98, NT, 2000, XP; e DOS) qual é bom para aprender a programação da língua de conjunto dos MIPS e os conceitos gerais da programação da língua do RISC-conjunto: http://www.cs.wisc.edu/~larus/spim.html

Um emulador livre característica-mais rico dos MIPS está disponível do projeto de GXemul (sabido anteriormente como o projeto de mips64emul), que emula não somente os vários MIPS III e uns microprocessadores mais elevados (do R4000 com o R10000), mas emula também os sistemas computatorizados inteiros que usam os microprocessadores. Por exemplo, GXemul pode emular um DECstation com um processador central dos MIPS R4400 (e o carregador a Ultrix), e um O2 do SGI com um processador central dos MIPS R10000 (embora a abilidade de carregar Irix é limitada), entre outros, as well as os vários framebuffers, os controladores de SCSI, e o gosto que compreendem aqueles sistemas. Mips das chamadas do sistema serviço Código da armadilha Entrada Saída Notas print_int $v0=1 inteiro de $a0= a imprimir imprime a0 à saída padrão print_string $v0=4 endereço de $a0= do primeiro caráter imprime uma corda de caráter à saída padrão sbrk $v0=9 número de $a0= dos bytes requeridos endereço de $v0= da memória alocada Aloca a memória do heap [editar]

Sumário do jogo de instrução R3000

As instruções são divididas em três tipos do formato: Formato de R, de I e de J. O formato de R consiste em três registos e campo funcional, eu formato contenho dois registos e o valor 16 imediato bocado-longo e do formato de J opcode six-bit seguido por um valor imediato de 26 bocados. [2] [3]

Nome de registo, número, uso, e convenções da chamada: Registos Nome Número Uso O Callee deve preservar? $zero $0 constante 0 N/A $at $1 ajuntador provisório não $v0-$v1 $2-$3 Valores para retornos da função e avaliação da expressão não $a0-$a3 $4-$7 argumentos da função não $t0-$t7 $8-$15 temporaries não $s0-$s7 $16-$23 temporaries conservados sim $t8-$t9 $24-$25 temporaries não $k0-$k1 $26-$27 reservado para a semente do ósmio não $gp $28 ponteiro global sim $sp $29 ponteiro de pilha sim $fp $30 ponteiro do frame sim $ra $31 endereço do retorno N/A

Regista que é preservado através de uma chamada é os registos que (pela convenção) não será mudado por uma chamada do sistema ou pela chamada do procedimento (função). Por exemplo, $s-registers deve ser conservado à pilha por um procedimento que necessite o usar, e $sp e $fp estão incrementados sempre por constantes, e decrecidos para trás depois que o procedimento é feito com elas (e a memória que apontam a). Pelo contraste, $ra é mudado automaticamente por toda a ligação de controle normal (umas que usa o jal), e $t-registers deve ser conservado pelo programa antes de qualquer chamada do procedimento (se o programa necessita os valores dentro deles após a chamada). [editar]

Instruções reais

Estas são as instruções que têm a execução de ferragem direta. Isto é ao contrário das instruções pseudo que são traduzidas em instruções reais múltiplas antes de ser montada.

Os seguintes são os três formatos usados para o jogo de instrução do núcleo: Tipo -31 - formato (bocados) -0- R opcode (6) rs (5) rt (5) rd (5) shamt (5) funct (6) I opcode (6) rs (5) rt (5) imediato (16) J opcode (6) endereço (26)

   * CONST denota uma constante (“imediato”).
   * No seguinte, os números do registo são somente exemplos, e todos os outros registos podem ser usados em seus lugares.
   * Todas as seguintes instruções são instruções nativas.
   * Opcodes e os códigos do funct estão no hexadecimal.

Categoria Nome Sintaxe da instrução Meaning Formato/opcode/funct Notas Aritmética Adicionar adicionar $1, $2, $3 $1 = $2 + $3 (assinado) R 0 2016 adiciona dois registos Adicionar não assinado addu $1, $2, $3 $1 = $2 + $3 (não assinado) R 0 2116 Subtrair submarino $1, $2, $3 $1 = $2 - $3 (assinado) R 0 2216 subtraem dois registos Adicionar imediato addi $1, $2, CONST $1 = $2 + CONST (assinados) I 816 Usou-se adicionar constantes (e também ao registo da cópia uma a um outro “addi $1, $2, 0”) Adicionar não assinado imediato addiu $1, $2, CONST $1 = $2 + CONST (não assinados) I 916 Multiplicam mult $1, $2 BAIXO = (($1 * $2) << 32) >> 32; HI = ($1 * $2) >> 32; R Multiplica dois registos e põe o resultado 64-bit em dois pontos especiais da memória - PONTO BAIXO e HI. Alternativamente, se poderia dizer que o resultado desta operação é: (HI interno, BAIXO interno) = $1 * $2 (64-bit). Dividir div $1, $2 = $1 BAIXOS/$2 HI = $ 1% $2 R Divide dois registos e põe o resultado do inteiro de 32 bocados em BAIXO e o restante no HI. [2] Transferência de dados Palavra da carga lw $1, CONST ($2) $1 = memória [$s2 + CONST] I 2316 carrega a palavra armazenada de: ($s2+CONST) e os seguintes 3 bytes. Halfword da carga lh $1, CONST ($2) $1 = memória [$s2 + CONST] I 2516 carrega o halfword armazenado de: ($s2+CONST) e o seguinte byte. Byte da carga libra $1, CONST ($2) $1 = memória [$s2 + CONST] I carrega o byte armazenado de: ($s2+CONST). Armazenar a palavra interruptor $1, CONST ($2) Memória [$s2 + CONST] = $1 I armazena uma palavra em: ($s2+CONST) e os seguintes 3 bytes. A ordem dos operandos é uma fonte grande da confusão. Excepto a metade $1 sh, CONST ($2) Memória [$s2 + CONST] = $1 I armazena a primeira metade de um registo (um halfword) em: ($s2+CONST) e o seguinte byte. Excepto o byte sb $1, CONST ($2) Memória [$s2 + CONST] = $1 I armazena o primeiro fourth de um registo (um byte) em: ($s2+CONST). Imediato superior da carga lui $1, CONST $1 = CONST * 216 I carrega um operando imediato de 16 bocados nos 16 bocados superiores do registo especificado. O valor máximo da constante é 216 mover-se da elevação mfhi $1 $1 = HI R Move um valor do HI para um registo. Não usar multiplicar ou uma instrução dividir-se dentro de duas instruções do mfhi (essa ação é undefined por causa do encanamento dos MIPS). mover-se do ponto baixo mflo $1 $1 = BAIXO R Move um valor de BAIXO para um registo. Não usar multiplicar ou uma instrução dividir-se dentro de duas instruções do mflo (essa ação é undefined por causa do encanamento dos MIPS). Lógico E e $1, $2, $3 $1 = $2 & $3 R Bitwise e E imediato andi $1, $2, CONST $1 = $2 & CONST I Ou ou $1, $2, $3 $1 = $2 | $3 R Bitwise ou Ou imediato ori $1, $2, CONST $1 = $2 | CONST I Exclusive ou xor $1, $2, $3 $1 = $2 ^ $3 R Nem nem $1, $2, $3 $1 = ~($2 | $3) R Bitwise nem Ajustar em menos do que slt $1, $2, $3 $1 = ($2 < $3) R Testes se um registo for menos do que outro. Ajustar menos em do que imediato slti $1, $2, CONST $1 = ($2 < CONST) I Testes se um registo for menos do que uma constante. Bitwise deslocamento Deslocar lógico esquerdo sll $1, $2, CONST $1 = $2 << CONST R número dos deslocamentos CONST dos bocados ao esquerda (multiplica por 2C O N S T) Deslocar lógico direito srl $1, $2, CONST $1 = $2 >> CONST R número dos deslocamentos CONST dos bocados à direita - os zero são deslocados dentro (se divide por 2C O N S T). Anotar que esta instrução trabalha somente como divisão de um número de dois elogios se o valor for positivo. Deslocar a aritmética direita sra $1, $2, CONST $1 = $2 >> CONST + \ \bigg(\bigg(\sum_{n=1}^{CONST}2^{31-n}\bigg)\cdot $2 >> 31 \bigg) R número dos deslocamentos CONST dos bocados - o bocado de sinal é deslocado em (divide um número de 2 elogios por 2C O N S T) Filial condicional ramificar no igual beq $1, $2, CONST se ($1 == $2) ir a PC+4+CONST I Vai à instrução no endereço especificado se dois registos forem iguais. ramificar em nao igual bne $1, $2, CONST se ($1! = $2) vão a PC+4+CONST I Vai à instrução no endereço especificado se dois registos não forem iguais. Salto incondicional salto j CONST endereço goto CONST J Incondicional saltos à instrução no endereço especificado. saltar o registo jr $1 endereço goto $1 R Saltos ao endereço contido no registo especificado salto e ligação jal CONST $31 = PC + 4; CONST goto J Para a chamada do procedimento - usou-se chamar uma sub-rotina, $31 preensões o endereço do retorno; retornar de uma sub-rotina é feito perto: jr $31

NOTA: nas instruções ramificar e de salto, o offset pode ser substituído por um presente da etiqueta em algum lugar no código.

Os Pseudoinstructions são traduzidos em instruções reais múltiplas (ver acima) antes de ser montada. Nome sintaxe da instrução Tradução real da instrução meaning Filial mais grande do que bgt se (>R de R [rs] [rt]) PC=Label Filial menos do que blt se (<R de R [rs] [rt]) PC=Label Filial mais grande do que ou igual bge se (>=R de R [rs] [rt]) PC=Label filial menos do que ou igual ble se (<=R de R [rs] [rt]) PC=Label bgtu (não assinado) bgtz [editar]

Outras instruções

Estas instruções devem ser colocadas acima “nas seções reais das instruções” ou dos “pseudoinstructions”. [editar]

Instruções lógicas comuns (bitwise) addiu $1, $2.100 $1 = $2 + 100 (imediato não assinado) addu $1, $2, $3 $1 = $2 + $3 (não assinado) div $1, $2 HI = $ 1% $2; = $1 BAIXOS/$2 subu $1, $2, $3 $1 = $2 - $3 (não assinado) [editar]

Memória para registar instruções de transferência lbu $1.100 ($2) carrega um byte não assinado lhu $1.100 ($2) carrega um halfword não assinado lwcz $1.100 ($2) carrega uma palavra ao coprocessor de “z” (“z” é o número do coprocessor)

Anotar que não há nenhuma da “instrução imediata correspondente carga mais baixo”; isto pode ser feito usando o addi (adicionar imediato, vêem abaixo) ou o ori (ou imediato) com o registo $0 (cujo o valor é sempre zero). Por exemplo, o addi $1, $0, 100 e ori $1, $0, 100 carrega o valor decimal 100 no registo $1. [editar]

Registar às instruções de transferência da memória swcz $1.100 ($2) armazena uma palavra do coprocessor de “z” (“z” é o número do coprocessor). [editar]

Registo - a - instruções do registo (movimento) mfcz $1, $c1 move um valor no registo $1 do coprocessor para o registo principal $1 do processador (“z” é o número do coprocessor) mtcz $1, $c1 move um valor do registo principal $1 do processador para o registo $1 do coprocessor mov.d $fp1, $fp3 move um valor com precisão dobro do registo $3 de FPU para o registo $1 de f.p. mov.s $fp1, $fp3 move um valor com única precisão do registo $3 de FPU para o registo $1 de f.p.

(valores com registos adjacentes do uso dois FPU da precisão dobro)

Uma operação com os immediates assinados difere de um com os não assinados que não joga uma exceção. Subtrair um imediato pode ser feito com adição da negação desse valor como o imediato. [editar]

Algumas outras instruções importantes

   * nop (nenhuma operação) (código de máquina 0x00000000, interpretado pelo processador central como o sll $0, $0.0)
   * ruptura (rupturas o programa, usado por debuggers)
   * syscall (usos para chamadas do sistema ao sistema se operando)
   * um jogo de instruções FPU-relacionadas
   * um jogo vasto de instruções virtuais, decomposed pelo ajuntador em instruções nativas

[editar]

Cultura

Em Mario Super 64, o coelho é nomeado Mips após o processador dos MIPS o sistema de Nintendo 64 usado. [editar]

Notas

  1. O ^ NEC oferece a dois o desempenho elevado do custo os microprocessadores 64-bit do RISC
  2. ^ um sumário do jogo de instrução dos MIPS R3000 de b
  3. Referência da instrução dos MIPS do ^

[editar]

Leitura mais adicional

   * Patterson e Hennessy: Organização e projeto do computador. A relação da ferragem/software. Publishers de Morgan Kaufmann. ISBN 1-55860-604-1
   * Dominic Sweetman: Ver MIPS funcionar. Publishers de Morgan Kaufmann. ISBN 1-55860-410-3
Outras línguas
Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Sub-domains

CDRoms - Magnatune - Librivox - Liber Liber - Encyclopaedia Britannica - Project Gutenberg - Wikipedia 2008 - Wikipedia 2007 - Wikipedia 2006 -

Other Domains

https://www.classicistranieri.it - https://www.ebooksgratis.com - https://www.gutenbergaustralia.com - https://www.englishwikipedia.com - https://www.wikipediazim.com - https://www.wikisourcezim.com - https://www.projectgutenberg.net - https://www.projectgutenberg.es - https://www.radioascolto.com - https://www.debitoformtivo.it - https://www.wikipediaforschools.org - https://www.projectgutenbergzim.com