Buscar

ARQUITETURA DE COMPUTADORES E MICROPROCESSADORES -unidade 4

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

- -1
ARQUITETURA DE COMPUTADORES E 
MICROPROCESSADORES
UNIDADE 4 - O QUE TEMOS NA 
ATUALIDADE?
Autoria: Fernando Cortez Sica – Revisão técnica: Jackson Luis Schirigatti
- -2
Introdução
Prezado aluno, seja bem-vindo novamente! Iniciaremos a nossa
conversa pelos processadores RISC. Processadores RISC são
processadores com poucas instruções ou com instruções
pequenas? Na verdade, a filosofia RISC consiste em instruções
pequenas (baixa complexidade). Falaremos sobre isso e sobre
outras características desse tipo de processadores. Como as
instruções são simples, os dos processadores são,datapaths
também, mais simples? Sim, os RISC tendem a serdatapaths
mais simples, não somente devido à pouca complexidade das instruções, mas, ainda, por outros motivos, como a
quantidade reduzida de modos de endereçamento.
Depois, conversaremos sobre a taxonomia de Flynn. O que vem a ser uma taxonomia? Taxonomia faz referência
a uma classificação. No caso da de Flynn, essa classificação se baseia nos fluxos de dados e de instruções. Para
facilitar a nossa abstração de arquitetura de computadores e de microprocessadores, conversaremos, em
seguida, sobre alguns exemplos de famílias de processadores. Serão abordados os da Intel/AMD? Como existe
muito material sobre as famílias x86 e x64, falaremos sobre o ARM ( – em português,Advanced RISC Machine
máquina RISC avançada) e sobre um DSP ( – em português, processadores de sinaisDigital Signal Processors
digitais), em função de suas importâncias no nosso cotidiano.
Por fim, falaremos um pouco sobre o desenvolvimento de processadores, citando alguns ambientes para o
desenvolvimento de sistemas digitais a partir de linguagens de descrição de hardware.
Bons estudos!
4.1 Processadores RISC
Podemos classificar os processadores em níveis de abstrações denominados arquitetura e organização. Em
relação à arquitetura, podemos destacar a ISA ( – em português, arquitetura doInstruction Set Architecture
conjunto de instruções) como um dos fatores intimamente relacionados ao projeto do nó de processamento. A
partir da ISA, podemos, ainda, classificar os processadores como CISC ( – emComplex Instruction Set Computer
português, computador com conjunto de instruções complexas) e RISC ( – emReduced Instruction Set Computer
português, computador com conjunto de instruções reduzidas).
Caso
Uma das preocupações existentes ao se adquirir e ao se instalar um parque computacional consiste na
análise de eficiência, comparando sistemas computacionais de vários fabricantes e sistemas
computacionais baseados em filosofias distintas de construção.
Junto com esse pensamento, vem a questão de compararmos processadores CISC e RISC. Os
fabricantes de processadores também têm a mesma dúvida: qual é a melhor filosofia para atender a
uma vasta gama de aplicações e de serviços? Nesse sentido, um grande número de processadores que
encontramos no mercado segue uma filosofia híbrida. Isso significa que, no mesmo processador,
encontraremos uma parte RISC e uma parte CISC, como é o caso da linha x64.
A ideia de um RISC puro voltou a ser assunto atualmente, quando a Apple anunciou a adoção do
- -3
Mas quais são as diferenças básicas entre as máquinas CISC e RISC? Segundo Stallings (2017), podemos
relacionar os seguintes pontos.
Maior quantidade de registradores
O banco de registradores tende a ser maior em relação às máquinas RISC, para permitir uma maior possibilidade
de reaproveitamento de valores recém-armazenados. Permite-se, também, que os registradores sejam
renomeados no caso de haver conflitos de dados na manipulação pelo pipeline.
Conjunto de instruções simples
A menor complexidade das instruções (sem a presença das micro-operações, como acontece nos CISCs) permite a
construção de circuitos menos complexos. Do conjunto de instruções, podemos citar a presença de poucos modos
de endereçamento, permitindo um circuito de decodificador (unidade de controle) também mais simples.
Pipeline otimizado
Com a simplicidade dos modos de endereçamento e das instruções, o pipeline pode agregar técnicas mais
agressivas de otimização para ganho de performance computacional.
Mas, então, quais são as características mais marcantes de um processador RISC? Conversaremos um pouco
sobre isso a seguir.
4.1.1 Características básicas do conjunto de instruções RISC
Como você deve estar imaginando, a filosofia RISC é baseada na otimização de seu conjunto de instruções. Sua
otimização consiste em, além de reduzir a complexidade das instruções, reduzir, também, as complexidades
relativas às suas execuções e ao modo de busca de operandos. Sendo assim, podemos citar quatro características
importantes relacionadas aos processadores RISC (STALLINGS, 2017).
• Ciclo de máquina
Devido à sua baixa complexidade, uma instrução, para ser executada, gasta um ciclo de máquina. Mas o
que vem a ser ciclo de máquina? É um pulso de ? O ciclo de máquina diz respeito às próprias fasesclock
de execução de uma instrução – acesso aos registradores e a respectiva busca dos operandos; execução e
escrita do resultado no banco de registradores.
• Instruções do tipo registrador-registrador
Todas as instruções de processamento efetivo são do tipo registrador-registrador. Dessa forma, a
memória não é acessada durante a execução das instruções – exceto aquelas responsáveis pelas
transferências de dados entre os registradores e o sistema de memória.
• Poucos modos de endereçamento
Os processadores RISC têm poucos modos de endereçamento – por exemplo, não há do modo de
A ideia de um RISC puro voltou a ser assunto atualmente, quando a Apple anunciou a adoção do
processador ARM em seus próximos lançamentos. Mas, enfim, qual é a melhor opção de processador?
Para que possamos responder a isso, temos que avaliar as particularidades das aplicações; realizar
testes de eficiência; e refletir bastante sobre o assunto antes de montarmos o nosso parque
computacional.
•
•
•
- -4
• Poucos modos de endereçamento
Os processadores RISC têm poucos modos de endereçamento – por exemplo, não há do modo de
endereçamento indireto.
• Mapeamento de instruções
As duas características anteriores (instruções do tipo registrador-registrador e poucos modos de
endereçamento) têm, como consequência, o mapeamento das instruções por meio de formatos simples.
Essa consequência proporciona um hardware mais enxuto, tornando as etapas de decodificação e de
busca dos operandos mais eficientes.
Além das características das instruções e do , outro ponto que merece destaque nos processadores RISCpipeline
é o seu banco de registradores, como veremos a seguir.
4.1.2 Janelas de registradores
Uma das estratégias dos processadores RISC é permitir uma manipulação eficiente de seu banco de
registradores. Tal manipulação permite um alto grau de reaproveitamento de informações armazenadas, de
modo a diminuir a quantidade de acessos ao sistema de memória. Para tanto, podemos utilizar duas abordagens
de otimização quanto à utilização dos registradores: uma baseada em software; e outra baseada em hardware.
Na abordagem por software, a otimização é obtida por meio do compilador. Para tanto, é realizada uma análise
do código do programa para avaliar a utilização dos dados, de modo que se possa melhor utilizar o conjunto dos
registradores GPR. Além disso, ocorre uma análise de dependências de código, para, também, aproveitar os
recursos do nó de processamento. Conversaremos sobre isso mais adiante.
Por sua vez, na abordagem via hardware, os registradores são manipulados segundo o mecanismo de janelas de
registradores. Para uma melhor abstração do funcionamento das janelas de registradores, suporemos o
processamento de um programa com variáveis globais e locais. Suporemos, ainda, a presença de quatro funções
– “A”, “B”, “C” e “D” –, que são evocadas, sequencialmente, de forma aninhada. A figura “Utilização de janela de
registradores em 4 funções aninhadas” ilustra o emprego de janelas de registradores nesse cenário.
•
•
- -5
Figura 1 - Utilização de janelade registradores em quatro funções aninhadas
Fonte: STALLINGS, 2017, p. 402.
#PraCegoVer: na figura, temos a presença de um anel subdivido em setores, representando as janelas de
registradores. No sentido horário, temos as indicações “salvar” e “chamada”; e, no sentido anti-horário, as
indicações “restaurar” e “retorno”. Temos, ainda, o agrupamento de células do anel no sentido horário: “w0”
(envolvendo “A.param”, “A.loc” e “A.temp = B.param”); “w1” (envolvendo “B.param”, “B.loc” e “B.temp = C.
param”); “w2” (envolvendo “C.param”, “C.loc” e “C.temp = D.param”); “w3” (envolvendo “C.param”, “D.loc” e um
espaço hachurado – na interface do espaço hachurado em que há “D.loc”, existe a indicação de “ponteiro da
janela atual”); “w4” (envolvendo o espaço hachurado e dois espaços em branco; por fim, “w5” (envolvendo dois
espaços em branco e “A.param” – a interface entre o segundo espaço em branco, e “A.param” é indicado como
“ponteiro da janela salva”).
Na figura “Utilização de janela de registradores em quatro funções aninhadas”, cada janela de registradores
(indicada pela letra “w”) é alocada em uma função do programa sob demanda. Sendo assim, os ponteiros das
janelas se deslocam à medida que o programa for executado e, consequentemente, à medida que as funções são
evocadas. Podemos perceber, na figura, que os parâmetros passados de uma função para outra fazem parte das
intersecções entre as janelas.
Quando ocorre o encerramento de uma função, o ponteiro da janela ativa volta a se direcionar à janela
antecessora. Dessa maneira, os dados das funções não ativas são preservados, pois apenas um subconjunto do
banco de registradores é manipulado em certo momento, deixando os demais subconjuntos intactos. Assim, as
- -6
banco de registradores é manipulado em certo momento, deixando os demais subconjuntos intactos. Assim, as
demais informações manipuladas pelas outras funções serão preservadas. Com essa metodologia, conseguimos
atenuar a quantidade de acessos ao sistema de memória.
Em função de o número de registradores ser limitado, as janelas de registradores atuam de forma circular (como
em um circular). Nesse caso, pode haver a sobreposição de utilização das janelas, sobrescrevendo asbuffer
janelas mais antigas. Quando isso acontece, o sistema tem que recorrer aos acessos ao sistema de memória,
iniciando a requisição à memória cache.
As janelas de registradores podem ter registradores ociosos quando a quantidade de itens manipulados estiver
aquém do número de registradores mapeados na janela. Porém, esse é um preço que se paga quando o objetivo
for o aumento da performance computacional.
Teste seus conhecimentos
(Atividade não pontuada)
Mencionamos que o está intimamente ligado aos formatos das instruções e aos modos dedatapath
endereçamento. Então, conversaremos, a seguir, sobre esses impactos sobre o dos processadores RISC.datapath
4.1.3 Impacto sobre o datapath
Geralmente, o hardware dos processadores RISC tende a ser mais simples em relação aos processadores CISC,
em função, por exemplo, do seu baixo número de modos de endereçamento e da sua pequena quantidade de
formatos de instruções. Isso faz com que as interfaces entre os submódulos do processador e os componentes de
roteamento dos fluxos de informações sejam mais simples.
Tal simplicidade tem consequência direta sobre o do processador; e permite a execução de instruçõesdatapath
de máquina menores com ciclos. Observemos a figura “ de um processador”.Datapath
- -7
Figura 2 - Datapath de um processador MIPS
Fonte: PATTERSON, 2017, p. 17.
#PraCegoVer: na figura, temos o de um processador MIPS com os seguintes módulos: “registrador PC”datapath
(representado por uma caixa de texto); “instrução de memória” (representado por uma caixa de texto);
“adiciona” (representado por uma figura trapezoidal); “controle” (representado por uma caixa de texto); “
” (representado por uma caixa de texto);“extensão de sinal” (representado por uma elipse); “controleregisters
ALU” (representado por uma elipse); “ALU” (representado por uma figura trapezoidal); “Memória de Dado”
(representado por uma caixa de texto); e “Adiciona Resultado” (representado por uma figura trapezoidal). As
interconexões são representadas por linhas direcionadas por setas (todas unidirecionais). A figura apresenta,
ainda, os seguintes fios: de “PC” para “Instrução de Memória” e para “Adiciona”; da “Instrução de Memória” para
“Controle” e para “Extensão de Sinal”; de “ ” para “ALU”, para um MUX e para “Memória de Dado”; deRegisters
“ControleALU” para “ALU”; de “ALU” para “Memória de Dado”, para um MUX e para uma porta “AND”. O MUX
recebe dados de “AdicionaResultadoALU” e de “Adiciona” e gera uma linha em direção ao “PC”. Do “Adiciona”,
deriva-se uma linha para a entrada de “AdicionaResultadoALU”.
Na figura “ de um processador MIPS”, podemos perceber que, por exemplo, a ULA faz, com suasDatapath
entradas, apenas uma interface com o banco de registradores e com os [15:0] da palavra de instrução. Issobits
permite a manipulação de operandos cujos valores são representados pelo conteúdo de registradores ou
constantes. Podemos perceber, também, que o banco de registradores recebe informações ou do resultado da
ULA ou da memória de dados (nas instruções do tipo “ ”). Essa estruturação reflete a simplicidade dosload
formatos manipulados das instruções, dos modos de endereçamento e das instruções de três operandos.
- -8
Em relação ao pipeline, algumas técnicas podem empregadas para que se tenha um aumento no seu poder de
processamento. Dentre essas técnicas, podemos destacar a renomeação de registradores, a superescalaridade e a
previsão de desvios.
4.2 Taxonomia de Flynn
A taxonomia de Flynn tem, por objetivo, classificar os nós de processamento de um modo funcional. Para tanto,
classifica-os de acordo com o fluxo de dados e com os fluxos de instruções.
Porém, antes de conversarmos sobre essa classificação, falaremos um pouco sobre o que vêm a ser os
multiprocessadores e os multicomputadores – classificação dos sistemas de computação dotados de vários nós
de processamento.
4.2.1 Multiprocessadores e multicomputadores
No mundo dos sistemas computacionais, existe uma classificação quanto ao número de nós de processamento e
quanto a como são conectados. Esses são os chamados multiprocessadores (sistemas fortemente acoplados) e
multicomputadores (sistemas fracamente acoplados). A figura a “Classificação de máquinas dotadas de vários
nós de processamento” ilustra a diferença básica entre essas duas configurações.
Vamos Praticar!
Faça uma pesquisa e identifique exemplos de processadores baseados na filosofia
RISC. Veja os pontos que têm em comum em relação, por exemplo, ao formato das
instruções e à estruturação do sistema de memória.
Você o conhece?
Michael Flynn é um cientista da computação e professor da Universidade de Stanford.
Uma de suas maiores contribuições foi criar, em 1966, uma classificação dos nós de
processamento que relaciona os fluxos de instruções e os fluxos de dados. Até hoje,
essa classificação merece destaque no desenvolvimento de softwares e de hardwares.
Uma das áreas impactadas por essa classificação é a computação de alto desempenho
(processamento paralelo). Para ter uma da paralelização de códigos, acesse a
dissertação escrita de Shishido (2010).
Acesse
http://repositorio.uem.br:8080/jspui/bitstream/1/2542/1/000180700.pdf
- -9
Figura 3 - Classificação de máquinas dotadas de vários nós de processamento
Fonte: Elaborada pelo autor, 2020.
#PraCegoVer: na figura, há uma estruturação hierárquica de sistemas com “Várias CPUs”, cujos tipos
referenciados são representados por caixas de textos. Por sua vez, essas caixas se ramificam em dois outros
elementos, localizados no nível abaixo. O elemento ao topo, denominado “Várias CPUs”, subdivide-se em
“Sistemas Fortemente Acoplados” e em “Sistemas Fracamente Acoplados”. Os fortemente acoplados se
subdividem em “SMP” em “NUMA”. Os fracamente acoplados se subdividem em “ ” e em “SistemasClusters
Distribuídos”.Na figura “Classificação de máquinas dotadas de vários nós de processamento”, notamos os sistemas fortemente
acoplados (multiprocessadores), cujos processadores compartilham os mesmos módulos de memória e de
dispositivos de I/O. Por outro lado, os sistemas fracamente acoplados apresentam nós (dotados de CPU, de
memória e de I/O) interconectados por um barramento ou rede de comunicação de dados.
Em relação aos sistemas fracamente acoplados, os nós de processamento são constituídos por memória e por
dispositivos de I/O independentes, que são interconectados, geralmente, por uma rede de dados. Como exemplos
desse tipo de configuração, podemos citar os e os sistemas distribuídos.clusters
Você sabia?
As arquiteturas SMP e NUMA podem apresentar algumas diferenças em suas
topologias. Para conhecer um pouco dos sistemas fortemente acoplados, você poderá
ver os slides elaborados pela Prof. Sarita M. Bruschi, do ICMC/USP.
https://edisciplinas.usp.br/pluginfile.php/3510424/mod_resource/content/2
/20aula%20-%20Arquiteturas%20MIMD%20-%20MC.pdf
https://edisciplinas.usp.br/pluginfile.php/3510424/mod_resource/content/2/20aula%20-%20Arquiteturas%20MIMD%20-%20MC.pdf
https://edisciplinas.usp.br/pluginfile.php/3510424/mod_resource/content/2/20aula%20-%20Arquiteturas%20MIMD%20-%20MC.pdf
- -10
Essa classificação serve como entrada à taxonomia de Flynn, pois, em algumas situações, são referenciados nós
de processamento capazes de realizar operações paralelas. Em tais situações, deveremos ter multicomputadores
ou multiprocessadores.
4.2.2 Classificação de Flynn
De acordo com Monteiro (2007), a taxonomia de Flynn é uma classificação de processamento não escalar. Para a
realização da classificação, são supostas uma sequência de dados a serem manipulados e uma sequência de
instruções a serem executadas.
Flynn categorizou o relacionamento entre instruções e dados em quatro tipos: SISD, MISD, SIMD e MIMD.
SISD
Na categorização SISD ( – em português, instrução única e dadosSingle Instruction, Single Data
únicos), os processadores realizam, em determinado momento, uma única instrução sobre um
único conjunto de dados. Como exemplo, podemos citar os processadores 8086 e o Z-80.
MISD
Na categorização MISD ( – em português, instruções múltiplas eMultiple Instruction, Single Data
dados únicos), os nós de processamento são capazes de processar várias instruções, mas o faz
apenas sobre um único conjunto de informações. Sistemas computacionais voltados para
ambientes nos quais é necessária a tolerância a falhas podem ser enquadrados nesta categoria.
Cada nó de processamento executa um código baseado em um paradigma distinto de programação
sobre o mesmo conjunto de dados. Caso exista, por exemplo, algum de programação, essa falhabug
somente estará presente em um único nó.
SIMD
Nos SIMDs ( – em português, instrução única e dados múltiplos),Single Instruction, Multiple Data
os nós de processamento realizam as mesmas operações sobre conjuntos distintos de dados. Para
exemplificar, suponhamos a necessidade de realizar uma multiplicação de matrizes. Nesse caso,
todos os nós realizarão as mesmas operações, porém sobre linhas e sobre colunas distintas.
MIMD
Os processadores atuais, dotados de vários núcleos superescalares, são exemplos de
processadores MIMD ( – Instrução Múltipla e Dados Múltiplos).Multiple Instruction, Multiple Data
Cada núcleo é capaz de executar códigos distintos sobre conjuntos de dados também distintos.
Você quer ver?
Para saber um pouco mais sobre processamento paralelo, integrando os modelos de
sistemas simétricos, e computação vetorial, assista ao vídeo produzido nocluster
âmbito do curso de Sistemas de Informações da Universidade do Estado de Minas
Gerais.
Acesse
https://www.youtube.com/watch?v=lnpbgS4plMg
- -11
Como mencionamos anteriormente, os processadores atuais exemplificam a categoria MIMD. Para que sejam
capazes de realizar várias operações sobre conjuntos de dados distintos, devem ter, além da replicação dos
núcleos, recursos que lhe proporcionem graus de paralelismo.
Dentre tais recursos que garantem graus de paralelismo aos processadores, podemos mencionar, mais uma vez,
técnicas agressivas de pipeline e superescalaridade.
4.3 Exemplos de famílias de microprocessadores
Muito já conversamos sobre as teorias envolvidas na execução das instruções nos nós de processamento. Agora,
chegou o momento de conversarmos sobre alguns exemplos. Então, prestaremos atenção nas famílias
consideradas mais importantes devido ao seu papel na história dos processadores e/ou devido à sua gama de
aplicações. Sendo assim, conversaremos sobre as famílias ARM e DSP TMS320C67X.
4.3.1 Família ARM
De acordo com Stallings (2017), a arquitetura ARM ( – em português, máquina RISCAdvanced RISC Machine
avançada) representa um dos processadores mais eficientes da filosofia RISC. São empregados, sobretudo, em
sistemas embarcados, devido à sua eficiência e e ao seu baixo consumo. Os processadores ARM apresentam,
como principais características, as seguintes:
• largura da palavra de 32 bits;
• banco de registradores com 16 registradores:
• R0 a R12 são GPR;
• R13 é usado como ponteiro de pilha ( );stack pointer
• R14 é usado para armazenar o endereço de retorno das funções;
• R15 representa o PC;
• utilização da arquitetura load store – ou seja, as instruções de processamento efetivo utilizam os dados 
presentes nos registradores ou constantes, e o acesso à memória é realizado pelas operações do tipo load 
e store;
• máquina de 3 operandos;
• I/O mapeada como memória.
Para o mapeamento das instruções, são utilizados sete formatos, conforme a figura a seguir ilustra.
Vamos Praticar!
Procure, no seu dia a dia, exemplos de aplicações que correspondam aos modelos
SISD, MISD, SIMD e MIMD.
•
•
•
•
•
•
•
•
•
- -12
Figura 4 - Formatos de instruções utilizados pelo ARM
Fonte: STALLINGS, 2017, p. 348.
#PraCegoVer: na figura, temos os sete formatos de instruções manipulados pelo ARM, representados por
vetores de 32 posições – células numeradas de 31 a 0 (da esquerda para a direita). Os vetores estão dispostos
verticalmente, um abaixo do outro. Em todos os formatos, os de 31 a 29 representam o campo “cond”.bits
Na figura “Formatos de instruções utilizados pelo ARM”, podemos notar que as instruções são divididas em cinco
categorias, como denotam os [27:25]. Dentro de cada categoria, temos as instruções propriamente ditas,bits
como indica o campo “ ”. Podemos notar, ainda, que as operações / não apresentam ,opcode load store opcodes
pois suas funcionalidades são determinadas, por exemplo, por meio ou do [20] (nas instruções de / )bit load store
ou do [24] (instrução de desvio). Em tais instruções, caso o [20] equivalha a “1”, isso significará operação “bit bit
”; caso contrário (valor “0”), significará operação “ ”.load store
Ainda, podemos notr que, em todos os formatos, aparece um campo “cond”, localizado nos [31:28]. Essebits
campo indica se a instrução deve ou não ser executada frente aos valores presentes no registrador de .flags
Os processadores ARM vem ganhando o mercado, que está extrapolando as aplicações voltadas para sistemas
embarcados, para smartphones e para . A empresa Apple tem trocado os processadores de seus produtostablets
para processadores ARM (RIGUES, 2020).
4.3.2 Família DSP TMS320C67X
Os DSPs ( – em português, processadores de sinais digitais) são componentesDigital Signal Processors
otimizados para realizar ações inerentes a processamento digitais, como sinais de áudio, de vídeo, de
instrumentação biomédica e industriais. Podem, ainda, ser utilizados em sistemas que exigem a manipulação de
tempo real.
- -13
Atualmente, existem vários fabricantes de DSP, dos quais podemos citar Motorola, Altera, Philips, Yamaha e
Texas. Conversaremos, aqui, sobre a família TMS320C67X, da Texas, em função de sua importância no mercado.
Podemos, inicialmente, mencionar as suas características principais:
• tamanho da palavra de 32 bits;
• forma de operação baseada na filosofia VLIW( – em português, palavra de Very Long Instruction Word
instrução muito longa);
• capacidade de representação numérica de 40 , para ponto fixo, e de 64 , para ponto flutuante bits bits
(utilizando registradores concatenados);
• dois bancos de registradores com 16 registradores de 32 ;bits
• janela de despacho das instruções com até oito instruções por pulso de . As oito instruções formam clock
um (pacote de busca), que, na verdade, representa uma instrução VLIW de 256 ;fetch packet bits
• execução condicional de todas as instruções – a cada instrução, é adicionado um condicionante, para 
verificar se deve ou não ser executada, evitando a inserção de instruções de desvios condicionais ao 
código (semelhante ao campo “ ” das instruções RISC);cond
• suporte ao processamento paralelo – instruções apresentam, em seu formato, um campo indicativo de se 
a operação pode ou não ser realizada de forma paralela (apontando, também, em qual unidade funcional 
deverá ser o processamento);
• memória – há dois níveis, L1 e L2. No nível L1, utiliza-se a arquitetura Harvard, de maneira que, na cache
L1 de instruções, usa-se mapeamento direto e, na L1 de dados, aplica-se 2- (conjunto way set associative
associativo). A L2 é baseada no com LRU.cache 4-way set associative
A figura “Diagrama em blocos da família DSP TMS320C67X”, a seguir, ilustrará nossa discussão.
Figura 5 - Diagrama em blocos da família DSP TMS320C67X
•
•
•
•
•
•
•
•
- -14
Figura 5 - Diagrama em blocos da família DSP TMS320C67X
Fonte: TEXAS INSTRUMENTS, 2006, p. 7.
#PraCegoLer: na figura, temos o diagrama em blocos do TMS320C67X, em que cada módulo e cada submódulo
são representados por uma caixa de texto, ao passo que as suas interconexões são indicadas por linhas
orientadas (unidirecionais ou bidirecionais). O processador em questão é formado pelo módulo “Program Cache
”, que se relaciona (de forma bidirecional) com os módulos “DMA, EMIF” e “C6000CPU”. Por/Program Memory
sua vez, esses módulos se relacionam, de forma bidirecional, com os módulos “ ” e “Data cache/data memory
”. O relacionamento de “C6000CPU” com o “Additional Peripherals: timers, serial ports etc data cache/data
” ocorre pelos submódulos internos “.D1” e “.D2” e pelo “ ”, por intermédio domemory additional peripherals
submódulo interno “ ”. O interfaceamento externo é feito por intermédio dos módulos “DMA, EMIF”, “interrupts
” e pelos submódulos “ ” e “ ” do módulo “C6000CPU”. O móduloadditional peripherals interrupts emulation
“C6000CPU” se subdivide em duas colunas: a dos submódulos “ ”, “ ”, “program fetch instruction dispatch
”, “ ” e “ ”; e a dos submódulos “ ”, “ ”, “ ”, “instruction decode datapath A datapath B control registers control logic test
” e “ ”. Por sua vez, o submódulo “ ” é composto por “.L1”, por “.S1”, por “.M1” e poremulation interrupts datapath A
“.D1”. Por fim, “ ” compreende os submódulos “.L2”, “.S2”, “.M2” e “.D2”.datapath B
Na “Diagrama em blocos da família DSP TMS320C67X”, temos o esquema dos módulos e dos submódulos
internos do DSP TMS320C67X. Nota-se a presença de dois para a execução de instruções de formadatapaths
paralela (além do próprio paralelismo interno a cada ). Observa-se, ainda, que cada tem o seudatapath datapath
próprio conjunto de registradores GPR; e é constituído pelas seguintes unidades funcionais: “L”, “S”, “.M” e ”.D”.
As unidades “L” e “S” são responsáveis pelas operações aritméticas, de comparação, lógicas e de deslocamento.
As unidades “S” ainda visam a manipular a transferência de dados entre os GPRs e o registrador de controle; e
atuam sobre os desvios condicionais. As unidades “.M” são otimizadas para realizar operações de multiplicação.
Por fim, as unidades “.D” têm, por objetivo, o cálculo de endereços e a carga de informações compostas por 64 
.bits
Convém salientar que cada unidade funcional apresenta, internamente, seis ALUs. O módulo “DMA, EMIF” (
 – em português, interface para a memória externa) é responsável peloExternal Memory Interface
interfaceamento da memória externa.
Você quer ler?
Além das filosofias CISC e RISC, existem os processadores VLIW (Very Long
 – em português, palavras de instruções muito longas). A ideiaInstruction Word
central dessa filosofia consiste em agrupar várias instruções independentes e, com
isso, evitar, ao máximo, as verificações de conflitos de dados e de controle. Para uma
melhor abstração e para analisar o desenvolvimento de um processador VLIW, você
pode acessar a dissertação de Costa (2013).
Acesse
https://repositorium.sdum.uminho.pt/bitstream/1822/40055/1/Tese%20-%20Henrique%20Costa%20-%202013%20.pdf.
- -15
4.4 Desenvolvimento de microprocessadores
Para iniciarmos o desenvolvimento de um processador, temos que refletir sobre todos os aspectos relacionados
ao seu funcionamento. Podemos iniciar a nossa reflexão com uma série de perguntas.
• O processador seguirá alguma família existente?
• Quantos estágios terá o seu ?pipeline
• Como serão feitos o controle dos conflitos de dados, dos conflitos estruturais e dos conflitos de controle 
no ? Será usado, por exemplo, o algoritmo de Tomasulo para o tratamento dos pipeline hazards de 
 Será implementado o mecanismo de renomear os registradores?pipelines?
• Terá memória ? Como será o mapeamento da memória ? E a manutenção das coerências das cache cache
informações armazenadas?
• O processador terá mecanismos de previsão de desvios?
• Como será o formato das instruções? Seguirá, por exemplo, a filosofia RISC?
• Quais modos de endereçamentos serão manipulados pelo processador?
• O processador será superescalar?
• Quais instruções serão mapeadas?
• Como serão os mecanismos de temporização e de interrupção?
• Quais serão os tamanhos do banco de registradores e o tamanho da palavra a ser manipulada?
• Como serão mapeados os dispositivos de I/O?
• Como será o interfaceamento com os módulos de memória e com os barramentos do sistema?
Com reflexões resultantes das perguntas elencadas, um projeto poderá ser realizado a partir da especificação de
um datapath. Desse modo, iniciaremos a implementação de cada submódulo presente no projeto. Para tanto,
atualmente, o processo é baseado na utilização de HDLs (Hardware Description Language – em português,
linguagens de descrição de hardware) e de ferramentas automatizadas de síntese e de impressão das máscaras,
que se transformarão, finalmente, em chips físicos.
Agora, conversaremos sobre as etapas de desenvolvimento de sistemas digitais.
4.4.1 Desenvolvimento de Projetos Digitais
De forma sumária, para o desenvolvimento de processadores, devemos passar pelas seguintes etapas:
• especificação;
• projeto;
• implementação
• testes e análises.
Vamos Praticar!
Faça um levantamento de exemplos de aplicação dos processadores ARM e DSP. Em
relação ao DSP, identifique suas famílias e encontre pontos em comum entre elas.
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
- -16
• testes e análises.
Cada etapa compreende um conjunto de ferramentas e de metodologias, de forma a facilitar o projeto e, também,
a proporcionar maior qualidade e maior eficiência do produto sob implementação. Em linhas gerais, o
desenvolvimento dos sistemas segue o que está indicado na figura “Etapas para a elaboração de um sistema de
hardware”.
Figura 6 - Etapas para a elaboração de um sistema de hardware
Fonte: Elaborada pelo autor, 2020.
#PraCegoVer: na figura, as etapas para a elaboração de um sistema de hardware são representadas em caixas
de texto e se conectam por de linhas com setas. O ciclo começa na etapa “especificação” e caminha para as etapas
“projeto”, “implementação” e “análise”. Da “análise”, pode-se ou voltar à etapa de “especificação” ou direcionar-
se à etapa de “síntese” (marcada como etapa final).
Como podemos observar na figura “Etapas para a elaboração de um sistema de hardware”, a composição de um
sistema de hardware é cíclica. Além disso, as etapas podem permanecer ativas durante toda a vida útil do
componente. Mas o que deve ser feito em cada etapa?
EspecificaçãoA especificação vem ao encontro das reflexões proporcionadas pelas perguntas que citamos. Além disso, podem
entrar outras métricas: velocidade, tecnologia e consumo de energia. Na especificação, os aspectos de
implementação não são avaliados.
Projeto 
•
- -17
Nesta fase, acontecem a decomposição do sistema em módulos funcionais menos complexos; a descrição das
interconexões dos módulos; e o interfaceamento dos sinais entre os módulos. O projeto pode envolver, por
exemplo, os formatos das instruções e o do processador.datapath
Implementação 
A implementação é inerente à própria construção dos módulos do processador, como o são, também, as suas
interconexões e os sistemas de controle e de gerenciamento.
Análise 
As análises podem ser realizadas por meio dos resultados de simulações. A partir das simulações, temos como
avaliar o projeto sob o ponto de vista de sua funcionalidade (para verificar a sua coerência com as
especificações), da sua área dispendida, do seu consumo de energia, da sua dissipação de potência e de outras
métricas. Caso os resultados não sejam satisfatórios, o ciclo é reiniciado. Caso esteja dentro dos patamares
esperados, pode-se proceder à síntese do processador.
Síntese
Esta etapa representa a fase final da construção do processador. O produto pode ser ou uma solução baseada em
FPGA ou uma solução baseada na fabricação do chip correspondente.
A abordagem para a construção do processador que mencionamos é denominada (de cima paratop-down
baixo), pois partimos das especificações e avançamos para os níveis de abstração por meio da decomposição do
projeto em módulos e em submódulos. Caso tivéssemos módulos previamente implementados, poderíamos usar
a abordagem (de baixo para cima).botton-up
Teste seus conhecimentos
(Atividade não pontuada)
Mas o que devemos fazer com esses módulos simples da abordagem ? Onde coletaremos os módulostop-down
para implementar o sistema na abordagem ? A figura “Possíveis sequências para as abordagens botton-up botton-
 e ”, abaixo, já começa a responder tais perguntas.up top-down
- -18
Figura 7 - Possíveis sequências para as abordagens botton-up e top-down
Fonte: Elaborada pelo autor, 2020.
#PraCegoVer: na figura, temos a etapa “codificação em HDL” (representada por um caixa de texto com o código
HDL), que pode gerar ou a “biblioteca de componentes” (representado por um cilindro) ou a “implementação a
nível de componentes eletrônicos” (denotada por um diagrama esquemático). A “implementação a nível de
componentes eletrônicos”, que gera “o chip” (na figura, representada pela imagem de um circuito integrado),
pode ser gerada, também, a partir da “biblioteca de componentes”.
Na figura “Possíveis sequências para as abordagens e ”, a abordagem pode serbotton-up top-down top-down
representada pelo completo desenvolvimento do circuito desde os mais altos níveis de abstração (por exemplo,
codificação em HDL, implementação a nível de componentes eletrônicos e circuito físico final. Por outro lado, a
codificação em HDL pode gerar um componente que será utilizado (e reaproveitado) na abordagem .botton-up
Tal componente integrará uma base de componentes (repositório de componentes). Nessa abordagem, o circuito
é gerado pela interconexão de componentes já implementados (por exemplo, disponibilizados no repositório).
Os componentes criados que poderão ser utilizados em diversos projetos são denominados (IP Core Intellectual
 – em português, núcleo (ou bloco) de propriedade intelectual).Property Core
Mas quais ferramentas podem ser utilizadas em cada etapa do desenvolvimento do processador?
Você sabia?
Existem projetos de abertos que poderão ser utilizados nos mais diversosIP Cores
projetos e aplicações. Um dos exemplos consiste no repositório OpenCores, que pode
ser acessado neste endereço eletrônico: .https://opencores.org/projects
https://opencores.org/projects
- -19
Mas quais ferramentas podem ser utilizadas em cada etapa do desenvolvimento do processador?
Conversaremos, a seguir, sobre esse assunto.
4.4.2 Ferramentas de desenvolvimento e de síntese
O desenvolvimento de processadores e dos demais sistemas digitais pode ser realizado por intermédio de
ferramentas e de ambientes integrados. Como exemplos, podemos citar os seguintes.
• Quartus Prime (Altera), LeonardoSpectrum (Mentor Graphics) e Xilinx Vivado (Xilinx)
São ferramentas para realizar a síntese de circuitos a partir de códigos HDL (Verilog e VHDL).
• ModelSim SE (Mentor Graphics) e Simulink (MathWorks)
São ferramentas de simulação de sistemas.
• IC Station (Mentor Graphics) e Design Architecture (Mentor Graphics)
São ferramentas para criação de layouts e de diagramas esquemáticos.
• Calibre (Mentor Graphics)
Faz verificações dos layouts criados pelo IC Station e pelo Design Architecture.
Além dessas ferramentas, podemos citar as desenvolvidas pela empresa Cadence, entre as quais se encontram o
OrCad/PSpice e o JasperGold.
Existem diversas outras ferramentas que possibilitam o desenvolvimento de sistemas digitais.
Porém, não devemos esquecer de realizar análises e verificações dos projetos idealizados. Para tanto, existem,
também, ferramentas e técnicas, como a verificação formal.
•
•
•
•
Você quer ver?
Para possibilitar uma maior abstração de algumas das ferramentas citadas, você
poderá ver os vídeos produzidos pelo laboratório CESLa (Circuits and Embedded
Systems Lab), da Universidade Federal do Piauí, disponíveis no “Canal do CESLa”.
Acesse
https://www.youtube.com/channel/UC044OtMEmF5QYyKIalIaaPw
- -20
Conclusão
Conversamos sobre os processadores RISC e abordarmos, também as famílias ARM e DSP TMS320C67X. Com
isso, pudemos ter um nível de abstração dos processadores que encontramos em aplicações do nosso cotidiano.
Além disso, estudamos a taxonomia de Flynn e o desenvolvimento de processadores.
Tendo visto esses pontos em nosso quarto encontro, esperamos ter contribuído para suas análises e para o seu
desenvolvimento de sistemas digitais. Esperamos que os conhecimentos adquiridos sejam aplicados em suas
vivências acadêmica e profissional.
Nesta unidade, você teve a oportunidade de:
• identificar, reconhecer e analisar processadores RISC;
• identificar, analisar e aplicar outras famílias de processadores, como a ARM e as famílias DSP;
• refletir, aplicar e implantar soluções com a taxonomia de Flynn como base;
• analisar, modelar e implementar sistemas digitais com ferramentas integradas de desenvolvimento a 
partir de HDLs.
Referências
BRUSCHI, S. M. SSC0611 Arquitetura de Computadores 20ª Aula –
Arquiteturas Paralelas Arquitetura MIMD com Memória
Compartilhada. Universidade de São Paulo, São Paulo, 2020.
Disponível em: https://edisciplinas.usp.br/pluginfile.php/3510424
/mod_resource/content/2/20aula%20-%20Arquiteturas%
20MIMD%20-%20MC.pdfhttps://edisciplinas.usp.br/pluginfile.php
/3510424/mod_resource/content/2/20aula%20-%20Arquiteturas%
. Acesso em: 19 dez. 2020.20MIMD%20-%20MC.pdf
CANAL do Cesla. . [S. l.], 2020.Circuits and Embedded Systems Lab
Disponível em: https://www.youtube.com/channel
/UC044OtMEmF5QYyKIalIaaPw. Acesso em: 19 dez. 2020.
Capítulo 17 - Processamento Paralelo. [S. l.: s. n.], 2018. 1 vídeo (7m50s). Publicado pelo canal SI - UEMG Frutal.
Disponível em: . Acesso em: 19https://www.youtube.com/watch?v=lnpbgS4plMg&ab_channel=SI-UEMGFrutal
dez. 2020.
COSTA, H. M. B. . 2013. Dissertação (Mestrado em EngenhariaDesenvolvimento de um processador VLIW
Eletrônica Industrial e Computadores) – Escola de Engenharia, Universidade do Minho, Braga, 2013. Disponível
em: https://repositorium.sdum.uminho.pt/bitstream/1822/40055/1/Tese%20-%20Henrique%20Costa%20-%
. Acesso em: 30 nov. 2020.202013%20.pdf
MONTEIRO, M. A. . 5. ed. Rio de Janeiro: LTC, 2007.Introdução à organização de computadores
OPENCORES. OpenCores. , [ ], 2020. Disponível em: https://opencores.org/projects. Acesso em: 19OpenCores S. l.
dez. 2020.
PATTERSON, D. A.; HENNESSY, J. L. : a interface hardware/software.Organização e projeto de computadores 
•
•
••
https://edisciplinas.usp.br/pluginfile.php/3510424/mod_resource/content/2/20aula%20-%20Arquiteturas%20MIMD%20-%20MC.pdfhttps://edisciplinas.usp.br/pluginfile.php/3510424/mod_resource/content/2/20aula%20-%20Arquiteturas%20MIMD%20-%20MC.pdf
https://edisciplinas.usp.br/pluginfile.php/3510424/mod_resource/content/2/20aula%20-%20Arquiteturas%20MIMD%20-%20MC.pdfhttps://edisciplinas.usp.br/pluginfile.php/3510424/mod_resource/content/2/20aula%20-%20Arquiteturas%20MIMD%20-%20MC.pdf
https://edisciplinas.usp.br/pluginfile.php/3510424/mod_resource/content/2/20aula%20-%20Arquiteturas%20MIMD%20-%20MC.pdfhttps://edisciplinas.usp.br/pluginfile.php/3510424/mod_resource/content/2/20aula%20-%20Arquiteturas%20MIMD%20-%20MC.pdf
https://edisciplinas.usp.br/pluginfile.php/3510424/mod_resource/content/2/20aula%20-%20Arquiteturas%20MIMD%20-%20MC.pdfhttps://edisciplinas.usp.br/pluginfile.php/3510424/mod_resource/content/2/20aula%20-%20Arquiteturas%20MIMD%20-%20MC.pdf
https://edisciplinas.usp.br/pluginfile.php/3510424/mod_resource/content/2/20aula%20-%20Arquiteturas%20MIMD%20-%20MC.pdfhttps://edisciplinas.usp.br/pluginfile.php/3510424/mod_resource/content/2/20aula%20-%20Arquiteturas%20MIMD%20-%20MC.pdf
https://www.youtube.com/watch?v=lnpbgS4plMg&ab_channel=SI-UEMGFrutal
https://repositorium.sdum.uminho.pt/bitstream/1822/40055/1/Tese%20-%20Henrique%20Costa%20-%202013%20.pdf
https://repositorium.sdum.uminho.pt/bitstream/1822/40055/1/Tese%20-%20Henrique%20Costa%20-%202013%20.pdf
- -21
PATTERSON, D. A.; HENNESSY, J. L. : a interface hardware/software.Organização e projeto de computadores 
5. ed. Rio de Janeiro: Elsevier, 2017.
RIGUES, R. Começa uma nova era: Apple anuncia os primeiros MACs com processadores ARM. Olhar Digital, [S.
l.], 10 nov. 2020. Disponível em: https://olhardigital.com.br/noticia/comeca-uma-era-apple-anuncia-os-
. Acesso em: 30 nov. 2020.primeiros-macs-com-processadores-arm/110001
SHISHIDO, H. Y. . 2010. DissertaçãoParalelização de algoritmo de processamento de imagens digitais
(Mestrado em Ciência da Computação) – Programa de Pós-Graduação em Ciência da Computação, Universidade
Estadual de Maringá. Maringá, 2010. Disponível em: http://repositorio.uem.br:8080/jspui/bitstream/1/2542/1
. Acesso em: 30 nov. 2020./000180700.pdf
STALLINGS, W. . 10. ed. São Paulo: Pearson, 2017.Arquitetura e organização de computadores
TEXAS Instruments Incorporated. . TMS320C67x/C67x+ DSP CPU and Instruction Set Reference Guide
Literature Number: SPRU733A. Dallas: 2006. Disponível em: Texas Instruments Incorporated, https://www.ti.
. Acesso em: 29 nov. 2020.com/lit/ug/spru733a/spru733a.pdf?ts=1606692898642
https://olhardigital.com.br/noticia/comeca-uma-era-apple-anuncia-os-primeiros-macs-com-processadores-arm/110001
https://olhardigital.com.br/noticia/comeca-uma-era-apple-anuncia-os-primeiros-macs-com-processadores-arm/110001
http://repositorio.uem.br:8080/jspui/bitstream/1/2542/1/000180700.pdf
http://repositorio.uem.br:8080/jspui/bitstream/1/2542/1/000180700.pdf
https://www.ti.com/lit/ug/spru733a/spru733a.pdf?ts=1606692898642
https://www.ti.com/lit/ug/spru733a/spru733a.pdf?ts=1606692898642
	Introdução
	4.1 Processadores RISC
	Caso
	4.1.1 Características básicas do conjunto de instruções RISC
	Ciclo de máquina
	Instruções do tipo registrador-registrador
	Poucos modos de endereçamento
	Mapeamento de instruções
	4.1.2 Janelas de registradores
	Teste seus conhecimentos
	4.1.3 Impacto sobre o datapath
	Vamos Praticar!
	4.2 Taxonomia de Flynn
	Você o conhece?
	4.2.1 Multiprocessadores e multicomputadores
	Você sabia?
	Você quer ver?
	4.2.2 Classificação de Flynn
	Vamos Praticar!
	4.3 Exemplos de famílias de microprocessadores
	4.3.1 Família ARM
	4.3.2 Família DSP TMS320C67X
	Você quer ler?
	Vamos Praticar!
	4.4 Desenvolvimento de microprocessadores
	4.4.1 Desenvolvimento de Projetos Digitais
	Teste seus conhecimentos
	Você sabia?
	4.4.2 Ferramentas de desenvolvimento e de síntese
	Quartus Prime (Altera), LeonardoSpectrum (Mentor Graphics) e Xilinx Vivado (Xilinx)
	ModelSim SE (Mentor Graphics) e Simulink (MathWorks)
	IC Station (Mentor Graphics) e Design Architecture (Mentor Graphics)
	Calibre (Mentor Graphics)
	Você quer ver?
	Conclusão
	Referências

Continue navegando