• Nenhum resultado encontrado

4.3 O Processador ARPA-CP

4.3.5 Síntese e Implementação

A síntese e implementação do processador ARPA-CP foram realizadas no ambiente de de- senvolvimento ISE 7.1i da Xilinx, tendo como alvo a FPGA XC3S1500-4BG676 da família Spartan-3 da Xilinx [Xil06a]. Nestas FPGAs os principais componentes de uma célula ló- gica programável elementar, também designada por slice, são duas tabelas de verdade de dezasseis bits (quatro variáveis de entrada) e dois flip-flops.

Foram realizadas diversas experiências de implementação de forma a averiguar o impacto dos vários parâmetros do modelo do processador na frequência máxima de funcionamento e nos recursos da FPGA utilizados. Para cada processo de síntese foram especificados os seguintes parâmetros:

Latência da etapa EX;

Tipos de forwarding implementados.

Os resultados encontram-se resumidos nas tabelas 4.2, 4.3 e 4.4 correspondendo à implemen- tação do processador com os módulos CPU e Cop0-MEC, tal como descritos neste capítulo, além de um conjunto de periféricos descritos no apêndice A. Através da síntese individual do processador, constatou-se que a supressão dos periféricos não contribuia para uma di- minuição do atraso do caminho crítico, pelo que foram incluídos nesta avaliação devido à necessidade de interface com o exterior.

Para cada especialização e implementação do modelo do processador ARPA-CP são mostra- das, nas tabelas 4.2, 4.3 e 4.4, as seguintes métricas:

Frequência máxima de funcionamento (Fmax);

Número de tabelas de verdade - lookup tables (LUTs) de 4 entradas utilizadas;

Número de flip-flops usados;

Percentagem de slices ocupadas da FPGA;

4.3. O PROCESSADOR ARPA-CP 139 Latência EX Fmax (MHz) LUTs Flip-flops Slices (%) Complex. Equiv.

1 42,6 9.988 4.649 45 1.251.674

2 48,7 9.509 4.397 43 1.246.892

3 48,7 9.451 5.013 49 1.251.100

4 48,7 9.669 5.350 50 1.255.755

Tabela 4.2: Variação da frequência máxima de funcionamento e dos recursos da FPGA usa- dos pelo processador ARPA-CP em função da latência da etapa EX (valores dos restantes parâmetros: FAST_WB_STAGE = false; EX_ENABLE_FWD = false; MA_ENABLE_FWD = false; WB_ENABLE_FWD = false; ADV_REGISTER_CMP = false).

Segundo o fabricante, a FPGA Spartan-3 XC3S1500 possui uma capacidade lógica equiva-

lente a cerca de 1,5 milhões de portas de sistema 5, logo pode-se afirmar que as diversas

especializações do processador ARPA-CP apresentadas nesta secção possuem uma comple- xidade equivalente a cerca de 1,250 milhões de portas lógicas. De notar que a complexidade lógica equivalente inclui não só o número de slices ocupadas, mas também os multiplicado- res e os blocos de memória usados.

Da análise da tabela 4.2 pode-se concluir que a alteração da latência da etapa EX leva a alterações da frequência máxima de funcionamento do circuito apenas quando se passa de 1 para 2 ciclos de relógio. A partir daí a frequência máxima de funcionamento mantém- se constante para os valores de latência experimentados. Isto permite concluir que para latências da etapa EX de 1 ciclo de relógio, o caminho crítico do processador começa por estar nessa etapa, sendo imposto pela ALU ou pelo pipeline de multiplicação. A análise dos relatórios temporais gerados pela ferramenta de implementação confirma esta afirmação. De notar que a variação dos recursos utilizados não é consistente com a variação da latência. Seria de esperar que quanto maior fosse a latência e consequentemente os níveis do pipeline, mais flip-flops seriam necessários. No entanto, tal não acontece entre as latências de 1 e 2 ciclos. Isto deve-se provavelmente à arquitectura da FPGA, à utilização de retiming e outras técnicas de optimização usadas pelas ferramentas de síntese e implementação.

Da exploração do espaço de projecto apresentada na tabela 4.2 pode-se concluir que o melhor ponto corresponde à latência de 2 ciclos de relógio, sendo esta a configuração base que vai ser usada na avaliação do impacto dos parâmetros de forwarding nas métricas de implementação. 5O número de portas de sistema usado como medida da complexidade de um circuito digital representa a

quantidade de portas necessárias se o mesmo circuito fosse construído unicamente com portas lógicas NAND de 2 entradas.

Da análise da tabela 4.3 pode-se concluir que à medida que aumenta o número de etapas com forwarding implementado, a frequência máxima de funcionamento mantém-se cons- tante. Como este aumento afecta essencialmente a complexidade do módulo Forwarding

Unit da etapa ID, pode-se concluir que o caminho crítico do processador não se encontra nas

unidades responsáveis pela detecção e resolução de dependências. Mais uma vez, a análise dos relatórios temporais permite concluir que, para qualquer uma das situações mostradas na tabela 4.3, o caminho crítico está compreendido entre o final da etapa EX, o módulo

Exception Management Unit do coprocessador Cop0-MEC e a etapa IF.

Mais uma vez, devido à arquitectura da FPGA e às ferramentas de síntese e implementação, a variação dos recursos utilizados não é consistente com os tipos de forwarding implemen- tados.

