N◦d’ordre:656 N◦attribuéparlabibliothèque:2011ENSL0656 ÉCOLE NORMALE SUPÉRIEURE DE LYON Laboratoire de l’Informatique du Parallélisme THÈSE présentéeetsoutenuepubliquementle21Septembre2011par Bogdan PASCA pourl’obtentiondugradede Docteur de l’École Normale Supérieure de Lyon spécialité : Informatique autitredel’ÉcoleDoctoraledeMathématiquesetd’InformatiqueFondamentaledeLyon High-performance floating-point computing on reconfigurable circuits Directeurdethèse: Florent DE DINECHIN Aprèsavisde: Paolo IENNE Olivier SENTIEYS Devantlacommissiond’examenforméede: Octavian CRET Membre Florent DE DINECHIN Membre Paul FEAUTRIER Membre Paolo IENNE Membre/Rapporteur Martin LANGHAMMER Membre Olivier SENTIEYS Membre/Rapporteur Acknowledgements Firstofall,Iwanttothankmyfamilyfortheirpricelessandunconditionedsupportallthrough- outthisthesis. TheymademewhatIamtodayandIwillbeforevergrateful. Next,IwanttokindlythankmygirlfriendMioaraforherloveandsupportwhichhelpedme toseamlesslyovercomeallencounteredchallenges. Thankyouforbeingsupportiveandencour- agingduringthelatehourswespentattheofficeonourendlessdeadlines. I also want to thank our Romanian community from ENS, for all the brilliant time spent to- gether. The endless polemics on various subjects were both cultivating and helped me signifi- cantlyimprovemyargumentationcapabilities. Thelongandchallengingbikerides,gympractice, climbing,running... mademealwayspushmyselfonestepfurther,whichIalsotriedtoapplyto research. I especially want to thank my supervisor Florent for believing in my potential and efficiently using my skills throughout the thesis time. His guidance was excellent, always coming up with interesting subjects to work on, but also providing me with sufficient freedom to tackle my own researchsubjects. I also want to thank my thesis reviewers, whose constructive comments helped me further improve this manuscript, and the jury members for their pertinent and challenging questions duringthedefense. AbigthankstoCompSysmembers,AlexandruandChristophe,fortheinterestingdiscussions carried around the long coffee/tea brakes. These discussions did not only widen my research interests,butalsoresultedinoneresearcharticleduringthelastyearofthisthesis. Last but not least, I want to thank the Arenaire team members, for their kindness and for alwayshavingthedooropenforme. Ialsoliketothankourteamassistants,SeverineandDamien foralltheirhelpinsimplifyingthesometimesoverwhelmingpaperworks. Many thanks to my friends and everyone else which I haven’t mentioned here for their help andsupport. Contents 1 Introduction 1 2 FieldProgrammableGateArrays 5 2.1 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.1 Logicelements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.2 DSPblocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1.3 Blockmemory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2 FPGAdesignflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.3 Applicationmarkets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3 Floating-pointarithmetic 17 3.1 Generalities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.1.1 Representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.1.2 Rounding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.1.3 Errors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.2 Floating-pointarithmeticonFPGAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4 Customarithmeticdata-pathdesign 25 4.1 Arithmeticoperators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.1.1 FPGA-specificarithmeticoperatordesign . . . . . . . . . . . . . . . . . . . . . 26 4.1.2 Fromlibrariestogenerators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.2 DesignchoicesforFloPoCo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.3 Amotivatingexample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.4 TheFloPoCoframework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.4.1 Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.4.2 Automaticpipelinemanagement . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.4.3 Synchronizationmechanisms . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.4.4 Managingsubcomponents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.4.5 Sub-cycleaccuratedata-pathdesign . . . . . . . . . . . . . . . . . . . . . . . . 35 4.4.6 Frequency-drivenautomaticpipelining . . . . . . . . . . . . . . . . . . . . . . 36 4.4.7 TheTargetclasshierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.4.8 Thebottom-line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.4.9 Test-benchgeneration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.4.10 Frameworkextensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 vi Contents 5 BinaryadditioninFloPoCo 43 5.1 Relatedwork. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 5.2 Design-spaceexplorationbyresourceestimation . . . . . . . . . . . . . . . . . . . . . 45 5.3 PipelinedadditiononFPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 5.3.1 ClassicalRCApipelining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.3.2 Resourceestimationtechniques . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.3.3 AlternativeRCApipelining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.3.4 Area-complexityofthepipelineddesigns . . . . . . . . . . . . . . . . . . . . . 49 5.4 Short-latencyadditionarchitecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.4.1 Classiccarry-selectadder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.4.2 Accelerationofinter-blockcarries . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.4.3 TheAdd-Add-Multiplex(AAM)carry-selectarchitecture . . . . . . . . . . . . 52 5.4.4 TheCompare-Add-Increment(CAI)carry-incrementarchitecture . . . . . . . 53 5.4.5 TheCompare-Compare-Add(CCA)carry-selectarchitecture . . . . . . . . . . 54 5.4.6 Block-splittingstrategies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.4.7 Areacomplexityofthedesigns . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.5 Globalinferenceofshift-registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.6 Realitycheck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.6.1 Estimationformulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.6.2 Synthesisresults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.7 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 6 LargemultiplierswithfewerDSPblocks 63 6.1 LargemultipliersusingDSPblocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 6.2 Visualrepresentationofmultipliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 6.3 Karatsuba-Ofmanalgorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 6.3.1 Two-partsplitting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 6.3.2 ImplementationissuesonVirtex-4 . . . . . . . . . . . . . . . . . . . . . . . . . 66 6.3.3 Three-partsplitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 6.3.4 4-partsplitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 6.3.5 N-partsplitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 6.3.6 Issueswiththemostrecentdevices . . . . . . . . . . . . . . . . . . . . . . . . 71 6.4 Non-standardtilings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 6.4.1 Designdecisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 6.4.2 Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 6.4.3 Realitycheck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 6.5 Squarers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 6.5.1 SquarersonVirtex-4andStratix-II . . . . . . . . . . . . . . . . . . . . . . . . . 76 6.5.2 SquarersonStratix-IIIandStratix-IV . . . . . . . . . . . . . . . . . . . . . . . . 76 6.5.3 Non-standardtilingsonVirtex-5/6 . . . . . . . . . . . . . . . . . . . . . . . . . 77 6.6 Truncatedmultipliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 6.6.1 Faithfullyaccuratemultipliers . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 6.6.2 FPGAfitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 6.6.3 Architecturegenerationalgorithm . . . . . . . . . . . . . . . . . . . . . . . . . 79 6.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 vi Contents vii 7 Polynomial-basedarchitecturesforfunctionevaluation 83 7.1 Relatedwork. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 7.2 Functionevaluationbypolynomialapproximation . . . . . . . . . . . . . . . . . . . . 85 7.2.1 Rangereduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 7.2.2 Polynomialapproximation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 7.2.3 Polynomialevaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 7.2.4 Accuracyanderroranalysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 7.2.5 ParameterspaceexplorationfortheFPGAtarget . . . . . . . . . . . . . . . . 90 7.3 Realitycheck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 7.3.1 Optimizationeffect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 7.3.2 Examplesandcomparisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 7.4 Conclusion,openissuesandfuturework . . . . . . . . . . . . . . . . . . . . . . . . . 94 8 Multiplicativesquarerootalgorithms 97 8.1 Algorithmsforfloating-pointsquareroot . . . . . . . . . . . . . . . . . . . . . . . . . 97 8.1.1 Notationsandterminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 8.1.2 Thecostofcorrectrounding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 8.2 Squarerootbypolynomialapproximation . . . . . . . . . . . . . . . . . . . . . . . . . 100 8.3 Results,comparisons,andsomehandcrafting . . . . . . . . . . . . . . . . . . . . . . . 103 8.4 Conclusionandfuturework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 9 Floating-pointexponential 107 9.1 Relatedwork. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 9.2 Algorithmandarchitecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 9.2.1 Algorithmoverview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 9.2.2 Rangereduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 9.2.3 ComputationofeY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 9.3 Implementationissues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 9.3.1 Constantmultiplications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 9.3.2 Overallerroranalysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 9.3.3 Thecasestudyofsingleprecision . . . . . . . . . . . . . . . . . . . . . . . . . 114 9.3.4 Polynomialapproximationforlargeprecisions . . . . . . . . . . . . . . . . . . 114 9.3.5 Parameterselection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 9.4 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 9.4.1 Synthesisresults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 9.4.2 Comparisonwithotherworks . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 9.4.3 Comparisonwithmicroprocessors . . . . . . . . . . . . . . . . . . . . . . . . . 117 9.5 Conclusionandfuturework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 10 Floating-pointaccumulationandsum-of-products 119 10.1 Afastandaccurateaccumulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 10.1.1 Overallarchitecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 10.1.2 Parameterisationoftheaccumulator . . . . . . . . . . . . . . . . . . . . . . . . 121 10.1.3 Fastaccumulatordesignusingpartialcarry-save. . . . . . . . . . . . . . . . . 122 10.1.4 Post-normalisationunit,ornot . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 10.1.5 Synthesisresults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 10.2 Application-specificaccumulatordesign . . . . . . . . . . . . . . . . . . . . . . . . . . 124 10.2.1 Aperformancevs. accuracytradeoff . . . . . . . . . . . . . . . . . . . . . . . . 124 10.2.2 Acasestudy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 10.2.3 Accuracymeasurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 vii viii Contents 10.3 AccurateSum-of-Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 10.4 Comparisonwithrelatedwork . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 10.5 Conclusionandfuturework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 11 High-levelsynthesisofperfectloopnests 131 11.1 Computationaldata-pathgeneration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 11.2 Efficienthardwaregeneration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 11.2.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 11.2.2 Workingexamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 11.2.3 Parallelization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 11.2.4 OnedimensionalJacobistencilcomputation . . . . . . . . . . . . . . . . . . . 141 11.2.5 Lessons. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 11.2.6 Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 11.3 Computingkernelaccuracyandperformance . . . . . . . . . . . . . . . . . . . . . . . 146 11.3.1 Matrix-matrixmultiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 11.3.2 OnedimensionalJacobistencilcomputation . . . . . . . . . . . . . . . . . . . 148 11.3.3 Lessons. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 11.4 Realitycheck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 11.5 Conclusionandfuturework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 12 UsingFloPoCotosolveTableMaker’sDilemma 153 12.1 TheTableMaker’sDilemma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 12.2 Proposedalgorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 12.2.1 Thetabulateddifferencesmethod . . . . . . . . . . . . . . . . . . . . . . . . . 154 12.2.2 Erroranalysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 12.2.3 Anexample: theexponentialfunction . . . . . . . . . . . . . . . . . . . . . . . 157 12.3 Ourdesign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 12.3.1 Functionalmodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 12.3.2 Bandwidthrequirement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 12.3.3 Performanceestimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 12.3.4 RealityCheck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 12.3.5 FloPoCoimpact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 12.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 13 ConclusionsandPerspectives 167 viii List of Figures 2.1 VerysimplifiedviewofagenericFPGAlayout . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Left: CLBcompositionandinterconnectinVirtex-4devicesRight: Detailedviewof aVirtex-4Slice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3 Ripple-CarryAdder(RCA)implementationinVirtex-4devices . . . . . . . . . . . . 7 2.4 Architectural overview of the Adaptative Logic Module (ALM) block present in Stratixdevices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.5 OverviewoftheXilinxDSP48 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.6 InterconnectoftheDSPblocksLeft: StratixIIandRight: StratixIII-IVdevices . . . . . 11 2.7 VerysimplifiedoverviewoftheStratix-IIIhalf-DSPblock . . . . . . . . . . . . . . . . 11 2.8 ClassicalFPGAdesignflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.1 Distributionoffloating-pointnumbersinasystemξ(2,3,−2,3),havingaIEEE-754 equivalent p = 3 and w = 3. The -3 and 4 values of e are used to represent the e specialcasespresentedintable3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.2 TheroundingmodesspecifiedbytheIEEE-7542008standard . . . . . . . . . . . . . 20 3.3 Theabsoluteandrelativeerrorsofourrepresentation . . . . . . . . . . . . . . . . . . 21 3.4 InstructiondistributioninSPICEcircuitmodelingusingFPGAs[94] . . . . . . . . . 23 4.1 ProductivityinportingapplicationstoFPGAsandtherelativeperformanceofthese circuitsprovidedthedifferentlevelsofabstractionareprovidedforcircuitdescription 27 4.2 OptimizedarchitecturefortheSum-of-Squaresoperator . . . . . . . . . . . . . . . . 29 4.3 VerysimplifiedoverviewoftheFloPoCoclasshierarchy . . . . . . . . . . . . . . . . 31 4.4 Parallelevaluationofthepolynomiala x2+a x+a . . . . . . . . . . . . . . . . . . 33 2 1 0 4.5 SimplifiedoverviewofVHDLgenerationflow . . . . . . . . . . . . . . . . . . . . . . 38 5.1 FloPoCoclassstructureforbinaryaddition . . . . . . . . . . . . . . . . . . . . . . . . 44 5.2 Ripple-CarryAdderimplementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.3 Ripple-CarryAdditionFrequencyforVirtexIV,Virtex5andSpartan3E . . . . . . . . 47 5.4 Classicaladditionarchitecture[81] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.5 Annotatedclassicalarchitecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.6 ProposedFPGAarchitecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.7 ClassicCarry-SelectArchitecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.8 Carry-Add-Cell(CAC)implementationandrepresentation . . . . . . . . . . . . . . . 51 5.9 CarryComputationCircuitwithCarryRecovery . . . . . . . . . . . . . . . . . . . . . 52 5.10 TheAAMCarry-SelectArchitectureusing(a)theCCCandCRand(b)theCAC . . . 53 5.11 TheCAICarry-IncrementArchitecture . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.12 TheCCACarry-SelectArchitecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.13 Computationschedulingfortheproposedarchitectures . . . . . . . . . . . . . . . . . 55 5.14 MaximumadderwidthvscircuitfrequencyonVirtex5 . . . . . . . . . . . . . . . . . . . . 60 x ListofFigures 6.1 u×v-bitmultiplier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 6.2 u×v-bitmultiplier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 6.3 34x34bitmultiplierusingVirtex-4DSP48 . . . . . . . . . . . . . . . . . . . . . . . . . 67 6.4 119x119bitmultiplierusingVirtex-4DSP48forQPmantissamultiplier . . . . . . . . 70 6.5 119x119-bitKaratsuba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 6.6 53-bitmultiplicationusingVirtex-5DSP48E.Thedashedsquareisthe53x53multi- plication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 6.7 Somesuper-tilesexactlymatchingDSPblocks . . . . . . . . . . . . . . . . . . . . . . 74 6.8 Super-tilingprimitives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 6.9 Varioustilingsoflargemultipliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 6.10 Double-precisionsquaring. TilingsforStratixIII/IVandVirtex-5/6devices . . . . . 77 6.11 Truncatedmultiplicationandthecorrespondingtilingmultiplicationboard . . . . . 78 6.12 Truncation applied to multipliers. Left: Classical truncation technique applied to DSPs. Center: Improvedtruncationtechnique; M4iscomputedusinglogic. Right: FPGAoptimizedcompensationtechnique;M4isnotcomputed. . . . . . . . . . . . . 79 6.13 TilingtruncatedmultiplierusingDSPsandsoft-coremultipliers . . . . . . . . . . . . 80 6.14 MantissamultipliersforSP,DP,QP,Virtex4(left)andVirtex5(right)ensuringfaithful rounding. Thegraytilesrepresentsoft-coremultipliers . . . . . . . . . . . . . . . . . 81 7.1 FloPoCoclassstructureintegratingthegenericfixed-pointFunctionEvaluator . . . . 84 7.2 Automatedimplementationflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 7.3 Range reduction example for the f(x) = log (x), for x ∈ [0,1) where the input 2 intervalissplitintofoursub-intervals . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 7.4 Alignmentofthemonomials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 7.5 Thefunctionevaluationarchitecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 √ 8.1 Deducing the correctly rounded value of x on w bits from a faithfully rounded F resultonw bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 F+1 8.2 Bitsinvolvedinthecomparisono(cid:93)fx2 ≥ xarehighlighted . . . . . . . . . . . . . . . . 100 8.3 Themultipliersrequiredforthesquaringoperationoperation(cid:93)r2fordouble-precision onVirtex4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 8.4 Genericpolynomialevaluatorforthesquareroot . . . . . . . . . . . . . . . . . . . . . 101 8.5 Handcraftedarchitectureforsingleprecision . . . . . . . . . . . . . . . . . . . . . . . 104 9.1 Operandalignmentfor1+x+x2/2forx < 2−wF−2 . . . . . . . . . . . . . . . . . . . 108 9.2 Therangesoftheinputwheretheexponentialtakesspecificvalues . . . . . . . . . . 109 9.3 Architectureandfixed-pointdataalignment . . . . . . . . . . . . . . . . . . . . . . . 110 9.4 Improvedaccuracyconstantmultiplication . . . . . . . . . . . . . . . . . . . . . . . . 113 9.5 ThearchitectureevaluatingeZ −Z −1forVirtex-5/Virtex-6 . . . . . . . . . . . . . . 115 10.1 Iterativeaccumulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 10.2 Atypicalfloating-pointadder(w andw aretheexponentandsignificandsizes) . 120 E F 10.3 Theproposedaccumulator(top)andpost-normalisationunit(bottom). . . . . . . . . 121 10.4 Accumulationoffloating-pointnumbersintoalargefixed-pointaccumulator . . . . 121 10.5 Accumulator with 4-bit partial carry-save. The boxes are full adders, bold dashes are1-bitregisters,andthedotsshowthecriticalpath. . . . . . . . . . . . . . . . . . . 122 x
Description: