• Nenhum resultado encontrado

Implementações eficientes de conversores reversos e multiplicações por constante usando residue number systems

N/A
N/A
Protected

Academic year: 2021

Share "Implementações eficientes de conversores reversos e multiplicações por constante usando residue number systems"

Copied!
98
0
0

Texto

(1)

CENTRO TECNOLÓGICO

PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA

Rogério Paludo

IMPLEMENTAÇÕES EFICIENTES DE CONVERSORES REVERSOS E MULTIPLICAÇÕES POR CONSTANTE USANDO RESIDUE NUMBER SYSTEMS

Florianópolis 2020

(2)

IMPLEMENTAÇÕES EFICIENTES DE CONVERSORES REVERSOS E MULTIPLICAÇÕES POR CONSTANTE USANDO RESIDUE NUMBER SYSTEMS

Tese submetida ao Programa de Pós-Graduação em En-genharia Elétrica da Universidade Federal de Santa Cata-rina para a obtenção do título de Doutor em Engenharia Elétrica.

Orientador: Prof. Eduardo Luiz Ortiz Batista, Dr. Coorientador: Prof. Héctor Pettenghi Roldán, Dr.

Florianópolis 2020

(3)

Paludo, Rogério

Implementações eficientes de conversores reversos e multiplicações por constante usando Residue Number Systems / Rogério Paludo ; orientador, Eduardo Luiz Ortiz Batista, coorientador, Héctor Pettenghi Roldán, 2020.

97 p.

Tese (doutorado) - Universidade Federal de Santa

Catarina, Centro Tecnológico, Programa de Pós-Graduação em Engenharia Elétrica, Florianópolis, 2020.

Inclui referências.

1. Engenharia Elétrica. 2. Sistemas digitais. 3. Representações numéricas. 4. Residue number systems. 5. Conversores reversos. I. Batista, Eduardo Luiz Ortiz. II. Roldán, Héctor Pettenghi. III. Universidade Federal de Santa Catarina. Programa de Pós-Graduação em Engenharia Elétrica. IV. Título.

(4)

IMPLEMENTAÇÕES EFICIENTES DE CONVERSORES REVERSOS E MULTIPLICAÇÕES POR CONSTANTE USANDO RESIDUE NUMBER SYSTEMS

O presente trabalho em nível de Doutorado foi avaliado e aprovado por banca examinadora composta pelos seguintes membros:

Prof. Ney Laert Vilar Calazans, Dr.

Pontifícia Universidade Católica do Rio Grande do Sul

Prof. Marcos Vinicius Matsuo, Dr. Universidade Federal de Santa Catarina

Prof. José Luís Güntzel, Dr. Universidade Federal de Santa Catarina

Certificamos que esta é a versão original e final do trabalho de conclusão que foi julgado adequado para obtenção do título de Doutor em Engenharia Elétrica.

Coordenação do Programa de Pós-Graduação

Prof. Eduardo Luiz Ortiz Batista, Dr. Orientador

Florianópolis, 2020.

Assinado de forma digital por Eduardo

Luiz Ortiz Batista:03652188985

Dados: 2020.04.20 10:45:52 -03'00'

Bartolomeu

Ferreira Uchoa

Filho:476362114

91

Assinado de forma digital por Bartolomeu Ferreira Uchoa

Filho:47636211491 Dados: 2020.05.14 14:08:45 -03'00'

(5)

João, e a minha esposa Patricia. minha vida: meus pais, Leonyr e

(6)

Diversas pessoas tiveram contribuição significativa neste trabalho, para evitar esqueci-mentos ou desmereciesqueci-mentos, não irei explicitá-las aqui. Porém, irei honrá-las com uma frase célebre de Isaac Newton:

(7)

A decomposição de um número inteiro em um conjunto de valores independentes é uma das técnicas mais utilizadas para aumentar o desempenho de implementações digitais de circuitos aritméticos. O Residue Number System (RNS) é um sistema não posicional que permite a representação de um valor inteiro através de um conjunto de dígitos independentes. Esse sistema apresenta maior paralelismo e pode fornecer circuitos aritméticos com menor área e baixo consumo de energia, em comparação com sistemas posicionais de representação numérica. Consequentemente, oRNStem sido utilizado em aplicações que demandam grande capacidade de processamento. Este trabalho de pesquisa tem como principal objetivo o desenvolvimento de métodos de projeto e arquiteturas de hardware eficientes para implementação de circuitos integrados digitais baseados em RNSs. Assim, as contribuições desta tese se concentram na implementação eficiente de conversores reversos para faixas dinâmicas amplas e também na implementação eficiente de multiplicações por constante usando os módulos 2𝑛, 2𝑛− 1 e 2𝑛+ 1. Com respeito aos conversores reversos, dois métodos de implementação são propostos e avaliados. Primeiramente, oChinese Remainder Theorem with Fractions (CRTF)é aplicado ao conjunto modularM𝑓 = {2 𝑛+𝛽 ,2𝑛± 1, 2𝑛± 𝑘 1,2 𝑛± 𝑘 2, . . . ,2 𝑛± 𝑘 𝑓} utilizando compressores modulares esparsos. Posteriormente, extensões modulares escalonáveis e genéricas até 10𝑛 + 1 bits são propostas através da aplicação do New Chinese Remainder Theorem 1 (NCRT1) e

do Mixed-Radix Conversion (MRC). Finalmente, uma busca exaustiva restringida no RNS é

formulada para obter grafos de somas eficientes para realização de multiplicações por constante. Resultados de síntese lógica demonstram que métodos de projeto propostos para os conversores reversos superam os do estado da arte em área e potência. Os grafos de somas encontrados apresentam profundidade e número de somas reduzidos, em comparação com grafos obtidos através de ferramentas de multiplicação por constante populares da literatura.

Palavras-Chave:Residue Number System, conversão reversa, compressão modular,

(8)

The decomposition of an integer into a set of independent values is one of the most used techniques to increase performance in digital implementations of arithmetic circuits. TheRNS

is a non-positional number system that allows the representation of an integer value as a set of independent digits. Such a system leads to increased parallelism while providing architectures with reduced circuit area and low power consumption, in comparison with positional number systems. Hence,RNSshave been extensively applied to computationally demanding applications. This research work focuses on the development of design methods and hardware architectures to produce efficient digital integrated circuits based onRNSs. Thus, the contributions of this thesis concentrate on the efficient implementation of reverse converters for wide dynamic ranges and also on the efficient implementation of constant multiplications using the modulus 2𝑛, 2𝑛− 1 e 2𝑛+ 1. Regarding reverse converters, two design methods are proposed and evaluated. First, the

CRTFis applied to the setM𝑓 = {2 𝑛+𝛽 ,2𝑛± 1, 2𝑛± 𝑘 1,2 𝑛± 𝑘 2, . . . ,2 𝑛± 𝑘 𝑓} by considering sparse modular compressors. Afterwards, generic and scalable modular extensions up to 10𝑛 + 1 bits are obtained by applying theNCRT1 and the MRC. Finally, a bounded exhaustive search based on theRNSis developed to obtain efficient adder graphs to implement multiple constant multiplications. Logical synthesis results show that the proposed design methods for the reverse converters outperform the related state of the art ones in term of circuit area and power. The adder graphs obtained present reduced depth and number of additions in comparison with graphs produced by popular multiplication-by-constant tools of the related literature.

Keywords: Residue Number Systems, reverse conversion, modular compression, constant mul-tiplication.

(9)

Figura 1 – Diagrama de blocos de uma unidade completa de processamento no RNS. . 21

Figura 2 – Exemplos de multiplicação modular baseado em (2.6). . . 24

Figura 3 – Arquitetura de hardware proposta para o CRTF. . . 33

Figura 4 – Exemplo de esparsidade dos produtos parciais no CRTF. . . 34

Figura 5 – Contadores básicos utilizados na construção do compressor esparso. . . 35

Figura 6 – Exemplo de duas interações na geração do compressor esparso. . . 37

Figura 7 – Derivação do conjunto de módulos a partir de 𝑚ˆ1= 26𝑛− 1 [22]. . . 42

Figura 8 – Arquitetura do conversor reverso proposto em [22]. . . 45

Figura 9 – Diagrama de blocos do conversor reverso proposto em [41]. . . 46

Figura 10 – Diagrama de blocos do conversor reverso proposto paraM𝐴 𝐵. . . 48

Figura 11 – Resultados experimentais para os multiplicadores modulares. . . 50

Figura 12 – Resultados experimentais para a multiplicação modular e conversão reversa. 51 Figura 13 – Arquiteturas típicas para realização de filtros Resposta ao Impulso Finita (FIR). 56 Figura 14 – Filtro FIR transposto utilizando aritmética Carry-Save Adder (CSA). . . . . 57

Figura 15 – Grafos de soma obtidos para módulo 16. . . 66

Figura 16 – Grafo de somas para módulo 16 utilizando CSAs. . . 68

Figura 17 – Diagrama de blocos de um Filtro Volterra Quadrático (FVQ). . . 69

Figura 18 – Diagrama de blocos simplificado de um FVQ. . . 70

Figura 19 – Resultados experimentais em número de Ripple-Carry Adders (RCAs). . . . 71

Figura 20 – Somador completo (contador 3:2). . . 91

Figura 21 – Ripple-carry adder. . . . 91

Figura 22 – Carry-save adder. . . . 92

Figura 23 – Exemplo de um somador multioperando baseado em Árvore de Wallace. . . 93

Figura 24 – Arquitetura do somador modular 2𝑛− 1. . . 95

Figura 25 – Arquitetura do somador modular 2𝑛+ 1. . . 96

(10)

Tabela 1 – Conjuntos modulares com aritmética baseada nos módulos 2𝑛, 2𝑛− 1e 2𝑛+ 1. 26

Tabela 2 – Resultados experimentais obtidos para o conjunto {22𝑛,2𝑛± 1, 2𝑛± 3}. . . . 38

Tabela 3 – Resultados experimentais obtidos para o conjunto {22𝑛,2𝑛± 1, 2𝑛± 3, 2𝑛± 9}. 38 Tabela 4 – Multiplicativos inversos para | 𝑀𝑎−1|2𝑛−1 −1. . . 43

Tabela 5 – Resultados experimentais obtidos para o conjuntoM𝐴. . . 49

Tabela 6 – Resultados experimentais obtidos para o conjuntoM𝐴 𝐵. . . 49

