SE537423C2 - Digital signalprocessor och förfarande för adressering av ett minne i en digital signalprocessor - Google Patents

Digital signalprocessor och förfarande för adressering av ett minne i en digital signalprocessor Download PDF

Info

Publication number
SE537423C2
SE537423C2 SE1151230A SE1151230A SE537423C2 SE 537423 C2 SE537423 C2 SE 537423C2 SE 1151230 A SE1151230 A SE 1151230A SE 1151230 A SE1151230 A SE 1151230A SE 537423 C2 SE537423 C2 SE 537423C2
Authority
SE
Sweden
Prior art keywords
unit
memory
address
data
memory unit
Prior art date
Application number
SE1151230A
Other languages
English (en)
Other versions
SE1151230A1 (sv
Inventor
Anders Nilsson
Eric Tell
Erik Alfredsson
Original Assignee
Mediatek Sweden Ab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mediatek Sweden Ab filed Critical Mediatek Sweden Ab
Priority to SE1151230A priority Critical patent/SE537423C2/sv
Priority to EP12816532.1A priority patent/EP2751705B1/en
Priority to ES12816532.1T priority patent/ES2653951T3/es
Priority to CN201280063320.0A priority patent/CN103999074B/zh
Priority to US14/364,619 priority patent/US9557996B2/en
Priority to KR1020147019866A priority patent/KR20140103343A/ko
Priority to PCT/SE2012/051320 priority patent/WO2013095257A1/en
Publication of SE1151230A1 publication Critical patent/SE1151230A1/sv
Publication of SE537423C2 publication Critical patent/SE537423C2/sv

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8061Details on data memory access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • G06F9/30038Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/35Indirect addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)

Abstract

SAMMANDRAG I en digital signalprocessor (200) innefattande atminstone en vektorexekveringsenhet (203, 205) och atminstone en forsta minnesenhet (230, 231) är en tredje enhet anordnad aft tillhandahalla adresseringsdata i form av en adressvektor som ska anvandas for adressering av den fbrsta minnesenheten (230, 231), varvid den tredje enheten kan forbindas med den fOrsta minnesenheten (230, 231) via on-chip-natverket (244), pa sadant sat, aft data tillhandahallna fran den tredje enheten (250) kan anvandas for att styra lasningen fran och/eller skrivningen till den forsta minnesenheten (230, 231). Detta mojliggor snabb lasning frail och skrivning till en minnesenhet av data i varje onskad ordning.

Description

Digital signalprocessor och forfarande for adressering av ett minne i en digital signalprocessor Tekniskt omrade Foreliggande uppfinning avser en digital signalprocessor enligt patentkravets 1 ingress. En sadan processor är speciellt lamplig for OFDM-system.
Bakgrund och narliggande teknik Manga mobila kommunikationsanordningar anvander en radiotransceiver som innefattar en eller flera digitala signalprocessorer (DSP).
For battre prestanda och tillforlighet anvander manga mobila terminaler i dag en typ av DSP, vilken är kand som en basbandsprocessor (BBP), for att hantera manga av de signalprocessfunktioner som är fOrenade med behandling av den mot- tagna radio signalen och forberedning av signaler for sandning.
Manga av de funktioner som ofta genomfors i sadana processorer genomfors pa stora antal dataprov. Darfor är anvandbar en processortyp kand som SIMD(Single Instruction Multiple Data)-processor, eftersom den mojliggor att samma instruk- 20 tion kan utforas pa en hel vektor av data, snarare an pa ett heltal, at gangen. Denna typ av processor kan bearbeta vektorinstruktioner, vilket innebar att en enda instruktion utfor samma funktion pa ett begransat antal dataenheter. Data är grupperade i bytes eller ord och packade i en vektor pa vilken ska opereras.
Som en ytterligare utveckling av SIMD-arkitekturen har utvecklats arkitekturen Single Instruction stream Multiple Tasks (SIMT). I SIMT-arkitekturen har traditionellt tillhandahallits tva vektorexekveringsenheter som anvander SIMDdatavagar i forening med en heltalsexekveringsenhet som kan vara en del av en karnprocessor.
Internationella patentansokan WO 2007/018467 visar en DSP enligt SIMTarkitekturen, vilken har en processorkarna innefattande en heltalsexekveringsenhet och ett programminne, och tva vektorexekveringsenheter vilka är fdrbundna med, men ej integrerade i karnan. Vektorexekveringsenheterna kan vara Complex 1 Arithmetic Logic Units (CALU) eller Complex Multiply-Accumulate Units (CMAC). De data som ska bearbetas i vektorexekveringsenheterna tillhandahalls fran dataminnesenheter, vilka är forbundna med vektorexekveringsenhetema via ett on-chip-natverk.
Minnesenheterna innefattar adressalstringsenheter vilka är anordnade for att styra las- eller skrivordem vid vane tidpunkt. For okad flexibilitet kan adressalstringsenheten kan mojliggdra olika mod, ldgen eller monster, sasom lasning fran vane nte adress i minnet. Dessa lagen maste tillhandahalla ett reguljart monster, vilket begransar de mojliga satt pa vilka data kan lasas eller skrivas. Vidare är de till- gangliga ldgena forvalda for en bestamd adressalstringsenhet, och kan inte andras.
Artikeln "An 11mm2, 70mW fully programmable baseband processor for mobile WiMAX and DVB-T/H in 0.12 pm CMOS" av A. Nilsson och E. Tell, beskriver 15 en DSP av SIMT-typ och anger kortfattat att "eftersom minnesbankerna kan acceptera extern adressering fran natverket, kan minnen saval som acceleratorer anvandas for att tillhandahalla adressfoljder fOr oregelbunden vektoradressering. Detta erbjuder aven mojligheten att utova indirekt vektoradressering." Denna artikel adresserar inte nagra av de problem som är involverade vid faktisk implementering av en sadan lOsning, och tillhandahaller foljaktligen inte heller flagon fungerande losning.
Sammanfattning av uppfinningen Ett andamal med foreliggande uppfirming är att mojliggora en men flexibel adres25 sering av dataminnena hos en processor i SIMT-arkitekturen.
Detta andamal uppnas enligt foreliggande uppfinning genom en digital signalprocessor innefattande atminstone en funktionsenhet, vilken kan vara en vektorexekveringsenhet, en heltalsexekveringsenhet eller en accelerator, och atminstone en 30 firsta minnesenhet anordnad att tillhandahalla data pa vilka funktionsenheten ska operera, en tredje enhet och ett on-chip-natverk som fcirbinder funktionsenheten, den forsta minnesenheten och den tredje enheten. Den digitala signalprocessom är kannetecknad av att den tredje enheten är anordnad att tillhandahalla adresseringsdata i form av en adressvektor som ska anvandas for adressering av den forsta 2 minnesenheten, varvid den tredje enheten kan forbindas med den forsta minnesenheten pa sadant satt, att data erhallna fran den tredje enheten kan anvandas for att styra lasningen fran och/eller slcrivningen till den forsta minnesenheten och att processorn vidare innefattar en minnesadressgranssnittsenhet anordnad att kom- 5 pensera fcir latensen mellan den forsta och den tredje enheten.
Uppfinningen avser aven ett fOrfarande for adressering av ett minne i en digital signalprocessor innefattande atminstone en funktionsenhet och atminstone en forsta minnesenhet anordnade att tillhandahMla data pa vilka en vektorexekverings- 10 enhet ska operera, och ett on-chip-natverk som forbinder funktionsenheten och den forsta minnesenheten, och en tredje enhet anordnad att tillhandahalla adresseringsdata ftir den forsta minnesenheten i form av en adressvektor, varvid fOrfarandet innefattar stegen installning av den forsta minnesenheten till att motta adresseringsdata fran den tredje enheten, tillhandahallande av adresseringsdata fran den tredje enheten till den forsta minnesenheten, lasning av data fran eller skrivning av data till den forsta minnesenheten enligt namnda adresseringsdata. 20 Enligt uppfinningen kan foljaktligen adressering uppnas snabbt och effektivt i varje ordningsfoljd genom hela minnesenheten. Data kan adresseras i ett minne i vane ordningsfoljd, lika effektivt som en ordnad foljd av data eftersom adresseringen kan hanteras parallellt med bearbetningen som utfOrs av funktionsenheten. Den ftirsta minnesenheten kan vara anordnad fcir att motta adresseringsdata fran den tredje enheten via en dedicerad buss eller via on-chip-natverket.
Minnesadressgranssnittsenheten tillhandahaller en losning av de problem som orsakas av latensen mellan den forsta och den tredje enheten. Speciellt kommer en lassignal frail den forsta enheten att ta nagra klockcykler i ansprak for att na. den 30 tredje enheten. Nar lasoperationerna startas kommer det att finnas en fordrojning av flera klockcykler innan det forsta dataelementet faktiskt nar exekveringsenheten. Genom lagring av de forsta adressproven i rninnesadressgranssnittsenheten, innan den forsta enheten begar dem, kan fdrdrojningen vid uppstart reduceras. 3 Den tredje enheten kan vara vane enhet i processorn, exempelvis en minnesenhet, benamnd den andra minnesenheten, foretradesvis en heltalsminnesenhet, en skalar exekveringsenhet, •en vektorexekveringsenhet, eller en acceleratorenhet.
Olika enheter kan anvandas for adresseringen av olika minnesbanker. 10 Den forsta minnesenheten kan vara ett komplext minne eller ett heltalsminne.
Minnesadressgranssnittsenheten innefattar foretradesvis latenta minnesorgan anordnade att lagra ett tal som representerar latensen mellan den forsta och den andra enheten, provminnesorgan anordnade att lagra provnumret, dvs. det antal adressele- ment som ska Overforas fran den tredje enheten till den forsta enheten, ett register for att sanda adresselementen fran den tredje enheten till den forsta enheten. 20 Minnesadressgranssnittsenheten är foljaktligen anordnad att utfora foljande funktioner: lasning av atminstone ett forsta adresselement fran den tredje enheten nar den forsta enheten forbinds med den tredje enheten for aft erhalla adressinformation, utan att vanta pa en lassignal, nar en lassignal mottas fran den forsta enheten, sandning av det fcirsta adresselementet till den forsta enheten, darefter lasning av efterfoljande adresselement fran den tredje enheten, tills samtliga adresselement har blivit lasta, och darefter sandning av efterfoljande adresselement till den forsta enheten nar lassignaler mottas fran den forsta enheten.
Minnesadressgranssnittsenheten hailer foretradesvis reda pa det antal adressele- ment som ska lasas fran den tredje enheten genom att andra provraknaren varje 4 gang ett adresselement lases. Detta är fdredelaktigt eftersom minnesadressgranssnittsenheten kommer att fortsatta med att motta lasuppmaningar fran den forsta enheten efter det att den har last det senaste adressprovet flirt den tredje enheten. Pa detta satt vet minnesadressgranssnittsenheten nar den ska sluta med att harnta 5 adresselement fran den tredje enheten. Nar hamtningen avstannar sands endast de sista adressproven fran minnesadressgranssnittsenheten till den tredje enheten.
Det är ofta viktigt att samtliga berakningar utfors med lika timing eller tidsanpassning, oberoende av varifran data kommer. Eftersom latensen kan variera beroende 10 pa vilka enheter som är inblandade, är en fordel med uppfinningen att tidsanpassningen kan styras genom undvikande av fordrojningsskillnader orsakade av olika antal pipeline-steg mellan olika enheter.
I en sarskilt fordelaktig utforingsform innefattar den andra minnesenheten en adressalstringsenhet anordnad att styra lasningen av adressdata fran den andra minnesenheten enligt ett fordefinierat monster. I derma utforingsform kan fcirfarandet innefatta steget av styming av lasningen av adressdata fran den andra minnesenheten med hj alp av en adressalstringsenhet anordnad att styra lasningen av adressdata fran den andra minnesenheten enligt ett fordefinierat monster. Detta 20 mojliggor hanteringen av undergrupper av adressema som innehalls i den andra minnesenheten vilket ir speciellt fordelaktigt for OFDM-baserade TVapplikationer.
Processom enligt uppfinningen är sarskilt val lampad fOr OFDM-baserade tele25 kommunikationsstandarder, exempelvis enligt standarden LTE och/eller standarden LTE-Advanced.
Kortfattad ritningsbeskrivning Uppfinningen kommer i det foljande att beskrivas mer detaljerat, i form av exem- 30 pel och med hanvisning till bifogade ritningar.
Fig. 1 visar ett exempel pa SIMT-arkitekturen.
Fig. 2 visar funktionen hos adresspekare.
Fig. 3 visar en forsta utforingsform av uppfinningen i ett forenklat exempel av SIMT-arkitekturen.
Fig. 4 visar en andra utforingsform av uppfinningen i ett forenklat exempel av SIMT-arkitekturen.
Fig. 5 visar en minnesadressgranssnittsenhet enligt en utforingsform av uppfinningen. 5 Fig. 6 visar en tredje utfOringsform av uppfinningen.
Detaljerad beskrivning av utforingsformer Fig. 1 illustrerar ett exempel pa en basbandsprocessor 200 enligt SIMTarkitekturen. Processorn 200 innefattar en styrkarna 201 och en forsta 203 och en 10 andra 205 vektorexekveringsenhet, vilka kommer att diskuteras mer detaljerat i det fOljande. En FEC-enhet 206 är forbunden med on-chip-ndtverket. I en konkret im- plementation kan naturligtvis FEC-enheten 206 innefatta flera olika enheter.
En vadgranssnittsenhet 207 tillhandahaller forbindelse med en i Fig. 1 ej visad vardprocessor pa ett sat som är vdlkdnt Mom tekniken. En digital front-end-enhet 209 tillhandahaller forbindelse med en front-end-enhet pa ett sat som är valkant inom tekniken.
Som vanligt inom tekniken, innefattar styrkarnan 201 ett programminne 211 lik- som en instruktionsavgivningslogik och funktioner for "multi-context"-support.
For varje understodd exekveringskontext eller trad inkluderar detta en programraknare, stackpekare och registerfil (ej sarskilt visad i Fig. 1). Typiskt stods 2-3 tradar. Styrkaman 201 innefattar aven en heltalsexekveringsenhet 212 av en typ som är kand Mom tekniken.
Den forsta vektorexekveringsenheten 203 i detta exempel är en CMACvektorexekveringsenhet och den andra vektorexekveringsenheten 205 är en CALU-vektorexekveringsenhet. Varje vektorexekveringsenhet 203, 205 innefattar en vektorstyming 213, en vektorladdnings/lagringsenhet 215 och ett antal datavd- gar 217. Vektorstymingen hos varje vektorexekveringsenhet är forbunden med programminnet 211 hos styrkarnan 201 via avgivningslogiken, for att motta avgivna signaler relaterade till instruktioner fran programminnet. 6 Funktionen hos datavagarna 217, 227 och vektorladdnings/lagringsenheterna 215, 225 dr valkand Mom tekniken och kommer inte att diskuteras i flagon detalj i denna skrift.
Det kan finnas ett godtyckligt antal vektorexekveringsenheter, innefattande endast CMAC-enheter, endast CALU-enheter eller ett lampligt antal av varje typ. Det kan aven finnas andra typer av vektorexekveringsenheter an CMAC och CALU. Som forklarats ovan, är en vektorexekveringsenhet en processor som formal- bear-beta vektorinstruktioner, vilket innebar aft en enda instruktion utfor samma funk- tion pa ett antal dataenheter. Data kan vara komplexa eller reella, och är gruppe- rade i bytes eller ord och packade i en vektor pa vilken en vektorexekveringsenhet ska operera. I detta dokument anvands CALU- och CMAC-enheter som exempel, men det bor observeras aft vektorexekveringsenheter kan anvandas for aft utfora varje lamplig funktion pa vektorer av data.
Som kant Mom tekniken, anvands typiskt ett antal acceleratorer 242, eftersom de miijliggor effektiv implementering av vissa basbandsfunktioner, sasom kanalkodning och interfoliering. Sadana acceleratorer är valkanda inom tekniken och kommer inte har aft beskrivas i detalj. Acceleratorerna kan vara konfigurerbara for aft ateranvandas av manga olika standarder.
Eft on-chip-natverk 244 forbinder styrkdrnan 201, den digitala front-end-enheten 209, vardgranssnittsenheten 207, vektorexekveringsenheterna 203, 205, minnesbankerna 230, 232, heltalsbanken 238 och acceleratorerna 242. Vektorexekve- ringsenheterna, skalara exekveringsenheter, heltalsexekveringsenheter och accele- ratorer bendmns i denna shift gemensamt som funktionsenheter. En skaldr exekveringsenhet kan endast bearbeta eft prov at gangen, men detta prov kan ha eft reellt eller komplext varde. 30 For aft mojliggora flera samtidiga vektoroperationer, har processorn thretradesvis ett distribuerat minnessystem dar mirmet är uppdelat i flera minnesbanker, vilka i Fig. 1 representeras av Minnesbank 0 230 till Minnesbank N 231. Varje minnesbank 230, 231 has sitt eget minne 232, 233 och adressalstringsenhet AGU 234 resp. 235. Minnena 232, 233 är typiska, men inte nodvandigtvis, komplexa 7 minnen. Detta arrangemang i forening med on-chip-ndtverket forbattrar effektverkningsgraden hos minnessystemet och processorns genomstromning eftersom flerfaldiga adressberdkningar kan utforas parallellt. Den PBBP som visas i Fig. 2 innefattar foretradesvis minnesbanker 238, var och en innefattande ett minne 239 och en adressalstringsenhet 240.
Varje minne har adresspekare som indikerar den position i minnet som harnast ska lasas fran eller skrivas till.
Exempelvis installer kommandona out rO, CDMO ADDR out rl, CDM1 ADDR positionerna i det komplexa dataminne 0 resp. komplexa data minne 1, vilket ska ldsas fran eller skrivas till.
Varje adressalstringsenhet 234, 235 utfor en adressberdkning for att styra den ordning i vilken data ska ldsas fran eller skrivas till motsvarande minne 232, 233. For okad flexibilitet kan adressalstringsenheten alien vara anordnad aft mojliggora tva eller flera olika lagen. Manga sadana lagen är kanda inom tekniken. Adressalst- 20 ringslogiken kan exempelvis utfora: linjdr adressering, bitomkastad adressering, moduloadressering och 2D-adressering med olika inkrement, innefattande negativa inkrement. Exempelvis kan adressgeneratorn vara anordnad att lasa varje K-te dataelement i enlighet med adresseringsfunktionen, varvid K är ett heltal. Alternativt kan adressalstraren vara anordnad att adressera minnet baklanges. Som ett exem- pel, om startadressen är 0, kan adressalstraren foljaktligen vara anordnad att lasa fi-an motsvarande minne enligt de tre olika ldgena: • Lds varje adress i foljd, dvs. 0, 1, 2, 3, 4, 5, 6, 7 • Las varje K-te adress, dvs. om K=2; 0, 2, 4, 6 30 Om startadressen dr 10 och K= —2 Lds bakldnges, dvs 10, 8, 6, 4, 2, 0 For att exempelvis forma en vektorexekveringsenhet att multiplicera dataelement fran tvá olika minnen, kan kommandot se ut enligt foljande: 8 cmac.n CDMO, CDM1 varvid n är langden av den vektor pa vilken ska opereras. Detta skulle dA utfOras pa en vektor av n dataelement ft-An vart och ett av minnena CDMO och CDM1, med start fran det dataelement som indikeras av pekaren hos respektive minne.
SA lange som data hos ett bestamt minne ska lasas i MO, eller i en ordning stodd av dess adressalstringsenhet fader inga problem. Men adressalstraren stoder inte en situation dar den vektor pa vilken vektorexekveringsenheten ska operera innehalls i minnet i en oregelbunden ffiljd. AU exempelvis multiplicera foljderna CDM0[1, 3, 7, 5, 11] och CDM1 [0,1,2,3,4] skulle vara en mycket komplicerad operation, eftersom det inte finns nAgot regelbundet monster i foljden som ska lasas fran CDMO. Enligt den kanda tekniken 15 skulle dad& adressen ha behOvt installas manuellt i AGUn, innan varje lasning av data frail minnet. Detta skulle orsaka en betydande fordrojning i lasningen av data, vilket skulle minska processorns totala prestanda.
Fig. 2 visar funktionen hos adresspekaren i en ftirsta och en andra minnesenhet. 20 Varje minnesenhet innefattar ett antal dataelement, innefattande en foljd av data som ska tillhandahallas som indata till en vektorexekveringsenhet.
Den forsta minnesenheten 230 dr CDMO och den relevanta foljden av data visas som en block 230a i denna minnesenhet. En adresspekare 230b pekar till borjan av detta block, att indikera var lasning av data ska borja.
Den andra minnesenheten 231 är CDM1, vilken aven har en foljd av data for an- vandning som indata av en funktionsenhet, sasom en vektorexekveringsenhet. Denna foljd av data visas som ett block 231a, med en adresspekare som pekar 30 231b till bOrjan av detta block. Som framgar, kan laget for foljden av data 231a i det andra minnet 231 avvika frail laget for foljden av data 230a i det forsta minnet 230. 9 Nar lasningen framskrider kommer pekaren att peka mot nasta adress som ska läsas fran vid vane given tidpunkt. Traditionellt hamtas pekarinformationen fran adressalstringsenheten 234, 235 hos motsvarande minne 230, 231.
Fig. 3 är en forenklad ritning visande endast de delar hos SIMT-arkitekturen vilka är relevanta for foreliggande uppfinning. De visade delarna, med anvandning av samma hanvisningstal som i Fig. 1, är: en av vektorexekveringsenheterna, i detta exempel CALU-exekveringsenheten 205, den fOrsta 230 och andra 231 minnesbanken, och on-chip-natverket 244 som sammanbinder dessa tre enheter. Som ti- 10 digare innefattar var och en av minnesbankema 230 och 231 ett minne 232, 233 och en adressalstringsenhet 234, 235. Det finns aven en tredje minnesbank 250 innefattande ett minne 252 och en adressalstringsenhet 254. Den tredje minnesbanken är aven forbunden med de ovriga enheterna via natverket 244. 15 Den tredje minnesbanken 250 är typiskt en heltalsminnesbank som gor det lampligt att innehalla adressinformation i form av en datavektor som kan benamnas adressvektor. Denna minnesbank benamns emellanat adressminnet i denna shift. Annars kan den vara av exakt samma typ som de f6rsta och andra minnesbankema 230, 231, vilka benamns dataminnen. Enligt uppfinningen innehaller minnet 252 20 hos den tredje minnesbanken 250 en adressvektor som anvandning for adresseringen av den andra minnesbanken 231. Som symboliskt visas av pilen som for-binder den andra och tredje minnesbanken, passerar forbindningen adressalstringsenheten 235 hos den andra minnesbanken 231 fOr att direkt adressera minnet 233. 25 Eftersom data i minnet 252 hos den tredje minnesbanken 250 kan andras ganska enkelt, tillhandahaller detta ett mycket flexibelt salt att adressera den andra minnesbanken 231.
Lasning av adressdata fran ett separat minne inf.& en ytterligare latens i systemet. 30 Nar exekveringsenheten är redo att bOrj a motta data fran den andra minnesbanken, kommer den att sdnda en ldssignal till den andra minnesbanken, vilken är den bank som ska tillhandahalla data fOr de berakningar som utfors av exekveringsenheten. Den andra minnesbanken kommer dá att sanda en ldssignal till adressminnesbanken. Adressminnesbanken kommer att svara genom att sanda sift forsta adressele- 10 ment till den andra minnesbanken. Endast (Id kan den andra minnesbanken sanda dataelementet till exekveringsenheten. Det kommer da att finnas en latens som kommer att orsaka en fordrojning vid starten av en vektorexekvering. 5 RV att komma fOrbi denna fordrOjning, är i denna utforingsform anordnad en minnesadressgranssnittsenhet 256 mellan adressbanken 250 och den andra minnesbanken 231. Minnesadressgrdnssnittsenheten 256 tjanar som en for mellanlagring av de adresselement som hamtats fran den tredje minnesbanken 250. Konstruktionen och funktionema hos minnesadressgrdnssnittsenheten 256 kommer att diskute- 10 ras mer detaljerat i samband med Fig. 5.
Som ett komplement kan adressalstringsenheten 254 hos den tredje minnesbanken 250 awn anvandas till installning av ett avlasningslage, som ovan diskuterats i samband med Fig. 1, exempelvis for lasning av vane annat dataelement fran den 15 tredje minnesbanken. Detta innebdr att i samma situationer kan samma innehall hos den tredje minnesbanken anvandas for olika applikationer. Exempelvis kan uppnas en upprepningsfunktion.
Som kommer att inses, kan ett liknande arrangemang anvandas awn for adresse- 20 ring av den forsta minnesbanken 230, eller ocksa kan adressalstringsenheten 234 hos den fdrsta minnesbanken anvandas pa ett konventionellt salt Vidare kan varje antal av minnesbanker och funktionsenheter vara anordnade. Det kan finnas ett antal minnesbanker som kan anvdndas som adressminnen En minnesbank och en minnesbank kan enkelt dndra den ordning med vilken dess inmatningar lastes eller skrevs genom forbindning till det korrekta adressminnet, eftersom samtliga enheter är inbordes forbundna via natverket 244.
Fig. 4 visar en annan utfOringsform av uppfinningen. Med anvandning av samma hanvisningstal som i Fig. 1, är de visade delama: CMAC-vektorexekveringsen- 30 heten 203, CALU-vektorexekveringsenheten 205, den forsta 230 och andra 231 minnesbanken, och ndtverket 244 som sammanbinder dessa tre enheter. Som tidigare innefattar var och en av minnesbankema 230 och 231 ett minne 232, 233 och en adressalstringsenhet 234, 235. En tredje minnesbank 250 visas aven, innefattande ett minne 252 och en adressalstringsenhet 254. Den tredje minneken är dven 11 forbunden med de andra enheterna via natverket 244 och kan anvandas som ett adressminne som diskuterats i samband med Fig. 3. I utfOringsformen visad i Fig. 4 adresseras den andra minnesbanken 235 fran CMAC-vektorexekveringsenheten 203. Detta innebar att adresserna som ska lasas fran den andra minnesbanken 231 5 beraknas i CMAC-vektorexekveringsenheten 203. Detta dr naturligtvis endast ett exempel. Som fackmannen kommer att inse, kan adresseringen utforas fran en CALU-vektorexekveringsenhet eller fran varje annan typ av funktionsenhet, sasom en vektorexekveringsenhet, nagon annan exekveringsenhet eller en accelerator.
Som kommer att inses, kan utforingsformerna i Fig. 4 och kombineras, sá att nagra minnesbanker kan adresseras med hjalp av deras interna adressalstringsenheter 231, 233, andra kan adresseras fran separata minnesbanker och ytterligare andra fran funktionsenheter 203, 205. 15 Genom anvandning av en annan vektorexekveringsenhet for att berakna de adresser fi-an vilka ska lasas i ett bestamt minne, kan minnesadressering uppnas pa ett mycket flexibelt sat. Dena är speciellt anvandbart i applikationer sasom Pilotextraktion och anvandarseparation i OFDM-system Rake-finger-bearbetning i CDMA-system Ett fdrfarande enligt uppfinningen for mOjliggorande av adresseringen av en minnesenhet fran en annan enhet i natverket, t.ex. ett heltalsdataminne IDM, irmefattar: Installning av den fcirsta minnesenheten, t.ex. CDMO fOr anvandning av IDM som en adresskalla.
Installning av den andra minnesenheten, t.ex. CDM1 for anvandning av linjar adressering med hjalp av dess adressalstringsenhet.
Bearbetning av data i vektorexekveringsenheten, t.ex. berakningar, pa data erhallna fran den forsta och andra minnesenheten i den ordning de tillhan- dahalls.
For varje dataelement last fran minnesenheten av vektorexekveringsenheten, programmeras minnet for att hamta en ny adress fran natverket, dvs. antingen fran den tredje minnesenheten, i utforingsformen enligt Fig. 3, eller fran den andra vektorexekveringsenheten, i utforingsformen enligt Fig. 12 4. Den nya adressen kommer aft indikera den position i den forsta minnesenheten, fran vilken data harnast ska lasas.
Alternativt, innefattar ett forfarande for skrivning till ett dataminne av resultaten 5 av bearbetningen utford av en vektorexekveringsenhet: Installning av den forsta minnesenheten, t.ex. CDMO for anvandning av IDM som en adresskalla.
Installning av den andra minnesenheten, t.ex. CDM1 for anvandning av linjar adressering med hjalp av dess adressalstringsenhet. 3) Bearbetning av data i vektorexekveringsenheten, t.ex. berakningar, och slcrivning av resultatet till ett dataminne. 4) For varje dataelement skrivet till dataminnesenheten av vektorexekveringsenheten, programmeras minnet fcir aft hamta en ny adress fran natverket, dvs. antingen fran den tredje minnesenheten, i utforingsformen enligt Fig. 3, eller fran den andra vektorexekveringsenheten, i utfOringsformen enligt Fig. 4. Den nya adressen kommer aft indikera den position i dataminnet, till vilken data harnast ska skrivas.
I exempelthrfarandena ovan kan naturligtvis adresseringsdata erhallas fran en vek- torexekveringsenhet eller fran nagon annan enhet i processorn, i stallet fOr adress- minnet.
I bada exemplen visade i Fig. 3 och 4 maste den adressinformation som ska tillhandahallas respektive fran adressminnet, eller fran den lampliga vektorexekve- ringsenheten, maste tidsanpassas pa sadant satt, aft nasta adress som ska lasas fran eller skrivas till, nar den andra minnesbanken en klockcykel innan den ska faktiskt lasas frail eller skrivas till. Det vill saga: det ska finnas en lasning i forvag av data-element pa grund av pipelining. Den mangd av data som ska lasas i forvag kan styras genom styrsignaler vilka framslcrider frail det minnesblock som adresseras via natverket till adresskallan. Alternativt kan den styras genom ett fast varde pro- grammerat i minnesadressgranssnittsenheten. Lasningen i forvag kan aven vara implementerad genom adresskallor som trycker en fordefinierad mangd av adressdata Over det natverk, dar antalet pipeline-steg ar kodat i maskinvaran. 13 For att overvinna de problem som orsakas av latens mellan vektorexekveringsenheten 203 som tillhandahaller adressdata och minnesbanken 231 som ska anvanda dessa adressdata, är en minnesadressgranssnittsenhet 256 anordnad mellan vektorexekveringsenheten 203 och den andra minnesbanken 231. Minnesadressgrans- snittsenheten 256 liknar minnesadressgranssnittsenheten 256 i Fig. 3 och tjanar som en minnesadressgranssnittsenhet for mellanlagring av de adresselement som hamtats fran den tredje minnesbanken 250.
Fig. 5 visar en minnesadressgranssnittsenhet 256 enligt en foredragen utforings10 form av uppfinningen. Minnesgranssnittet har ett minne 258 och en styrenhet 260. Styrenheten 260 innefattar tva minnen: Eft latensminne 262 som innehaller det antal pipeline-steg som ska lasas fran den tredje enheten till det fOrsta minnet.
En provraknare 264 anordnad att halla rak.ning pa antalet adressprov som ska lasas fran den tredje enheten 203, 250.
Latensminnet 262 är typiskt, men ej nodvandigtvis, hardkodat. Provrakningsminnet är anordnat att vid behov installas for vane operation.
Sam ovan diskuterats, är den tredje enheten den som tillhandahaller adressinfor- mationen. Denna kan vara en minnesenhet 250, som visas i Fig. 3, eller en vektorexekveringsenhet 203, som visas i Fig. 4.
Nar dataminnesbanken (ej visad i Fig. 5) är installd for att motta adresseringsdata fran den tredje, adresstillhandahallande, enheten, laser minnesadressgranssnittsen- heten 256 det forsta adressdataelementet fran den tredje enheten till sitt minne 258. Mr pa detta satt den exekveringsenhet som ska motta data fran dataminnesbanken sander en lassignal fOr att signalera att den ar beredd att motta det forsta adresselementet, är detta adresselement redan lagrat i minnesadressgranssnittsenheten 30 och kan sandas till den andra enheten utan fordrojning. Utan minnesadressgranssnittsenheten skulle proceduren vara enligt fOljande: Exekveringsenheten sander en signal till minnesenheten.
Minnesenheten sander en lassignal till den enhet som ska tillhandahalla adressen. 14 Enheten som ska tillhandahalla adressen svarar genom att sanda den fcirsta adressen.
Vid mottagning av den forsta adressen sander minnesenheten dataelementet till exekveringsenheten. 5 Det skulle darfor atga flera klockcykler innan exekveringsenheten kunde starta arbetet. Nar den val startat, kunde emellertid adresser levereras med den riktiga takten.
For att konfigurera systemet utfOrs folj ande steg: 1. Karnan beordrar extern adressering av dataminnet genom sandning av en signal till minnesgranssnittet for att fylla Icon till dataminnet eller genom skrivning till sina styrregister. 2. Minnesadressgranssnittsenheten utfor ett tillrackligt antal lasoperationer fi-an enheten som tillhandahaller de adressdata for att i sitt minne ha eft an- tal adresselement som motsvarar natverkslatensen. Detta innebar att antalet adresselement ska motsvara det antal pipeline-steg som maste utforas for att hamta adressen.
Under exekveringen fortsatter minnesadressgranssnittsenheten att sanda adressda20 taelement fi-an sitt register till dataminnesenheten och att succesivt hamta nya adressdataelement.
Funktionsenheten som mottar dataelementen kommer att fortsatta sanda lassignaler till minnesenheten tills den har mottagit det ratta antalet dataelement, och min- nesenheten kommer i sin tur att sanda lassignaler till minnesadressgranssnittsenhe- ten. Eftersom vissa dataelement redan var lasta fran den adresstillhandahallande enheten innan funktionsenheten borjade sanda lassignaler, innebar detta att vissa lassignaler kommer att bli sanda efter det att samtliga adresselement har blivit lasta fran den adresstillhandahallande enheten.
Latensen innebar foljaktligen att minnesadressgranssnittsenheten skulle fortsatta att lasa adresselement fran den tredje enheten efter det att den skulle starma. Narmare bestamt skulle den lasa sa manga adresselement for mycket som det tal den lagrade i sat register nal- den var konfigurerad i steg 2 ovan. For att hindra att detta intraffar, hailer provraknaren rakning pa det antal adressprov som har blivit hamtade. Nar det onskade antalet adressprov har blivit lasta fran den tredje enheten till minnesadressgranssnittsenheten, stoppar hamtningen av nya adressprov fastan den kommer att fortsatta motta lassignaler fran dataminnet.
For de sista dataelementen kommer i stallet minnesadressgranssnittsenheten aft tomma sift minne for att tillhandahalla dessa element till dataminnet.
I en foredragen utforingsform tidsanpassas adressinformationen pa sadant satt, att nista adress som ska lasas fran, eller skrivas till, nar den andra minnesbanken en klockcykel innan den faktiskt ska lasas fran eller skrivas till.
Fig. 6 visar en fOrdelaktig utforingsform av en processor enligt uppfinningen, ddr ett antal minnesenheter kan dela ett mindre antal minnesadressgranssnittsenheter. Samma hanvisningstal som ovan anvands for samma enheter som visas i foregaen- 15 de figurer. Som framgar, har processorn enligt denna utfOringsform samma enheter som processorerna visade i Fig. 3 och 4, vilka samtliga är forbundna via on-chipnatverket 244. Dessutom har utforingsformen i Fig. 6 en adresstvarlank (address crossbar) 270 anordnad att tillhandahalla adressinformation till den onskade minnesenheten 230, 231. I Fig. 6 visas tva minnesadressgranssnittsenheter 256, vilka 20 bada är forbundna med adresstvarlanken 270. Adresstvarlanken fungerar da som en fokuserare (concentrator), som for vane minnesenhet 230, 231 valjer vilken av minnesadressgranssnittsenheterna 256 den ska motta adresseringsdata fran.
Utforingsformerna av uppfinningen är sarskilt anvandbara i applikationer ddr an-25 vands komplexa adressmonster, vilka inte kan hardkodas vid tiden for konstruktionen eller i praktiken inte kan fordefinierat lagras i systemminne. Sadana monster kan vara baserade pa loptidsparametrar och maste beraknas dynamiskt.
Exempelvis anvander den OFDM-baserade telekommunikationsstandarden vilken 30 är kand som LTE (Long Term Evolution) dynamisk allokering av frekvenser for anvandare. Det är nodvandigt att valja frekvensema som allokeras till anvandaren. I andra situationer ar det onskvart att välj a alla pilottoner, vilket kan utforas base-rat pa en tabell. Detta uppnas traditionellt genom sokning i en tabell for att erhalla adressinformationen for pilottonema, och ddrefter ladda det onskade dataelementet 16 fran minne, omordna data i frekvenserna for aft placera de relevanta datapunkterna intill varandra och darefter lagra datapunkterna tillbaka i minnet.
Denna typ av adressmonster kan inte programmeras in i en traditionell adressalst- 5 ringsenhet. Detta innebar exempelvis att for genomforande av en FFT pa pilottonerna, kommer adresspekaren att behova installas flera ganger for varje operation, med foljd att enbart administrationen av data kommer att bli sa komplicerad att den signifikant sanker prestanda (utnyttjande) hos DSP-processorn. 10 Om i stallet minnesenheten programmeras for aft hamta en fly adress fran on-chipnatverket, som ovan diskuterats, kan varje datapunkt som ska anvandas adresseras direkt, vilket minskar den kapacitet som behovs for administrationen av data, och darigenom okar utnyttjandet och prestandan hos DSPn.
En annan applikation dar foreliggande uppfinning är sarskilt anvandbar är vid digi- tala TV-applikationer. Varje OFDM-symbol i DVB-T2 bestar av 32768 delbarare resulterande i en mangd av 32768 datapunkter. Denna signal innefattar pilottoner som ska anvandas som referensdata vilka är ojamnt distribuerade genom hela frekvensspektret. Eft sadant adressmonster kan inte enkelt hanteras i traditionella adressalstringsenheter. Enligt uppfinningen kan adresserna helt enkelt lagras i den tredje minnesenheten och hamtas darifran av den minnesenhet som tillhandahaller data till vektorexekveringsenheten.
For digital TV är det aven mojligt aft anvanda endast en delmangd av de 32768 (32k) punkterna. Delmangden kan vara 16k, 8k, 4k, 2k, eller 1k punkter, dvs. hal- va, fjardedelen osv. ned till 1/32 av punkterna. Enligt uppfinningen skulle det endast vara nodvandigt att lagra en tabell av adresserna, eftersom en delmangd av denna tabell kan valjas genom installning av adresserna i overensstammelse i adressmirmet.
Uppfinningen är aven anvandbar nar adresseringsdata ska mottas fran enheter som har oforutsagbar tidsanpassning (timing). Exempel pa sadana enheter är programmerbara co-processorer eller felkorrigerande enheter sasom turboavkodare. Prograrnmerbara co-processorer kan typiskt leverera en adresstrom med ett genom- 1 7 snittligt genomflode som matchar vad som kravs, men med data i sma skurar. Pa samma satt kommer felkorrigerande block att arbeta iterativt pa en mangd data tills den är korrekt, och det är omojligt att forutspa exakt hur manga cykler detta kommer att ta i ansprak. DarfOr kommer utmatningen fran sadana enheter att vara 5 oforutsagbara skurar av data. En minnesadressgranssnittsenhet enligt uppfinningen kan anvandas for utjamning av skurarna av data. Om registret 258 visat i Fig. 5 ersatts med en FIFO-ko, kan minnesadressgranssnittsenheten lagra det antal data som innehalls i ett skur och sanda dem i foljd till nasta enhet. 18

