O PROCESSADOR MULTICICLO MIPS_S

Tamanho: px
Começar a partir da página:

Download "O PROCESSADOR MULTICICLO MIPS_S"

Transcrição

1 V De: 23/novembro/2016 por Ney Calazans Organzação de Computadores O PROCESSADOR MULTICICLO MIPS_S 1 CARACTERÍSTICAS GERAIS DA ARQUITETURA MIPS A arqutetura MIPS é do tpo load-store, ou seja, as operações lógcas e artmétcas são executadas exclusvamente entre regstradores da arqutetura ou entre constantes medatas e regstradores. As operações de acesso à memóra só executam ou uma letura da memóra (load) ou uma escrta na memóra (store). Devdo à característca load-store, o processador dsponblza um conjunto relatvamente grande de regstradores, para reduzr o número de acessos à memóra externa, pos estes últmos representam perda de desempenho sgnfcatva em relação a operações entre regstradores nternos ao processador. Esta característca dfere de arquteturas baseadas em acumulador, que mantêm todos os dados em memóra, realzando operações artmétcas entre um conteúdo que está em memóra e um, ou poucos regstradores de dados, os denomnados acumuladores. Consdere o exemplo do códgo C a segur: for(=0; <1000; ++). Neste exemplo, caso esteja armazenado em memóra, tem-se 2000 acessos à memóra, realzando letura e escrta a cada teração do laço for. Caso se tenha o valor de armazenado em um regstrador nterno, apenas opera-se sobre este, sem acesso à memóra externa durante a maor parte do tempo. Consderando-se que o tempo de acesso a um regstrador é normalmente de uma a duas ordens de grandeza menor que o tempo de acesso a uma posção de memóra (ou seja, 10 a 100 vezes menor, dependendo de aspectos tas como tecnologa de mplementação do processador e das memóras, padrão de comuncação processador-memóra, etc.), percebe-se o ganho de desempenho que arquteturas load-store podem auferr em relação a arquteturas baseadas em acumulador(es). Dados e endereços na arqutetura MIPS são de 32 bts. Logo, dz-se que a palavra deste processador é de 32 bts, ou smplesmente que se trata de um processador de 32 bts. Obvamente, exstem processadores com outro tamanho de palavra, tal como o 8051 da Intel (8 bts), o TMS9900 da Texas (16bts) e o Itanum da Intel (64 bts). O endereçamento de memóra no MIPS é orentado a byte, ou seja, cada endereço de memóra é um dentfcador de uma posção de memóra onde se armazena apenas 1 byte=8 bts. Então, uma palavra do processador armazenada em memóra ocupa 4 posções de memóra, tpcamente em quatro endereços consecutvas. O banco de regstradores da arqutetura possu 32 regstradores de uso geral, de 32 bts cada um, denomnados $0 a $31. O regstrador $0 não é realmente um regstrador, mas a constante 0 representada em 32 bts, que pode ser referencada como um regstrador ordnáro. Este é dsponblzado para nstruções que empregam o modo de endereçamento a regstrador entre outros, e que necesstem usar tal valor, muto empregado. No MIPS há um formato regular para as nstruções. Todas possuem exatamente o mesmo tamanho, e ocupam 1 palavra em memóra (32 bts), ou seja, o equvalente a 4 endereços consecutvos em memóra. A nstrução contém o códgo da operação e o(s) operando(s), caso exsta(m). Acesso a nstruções são sempre alnhados em uma frontera de palavra ntera. Assm, todo endereço váldo de uma nstrução possu os dos últmos bts guas a 0 (e.g. endereço 0, 4, 16, 32004, etc. representados em decmal). Os modos de endereçamento mas mportantes nesta arqutetura são os modos a regstrador, basedeslocamento e relatvo ao PC. O processador não possu suporte em hardware para gerencar estruturas do tpo plha em memóra, mas exste um regstrador do banco, (o $sp ou $29) que assocado a nstruções operando sobre este, e a duas nstruções especas (JAL/JALR) permtem smular estruturas do tpo plha em memóra para salvamento de contexto de funções e sub-rotnas, por exemplo. Não exstem regstradores para armazenar explctamente qualfcadores sobre a execução de operações, tas como as nformações de que a execução de uma nstrução resultou na constante 0, ou que uma nstrução artmétca gerou va-um (em nglês, carry), ou anda que seu resultado não é correto porque necessta recursos de armazenamento de maor capacdade que os dsponíves no processador (stuação chamada de transbordo, ou, em nglês, overflow). A detecção destas stuações deve ser realzada usando nstruções específcas de comparação dsponíves na arqutetura especfcamente para sto (ver o comportamento das nstruções com prefxo SLT). O que é descrto aqu é um processador que mplementa um subconjunto da arqutetura do MIPS (donde o nome MIPS_S, abrevatura de MIPS Subset). Trata-se pratcamente de uma máquna RISC completa. Faltam,

2 - 2 - contudo algumas característcas que exstem em qualquer RISC, tal como ppelnes, assunto dexado para ser ntroduzdo e estudado em profunddade em outra oportundade. 2 A RELAÇÃO PROCESSADOR - MEMÓRIAS - AMBIENTE EXTERNO A Fgura 1(a) mostra uma proposta de organzação para mplementar o processador MIPS_S. Nela, está explctada a relação entre processador, memóras externas e o mundo exteror ao subsstema processador memóras de dados e nstruções. O mundo externo é o responsável por gerar os snas de clock e reset. Uma característca prmordal desta organzação é que ela é uma organzação Harvard, ou seja, o processador usa nterfaces dstntas para comuncação com as memóras de nstruções e de dados. Outra possbldade sera o uso de uma nterface de memóra unfcada para nstruções e dados, caracterzando uma organzação von Neumann. Segue agora uma breve dscussão da organzação MIPS_S. Esta será detalhada em Seções posterores deste documento. VHDL PARCIAL DO PROCESSADOR MIPS_S NO NÍVEL DE HIERARQUIA MAIS ALTO entty MIPS_S s port(clock, reset: n std_logc; ce, rw, bw: out std_logc; _address, d_address: out std_logc_vector(31 downto 0); nstructon: n std_logc_vector(31 downto 0); data: nout std_logc_vector(31 downto 0) ); Memóra de Instruções clock reset nstructon _address BLOCO DE CONTROLE (BC) salta uns nst_branch end_dv NPC end_mul IR RESULT_OUT BLOCO DE DADOS (BD) DIAGRAMA DE BLOCOS DO PROCESSADOR MIPS_S ce rw bw data d_address Memóra de Dados end MIPS_S; archtecture MIPS_S of MIPS_S s sgnal IR, NPC, RESULT: std_logc_vector(31 downto 0); sgnal uns: mcronstructon; sgnal nst_branch, salta, end_mul, end_dv: std_logc; begn dp: entty work.datapath port map(ck=>clock,rst=>reset,d_address=>d_address, data=>data,nst_branch_out=> nst_branch, salta_out>salta,end_mul=>end_mul,end_dv=>end_dv, RESULT_OUT=>RESULT,uns=>uns,IR_IN=>IR,NPC_IN=>NPC ); ct: entty work.control_unt port map(ck=>clock,rst=>reset,_address=>_address, nstructon=>nstructon,nst_branch_n=>nst_branch, salta_n=>salta,end_mul=>end_mul,end_dv=>end_dv, RESULT_IN=>RESULT,uns=>uns,IR_OUT=>IR,NPC_OUT=>NPC ); ce <= uns.ce; rw <= uns.rw; bw <= uns.bw; end MIPS_S; (a) Dagrama de blocos processador-memóra para a organzação MIPS_S. (b) VHDL parcal do nível mas alto da herarqua de descrção do processador MIPS_S. Fgura 1 Proposta de uma organzação para o processador MIPS_S. Ilustra-se a conectvdade entre o processador, ambente externo, memóras externas e esboço da descrção VHDL de nível herárquco mas alto para a organzação. O processador MIPS_S recebe do mundo externo dos snas de controle. O prmero, denomnado clock, sncronza todos os eventos nternos do processador. O snal reset leva o processador a rencar a execução de nstruções a partr do endereço 0x de memóra (este endereço é defndo por compatbldade com o endereço assumdo pelo smulador MARS como aquele de níco da área de programas). O snal reset pode ser usado para provocar o reníco da operação do processador. Os snas provdos pelo processador MIPS_S para a troca de nformações com o mundo externo, representado pelas memóras, são: _address um barramento undreconal de 32 bts, que defne sempre o endereço da posção de memóra contendo a nstrução a ser buscada a segur; nstructon um barramento undreconal de 32 bts, contém sempre o códgo objeto da nstrução contda na posção de memóra apontada por _address; d_address um barramento undreconal de 32 bts, contendo o endereço da posção de memóra a ser lda ou escrta, da ou para a memóra de dados, respectvamente; data - um barramento bdreconal de 32 bts que transporta dados do ou para o processador MIPS_S; Além dos snas que permtem a nteração com o mundo externo, os prncpas componentes da organzação do processador MIPS_S, o Bloco de Controle (BC) e o Bloco de Dados (BD) nteragem através de 1 A notação ntroduzda aqu, 0x é uma forma de representar números na base hexadecmal. Adota-se a convenção usada no montador/smulador MARS do MIPS, que emprega o prefxo 0x para ndcar que um número está representado na base 16.

3 - 3 - um conjunto de snas específcos. São 5 snas qualfcadores que passam do BD para o BC e três snas que passam do BC para o BD. Os snas gerados no BC são: A palavra de mcronstrução (uns), para comandar a execução passo a passo das nstruções pelo BD. A mcronstrução é responsável por especfcar cada uma das ações untáras que serão executadas pelo hardware do BD a cada cclo de relógo, também chamadas de mcrooperações. Exemplos destas são cada uma das três seleções de regstradores a serem escrto/ldos no/do banco de regstradores, a operação que a ALU (do nglês, Arthmetc Logc Unt) executará, e os snas de controle de acesso à memóra de dados externa; O valor endereço da próxma nstrução a ser executada (conteúdo do regstrador NPC, localzado no BC); O códgo objeto da nstrução corrente (conteúdo do regstrador IR, localzado no BC). Os snas gerados no BD são: O snal salta, que contém o resultado do teste de condções de salto nas nstruções de salto condconal; O snal nst_branch, que qualfca se a nstrução ora em execução é ou não um salto condconal; Os qualfcadores end_mul e end_dv, produzdos no BD pelos operadores de multplcação e dvsão, que nformam ao BC o fnal da execução destas operações com um pulso de duração de 1 cclo de relógo em 1. Isto é necessáro porque trata-se de operações mas complexas que gastam, nesta organzação, múltplos cclos de relógo para executar. O BC comanda o níco da execução delas e aguarda pela nformação de seu térmno para segur com o fluxo normal de cclos de controle; O snal RESULT_OUT, que eventualmente contém um endereço calculado durante nstruções de salto (ncondconas ou condconas), valor este que deve ser escrto no regstrador PC, que se encontra no BC. É mportante ressaltar que o BC e o BD operam sempre e apenas na borda de subda do snal de relógo (clock). A cada borda de subda do clock (ou após a desatvação do snal de reset), o BC gera uma palavra de mcronstrução, e na borda de subda segunte o BD executa as ações comandadas por esta, modfcando seus regstradores. É necessáro que sempre se tenha dados estável antes das bordas de subda relógo em cada um dos blocos 2. A Fgura 1(b) representa um exemplo de codfcação do nível mas alto da herarqua do processador, em lnguagem VHDL. Nesta Fgura, deve-se notar que o BC e o BD são nstancados e conectados entre s por snas, conforme defndo pelos comandos port map no processo de nstancação. 2.1 Estrutura de Acesso à Memóra A partr da dscussão da Fgura 1, percebe-se que ambas as nterfaces de memóra são assíncronas, ou seja, não dependem de snas de relógo tas como o snal clock. Cada uma das nterfaces de acesso defne um mapa de memóra, conforme lustrado na Fgura 2. Um mapa de memóra é uma abstração que permte organzar as nformações às quas o processador tem acesso na forma de uma tabela. Cada posção deste mapa possu um endereço assocado e armazena um valor. Na arqutetura MIPS_S, ambos os mapas (de nstruções e de dados) possuem endereços de 32 bts e conteúdos de 8 bts assocados a cada posção da tabela. Assm, dz-se que as memóras de nstruções e de dados são endereçadas a byte (1 byte=8 bts) e cada um destes mapas possu 2 32 posções ( posções, correspondendo ao número de endereços dferentes de 32 bts, entre 0x e 0xFFFFFFFF). A memóra de nstruções armazena apenas nstruções. Cada nstrução na MIPS_S ocupa exatamente 32 bts. Assm, uma nstrução ocupa 4 posções de memóra. Como vsto na Fgura 1, contudo, o barramento de nstruções é de 32 bts. Logo, uma letura da memóra de nstruções busca desta não apenas o byte cujo endereço está no barramento _address, mas este e os três seguntes (esta é a regra dtada pela arqutetura). Uma outra lmtação mposta para facltar o acesso à memóra de nstruções é alnhar nstruções em uma frontera ntera de palavra. Esta expressão sgnfca que cada nstrução da MIPS_S só pode começar a partr de um endereço múltplo de 4, que correspondem àqueles cujos 2 últmos bts são 00. Assm, por exemplo, uma únca nstrução pode ocupar os endereços de 0xAAA00004 a 0xAAA00007 na memóra de nstruções, mas nunca os endereços 2 Deve estar claro que esta últma afrmação se verfca apenas se a frequênca de relógo for sufcentemente baxa para permtr que os snas establzem em no máxmo um período de relógo (entre duas bordas de subda consecutvas do clock).

4 - 4-0xFF a 0xFF00467A da mesma memóra, embora ambas as faxas correspondam a 4 bytes consecutvos na memóra. Dada esta stuação, o barramento _address não precsara ter 32 bts, apenas 30, pos os 2 últmos valem sempre 00. Não exstem snas de controle para acesso à memóra de nstruções além do endereço em _address. Isto não é necessáro, pos não há fluxo bdreconal de nformação. A memóra de nstruções é vsta pala organzação MIPS_S como uma memóra de apenas letura, que fornece nformações na sua saída (nstruções) a partr do estabelecmento do endereço de memóra pelo processador, va o barramento _address. A memóra de dados possu uma nterface um pouco mas complexa, devdo ao fato de poder ser lda ou escrta. Além dsto, os dados ldos ou gravados nesta memóra podem ter tamanho dversos. Estas necessdades fazem com que o acesso à nformação tenha um formato mas flexível. Por exemplo, um ntero típco ocupa 32 bts, mas um caracter ocupa exatamente 1 byte, e um número em ponto flutuante pode ser de 32 ou de 64 bts. Além dsto, estruturas complexas, tas como usadas em programação de alto nível (e.g. struct de C/Java ou record de Pascal), podem ter qualquer tamanho. Vetores e arranjos multdmensonas de números ou caracteres e de estruturas complexas complcam anda mas a stuação. Logo, a nterface de acesso da memóra de dados deve ser flexível para prover desempenho e proporconar economa de espaço. Anda assm, o barramento de dados (data) é fxo, de 32 bts. Lê-se sempre 4 bytes (ou posções) de memóra de cada vez. O que é ldo pode ser, por exemplo, 1 ntero ou 4 caracteres ou metade de um número em ponto flutuante de precsão dupla. Como a letura é alnhada em qualquer frontera, é até mesmo possível ler metade de um ntero e dos caracteres nos 32 bts. Memóra de Instruções ÁREA DE PROGRAMAS Memóra de Dados ÁREA DE DADOS FFFFFFFF FFFFFFF AC AB Instrução 2 Instrução 1 FFFFFFFF FFFFFFFE FFFFFFFD FFFFFFFC FFFFFFFF FFFFFFFE FFFFFFFD FFFFFFFC 8AB AB AB AB FFFFFFF B B B AF AE AD AC AB Intero 2 Intero 1 Caracter 4 Caracter 3 Caracter 2 Caracter 1 Número Ponto Flutuante (64bts) Fgura 2 - Ilustração da estrutura dos mapas de memóra do MIPS_S. Cada mapa possu 4Gposções de 1 byte. Cada nstrução ocupa exatamente 4 bytes consecutvos na memóra de nstruções, e sempre começa em um endereço onde os 2 últmos bts são 00 (confgurando um acesso alnhado a palavra). O controle de acesso à memóra de dados é feto pelo processador através dos snas ce, rw e bw. O snal ce ndca se está em curso uma operação com a memóra de dados (quando ce = 1) e o snal rw ndca se esta operação é de escrta (quando rw = 0) ou de letura (quando rw = 1). Obvamente, quando ce = 0 o valor do snal rw é rrelevante. O snal bw serve para ndcar se uma operação de escrta na memóra deve escrever apenas um byte na posção da memóra de dados cujo endereço aparece no barramento d_address (bw = 0) ou se esta deve escrever 4 bytes (ou seja, na posção explctada e nas três seguntes). Isto ocorre quando se faz uma escrta de palavra com bw = Uma palavra sobre Endansmo Processadores podem numerar os bytes dentro de uma palavra fazendo o byte com menor número ser ou o byte mas à esquerda ou o byte mas à dreta. A convenção usada por uma máquna é a ordem escolhda. Processadores que usam a arqutetura MIPS podem operar com qualquer das ordens. A ordem escolhda é denomnada o endansmo do processador (ou da organzação deste processador) e pode ser bg-endan ou

5 - 5 - lttle-endan. Processadores bg-endan assumem os 8 bts mas à esquerda de uma palavra (para números a parte mas sgnfcatva deste) como sendo o byte 0, os 8 bts medatamente à dreta deste como o byte 1, etc. Processadores lttle-endan assumem os 8 bts mas à dreta de uma palavra (para números a parte menos sgnfcatva deste) como sendo o byte 0, os 8 bts medatamente à esquerda deste como o byte 1, etc. O smulador a ser usado (MARS) opera com ambas as ordens. A ordem específca do MARS é determnada pela ordem dos bytes da máquna que executa o smulador. Assm, ao rodar o smulador em um PC, MARS é lttleendan, enquanto que ao rodar MARS em uma estação de trabalho Sun (baseada no processador SPARC), MARS é bg-endan. 3 CONJUNTO DE INSTRUÇÕES segur. A Tabela 1 descreve resumdamente cada nstrução da arqutetura MIPS_S, usando as convenções a Convenções Utlzadas na Tabela 1: Rd (destnaton regster) é o regstrador usado na maora das nstruções de três operandos como destno dos dados processados, especfcado por um códgo bnáro de 5 bts. Ver Seção 4; Rs (source regster) e Rt (target regster) são regstradores usados em mutas nstruções como orgem dos operandos para obter os dados. São especfcados por códgos bnáros de 5 bts. Ver Seção 4; Regstradores específcos da máquna são ndcados por $xx, onde xx é o número decmal do regstrador. Ver Seção 4; Os regstradores HI e LO são regstradores especas (que se encontram fora do banco de regstradores de uso geral) usados para armazenar os resultados das operações de multplcação e dvsão (MULTU e DIVU, respectvamente); O snal é usado para desgnar atrbução (escrta) de valores resultantes da avalação da expressão à dreta do snal ao regstrador ou posção de memóra dentfcada à esquerda do snal; Os dentfcadores med16 e med26 representam operandos medatos de 16 e 26 bts, respectvamente; O dentfcador shamt (do nglês, shft amount) representa a quantdade de bts a deslocar nas nstruções SLL, SLLV, SRA, SRAV, SRL e SRLV. O operador mod representa o resto da dvsão ntera do elemento à esquerda do mod pelo elemento à dreta deste; O operador & representa a concatenação de vetores de bts; A expressão PMEMD(X) representa o conteúdo de uma posção de memóra de dados cujo endereço é X (na letura) ou a própra posção da memóra de dados (na escrta). A quantdade de bts relevantes depende da nstrução específca executada. Por exemplo, em LW são 32 bts, em LBU são 8 bts; Está mplícto em todas as nstruções o ncremento do regstrador PC após a busca da nstrução. Na organzação, sto se reflete no uso de um regstrador temporáro denomnado NPC, que contém o valor do PC ncrementado após a busca de uma nstrução. Qualquer outra referênca à manpulação do PC é parte da semântca da nstrução partcular; Extensão de snal é a operação que transforma um dado vetor de bts em outro maor, mas cujo valor em complemento de 2 é equvalente ao valor representado pelo vetor menor. Consste em copar o bt de snal do vetor, ou seja, o seu bt mas sgnfcatvo, localzado na extrema esquerda deste, tantas vezes quanto seja necessáro, para gerar o vetor maor. Por exemplo, na nstrução ADDIU, se med16 for (-1 em complemento de 2, representado em 16 bts), a extensão de snal transforma este vetor em (-1 em complemento de 2, representado em 32 bts). A operação é trvalmente correta também para números postvos, onde o bt de snal estenddo é 0. Quando se mencona extensão de snal, os valores medatos representam números em complemento de 2. Caso contráro, os números são representações bnáras puras, como ocorre na nstrução J 3 ; Os operandos medatos das nstruções de salto têm um tratamento dferente dos operandos das nstruções que não se referem a saltos. Como o endereçamento de ambas as memóras (nstruções e dados) é feto à byte (ou seja, cada byte de memóra possu um endereço dstnto), uma nstrução ocupa quatro endereços de memóra. A CPU manpula operandos de salto multplcando eles por 4 antes de operar (o que é operaconalzado deslocando o operando dos bts à esquerda, nserndo dos 0s). Isto vale apenas para as nstruções BEQ, BGEZ, BLEZ, BNE, J e JAL. 3 CUIDADO!!: Exste um outro smulador bem conhecdo, o SPIM, onde a extensão de snal é feta sobre os 14 bts, e não sobre 16 bts (pode ser um bug do smulador ou uma defnção da arqutetura, e sto afeta a mplementação do processador aqu especfcado).

