Você está na página 1de 37
Arquitetura e Organizacao de Computadores Bases numéricas, representacdo dos dados e instrugao de maquinas Prof. Ms. Wesley Viana + Unidade de Ensino: 3 * Competéncia da Unidade: Aprofundar o conhecimento sobre base numéricas e representacdes de dados + Resumo: Nesta unidade seré apresentado as representacées das linguagens incluindo como o computador se comunica em sua linguagem de maquina. * Palavras-chave: Sistemas numéricos; ciclo de instrugdes, pipeline; Linguagem Assembly. + Titulo da Tele aula: Bases numéricas, Representacio dos dados e instrucées e Instrucdes de maquinas + Tele aula n2: 03 Contextualizacao © principal objetivo € conhecer e compreender os conceitos e desenvolvimentos histéricos de arquitetura e organizacao de computadores, assim como a estrutura de computadores. Para isso, seréo apresentados todos os conceitos relacionados & representacdo bindria de informacdo, a composicao de outras representaces relacionadas ao sistema binario ea classificagdo de numeros binérios. a Fonte: shuterstck Apés apresentar os ntimeros bindrios, também serdo abordados os ntimeros octais e hexadecimais, bem como as conversdes de base entre todos estes diferentes sistemas de numera¢ao. Contextualizacdo Todo este conhecimento serd necessdrio para que seja possivel projetar instrugées de maquinas, que nada mais so do que um conjunto de numeros bindrios que serd 0 coracéo do processador que iremos projetar mais adiante e as linguagens de maquina e montagem (Assembly) para projetar as instrucées . Curioso para saber como? a Vamos descobrir juntos! Fonte shack Sistemas numéricos: conceitos, simbologia e representacao de base numérica Sua missdo Asua primeira tarefa é fazer conversées e validacées. Considere que vocé faz parte de um time de desenvolvimento de hardware de uma empresa X que necessita de uma verificacdo em sua arquitetura. Apés adquirir 0 conhecimento desta secio, vocé 6 a pessoa indicada para realizar os testes necessarios. A empresa vai apresentar um conjunto de numeros bindrios trabalhados pelo processador e vocé tera de apresentar um parecer de ntimero de acertos e erros de forma que o projeto seja avaliado e as decisées de correc3o possam ser devidamente tomadas. Nesse sentido, vocé deveré avaliar os numeros apresentados na tabela apresentada a seguir: Fonte: Shutterstock Sua missdo Vocé, entdo, deverd fazer a conversdo, preencher as linhas em branco e, depois, preencher a coluna de validacdo, com 0 valor CORRETO ou ERRADO. Perry Ptr rrr eeu Rac) Cee ecu 1E 0001 1110 11010111 11111101 1010 0101 01111111 1100 0011 41111111 Fone: Shutterstock 315 FF AS 154 303 AA Sistemas de Numeracdo Sistema Binario Octal Algarismos 0,1 0,1,2,3,4,5,6,7 Decimal 0,1,2,3,4,5,6,7,8,9 Hexadecimal 0,1,2,3,4,5,6,7,8,9,A,B,C,D AF Sistemas de Numeracgao 1 i 1 00) 101 110. cy 7000) 1001 1010 1011 T1007 101 io Tit 0 I Zz 3 4 5 é 7 a 9 A B ie D E F Sistema Decimal + Eo sistema mais comum; * Composto por 10 simbolos (0,1,2,3,4,5,6,7,8,9); 10 10' 10 3 8 7 Fonte: Shutterstock Realizando o calculo , temos: (3 x 102) + (8 x 10") + (7x 10°)= = 300+ 80+7 Sistema Binario + Composto por dois simbolos: Os e 1s; +O zero no sistema bindrio representa a auséncia de tensio, enquanto o 1 representa uma tensao. 1 0 1 1 0 2 2 2 2 20 Font: Shuartock Realizando 0 calculo , temos: (1x 24) + (0x 23}4 (1 x 22) + (1x 24) + (Ox 2°) = =16+0+4+2+0 = 22 em decimal Sistema Octal + Composto por 8 simbolos (0,1,2,3,4,5,6,7); + Este sistema foi utilizado como modelo alternative ao bindrio como uma forma mais compacta; + Hoje utiliza-se mais o hexadecimal. 1 6 7 a 8! ao Fone: Shutterstock Realizando 0 calculo , temos: (1.x 82) + (6 x8") + (7x 8°)= 64+ 48+7 119 em decimal Sistema Hexadecimal Composto por 16 simbolos (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F); + Utilizados nos microprocessadores. + Usados enderecos de MAC (Enderecos Fisicos) encontrados nas etiquetas abaixo dos roteadores. 2 F 4 167 16° a rem rte Realizando o calcul , temos: (2 x 162) + (15 x 16") + (4x 16°)= = 512+ 240+4 =756 em decimal Conversdo de decimal para binario 2 ‘i 12 0 612 o 3/2 2 Fone: Shutterstock 1 1 1 = = om om a 0 Conversao de binario para decimal OTA YT | \ NN 1x25 + 1x24 + 0x23 + 1x2? + 0x2! + 1x2° i i 1 1 4 t 32+ 16+ 0+ 4+ 0 +1=53 110101, = 5345 Conversdo de decimal para hexadecimal 12412 16 12 775 46 za 12412 Decimal = 307C Hexadecimal Aquitetura de um processador Uma definigSo de arquitetura de um processador deve vir acompanhada, obrigatoriamente, da indicagio de como o numero bindrio é considerado, sendo que existem duas possibilidades. Para ler o numero bindrio da esquerda para a direita (dizemos que o MSB é 0 primeiro e 0 LSB é 0 Ultimo. MSB é uma sigla para o bit mais significativo e LSB é o bit menos significativo. Fonte: Shutestock Se o primeiro é o MSB, ele é 0 que representa o maior valor, sendo que o numero deve ser lido da esquerda para direita. Entretanto, existem arquiteturas que o primeiro bit é 0 LSB e o Ultimo é o MSB, fazendo com que o numero seja interpretado de maneira invertida. Conversao de bases e validagao Ao ser informado do trabalho a ser realizado, vocé foi apresentado a uma tabela que continha em cada linha o resultado de uma operacSo feita pelo processador e o resultado que era esperado. Como sao diversos testes realizados e cada um por uma pessoa diferente cada resultado estava em uma base diferente dificultando seu trabalho. O resultado é apresentado na tabela seguinte: conan | % 0 heron [2s sewer) [CO deeraser 7) | wade nintnon | 88 evenae-3) Feeder sD) | ran vwwowr [6s 2s a cane onan [a Saige? T7ldevern ser) | tran niooeout [5 303 3 Como unm [255 | see deem ser37) (oAarena BD] eras Introdugao a Instrugdes de maquinas Sua missdo A sua segunda tarefa é melhorar o tamanho e qual ser a forma da instrugdo escolhidos para o projeto de um Pprocessador. Considere que vocé, profissional de computacao, foi contratado para desenvolver um novo nucleo para um processador e precisa agora resolver diversos problemas relacionados 4 arquitetura do processador. E necessario que vocé, como projetista, crie todo um conjunto novo de instrugdes que sera utilizado como base para a construgao do processador. Questionamentos: Qual seria o tamanho desta instrucado? O que é necessdrio representar nesta instrucio? Sua missdo Sabendo que uma instrugdo é nada mais que um conjunto de algarismos bindrios, sendo assim, 0 que cada um destes algarismos representa? Qual parte da informac3o deve colocada em cada parte dos bits? Existe uma regra? A instrugdo referencia espagos na meméria que serao utilizados para recuperar informagdes para o processador e, também, para salvar os resultados de processamento. Estas informagdes deverao também ser incluidas no projeto da instru¢’o, porém, como fazer isso da melhor forma possivel? Fone: Shutterstock Fonte: Shutterstock Contextualizando = Toda a informacSo utilizada em um processador deve ser armazenada, por isso sempre que compramos um computador verificamos algumas informagdes tais como: sua capacidade de memoria RAM, seu HD, se o processador possui um, dois ou trés niveis de memoria cache . = 0 tamanho da meméria esté diretamente relacionado a complexidade de seu gerenciamento. one Shuterstock = Aunidade basica de armazenamento é o registrador. = Existe no processador um banco de registradores. = Este banco de registradores funciona da seguinte maneira: vocé passa um endereco de um determinado registrador e 0 bloco de hardware retorna seu contetido. Banco de Registradores Endereco: 000 001 010 011 100 101 Contetido: Entrada de 3 bits Saida de 4 bits Banco de registradores Manipulacdo dos registradores * Qacesso ao dado é feito por meio do enderegamento direto, ou seja, 0 endereco enviado é o proprio endereco do registrador e ativa apenas o setor da meméria correspondente, tornando este tipo de acesso extremamente rapido e permitindo que seja implantado dentro do processador para o armazenamento de informagées. + A manipulagéo dos registradores ¢ realizada por meio de instrug6es dos processadores, do tipo |, tipo Re tipo J. + As instrugées do tipo 1 manipulam enderecos de memoria ou constantes. + As instrugdes do tipo R podem realizar a manipulagdo e as operagées entre registradores. + As instrugdes do tipo J realizam desvios de instrugdes a serem executados. Processadores MIPS * Hennessy e Patterson (2017) propdem um_ processador chamado MIPS, cuja arquitetura foi utilizada como base de diversos processadores comerciais. + O MIPS possui 32 registradores (do registrador 0 ao registrador 31) que armazenam dados de 32 bits de tamanho. * Sendo assim, como deve ser o projeto deste banco de registradores considerando os bits de entrada e de saida? * Para representar os 32 registradores é necessario um barramento de enderecos de 5 bits, uma vez que 25 = 32, ou seja, (registrador 0 — 00000b, ao registrador 31 - 11111b) e um barramento de saida de dados de 32 bits. u Fonte: Snts(2020, p38) |] Fonte: Shuterstack Arquitetura de Von Neumann x Arquitetura de Harvard + Nas duas arquiteturas, o computador possui quatro componentes bdasicos: meméria, unidade de controle, unidade légica aritmética (ULA) e entrada/saida de dados. + A diferenca basica entre estas duas arquiteturas é o fato de que na arquitetura de Von Neumann a memoria de programa e a memoria de dados esto fisicamente no mesmo chip. * No caso da arquitetura de Harvard existe uma separagSo fisica real da memoria de dados e da memoria de programas o que gera um custo maior de implantacdo porém, a protecado é maior visto que se um virus for executado, ele ira afetar apenas a memoria de programa sem que os dados sejam perdidos. Hierarquia de memorias + Apos entender os registradores e os tipos de arquiteturas, 0 proximo passo é entendermos a unidade de controle e a parte de entrada/saida de dados. * Sem este entendimento seria complexo demais compreender como é formado um conjunto de instrugées. * Na hierarquia de meméria, quando um dado nao esta armazenado em um registrador é possivel que esteja ou na memoria principal (representada em nosso sistema por niveis secundario de cache e também pela meméria RAM) ou na memoria secundaria (representada pelo HD). Fone: Shutterstock Instrugdo + Em uma instrug&o é possivel também acessar enderegos de meméria que nao sdo enderecos de registradores e, nestes casos, é necessdrio que se tenha o endereco propriamente dito do dado ou ent&o que se passe o valor numérico a ser trabalhado pelo processador. * Este tipo de enderegamento é chamado de imediato e ira gerar um tipo especifico de instrugdes. * Apés apresentar alguns conceitos basicos, vamos a defi de instrug3o: + Segundo Hannessy e Patterson (2017), uma instrugdo 6 um conjunto de bits (0’s e 1’s), entendidos pelo processador como sinais eletrénicos, que podem ser representados por um conjunto de numeros. 0 Instrucdo * Cada um destes numeros representa algo especifico para o processador e a juncao destes numeros em uma palavra unica & 0 que chamamos de instrugao. * Para entender o papel de uma instrug3o vamos analisar os blocos que compéem o processador e o que cada um deve receber e como se da o caminho dos dados através dos blocos. ‘ridade de conae tanco de progam ‘eon Fone: Shutterstock Projeto de Instrucdo * O conceito de instrucéo deve ser assimilado de forma completa. Portanto vamos utilizar uma imagem que representa uma instrugéo de 32 bits com a mesma divisio proposta por Hennessy e Patterson (2017) para visualizar um projeto real. 00000001010101010101011111001100 15 bits para 6 bits para os operandos fungao 6 bits para S bits para operacao deslocamento Foe: Saies2020, 142) 32, Modos de enderecamento em processadores O simulador é um programa gratuito gerado em java (jar) que deve ser apenas executado. Ex.: 0s valores nos registradores e realizar a sua soma. Banco de Registradores, Criacgao de um modelo para um conjunto de instrugdes O processador que iremos projetar deve ser simples, porém pode ser pensado para um tipo de operacées especificas. Os processadores possuem sempre uma unidade que deve ser especializada na execucdo de operacées aritméticas como soma, subtraco, divisdo, multiplicacdo, dentre outras . A segunda questo importante é que este conjunto de instrugées deve ter definido um tamanho de palavra que o processador sera capaz de aceitar. Considerando que o processador teré de se comunicar com outros blocos é possivel escolher um tamanho de palavra padrao. Os processadores mais novos estdo operando em 64 bits (que é 0 tamanho da sua palavra), porém, o nosso processador pode ser projetado considerando que um dado de 64 bits ird precisar de toda uma estrutura de suporte maior como o barramento de transmissao de dados, os registradores para armazenar os dados, dentre outras estruturas. 34 Sendo assim, para manter um tamanho de arquitetura pequeno e compativel com os projetos j4 executados no mercado vamos optar por uma arquitetura de 32 bits. As duas primeiras etapas foram ent3o cumpridas e justificadas. Veja: vocé como projetista poderia escolher qualquer numero de bits e um nucleo especializado em outras fungées. Porém, modificar estas caracteristicas do problema exige normalmente conhecimentos mais avangados sobre as aplicagdes para as quais 0 processador seria desenvolvido, e um tamanho maior de palavra deve ser justificado com a necessidade de mais bits para representacdo. Um ntimero muito pequeno destes bits pode causar um problema caso sua arquitetura do processador precise passar por um upgrade e isso também deve ser considerado. Agora, para cada um dos bits, ou conjunto de bits, devemos escolher uma funcionalidade correspondente. Como ainda nao conhecemos a fundo as funcionalidades necessarias, é possivel tentar sem medo definir este modelo de instrugio. Mais & frente no estudo de arquitetura de computadores poderemos analisar a resposta que demos aqui e entender o motivo de ser boa ou ruim para determinados aspectos. O processador lida normalmente com operacées numéricas, sendo que os ntimeros envolvidos estardo armazenados em uma meméria. Assim existe a necessidade de dois tipos de campos: um onde acessamos o numero em um registrador (como nas strugdes do tipo R apresentadas) e outro que o numero é obtido diretamente na instrugdo (como nas instrugdes do tipo | apresentadas). 35 36 Existem processadores inteiros como o MIPS (HENNESSY; PATTERSSON, 2017) que sdo definidos com 32 instrugées e outros como os processadores que possuem centenas. O numero de bits que reservarmos para o tipo de instrucdo deve ser capaz de identificar unicamente cada uma delas. Sendo assim podemos deixar 1 byte para a identificagdo de instrugées, ou seja, 8 bits. Também € comum reservar bits para controle da arquitetura que no nosso caso serao 6 bits. Os outros 18 bits podem ser divididos da seguinte maneira: para instrugdes do tipo R, trés grupos de 6 bits, e para instrucées do tipo I dois campos um de 6 bits e um de 12 bits. Vamos analisar esta resposta. Reservando 1 byte para instrugSes poderemos identificar unicamente instrugSes, ou seja, 256. Este numero é razodvel j4 que estamos projetando um processador apenas para calculos matematicos, pois so poucas as possiveis operacdes matematicas. Os outros 6 bits para controle do sistema so importantes ja que podem ser utilizados para configurar outras partes do processador. Neste caso permitimos, com 6 bits, que existam opcdes de configuracées totalizando 64 0 que é suficiente também para o controle dos blocos légicos. O tipo R possui 3 campos de 6 bits cada. Um campo de 6 bits para o endereco de um registrador (lugar onde fica armazenado um valor na meméria) permite enderecar 64 registradores (do 0 ao 63). Normalmente, um projeto de processador simples nao possui mais que 40 registradores sendo um numero aceitavel. 37 38 Por fim, para a instrugdo do tipo I, temos novamente os 6 bits para enderecar um registrador mantendo o padrao anterior. No caso da parte imediata deixamos 12 bits, isso quer dizer que quando o programador do processador quiser passar um numero direto para o processador poderd usar apenas do 0 ao 4095. Pronto, projetamos assim a nossa instrucdo de 32 bits com: 8 bits para identificacao da instrucao. 6 bits para controle do processador. 18 bits para informagdes sobre os operandos. No tipo R sdo trés enderecos de 6 bits para os registradores. No tipo 1 é um conjunto de 6 bits para um endereco e 12 bits para um numero imediato. Entenderam as formas de funcionamento de um computador? Forename ots 39 Pipeline de instrucées Sua missdo A sua terceira tarefa é identificar as etapas de execucao da instrucao. Visualizando 0 caminho de dados de um determinado processador com barramentos de 8 bits, ou seja, a quantidade de dados que flui é de 8 bits, 6 possivel nao sé identificar as etapas do processador, como também propor modificagées e verificar possiveis otimizagdes. Vocé, como pertence ao grupo de projetistas de hardware da X recebeu uma nova tarefa. A equipe de engenheiros recebeu a imagem do caminho de dados de um processador que sera fabricado pela empresa concorrente Y apresentado na Figura: Fonte: Shutterstock Sua missdo Arquitetura do processador da empresa X: ata Fonte: Santos 2020, p51), Sua missdo Para que a sua empresa nao seja prejudicada, sua tarefa é identificar neste diagrama as etapas de execucdo da instrucdo e se este processador tem potencial para otimizacées. Com o conhecimento adquirido sera possivel realizar a tarefa e proporcionar uma andlise detalhada do caminho de dados do processador da empresa Y. Vocé esta preparado para aprender como fazer isso? Fonte: Shutterstock Pipeline A segmentagio de instrugdes (em inglés, pipeline) 6 uma técnica de hardware que permite que a CPU realize a busca de uma ou mais instrugées além da préxima a ser executada. Suponha que vocé tem que arrumar a sua roupa suja, para isso vocé necessita: (a) Lavar, (b) Secar, (c) Passar e (d) dobrar cada peca de roupa Pipeline -Pior forma OS 0m 01 100 115 1 ME 20 21 2 245 300 21 Bm BMS m0 ‘cen a : ace fen ‘ ise Carga de roupa Pipeline Para incrementar a eficiéncia de nosso processo _podemos realizar o seguinte proceso: primeiro lavamos a | pega; tiramos a | peca e colocamos no secador e simultaneamente lavamos a II peca; tiramos para passar a | peca, colocamos para secar a Il e adicionamos uma Ill na lavadora; finalmente dobramos a |, passamos a Ul, secamos a mM e lavamos a IV; repetiremos esse processo sobre todas as pecas e vemos que temos um sistema trabalhando em paralelo. Faz 0 paralelismo de instrugdes, aumentando a eficiéncia na execugo das instrugdes. O pipeline nao reduz o tempo de uma instrugio, mas agiliza o desempenho de um conjunto de tarefas. Pipeline Carga de roupa yn 4 Pipeline * Adivisdo das etapas de execucao da instrugao permite que as 4reas que ja foram utilizadas possam executar a préxima instrug&o e este conceito é o que chamamos de pipeline. + Quanto maior o numero de estagios no pipeline, maior o ntimero de instrugées que podem ser executadas. Pipeline (no exemplo de 4 estagios): + Para ele funcionar as instrugdes deviam ser do mesmo tamanho o que impossibilitou os processadores CISC aderir a essa estratégia a solucdo foi colocar um decodificador de instruges que tomava as complexas instrugdes e transformava para um conjunto resumido de instrucées: Intruction Fetch, Instruction Decode, Execute, Memory access, register Write Back. Pipeline 8 e Ganho de Desempenho com Pipeline imate ] Se it = — Tempo Fonte: sites.google.com Pipeline * O conceito de paralelismo atualmente é muito difundido, principalmente, pelo aumento de nuicleos dos processadores. + Esses nucleos sao utilizados em paralelo para a execugao de diversas tarefas do computador. * Porém, a tecnologia de se colocar varios nicleos em um processador foi desenvolvida apés terem se esgotado as possibilidades de otimizacSo em apenas um nticleo. + Esta otimizacio ocorreu por muito tempo considerando o aumento no clock do processador e no numero de instrugées que se conseguia executar em um mesmo ciclo de clock. * As limitagdes encontradas no desenvolvimento foram fisicas. Instrugdo regular Caminho de dados para a instrucao do tipo regular oe eN regnvadores| 1 prograal programa Uridedace [H cece esocamento Instrucdo regular Caminho de dados com representagao da divisdo Treo comer } Le poge Temaserae ||| wemora ce || | rere: enyaanrc ‘ree Ll) > “iscncoe we ry Laas sec eee Trecage Rela Fonte: Santos (2020, 85] Pipeline © bloco 1 representa a fase de busca, identificavel pela presenca do contador de programa (PC), o bloco 2 seria a decodificago pois além de receber informacées do bloco 1 esta antes da unidade légica aritmética (em inglés, ALU — arithmetic logic unit), o bloco 3 por conter a ALU € 0 bloco de execucio e, por fim, 0 bloco 4 é o responsdvel pela configuracao da gravacao em meméria. Sendo assim, o processador proposto possui as 4 etapas implementadas podendo conter, portanto, os 4 estagios basicos de pipeline. O diferencial principal deste processador é que todos 0s barramentos sao de 8 bits indicando que este é 0 tamanho da palavra do processador, Com isso temos a anilise esperada da arquitetura do processador da empresa Y. Introducao a Linguagem Assembly 55. Sua missdo Agora, vocé, como parte da equipe de desenvolvimento da X, teve uma nova atribuigao. Considerando os problemas solucionados das. arquiteturas anteriores, agora vocé foi designado para a fungao de elaboragao dos mneménicos da linguagem de montagem do processador que esté sendo desenvolvido pela empresa. Nesta etapa vocé sera apresentado ao diagrama do ron processador e aos tipos de instru¢3o que ele ird suportar. Baseando-se nessas informacées, e considerando as otimizagées jd discutidas em secées anteriores, vocé deverd criar as instrugées a serem utilizadas para o desenvolvimento dos programas em linguagem de montagem e, futuramente, dos compiladores de linguagem de alto nivel para a arquitetura do a Shuterstock Sua missdo processador da X, mostrado na Figura. O processador possui apenas instrugées do tipo R e do tipo de desvio incondicional (j). Dessa forma, ndo sera possivel ter jinstrugées imediatas. © diagrama do processador apresentado 6 mostrado a seguir: Sua missdo Considerando que o hardware estd pronto, crie uma tabela com possiveis instrugdes — os ajustes a serem feitos na arquitetura serdo realizados pelos outros idealizadores do projeto. Lembre-se de que buscamos uma arquitetura otimizada. Lembre-se de verificar qual seria 0 conjunto minimo de instrugdes necessarias para a construgdo de programas, pois, caso falte alguma instrucio em seu conjunto, pode ser que nao seja possivel escrever programas corretamente utilizando sua linguagem de montagem. Preparado para mais este desafio? Contextualizando v Um software pode ser compilado, interpretado e traduzido ou pode utilizar uma técnica hibrida para que as instrugdes sejam executadas. v Nesse processo, 0 cédigo escrito em uma linguagem de programago de alto nivel, como Java, C++, C#, sera convertido em um cédigo intermedidrio e, no caso dos programas compilados, convertido novamente para gerar os comandos que o processador é capaz de executar. ¥ Esse codigo intermedidrio é chamado de linguagem de montagem ou assembly. Y Essa linguagem foi criada com objetivo de facilitar o trabalho para os programadores, que anteriormente deveriam saber os codigos bindrios de cada instrug3o para poder programar. Font: Swrtrsock 61 Compiladores O compilador é um programa que possui como entrada um arquivo de determinada linguagem de programacio e retorna um programa executdvel de uma determinada linguagem, para uma determinada arquitetura. Existem dois grandes grupos de operagées que sao executadas: as operacées de anélise, que englobam operacdes especificas do compilador, e as operagées de sintese, que so voltadas para a geracdo do cédigo em si em uma arquitetura- alvo e englobam a gerac3o de um cédigo intermedidrio, a otimizagao desse cédigo e a geracdo de um eédigo-objeto, que sera executado pelo processador. Programacdo em linguagem de maquina O conjunto de instrugées de um processador é a base para a construcdo de sua arquitetura, como visto anteriormente. Nao é€ possivel adicionar uma instrugaéo ao conjunto de instrugdes sem que exista o caminho de dados necessdrio para sua execucao. Caso seja uma instruc&o basica necessaria para o correto ™ — funcionamento dos programas, é necessdrio modificar o hardware. A vantagem de se definir tipos de instruc3o, como fizemos anteriormente, é que qualquer instrugdo que utilize um hardware existente e possa ser expressa em um dos formatos basicos pode ser adicionada ao conjunto sem problemas. Programacdo em linguagem de maquina Para acessar um registrador, utilizamos, em uma instrugdo, o cifraio $ seguido do nome do registrador. No caso de um valor armazenado na memoria, é necessario carregé-lo para um registrador, utilizando a instrugdio Iw. O resultado de uma operacao, que deve ser gravado na memoria, tem que inicialmente ser salvo em um registrador e, em seguida, carregado para a memoria com a instrugdo sw. Agora, vamos explicar os tipos de instrugées, iniciando com as instrugdes do tipo R, que possuem o formato: nome da instrugado, registrador de destino, registrador de origem 1, registrador de origem 2. Programacao em linguagem de maquina Os campos de deslocamento (shamt) e de fungSo, séo preenchidos automaticamente quando o cddigo binario é gerado a partir da linguagem de maquina. Exemplos 7 e885 6,02 Same cane der con eames ened | + Fm dais Op Rp ws amps wea) oe te ‘wore 49 cyst 1 ora. 82 ala x opera "onc ee oss capi en tmurnabsentterseciecrcrestaicemt | combate E) ade. $ed | Hekenncpunciode "lage atcorhtsama | Monge an Taras ecole rab em Sutin panne ‘ asa. 82 Schatindiniieerpenciece | i tetalineblgey ‘aman em neocontrg amen, | Rabe ‘aS a ‘Amaze em sis quest amareads Gtasn a oaaeeas Assembly Vocé, como parte da equipe de desenvolvimento da X, teve uma nova atribuicdo: foi designado para a fun¢3o de elaborac3o dos mneménicos da linguagem de montagem do processador que esté sendo desenvolvido pela empresa. Nessa etapa vocé sera apresentado ao diagrama do processador e aos tipos de instrugdo que ele ird suportar. Baseando-se nessas informagées e considerando as otimizacées ja discutidas em segdes anteriores, vocé deverd criar as instrugées que serdo utilizadas para o desenvolvimento dos programas em linguagem de montagem e, futuramente, dos compiladores de linguagem de alto nivel para a arquitetura do processador da X. Este problema envolve basicamente todo o conteudo visto até o momento em arquitetura de computadores. 66 67 Vamos aos dados: 0 processador possui apenas instrugdes do tipo R e do tipo de desvio incondicional (j). Dessa forma, nao seré possivel ter instrugdes imediatas. O diagrama do processador apresentado ¢ este: Diagrama para o desenvolvimento da linguagem: 68 Inicialmente esta situacdo-problema pode parecer complexa, porém desenvolver o formato e os mneménicos da linguagem néo é o problema. Considerando que o hardware esta pronto, € possivel criar uma tabela com possiveis instrugdes e com os ajustes a serem feitos na arquitetura, que serdo realizados pelos outros idealizadores do projeto. Lembre-se de que buscamos uma arquitetura otimizada. z eS i echo eco maior | See tee eas ‘pera a posicio de memoria de programa > msn ‘ contdor de programs ed tt ‘went eadteS amt ont Vasta e diferente a programacao de maquina, certo? Forename ots Recapitulando v Sistemas numéricos; ¥ Introdugdo a instrugdes de maquinas; v Pipeline de Instrugdes; v Introdugao a linguagem Assembly.

Você também pode gostar