Tabela 7 – Resultados experimentais em número e profundidade de somas. . . 64 Tabela 8 – Resultados experimentais em número e profundidade de somas utilizando CSAs. 67

(11)

ADP Produto Área Atraso.

AGA Adder Graph Approach.

BM Bloco de Multiplicação.

CPA Carry-Propagate Adder.

CRT Chinese Remainder Theorem.

CRTF Chinese Remainder Theorem with Fractions.

CSA Carry-Save Adder.

CSD Canonical Signed Digit.

CSE Common Subexpression Elimination.

EAC End-Around Carry.

FIR Resposta ao Impulso Finita. FVQ Filtro Volterra Quadrático.

IEAC Inverted End-Around Carry.

LSB Least Significant Bit.

LUT Lookup Table.

MCM Multiple Constant Multiplication.

MRC Mixed-Radix Conversion.

MSB Most Significant Bit.

MSD Minimal Signed Digit.

NCRT1 New Chinese Remainder Theorem 1.

(12)

SD Signed Digit.

(13)

𝐴( 𝑋) Função dependente de 𝑋.

𝐴, . . . , 𝐵 Valores inteiros posicionais ou residuais. 𝐷𝑅 Faixa dinâmica do conjuntoM𝑓.

𝐷 Ordem de um filtro de resposta ao impulso. 𝐿 Cardinalidade de um conjunto modular. 𝑀′ Produtório de todo os módulos 𝑚𝑖com 𝑖 ≠ 1. 𝑀 Produtório de todo os módulos 𝑚𝑖.

𝑁 Quantidade de bits nas quantizações de 𝑐𝑖.

𝑊 Quantidade de bits na representação complemento a dois de 𝑋. HP(𝑚𝑖) Meio período do módulo 𝑚𝑖.

P(𝑚𝑖) Período ou periodicidade do módulo 𝑚𝑖. ℎ¯

1 Operador Volterra de ordem 1.

𝛽 Quantidade de bits na extensão do canal par 2𝑛. 𝜆𝑘 𝑘-ésimo valor singular.

A(𝑢, 𝑣) Operação de soma entre os vértices 𝑢 e 𝑣.

ARNS(𝑢, 𝑣) Operação de soma modular entre os vértices 𝑢 e 𝑣. ARNS(𝑢, 𝑣, 𝑤) Operação de soma modular entre os vértices 𝑢, 𝑣 e 𝑤.

M𝑇 Conjunto modular {2 𝑛 ,2𝑛− 1, 2𝑛+ 1}. M𝑓 Conjunto modular {2 𝑛+𝛽 ,2𝑛± 1, 2𝑛± 𝑘 1,2 𝑛 ± 𝑘2, . . . ,2𝑛± 𝑘𝑓}.

M Conjunto modular coprimo.

𝑯2 Matriz simétrica de coeficientes de um filtro Volterra de order 2. 𝑷 Representação bidimensional de produtos parciais.

𝑋˜ Aproximação posicional de 𝑋 com 𝑁 bits. 𝑎𝑖, . . . , 𝑏𝑖 Dígitos nas representações binárias de 𝐴, . . . , 𝐵. 𝑐′

𝑖 Constantes 𝑐𝑖quantizadas com 𝑁 bits. 𝑐𝑖 Constantes dadas por 𝑐𝑖 = |𝑚ˆ−1

𝑖 |𝑚𝑖/𝑚𝑖.

𝑔 Quantidade de bits na entrada de um contador.

ℎ𝑘 𝑘-ésimo coeficiente de um filtro de resposta ao impulso finita.

𝑚𝑖 Módulo qualquer.

(14)

Quantidade de bits na saída de um contador. 𝑥[𝑑] Amostra de um sinal de entrada no instante 𝑑.

𝑦[𝑑] Sinal de saída de um filtro de resposta ao impulso finita no instante 𝑑. |𝑚ˆ−1

𝑖 |𝑚𝑖 |𝑚ˆ

−1

𝑖 |𝑚𝑖 Multiplicativos inversos de 𝑚ˆ𝑖 = 𝑀/𝑚𝑖com relação a 𝑚𝑖, em que

|︁

|︁|𝑚ˆ−1𝑖 |𝑚𝑖𝑚ˆ𝑖

|︁ |︁

(15)

1 INTRODUÇÃO . . . . 16

1.1 AVANÇOS E TENDÊNCIAS RECENTES NAS PESQUISAS EM RESI-DUE NUMBER SYSTEMS . . . . 17

1.2 OBJETIVOS E CONTRIBUIÇÕES DO TRABALHO . . . 18

1.3 ORGANIZAÇÃO DO TRABALHO . . . 18

2 FUNDAMENTAÇÃO TEÓRICA E REVISÃO BIBLIOGRÁFICA . . . 19

2.1 O RESIDUE NUMBER SYSTEM . . . 20

2.2 ARITMÉTICA MODULAR . . . 21

2.2.1 Adição Modular . . . . 22

2.2.2 Adição Multioperando . . . . 22

2.2.3 Multiplicação Modular . . . 23

2.2.4 Conversão Direta . . . 24

2.3 ESCOLHA DO CONJUNTO MODULAR . . . 25

2.3.1 Conjuntos Modulares com Aritmética Simplificada . . . . 26

2.3.1.1 New Chinese Remainder Theorem 1 . . . . 27

2.3.2 Conjuntos Modulares para Faixas Dinâmicas Elevadas . . . . 28

2.3.2.1 Chinese Remainder Theorem with Fractions . . . . 29

2.4 CONCLUSÕES . . . 29

3 CRTF PARA CONJUNTOS DE MÓDULOS GENÉRICOS . . . . 31

3.1 CONTEXTUALIZAÇÃO E MOTIVAÇÃO . . . 31

3.2 FORMULAÇÃO DO CRTF PARA CONJUNTOS DE MÓDULOS GENÉ-RICOS DE ACORDO COM [35] . . . 32

3.2.1 Arquitetura de hardware proposta em [35] . . . . 32

3.3 APRIMORAÇÕES AO CRTF: EXPLORANDO ESPARSIDADE NA COM-PRESSÃO MODULAR . . . 34

3.4 RESULTADOS EXPERIMENTAIS . . . 37

3.5 CONCLUSÕES . . . 39

4 CONVERSORES REVERSOS EFICIENTES PARA FAIXAS DINÂMI-CAS DE ATÉ (10𝑛 + 1) BITS . . . . 40

4.1 CONTEXTUALIZAÇÃO E MOTIVAÇÃO . . . 40

4.2 FORMULAÇÃO MATEMÁTICA DO CONVERSOR REVERSO PROPOSTO 41 4.3 ARQUITETURAS DE HARDWARE PROPOSTAS . . . 44

(16)

4.3.3 Aprimorações à Arquitetura Proposta em [41] . . . . 47

4.4 RESULTADOS EXPERIMENTAIS . . . 47

4.5 CONCLUSÕES . . . 51

5 IMPLEMENTAÇÃO EFICIENTE DE MULTIPLICAÇÕES POR CONS-TANTE PARA CONJUNTOS MODULARES COM ARITMÉTICA SIM-PLIFICADA . . . . 53

5.1 CONTEXTUALIZAÇÃO E MOTIVAÇÃO . . . 54

5.2 IMPLEMENTAÇÃO EFICIENTE DE FILTROS FIR USANDO DESLO-CAMENTOS E SOMAS . . . 56

5.2.1 Algoritmos Multiple Constant Multiplication (MCM) no Sistema Binário . . 57

5.2.1.1 O Algoritmo Spiral [74, 97] . . . . 58

5.2.1.2 O Algoritmo RPAG [80, 98] . . . . 59

5.2.2 Implementações no RNS . . . . 60

5.3 EXPLORAÇÃO EXAUSTIVA NO RNS . . . 61

5.4 RESULTADOS EXPERIMENTAIS . . . 63

5.4.1 Estudo de Caso: Filtros Volterra Quadráticos . . . 67

5.5 CONCLUSÕES . . . 72

6 CONSIDERAÇÕES FINAIS E TRABALHOS FUTUROS . . . . 73

6.1 SUMÁRIO DAS ATIVIDADES DE PESQUISA NO RESIDUE NUMBER SYSTEM (RNS) . . . . 73

6.2 TRABALHOS PUBLICADOS . . . 75

6.3 SUGESTÕES PARA TRABALHOS FUTUROS . . . 75

Referências . . . . 77

APÊNDICE A UNIDADES ARITMÉTICAS PARA OPERAÇÕES BINÁ-RIAS . . . . 90

A.1 ADIÇÃO . . . 90

A.2 ADIÇÃO MULTIOPERANDO . . . 91

APÊNDICE B UNIDADES ARITMÉTICAS PARA OPERAÇÕES MO-DULARES . . . . 94

B.1 ADIÇÃO . . . 94

(17)

CAPÍTULO

1

INTRODUÇÃO

Circuitos integrados digitais de alto desempenho requerem implementações eficientes de algoritmos complexos com custo energético restrito. Embora as evoluções em escalonamento da tecnologia CMOS favoreçam implementações desse tipo, sistemas de representação numérica não convencionais, como oResidue Number System (RNS), constituem uma alternativa viável para aumento de desempenho e redução do consumo energético.

UmResidue Number System (RNS)é composto por um conjunto de módulos coprimos,

onde o maior divisor comum entre todos os pares possíveis de módulos deve ser igual a 1. Um número emRNS, por sua vez, é representado pelos resíduos de cada módulo, enquanto as operações são realizadas com base nos módulos. Assim, é relativamente fácil realizar operações sem haver propagação de carry1 entre os módulos e de forma concorrente. Como resultado, cálculos computacionais podem ser realizados mais rapidamente, fornecendo vantagens con-sideráveis em comparação com sistemas de representação numérica convencionais, razão pela qual a aplicação deRNSsé difundida em áreas que exigem aritmética intensiva [1–5].

A utilização deRNSno projeto de circuitos integrados digitais tem sido bastante explo-rada na literatura [2]. No entanto, ainda há barreiras teórico-práticas para aplicação dos avanços recentes doRNS [6–11] no projeto de tais sistemas. As principais dificuldades no projeto de