6 - 6 - Tabela 1 Mnemôncos, codfcação e semântca resumda das nstruções do processador MIPS_S. As constantes numércas dos códgos de nstrução são valores hexadecmas. Instrução FORMATO DA INSTRUÇÃO AÇÃO ADDU Rd, Rs, Rt 00 Rs Rt Rd Rd Rs + Rt SUBU Rd, Rs, Rt 00 Rs Rt Rd Rd Rs Rt AND Rd, Rs, Rt 00 Rs Rt Rd Rd Rs and Rt OR Rd, Rs, Rt 00 Rs Rt Rd Rd Rs or Rt XOR Rd, Rs, Rt 00 Rs Rt Rd Rd Rs xor Rt NOR Rd, Rs, Rt 00 Rs Rt Rd Rd Rs nor Rt SLL Rd, Rt, shamt Rt Rd shamt 00 Rd Rt deslocado shamt bts à esquerda (0s à dreta) SLLV Rd, Rt, Rs 00 Rs Rt Rd Rd Rt deslocado (Rs mod 32) bts à esquerda (0s à dreta) SRA Rd, Rt, shamt Rt Rd shamt 03 Rd Rt deslocado shamt bts à dreta (mantendo snal) SRAV Rd, Rt, Rs 00 Rs Rt Rd Rd Rt deslocado (Rs mod 32) bts à dreta (mantendo snal) SRL Rd, Rt, shamt Rt Rd shamt 02 Rd Rt deslocado shamt bts à dreta (0s à esquerda) SRLV Rd, Rt, Rs 00 Rs Rt Rd Rd Rt deslocado (Rs mod 32) bts à dreta (0s à esquerda) ADDIU Rt, Rs, Imed16 09 Rs Rt Imed16 Rt Rs + (Imed16 com snal estenddo) ANDI Rt, Rs, Imed16 0C Rs Rt Imed16 Rt Rs and (0x0000 & (Imed16)) ORI Rt, Rs, Imed16 0D Rs Rt Imed16 Rt Rs or (0x0000 & (Imed16)) XORI Rt, Rs, Imed16 0E Rs Rt Imed16 Rt Rs xor (0x0000 & (Imed16)) LUI Rt, Imed16 0F 0 Rt Imed16 Rt (Imed16 & 0x0000) LBU Rt, Imed16(Rs) 24 Rs Rt Imed16 Rt 0x & PMEMD(Imed16 com snal estenddo+rs) LW Rt, Imed16(Rs) 23 Rs Rt Imed16 Rt PMEMD(Imed16 com snal estenddo+rs) (4 bytes) SB Rt, Imed16(Rs) 28 Rs Rt Imed16 PMEMD(Imed16 com snal estenddo+rs) Rt [7:0] (1 byte) SW Rt, Imed16(Rs) 2B Rs Rt Imed16 PMEMD(Imed16 com snal estenddo+rs) Rt (4 bytes) SLT Rd, Rs, Rt 00 Rs Rt Rd 00 2A Rd 1 se Rs menor que Rt (c/snal), senão Rd 0 SLTU Rd, Rs, Rt 00 Rs Rt Rd 00 2B Rd 1 se Rs menor que Rt (s/snal), senão Rd 0 SLTI Rt, Rs, Imed16 0A Rs Rt Imed16 Rt 1 se Rs menor que Imed16 (c/snal), senão Rt 0 SLTIU Rt, Rs, Imed16 0B Rs Rt Imed16 Rt 1 se Rs menor que Imed16 (s/snal), senão Rt 0 BEQ Rs, Rt, rótulo 04 Rs Rt Imed16 PC NPC + (Imed16 & 00 com snal estenddo), se Rs=Rt BGEZ Rs, rótulo 01 Rs 01 Imed16 PC NPC + (Imed16 & 00 com snal estenddo), se Rs=>0 BLEZ Rs, rótulo 06 Rs 00 Imed16 PC NPC + (Imed16 & 00 com snal estenddo), se Rs<=0 BNE Rs, Rt, rótulo 05 Rs Rt Imed16 PC NPC + (Imed16 & 00 com snal estenddo), se Rs Rt J rótulo 02 Imed26 PC NPC[31:28] & Imed26 & 00 JAL rótulo 03 Imed26 $31 NPC; PC NPC[31:28] & Imed26 & 00 JALR Rd, Rs 00 Rs 00 Rd Rd NPC; PC Rs JR Rs 00 Rs PC Rs

7 - 7 - MULTU Rs, Rt 00 Rs Rt HI & LO Rs * Rt DIVU Rs, Rt 00 Rs Rt 000 1B LO Rs / Rt; HI Rs mod Rt MFHI Rd Rd Rd HI MFLO Rd Rd Rd LO

8 Classes Funconas de Instruções A partr da Tabela 1, propõe-se a segunte dvsão das nstruções em classes funconas: As nstruções artmétcas são ADDU, SUBU, ADDIU, MULTU, DIVU, SRA, SRAV; As nstruções lógcas são AND, OR, XOR, NOR, ANDI, ORI, XORI, SLL, SLLV, SRL e SRLV; As nstruções de movmentação de dados são LUI, LBU, LW, SB, SW, MFHI, e MFLO; As nstruções de controle de fluxo de execução são BEQ, BGEZ, BLEZ, BNE, J, JAL, JALR, e JR; Exstem também nstruções mscelâneas, SLT, SLTI, SLTU, e SLTIU. 3.2 Observações sobre a Semântca de Instruções no Processador MIPS_S Algumas observações geras e partculares sobre o conjunto de nstruções são apresentadas a segur. A arqutetura MIPS fo elaborada para prvlegar a smplcdade do conjunto de nstruções sem, contudo, sacrfcar sua flexbldade. Devdo à lmtação de todas as nstruções possuírem exatamente o mesmo tamanho, nstruções em geral dsponíves em outros processadores estão ausentes no MIPS. Contudo, fo tomado cudado no projeto desta arqutetura para que tal funconaldade possa ser suprda de forma smples va o conceto de pseudo-nstruções. Pseudo-nstruções são nstruções nexstentes em uma arqutetura, mas dsponblzadas ao programador em lnguagem de montagem. Sua mplementação medante uso de uma sequênca de nstruções exstentes é feta no códgo objeto pelo programa montador. Por exemplo, uma nstrução capaz de carregar uma constante medata de 32 bts em um regstrador obvamente não exste, mas pode ser mplementada por uma sequênca de duas nstruções, LUI e ORI. É possível a programas montadores para o processador MIPS_S dsponblzar uma pseudonstrução LI com um operando medato de 32 bts, gerando como códgo para esta uma sequênca LUI + ORI. Por exemplo, exste no montador/smulador MARS uma pseudo-nstrução (LA, do nglês load address) que usa LUI + ORI para mplementar uma função bastante útl, carregar um regstrador com o endereço de um rótulo (em nglês, label) do programa, seja este da regão de dados ou da regão de programas. As nstruções SLT, SLTU, SLTI e SLTIU servem para suprr a ausênca de bestáves qualfcadores de estado na arqutetura MIPS_S. Elas escrevem no regstrador destno da nstrução ou a constante 0 ou a constante 1, para ndcar o resultado de uma comparação de magntude. Após executar uma destas nstruções, pode-se testar o valor escrto neste regstrador de destno contra a constante 0 (por exemplo, usando as nstruções BEQ, BGEZ, BNE ou BLEZ, tendo como um dos operandos a constante 0, dsponível no regstrador $0 ou $zero). Tas sequêncas de nstrução permtem mplementar todas as comparações de gualdade ou magntude ( menor, maor, menor ou gual e maor ou gual ). Exercíco: Proponha uma sequênca de nstruções do processador MIPS_S para mplementar as seguntes pseudo-nstruções: BGT, BGE, BLT e BLE (respectvamente, salta se maor, se maor ou gual, se menor e se menor ou gual relatvo). Note-se anda que as varações das nstruções SLTxx permtem executar comparações de números naturas (as com sufxo U, do nglês unsgned) e de números nteros representados em complemento de 2 (as sem sufxo U). 4 REGISTRADORES DO PROCESSADOR MIPS_S - BD A partr desta Seção da especfcação, apresenta-se uma possível organzação para o processador MIPS_S. Algumas das característcas menconadas aqu são partes da arqutetura. Isto será explctado no texto a segur, quando for o caso. A organzação aqu proposta contém, pelo menos, o segunte conjunto de regstradores: Um banco de regstradores contendo 32 regstradores de uso geral, cada um de 32 bts, denomnados $0 a $31. Esta é uma característca defnda pela arqutetura. Exste uma denomnação textual alternatva para cada um dos regstradores. Ela está apresentada na Tabela 2 abaxo, retrada do Apêndce A do lvro Organzação e Projeto de Computadores de D. A. Patterson e J. L. Hennessy. Este Apêndce é de domíno públco e pode ser faclmente encontrado na Internet. O banco de regstradores proposto aqu tem uma porta de escrta e duas de letura. Isto sgnfca que é possível escrever em apenas um regstrador por vez, porém é possível fazer, em paralelo com a escrta menconada, duas leturas smultâneas, colocando o conteúdo de um regstrador no barramento de saída R1 e o conteúdo de outro regstrador (ou o mesmo) no barramento de saída R2;

9 - 9 - Regstradores RS, RT e IMED: São regstradores que rão conter os operandos da maora das nstruções executadas; RALU: um regstrador de 32 bts usado para armazenar o resultado produzdo pela ALU; HI e LO: são dos regstradores de 32 bts usados para armazenar o resultado da execução das nstruções MULTU e DIVU. Para manpular estes resultados, exstem as nstruções MFHI e MFLO, que movem valores de HI e LO para um regstrador de uso geral. A necessdade destes regstradores se explca pelo fato de uma multplcação de dos números de 32 bts gerar um valor de 64 bts, bem como pelo fato de uma dvsão (ntera) gerar dos resultados de 32 bts, o quocente e o resto. No caso da nstrução DIVU, o quocente é colocado em LO e o resto é colocado em HI; MDR (memory data regster): é regstrador que recebe dados provenentes da memóra ou de outro local que produza um valor que necesste ser escrto no banco de regstradores no últmo cclo de uma nstrução. Possu 32 bts; Tabela 2 Denomnações dos regstradores da arqutetura MIPS_S. Aconselha-se que os regstradores a serem usados como regstradores de trabalho em programas sejam os regstradores 2 a 25 ($v0 a $t9). Os demas são reservados para operações de controle do montador, sstema operaconal, smulação de plhas, etc. O montador MARS aceta a denomnação da prmera coluna da tabela, ou da segunda coluna, precedda do caracter $. Nome Número Nome Sgnfcado ou Convenção de Utlzação (hexa/bnáro) Alternatvo $0 00 / $zero constante 0 $1 01 / $at reservado para o programa montador $2 02 / $v0 resultado de função $3 03 / $v1 resultado de função $4 04 / $a0 argumento para função $5 05 / $a1 argumento para função $6 06 / $a2 argumento para função $7 07 / $a3 argumento para função $8 08 / $t0 temporáro $9 09 / $t1 temporáro $10 0A / $t2 temporáro $11 0B / $t3 temporáro $12 0C / $t4 temporáro $13 0D / $t5 temporáro $14 0E / $t6 temporáro $15 0F / $t7 temporáro $16 10 / $s0 temporáro (salvo nas chamadas de função/subrotna) $17 11 / $s1 temporáro (salvo nas chamadas de função/subrotna) $18 12 / $s2 temporáro (salvo nas chamadas de função/subrotna) $19 13 / $s3 temporáro (salvo nas chamadas de função/subrotna) $20 14 / $s4 temporáro (salvo nas chamadas de função/subrotna) $21 15 / $s5 temporáro (salvo nas chamadas de função/subrotna) $22 16 / $s6 temporáro (salvo nas chamadas de função/subrotna) $23 17 / $s7 temporáro (salvo nas chamadas de função/subrotna) $24 18 / $t8 temporáro $25 19 / $t9 temporáro $26 1A / $k0 reservado para o SO $27 1B / $k1 reservado para o SO $28 1C / $gp apontador de área global $29 1D / $sp stack ponter $30 1E / $fp frame ponter $31 1F / $ra armazena endereço de retorno de subrotnas Normalmente, sempre há a necessdade de exstrem regstradores adconas, dependendo da organzação mplementada. Na organzação proposta aqu, o valor do regstrador PC é atualzado após a busca, mas o novo valor não é medatamente escrto em PC, mas em um regstrador auxlar NPC, sgla dervada da termnologa new program counter, em nglês. Apenas no últmo cclo de relógo de uma nstrução o valor de NPC (ou outro, dependendo da nstrução) é escrto no PC. Os valores ldos do banco de regstradores são armazenados nos regstradores Rs e Rt, e o valor obtdo pela execução de uma dada operação lógco-artmétca é armazenado no regstrador RALU. Apresentam-se detalhes nas Seções a segur. 5 ORGANIZAÇÃO DO BD DO PROCESSADOR MIPS_S Com a organzação proposta nesta Seção para o processador MIPS_S, a execução de qualquer nstrução requer 3 a 5 cclos de relógo, com a exceção das nstruções MULTU e DIVU. Cada um dos 3/4/5 cclos executa um conjunto lmtado de partes de uma nstrução e são assm denomnados: Cclo 1: busca da nstrução. Comum a todas as nstruções.

