38
Lecture 07: RISC-V ISA CSE 564 Computer Architecture Summer 2017 Department of Computer Science and Engineering Yonghong Yan [email protected] www.secs.oakland.edu/~yan 1

Lecture 07: RISC-V ISA - GitHub Pages · Lecture 07: RISC-V ISA CSE 564 Computer Architecture Summer 2017 Department of Computer Science and Engineering Yonghong Yan [email protected]

  • Upload
    vothu

  • View
    230

  • Download
    0

Embed Size (px)

Citation preview

Lecture07:RISC-VISA

CSE564ComputerArchitectureSummer2017

DepartmentofComputerScienceandEngineeringYonghongYan

[email protected]/~yan

1

Contents

1.   RISC-VISA2.   1stageimplementaCon3.   ChiselhardwareconstrucConlanguage4.   PipelineimplementaCon

2

Acknowledgement

•  Slidesadaptedfrom–  ComputerScience152:ComputerArchitectureand

Engineering,Spring2016byDr.GeorgeMichelogiannakisfromUCB

3

WhatisRISC-V

•  RISC-V(pronounced"risk-five”)isaISAstandard(adocument)–  AnopensourceimplementaWonofareducedinstrucWonsetcompuWng(RISC)

basedinstrucWonsetarchitecture(ISA)–  TherewasRISC-I,II,III,IVbefore

•  MostISAs:X86,ARM,Power,MIPS,SPARC–  Commerciallyprotectedbypatents–  PrevenWngpracWcaleffortstoreproducethecomputersystems.

•  RISC-Visopen–  Permi]nganypersonorgrouptoconstructcompaWblecomputers–  Useassociatedso^ware

•  Theprojectwasoriginatedin2010byresearchersintheComputerScienceDivisionatUCBerkeley,butitnowhasalargenumberofcontributors.Asof2017version2oftheuserspaceISAisfixed–  User-LevelISASpecificaWonv2.2–  Dra^CompressedISASpecificaWonv1.79–  Dra^PrivilegedISASpecificaWonv1.10

4

GoalsindefiningRISC-V

•  AcompletelyopenISAthatisfreelyavailabletoacademiaandindustry•  ArealISAsuitablefordirectnaWvehardwareimplementaWon,notjust

simulaWonorbinarytranslaWon•  AnISAthatavoids"over-architecCng"for–  aparWcularmicroarchitecturestyle(e.g.,microcoded,in-order,decoupled,out-of-

order)or–  implementaWontechnology(e.g.,full-custom,ASIC,FPGA),butwhichallows

efficientimplementaWoninanyofthese

•  RISC-VISAincludes–  AsmallbaseintegerISA,usablebyitselfasabaseforcustomizedacceleratorsor

foreducaWonalpurposes,and–  OpConalstandardextensions,tosupportgeneral-purposeso^waredevelopment–  OpConalcustomerextensions

•  Supportfortherevised2008IEEE-754floaWng-pointstandard

5

LicensefortheISAspecificaCon

•  ItisaBSDOpenSourceLicense.–  Thisisanon-virallicense,onlyaskingthatifyouuseit,youacknowledgethe

authors,inthiscaseUCBerkeley.–  NopatentthatwouldberequiredtoimplementaRISC-V-compaWbleprocessor–  Theymaybemanymicro-architecturalpatentsthatmightbeinfringedbya

parWcularRISC-VimplementaWon.•  ButcannotindemnifyusersagainstISAorimplementaWonpatentsassertedbyothers

•  ThegoaloftheproposedRISC-VconsorWumistomaintainandtrackpossiblepatentissuesforRISC-Vimplementors

•  OpenSourceSo^wareLicense–  GPL:Extensionsmustbeopensourcedwiththesamelicense(kindof)–  BSD:Useitasyouwant/like(kindof)

6

RISC-VISAPrinciples

