• No results found

Artigo - Arquitetura Mips

N/A
N/A
Protected

Academic year: 2021

Share "Artigo - Arquitetura Mips"

Copied!
8
0
0

Loading.... (view fulltext now)

Full text

(1)

Arquitetura MIPS

Arquitetura MIPS

Anderson Malaquias Cardoso Anderson Malaquias Cardoso

Sistemas de Informação – Universidade Federal do Mato Grosso do Sul (UFMS) Sistemas de Informação – Universidade Federal do Mato Grosso do Sul (UFMS)

79.400-000 – Coxim – MS – Brasil 79.400-000 – Coxim – MS – Brasil

Anderson.mlkc@gmail.com Anderson.mlkc@gmail.com

 Abstract.

 Abstract. MIPS is the name of a processor architecture based on the use of MIPS is the name of a processor architecture based on the use of  registers. His instructions have available a set of 32 registers to perform the registers. His instructions have available a set of 32 registers to perform the ope

operaraçõeções.Ps.Procrocessessadoadores res are are the the MIPMIPS S RISRISC C (Re(Reducduced ed InsInstrutructiction on Set Set  Computer - that is, computers with reduced instruction set). This means that  Computer - that is, computers with reduced instruction set). This means that  there is a fairly small set of instructions that the processor can do. Combining there is a fairly small set of instructions that the processor can do. Combining this small number, we can create all the other operations. MIPS projects are this small number, we can create all the other operations. MIPS projects are cur

currenrently tly widwidely ely usused ed in in manmany y embembeddedded ed syssystemtems s susuch ch as as WinWindowdows s CE CE  devices, Cisco routers and video games like the Nintendo 64, Playstation, devices, Cisco routers and video games like the Nintendo 64, Playstation, Playstation 2 and Playstation Portable.

Playstation 2 and Playstation Portable.  Resumo.

 Resumo.O MIPS é o nome de uma arquitetura de processadores baseados noO MIPS é o nome de uma arquitetura de processadores baseados no uso de registradores. As suas instruções tem à disposição um conjunto de 32 uso de registradores. As suas instruções tem à disposição um conjunto de 32 registradores para realizar as operações.Processadores MIPS são do tipo registradores para realizar as operações.Processadores MIPS são do tipo   RI

  RISC SC (Re(Reducduced ed InsInstrutructiction on Set Set ComComputputer er - - ou ou sejseja, a, ComComputputadoadores res comcom Conju

Conjunto nto de de InstrInstruçõeuções s ReduzReduzidas)idas). . Isso significa que Isso significa que exisexiste te um um conjuconjuntonto bastante pequeno de instruções que o processador sabe fazer. Combinando bastante pequeno de instruções que o processador sabe fazer. Combinando este pequeno número, podemos criar todas as demais operações. Projetos este pequeno número, podemos criar todas as demais operações. Projetos  MIPS são atualmente bastante usados em muitos sistemas embarcados como  MIPS são atualmente bastante usados em muitos sistemas embarcados como dispositivos Windows CE, roteadores Cisco e video-games como o Nintendo dispositivos Windows CE, roteadores Cisco e video-games como o Nintendo 64, Playstation, Playstation 2 e

64, Playstation, Playstation 2 e Playstation Portable.Playstation Portable.

1. Arquitetura 1. Arquitetura

O MIPS é uma arquitetura de processadores RISC desenvolvida pela MIPS Computer O MIPS é uma arquitetura de processadores RISC desenvolvida pela MIPS Computer Systems. As primeiras versões das CPU's MIPS eram de 32-bits, mas as mais recentes Systems. As primeiras versões das CPU's MIPS eram de 32-bits, mas as mais recentes tornar

tornaram-se 64-bits. Existem 5 am-se 64-bits. Existem 5 versões da versões da implemimplementação MIPS, compatíveentação MIPS, compatíveis is entre si,entre si, chamadas MIPS I, MIPS II, MIPS III, MIPS IV, e MIPS 32/64. O mais recente, MIPS 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 32/64 de liberação 2, define um registrador de controle ajustado assim como o conjunto de instruções.