Claims (15)

Patentkrav
1. Digital signalprocessor (200) innefattande atminstone en funktionsenhet, vilken kan vara en vektorexekveringsenhet (203, 205), en skalar exekveringsenhet eller en accelerator, och atminstone en forsta minnesenhet (230, 231) anordnad att tillhandahalla data pa vilka funktionsenheten ska operera, en tredje enh et (250) och ett on-chip-natverk (244) som forbinder funktionsenheten, den fOrsta minnesenheten och den tredje enheten, varvid den digitala signalprocessorn är kannetecknad av att den tredje enheten (250) är anordnad att tillhandahalla adresseringsdata i form av en adressvektor som ska anvandas for adressering av den forsta minnesenheten (230, 231), varvid den tredje enheten kan forbindas med den forsta minnesenheten (230, 231) pa sadant salt, att data erhallna fran den tredje enheten (250) kan anvandas for att styra lasningen fran och/eller skrivningen till den forsta minnesenheten (230, 231) och att processorn vidare innefattar en minnesadressgranssnittsenhet (256) anordnad att kompensera for fordrojningen mellan den forsta minnesenheten och den tredje enheten, genom att tjana som en mellanlagring av de adresselement som hamtats fran den tredje enheten.
2. Processor enligt krav 1, varvid den tredje enheten är en adressminnesenhet, fOretradesvis en heltalsminnesenhet, vilken innehaller adressdata fOr adressering av den forsta minnesenheten.
3. Processor enligt krav 1, varvid den tredje enheten är en andra funktionsenhet.
4. Processor enligt krav 1 eller 2, varvid den forsta minnesenheten (230, 231) är ett komplext minne.
5. Processor enligt nagot av foregaende krav 2 eller 4, beroende av krav 2, varvid den andra minnesenheten innefattar en adressalstringsenhet anordnad att styra lasningen av adressdata fran den andra minnesenheten enligt ett fordefinierat monster.
6. Processor enligt nagot av foregaende krav, vidare innefattande en adresstvarlank (270) som inbordes forbinder atminstone en minnesadressgranssnittsenhet (256) och atminstone en forsta och en andra minnesenhet (230, 231), for att mojliggora att 19 adressdata kan tillhandahallas till en enhet vald fran den fOrsta och andra minnesenheten via minnesadressgranssnittsenheten (256).
7. Processor enligt nagot av fOregaende krav, anpassad for telekommunikation, exempelvis enligt standarden LTE ochieller standarden LTE-Advanced.
8. Processor enligt nagot av krav 1-7, anpassad for digitala televisionssignaler.
9. Forfarande for adressering av ett minne i en digital signalprocessor (200) innefattande atminstone en funktionsenhet, vilken kan vara en vektorexekveringsenhet (203, 205), en skalar exekveringsenhet eller en accelerator, och kminstone en forsta minnesenhet (230, 231) anordnade att tillhandahalla data pa vilka en vektorexekveringsenhet ska operera, och ett on-chip-natverk (244) som forbinder vektorexekveringsenheten och den forsta minnesenheten, och en tredje enhet (250) anordnad att tillhandahalla adresseringsdata for den forsta minnesenheten i form av en adressvektor, varvid forfarandet innefattar stegen 1. installning av den forsta minnesenheten till att adressera data fran den tredje enheten, 2. tillhandahallande av adresseringsdata fran den tredje enheten till den forsta minnesenheten, 3. lasning av data fran eller skrivning av data till den forsta minnesenheten enligt namnda adresseringsdata, 4. kompensering for fordrojningen mellan den forsta minnesenheten och den tredje enheten med hjalp av en minnesadressgranssnittsenhet (256) anordnad att tjana som en mellanlagring mellan den forsta minnesenheten och den tredje enheten, for de adresselement som hamtats fran den tredje enheten.
10. Forfarande enligt krav 9, varvid den tredje enheten är en adressminnesenhet, fOretradesvis en heltalsminnesenhet, vilken innehaller adressdata for adressering av den forsta minnesenheten.
11. Forfarande enligt krav 9, varvid den tredje enheten är en funktionsenhet.
12. Forfarande enligt nagot av krav 9-11, varvid den forsta minnesenheten (230, 231) är ett komplext minne
13. FOrfarande enligt nagot av krav 10 eller 12, beroende av krav 10, innefattande steget styrning av lasning av adresser fran minnesenheten med hjalp av en adressalstringsenhet och anordnat att styra lasningen av adressdata fran den andra minnesenheten enligt eft fordefinierat monster.
14. Forfarande enligt nagot av krav 9-13, innefattande steget tidsanpassning av adressinformationen pa sadant sätt, att den nastfoljande adress fran vilken ska lasas fran eller skrivas till, nar den forsta minnesenheten en klockcykel innan den faktiskt ska lasas fran eller skrivas till.
15. Forfarande enligt krav 14, varvid mangden data som lases i forvag styrs av adresskallor vilka trycker en fordefinierad mangd av adressdata Over ndtverket, varvid antalet pipeline-steg är inkodat i maskinvaran. 21
SE1151230A 2011-12-20 2011-12-20 Digital signalprocessor och förfarande för adressering av ett minne i en digital signalprocessor SE537423C2 (sv)