•  Generallykeptverysimpleandextendable•  SeparatedintomulWplespecificaWons–  User-LevelISAspec(computeinstrucWons)–  CompressedISAspec(16-bitinstrucWons)–  PrivilegedISAspec(supervisor-modeinstrucWons)–  More…

•  ISAsupportisgivenbyRV+word-width+extensionssupported–  E.g.RV32Imeans32-bitRISC-VwithsupportfortheI

instrucWonset

7

UserLevelISA

•  DefinesthenormalinstrucWonsneededforcomputaWon–  AmandatoryBaseintegerISA•  I:IntegerinstrucCons:ALU,branches/jumps,andloads/stores•  Supportformisalignedmemoryaccessismandatory

–  StandardExtensions• M:IntegerMulCplicaConandDivision•  A:AtomicInstrucCons•  F:Single-PrecisionFloaCng-Point•  D:Double-PrecisionFloaCng-Point•  C:CompressedInstrucCons(16bit)

•  G=IMAFD:Integerbase+fourstandardextensions–  OpWonalextensions

8

RISC-VISA

•  Both32-bitand64-bitaddressspacevariants–  RV32andRV64•  Easytosubset/extendforeducaWon/research–  RV32IM,RV32IMA,RV32IMAFD,RV32G

•  SPEConthewebsite–  www.riscv.org

9

RV32ProcessorState•  Programcounter(pc)

•  32x32-bitintegerregisters(x0-x31)–  x0alwayscontainsa0–  x1toholdthereturnaddressona

call.

•  32floaWng-point(FP)registers(f0-f31)–  Eachcancontainasingle-ordouble-

precisionFPvalue(32-bitor64-bitIEEEFP)

–  Isanextension

•  FPstatusregister(fsr),usedforFProundingmode&excepWonreporWng

10

RISC-VHybridInstrucConEncoding

•  16,32,48,64…bitslengthencoding•  BaseinstrucWonset(RV32)alwayshasfixed32-bitinstrucWonslowesttwobits=112