RNSssurgem a partir de duas características principais. A primeira diz respeito à necessidade de interface com sistemas digitais baseados em representações posicionais. A segunda está re-lacionada a operações que são naturalmente intermodulares e mais complexas em RNSs, tais como detecção de sinal, comparação de magnitude e escalonamento. Nesse contexto, as princi-pais linhas de pesquisa emRNSstem buscado conjuntos modulares e arquiteturas de hardware eficientes para mitigar as barreiras teórico-práticas e facilitar aplicações práticas.

1Em sistemas posicionais, o resultado de uma operação em um dado símbolo depende de um valor de carry (carga) que reflete aos resultados nos símbolos de menor ordem.

(18)

1.1 AVANÇOS E TENDÊNCIAS RECENTES NAS PESQUISAS EM RESIDUE NUM-BER SYSTEMS

A maior parte dos sistemas digitais são projetados com base em sistemas posicionais. Assim, a adoção de uma unidade de processamento no RNS requer elementos de interface entre uma representação e outra. A conversão direta, de um sistema posicional para o RNS, é tipicamente simples e fácil de ser implementada [12]. No entanto, a conversão reversa, do

RNSpara sistema posicional, é mais complexa, implicando atraso, área e consumo de energia elevados. Consequentemente, grande parte dos esforços no projeto eficiente de RNSs têm se concentrado na conversão reversa.

Tipicamente, oChinese Remainder Theorem (CRT)e oMixed-Radix Conversion (MRC) são aplicados para obter uma representação posicional a partir dos resíduos. As pesquisas iniciais em RNS utilizavam principalmente o MRC como método de conversão [2]. Como o MRC apresenta comportamento sequencial por natureza, em que as operações aritméticas são realizadas em palavras de pequena magnitude, sua implementação era mais direta nos computadores dos anos 70 e 80 [13]. Em comparação, oCRT, em sua formulação original [14], possui complexidade elevada, dificultando sua a aplicação em sistemas reais, o que também estimulava o uso doMRC.

Todavia, restrições no conjunto modular podem reduzir a complexidade da conversão reversa através do CRT, permitindo a aplicação de formulações com arquitetura de hardware simplificada [15]. Dentre essas restrições, a adição de um módulo par no formato 2𝑛ao conjunto modular viabiliza a obtenção dos 𝑛 dígitos menos significativos (Least Significant Bits (LSBs)) diretamente a partir dos resíduos, sem necessidade de circuitos aritméticos. Além disso, quando o produto de todos os módulos de um conjunto, exceto o módulo 2𝑛, for igual a 2𝑞 − 1, o

New Chinese Remainder Theorem 1 (NCRT1)pode ser aplicado, simplificando ainda mais as

arquiteturas de hardware. Na literatura recente emRNS, nota-se uma tendência nas pesquisas envolvendo os conjuntos que possibilitam a aplicação doNCRT1[7,16–27]. Essa tendência não se deve somente às simplificações oferecidas peloNCRT1, mas também porque a aritmética é simplificada, geralmente baseada nos módulos 2𝑛, 2𝑛− 1 e 2𝑛+ 1.

Sob outra perspectiva, o crescimento do valor numérico em uma sequência de operações aritméticas muitas vezes requer o aumento da faixa dinâmica para evitar operações complexas, como escalonamento. No entanto, aplicar restrições na escolha do conjunto modular pode ser um requisito de projeto conflitante com o crescimento dos valores numéricos. Diante disso, outro foco recente de pesquisas emRNStem sido a busca por métodos eficientes de implementação doCRTindependente dos conjuntos modulares [28–31]. Essas abordagens propõem conjuntos modulares e conversores reversos genéricos e escalonáveis para aplicações que requerem faixas dinâmicas elevadas, como por exemplo criptografia [6].

Em suma, independentemente do conjunto modular ou conversão reversa, uma constante nas pesquisas emRNSé o empenho na busca por métodos de implementação e arquiteturas de

(19)

hardware eficientes, tema principal do presente trabalho de pesquisa. 1.2 OBJETIVOS E CONTRIBUIÇÕES DO TRABALHO

O objetivo central deste trabalho de pesquisa é o desenvolvimento de métodos de projeto e arquiteturas eficientes para implementação de sistemas digitais baseados em RNSs. Nesse contexto, o presente trabalho apresenta três contribuições distintas. Primeiro, uma arquitetura de hardware eficiente para conversão reversa dos conjuntos modulares baseados em M𝑓 = {2𝑛+𝛽

,2𝑛± 1, 2𝑛± 𝑘 1,2

𝑛

± 𝑘2, . . . ,2𝑛± 𝑘𝑓} é proposta. Para tal, um método para geração de compressores modulares esparsos é desenvolvido, o qual, reduz a complexidade e economiza área nas implementações. Segundo, um conjunto modular dedicado para 10𝑛 bits é proposto, através da extensão do conjunto de 9𝑛 bits apresentado em [22]. Ademais, aplica-se os compressores modulares esparsos para aprimorar a conversão reversa utilizando oNCRT1. Terceiro, formula-se um método de busca exaustiva noRNSpor implementações eficientes de multiplicações por constante para os módulos 2𝑛, 2𝑛− 1 e 2𝑛+ 1.

1.3 ORGANIZAÇÃO DO TRABALHO

O restante deste trabalho de pesquisa está organizado da seguinte forma. O Capítulo2

apresenta uma breve revisão das operações aritméticas modulares noRNS e suas realizações. As contribuições originais deste trabalho de pesquisa são apresentadas nos Capítulos3, 4e5. No Capítulo3, uma formulação de conversores reversos para conjuntos modulares genéricos é apresentada, juntamente com o desenvolvimento do compressor modular esparso. No Capítulo4, um conversor reverso dedicado para aproximadamente 10𝑛 bits é proposto e analisado em diferentes cenários. O Capítulo 5 foca na busca exaustiva por implementações eficientes de multiplicações por constantes noRNSconsiderando os módulos 2𝑛, 2𝑛− 1 e 2𝑛+ 1. O Capítulo6

(20)

CAPÍTULO

2

FUNDAMENTAÇÃO TEÓRICA E REVISÃO

BIBLIOGRÁFICA

As operações aritméticas elementares são profundamente relacionadas com o sistema de numeração utilizado. Em um sistema posicional, os valores atribuídos a cada símbolo são dependentes da posição relativa que este ocupa. Dessa forma, em tal sistema, o resultado de uma operação em um determinado símbolo depende do resultado de operações nos símbolos imedia-tamente anteriores. Esse princípio, conhecido como propagação de carry, limita superiormente o desempenho de implementações digitais baseadas em sistemas de numeração posicional, como binário e decimal. Tipicamente, para contornar o problema de propagação de carry ao longo de um datapath, técnicas de paralelismo temporal são empregadas para reduzir o caminho crítico, aumentando assim, o throughput do circuito. Outra forma de contornar essa limitação é adotando uma alternativa que forneça melhor paralelismo espacial. Neste caso, operações aritméticas poderiam ser executadas com propagação limitada de carry, em caminhos menores, preferencialmente paralelos.

OResidue Number System (RNS)fornece um sistema de representação não posicional,

com certo paralelismo espacial e propagação limitada de carry. Consequentemente,RNSssão utilizados com sucesso em uma gama diferente de aplicações, como alternativa aos sistemas po-sicionais [4]. Embora oRNSpossa acelerar caminhos críticos dominados por somas, subtrações e multiplicações, outras operações como divisão, comparação de magnitude e detecção de sinal são mais complexas em RNS do que em sistemas posicionais. Essa restrição requer cuidado especial no projeto de unidades de processamento baseadas noRNS, ao custo de ofuscar suas vantagens. Dessa forma, grande parte das pesquisas no projeto eficiente deRNSsse concentra na utilização de estruturas que fornecem aritméticas simplificadas.

Este capítulo apresenta e discute as operações aritméticas modulares do RNS e suas realizações. O foco principal consiste em estudar oRNSde forma isolada de um ponto de vista teórico-prático. Assim, a Seção2.1 define oRNSe as características principais relacionadas a

(21)

conversão direta, aritmética e conversão reversa. As operações elementares doRNSsão revistas na Seção2.2, enquanto que a problemática envolvendo a escolha de uma base eficiente para o

RNSé apresentada na Seção2.3. A Seção2.4apresenta as conclusões do capítulo. 2.1 O RESIDUE NUMBER SYSTEM

As operações no RNS são fundamentadas nos princípios da aritmética modular. As-sim, um RNS é completamente caracterizado pela sua base, composta pelo 𝐿-tuplo1 M = {𝑚1, 𝑚

2, . . . , 𝑚𝐿}, em que os elementos 𝑚𝑖 são denominados módulos. Um inteiro 𝑋 qualquer, é representado emRNSpor outro conjunto de 𝐿 elementos {𝑟1, 𝑟2, . . . , 𝑟𝐿}, onde 𝑟𝑖 é o resto da divisão (ou resíduo) de 𝑋 por cada 𝑚𝑖, denotado como 𝑟𝑖= | 𝑋 |𝑚𝑖 [14].

Portanto, quando o conjunto de módulos é coprimo2, obtém-se a definição convencional de umRNS. Neste caso, existe um mapeamento isomórfico3entre o 𝐿-tuplo (que representa um inteiro) e 𝑀, que é o produto direto (i.e., faixa dinâmica) dos elementos da base coprimaM. O

Chinese Remainder Theorem (CRT)garante este mapeamento isomórfico conforme descrito a

seguir [32].

Teorema 2.1. Um inteiro 𝑋 possui representação única em 𝑀 dada pelo 𝐿-tuplo 𝑋 Δ= (𝑟1 = | 𝑋 |𝑚

1, 𝑟2 = | 𝑋 |𝑚2, . . . , 𝑟𝐿 = | 𝑋 |𝑚𝐿), em que, 𝑀 =

∏︁𝐿

𝑖=1𝑚𝑖 e M = {𝑚1, 𝑚2, . . . , 𝑚𝐿}. Dessa

forma, peloCRTobtém-se

𝑋 = |︁ |︁ |︁ |︁ |︁ 𝐿 ∑︂ 𝑖=1 𝑚ˆ𝑖|𝑚ˆ−1 𝑖 |𝑚𝑖𝑟𝑖 |︁ |︁ |︁ |︁ |︁ 𝑀 , (2.1)

em que, |𝑚ˆ−1𝑖 |𝑚𝑖 são os multiplicativos inversos4de 𝑚ˆ𝑖 = 𝑀/𝑚𝑖com relação a 𝑚𝑖.