Priority Applications (7)

Application Number Priority Date Filing Date Title
SE1151230A SE537423C2 (sv) 2011-12-20 2011-12-20 Digital signalprocessor och förfarande för adressering av ett minne i en digital signalprocessor
EP12816532.1A EP2751705B1 (en) 2011-12-20 2012-11-28 Digital signal processor and method for addressing a memory in a digital signal processor
ES12816532.1T ES2653951T3 (es) 2011-12-20 2012-11-28 Procesador digital de señales y método para direccionar una memoria en un procesador digital de señales
CN201280063320.0A CN103999074B (zh) 2011-12-20 2012-11-28 数字信号处理器及寻址数字信号处理器中的存储器的方法
US14/364,619 US9557996B2 (en) 2011-12-20 2012-11-28 Digital signal processor and method for addressing a memory in a digital signal processor
KR1020147019866A KR20140103343A (ko) 2011-12-20 2012-11-28 디지털 신호 프로세서 및 디지털 신호 프로세서에서의 메모리 어드레싱 방법
PCT/SE2012/051320 WO2013095257A1 (en) 2011-12-20 2012-11-28 Digital signal processor and method for addressing a memory in a digital signal processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE1151230A SE537423C2 (sv) 2011-12-20 2011-12-20 Digital signalprocessor och förfarande för adressering av ett minne i en digital signalprocessor