•  Allbranchesandjumpshavetargetsat16-bitgranularity(eveninbaseISAwhereallinstrucWonsarefixed32bits

11

FourCoreRISC-VInstrucConFormats

12

Reg.Source2 Reg.Source1

7-bitopcodefield(butlow2bits=112)

AddiConalopcodebits/immediate

DesCnaConReg.

Alignedonafour-byteboundaryinmemory.Therearevariants!Signbitofimmediatesalwaysonbit31ofinstrucCon.Registerfieldsnevermove

hqps://github.com/riscv/riscv-opcodes/blob/master/opcodes

AddiConalopcodebits

WithVariants

13

Reg.Source2 Reg.Source1

7-bitopcodefield(butlow2bits=112)

AddiConalopcodebits/immediate

DesCnaConReg.

AddiConalopcodebits

Basedonthehandlingoftheimmediates

ImmediateEncodingVariants

•  ImmediateproducedbyeachbaseinstrucWonformat–  InstrucWonbit(inst[y])

14

IntegerComputaConalInstrucCons(ALU)

•  I-type(Immediate),allimmediatesinallinstrucConsaresignextended–  ADDI:addssignextended12-bitimmediatetors1–  SLTI(U):setlessthanimmediate–  ANDI/ORI/XORI:LogicaloperaCons–  SLLI/SRLI/SRAI:Shicsbyconstants

15

I-typeinstrucConsendwithI

IntegerComputaConalInstrucCons(ALU)

•  I-type(Immediate),allimmediatesinallinstrucConsaresignextended–  LUI/AUIPC:loadupperimmediate/addupperimmediatetopc

16

I-typeinstrucConsendwithI

•  Writes20-bitimmediatetotopofdesWnaWonregister.•  Usedtobuildlargeimmediates.•  12-bitimmediatesaresigned,sohavetoaccountforsignwhen

building32-bitimmediatesin2-instrucWonsequence(LUIhigh-20b,ADDIlow-12b)

IntegerComputaConalInstrucCons•  R-type(Register)–  rs1andrs2arethesourceregisters.rdthedesCnaCon–  ADD/SUB:–  SLT,SLTU:setlessthan–  SRL,SLL,SRA:shiclogicalorarithmeCclecorright

17

ADDIx0,x0,0

ControlTransferInstrucCons

18

NOarchitecturallyvisibledelayslots•  UncondiWonalJumps:PC+offsettarget–  JAL:Jumpandlink,alsowritesPC+4tox1,UJ-type•  Offsetscaledby1-bitle^shi^–canjumpto16-bitinstrucWonboundary(Sameforbranches)

–  JALR:JumpandlinkregisterwhereImm(12bits)+rd1=target

ControlTransferInstrucCons

19

NOarchitecturallyvisibledelayslots•  CondiWonalBranches:SB-typeandPC+offsettarget

12-bitsignedimmediatesplitacrosstwofields

Branches,comparetworegisters,PC+(immediate<<1)target(Signedoffsetinmul0plesoftwo).Branchesdonothavedelayslot

LoadsandStores

•  StoreinstrucWons(S-type)–  MEM(rs1+imm)=rs2•  Loads(I-type)–  Rd=MEM(rs1+imm)

20

More

21

MemoryModel

•  RISC-V:Relaxedmemorymodel

22

ControlandStatusRegister(CSR)InstrucCons

•  CSRInstrucWons

•  Timerandcounters

23

DataFormatsandMemoryAddresses

24

Dataformats:8-bBytes,16-bHalfwords,32-bwordsand64-bdoublewords

Someissues• Byteaddressing

• WordalignmentSupposethememoryisorganizedin32-bitwords.Canawordaddressbeginonlyat0,4,8,....?

0 1 2 3 4 5 6 7

MostSignificantByte

LeastSignificantByte

ByteAddresses

3 2 1 0

0 1 2 3BigEndian

LiAleEndian(RISC-V)

ISA Design •  RISC-Vhas32integerregistersandcanhave32floaWng-pointregisters–  Registernumber0isaconstant0–  Registernumber1isthereturnaddress(linkregister)

•  Thememoryisaddressedby8-bitbytes

•  TheinstrucWonsmustbealignedto32-bitaddresses•  LikemanyRISCdesigns,itisa"load-store"machine–  TheonlyinstrucWonsthataccessmainmemoryareloadsandstores–  AllarithmeWcandlogicoperaWonsoccurbetweenregisters

•  RISC-Vcanloadandstore8and16-bititems,butitlacks8and16-bitarithmeWc,includingcomparison-and-branchinstrucWons

•  The64-bitinstrucWonsetincludes32-bitarithmeWc

25

ISA DesignforPerformance

•  Featurestoincreaseacomputer'sspeed,whilereducingitscostandpowerusage–  placingmost-significantbitsatafixedlocaWontospeedsign-extension,andabit-

arrangementdesignedtoreducethenumberofmulWplexersinaCPU

26

ISA Design

•  IntenWonallylackscondiWoncodes,andevenlacksacarrybit–  TosimplifyCPUdesignsbyminimizinginteracWonsbetweeninstrucWons

•  BuildscomparisonoperaWonsintoitscondiWonal-jumps

27

ISA Design

•  ThelackofacarrybitcomplicatesmulWple-precisionarithmeWc–  GMP,MPFR

•  doesnotdetectorflagmostarithmeWcerrors,includingoverflow,underflowanddividebyzero–  NospecialinstrucWonsetsupportforoverflowchecksonintegerarithmeWcoperaWons.

•  Mostpopularprogramminglanguagesdonotsupportchecksforintegeroverflow,partlybecausemostarchitecturesimposeasignificantrunWmepenaltytocheckforoverflowonintegerarithmeWcandpartlybecausemoduloarithmeWcissomeWmesthedesiredbehavior

–  FloaWng-PointControlandStatusRegister

28

ISA Design

•  Lacksthe"countleadingzero"andbit-fieldoperaWonsnormallyusedtospeedso^warefloaWng-pointinapure-integerprocessor

•  Nobranchdelayslot,aposiWona^erabranchinstrucWonthatcanbefilledwithaninstrucWonwhichisexecutedregardlessofwhetherthebranchistakenornot–  Thisfeaturecanimproveperformanceofpipelinedprocessors,–  OmiqedinRISC-VbecauseitcomplicatesbothmulWcycleCPUsandsuperscalarCPUs

•  Lacksaddress-modesthat"writeback"totheregisters–  Forexample,itdoesnotdoauto-incremenWng

29

ISA Design

•  Aloadorstorecanaddatwelve-bitsignedoffsettoaregisterthatcontainsanaddress.Afurther20bits(yieldinga32-bitaddress)canbegeneratedatanabsoluteaddress–  RISC-VwasdesignedtopermitposiWon-independentcode.IthasaspecialinstrucWonto

generate20upperaddressbitsthatarerelaWvetotheprogramcounter.Thelowertwelvebitsareprovidedbynormalloads,storesandjumps

–  LUI(loadupperimmediate)placestheU-immediatevalueinthetop20bitsofthedes0na0onregisterrd,fillinginthelowest12bitswithzeros

–  AUIPC(addupperimmediatetopc)isusedtobuildpc-rela0veaddresses,formsa32-bitoffsetfromthe20-bitU-immediate,fillinginthelowest12bitswithzeros,addsthisoffsettothepc,thenplacestheresultinregisterrd

30

ISA Design

•  TheRISC-VinstrucWonsetwasdesignedforresearch,andthereforeincludesextraspacefornewinstrucWons–  PlannedinstrucWonsubsetsincludesysteminstrucWons,atomicaccess,integermulWplicaWon,floaWng-

pointarithmeWc,bit-manipulaWon,decimalfloaWng-point,mulWmediaandvectorprocessing

31

–  ItincludesinstrucWonsfor32-bit,64-bitand128-bitintegerandfloaWng-point

–  Itwasdesignedfor32-bit,64-bitand128-bitmemorysystems,with32-bitmodelsdesignedforlowerpower,64-bitforhigherperformance,and128-bitforfuturerequirements

–  It'sdesignedtooperatewithhypervisors,supporWngvirtualizaWon

–  ItwasdesignedtoconformtorecentfloaWng-pointstandards

CallingConvenCon

•  CDatatypesandAlignment–  RV32employsanILP32integermodel,whileRV64isLP64–  FloaWng-pointtypesareIEEE754-2008compaWble–  Allofthedatatypesarekeepednaturallyalignedwhenstoredinmemory–  charisimplicitlyunsigned–  InRV64,32-bittypes,suchasint,arestoredinintegerregistersaspropersignextensionsof

their32-bitvalues;thatis,bits63..31areallequal•  ThisrestricWonholdsevenforunsigned32-bittypes

32

CallingConvenCon

•  RVGCallingConvenWon–  IftheargumentstoafuncWonareconceptualizedasfieldsofaCstruct,eachwith

pointeralignment,theargumentregistersareashadowofthefirsteightpointer-wordsofthatstruct•  FloaWng-pointargumentsthatarepartofunionsorarrayfieldsofstructuresarepassedin

integerregisters•  FloaWng-pointargumentstovariadicfuncWons(exceptthosethatareexplicitlynamedin

theparameterlist)arepassedinintegerregisters–  TheporWonoftheconceptualstructthatisnotpassedinargumentregistersis

passedonthestack•  Thestackpointersppointstothefirstargumentnotpassedinaregister

–  Argumentssmallerthanapointer-wordarepassedintheleast-significantbitsofargumentregisters

–  WhenprimiWveargumentstwicethesizeofapointer-wordarepassedonthestack,theyarenaturallyaligned•  Whentheyarepassedintheintegerregisters,theyresideinanalignedeven-oddregister

pair,withtheevenregisterholdingtheleast-significantbits–  Argumentsmorethantwicethesizeofapointer-wordarepassedbyreference

33

CallingConvenCon

–  Thestackgrowsdownwardandthestackpointerisalwayskept16-bytealigned–  ValuesarereturnedfromfuncWonsinintegerregistersv0andv1andfloaWng-point

registersfv0andfv1•  FloaWng-pointvaluesarereturnedinfloaWng-pointregistersonlyiftheyareprimiWvesor

membersofastructconsisWngofonlyoneortwofloaWng-pointvalues•  Otherreturnvaluesthatfitintotwopointer-wordsarereturnedinv0andv1•  LargerreturnvaluesarepassedenWrelyinmemory;thecallerallocatesthismemoryregion

andpassesapointertoitasanimplicitfirstparametertothecallee

34

Socware

•  TheRISC-VwebsitehasaspecificaWonforuser-modeinstrucWons,adra^forprivilegedISAspecificaWonandadra^forcompressedISAspecificaWon

•  ItalsoincludesthefilesofsixCPUdesigns,the64-bitsuperscalar"Rocket"andfive"Sodor"CPUs

•  Theso^wareincludesadesigncompiler,Chisel,whichisabletoreducethedesignstoVerilogforuseindevices

•  ThewebsiteincludesverificaWondatafortesWngcoreimplementaWons•  AvailableRISC-Vso^wareincludesaGNUCompilerCollecWon(GCC)toolchain(with

GDB,thedebugger),anLLVMtoolchain,asimulator("Spike")andthestandardsimulatorQEMU

•  OperaWngsystemssupportexistsforLinux,butthesupervisor-modeinstrucWonsarenotstandardizedatthisWme

•  ThereisalsoaJavaScriptISAsimulatortorunaRISC-VLinuxsystemonawebbrowser

35

ImplementaCons

•  TheRISC-VISAhasbeendesignedtoresultinfaster,less-expensive,smaller,andless-power-hungryelectronics.

•  ItiscarefullydesignednottomakeassumpWonsaboutthestructureofthecomputersonwhichitruns.–  ValidaWngthis,theUCBSodorcoreswereimplementedasdifferenttypesofcomputers

•  RISC-Visdesignedtobeextensiblefroma32-bitbarebonesintegercoresuitableforasmallembeddedprocessorto64or128-bitsuperandcloudcomputerswithstandardandspecialpurposeextensions.–  IthasbeentestedinafastpipelinedsilicondesignwiththeopenRocketSoC.

•  TheUCBprocessordesignsthatimplementRISC-VareimplementedusingChisel,anopen-sourcehardwareconstrucWonlanguagethatisaspecializeddialectofScala.–  'Chisel'isanabbreviaWon:ConstrucWngHardwareInaScalaEmbeddedLanguage

36

ImplementaCons

•  TheIndianInsWtuteofTechnologyMadrasisdevelopingsixRISC-Vopen-sourceCPUdesigns(SHAKTI)forsixdisWnctusages,fromasmall32-bitCPUfortheInternetofThingstolarge,64-bitCPUsdesignedforwarehouse-scalecomputersbasedonRapidIOandHybridMemoryCubetechnologies.

•  Bluespec,Inc.,asemiconductortoolscompany,isexploringRISC-Vasapossibleproduct.

•  lowRISCisanonprofitprojectthataimstoimplementafullyopen-sourceSoCbasedonthe64-BitRISC-VISA.

•  TheplannedmulWmediasetmayincludeageneral-purposemixed-precisionvectorprocessorsimilartotheresearchproject“Hwacha.”

37

Resources

•  hqp://riscv.org/workshop-jan2015.html•  hqp://riscv.org/tutorial-hpca2015.html

•  hqp://en.wikipedia.org/wiki/RISC-V

•  Checktheclassresourcepage

38