de instruções.

•• DivDiversaersas extenss extensões “addões “add-on-on” ” estãestão também diso também disponponíveíveis, incluis, incluindindo MIPS-o MIPS-3D que é3D que é um conjunto simples das instruções ponto-flutuante SIMD dedicadas às tarefas 3D um conjunto simples das instruções ponto-flutuante SIMD dedicadas às tarefas 3D comuns;

comuns;

•• MDMX, MDMX, que é um cque é um conjunonjunto de into de instruçõstruções mais extes mais extensivo ensivo do inteido inteiro SIMD ro SIMD usandusando oso os registos ponto-flutuante 64-bit;

registos ponto-flutuante 64-bit;

•• MIPMIPS MT , adiçõeS MT , adições ao sistems ao sistema simila similar a Hyperar a HyperThrThreadeading naing nas famílis famílias mais recas mais recententeses de processadores da Intel.

(2)

Pelo fato de ser um processador com design "limpo", esta arquitetura MIPS pode ser usada com fins educativos, e influenciou processadores tais como o SPARC da Sun. Em meados de 1990s estimou-se que um em cada três microprocessadores RISC era MIPS.

Os processadores MIPS são usados em aplicações tais como: • Computadores da Silicon Graphics;

• muitos sistemas embarcados; • Dispositivos com Windows CE; • Roteadores da Cisco

• Videogames como Nintendo 64 e PlayStation.

2. História

Um grupo liderado por David Patterson e Carlo Séquin, em Berkeley, desenvolveu chips processadores, para dar um nome a este conceito eles utilizaram o termo RISC, e deram ao chip desenvolvido por eles nessa filosofia o nome RISC I no ano de 1980. Esse chip foi quase imediatamente seguido pelo RISC II, projetado pelos mesmos dois pesquisadores. Pouco mais tarde, em 1981, John Hennessy, pesquisador de Stanford, universidade situada do outro lado da baía de San Francisco, projetou e fabricou um chip diferente, ao qual ele deu o nome de MIPS. O conceito básico era aumentar muito o desempenho com o uso profundo de pipelines para as instruções, uma técnica que, embora fosse boa, era difícil de fazer. Geralmente um pipeline divide a tarefa de executar uma instrução em diversas etapas, executando "passo a passo" várias instruções ao mesmo tempo. Porém, os projetos tradicionais da época esperavam para terminar uma instrução inteira antes de seguir adiante, deixando assim boa parte do processador sem fazer nada enquanto uma instrução era concluída.

Hennessy começou a acreditar no potencial da arquitetura, e formou a MIPS Computer Systems, no ano de 1984. A empresa apresentou seu primeiro projeto, o R2000, em 1985 como a primeira máquina comercial RISC, as falhas encontradas nesta máquina foram corrigidas com o lançamento do R3000 em 1988. Este projeto era a base da companhia na década de 1980, e foi utilizado principalmente em algumas séries de estações de trabalho da Silicon Graphics Inc. Estes projetos comerciais deu início na Stanford a uma série de pesquisas acadêmicas em áreas como a implementação da maioria dos bloqueios de hardware e instruções completas para a multiplicação e divisão, entre outros.

O primeiro microprocessador de 64 bits utilizando a tecnologia MIPS chega ao mercado em 1991, o R4000TM também pode executar facilmente aplicações de 32 bits mesmo que o processador esteja rodando em 64 bits. Os principais destaques do R4000TM são: 64 bits em unidade lógica aritimética (ULA) e 64 bits em espaço de endereço virtual. A Silicon Graphics Inc. adquire a MIPS Computer Systems em 1992, dando sequência ao desenvolvimento de microprocessadores MIPS através do seu Grupo, e incorpora MIPS Technologies, Inc. como uma subsidiária de propriedade da SGI. Três anos

(3)