Publications (2)

Publication Number Publication Date
SE1151230A1 SE1151230A1 (sv) 2013-06-21
SE537423C2 true SE537423C2 (sv) 2015-04-21

Family

ID=47594965

Family Applications (1)

Application Number Title Priority Date Filing Date
SE1151230A SE537423C2 (sv) 2011-12-20 2011-12-20 Digital signalprocessor och förfarande för adressering av ett minne i en digital signalprocessor

Country Status (7)

Country Link
US (1) US9557996B2 (sv)
EP (1) EP2751705B1 (sv)
KR (1) KR20140103343A (sv)
CN (1) CN103999074B (sv)
ES (1) ES2653951T3 (sv)
SE (1) SE537423C2 (sv)
WO (1) WO2013095257A1 (sv)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160226544A1 (en) * 2015-02-04 2016-08-04 GM Global Technology Operations LLC Adaptive wireless baseband interface
KR102655094B1 (ko) * 2018-11-16 2024-04-08 삼성전자주식회사 메모리를 공유하는 이종의 프로세서들을 포함하는 스토리지 장치 및 그것의 동작 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809552A (en) * 1992-01-29 1998-09-15 Fujitsu Limited Data processing system, memory access device and method including selecting the number of pipeline stages based on pipeline conditions
US6594710B1 (en) 1999-05-26 2003-07-15 Nec Electronics, Inc. Apparatus and method for a random access peripheral unit
US6665790B1 (en) 2000-02-29 2003-12-16 International Business Machines Corporation Vector register file with arbitrary vector addressing
US6976147B1 (en) * 2003-01-21 2005-12-13 Advanced Micro Devices, Inc. Stride-based prefetch mechanism using a prediction confidence value
US7017028B2 (en) 2003-03-14 2006-03-21 International Business Machines Corporation Apparatus and method for updating pointers for indirect and parallel register access
US7334110B1 (en) 2003-08-18 2008-02-19 Cray Inc. Decoupled scalar/vector computer architecture system and method
US7620047B2 (en) * 2004-11-23 2009-11-17 Emerson Network Power - Embedded Computing, Inc. Method of transporting a RapidIO packet over an IP packet network
US20070198815A1 (en) 2005-08-11 2007-08-23 Coresonic Ab Programmable digital signal processor having a clustered SIMD microarchitecture including a complex short multiplier and an independent vector load unit
CN101282477A (zh) * 2008-05-06 2008-10-08 艾诺通信系统(苏州)有限责任公司 基于RapidIO互联的多核DSP阵列媒体处理系统及其方法
US9519617B2 (en) * 2011-07-14 2016-12-13 Texas Instruments Incorporated Processor with instruction variable data distribution