10 comparador Memóra de Instruções RALU=d_address ALU Memóra de Dados ads MDR_nt D_H D_Lo Cclo 2: decodfcação e letura de regstradores. Comum a todas as nstruções. Cclo 3: operação com a ALU. Comum a quase todas as nstruções. Cclo 4: acesso à memóra. Realzado conforme a nstrução. Cclo 5: atualzação do banco de regstradores (wrte-back). Comum a quase todas as nstruções. Em todas as nstruções que não fazem acesso à memóra, o Cclo 4 não exste e o cclo 5 passa a ser o Cclo 4. Esta Seção dscute uma proposta de organzação para o BD do processador MIPS_S. A Fgura 3 mostra o dagrama de blocos completo do processador MIPS_S, nclundo o BD e o BC. O BD necessta de um conjunto de snas de controle, organzados em 5 classes: habltação de escrta em regstradores (7, alguns atvando dos ou mas regstradores): wpc, CY1, wreg, CY2, walu, whlo, wmdr. controle de letura/escrta na memóra externa (3): ce, rw e bw. as operações que a undade lógca-artmétca, executa (1). Estas são computadas a partr da nstrução ora Rs sendo executada, o que é nformado através do resultado da decodfcação (snal ). a seleção da operação do comparador (1), também computada a partr da nstrução ora em execução (snal ). os controles dos multplexadores, resultantes da decodfcação da nstrução (11). Estes snas são gerados dretamente da nstrução sendo executada (snal ) e eventualmente de outros snas de controle como a saída do comparador. Máquna de Estados wreg wpc CY1 CY2 rw whlo walu ce rst_md wmdr bw pc=_address dtpc I/ salta_n PC wpc pc=_address Decodfcação npc=npc_out=npc nc_pc +4 NPC CY1 CY1 IR IR[15:11] IR[25:21] IR_IN=IR=IR_OUT IR nstructon NPC IR[20:16] IR[20:16] IR[15:0] IR[25:0] IR[15:0] end_dv NPC IR[20:16] AdWP DataWP AdRP1 R1 DataRP1 Banco de Regstradores EXT SINAL << & IR[25:0] & 00 EXT ZERO end_mul add RESULT RIN DataRP2 AdRP2 R2 wreg npc Rs CY2 Rt cte_m IMED CY2 Rs Rt Rs Rt DIV rst_md rst_md MULT IMED op1 op2 Rs Rt quocente resto produto(63 downto 32) produto(31 downto 0) whlo Lo H whlo outalu RALU walu salta_n= salta= salta_out Lo H MDR ce rw bw Fgura 3 Dagrama de blocos completo do processador MIPS_S, com as memóras externas (de nstruções e de dados) mostradas para fns de clareza. Estão representados todos os 23 snas que o bloco de controle deve gerar (a maora em verde). Os snas clock e reset não estão representados, porém são utlzados em todos os regstradores, bem como no banco de regstradores e na Máquna de Estados do Bloco de Controle. O BD gera três snas qualfcadores que são envados para o BC, para que este tome algumas decsões (snas end_mul, end_dv e salta) Os snas de controle dos multplexadores não são gerados no BC. Eles são dervados dretamente da nstrução corrente. Para uma dea geral mas completa da mplementação do BD do processador MIPS_S, restam apresentar as organzações nternas do banco de regstradores, da undade lógca e artmétca, das operações de multplcação e dvsão e o Bloco de Controle (BC) do MIPS_S. As três Seções a segur dscutem as organzações dos três prmeros blocos ctados, enquanto a Seção 7 dscute o BC. Rt x & data[7:0] data Rt rw ce MDR wmdr

11 5.1 Banco de Regstradores A Fgura 4 lustra a organzação do banco de regstradores, sob forma de um dagrama de blocos. A ALU será dscutda em parte na Seção 5.2. A organzação do banco de regstradores nclu os 32 regstradores em s e a mplementação das duas portas de letura e da porta de escrta, bem como da decodfcação do endereço de escrta para geração da habltação de escrta do regstrador em causa. As portas de letura consstem de multplexadores (32X32):(1X32), controladas pelos endereços de letura. DataWP regstradores de 32 bts REG0 REG1 REG2 REG3 REG4 ck 32 REG28 REG29 REG30 REG31 rst 32 DataRP1 AdRP1 Decodfcador 5 32 enable 32 DataRP2 ce 5 AdWP AdRP2 Fgura 4 - Dagrama em blocos do banco de regstradores de uso geral. 5.2 Resumo das Operações Executadas pela ALU A Tabela 3 lustra a operação do hardware da ALU. Esta últma é um hardware combnaconal que possu duas entradas de dados e uma saída de dados. Além dsto, a ALU possu uma entrada de controle para nformar a operação a ser realzada em cada nstante, dervada da nstrução em execução no momento. Tabela 3 Operações da ALU no processador MIPS_S, para cada nstrução. Instruções ADDU, ADDIU, LBU, LW, SB, SW, BEQ, BGEZ, BLEZ, BNE SUBU AND, ANDI OR, ORI XOR, XORI NOR SLL SLLV SRA SRAV SRL SRLV LUI SLT, SLTI SLTU, SLTIU Operação da ALU OP2 + OP1 OP2 OP1 OP2 and OP1 OP2 or OP1 OP2 xor OP1 OP2 nor OP1 OP1 << OP2[10:6] c/ 0s entrando à dreta OP2 << OP1[4:0] c/ 0s entrando à dreta OP1 >> OP2[10:6] c/ bt 31 entrando à esquerda OP2 >> OP1[4:0] c/ bt 31 entrando à esquerda OP1 >> OP2[10:6] c/ 0s entrando à esquerda OP2 >> OP1[4:0] c/ 0s entrando à esquerda OP2[15:0] & 0x se OP1<OP2 (com snal), senão 0 1 se OP1<OP2 (sem snal), senão 0 J, JAL OP1[31:28] & OP2[27:0] JR, JALR MULTU, DIVU, MFHI, MFLO OP1 Nenhuma operação

12 A operação da ALU é relevante para quase todas as nstruções, embora algumas destas apenas a utlzem para transportar um valor da entrada para a saída e outras (como MULTU e DIVU) sequer utlzam a ALU. O resultado da operação na ALU é armazenado no regstrador RALU. A Tabela 3 defne quas devem ser as operações da ALU, para cada nstrução. 5.3 Organzação para as nstruções MULTU e DIVU As nstruções MULTU e DIVU, que realzam a multplcação e a dvsão de números nteros sem snal, devdo a sua ntrínseca maor complexdade, são mplementadas fora da ALU. Na presente proposta de mplementação as nstruções DIVU e MULTU são ser mplementadas de manera estrutural, usando texto VHDL sntetzável. Para tanto, pode-se usar um algortmo de mplementação de um multplcador em hardware, tal como descrto nas transparêncas 10 a 17 da apresentação dsponível no lnk mostrado abaxo. O algortmo de multplcação pode ser aquele descrto nas transparêncas acma. O algortmo de dvsão deve ser o algortmo sem restauração. Estes e outros algortmos fáces de mplementar sob a forma de um pequeno bloco de dados e uma máquna de estados de controle estão descrtos em algum detalhe no do lvro Organzação e Projeto de Computadores de D. A. Patterson e J. L. Hennessy, na Seção 4.6 da segunda edção deste lvro. 6 CICLOS PARA EXECUTAR INSTRUÇÕES DA ORGANIZAÇÃO MIPS_S Dada a descrção da organzação do bloco de dados da MIPS_S apresentada na Seção anteror, é possível sumarzar o tempo de execução de todas as nstruções em termos de cclos de relógo, o que é então mostrado na Tabela 4 abaxo. Tabela 4 Número de cclos gastos para buscar e executar nstruções na organzação do processador MIPS_S. INSTRUÇÃO NUMERO DE CICLOS INSTRUÇÃO NUMERO DE CICLOS ADDU 4 SB 4 SUBU 4 SW 4 AND 4 SLT 4 OR 4 SLTU 4 XOR 4 SLTI 4 NOR 4 SLTIU 4 SLL 4 BEQ 4 SLLV 4 BGEZ 4 SRA 4 BLEZ 4 SRAV 4 BNE 4 SRL 4 J 4 SRLV 4 JAL 4 ADDIU 4 JALR 4 ANDI 4 JR 4 ORI 4 MULTU 67 4 XORI 4 DIVU 67 5 LUI 4 MFHI 4 LBU 5 MFLO 4 LW O Bloco de Controle (BC) do processador MIPS_S Para comandar a execução de nstruções neste processador, o BC do processador MIPS_S possu um conjunto de quatro estruturas de hardware. São estas: Um regstrador que guarda o códgo da nstrução atualmente em execução (IR); Estruturas para controlar a posção de memóra onde resde a nstrução atual e a próxma a ser executada, compostas por dos regstradores (PC e NPC) e um ncrementador; 4 Valor típco, depende do algortmo escolhdo. 5 Valor típco, depende do algortmo escolhdo.

13 A decodfcação de nstruções, uma tabela que para cada códgo de 32 bts contdo no IR dentfca a nstrução que este representa, ou o fato de o códgo não se referr a nenhuma nstrução válda (valor nvald_nstructon); Uma máquna de estados de controle, que gera uma sequênca de snas usados em cada cclo de execução de uma nstrução; A Fgura 5 lustra a máquna de estados de controle, onde o próxmo estado é função apenas do estado atual e da nstrução armazenada no regstrador IR. Também se ndca nesta Fgura quas regstradores são alterados em cada estado. Não se mostra as atvações dos snas de controle dos multplexadores, ou as operações da ALU. IR (nstructon regster): armazena o códgo de operação (opcode) da nstrução atual e o(s) códgo(s) do(s) operando(s) desta. Possu 32 bts. PC (program counter): é o contador de programa. Possu 32 bts. Também se ndca nesta Fgura quas regstradores são alterados, através da ndcação de qual snal de controle de habltação de escrta é atvado em cada estado. Não se mostram as atvações dos snas de controle dos multplexadores, ou as operações da ALU. A função dos 7 estados mostrados na Fgura pode ser assm descrta: Sfetch: prmero cclo, busca de nstrução; SReg: segundo cclo, letura dos regstradores fonte; SAlu: tercero cclo, operação com a ALU e eventual uso do comparador do hardware de multplcação ou do hardware de dvsão; Wbk: quarto cclo para a maora das nstruções, onde se escreve o resultado no banco de regstradores e atualza-se o contador de programa (qunto cclo para as nstruções LW e LBU); Sld: quarto cclo das nstruções LW e LBU, onde se lê um dado da memóra de dados externa; Sst: últmo cclo das nstruções SW e SB, onde se escreve um dado na memóra de dados externa; Ssalta: últmo cclo das nstruções de salto condconal ou ncondconal, apenas atualza valor do PC. Reset= 1 (todos os regstradores são zerados) Sfetch CY1 Reset= 1 Sreg CY2 rst_md, se IR=MULTU/DIVU IR=(MULTU e end_mul= 0 ) ou (DIVU e end_dv= 0 ) IR=(MULTU e end_mul= 1 ) ou (DIVU e end_dv= 1 ) wpc, whlo walu Salu Caso geral IR=LBU/ LW IR=SB/ SW IR =J/JAL/JALR/JR /BEQ/ BGEZ/BLEZ/BNE Swbk wreg wpc Sld ce wmdr Sst rw0, ce, wpc bw0, se IR=SB Ssalta wpc wreg, se IR=JAL/JALR Fgura 5 - Máquna de estados de controle para a organzação MIPS_S.

14 PROGRAMA PARA TESTAR TODAS AS INSTRUÇÕES DA MIPS_S Recomenda-se escrever os programas em lnguagem de montagem (assembly), gerando-se o códgo objeto automatcamente, a partr do montador/smulador MARS. A ferramenta de smulação, assm como documentação de como utlzar a ferramenta encontra-se na homepage da dscplna, podendo também serem encontradas faclmente na Internet. A Fgura 6 abaxo apresenta um programa escrto em lnguagem de montagem para o processador MIPS_S, contendo pelo menos uma nstânca de cada uma das nstruções do processador. Recomenda-se o uso do smulador MARS para executar este programa e verfcar sua funconaldade, descrta lnha a lnha do programa, através do campo de comentáros.

15 ##################################################################### ## ARQUITETURA MIPS_S - teste de todas as nstruções ## Autor: Ney Calazans (calazans@nf.pucrs.br) ## Teste é exaustvo quanto ao total de nstruções, não quanto a ## cobertura de caso de testes possíves ## Últma alteração: 08/12/2009 #####################################################################.text # Declaração de níco do segmento de texto.globl man # Declaração de que o rótulo man é global ######################################## # testes de nstruções ndvduas ######################################## man: lu $t0,0xf3 # or $t0,$t0,0x23 # $t0<= 0x00f30023 lu $t1,0x52 # or $t1,$t1,0xe2 # $t1<= 0x005200e2 lu $t2,0x00 # or $t2,$t2,0x8f # $t2<= 0x f beq $t1,$t2,loop # Obvamente, esta nstrução nunca deve saltar bne $t1,$t2,next_ # Obvamente, esta nstrução sempre deve saltar addu $t2,$t2,0x8f # Obvamente, esta nstrução nunca deve executar next_: addu $t3,$t0,$t1 # $t3<= 0x00f x005200e2 = 0x subu $t4,$t0,$t1 # $t4<= 0x00f x005200e2 = 0x00a0ff41 subu $t5,$t1,$t1 # $t5<= 0x0 and $t6,$t0,$t1 # $t6<= 0x00f30023 and 0x005200e2 = 0x or $t7,$t0,$t1 # $t7<= 0x00f30023 or 0x005200e2 = 0x00f300e3 xor $t8,$t0,$t1 # $t8<= 0x00f30023 xor 0x005200e2 = 0x00a100c1 nor $t9,$t0,$t1 # $t9<= 0x00f30023 nor 0x005200e2 = 0xff0cff1c multu $t0,$t1 # H & Lo <= 0x00f30023 * 0x005200e2 = 0x00004dd6e1bc1ee6 mfh $s0 # $s0<= 0x00004dd6 mflo $s1 # $s1<= 0xe1bc1ee6 dvu $t0,$t1 # H,Lo<= 0x00f30023 mod,/ 0x005200e2 = 0x4efe5f,0x addu $t0,$t0,0x00ab # $t0<= 0x00f x000000ab = 0x00f300ce and $t0,$t0,0x00ab # $t0<= 0x00f300ce and 0x000000ab = 0x a xor $t0,$t0,0xffab # $t0<= 0x a xor 0x0000ffab = 0x0000ff21 sll $t0,$t0,4 # $t0<= 0x000ff210 (deslocado 4 bts para a esquerda) srl $t0,$t0,9 # $t0<= 0x000007f9 (deslocado 9 bts para a dreta) addu $s2,$zero,8 # $s2<= 0x sllv $t0,$t9,$s2 # $t0<= 0x0007f900 sllv $t0,$t0,$s2 # $t0<= 0x07f90000 sllv $t0,$t0,$s2 # $t0<= 0xf sra $t0,$t0,4 # $t0<= 0xff srav $t0,$t0,$s2 # $t0<= 0xffff9000 srlv $t0,$t0,$s2 # $t0<= 0x00ffff90 la $t0,array # coloca em $t0 o endereço ncal do vetor array (0x ) lbu $t1,6($t0) # $t1<= 0x000000ef (prmero byte é tercero byte do segundo elemento) xor $t1,$t1,0xff # $t1<= 0x , nverte byte nferor sb $t1,6($t0) # segundo byte do segundo elemento do vetor <= 10 (resto não muda) # CUIDADO, mudou elemento do array a ser processado por soma_ct addu $t0,$zero,0x1 # $t0<= 0x subu $t0,$zero,$t0 # $t0<= 0xffffffff bgez $t0,loop # Esta nstrução nunca deve saltar, pos $t0 = -1 slt $t3,$t0,$t1 # $t3<= 0x , pos -1 < 10 sltu $t3,$t0,$t1 # $t3<= 0x , pos (2^32)-1 > 10 slt $t3,$t0,0x1 # $t3<= 0x , pos -1 < 1 sltu $t3,$t0,0x1 # $t3<= 0x , pos (2^32)-1 > 1 ######################################## # soma uma constante a um vetor ######################################## soma_ct:la $t0,array # coloca em $t0 o endereço do vetor (0x ) la $t1,sze # coloca em $t1 o endereço do tamanho do vetor lw $t1,0($t1) # coloca em $t1 o tamanho do vetor la $t2,const # coloca em $t2 o endereço da constante lw $t2,0($t2) # coloca em $t2 a constante loop: blez $t1,end_add # se/quando tamanho é/torna-se 0, fm do processamento lw $t3,0($t0) # coloca em $t3 o próxmo elemento do vetor addu $t3,$t3,$t2 # soma constante sw $t3,0($t0) # atualza no vetor o valor do elemento addu $t0,$t0,4 # atualza pontero do vetor. Lembrar, 1 palavra=4 posções de memóra addu $t1,$t1,-1 # decrementa contador de tamanho do vetor j loop # contnua execução ######################################## # teste de subrotnas annhadas ######################################## end_add:addu $sp,$sp,-4 # assume-se $sp ncalzado, aloca espaço na plha. Usamos 0x sw $ra,0($sp) # salva endereço de retorno de quem chamou (trap handler) jal sum_tst # salta para subrotna sum_tst lw $ra,0($sp) # ao retornar, recupera endereço de retorno da plha addu $sp,$sp,4 # atualza apontador de plha end: jr $ra # volta para o "sstema operaconal" FIM DO PROGRAMA AQUI # Iníco da prmera subrotna: sum_tst sum_tst:la $t0,var_a # pega endereço da prmera varável (pseudo-nstrução) lw $t0,0($t0) # toma o valor de var_a e coloca em $t0 la $t1,var_b # pega endereço da segunda varável (pseudo-nstrução) lw $t1,0($t1) # toma o valor de var_b e coloca em $t1 addu $t2,$t1,$t0 # soma var_a com var_b e coloca resultado em $t2 addu $sp,$sp,-8 # aloca espaço na plha sw $t2,0($sp) # no topo da plha coloca o resultado da soma sw $ra,4($sp) # abaxo do topo coloca o endereço de retorno la $t3,ver_ev # pega endereço da subrotna ver_ev (pseudo-nstrução) jalr $ra,$t3 # chama subrotna que verfca se resultado da soma é par lw $ra,4($sp) # ao retornar, recupera endereço de retorno da plha addu $sp,$sp,8 # atualza apontador de plha jr $ra # PROGRAMA ACABA AQUI. Retorna para quem chamou # Iníco da segunda subrotna: ver_ev. Trata-se de subrotna folha, que não usa plha ver_ev: lw $t3,0($sp) # tra dados to topo da plha (parâmetro) and $t3,$t3,1 # $t3 <= 1 se parâmetro é ímpar, 0 caso contráro jr $ra # e retorna ########################################.data # área de dados ######################################## # para trecho que soma constante a vetor array:.word 0xabcdef03 0xcdefab18 0xefabcd35 0xbadcfeab 0xdcfebacd 0xfebadc77 0xdefabc53 0xcbafed45 # tercero byte da segunda palavra (0xef) vra 0x10 antes de exec soma_ct sze:.word 0x8 const:.word 0xffffffff # constante -1 em complemento de 2 # para trecho de teste de chamadas de subrotnas var_a:.word 0xff # var_b:.word 0x100 # Fgura 6 - Programa exemplo para teste da organzação MIPS_S.

16 O smulador MARS pode gerar arquvos de saída contendo o códgo objeto das áreas de dados e de nstruções de qualquer programa, entre outras nformações. Tas arquvos podem ser salvos usando a opção de menu Fle Dump Memory do smulador. Ele será útl para gerar a entrada do processo de smulação da mplementação de hardware a ser realzada neste trabalho. A Fgura 7 mostra a nterface gráfca do smulador, composta de 5 subjanelas (4 subjanelas estão ocultas, aquela da aba Fle, que mostra o edtor de textos do ambente Mars, duas outras para uso de coprocessadores e uma para operações de entrada e saída): a subjanela Text Segment mostra as nstruções do programa ora em smulação, em três formatos: códgo-objeto, códgo ntermedáro e códgo fonte; a subjanela Data Segment mostra os dados do programa ora em smulação; a subjanela Labels mostra dados sobre os rótulos do programa, tanto da área de nstruções como da área de dados; a subjanela Regsters mostra os conteúdos dos regstradores da arqutetura; a subjanela Mars Messages mostra mensagens que o montador/smulador gera para o usuáro durante a carga, montagem e execução de programas. A ferramenta de montagem tem como entrada o nome do programa descrto em lnguagem de montagem (tpcamente com nome <fle>.asm). É possível gerar um arquvo de saída com o conteúdo de todas as janelas, nclundo o códgo objeto gerado. Este mas tarde poderá, após algum tratamento manual, ser usado como entrada para a smulação VHDL do processador. O códgo objeto pode ser gerado após a letura e montagem de um arquvo contendo um programa em lnguagem de montagem correto. Para tanto, basta salvar como em arquvos texto as áreas de nstruções e dados como vsto em aula. Fgura 7 - Interface gráfca do montador/smulador MARS.

Prova P4/PS Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans MULTICICLO syscall space syscall addiu 1. .data 2.

Prova P4/PS Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans MULTICICLO syscall space syscall addiu 1. .data 2. Prova P4/PS Dscplna: Organzação de Computadores-EC Professor: Ney Laert Vlar Calazans Aluno: 30/novembro/2017 1. (3,5 pontos). Assumndo uma frequênca de relógo de 200 MHz para a organzação MIPS MULTICICLO

Leia mais

Prova P4/PS Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans 0x

Prova P4/PS Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans 0x Prova P4/PS Dscplna: Organzação de Computadores-EC Professor: Ney Laert Vlar Calazans Aluno: 30/novembro/2018 1. [3 pontos] Dado o trecho de programa em lnguagem de montagem do MIPS abaxo, gere códgo objeto

Leia mais

Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans

Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans Comparador Memóra de Instruções RALU=d_Address ALU Memóra de Dados ads _nt 11111 D_H D_ Prova P2 Dscplna: Organzação de Computadores Professor: Ney Laert Vlar Calazans Aluno: 21/junho/2018 1. [3,5 pontos].

Leia mais

MIPS_Monociclo. instruction instr add AdWP. wreg instruction. Memória de

