Artigo - Arquitetura Mips

February 13, 2019 | Author: Andersonmlkc12 | Category: Mips Instruction Set, Computer Hardware, Office Equipment, Tecnologia, Classes Of Computers
Share Embed Donate


Short Description

Download Artigo - Arquitetura Mips...

Description

Arquitetura MIPS Anderson Malaquias Cardoso

Sistemas de Informação – Universidade Federal do Mato Grosso do Sul (UFMS) 79.400-000 – Coxim – MS – Brasil [email protected]

 Abstract.

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 opera operaçõe ções.P s.Proc rocess essado adores res are the MIPS MIPS RISC RISC (Reduc (Reduced ed Instru Instructi ction on Set  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 this small number, we can create all the other operations. MIPS projects are curren currently tly widely widely used used in many many embedd embedded ed system systemss such such as Window Windowss CE  devices, Cisco routers and video games like the Nintendo 64, Playstation, Playstation 2 and Playstation Portable.

 Resumo.O

MIPS é o nome de uma arquitetura de processadores baseados no 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   RISC RISC (Reduc (Reduced ed Instru Instructi ction on Set Comput Computer er - ou seja, seja, Comput Computado adores res com Conjunto Conjunto de Instruçõe Instruçõess Reduzidas) Reduzidas).. Isso significa que existe existe um conjunto conjunto bastante pequeno de instruções que o processador sabe fazer. Combinando este pequeno número, podemos criar todas as demais operações. Projetos  MIPS são atualmente bastante usados em muitos sistemas embarcados como dispositivos Windows CE, roteadores Cisco e video-games como o Nintendo 64, Playstation, Playstation 2 e Playstation Portable.

1. Arquitetura

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 tornaram-se tornaram-se 64-bits. Existem 5 versões da implementação implementação MIPS, compatíveis 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. • Diversa Diversass extensões extensões “add-on “add-on”” estão estão também dispon disponíve íveis, is, incluind incluindoo MIPS-3D MIPS-3D que é um conjunto simples das instruções ponto-flutuante SIMD dedicadas às tarefas 3D comuns; • MDMX, que é um conjun conjunto to de instruçõ instruções es mais extensivo extensivo do inteiro inteiro SIMD usando usando os registos ponto-flutuante 64-bit; • MIPS MIPS MT , adições adições ao sistema sistema similar similar a HyperThr HyperThread eading ing nas nas famílias famílias mais recent recentes es de processadores da Intel.

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

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 singlechip, 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

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

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

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

Load Address

la $1, LabelAddr

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

Load Immediate

li $1, lui $1, IMMED[31:16]; ori $1 = 32 bit IMMED[31:0] $1,$1, IMMED[15:0] Immediate value

Branch than

bgt

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

Branch less than blt

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

branch less than ble or equal

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

branch greater bgtu than unsigned

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

branch

if(R[rs]>0)

greater

greater bgtz

meaning





than zero

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.

Referencias

http://pt.wikipedia.org/wiki/Arquitetura_MIPS http://pt.wikibooks.org/wiki/Introdu%C3%A7%C3%A3o_ %C3%A0_Arquitetura_de_Computadores/O_que_%C3%A9_o_MIPS%3F

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF