Baixe o app para aproveitar ainda mais
Prévia do material em texto
1. No desenvolvimento de sistemas digitais, podemos utilizar abordagens top-down e botton-up. Na top-down, o processo de desenvolvimento se faz de cima para baixo, especificando o elemento mais global e realizando subdivisões sucessivas, até obter um nível desejável de funcionalidade e de complexidade. Na metodologia botton-up, realiza-se a interligação de componentes previamente criados. Tais componentes - que criados criados na top-down e utilizados na botton-up - são denominados IP Core ( Intellectual Property Core - em português, núcleo de propriedade intelectual). Para esta questão, suponha os seguintes elementos: I - codificação em HDL; II - biblioteca de componentes; III - diagrama esquemático que representa a interligação de componentes digitais; IV - produto final ( chip ou solução baseada em FPGA). Agora, selecione a opção que contém as sequências de elementos nas abordagens top- down e botton-up, respectivamente. • III → IV e II → IV. • I → IV → III e II → IV. • I → III → IV e III → IV. ✓ I → III → IV e II → IV. • II → IV e I → III → IV. Resposta correta: a abordagem top-down começa no nível mais alto de abstração – no caso, representado pela codificação HDL – e com o mapeamento de componentes eletrônicos até chegar ao produto final. Por sua vez, na botton-up, os elementos para gerar o produto final são coletados a partir da biblioteca de componentes. Na prática, a fase III (diagrama esquemático) pode não estar claramente representada. A partir de ambientes integrados de implementação e de síntese, geram-se as informações a serem descarregadas para o FPGA diretamente, a partir da codificação HDL. Os componentes da biblioteca são, também, gerados diretamente, a partir da codificação HDL. 2. As duas filosofias reinantes, atualmente, no mercado dos computadores são a CISC (Complex Instruction Set Computer - em português, computador com conjunto de instruções complexas) e a RISC (Reduced Instruction Set Computer - em português, computador com conjunto de instruções reduzidas). Alguns processadores adotam, ainda, uma filosofia híbrida - ou seja, uma fusão entre CISC e RISC. As máquinas RISC têm, como grande vantagem, um melhor aproveitamento de seu pipeline, devido à simplicidade de suas instruções e à baixa quantidade de modos de endereçamento. Nesta questão, associe as características à filosofia CISC (marcando o item com “C”) ou à filosofia RISC (marcando-o com “R”). (_) Vários conjuntos de registradores. (_) Instruções de múltiplos ciclos. (_) Possibilidade de acesso à memória por meio de várias instruções. (_) Acesso à memória apenas pelas instruções load e store. (_) Instrução dividida em micro-operações. (_) Máquina de três operandos. Assinale a alternativa que você julgue ser a correta: • R; C; R; C; C; R. • C; R; C; R; C; R. • C; R; R; C; R; C. • R; C; C; R; R; C. ✓ R; C; C; R; C; R. Resposta correta: os processadores RISC otimizam a manipulação dos registradores, devido ao fato de conterem instruções de três operandos (maior reaproveitamento de informações); e ao fato de mapear os registradores em conjuntos, o que possibilita o mecanismo de janela de registradores. O datapath menos complexo do RISC se deve aos poucos formatos de instruções e de formas de endereçamento – inclusive, as únicas instruções que fazem acesso à memória são load e store. Quanto aos processadores CISC, suas instruções consomem vários ciclos de instruções, pois são divididas em micro-operações, frente ao único ciclo dos RISC). 3. Para a utilização do barramento e de alguns dispositivos de I/O ( Input/ Output - em português, entrada/saída); e, também, de serviços baseados em conexão das redes de comunicação de dados, adota-se um mecanismo denominado handshake. Com o handshake, garante-se que ou o dispositivo ou o canal poderá ser utilizado por aquele que conseguiu fechar a conexão. Para esta questão, sequencie as etapas listadas a seguir, do ponto de vista do solicitante da conexão, de acordo com a ordem em que ocorrem. (_) Envio de um sinal de requisição de uso (REQ). (_) Envio de um sinal ACK. (_) Espera de um sinal de concessão de uso (ACK). (_) Envio das informações. Selecione a alternativa que contém a sequência correta. • 1; 4; 3; 2. • 4; 2; 1; 3. • 3; 1; 2; 4. • 1; 3; 4; 2. ✓ 1; 3; 2; 4. Resposta correta: no handhake, antes do estabelecimento da conexão, há a necessidade de verificar se o canal se encontra disponível para o uso. Para que isso aconteça, existe a negociação de utilização representada pelo envio da requisição de uso; pelo recebimento da confirmação da disponibilidade; e pelo envio do encerramento das tratativas de conexão, para que, somente depois, possa ser iniciado o envio das informações. 4. O ARM é um processador derivado do padrão RISC. Sendo assim, apresenta, como uma de suas características básicas, a pequena quantidade de formatos de instruções. Em relação a esses formatos, podemos mencionar que o ARM manipula três níveis de instruções: ARM, thumb e thumb-2. Especificamente no nível ARM, podemos encontrar sete formatos. Para esta questão, analise os sete formatos e marque as afirmativas a seguir com “V” (verdadeiras) ou com “F” (falsas): (_) o ARM manipula cinco classes de instruções e três modos de endereçamento; (_) o ARM é um processador de dois operandos; (_) instruções do tipo load-store têm um opcode formado por 4 bits. (_) O ARM é capaz de distinguir entre a manipulação de uma palavra e a de um byte. Agora, selecione a alternativa correta. • F; V; F; V. ✓ V; F; F; V. • V; F; F; F. • F; F; F; V. • V; F; V; V. Resposta correta: de imediato, pode-se descartar a alternativa de dois operandos: como o ARM é derivado do RISC, manipula três operandos. Por meio dos formatos, podemos notar a presença de cinco classes de instruções (de “000” a “101”). Tais bits serão manipulados, pela unidade de controle, para gerar os sinais de ativação dos submódulos internos. As instruções load e store (classes 2 e 3) não necessitam de opcode, visto que são diferenciadas pelo valor de “L” ( bit 20). Ainda nas classes 2 e 3, podemos observar a presença do campo “B” ( bit 22) para diferenciar a forma de manipulação (palavra ou byte). 5. Nos sistemas de memória, a organização dos blocos armazenados é denominada mapeamento. Sendo mais específico em relação à cache, o mapeamento envolve as políticas e os mecanismos que possam direcionar o bloco dentro da cache; e, consequentemente, como localizá-lo em futuras demandas. Ainda quanto à cache, existem três tipos de mapeamento: memória associativa, mapeamento direto e conjunto associativo. No mapeamento direto e no conjunto associativo, cada bloco tem, exatamente, uma única posição (linha) para ser armazenado. Para esta questão, suponha uma memória composta por oito linhas que receberá os seguintes blocos: 33, 28, 47 e 10. Agora, selecione a alternativa que contém a sequência correta dos números das linhas que receberão os blocos. • 2; 5; 7; 3. • 2; 4; 6; 1. • 1; 2; 3; 4. ✓ 1; 4; 7; 2. • 4; 1; 7; 2. Resposta correta: você observou que o número da linha corresponde ao resto da divisão do número do bloco pelo número da linha. O número da linha poderá ser gerado, também, com a coleta dos três últimos bits do número do bloco. O valor 3 é obtido em função da quantidade de linhas – no caso, oito linhas. Dessa forma, tem-se log 2(8) = 3. 6. A manipulação da memória cache envolve algumas políticas em relação ao seu mapeamento e à substituição de seus blocos. Estas políticas impactam, diretamente, a sua estruturação. Podemos distinguir o mapeamento em três tipos: memória associativa, mapeamento direto e conjunto associativo. Por sua vez, as políticas de substituição de blocos são divididas em LRU, em LFU e em FIFO. Ainda quanto à substituição dos blocos, podemos destacar as políticas de escrita,de write- back e de write-through. Para esta questão, analise o texto a seguir e complete as lacunas apropriadamente. A estruturação de uma memória cache pode ser dividida nos seguintes campos: ____ (que contém a identificação do bloco) e o próprio conteúdo do bloco. Além desses dois campos básicos, podemos encontrar um campo que informa a última utilização do bloco, quando a política de escrita for do tipo ____; um campo que informa a quantidade de acessos ao bloco, quando for usado o ____ ; e um campo que indica se o bloco foi modificado, quando a política de escrita for do tipo ____. Assinale a alternativa que contém a ordem correta de preenchimento. • Tag; FIFO; LFU; write-back. • Content; LRU; LFU; write-back. ✓ Tag; LRU; LFU; write-back. • Tag; LFU; LRU; write-back. • Tag; LRU; LFU; write-through. Resposta correta: realmente, o campo relativo à identificação do bloco é denominado tag. Os blocos adicionais estão vinculados às demais políticas da cache. Por exemplo, no caso da LRU (least recently used – em português, menos recentemente usada), devemos armazenar o momento da última utilização do bloco. Por outro lado, na LFU (least frequently used – em português, menos frequentemente usado), deve-se armazenar a frequência da utilização do bloco. Por fim, quando se usa a política de escrita do tipo write-back, devemos armazenar um bit, indicando se o bloco foi ou não modificado, para que, no processo de substituição desse bloco, possa haver a atualização da memória de nível abaixo de forma apropriada. 7. Pipeline e superescalaridade são exemplos de técnicas baseadas no processamento paralelo para buscar aumento de performance computacional. A ideia básica do pipeline consiste em tentar antecipar o início de execução de uma nova instrução antes da finalização do ciclo de instrução anterior. Por outro lado, na superescalaridade, ocorre a replicação de unidades funcionais, de modo que se tenha a possibilidade de duas ou mais instruções serem executadas simultaneamente. Sabe-se, também, que o ciclo de instrução consiste nas seguintes etapas, que são realizadas por módulos dedicados: (a) busca da instrução; (b) decodificação da instrução; (c) busca dos operandos; (d) execução; e (e) escrita dos resultados. Considere cada módulo especificado a seguir e assinale, com “P”, os que se relacionam ao pipeline; com “S”, os que se integram à superescalaridade; e, com “A”, os que participam tanto da abordagem com pipeline quanto da abordagem superescalar: (_) módulo de busca da instrução; (_) módulo de decodificação da instrução; (_) módulo de busca dos operandos; (_) módulo de execução; (_) módulo de escrita do resultado. Agora, assinale a alternativa que contém a sequência que você julgue ser a correta. • P; P; P; S; P. • P; P; S; S; P. ✓ P; P; P; A; P. • P; P; P; P; P. • P; P; P; A; A. A resposta está correta. O pipeline pode ser aplicado a todas as etapas do ciclo de instrução. Por sua vez, a etapa de execução pode ser englobada pela superescalaridade, para que possa executar as instruções encaminhadas após terem sido decodificadas. 8. Processadores DSP ( Digital Signal Processors - em português, processadores de sinais digitais) são construídos para aplicações que necessitem realizar o processamento de sinais digitais - controle industrial, instrumentação biomédica, controles aviônicos e processamento de áudio e de vídeo. Sendo assim, a sua estrutura é otimizada para tal finalidade. Dentre as otimizações existentes, podemos destacar a presença de dois datapaths para processamento paralelo. Para esta questão, classifique, com “V”, a(s) afirmativa(s) que você julgar verdadeira(s) e, com “F”, a(s) que considerar falsa(s): (_) O DSP trabalha com o chamado fetch packet - um agrupamento de oito instruções passíveis de serem paralelizadas. (_) A memória cache do DSP segue, assim como os processadores RISC, a arquitetura de Harvard. (_) Cada datapath apresenta o seu próprio banco de registradores para aumentar a eficiência do pipeline. (_) O pipeline é inerente apenas às fases busca das instruções ( program fetch), despacho das instruções ( instruction dispatch) e decodificação da instrução ( instruction decode). Agora, selecione a alternativa que contém a sequência correta. • V; F; V; F. • F; F; V; F. • V; V; F; F. • F; V; F; F. ✓ V; V; V; F. Resposta correta: o DSP segue uma filosofia VLIW ( Very Long Instruction Word – em português, palavra de instrução muito longa), em que um grupo de instruções é coletado, para que as instruções sejam paralelizáveis em seus dois datapaths (cada datapath contém quatro unidades funcionais de processamento). Além disso, cada datapth apresenta o seu próprio conjunto de registradores (cujos dados podem ser intercambiados) para que a execução seja realizada com pipeline em todas as etapas do ciclo de instrução. 9. No mapeamento direto e no conjunto associativo, cada bloco pode ser endereçado a somente uma linha. O número da linha é gerado por meio dos N bits menos significativos da identificação do bloco, em que N é dado pela expressão N=log (2)K (com K igual ao número de linhas da cache). Para esta questão, suponha uma memória composta por oito linhas em que deverão ser armazenados os seguintes blocos: 33, 28, 47 e 10. Suponha, ainda, que o endereçamento do bloco é realizado com uma palavra de 8 bits. Selecione a alternativa que contém a sequência correta das tags a serem armazenadas. • 00101010; 00111001; 01101100; 10001010. ✓ 00100; 00011; 00101; 00001. • 00100001; 00011100; 00101111; 00001010. • 00101; 00111; 01101; 10001. • 00001; 00101; 00011; 00100. Resposta correta: você se lembrou de que, no mapeamento direto e no conjunto associativo, podem ser desprezados, na geração das tags, os N bits menos significativos. Dessa forma, no caso desta questão, as tags são formadas apenas por 5 bits. 10. A arquitetura do conjunto de instruções (ISA - Instruction Set Architecture) é específica para cada família de processadores. O ISA define o elenco das instruções exportadas pelo processador e os seus formatos correspondentes. O formato de uma instrução define, dentre outras coisas, como as informações a serem processadas serão coletadas. Em relação ao ISA, o que pode podemos afirmar? Atribua V (verdadeiro) ou F (falso) a cada afirmativa e, em seguida, marque a alternativa com a sequência que julgar correta. (_) Pode-se ser estabelecido um tamanho variável para o opcode. Por exemplo, as instruções que apresentarem uma maior possibilidade de utilização poderão ter opcodes com tamanhos menores. (_) Os processadores RISC (Reduced Instruction Set Computer) são máquinas de dois operandos, pois são máquinas com código reduzido. (_) Podemos mapear as instruções segundo grupos funcionais por meio de valores de bits específicos de seu opcode. Os demais bits representariam a própria instrução dentro da referida classe. Isso facilitaria a implementação da unidade de controle. (_) Datapath é uma representação gráfica da interconexão dos módulos do processador e dos caminhos (e dos respectivos pontos de roteamento) em que as informações poderão trafegar. Porém, não engloba a representação das fases de execução das instruções. Tais fases são pertinentes apenas ao controle do pipeline. • F; V; F; V. ✓ V; F; V; F. • V; F; F; V. • V; V; V; F. • V; F; V; V. Resposta correta: de fato, o opcode pode ser de tamanho variável para ot imizar o tamanho do código gerado. Porém, essa estratégia tem, como principal desvantagem, a complexidade do circuito de decodificação. Na construção do ISA, podemos mapear grupos de instruções por meio dos bits mais significativos, objetivando a implementação de um decodificador mais simples. Quanto ao datapath, as fases de execução da instrução ficam evidentes ao analisarmos as interfaces dos módulos e o fluxo das informações no circuito.
Compartilhar