Assim, como existe um mapeamento isomórfico, as operações aritméticas associati-vas e comutatiassociati-vas podem ser conduzidas no sistema desacoplado, em estruturas que possuem complexidades menores. Ou seja, para multiplicação tem-se [14]

𝑋 ↦−→ {︂ | 𝑋 |𝑚 1 , | 𝑋 |𝑚2 , . . ., | 𝑋 |𝑚𝐿 }︂ 𝑌 ↦−→ {︂ |𝑌 |𝑚 1 , |𝑌 |𝑚2 , . . ., |𝑌 |𝑚𝐿 }︂ | 𝑋𝑌 |𝑀 ↦−→ {︂ |︁ |︁| 𝑋 |𝑚 1|𝑌 |𝑚1 |︁ |︁ 𝑚 1 ,|︁|︁| 𝑋 |𝑚 2|𝑌 |𝑚2 |︁ |︁ 𝑚 2 , . . .,|︁|︁| 𝑋 |𝑚 𝐿|𝑌 |𝑚𝐿 |︁ |︁ 𝑚𝐿 }︂ , (2.2)

1Sequência ordenada de 𝐿 elementos.

2gcd(𝑚𝑗, 𝑚𝑘) = 1 para 𝑗 ≠ 𝑘, em que, gcd é o maior divisor comum. 3Mapeamento bijetor entre os dois domínios [32].

4(i.e,|︁|︁|𝑚ˆ−1𝑖 |𝑚𝑖𝑚ˆ𝑖 |︁ |︁

(22)

e para adição/subtração, 𝑋 ↦−→ {︂ | 𝑋 |𝑚 1 , | 𝑋 |𝑚 2 , . . ., | 𝑋 |𝑚 𝐿 }︂ 𝑌 ↦−→ {︂ |𝑌 |𝑚 1 , |𝑌 |𝑚2 , . . ., |𝑌 |𝑚𝐿 }︂ | 𝑋 ± 𝑌 |𝑀 ↦−→ {︂|︁ |︁| 𝑋 |𝑚 1± |𝑌 |𝑚1 |︁ |︁ 𝑚 1 , |︁ |︁| 𝑋 |𝑚 2± |𝑌 |𝑚2 |︁ |︁ 𝑚 2 , . . ., |︁ |︁| 𝑋 |𝑚𝐿 ± |𝑌 |𝑚𝐿 |︁ |︁ 𝑚𝐿 }︂ (2.3)

Logo, noRNSas operações aritméticas são realizadas em paralelo, em 𝐿 canais independentes. Dessa forma, um operando que possui grande magnitude, pode ser decomposto em um conjunto de valores menores, processados separadamente. No entanto, um certo custo adicional de con-versão é necessário para integração com sistemas tradicionais de representação. Tipicamente, a redução modular | 𝑋 |𝑚𝑖 é implementada por um conversor direto. Após efetuar as operações no

RNS, um conversor reverso obtém o resultado no sistema original. Na Figura 1é apresentado uma unidade completa de processamento emRNS.

Conversor Reverso Conversor Direto X |X|m1 |X|m2

...

|X|mL

...

...

Aritmética Módulo m1 Aritmética Módulo m2 Aritmética Módulo mL Xprocessado

Figura 1 – Diagrama de blocos de uma unidade completa de processamento noRNS.

2.2 ARITMÉTICA MODULAR

No sistema desacoplado da Figura1falta definir a aritmética modular para cada um dos módulos 𝑚𝑖. De um ponto de vista prático, grande parte das operações aritméticas realizadas de forma eficiente noRNS podem ser mapeadas em duas operações básicas: (i) adição multi-operando, seguida por, (ii) adição modular. Ou seja, as operações de multiplicação, conversão direta e conversão reversa, podem ser manipuladas matematicamente, resultando em estruturas similares ao cálculo de um produto interno [33]. Ademais, quando a aritmética módulo 𝑚𝑖 possui um formato específico, é possível simplificar o hardware, produzindo estruturas com desempenho melhor. Para fins de organização, as arquiteturas de hardware que implementam as funções definidas nesta seção são revisadas nos Apêndices A e B.

(23)

2.2.1 Adição Modular

A adição de dois resíduos 𝐴 e 𝐵, em que 𝐴, 𝐵 ∈ [0, 𝑚𝑖), é definida como

𝑆 = | 𝐴 + 𝐵| 𝑚𝑖 = ⎧ ⎪ ⎪ ⎨ ⎪ ⎪ ⎩ 𝐴+ 𝐵, se 𝐴 + 𝐵 < 𝑚𝑖 𝐴+ 𝐵 − 𝑚𝑖, caso contrário. (2.4)

Assim, para qualquer 𝑚𝑖, basta calcular 𝐴 + 𝐵 e 𝐴 + 𝐵 − 𝑚𝑖 em paralelo e selecionar o resultado correto para obter 𝑆 [12]. A subtração pode ser definida a partir da adição modular aplicando o complemento de 𝑚𝑖 em (2.4).

Os módulos específicos 2𝑛, 2𝑛− 1 e 2𝑛+ 1 permitem simplificações nas realizações em hardware de (2.4). Assim, adição módulo 2𝑛 é tão simples quanto adição no sistema binário, sem geração do carry-out. Consequentemente, um somador qualquer de 𝑛 bits é suficiente para realizar adição módulo 2𝑛. Adição módulo 2𝑛−1 é realizada notando que |2𝑛|2𝑛

−1 = 2𝑛−(2𝑛−1) = 1. Portanto, a adição de dois operandos de até 𝑛 bits resulta em 𝑛 + 1 bits, em que, o 𝑛-ésimo (carry-out) bit (2𝑛) é realimentado no somador comoEnd-Around Carry (EAC)[12]. De forma análoga, |2𝑛|2𝑛

+1 = 2𝑛− (2𝑛+ 1) = −1. Assim, adição para módulo 2𝑛 + 1 é realizada com a realimentação invertida, ouInverted End-Around Carry (IEAC)[12].

Uma das problemáticas envolvidas na implementação de adições 2𝑛 − 1 e 2𝑛+ 1 em hardware é a realimentação do carry-out, pois quando uma arquitetura baseada em

Ripple-Carry Adder (RCA)é utilizada, existe uma condição de corrida entre carry-out e carry-in [34]. Esse problema é facilmente evitado realizando a soma paralela e selecionando o resultado correto ou aplicando uma operação de incrementação a posteriori.

2.2.2 Adição Multioperando

Como a adição multioperando é uma operação complexa em hardware, tradicionalmente uma técnica de aceleração é utilizada nas implementações. Agrupamentos em forma de árvore de Wallace são comuns (ver Apêndice A.2), pois apresentam atraso logarítmico [33,35]. Nesse caso, os operandos na entrada são reduzidos para somente dois, os quais podem ser adicionados através de um somador convencional.

Tipicamente, quando a quantidade de bits dos operandos na entrada da adição multio-perando emRNS foi maior que a quantidade de bits na representação do módulo 𝑚, deve-se realizar uma redução modular. Tal redução é implícita nas operações de conversão direta e tam-bém multiplicação modular. Dessa forma, algumas propriedades periódicas da série de potência da representação |2𝑗|𝑚𝑖 facilitam a implementação da adição multioperando. O trabalho de

Pies-trak [35] propôs definições de periodicidade, aplicadas a geração de somadores multioperando. Assim, seguindo as definições generalizadas de Piestrak [35] define-se:

Definição 2.2. O período de um módulo ímpar 𝑚𝑖, definido como P(𝑚𝑖), é a menor distância entre dois “1”s distintos na sequência de resíduos de |2𝑗|𝑚𝑖.

(24)

Definição 2.3. O meio período de um módulo ímpar 𝑚𝑖, definido como HP(𝑚𝑖), é a menor distância entre um par “1”s subsequentes e 𝑚𝑖− 1 na sequência de resíduos de |2

𝑗 |𝑚𝑖.

A periodicidade P(𝑚𝑖) sempre existe quando 𝑚𝑖 é ímpar. No entanto, HP (𝑚𝑖) existe para somente alguns 𝑚𝑖. Certos módulos apresentam periodicidade simplificada [35], como, por exemplo

• P(2𝑛− 1) = 𝑛

• HP(2𝑛−1+ 1) = 𝑛 − 1 e P(2𝑛−1+ 1) = 2(𝑛 − 1)

o que facilita a obtenção de estruturas eficientes em hardware.

Dado um conjunto de resultados parciais, seja a partir da conversor direto, multiplicação ou conversor reverso, basta particioná-los de acordo com P(𝑚𝑖) ou HP(𝑚𝑖), aplicar a adição multioperando usando, por exemplo, uma árvore de Wallace e finalmente obter o resultado final aplicando (2.4). Assim, sabendo que P(2𝑛− 1) = 𝑛, basta particionar o conjunto de produtos parciais na posição 𝑛 e aplicar EAC em cada soma Carry-Save Adder (CSA) da árvore de Wallace. Para HP(2𝑛−1+ 1) = 𝑛 − 1 a operação deIEACé aplicada.

2.2.3 Multiplicação Modular

A multiplicação 𝑍 = | 𝐴𝐵|𝑚𝑖 em que, 𝐴, 𝐵 ∈ [0, 𝑚𝑖), pode ser calculada tomando o

resíduo de produto entre 𝐴 e 𝐵 como

𝑍 = | 𝐴𝐵|𝑚 𝑖 = |︁ |︁ |︁ |︁ |︁ |︁ 𝑛−1 ∑︂ 𝑗=0 𝑎𝑗2𝑗 𝑛−1 ∑︂ 𝑘=0 𝑏𝑘2𝑘 |︁ |︁ |︁ |︁ |︁ |︁ 𝑚𝑖 = |︁ |︁ |︁ |︁ |︁ |︁ 𝑛−1 ∑︂ 𝑗=0 𝑛−1 ∑︂ 𝑘=0 𝑎𝑗𝑏𝑘2𝑗+𝑘 |︁ |︁ |︁ |︁ |︁ |︁ 𝑚𝑖 , (2.5)

em que 𝑛 é a quantidade de bits e 𝑎𝑗, 𝑏𝑘 são os dígitos nas representações binárias de 𝐴 e 𝐵, respectivamente. Outra forma de expressar (2.5) é denotando os produtos parciais como 𝑃𝑗 = |𝑎𝑗𝐵|𝑚𝑖 e reescrevendo 𝑍 = |︁ |︁ |︁ |︁ |︁ |︁ 𝑛−1 ∑︂ 𝑗=0 |︁ |︁𝑃𝑗2 𝑗|︁ |︁ 𝑚𝑖 |︁ |︁ |︁ |︁ |︁ |︁ 𝑚𝑖 . (2.6)

Assim, multiplicação módulo 𝑚𝑖 pode ser conduzida em três passos: (𝑖) geração de todos os produtos parciais 𝑃𝑗 (i.e., AND lógico entre 𝑎𝑗 e 𝑏𝑘) 𝐵); (𝑖𝑖) soma de todos os produtos parciais 𝑃𝑗 usando adição multioperando [34]; (𝑖𝑖𝑖) adição final. Os exemplos a seguir demonstram a aplicação de (2.6) para os módulos 2𝑛, 2𝑛− 1 e 2𝑛+ 1.