Also Published As

Publication number Publication date
EP2751705A1 (en) 2014-07-09
WO2013095257A1 (en) 2013-06-27
US20140351555A1 (en) 2014-11-27
KR20140103343A (ko) 2014-08-26
CN103999074B (zh) 2017-04-12
CN103999074A (zh) 2014-08-20
US9557996B2 (en) 2017-01-31
ES2653951T3 (es) 2018-02-09
EP2751705B1 (en) 2017-10-18
SE1151230A1 (sv) 2013-06-21

Similar Documents

Publication Publication Date Title
US20210055964A1 (en) Computational Partition for a Multi-Threaded, Self-Scheduling Reconfigurable Computing Fabric
US11755474B2 (en) Tile based interleaving and de-interleaving for digital signal processing
WO2019191743A1 (en) Conditional branching control for a multi-threaded, self- scheduling reconfigurable computing fabric
EP3776239A1 (en) Loop execution control for a multi-threaded, self-scheduling reconfigurable computing fabric using a reenter queue
WO2019191742A1 (en) Loop thread order execution control of a multi-threaded, self-scheduling reconfigurable computing fabric
WO2019191739A1 (en) Efficient loop execution for a multi-threaded, self-scheduling reconfigurable computing fabric
EP3776237A1 (en) Multiple types of thread identifiers for a multi-threaded, self-scheduling reconfigurable computing fabric
EP3776243A1 (en) Backpressure control using a stop signal for a multi-threaded, self-scheduling reconfigurable computing fabric
WO2019191741A1 (en) Execution control of a multi-threaded, self-scheduling reconfigurable computing fabric
US9990412B2 (en) Data driven parallel sorting system and method
US20090287859A1 (en) DMA Engine
EP3776242A1 (en) Multi-threaded self-scheduling reconfigurable computing fabric
SE536462C2 (sv) Digital signalprocessor och basbandskommunikationsanordning
EP2592562B1 (en) Memory access for digital signal processing
CN107977232A (zh) 一种数据处理方法、数据处理电路和网络设备
SE1151230A1 (sv) Digital signalprocessor och förfarande för adressering av ett minne i en digital signalprocessor
CN104111817B (zh) 算术处理装置
US8843807B1 (en) Circular pipeline processing system
US10387118B2 (en) Arithmetic operation unit and method of controlling arithmetic operation unit
CN110096307B (zh) 通信处理器
CN104504126A (zh) 一种并行向量查表方法及装置
US9003266B1 (en) Pipelined turbo convolution code decoder
WO2022141321A1 (zh) Dsp处理器及其并行计算方法
KR101927255B1 (ko) 레지스터 윈도우 오버플로우/언더플로우 처리 장치
US20140281368A1 (en) Cycle sliced vectors and slot execution on a shared datapath

Legal Events

Date Code Title Description
NUG Patent has lapsed