MIPS_Monociclo. instruction instr add AdWP. wreg instruction. Memória de Prova P2 Dscplna: Organzação Computadores Professor: Ney Laert Vr Cazans Aluno: 20/novembro/2018 1. [3,0 pontos] Assumndo uma frequênca relógo 200MHz para a organzação MIPS monocclo estudada em au (e com

Leia mais

Prova P4/PS Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans

Prova P4/PS Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans Prova P4/PS Dscplna: Organzação de Computadores-EC Professor: Ney Laert Vlar Calazans Aluno: 30/novembro/2016 1. [3 pontos] Dado o programa em lnguagem de montagem do MIPS abaxo, gere códgo objeto para

Leia mais

Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans

Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans Prova P4/PS Dscplna: Organzação de Computadores-EC Professor: Ney Laert Vlar Calazans Aluno: 28/junho/2017 1. [3 pontos] Dado o trecho de programa em lnguagem de montagem do MIPS abaxo, gere códgo objeto

Leia mais

ALU. Ciclo de Relógio. de Dados. Memória. Instruções. Memória de. Máquina de Estados DIV. Decodificação M11 NPC MDR RESULT. npc=npc_out=npc.

ALU. Ciclo de Relógio. de Dados. Memória. Instruções. Memória de. Máquina de Estados DIV. Decodificação M11 NPC MDR RESULT. npc=npc_out=npc. Comparador Memóra de Instruções RALU=d_Address ALU Memóra de Dados ads _nt 11111 D_H D_ Prova P2 Dscplna: Organzação de Computadores Professor: Ney Laert Vlar Calazans Aluno: 21/novembro/2017 1. [3,5 pontos].

Leia mais

Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans

Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans Prova P4/PS Dscplna: Organzação de Computadores-EC Professor: Ney Laert Vlar Calazans Aluno: 24/junho/2016 1. [3 pontos] Dado o programa em lnguagem de montagem do MIPS abaxo, gere códgo objeto para as

Leia mais

PROCESSADOR MULTI-CICLO MR3

PROCESSADOR MULTI-CICLO MR3 - 1 - V 1.3 - De: 17/junho/2005 por Ney Calazans, Fernando Moraes e Fabiano Hessel Organização de Computadores PROCESSADOR MULTI-CICLO MR3 1 CARACTERÍSTICAS GERAIS DAS ARQUITETURAS MRX As arquiteturas

Leia mais

PROCESSADOR MULTI-CICLO MR2

PROCESSADOR MULTI-CICLO MR2 - 1 - V 1.7 - De: 25/novembro/2004 por Ney Calazans, Fernando Moraes e Fabiano Hessel Organização de Computadores PROCESSADOR MULTI-CICLO MR2 1 CARACTERÍSTICAS GERAIS DAS ARQUITETURAS MRX As arquiteturas

Leia mais

PROCESSADOR MULTICICLO MIPS-S

PROCESSADOR MULTICICLO MIPS-S V 1.5 - De: 16/novembro/2013 por Ney Calazans - 1 - Organização de Computadores PROCESSADOR MULTICICLO MIPS-S 1 CARACTERÍSTICAS GERAIS DA ARQUITETURA MIPS A arquitetura MIPS é do tipo load-store, ou seja,

Leia mais

SÉRIE DE PROBLEMAS: CIRCUITOS DE ARITMÉTICA BINÁRIA. CIRCUITOS ITERATIVOS.

SÉRIE DE PROBLEMAS: CIRCUITOS DE ARITMÉTICA BINÁRIA. CIRCUITOS ITERATIVOS. I 1. Demonstre que o crcuto da Fg. 1 é um half-adder (semsomador), em que A e B são os bts que se pretendem somar, S é o bt soma e C out é o bt de transporte (carry out). Fg. 1 2. (Taub_5.4-1) O full-adder

Leia mais

Prova G2 Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans .data 0x1E20FFF9 seis palavras da memória de programa

Prova G2 Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans .data 0x1E20FFF9 seis palavras da memória de programa Prova G2 Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans Aluno: 07/dezembro/2012 1. (3,0 pontos) Verdadeiro ou Falso. Abaixo aparem 10 afirmativas. Marque com V as afirmativas

Leia mais

Disciplina: Organização e Arquitetura de Computadores II Professores: Fabiano Hessel e Ney Calazans 22/abril/2009

Disciplina: Organização e Arquitetura de Computadores II Professores: Fabiano Hessel e Ney Calazans 22/abril/2009 Prova P1 Aluno Disciplina: Organização e Arquitetura de Computadores II Professores: Fabiano Hessel e Ney Calazans 22/abril/2009 Valor das questões: 1) 3 pontos 2) 3 pontos 3) 4 pontos 1. O fragmento de

Leia mais

1. uins.ce <= '1' when i=sw or i=lw else '0'; 2. uins.rw <= '0' when i=sw else '1'; 3. uins.wreg <= '0' when i=sw else '1';

1. uins.ce <= '1' when i=sw or i=lw else '0'; 2. uins.rw <= '0' when i=sw else '1'; 3. uins.wreg <= '0' when i=sw else '1'; Prova P2 Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans Aluno: 4/novembro/215 Para realizar a prova, refira-se à proposta de organização MIPS monociclo vista em aula. O desenho

Leia mais

Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans

Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans Prova G2 isciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans Aluno: 5/julho/213 1. (2, pontos) Abaixo é dado um código em linguagem de montagem do MIPS. iga em uma frase o que

Leia mais

66 [2] 0x x c

66 [2] 0x x c Prova P1 Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans Aluno: 16/setembro/2015 Lista de associação de números e mnemônicos para os registradores do MIPS Número (Decimal) Nome

Leia mais

Arquitetura de Computadores

Arquitetura de Computadores Universidade Federal de Santa Catarina Centro Tecnológico Curso de Pós-Graduação em Ciência da Computação Aula 2 Arquitetura do Processador MIPS: características gerais, registradores, formatos de instrução,

Leia mais

Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans

Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans Prova P4/PS Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans Aluno: 27/junho/2014 1. [3 pontos] Dado o programa em linguagem de montagem do MIPS abaixo, gere código objeto

Leia mais

Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans

Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans Prova P4/PS Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans Aluno: 26/junho/2013 1. (4 pontos) Assumindo uma frequência de relógio de 500 MHz para a organização MIPS multiciclo

Leia mais

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 04: ASPECTO BÁSICO DO PROJETO DE UMA CPU SIMPLES E LINGUAGEM DE MONTAGEM Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia

Leia mais

Número de Linha. Código objeto

Número de Linha. Código objeto Prova P4/PS Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans Aluno: 25/novembro/2015 1. [3 pontos] Dado o trecho de programa em linguagem de montagem do MIPS abaixo, gere

Leia mais

1: 2: 2, [1] [2] 0x x001f8021 $16,$0,$31 13 [3] 0x x

1: 2: 2, [1] [2] 0x x001f8021 $16,$0,$31 13 [3] 0x x Prova P1 Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans Aluno: 14/setembro/2012 Lista de associação de números e mnemônicos para os registradores do MIPS Número (Decimal) Nome

Leia mais

Especificação do Projeto de Processador RISC

Especificação do Projeto de Processador RISC UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO Especificação do Projeto de Processador RISC mycpu Neste documento é apresentada a especificação do projeto da disciplina Organização e Arquitetura de Computadores

Leia mais

Guia Rápido MIPS. Tipos de Dados e Formatações

Guia Rápido MIPS. Tipos de Dados e Formatações Tipos de Dados e Formatações Guia Rápido MIPS Tipos de Dados: Todas as instruções são de 32 bits Byte = 8 bits Halfword = 2 bytes Word = 4 bytes Um caractere ocupa 1 byte na memória Um inteiro ocupa 1

Leia mais

Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans

Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans Prova P1 Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans Aluno: 19/abril/2013 Lista de associação de números e mnemônicos para os registradores do MIPS Número (Decimal) Nome

Leia mais

ELE0317 Eletrônica Digital II

ELE0317 Eletrônica Digital II 2. ELEMENTOS DE MEMÓRIA 2.1. A Lnha de Retardo A lnha de retardo é o elemento mas smples de memóra. Sua capacdade de armazenamento é devda ao fato de que o snal leva um certo tempo fnto e não nulo para

Leia mais

Sistemas Processadores e Periféricos Aula 2 - Revisão

Sistemas Processadores e Periféricos Aula 2 - Revisão Sistemas Processadores e Periféricos Aula 2 - Revisão Prof. Frank Sill Torres DELT Escola de Engenharia UFMG Adaptado a partir dos Slides de Organização de Computadores 2006/02 do professor Leandro Galvão

Leia mais

3 Algoritmos propostos

3 Algoritmos propostos Algortmos propostos 3 Algortmos propostos Nesse trabalho foram desenvolvdos dos algortmos que permtem classfcar documentos em categoras de forma automátca, com trenamento feto por usuáros Tas algortmos

Leia mais

Disciplina: Organização e Arquitetura de Computadores II Professores: Fabiano Hessel e Ney Calazans 07/outubro/2009

Disciplina: Organização e Arquitetura de Computadores II Professores: Fabiano Hessel e Ney Calazans 07/outubro/2009 Prova P1 Aluno Disciplina: Organização e Arquitetura de Computadores II Professores: Fabiano Hessel e Ney Calazans 07/outubro/2009 Valor das questões: 1) 4 pontos 2) 3 pontos 3) 3 pontos 1. Montagem/Desmontagem

Leia mais

Dicas: Nas linhas 7 e 8 as constantes imediatas são especificadas como caracteres ASCIIE, o que é aceito pelo montador MARS.

Dicas: Nas linhas 7 e 8 as constantes imediatas são especificadas como caracteres ASCIIE, o que é aceito pelo montador MARS. Prova P1 Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans Aluno: 15/setembro/2016 Lista de associação de números e mnemônicos para os registradores do MIPS Número (Decimal) Nome

Leia mais

SSC0114 Arquitetura de Computadores

SSC0114 Arquitetura de Computadores SSC0114 Arquitetura de Computadores 3ª Aula Arquitetura MIPS: ISA, Formato das instruções e Modos de endereçamento MIPS Monociclo: Caminho de Dados e Unidade de Controle Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br

Leia mais

Implementação de um Subconjunto Multi-Ciclo do Processador MIPS

Implementação de um Subconjunto Multi-Ciclo do Processador MIPS Implementação de um Subconjunto Multi-Ciclo do Prossador MIPS Fernando Moraes 09/10/2006 Última alteração - Ney Calazans, 23/11/2016 1 Reg1 Reg2 Reg n-1 Reg n ESCRIÇÃO RTL de um HW MULTI-CICLO Cada estágio

Leia mais

SSC0611 Arquitetura de Computadores

SSC0611 Arquitetura de Computadores SSC0611 Arquitetura de Computadores 2ª e 3ª Aulas Arquitetura MIPS: ISA, Formato das instruções e Modos de endereçamento Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br 1 Arquitetura MIPS MIPS: Microprocessor

Leia mais

Organização de Computadores μarquitetura. Na Aula Anterior... Introdução. Nesta Aula. MIPS-Monociclo. Formas de Organização 17/10/2016

Organização de Computadores μarquitetura. Na Aula Anterior... Introdução. Nesta Aula. MIPS-Monociclo. Formas de Organização 17/10/2016 GBC06 Arq. e Org. de Computadores I 17/10/2016 Organização de Computadores μarquitetura Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D. Abdala Na Aula Anterior...

Leia mais

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR Introdução Instruções são representadas em linguagem de máquina (binário) E x i s t e m l i n g u a g e n

Leia mais

Sistemas de Computação. Instruções de Linguagem de Máquina