depois o R4700 entra no mercado como uma versão de baixo custo levando o título de microprocessador do ano.

Em 1996, a arquitetura MIPS tornou-se arquitetura RISC que teve maior ascensão no mundo, com 19,2 milhões de processadores licenciados MIPS. No ano seguinte foram licenciados 48 milhões de processadores fazendo com que a arquitetura mips ultrapassesse o processador 68000 Motorola com tecnologia CISC.

Em 2009, a MIPS Technologies publicou informações sobre o uso do Android em processadores MIPS. Os desenvolvedores podem usar esta plataforma para dispositivos de consumo, tais como, televisores digitais, dispositivos móveis de internet, telefones celulares, players de mídia e sistemas de VoIP em casa.

Neste mesmo ano a MIPS anunciou sua aproximação do sistema do Google durante a feira Computex, na China, mostrando um tocador de mídia residencial e uma tela LCD de 10,4 polegadas com um computador portátil rodando o sistema Android. Estes foram os primeiros produtos fora da categoria de celulares e smartphones com o sistema do Google.

3. Família do processador central

O primeiro modelo comercial do processador central dos MIPS, o R2000, foi anunciado em 1985. 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.

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.

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. 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

(4)

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.

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.

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.

4. 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 Computadorizados, 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 computadorizados, 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

(5)

desenvolvimento encaixadas para MIPS, as well as os peritos knowledgeable sobre a arquitetura.

5. 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 802.11g WLAN, Fast Ethernet, 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.

6. Programação e Emulação

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 habilidade de carregar Irix seja

(6)

limitada), entre outros, assim como 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.

7. 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.

Os Pseudoinstructions são traduzidos em instruções reais múltiplas (ver acima) antes de ser montada.

Name instruction

syntax Real instruction translation meaning

Load Address la $1, LabelAddr lui $1, LabelAddr[31:16]; ori$1,$1, LabelAddr[15:0] $1 = Label Address Load Immediate li $1,

IMMED[31:0]

lui $1, IMMED[31:16]; ori $1,$1, IMMED[15:0] $1 = 32 bit Immediate value Branch greater than bgt if(R[rs]>R[rt]) PC=Label

Branch less than blt if(R[rs]<R[rt])

PC=Label Branch greater

than or equal bge

if(R[rs]>=R[rt]) PC=Label

branch less than

or equal ble

if(R[rs]⇐R[rt])

PC=Label branch greater

than unsigned bgtu

if(R[rs]⇒R[rt])

PC=Label

(7)

thanzero PC=Label

8. Outras Instruções

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

8.1 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)

8.2 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.

8.3 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).

8.4 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.

8.5 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.

(8)

Referencias

http://pt.wikipedia.org/wiki/Arquitetura_MIPS

http://pt.wikibooks.org/wiki/Introdu%C3%A7%C3%A3o_

References

Related documents

Within the context of a new two-row barley ( Hordeum vulgare L.) breeding program, my objectives were to i) investigate various methods of updating training population data and

Our new variants of the Spiral- and 2D-technique retain the overall arrangement of the Spiral- and 2D- technique, centering the most relevant data items in the middle of the screen,

Figs 15 and 16 outline a comparison of the average localization error between the ideal case and different number of multiple jammers in the network for the SF-MFMPL under a

First, we can see that MCDE is efficient (C1), and, thanks to the index update operations, one can use it in combination with the sliding window model to mine data streams in a

The objective of this study is to estimate the recreational use value gained from the recreational fishing of southern bluefin tuna at Portland, Australia.. To

Case Management: The Benefits of Matter Centricity Presenters: April 2-4, 2009 www.techshow.com...

Fluorescence spectrum was obtained based on a F7000 fluorescence spectrometer (Hitachi, Japan).. ECL spectra were recorded with CHI 760E and a F7000 fluorescence

During these visits, the staff interviewed the selectmen, the finance committee, town administrator, accountant, treasurer &amp; collector, administrative assessor, and