A análise do relatório temporal permite também concluir que o caminho combinatório do circuito com o segundo maior tempo de atraso (apenas menos 0.3 ns que o caminho crítico) encontra-se na etapa ID e inclui toda a rede de detecção e resolução de dependências de dados. Se devido a optimizações do circuito, alterações das opções de síntese ou mudança da tecnologia de implementação o caminho crítico passar a estar na etapa ID é desejável tentar reduzi-lo. Contudo uma divisão da etapa ID em sub-etapas não é no entanto possível devido às razões relacionadas com os branch delay slots explicadas na secção 4.3.1.1. Por este motivo será interessante averiguar se a vantagem ao nível da descodificação rápida das instruções das arquitecturas RISC está a ser comprometida com a utilização de modelos ao nível RTL e a implementação em dispositivos lógicos programáveis.

Por outro lado, a utilização de um esquema distribuído de detecção de dependências com base no módulo Hazard Handling Unit revelou-se bastante simples no projecto e parametri- zação do modelo do processador. No entanto, um circuito análogo mas centralizado poderá apresentar menores atrasos sendo portanto mais interessante do ponto de vista do desem- penho do processador. Obviamente estas opções só fazem sentido quando se possui uma visão global da arquitectura do processador e dos potenciais pontos críticos, possibilitada pelo modelo e implementações apresentadas.

Finalmente, foi também implementado um processador com os seguintes parâmetros: EX_STAGE_LATENCY = 2;

FAST_WB_STAGE = true;

4.3. O PROCESSADOR ARPA-CP 141

Forwarding Fmax (MHz) LUTs Flip-flops Slices (%) Complex. Equiv.

Nenhum 48,7 9.509 4.397 43 1.246.892

EX 48,7 9.534 4.406 46 1.247.030

EX + MA 48,7 9.652 4.429 42 1.248.078

EX + MA + WB 48,7 9.585 4.558 46 1.248.453

Tabela 4.3: Variação da frequência máxima de funcionamento e dos recursos da FPGA usa- dos pelo processador ARPA-CP em função dos tipos de forwarding implementados (va- lores dos restantes parâmetros: EX_STAGE_LATENCY = 2; FAST_WB_STAGE = false; ADV_REGISTER_CMP = false).

Forwarding Fmax (MHz) LUTs Flip-flops Slices (%) Complex. Equiv.

EX + MA 33,3 9.322 4.242 46 1.244.359

Tabela 4.4: Variação da frequência máxima de funcionamento e dos recursos da FPGA usa- dos pelo processador ARPA-CP quando FAST_WB_STAGE = true (valores dos restantes pa- râmetros: EX_STAGE_LATENCY = 2; EX_ENABLE_FWD = true; MA_ENABLE_FWD = true; WB_ENABLE_FWD = false; ADV_REGISTER_CMP = false).

MA_ENABLE_FWD = true;

WB_ENABLE_FWD = false;

ADV_REGISTER_CMP = false.

Os resultados da síntese e implementação são mostrados na tabela 4.4. Estes parâmetros levam a um processador com uma frequência de funcionamento mais baixa em virtude do tempo disponível para algumas das operações na etapa ID passar a ser apenas meio ciclo de relógio. O caminho com o segundo maior tempo de atraso referido acima no estudo da variação dos tipos de forwarding implementados passa nestas circunstâncias a ser o crítico. Neste estudo não foi apresentado o impacto nas métricas de implementação provocado pela variação do parâmetro ADV_REGISTER_CMP, porque durante a síntese do modelo do pro- cessador ARPA-CP com o valor true atribuído a este parâmetro, rapidamente se concluiu que a frequência máxima de funcionamento do circuito caía para cerca de metade relativamente aos valores aqui apresentados. Isto deve-se provavelmente à complexidade lógica do circuito combinatório resultante e aos atrasos provocados pelos elementos programáveis da FPGA. Cada uma das especializações apresentadas do modelo do processador ARPA-CP foi tes- tada com sucesso com pequenos programas escritos em assembly contendo um subconjunto

Capítulo 5

O Processador Multi-tarefa ARPA-MT

Sumário

Neste capítulo é apresentado o processador ARPA-MT resultante da extensão do processador

pipelined ARPA-CP do capítulo 4 com capacidades de multi-tarefa simultânea.

O capítulo começa por revêr a motivação para a utilização de técnicas de multi-tarefa si- multânea em processadores destinados a sistemas de tempo-real. De seguida é feita uma descrição do processador ARPA-MT, incluindo a CPU e o módulo Cop0-MEC, através de uma decomposição sucessiva dos seus blocos principais. Por conveniência, a descrição é feita por comparação com o processador ARPA-CP do capítulo 4, sendo realçadas as di- ferenças relativamente a este. Após a discussão da CPU e do coprocessador Cop0-MEC, são apresentados os três critérios que podem ser usados no escalonamento das instruções no

pipeline, nomeadamente, prioridades fixas, prioridades dinâmicas e round-robin.

Seguidamente é descrita de forma sucinta a modelação e a parametrização do processador

ARPA-MT como uma extensão do processador ARPA-CP. Finalmente são apresentados os

resultados de algumas implementações do processador ARPA-MT, com diferentes valores dos parâmetros. Para cada especialização do modelo são indicados os parâmetros utilizados e os resultados da síntese e implementação obtidos, nomeadamente a área ocupada da FPGA e a frequência máxima de funcionamento.

As principais diferenças entre os processadores ARPA-CP e ARPA-MT estão relacionadas com a identificação e a replicação do estado de cada contexto de execução, a detecção e resolução de dependências, o mecanismo de excepções, o controlo da activação de cada um dos contextos e a configuração da sua prioridade relativa.

Documentos relacionados