Exemplo 2.4. Quando 𝑚𝑖 = 2 𝑛

, nota-se que |2𝑘|2𝑛 = 0 para 𝑘 ≥ 𝑛. Portanto, os produtos parciais

em (2.6) são truncados a partir de 𝑛. A Figura2(a) ilustra a multiplicação módulo 2𝑛 usando notação em pontos para representar os produtos parciais.

Exemplo 2.5. Para 𝑚𝑖= 2 𝑛

− 1, nota-se que |2𝑘|

2𝑛−1= 2 𝑘−𝑛

para 𝑘 ≥ 𝑛. Os produtos parciais em (2.6) são rotacionados (EAC) a partir de 𝑛. A Figura2(b) ilustra a multiplicação módulo 2𝑛− 1.

(25)

Exemplo 2.6. Para 𝑚𝑖 = 2 𝑛

+ 1, tem-se |2𝑘 |2𝑛

+1 = −2𝑘−𝑛 para 𝑘 ≥ 𝑛. Assim, aplica-se IEAC

aos produtos parciais em (2.6) a partir de 𝑛, como mostrado na Figura2(c). É importante notar que na operação IEAC há um fator corretor devido ao aditivo inverso, como apresentado no Apêndice B.1. ... ... ... ... ... ... ... ... ... ... ... ...... ... (a) ... ... ... ... ... ... ... ... ... ... ... ... ... ...... ... ... ... (b) ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...... ... ... ... ... Fator Corretor (c) ... ... ... ...

Figura 2 – Exemplos de multiplicação modular baseado em (2.6) para (a) 2𝑛 , (b) 2𝑛− 1, e (c) 2𝑛+ 1.

2.2.4 Conversão Direta

Enquanto a conversão reversa pode ser implementada através de (2.1), na conversão direta é necessário definir a representação de origem. Neste trabalho, é assumindo uma representação em complemento de dois com 𝑊 bits como [34]

𝑋 = −𝑥𝑊 −12𝑊−1+ 𝑊−2 ∑︂ 𝑖=0 𝑥𝑖2𝑖. (2.7)

em que 𝑥𝑖representa o 𝑖-ésimo dígito na representação de 𝑋. Assim, basta tomar os resíduos de (2.7) para os 𝐿 módulos 𝑚𝑖, obtendo-se, a representação de 𝑋 em um dado conjunto modularM

| 𝑋 |𝑚𝑖 = |︁ |︁ |︁ |︁ |︁ |︁ −𝑥𝑊−1|︁|︁2 𝑊−1|︁ |︁ 𝑚𝑖 + 𝑊−2 ∑︂ 𝑗=0 𝑥𝑗 |︁ |︁2 𝑗|︁ |︁ 𝑚𝑖 |︁ |︁ |︁ |︁ |︁ |︁ 𝑚𝑖 . (2.8)

(26)

A obtenção dos resíduos de 𝑋 para 2𝑛, 2𝑛− 1, e 2𝑛+ 1 é demonstrada nos exemplos a seguir.

Exemplo 2.7. Relembrando que |2𝑘

|2𝑛 = 0 para 𝑘 ≥ 𝑛, tem-se | 𝑋 |2𝑛 = 𝑛−1 ∑︂ 𝑗=0 𝑥𝑗2𝑗 = 𝑥𝑛−12𝑛−1+ 𝑥𝑛−22𝑛−2+ · · · + 𝑥020,

ou seja, os 𝑛Least Significant Bits (LSBs)de 𝑋 representam | 𝑋 |2𝑛.

Exemplo 2.8. Aplicando P(2𝑛

− 1) = 𝑛 e assumindo que (2𝑛 + 2) > 𝑊 > 𝑛, pode-se particionar a representação binária de 𝑋 em três partes

| 𝑋 |2𝑛 −1= 𝐵322𝑛+ 𝐵22 𝑛 + 𝐵120 𝐵 1 = 𝑛−1 ∑︂ 𝑗=0 𝑥𝑗2𝑗 𝐵 2 = 2𝑛−1 ∑︂ 𝑗=𝑛 𝑥𝑗2𝑗−𝑛 𝐵 3 = 2𝑛+1 ∑︂ 𝑗=2𝑛 𝑥¯𝑗2 𝑗−2𝑛 + Fator Corretor ⏟ˉˉˉ⏞⏞ˉˉˉ⏟ 3𝑛−1 ∑︂ 𝑗=2𝑛+2 20

em que, pelo aditivo inverso de 2𝑛− 1, 𝑥¯ é o complemento a um de 𝑥 (Most Significant Bit (MSB) de 𝑋). Assim, 𝐵1, 𝐵2, 𝐵3podem ser somados em umCSA comEAC, seguido por uma adição final 2𝑛− 1 (ver Seção2.2.1).

Exemplo 2.9. De forma análoga ao exemplo anterior, pode-se obter |𝑋 |2𝑛+1. Deve-se notar que para 2𝑛+ 1, 𝐵2 = ∑︁2𝑛−1𝑗=𝑛 𝑥¯𝑗2

𝑗−𝑛

e que o fator corretor depende da quantidade de bits em 𝑋. Novamente, uma adição CSA com IEAC pode ser utilizada, seguida da adição final módulo 2𝑛+ 1.

2.3 ESCOLHA DO CONJUNTO MODULAR

A escolha do conjunto modularM é crucial para o desempenho da unidadeRNScomo um todo. Consequentemente, grande parte das pesquisas recentes emRNStem focado na procura por conjuntos que simplifiquem a aritmética e também a conversão reversa [4,8,24]. De forma geral, uma cardinalidade 𝐿 maior aumenta a faixa dinâmica e o paralelismo, ao custo do aumento de complexidade em (2.1). Assim, no projeto de unidades RNS há sempre um compromisso entre o aumento da cardinalidade (consequentemente redução da quantidade de bits por canal) com a complexidade do conversor reverso.