Sistemas de Computação. Instruções de Linguagem de Máquina Instruções de Linguagem de Máquina Linguagem de montagem do processador MIPS Operações aritméticas Instrução Exemplo Significado soma add a, b, c a = b + c subtração sub a, b, c a = b - c Compilação de

Leia mais

Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans. Lista de associação de números e mnemônicos para os registradores do MIPS

Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans. Lista de associação de números e mnemônicos para os registradores do MIPS Prova P1 Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans Aluno: 15/abril/2016 Lista de associação de números e mnemônicos para os registradores do MIPS Número (Decimal) Nome

Leia mais

[1] $2,$0,$3 105 [2] 0x004000e8

[1] $2,$0,$3 105 [2] 0x004000e8 Prova P1 Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans Aluno: 14/setembro/2017 Lista de associação de números e mnemônicos para os registradores do MIPS Número (Decimal) Nome

Leia mais

7 - Distribuição de Freqüências

7 - Distribuição de Freqüências 7 - Dstrbução de Freqüêncas 7.1 Introdução Em mutas áreas há uma grande quantdade de nformações numércas que precsam ser dvulgadas de forma resumda. O método mas comum de resumr estes dados numércos consste

Leia mais

Implementação Multi-Ciclo

Implementação Multi-Ciclo Implementação Multi-Ciclo Fernando Moraes 09/10/2006 Última alteração - Ney Calazans, 05/06/2012 Reg1 Reg2 Reg n-1 Reg n IMPLEMENTAÇÃO MULTI-CICLO Cada estágio realiza uma parte do trabalho Registradores

Leia mais

1: 2: 2, [1] [2] 0x x3c011001

1: 2: 2, [1] [2] 0x x3c011001 Prova P1 Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans Aluno: 13/setembro/2013 Lista de associação de números e mnemônicos para os registradores do MIPS Número (Decimal) Nome

Leia mais

Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans

Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans Prova P1 Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans Aluno: 18/abril/2012 Lista de associação de números e mnemônicos para os registradores do MIPS Número (Decimal) Nome

Leia mais

MIPS Implementação. sw) or, slt. Vamos examinar uma implementação que inclui um subconjunto de instruções do MIPS

MIPS Implementação. sw) or, slt. Vamos examinar uma implementação que inclui um subconjunto de instruções do MIPS Datapath do MIPS MIPS Implementação Vamos examinar uma implementação que inclui um subconjunto de instruções do MIPS Instruções de leitura (load lw) e de escrita (store sw) Instruções aritméticas e lógicas

Leia mais

Aula Características dos sistemas de medição

Aula Características dos sistemas de medição Aula - Característcas dos sstemas de medção O comportamento funconal de um sstema de medção é descrto pelas suas característcas (parâmetros) operaconas e metrológcas. Aqu é defnda e analsada uma sére destes

Leia mais

Organização de Computadores

Organização de Computadores Organização do Processador - Parte A Capítulo 5 Patterson & Hennessy Prof. Fábio M. Costa Instituto de Informática Universidade Federal de Goiás Conteúdo Caminho de dados Caminho de controle Implementação

Leia mais

Infraestrutura de Hardware. Instruindo um Computador

Infraestrutura de Hardware. Instruindo um Computador Infraestrutura de Hardware Instruindo um Computador Componentes de um Computador Unid. Controle Controle Memória Registradores PC MAR IR AC Programa + Dados Instrução Endereço Operando ALU Temp Datapath

Leia mais

Conjunto de Instruções. Prof. Leonardo Barreto Campos 1

Conjunto de Instruções. Prof. Leonardo Barreto Campos 1 Conjunto de Instruções Prof. Leonardo Barreto Campos 1 Sumário Introdução; CISC; RISC; MIPS; Representação de Instruções; SPIM; Prof. Leonardo Barreto Campos 2/58 Sumário Operações Lógicas; Instruções

Leia mais

Figura 8.1: Distribuição uniforme de pontos em uma malha uni-dimensional. A notação empregada neste capítulo para avaliação da derivada de uma

Figura 8.1: Distribuição uniforme de pontos em uma malha uni-dimensional. A notação empregada neste capítulo para avaliação da derivada de uma Capítulo 8 Dferencação Numérca Quase todos os métodos numércos utlzados atualmente para obtenção de soluções de equações erencas ordnáras e parcas utlzam algum tpo de aproxmação para as dervadas contínuas

Leia mais

ARQUITECTURA DE COMPUTADORES

ARQUITECTURA DE COMPUTADORES RQUITETUR DE OMPUTDORES º Sére de Problemas Undade de Processamento. s saídas dos regstos R, R, R, R estão lgadas através de multplexers 4-para- à entrada de um quto regsto R4. Os regstos tem oto bts.

Leia mais

Relembrando desempenho...

Relembrando desempenho... Parte 5 OBS: Essas anotações são adaptações do material suplementar (apresentações PPT) ao Livro do Hennessy e Patterson, 2ª e 3ª Ed. e do Livro do 5ª Ed. A parte final do material corresponde às aulas

Leia mais

EXERCÍCIO: VIA EXPRESSA CONTROLADA

EXERCÍCIO: VIA EXPRESSA CONTROLADA EXERCÍCIO: VIA EXPRESSA CONTROLADA Engenhara de Tráfego Consdere o segmento de va expressa esquematzado abaxo, que apresenta problemas de congestonamento no pco, e os dados a segur apresentados: Trechos

Leia mais

RAD1507 Estatística Aplicada à Administração I Prof. Dr. Evandro Marcos Saidel Ribeiro

RAD1507 Estatística Aplicada à Administração I Prof. Dr. Evandro Marcos Saidel Ribeiro UNIVERIDADE DE ÃO PAULO FACULDADE DE ECONOMIA, ADMINITRAÇÃO E CONTABILIDADE DE RIBEIRÃO PRETO DEPARTAMENTO DE ADMINITRAÇÃO RAD1507 Estatístca Aplcada à Admnstração I Prof. Dr. Evandro Marcos adel Rbero

Leia mais

Alocação sequencial - filas

Alocação sequencial - filas Alocação sequencal - las Flas A estrutura de dados Fla também é bastante ntutva. A analoga é com uma la de pessoas aguardando para serem atenddas no guchê de um banco, ou aguardando o ônbus. Se houver

Leia mais

Infraestrutura de Hardware. Implementação Monociclo de um Processador Simples

Infraestrutura de Hardware. Implementação Monociclo de um Processador Simples Infraestrutura de Hardware Implementação Monociclo de um Processador Simples Componentes de um Computador Unid. Controle Controle Memória Registradores PC MAR IR AC Programa + Dados Instrução Endereço

Leia mais

Questionário Arquitetura e Organização de Computadores

Questionário Arquitetura e Organização de Computadores Questionário Arquitetura e Organização de Computadores Os exercícios desta lista estão organizados em geral seguindo a apresentação do conteúdo em aula. No entanto, alguns exercícios podem requerem conhecimentos

Leia mais

CONTROLADORES FUZZY. Um sistema de controle típico é representado pelo diagrama de blocos abaixo:

CONTROLADORES FUZZY. Um sistema de controle típico é representado pelo diagrama de blocos abaixo: CONTROLADORES FUZZY Um sstema de controle típco é representado pelo dagrama de blocos abaxo: entrada ou referênca - erro CONTROLADOR snal de controle PLANTA saída A entrada ou referênca expressa a saída

Leia mais

Relembrando desempenho...

Relembrando desempenho... Parte 5 OBS: Essas anotações são adaptações do material suplementar (apresentações PPT) ao Livro do Hennessy e Patterson, 2ª e 3ª Ed. e do Livro do 5ª Ed. A parte final do material corresponde às aulas

Leia mais

Caderno de Fórmulas em Implementação. SWAP Alterações na curva Libor

Caderno de Fórmulas em Implementação. SWAP Alterações na curva Libor Caderno de Fórmulas em Implementação SWAP Alterações na curva Lbor Atualzado em: 15/12/217 Comuncado: 12/217 DN Homologação: - Versão: Mar/218 Índce 1 Atualzações... 2 2 Caderno de Fórmulas - SWAP... 3

Leia mais

Arquitectura de Computadores ARQC MIPS. Serviços de Sistemas Exemplos. Serviços de Sistema