Neste trabalho, há interesse particular em duas classes de conjuntos modulares. A pri-meira é derivada a partir do conjuntoM𝑇 = {2

𝑛

(27)

simplificada. A segunda classe de interesse é obtida a partir de qualquer conjunto coprimo, sem formatos específicos. As próximas seções discutem abordagens do estado da arte para conversão reversa destas duas classes de conjuntos modulares.

2.3.1 Conjuntos Modulares com Aritmética Simplificada

Como o conjuntoM𝑇 apresenta faixa dinâmica e cardinalidade reduzida, diversas ex-tensões têm sido propostas recentemente, conforme Tabela1, para contornar essa limitação.

Dado que a aritmética módulo 2𝑛 é mais simples que 2𝑛− 1 e 2𝑛+ 1, pode-se aumentar a sua quantidade de bits (i.e., extensão vertical) sem comprometer a performance doRNS[17]. Consequentemente, diversas extensões deste tipo são encontradas no estado da arte, como listado na Tabela1. Por outro lado, o aumento da cardinalidade de um conjunto modular, ou extensão horizontal, é alcançada encontrando módulos coprimos e adicionando-os à base M𝑇, como apresentado em [16,19,23].

O desempenho relativo dos conjuntos apresentados na Tabela1é dependente da aplicação e também da complexidade da conversão reversa. No entanto, deve-se observar que para os conjuntos que podem ser reescritos como {2𝑘,2𝑞−1}, é possível simplificar (2.1) através doNew

Chinese Remainder Theorem 1 (NCRT1), como é o caso dos conjuntos apresentados na Tabela1. ONCRT1é atualmente o método que produz arquiteturas de hardware mais simplificadas para estes conjuntos [24].

Tabela 1 – Conjuntos modulares com aritmética baseada nos módulos 2𝑛, 2𝑛− 1e 2𝑛+ 1. Faixa Dinâmica Conjunto Modular

3𝑛 {2𝑛,2𝑛− 1, 2𝑛+ 1} [36] 3𝑛 + 𝑘 {2𝑛+𝑘,2𝑛− 1, 2𝑛+ 1} [17,37] 2𝑛 + 𝑘 {2𝑘,2𝑛− 1, 2𝑛+ 1} [38] 5𝑛 {2𝑛,22𝑛− 1, 22𝑛+ 1} [39] 5𝑛 {2𝑛,2𝑛− 1, 2𝑛+ 1, 22𝑛+ 1} [16] 5𝑛 + 𝑘 {2𝑘,2𝑛− 1, 2𝑛+ 1, 2𝑛+1− 1, 2𝑛−1− 1} [40] 6𝑛 {22𝑛,2𝑛− 1, 2𝑛+ 1, 22𝑛+ 1} [19] 6𝑛 + 𝑘 {22𝑛+𝑘,2𝑛− 1, 2𝑛+ 1, 22𝑛+ 1} [23] Adaptado de [24].

(28)

2.3.1.1 New Chinese Remainder Theorem 1

A partir de (2.1) nota-se que∑︁𝐿𝑖=1𝑚ˆ𝑖|𝑚ˆ −1

𝑖 |𝑚𝑖𝑟𝑖 difere de 𝑋 por múltiplos de 𝑀. Dessa

forma, pode-se formular oCRTcomo [41] 𝑋 = 𝐿 ∑︂ 𝑖=1 𝑚ˆ𝑖|𝑚ˆ−1 𝑖 |𝑚𝑖 𝑟𝑖− A(𝑋)𝑀, (2.9)

em que, A( 𝑋) é uma função dependente de 𝑋.

Outra forma de obter a representação inteira de 𝑋 a partir doRNSé observando que 𝑋 é o dividendo na divisão 𝑋/𝑚1, ou seja,

𝑋 = ⌊︃ 𝑋 𝑚 1 ⌋︃ 𝑚 1+ 𝑟1, (2.10)

em que, ⌊ 𝑋/𝑚1⌋ é o quociente e 𝑟1o resto. Para calcular ⌊ 𝑋/𝑚1⌋ basta dividir ambos os lados de (2.9) por 𝑚1e tomar a parte inteira do resultado módulo 𝑚ˆ1,

⌊︃ 𝑋 𝑚 1 ⌋︃ = |︁ |︁ |︁ |︁ ⌊︃ 𝑋 𝑚 1 ⌋︃ |︁ |︁ |︁ |︁ 𝑚ˆ 1 = |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ ⌊︄ 𝐿 ∑︂ 𝑖=1 |𝑚ˆ−1𝑖 |𝑚𝑖 𝑚ˆ𝑖 𝑚 1 𝑟𝑖 ⌋︄ |︁ |︁ |︁ |︁ |︁ 𝑚ˆ 1 − =0 ⏟ˉˉˉˉˉˉˉˉˉˉ⏞⏞ˉˉˉˉˉˉˉˉˉˉ⏟ |︁ |︁ |︁ |︁ 𝑀 𝑚 1 A( 𝑋) |︁ |︁ |︁ |︁ 𝑚ˆ 1 |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ 𝑚ˆ 1 = = |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ ⌊︃ |𝑚ˆ−1 1 |𝑚1 𝑚ˆ 1 𝑚 1 𝑟 1 ⌋︃ |︁ |︁ |︁ |︁ 𝑚ˆ 1 + 𝐿 ∑︂ 𝑖=2 |𝑚ˆ𝑖−1|𝑚𝑖 𝑚ˆ𝑖 𝑚 1 𝑟𝑖 |︁ |︁ |︁ |︁ |︁ 𝑚ˆ 1 . (2.11)

Para a classe de módulos considerada {2𝑛,2𝑞 − 1}, o termo associado com 𝑖 = 1 pode ser reescrito usando |𝑚ˆ1−1|𝑚1 = |−1|𝑚1 = 𝑚1− 1 como

|︁ |︁ |︁ |︁ ⌊︃ (𝑚1− 1)𝑚ˆ1 𝑚 1 𝑟 1 ⌋︃ |︁ |︁ |︁ |︁ 𝑚ˆ 1 = |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ =0 ⏟ˉˉˉˉˉ⏞⏞ˉˉˉˉˉ⏟ |︁ |︁ |︁ |︁ 𝑚1𝑚ˆ1  𝑚 1 |︁ |︁ |︁ |︁ 𝑚ˆ 1 +⌊︃ −𝑚ˆ1 𝑚 1 𝑟 1 ⌋︃ |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ 𝑚ˆ 1 = = |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ −24𝑛 𝑚 1 𝑟 1 |︁ |︁ |︁ |︁ 𝑚ˆ 1 + =0 ⏟⏞⏞⏟ ⌊︃ 𝑟 1 𝑚 1 ⌋︃ |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ |︁ 𝑚ˆ 1 = |︁ |︁ |︁ |︁ |︁ |︁𝑚ˆ−1 1 |︁ |︁ 𝑚 1 (𝑚ˆ1+ 1) 𝑚 1 𝑟 1 |︁ |︁ |︁ |︁ 𝑚ˆ 1 . (2.12)

Assim, (2.10) pode ser expressa usando (2.12) como 𝑋 = |︁ |︁ |︁ |︁ |︁ 𝐿 ∑︂ 𝑖=1 |𝑉𝑖𝑟𝑖|𝑚ˆ 1 |︁ |︁ |︁ |︁ |︁ 𝑚ˆ 1 𝑚 1+ 𝑟1, (2.13) em que 𝑉 1= 𝑚ˆ 1|𝑚ˆ−11 |𝑚1− 1 𝑚 1 , (2.14)

(29)

e 𝑉𝑖 = |︁ |︁𝑚ˆ−1𝑖 |︁ |︁ 𝑚𝑖 𝑚ˆ𝑖 𝑚 1 (2.15) para 𝑖 ≠ 1.

Nesta formulação, como 𝑚1 = 2 𝑛

e 𝑚ˆ1 = 2 𝑞

− 1, as operações modulares são menos complexas [16, 18–20, 22, 23, 25, 42, 43] do que no CRT original [44]. Por exemplo, as multiplicações por constante são simplificadas como rotações para esquerda aplicando EAC, devido à periodicidade do módulo 2𝑛− 1. Ademais, em (2.10) não há necessidade da redução complexa módulo 𝑀 como em (2.1).

Apesar do NCRT1fornecer implementações menos complexas para variações do con-juntoM𝑇, há restrições nas escolhas dos módulos (consequentemente da base doRNS), o que limita a cardinalidade e a faixa dinâmica. Em outras palavras, há um número finito de conjuntos modulares que podem extrair as principais vantagens doNCRT1, como mostrado na Tabela1. Por outro lado, aplicações que requerem maior faixa dinâmica e maior paralelismo podem se beneficiar dos módulos genéricos, tipicamente utilizados quando faixas dinâmicas elevadas são necessárias.

2.3.2 Conjuntos Modulares para Faixas Dinâmicas Elevadas

Para obter um mapeamento isomórfico a partir doCRT, basta selecionar um conjunto coprimo e aplicar (2.1). Assim, as primeiras abordagens para obter conjuntos modulares com faixas dinâmicas elevadas baseavam-se na escolha de módulos primos [14, 33, 45]. Embora a escolha dos módulos seja simples, tais conjuntos dificultam a inferência de simplificações na conversão reversa, visto que nenhum padrão pode ser assumido nas estruturas modulares. Por outro lado, a aplicação direta de (2.1) requer uma complexa redução modular proporcional a toda faixa dinâmica, devido ao módulo 𝑀.

Duas formas de contornar tais limitações são evidentes no estado da arte. A primeira, consiste em introduzir simplificações no CRT sem levar em consideração as estruturas dos módulos. Esta abordagem levou à criação de uma formulação alternativa para oCRT, em que os cálculos são realizados a partir de valores fracionais, denominadaChinese Remainder Theorem

with Fractions (CRTF)[31]. A segunda, é baseada na escolha de conjuntos que apresentam certa estrutura conhecida, comoM𝑓 = {2

𝑛+𝛽

,2𝑛± 1, 2𝑛± 𝑘 1,2

𝑛

± 𝑘2, . . . ,2𝑛± 𝑘𝑓}5[28], que podem ser utilizados para simplificar oCRT.

Para fins de completude, o CRTF como formulado no estado da arte, é apresentado na sequência e, posteriormente, simplificado no Capítulo 3 para as estruturas modulares do conjuntoM𝑓, como uma contribuição deste trabalho.

(30)

2.3.2.1 Chinese Remainder Theorem with Fractions

Dividindo ambos lados de (2.1) por 𝑀 obtém-se a equação abaixo 𝑋˜ = 𝑋 𝑀 = |︁ |︁ |︁ |︁ |︁ 𝐿 ∑︂ 𝑖=1 𝑚ˆ𝑖|𝑚ˆ−1 𝑖 |𝑚𝑖 𝑀 𝑟𝑖 |︁ |︁ |︁ |︁ |︁ 1 = |︁ |︁ |︁ |︁ |︁ 𝐿 ∑︂ 𝑖=1 |𝑚ˆ−1 𝑖 |𝑚𝑖 𝑚𝑖 𝑟𝑖 |︁ |︁ |︁ |︁ |︁ 1 , (2.16)

em que, | · |1fornece a parte fracionária da somas das divisões6 (|𝑚ˆ−1𝑖 |𝑚𝑖)/𝑚𝑖. Como |𝑚ˆ

−1 𝑖 |𝑚𝑖 e

𝑚𝑖 são constantes e conhecidas a priori, é possível estimar o erro de aproximação nas divisões e obter o resultado correto na faixa dinâmica desejada [0, 𝑀 − 1] [31]. O CRTF foi proposto em [46] para detecção de sinal no RNS. Recentemente, a quantidade de bits necessária para conversão reversa exata na faixa dinâmica [0, 𝑀 − 1] foi determinada em [31] como

𝑁 = ⌈︄ log2 (︄ 𝑀 · 𝐿 ∑︂ 𝑖=1 (𝑚𝑖− 1) )︄ ⌉︄ − 1. (2.17)

Assim, as divisões (|𝑚ˆ−1𝑖 |𝑚𝑖)/𝑚𝑖 são quantizadas em valores inteiros como

𝑐′ 𝑖 = ⌈︄ |𝑚ˆ−1𝑖 |𝑚𝑖 𝑚𝑖 · 2𝑁 ⌉︄ . (2.18)

Com base nas constantes 𝑐′𝑖, uma aproximação 𝑋˜ para o valor posicional 𝑋 é obtida através da equação 𝑋˜ = |︁ |︁ |︁ |︁ |︁ 𝐿 ∑︂ 𝑖=1 𝑐′ 𝑖𝑟𝑖 |︁ |︁ |︁ |︁ |︁ 2𝑁 . (2.19)

Finalmente, a informação posicional é recuperada, na faixa dinâmica [0, 𝑀 − 1], utilizando 𝑋 = ⌊︃ 𝑋˜ · 𝑀 2𝑁 ⌋︃ . (2.20)

Dessa forma, é possível obter a representação posicional de 𝑋 realizando operações baseadas no módulo 2𝑁, resultando em reduções de complexidade e atraso [31] em comparação com oCRTformulado através de (2.1). Ademais, como apresentado em [46], 𝑋˜ apresenta certas propriedades posicionais, permitindo a determinação do sinal de 𝑋 através do seu MSB. Em suma, para módulos genéricos, oCRTFpode ser atrativo em comparação com oCRToriginal, visto que este fornece de forma implícita o sinal de 𝑋, sem necessidade de um circuito explícito para detecção, evitando a redução modular 𝑀.

2.4 CONCLUSÕES

Este capítulo foi dedicado a apresentação de uma breve revisão doRNSe suas operações elementares, bem como algumas das principais abordagens do estado da arte para projeto de

(31)

RNSs. Nessa perspectiva, foi evidenciada a existência de um compromisso entre cardinalidade, faixa dinâmica e complexidade de conversão reversa. Assim, o conjunto modular tem impacto significativo no desempenho da unidadeRNScomo um todo. No estado da arte há uma tendên-cia na utilização de conjuntos modulares que fornecem aritmética simplificada, como aqueles obtidos a partir das extensões do conjuntoM𝑇. No entanto, esses conjuntos possuem cardina-lidade e faixa dinâmica limitada. Consequentemente, conjuntos genéricos, tais comoM𝑓 têm sido explorados para aplicações que requerem faixas dinâmicas maiores. Os próximos capítulos descrevem as contribuições para aplicação do CRTF ao conjunto genérico M𝑓 (Capítulo3), a extensão do conjunto proposto em [29] (Capítulo 4) e, também, uma nova abordagem para multiplicação modular por constantes (Capítulo5).

(32)

CAPÍTULO

3

CHINESE REMAINDER THEOREM WITH

FRACTIONS PARA CONJUNTOS MODULARES

GENÉRICOS

Este capítulo apresenta duas contribuições originais deste trabalho. A primeira delas é uma formulação do Chinese Remainder Theorem with Fractions (CRTF) para conjuntos derivados da famíliaM𝑓 = {2 𝑛+𝛽 ,2𝑛±1, 2𝑛± 𝑘 1,2 𝑛± 𝑘 2, . . . ,2 𝑛± 𝑘 𝑓}. Arquiteturas de hardware específicas para conversores reversos desta família de conjuntos são derivadas utilizando as equações apresentadas na Seção 2.3.2.1. A segunda contribuição é focada em um método de soma multioperando (adaptado de [47]). Assim, uma breve contextualização e motivação introduz o assunto na Seção3.1. OCRTFé formulado na Seção3.2para conjuntos pertencentes àM𝑓. A Seção3.3descreve a arquitetura e os procedimentos propostos para gerar compressores esparsos. Os resultados experimentais são resumidos na Seção3.4. Finalmente, a Seção3.5lista as considerações finais do capítulo.

3.1 CONTEXTUALIZAÇÃO E MOTIVAÇÃO

Algoritmos formulados noResidue Number System (RNS)tipicamente requerem faixas dinâmicas maiores do que seus análogos em um sistema posicional. NoRNS, é usual contornar o crescimento numérico fornecendo faixa dinâmica suficiente para evitar operações complexas como detecção de overflow e escalonamento [4]. No entanto, na escolha do conjunto modular, é desejável manter o valor absoluto dos módulos, ou seja, a quantidade de bits por canal, relati-vamente baixa. Assim, aumentar a faixa dinâmica doRNS, mantendo a cardinalidade fixa, não necessariamente produz implementações eficientes para um dado algoritmo. Em consequência, conjuntos modulares genéricos, extensíveis tanto na faixa dinâmica quanto na cardinalidade, têm sido explorados na literatura como uma possível solução para estas restrições de projeto [28,29]. Neste contexto, oCRTFconstitui uma solução alternativa aoChinese Remainder

(33)

Theo-rem (CRT)original, pois a complexa redução modular 𝑀 é evitada, como demonstrado em [31]. Ademais, uma representação intermediária é obtida com oCRTF, permitindo formular as opera-ções de determinação de sinal, detecção de overflow e divisão com base nos resultados parciais da conversão reversa, independentemente do conjunto modular [48]. Dessa forma, este traba-lho apresenta uma formulação do CRTF para o conjunto M𝑓 e uma arquitetura de hardware eficiente, explorando esparsidade na soma multioperando modular.

3.2 FORMULAÇÃO DO CRTF PARA CONJUNTOS DE MÓDULOS GENÉRICOS DE ACORDO COM [35]

Seguindo a formulação apresentada em [30] e considerando conjuntos de módulos gené-ricos expressos comoM𝑓 = {2

𝑛+𝛽 ,2𝑛± 1, 2𝑛± 𝑘 1,2 𝑛± 𝑘 2, . . . ,2 𝑛± 𝑘 𝑓}1[28], o produto direto de todos os módulos 𝑚𝑖fornece a faixa dinâmica e pode ser expresso, neste caso, como

𝑀 = 2𝑛+𝛽 𝐼 ∏︂

𝑖=2

𝑚𝑖= 2𝑛+𝛽𝑀′, (3.1)

em que, 𝑀′ = ∏︁𝐼𝑖=2𝑚𝑖. Aplicando (3.1) em (2.17) e observando que ∑︁𝐿

𝑖=1(𝑚𝑖− 1) = (2 𝑛+𝛽 + 𝑓2𝑛+1− 𝐿), tem-se que a quantidade de bits necessária para conversão reversa exata na faixa dinâmica [0, 𝑀 − 1] é 𝑁 =⌈︁log 2𝑀+ log2(2 𝑛+𝛽 + 𝑓 2𝑛+1 − 𝐿)⌉︁ − 1. (3.2)

Assim, quando ( 𝛽 >> 1) obtém-se 𝑁 ≈ 𝐷𝑅+ (𝑛 + 𝛽), em que 𝐷𝑅, representa a faixa dinâmica. A aplicação dessa expressão para 𝑁 em (2.20) resulta em

𝑋 = ⌊︃ 𝑋˜ · 2𝑛+𝛽𝑀′ 2𝐷𝑅+(𝑛+𝛽) ⌋︃ = ⌊︃ 𝑋˜ · 𝑀′ 2𝐷𝑅 ⌋︃ . (3.3)

Com base em (3.3), pode-se obter uma arquitetura para conversão reversa simplificada a partir do conjunto de resíduosM𝑓, como demonstrado na próxima seção.

3.2.1 Arquitetura de hardware proposta em [35]

A Equação (3.3) pode ser expressa na forma binária para qualquer valor de 𝑓 e 𝛽. Porém, para fins de clareza, os valores considerados na obtenção da arquitetura de hardware são 𝛽 = 𝑛 e 𝑓 = 2, com 𝑘1 = 1 e 𝑘2 = 3. Essas considerações fornecem uma faixa dinâmica 𝐷𝑅 ≈ 6𝑛 bits para o conjunto {22𝑛,21± 1, 2𝑛± 3}. Dessa forma, a aproximação 𝑋˜ é obtida aplicando 𝑁 = 26𝑛+𝑛+𝑛 = 28𝑛 em (3.3) como 𝑋 = ⌊︄ ∑︁8𝑛−1 𝑖=0 2 𝑖 𝑥′ 𝑖 · ∑︁4𝑛−1 𝑗=0 2 𝑗 𝑚′ 𝑗 26𝑛 ⌋︄ = ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ∑︁ 𝑖+ 𝑗 ≥6𝑛 2(𝑖+ 𝑗 −6𝑛)𝑥′ 𝑖𝑚 ′ 𝑗 · ∑︁ 𝑖+ 𝑗 <6𝑛 2(𝑖+ 𝑗 )𝑥′ 𝑖𝑚 ′ 𝑗 26𝑛 ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ , (3.4)

(34)

em que, 𝑥′𝑖 e 𝑚 ′

𝑗 são os bits das representações binárias de 𝑋˜ e 𝑀 ′

, respectivamente. A Equa-ção (3.4) permite realizar a conversão reversa com 12𝑛 bits, ao invés de 14𝑛 bits, como origi-nalmente proposto em [31]. Adicionalmente, através de (3.4), pode-se realizar o produto 𝑋˜ · 𝑀′ através de deslocamentos e dois compressores em paralelo, como apresentado em [30]. Essa abordagem reduz a quantidade de bits da soma final por 𝐷𝑅+ 2𝑛 bits. Assim, a arquitetura de hardware proposta em [30] é apresentada na Figura3.

Portanto, para obter a representação posicional de 𝑋 basta calcular o produto de todas as constantes 𝑐′𝑖 pelos respectivos resíduos modulares 𝑟𝑖, de acordo com (2.19). Este processo produz uma matriz2 de produtos parciais reduzidos módulos 2𝑁, representados pelo retângulo tracejado na Figura 3. Finalmente, multiplicando por 𝑀′ na Figura 3 e dividindo por 2𝑁 o resultado produz a representação posicional 𝑋.

...

...

...

LSB MSB

Figura 3 – Arquitetura de hardware proposta em [30], considerando o conjunto de módulosM𝑓 com 𝑓 = 2, 𝑘1 = 1 e 𝑘2= 3. | × |2𝑁 e | + |

2𝑁 representam as operações de multiplicação

por constante e adição modular, respectivamente. O retângulo tracejado representa um compressor modular seguido de uma soma completa.

As arquiteturas dos compressores modulares para o cálculo das multiplicações por cons-tantes 𝑐′𝑖𝑟𝑖 e 𝑋˜ 𝑀, conforme apresentado em [30], não levam em consideração os formatos específicos dos produtos parciais. No entanto, as matrizes de produtos parciais, provenientes dessas multiplicações por constante, apresentam certa esparsidade de informação, a qual pode ser explorada para redução da área ocupada na compressão. Para exemplificar, uma matriz de produtos parciais é representada na Figura4, em que somente a parte hachurada contém a

infor-2Note que, a nomenclatura matriz é utilizada, neste contexto, para representar um agrupamento bidimensional de produtos e não, necessariamente, uma matriz no sentido matemático.

(35)

mação a ser somada. Portanto, é evidente, a partir do exemplo na Figura4, que um compressor multioperando modular esparso poderia apresentar vantagens em comparação com um com-pressor genérico. A próxima seção detalha a arquitetura esparsa proposta para os comcom-pressores utilizados noCRTF, como melhoria em relação a [30].

LSB MSB

11 Produtos parciais

Produtos Parciais Zeros

Figura 4 – Exemplo de esparsidade dos produtos parciais noCRTFconsiderando o conjunto de módulosM𝑓 com 𝑓 = 2, 𝑘1= 1, 𝑘2 = 3 e 𝑛 = 5.

3.3 APRIMORAÇÕES AO CRTF: EXPLORANDO ESPARSIDADE NA COMPRES-SÃO MODULAR

As multiplicações por constante 𝑐′𝑖𝑟𝑖 são tipicamente realizadas em duas etapas, inde-pendentemente do método de soma multioperando. Primeiro, os produtos parciais são gerados seguindo as propriedades periódicas3do módulo 2𝑁, sendo então agrupados para todas as cons-tantes em uma matriz 𝑷, como apresentado na Figura4. Nessa representação, cada resultado da multiplicação dos bits da constante 𝑐′𝑖pela variável 𝑟𝑖(operação lógica AND) é inserido na sua posição respectiva em 𝑷, similar à multiplicação convencional (veja Seção2.2.3). Na sequência, um compressor modular é aplicado para reduzir o número de produtos parciais (linhas da matriz) para somente duas linhas, as quais são somadas através de uma soma modular completa (como descrito na Seção2.2.1). Assim, para gerar um compressor modular esparso para o CRTF, é necessário definir os seus componentes e também elaborar um algoritmo de alocação destes componentes em 𝑷, como será descrito a seguir.

A soma multioperando de uma matriz de produtos parciais pode ser interpretada como uma compressão vertical através da soma das colunas [33]. Dessa forma, um circuito aritmético que soma 𝑔 bits em uma dada coluna, produzindo um resultado com 𝑡 bits como saída, é denominado contador (𝑔 : 𝑡). Como exemplo, um meio somador é essencialmente um contador (2 : 2), enquanto um somador completo é representado como (3 : 2). Por outro lado, utiliza-se a notação compacta [ 𝑝𝑠−1, . . . , 𝑝1, 𝑝0] para denotar os produtos parciais na entrada de um contador qualquer, em que 𝑝𝑗 denota a quantidade de produtos parciais que o contador é capaz de absorver na coluna 𝑗 . Pelo mesmo princípio, denota-se como [ℎ𝑡−1, . . . , ℎ1, ℎ0] a saída de um dado contador com 𝑡-bits. Portanto, os blocos básicos considerados na composição do

(36)

compressor esparso são resumidos na Figura 5. Conforme apresentado em [47], o contador4 (5 : 3) apresenta maior compressão e aproximadamente o mesmo atraso que um contador (3 : 2). Por essa razão, esse contador é considerado neste trabalho. Assim, considera-se (3 : 2) e (5 : 3) como elementos básicos para construção do compressor modular (retângulo pontilhado na Figura3).

FA FA FA

Figura 5 – Contadores básicos utilizados na construção do compressor esparso, em que (𝑖, 𝑗 ) denotam linhas e colunas de um segmento de 𝑷, respectivamente.

A geração do compressor modular esparso proposto é baseada em dois procedimentos centrais, adaptados de [47] e simplificados nos Pseudocódigos 1 e 2. No Pseudocódigo 1, 𝑉 representa uma lista com a soma dos elementos diferentes de zero nas colunas de 𝑷; e 𝐶𝑝 = [ [2, 3], [3]] é a lista dos contadores considerados e os seus fatores de compressão na entrada. Assim, enquanto houver mais de dois elementos diferentes de zero nas colunas de 𝑷 (Linha6no Pseudocódigo1), os contadores em 𝐶𝑝são instanciados e as descrições de hardware são geradas a fim de reduzir o número de produtos parciais (Linha 11). Como cada contador gera novamente produtos parciais nos resultados das somas das entradas, é necessário atualizar a matriz 𝑷 produzindo um novo 𝑉 (Linhas10e12).

Resta definir o procedimento para determinar se um contador 𝑐 pode ser instanciado para um dado 𝑉 (Pseudocódigo1Linha 8). Assim, 𝑐 será instanciado se e somente se os produtos parciais forem suficientes para serem somados na sua entrada, o que se resume a verificar o quociente da divisão dos elementos, como mostrado nas Linhas7e9do Pseudocódigo2.

Para fins de simplicidade, o exemplo na Figura 6 utiliza diagramas de pontos para demonstrar duas iterações na geração do compressor esparso para a matriz apresentada na Figura 4. Como pode ser observado na Figura 6, o contador (5 : 3), com maior fator de compressão, é alocado primeiro. Posteriormente, as colunas com bits restantes são reduzidas utilizando contadores (3 : 2). Ademais, é importante observar a quantidade reduzida de bits (37) em comparação com os valores fornecidos por (3.2) (40), apresentada em [30]. Como o

4Note que, a notação é ligeiramente inconsistente para o contador (5 : 3), pois este, na realidade, é um contador (2, 3 : 3) que absorve 3 produtos parciais na coluna 𝑗 e 2 produtos parciais na coluna 𝑗 + 1. Entretanto, a notação (5 : 3) é mantida para consistência com o estado da arte.

(37)

Pseudocódigo 1 Alocação dos contadores da Figura 5 para geração do compressor esparso proposto.

1: procedure Compress(𝑷, 𝐶𝑝) ⊲A matriz 𝑷 e os contadores 𝐶𝑝são entradas.

2: 𝑷𝑘 ← 𝑷

3: 𝑉 ← soma dos elementos diferentes de zero nas colunas de 𝑷𝑘

4: 𝑘 ← 0

5: F ← 0

6: while max (𝑉) > 2 do 7: for 𝑐 em 𝐶𝑝do

8: F← Fits(𝑉 , 𝑐) ⊲Retorna uma lista com os índices em que 𝑐 encaixa em 𝑷𝑘.

9: for 𝑓 em F doPara todos os índices em que o contador 𝑐 encaixa em 𝑷𝑘.

10: 𝑷𝑘 ← atualiza 𝑷𝑘 ⊲Atualiza 𝑷𝑘, com base nas saídas dos compressores.

11: Gera as descrições de hardware

12: 𝑉 ← soma dos elementos diferentes de zero nas colunas de 𝑷𝑘

13: 𝑘 ← 𝑘 + 1

14: return 𝑷𝑘 ⊲ 𝑷𝑘 contém os últimos produtos parciais a serem somados

canal 𝑚1 = 2 𝑛+𝛽

é sempre par no conjunto M𝑓, as aproximações através de (2.17) e (3.2) superestimam a quantidade de bits necessária para mapear as frações (2.18) na faixa dinâmica 𝑀. Assim, como a geração é realizada de forma automatizada, 𝑁 é determinado de forma numérica, sendo possível economizar alguns bits na compressão, mantendo a mesma estrutura geral da Figura3.

Finalmente, com base nos procedimentos descritos, as arquiteturas propostas e a apre-sentada em [30] são geradas em VHDL, sendo posteriormente mapeadas em Standard Cells, para caracterizar os conversores reversos baseados noCRTF.

Pseudocódigo 2 Determina se um dado contador encaixa na matriz 𝑷 e retorna os índices respectivos como uma lista aninhada.

1: procedure Fits(𝑉, 𝑐) 2: temp ← 0

3: F ← [] ⊲Lista com os índices em que o compressor 𝑐 pode ser instanciado.

4: for 𝑗 em 𝑉 doPara todas as colunas em 𝑷.

5: T ← True

6: for 𝑝𝑗 em 𝑐 do ⊲Para todos os produtos parciais absorvidos na entrada de 𝑐.

7: temp ← 𝑗 \𝑝𝑗 ⊲Quociente.

8: if temp == 0 thenNão há produtos parciais suficientes.

9: T ← False

10: if T then

11: Acrescenta índices em FCalcula e anexa os índices à lista 𝐹.

(38)

LSB MSB

Figura 6 – Exemplo de duas interações na geração do compressor esparso para matriz de produtos parciais proveniente das multiplicações 𝑟𝑖𝑐

𝑖na Figura3(considerando o conjunto de módulosM𝑓 com 𝑓 = 2, 𝑘1= 1, 𝑘2 = 3 e 𝑛 = 5).

3.4 RESULTADOS EXPERIMENTAIS

Para fins de comparação, as arquiteturas de hardware esparsas propostas e a implemen-tação descrita em [30] são geradas de forma automática em VHDL e mapeadas na biblioteca de Standard Cells de 65 nm da UMC [49]. A ferramenta Synopsys Design Compiler5 versão F-2011.09-SP5-2 é configurada para aplicar recursos ilimitados para atingir a frequência de operação de 1 GHz. Os resultados factíveis nessas condições são expostos nas Tabelas 2 e 3

para conjuntos modulares diferentes, com os melhores resultados destacados em negrito. Além das métricas típicas de avaliação de circuitos digitais (i.e., Atraso (ns), Área (10 × 103µm2) e Potência (mW)), figuras de mérito para conversores reversos são calculadas com base em [23]. Assim, define-se:Produto Área Atraso (ADP); Eficiência como a máxima frequência de ope-ração por Área; e, Energia como produto atraso por potência máxima. Note que Eficiência é interpretada no sentido crescente, assim, quanto maior a eficiência, maior é a frequência de operação para uma dada área ocupada.

É evidente, a partir do método descrito na seção anterior, que o compressor modular esparso proposto apresenta vantagens em economia de área em comparação com o compressor genérico utilizado em [30]. No entanto, como não há restrição aplicada no número de iterações do Pseudocódigo1, não é esperado que oCRTF baseado no compressor esparso proposto seja mais rápido que [30]. Isto é, o compressor genérico em [30] utiliza Árvores de Wallace, que apresenta atraso assintótico ao limite inferior, com compressão máxima em cada nível. Por outro lado, como pode ser observado na Figura6, nem todos os produtos parciais são reduzidos em cada etapa. Assim, deve-se economizar área evitando instanciar contadores, levando em

5Como parâmetros de compilação são utilizados: -exact_map -map_effort high -area_effort medium -power_effort medium. Nenhum pipeline interno é considerado, enquanto o circuito é registrado nas suas entradas e saídas.

Referências

Documentos relacionados

Quadro 5-8 – Custo incremental em função da energia em períodos de ponta (troços comuns) ...50 Quadro 5-9 – Custo incremental em função da energia ...52 Quadro 5-10

Dada a plausibilidade prima facie da Prioridade do Conhecimento Definicional, parece que não se poderia reconhecer instâncias de F- dade ou fatos essenciais acerca

Para tentar reduzir as pendências de casas em que o acesso foi vedado, a Defesa Civil de Belo Horizonte adotou estratégia ostensiva para localizar os proprietários..

Aristides Cimadon, no uso de suas atribuições, torna público o presente Edital destinado a inscrições para o Curso de Pós- graduação stricto sensu, Mestrado Acadêmico em Sanidade

Os estudos iniciais em escala de bancada foram realizados com um minério de ferro de baixo teor e mostraram que é possível obter um concentrado com 66% Fe e uma

Quando a luz acende, o console está sob a condição de monitoramento, com os medidores de nível principal mostrando o nível do sinal do canal do monitor e o sinal do canal é

Este trabalho é resultado de uma pesquisa quantitativa sobre a audiência realizada em 1999 envolvendo professores e alunos do Núcleo de Pesquisa de Comunicação da Universidade

O sistema gerencia os dispositivos (pneumáticos, eletrônico-digitais e atuadores de força e posição) incorporados ao equipamento, permitindo ao usuário o acompanhamento, em tempo