Arquitectura de Computadores ARQC MIPS. Serviços de Sistemas Exemplos. Serviços de Sistema Arquitectura de Computadores ARQC MIPS Serviços de Sistemas Exemplos Serviços de Sistema Exemplo 1 Somar duas variáveis veis em um registrador register int a=1, b=3, c; c = a + b; (usar os códigos c de

Leia mais

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10 Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação QUAL É A INTERFACE ENTRE

Leia mais

4 Critérios para Avaliação dos Cenários

4 Critérios para Avaliação dos Cenários Crtéros para Avalação dos Cenáros É desejável que um modelo de geração de séres sntétcas preserve as prncpas característcas da sére hstórca. Isto quer dzer que a utldade de um modelo pode ser verfcada

Leia mais

Prova P4/PS Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans lui+ori syscall 1. .text 2. main: $s0, string 3.

Prova P4/PS Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans lui+ori syscall 1. .text 2. main: $s0, string 3. Prova P4/PS Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans Aluno: 30/novembro/2012 1. (4 pontos) Assumindo uma frequência de relógio de 500 MHz para a organização MIPS multiciclo

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Linguagem de Montagem Slide 1 Operações Lógicas Embora os primeiros computadores se concentrassem em words completas, logo ficou claro que era útil atuar sobre

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Linguagem de Montagem Slide 1 CISC RISC MIPS Organização e Arquitetura de Computadores I Sumário Representação de instruções Slide 2 CISC O CISC (Complex Instruction

Leia mais

Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans

Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans Prova P2 Disciplina: Organização Computadores Professor: Ney Laert Vilar Calazans Aluno: 16/junho/2017 Para realizar a prova, refira-se à proposta organização MIPS monociclo vista em aula. O diagrama blocos

Leia mais

Índice. Exemplo de minimização de estados mais complexo. estados

Índice. Exemplo de minimização de estados mais complexo. estados Sumáro Método da tabela de mplcações para mnmzar estados. Atrbução de códgos aos estados: métodos baseados em heurístcas. Índce Exemplo de mnmzação de estados mas complexo Método da tabela de mplcações

Leia mais

Conjunto de Instruções MIPS Parte IV

Conjunto de Instruções MIPS Parte IV Faculdade de Ciências Aplicadas e Sociais de Petrolina FACAPE Conjunto de Parte IV Transferência de Dados Lógicas Controle Suporte a procedimentos Prof. Sérgio Adaptado dos slides de Sistemas Processadores

Leia mais

É o grau de associação entre duas ou mais variáveis. Pode ser: correlacional ou experimental.

É o grau de associação entre duas ou mais variáveis. Pode ser: correlacional ou experimental. Prof. Lorí Val, Dr. val@mat.ufrgs.br http://www.mat.ufrgs.br/~val/ É o grau de assocação entre duas ou mas varáves. Pode ser: correlaconal ou expermental. Numa relação expermental os valores de uma das

Leia mais

PERCEPTRON. Características Básicas Modelo de Neurônio Estrutura da Rede Algoritmo de Aprendizado CARACTERISTICAS BASICAS

PERCEPTRON. Características Básicas Modelo de Neurônio Estrutura da Rede Algoritmo de Aprendizado CARACTERISTICAS BASICAS PERCEPTRON Característcas Báscas Modelo de Neurôno Estrutura da Rede Algortmo de Aprendzado CARACTERISTICAS BASICAS - Regra de propagação net - Função de atvação: Degrau = x w + - Topologa: uma únca camada

Leia mais

Análise Complexa Resolução de alguns exercícios do capítulo 1

Análise Complexa Resolução de alguns exercícios do capítulo 1 Análse Complexa Resolução de alguns exercícos do capítulo 1 1. Tem-se:. = (0, 1) = (0, 1) =. 3. Sejam a, b R. Então Exercíco nº1 = (0, 1).(0, 1) = (0.0 1.1, 0.1 + 1.0) = ( 1, 0) = 1. a + b = a b = a +

Leia mais

Arquitetura de Computadores. Linguagem de Máquina

Arquitetura de Computadores. Linguagem de Máquina Arquitetura de Computadores Linguagem de Máquina Ivan Saraiva Silva Formato de Instrução MAC O MIC possui dois formatos de instrução: 4 bits 12 bits Formato 1 CODOP ENDEREÇO 8 bits 8 bits Formato 2 CODOP

Leia mais

Registradores na Arquitetura MIPS. 29/4/2016 MIPS - Instruction Set Architecture

Registradores na Arquitetura MIPS. 29/4/2016 MIPS - Instruction Set Architecture Registradores na Arquitetura MIPS 29/4/2016 MIPS - Instruction Set Architecture 1 Mapa de Memória da Arq. MIPS 2 GB 2 GB 256 MB 64 KB 2 GB 64 KB 256 4 MB 4 MB 29/4/2016 MIPS - Instruction Set Architecture

Leia mais

FICHA de AVALIAÇÃO de MATEMÁTICA A 10.º Ano Versão 1

FICHA de AVALIAÇÃO de MATEMÁTICA A 10.º Ano Versão 1 FICHA de AVALIAÇÃO de MATEMÁTICA A 10.º Ano Versão 1 Nome Nº Turma: Data: / / Professor 10.º Ano Classfcação Apresente o seu racocíno de forma clara, ndcando todos os cálculos que tver de efetuar e todas

Leia mais

Arquitetura de Computadores

Arquitetura de Computadores MEE Mestrado Integrado em Engenhara Electrótecnca e de omputadores rqutectura de omputadores 5-6 rqutetura de omputadores º Sére de Problemas Undade de Processamento. s saídas dos regstos R, R, R, R estão

Leia mais

Infraestrutura de Hardware. Implementação Multiciclo de um Processador Simples

Infraestrutura de Hardware. Implementação Multiciclo de um Processador Simples Infraestrutura de Hardware Implementação Multiciclo de um Processador Simples Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é entendido e

Leia mais

Arquitetura de Computadores. Assembly Miscelâneas. Mário O. de Menezes. http://www.tf.ipen.br/~mario

Arquitetura de Computadores. Assembly Miscelâneas. Mário O. de Menezes. http://www.tf.ipen.br/~mario Arquitetura de Computadores Assembly Miscelâneas Mário O. de Menezes http://www.tf.ipen.br/~mario AC Mário O. de Menezes 1 Lembrando Instruções Lógicas e Shift operam em bits individuais, diferente de

Leia mais

Operações Aritméticas e Lógicas e Avaliação de Condições

Operações Aritméticas e Lógicas e Avaliação de Condições 3 Operações Aritméticas e Lógicas e Avaliação de Condições Arithmetic is where the answer is right and everything is nice and you can look out of the window and see the blue sky - or the answer is wrong

Leia mais

Infraestrutura de Hardware. Instruindo um Computador Subrotinas, Tipos de Dados e Modos de Endereçamento

Infraestrutura de Hardware. Instruindo um Computador Subrotinas, Tipos de Dados e Modos de Endereçamento Infraestrutura de Hardware Instruindo um Computador Subrotinas, Tipos de Dados e Modos de Endereçamento Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de

Leia mais

CAPÍTULO 2 DESCRIÇÃO DE DADOS ESTATÍSTICA DESCRITIVA

CAPÍTULO 2 DESCRIÇÃO DE DADOS ESTATÍSTICA DESCRITIVA CAPÍTULO DESCRIÇÃO DE DADOS ESTATÍSTICA DESCRITIVA. A MÉDIA ARITMÉTICA OU PROMÉDIO Defnção: é gual a soma dos valores do grupo de dados dvdda pelo número de valores. X x Soma dos valores de x número de

Leia mais

IMPLEMENTAÇÃO DO MÉTODO DE FATORAÇÃO DE INTEIROS CRIVO QUADRÁTICO

IMPLEMENTAÇÃO DO MÉTODO DE FATORAÇÃO DE INTEIROS CRIVO QUADRÁTICO IMPLEMENTAÇÃO DO MÉTODO DE FATORAÇÃO DE INTEIROS CRIVO QUADRÁTICO Alne de Paula Sanches 1 ; Adrana Betâna de Paula Molgora 1 Estudante do Curso de Cênca da Computação da UEMS, Undade Unverstára de Dourados;

Leia mais

Cap 6: 4,5,8,9,10,11,12,15,16,21 fazer diagramas, usar análise por cálculo do tempo de resposta

Cap 6: 4,5,8,9,10,11,12,15,16,21 fazer diagramas, usar análise por cálculo do tempo de resposta QUESTÕES DO LIVRO Real-Tme Systems, Jane Lu Cap 6: 4,5,8,9,10,11,12,15,16,21 fazer dagramas, usar análse por cálculo do tempo de resposta Cap 8: 1,2,7 fazer dagramas Concetos Báscos e Técncas de Implementação

Leia mais

Unidade Central de Processamento UCP (CPU)

Unidade Central de Processamento UCP (CPU) Unidade Central de Processamento UCP (CPU)! Arquitetura Convencional (Von Neumann) UCP BARRAMENTO MEMÓRIA PRINCIPAL ENTRADA E SAÍDA ! Visão geral da CPU UC - UNIDADE DE CONTROLE REGISTRADORES A B C D ALU

Leia mais

Infra-estrutura de Hardware

Infra-estrutura de Hardware CPU: Estrutura e Funcionalidade Roteiro da Aula Ciclo de Instrução Projeto de uma CPU simples: conceitos Componentes básicos Leitura da instrução Operação entre registradores Acesso à memória Implementação

Leia mais

4. Modelo de Programação do DLX Introdução

4. Modelo de Programação do DLX Introdução 4. Modelo de Programação do DLX Quero que o matemático Beremiz Samir nos conte uma lenda, ou uma simples fábula, na qual apareça uma divisão de 3 por 3 indicada, mas não efetuada, e outra de 3 por 2, indicada

Leia mais

FICHA de AVALIAÇÃO de MATEMÁTICA A 10.º Ano Versão 3

FICHA de AVALIAÇÃO de MATEMÁTICA A 10.º Ano Versão 3 FICHA de AVALIAÇÃO de MATEMÁTICA A 10.º Ano Versão 3 Nome Nº Turma: Data: / / Professor 10.º Ano Classfcação Apresente o seu racocíno de forma clara, ndcando todos os cálculos que tver de efetuar e todas

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização e Arquitetura Básicas

Leia mais

Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO

Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO Linguagem de Montagem Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO 1 Introdução Independente da linguagem de programação utilizada, todo programa

Leia mais

Notas Processos estocásticos. Nestor Caticha 23 de abril de 2012

Notas Processos estocásticos. Nestor Caticha 23 de abril de 2012 Notas Processos estocástcos Nestor Catcha 23 de abrl de 2012 notas processos estocástcos 2 O Teorema de Perron Frobenus para matrzes de Markov Consdere um processo estocástco representado por um conunto

Leia mais

FICHA de AVALIAÇÃO de MATEMÁTICA A 10.º Ano Versão 4

FICHA de AVALIAÇÃO de MATEMÁTICA A 10.º Ano Versão 4 FICHA de AVALIAÇÃO de MATEMÁTICA A 10.º Ano Versão 4 Nome Nº Turma: Data: / / Professor 10.º Ano Classfcação Apresente o seu racocíno de forma clara, ndcando todos os cálculos que tver de efetuar e todas

Leia mais

2 Metodologia de Medição de Riscos para Projetos

2 Metodologia de Medição de Riscos para Projetos 2 Metodologa de Medção de Rscos para Projetos Neste capítulo remos aplcar os concetos apresentados na seção 1.1 ao ambente de projetos. Um projeto, por defnção, é um empreendmento com metas de prazo, margem

Leia mais

2 Lógica Fuzzy Introdução

2 Lógica Fuzzy Introdução 2 Lógca Fuzzy 2.. Introdução A lógca fuzzy é uma extensão da lógca booleana, ntroduzda pelo Dr. Loft Zadeh da Unversdade da Calfórna / Berkeley no ano 965. Fo desenvolvda para expressar o conceto de verdade

Leia mais

Sempre que surgir uma dúvida quanto à utilização de um instrumento ou componente, o aluno deverá consultar o professor para esclarecimentos.

Sempre que surgir uma dúvida quanto à utilização de um instrumento ou componente, o aluno deverá consultar o professor para esclarecimentos. Nesse prátca, estudaremos a potênca dsspada numa resstênca de carga, em função da resstênca nterna da fonte que a almenta. Veremos o Teorema da Máxma Transferênca de Potênca, que dz que a potênca transferda

Leia mais

3 Animação de fluidos com SPH

3 Animação de fluidos com SPH 3 Anmação de fludos com SPH O SPH (Smoothed Partcle Hydrodynamcs) é um método Lagrangeano baseado em partículas, proposto orgnalmente para smulação de problemas astrofíscos por Gngold e Monaghan (1977)

Leia mais

Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Aula 1. Cibele Lemos Freire Viginoski

Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Aula 1. Cibele Lemos Freire Viginoski Aula 1 Cibele Lemos Freire Viginoski ARM (Advanced RISC Machine) Arquitetura de Processadores CISC Conjunto Complexo de Instruções Microinstruções RISC Conjunto de Instruções Reduzidas Instruções devem

Leia mais

Algarismos Significativos Propagação de Erros ou Desvios

Algarismos Significativos Propagação de Erros ou Desvios Algarsmos Sgnfcatvos Propagação de Erros ou Desvos L1 = 1,35 cm; L = 1,3 cm; L3 = 1,30 cm L4 = 1,4 cm; L5 = 1,7 cm. Qual destas meddas está correta? Qual apresenta algarsmos com sgnfcado? O nstrumento

Leia mais

SSC510 Arquitetura de Computadores 1ª AULA

SSC510 Arquitetura de Computadores 1ª AULA SSC510 Arquitetura de Computadores 1ª AULA REVISÃO DE ORGANIZAÇÃO DE COMPUTADORES Arquitetura X Organização Arquitetura - Atributos de um Sistema Computacional como visto pelo programador, isto é a estrutura

Leia mais

Eletrotécnica AULA Nº 1 Introdução

Eletrotécnica AULA Nº 1 Introdução Eletrotécnca UL Nº Introdução INTRODUÇÃO PRODUÇÃO DE ENERGI ELÉTRIC GERDOR ESTÇÃO ELEVDOR Lnha de Transmssão ESTÇÃO IXDOR Equpamentos Elétrcos Crcuto Elétrco: camnho percorrdo por uma corrente elétrca

Leia mais

MIPS. Prof. Carlos Bazilio http://www.ic.uff.br/~bazilio bazilio@ic.uff.br

MIPS. Prof. Carlos Bazilio http://www.ic.uff.br/~bazilio bazilio@ic.uff.br MIPS Prof. Carlos Bazilio http://www.ic.uff.br/~bazilio bazilio@ic.uff.br Introdução Plataforma projetada da parceria entre NEC, Nintendo, Silicon Graphics e Sony Possui um conjunto de instruções que e

Leia mais