由圖形處理器改進(jìn)的成組存儲器存取效率的制作方法
【專利摘要】將結(jié)構(gòu)陣列(AOS)轉(zhuǎn)換成陣列結(jié)構(gòu)(SOA)改進(jìn)了從AOS到SOA的傳送效率??墒褂妙愃萍夹g(shù)有效地從SOA轉(zhuǎn)換成AOS。執(zhí)行轉(zhuǎn)換的控制器將分區(qū)大小計算為第一存儲器裝置中的組的數(shù)量與AOS中結(jié)構(gòu)的結(jié)構(gòu)大小之間的最高公因子,并基于分區(qū)大小而不是結(jié)構(gòu)大小傳送數(shù)據(jù)??刂破骺蓮亩鄠€不同結(jié)構(gòu)讀取分區(qū)大小數(shù)量的元素以確保對于每次傳送都使用全數(shù)據(jù)傳送帶寬。
【專利說明】
由圖形處理器改進(jìn)的成組存儲器存取效率
技術(shù)領(lǐng)域
[0001 ]本發(fā)明的實施例一般涉及存儲器結(jié)構(gòu),并且更具體地說,涉及改進(jìn)存儲器總線帶寬利用以獲取存儲器結(jié)構(gòu)。
[0002]版權(quán)聲明/許可
此專利文檔的公開部分可含有受到版權(quán)保護(hù)的資料。版權(quán)擁有人不反對任何人復(fù)制該專利文檔或?qū)@_,因為它出現(xiàn)在專利和商標(biāo)局專利文件或記錄中,但以其它方式無論什么都保留所有版權(quán)權(quán)利。版權(quán)聲明應(yīng)用于下面所描述的所有數(shù)據(jù),并且在所附的附圖中,以及應(yīng)用于下面描述的任何軟件:版權(quán)◎ 2014,英特爾公司,保留所有權(quán)利。
【背景技術(shù)】
[0003]大多數(shù)電子系統(tǒng)包含某種類型的處理器。處理器可用不同架構(gòu)制作,并且架構(gòu)可影響處理器在執(zhí)行某些處理任務(wù)時如何有效。例如,通用處理器傾向于具有一個或小量處理核,并且對于串行處理任務(wù)最有效。其它類型處理器可具有許多處理單元,并且在并行處理許多較小任務(wù)時更有效。
[0004]結(jié)構(gòu)陣列(AOS)是供軟件使用的方便數(shù)據(jù)格式,軟件可方便地存儲在存儲器中以便串行運行。然而,陣列結(jié)構(gòu)(SOA)是更方便用于有效并行運行的數(shù)據(jù)格式。從而,兩個不同格式各自更好地適合于不同處理器架構(gòu)。在許多計算系統(tǒng)中,存在從AOS轉(zhuǎn)換到SOA和/或從SOA轉(zhuǎn)換到AOS的理由。傳統(tǒng)上,AOS與SOA之間的轉(zhuǎn)換基于底層數(shù)據(jù)結(jié)構(gòu)的大小。從而,轉(zhuǎn)換中的總線利用或傳送帶寬利用取決于底層結(jié)構(gòu)大小,其導(dǎo)致系統(tǒng)資源(總線帶寬)上的性能降級或功率損耗,系統(tǒng)資源傾向于受約束,甚至在AOS到SOA轉(zhuǎn)換中沒有引入無效的情況下。
【附圖說明】
[0005]如下描述包含具有作為實現(xiàn)本發(fā)明實施例的示例給出的圖示的附圖的論述。附圖應(yīng)該作為示例而非作為限制進(jìn)行理解。如本文所使用的,對一個或多個“實施例”的提及要理解為描述包含在本發(fā)明至少一個實現(xiàn)中的具體特征、結(jié)構(gòu)和/或特性。從而,在本文中出現(xiàn)的諸如“在一個實施例中”或“在備選實施例中”的短語描述了本發(fā)明的各種實施例和實現(xiàn),并且不一定全都指的是同一實施例。然而,它們也不一定是相互排他的。
[0006]圖1是執(zhí)行結(jié)構(gòu)陣列到陣列結(jié)構(gòu)轉(zhuǎn)換的系統(tǒng)實施例的框圖。
[0007]圖2是用于在共享成組存儲器中從結(jié)構(gòu)陣列轉(zhuǎn)換到陣列結(jié)構(gòu)的系統(tǒng)架構(gòu)的實施例的框圖。
[0008]圖3A-3H表示在轉(zhuǎn)換操作期間存儲器組內(nèi)容的實施例。
[0009]圖4是用于從結(jié)構(gòu)陣列轉(zhuǎn)換到陣列結(jié)構(gòu)的偽代碼的實施例的表示。
[0010]圖5是用于從結(jié)構(gòu)陣列轉(zhuǎn)換到陣列結(jié)構(gòu)的過程實施例的流程圖。
[0011]圖6是可實現(xiàn)AOS到SOA轉(zhuǎn)換的計算系統(tǒng)的實施例的框圖。
[0012]圖7是可實現(xiàn)AOS到SOA轉(zhuǎn)換的移動裝置的實施例的框圖。
[0013]下面描述某些細(xì)節(jié)和實現(xiàn),包含附圖的描述,附圖可描繪一些或所有下面描述的實施例,以及論述本文呈現(xiàn)的發(fā)明概念的其它潛在實施例或?qū)崿F(xiàn)。
【具體實施方式】
[0014]如本文所描述的,控制器將結(jié)構(gòu)陣列(AOS)轉(zhuǎn)換到陣列結(jié)構(gòu)(SOA)或?qū)OA轉(zhuǎn)換到A0S。而不是基于結(jié)構(gòu)大小從一個格式轉(zhuǎn)換到另一格式,控制器計算分區(qū)大小和其它值以確保在AOS與SOA之間傳送總線帶寬的全使用。傳送總線可以是耦合AOS和SOA結(jié)構(gòu)的寄存器或緩沖器。從而,控制器可以確定如何確保獲取將在每個操作循環(huán)中都充滿總線或傳送機制的寬度的若干元素。此類方法相對于基于結(jié)構(gòu)大小傳送并且通常未充滿整個傳送總線帶寬的傳統(tǒng)方法改進(jìn)了傳送效率。除了帶寬利用上的效率改進(jìn),使用分區(qū)允許系統(tǒng)比用傳統(tǒng)方法更早地開始生成SOA輸出,因為系統(tǒng)一次僅讀取一個分區(qū),而不是整個結(jié)構(gòu)。
[0015]更具體地說,控制器可一次獲取多個不同結(jié)構(gòu)的計算部分,而不是獲取整個結(jié)構(gòu)??刂破鲌?zhí)行計算以確定對于每個傳送操作獲取的部分的正確大小和部分的數(shù)量。傳送操作可運行為SMD(單指令多數(shù)據(jù))操作,其對數(shù)據(jù)集代替單個數(shù)據(jù)元素執(zhí)行公共或單個指令。在一個實施例中,執(zhí)行AOS與SOA之間轉(zhuǎn)換的系統(tǒng)包含對特定數(shù)量的元素執(zhí)行SIMD的傳送機制。元素(單個指令可對其操作)數(shù)量通常被稱為SHffi寬度,并且一般可理解為傳送帶寬。
[0016]關(guān)于計算,控制器可執(zhí)行一個或多個如下計算。在一個實施例中,控制器計算最高公因子,并使用最高公因子作為分區(qū)大小來確定在獲取操作中讀取每個結(jié)構(gòu)的多少元素。在一個實施例中,控制器計算若干分區(qū),稱為從中讀取分區(qū)大小的元素的若干結(jié)構(gòu)?;谶@些計算,控制器可將單個結(jié)構(gòu)的讀取擴(kuò)散到幾個不同傳送操作上。然而,此類方法改進(jìn)了總體帶寬利用,從而改進(jìn)了性能和功耗。在一個實施例中,控制器還計算與在傳送中偏移數(shù)據(jù)來以期望格式恰當(dāng)?shù)貙?zhǔn)(align)數(shù)據(jù)相關(guān)的值。
[0017]為了簡化的目的,如下示例指的是從AOS到SOA的轉(zhuǎn)換。本領(lǐng)域技術(shù)人員將理解到,所描述的技術(shù)還可適用于從SOA到AOS的轉(zhuǎn)換。對于AOS到SOA描述的某些計算還可對于SOA至IJAOS執(zhí)行。更確切地說,用于SOA到AOS的控制器還可計算要讀取的分區(qū)大小和分區(qū)的數(shù)量。將理解到,給定不同數(shù)據(jù)格式,要從中讀取的位置將是不同的。從而,控制器可計算不同偏移以讀取數(shù)據(jù)。
[0018]圖1是執(zhí)行結(jié)構(gòu)陣列到陣列結(jié)構(gòu)轉(zhuǎn)換的系統(tǒng)的實施例的框圖。系統(tǒng)100包含AOS被轉(zhuǎn)換到SOA的處理系統(tǒng)。在一個實施例中,系統(tǒng)100包含CPU(中央處理單元)110和GPU(圖形處理單元)120。0?1]表示具有相對小數(shù)量阢例如1、2、4、8、16)的處理核112的處理器架構(gòu),它們被設(shè)計用于串行處理。CPU 110是系統(tǒng)100的主機處理器,并運行主機操作系統(tǒng)。
[0019]GPU表示具有相對高數(shù)量M(例如數(shù)百)的運行單元(EU)122的處理器架構(gòu),運行單元被設(shè)計用于并行運行小任務(wù)。雖然N和M的值可以改變,但一般而言,M會比N的量級大至少一階或更多量。將理解到,存在可執(zhí)行snro處理的其它架構(gòu),其中以串行格式存儲用于串行處理的數(shù)據(jù)被轉(zhuǎn)換成并行格式用于并行處理。從而,本領(lǐng)域技術(shù)人員將理解到,不是執(zhí)行AOS與SOA之間轉(zhuǎn)換用于S頂D處理的系統(tǒng)的每個實施例都將包含主機處理器和GPU。
[0020]在一個實施例中,CPU110包含本地高速緩存114,其表示一個或多個片上層或級高速緩存(例如LI和L2高速緩存)。本地高速緩存114為要由CPU 110運行的代碼和數(shù)據(jù)提供高速緩存。在一個實施例中,系統(tǒng)100包含共享高速緩存140,其可以是比本地高速緩存114(例如L3高速緩存)更高層的高速緩存。將理解到,共享高速緩存140可以是某一級高速緩存的一部分。從而,例如,系統(tǒng)100可包含在與共享高速緩存140相同層的但對CPU 110特定代替在CPU 110與GPU 120之間共享的其它高速緩存元件(未明確示出)。在一個實施例中,GPU120包含SOA緩沖器124,其表示對GPU 120本地的緩沖器或高速緩存以便以SOA格式存儲數(shù)據(jù)。將理解到,SOA緩沖器124不一定表示對GPU 120本地的所有高速緩存。
[0021]在一個實施例中,共享高速緩存140是共享查找存儲器(SLM),其是成組存儲器結(jié)構(gòu)。成組存儲器結(jié)構(gòu)允許數(shù)據(jù)在不同組中存儲和存取,或者獨立控制存儲元件或位置陣列。成組存儲器可允許無沖突地同時存取不同組。不成組的存儲器裝置必須串行存取。并行存取存儲器裝置可允許一次讀取和寫入多個元素,并且從而提供更寬的存儲器數(shù)據(jù)總線。
[0022]如所圖示的,共享高速緩存140包含多個AOS組142 JOS組142表示存儲AOS數(shù)據(jù)的共享高速緩存140中的存儲位置。AOS組142表示高速緩存的可尋址位置,并且從而可由提供地址的存取命令直接存取。AOS數(shù)據(jù)可由本地高速緩存114從AOS組142存取以便由CPU 110操作。共享高速緩存140還可包含TB(轉(zhuǎn)置緩沖器)組144 組144表示與從共享高速緩存140中讀取數(shù)據(jù)或?qū)?shù)據(jù)寫入到共享高速緩存140中關(guān)聯(lián)的緩沖器或寄存器。在一個實施例中,TB組144不是共享高速緩存140的可尋址位置,盡管在另一實施例中它們可能是。TB組144以SOA格式存儲數(shù)據(jù),以便傳送到諸如處理SOA數(shù)據(jù)的GPU 120的裝置。雖然顯示為同一共享高速緩存140的部分,但在一個實施例中,AOS組142和TB組144可以是不同存儲器裝置的一部分,或者可被視為它們的一部分。從而,AOS組142中的數(shù)據(jù)可被稱為第一存儲器裝置中的數(shù)據(jù),并且TB組144中的數(shù)據(jù)可被稱為第二存儲器裝置中的數(shù)據(jù)。
[0023]系統(tǒng)100包含總線控制器130,其表示處理系統(tǒng)的主機總線控制器??刂破?30是或者包含控制跨存儲器總線(未明確示出)或可傳送SOA和AOS數(shù)據(jù)的其它總線的數(shù)據(jù)傳送的邏輯。從而,控制器130可被視為控制在CPU 110與GPU 120之間或在AOS組142與TB組144之間的數(shù)據(jù)傳送。在一個實施例中,控制器130基于由CPU 110和/或由GPU 120運行的代碼或操作運行傳送操作??刂破?30可以是系統(tǒng)100的存儲器控制器(MC)的一部分。
[0024]在一個實施例中,控制器130包含縱橫(croSSbar)132。縱橫132表示允許將元素從組的第一集合中的任一組中的任何位置傳送到組的第二集合中的任一組中的任何位置的傳送機制。在一個實施例中,第一組和第二組可以是同一存儲器裝置的一部分,和/或可以是相同組。為了AOS到SOA轉(zhuǎn)換的目的,縱橫132實現(xiàn)運行可在單個循環(huán)或單個操作中從AOS組142讀取數(shù)據(jù)并將它傳送到TB組144的Snro操作。縱橫132還實現(xiàn)SOA到AOS轉(zhuǎn)換的反向操作。
[0025]在一個實施例中,控制器130包含移位器134。移位器134表示基于所提供的偏移在組之間移位數(shù)據(jù)的邏輯。在一個實施例中,移位器134可被視為旋轉(zhuǎn)器,其沿不同組的固定元素位置旋轉(zhuǎn)數(shù)據(jù)。在一個實施例中,控制器130執(zhí)行某些計算以在AOS格式與SOA格式之間傳送數(shù)據(jù)。在一個實施例中,移位器134將存儲在TB組144中的SOA數(shù)據(jù)旋轉(zhuǎn)成對準(zhǔn)的SOA數(shù)據(jù)以存儲在SOA緩沖器124中。
[0026]在一個實施例中,共享高速緩存140具有許多組存儲器(例如16組)。雖然在系統(tǒng)100中顯示了 AOS組142和TB組144,但將理解,共享高速緩存140可簡單地說是具有多組存儲器的存儲器裝置,并且某些區(qū)域存儲按照AOS格式化的數(shù)據(jù)。其它數(shù)據(jù)可以與存儲在組中的數(shù)據(jù)的AOS格式不同的格式存儲在組中,或經(jīng)由傳送機制(寄存器、輸出緩沖器、驅(qū)動器以及其它組件)從存儲器傳送。在一個實施例中,TB組144具有16的最大深度,但可以是任何深度,看到該深度是實現(xiàn)特定細(xì)節(jié)。在一個實施例中,可通過對地址數(shù)據(jù)執(zhí)行取模運算以發(fā)現(xiàn)組號來讀取AOS數(shù)據(jù),其中操作的結(jié)果表示組中的地址或元素。
[0027]圖2是用于在共享成組存儲器中從結(jié)構(gòu)陣列轉(zhuǎn)換到陣列結(jié)構(gòu)的系統(tǒng)架構(gòu)的實施例的框圖。在一個實施例中,系統(tǒng)200可以是圖1系統(tǒng)100的一個示例。系統(tǒng)200的架構(gòu)表示AOS到SOA轉(zhuǎn)換的架構(gòu)數(shù)據(jù)流。AOS 210表示以AOS格式存儲的數(shù)據(jù),具有跨N個組串行存儲的數(shù)據(jù)結(jié)構(gòu)。縱橫220具有M的操作寬度,其是允許M個元素在單個操作循環(huán)中從AOS 210移動到TB(轉(zhuǎn)置緩沖器)230的傳送帶寬。在一個實施例中,M等于N230也被顯示為將數(shù)據(jù)存儲在N個組中230以SOA格式存儲從AOS 210讀取的數(shù)據(jù),如通過操作縱橫220所轉(zhuǎn)換的。
[0028]AOS 210存儲多個結(jié)構(gòu)。每個結(jié)構(gòu)的大小都被假定為相同。實際上,近似相同大小(或者相同數(shù)量元素)的數(shù)據(jù)可被存儲在相等大小的結(jié)構(gòu)中。將理解到,系統(tǒng)200應(yīng)該在每個操作中傳送M個數(shù)據(jù)元素以便最大化帶寬利用。在一個實施例中,控制器(例如總線控制器和/或主機處理器)計算AOS 210中的結(jié)構(gòu)的結(jié)構(gòu)大小與N( AOS中的組的數(shù)量)之間的最高公因子。最高公因子實際上可以是某些系統(tǒng)配置的結(jié)構(gòu)的結(jié)構(gòu)大小。在此類配置中,AOS到SOA轉(zhuǎn)換會看上去與讀取整個結(jié)構(gòu)以傳送的傳統(tǒng)方法相同。然而,當(dāng)最高公因子不同于結(jié)構(gòu)大小時,所描述的AOS到SOA轉(zhuǎn)換比傳統(tǒng)方法更有效。代替?zhèn)魉驼麄€結(jié)構(gòu),控制器可使用分區(qū)大小對于每次傳送讀取多個結(jié)構(gòu)的部分。控制器基于所計算的最高公因子設(shè)置分區(qū)大小值(例如分區(qū)大小=最高公因子)。
[0029]將理解到,如果系統(tǒng)未在每個操作中都讀取整個結(jié)構(gòu),則系統(tǒng)需要跟蹤對于每個操作要讀取每個結(jié)構(gòu)的什么部分。在一個實施例中,系統(tǒng)計算偏移值,其可被稱為移位值,其可等于N除以分區(qū)大小。在一個實施例中,控制器或處理器在開始任何傳送操作之前計算這些值中的每個值。在一個實施例中,控制器可根據(jù)需要計算值。在一個實施例中,M=N,或者傳送帶寬等于組的數(shù)量。在一個實施例中,M具有不同于N的值,在此情況下,可基于組的數(shù)量確定最高公因子。
[0030]在一個實施例中,控制器可指令縱橫220從偏移值數(shù)量的結(jié)構(gòu)中讀取分區(qū)大小值數(shù)量的元素。再次,如果M=N,則縱橫220讀取N個元素。如果M不同于N,則縱橫220讀取等于min(M,N)的數(shù)量的元素。在任一情況下,該點都最大化傳送帶寬??v橫220然后在單個操作循環(huán)(例如SMD操作)中將讀取的元素傳送到TB 230。寫入到TB 230的數(shù)據(jù)將被轉(zhuǎn)換成SOA格式,代替處于如從AOS 210所讀取的AOS格式??刂破鲗⒗^續(xù)讀取縱橫220,并在將整個AOS數(shù)據(jù)傳送到TB 230所必需的若干操作循環(huán)中傳送元素。在一個實施例中,讀取和傳送連續(xù)執(zhí)行。在一個實施例中,系統(tǒng)200可能需要中斷讀取和傳送以允許TB 230將數(shù)據(jù)傳送出,以給來自AOS 210的更多數(shù)據(jù)讓地方。
[0031]將理解到,最佳傳送利用發(fā)生在M=N時以及在TB230中的組的數(shù)量等于AOS 210中的組的數(shù)量時。然而,與描述的那些類似的技術(shù)可適用于TB 230中的組的數(shù)量不同于AOS210中的組的數(shù)量的系統(tǒng),和/或當(dāng)縱橫220在單個循環(huán)中可傳送的元素的數(shù)量不同于在AOS210和/STB 230中的組的數(shù)量時。在此類實現(xiàn)中,將結(jié)構(gòu)分區(qū)成部分并讀出那些部分仍能提供傳送效率改進(jìn)。
[0032]圖3A-3H表示在轉(zhuǎn)換操作期間存儲器組內(nèi)容的實施例。如下描述了用于AOS到SOA轉(zhuǎn)換的操作。在一個實施例中,AOS包含存儲AOS數(shù)據(jù)的若干組,并且TB包含與AOS相等的組的數(shù)量??v橫或傳送機制可將數(shù)據(jù)從AOS的任何組移動到TB的任何組。如所示的,當(dāng)從AOS寫入到TB時,轉(zhuǎn)換引入移位,以避免通過嘗試在同一操作中向同一組的元素寫入會生成的沖突。系統(tǒng)可包含移位器以將數(shù)據(jù)旋轉(zhuǎn)到其恰當(dāng)?shù)膶?zhǔn)。
[0033]圖3A表示結(jié)構(gòu)陣列的內(nèi)容。每個條目或元素是結(jié)構(gòu)的組分。結(jié)構(gòu)組分由一對通過點分開的數(shù)字來標(biāo)識。第一個數(shù)字是結(jié)構(gòu)偏移,而第二個數(shù)字是結(jié)構(gòu)內(nèi)部的組分偏移。從而,結(jié)構(gòu)大小是6個元素。如所圖示的,組大小是16,并且從而AOS是16個元素寬。每個結(jié)構(gòu)在附圖中都通過起始點和結(jié)束點以及鄰近結(jié)構(gòu)的不同陰影描繪了。將理解到,在AOS中結(jié)構(gòu)被串行組織,其中每組一個元素,直到結(jié)構(gòu)繞回到第一組的最后一組為止。從而,結(jié)構(gòu)O被存儲在組0-5的第一行,結(jié)構(gòu)I被存儲在組6-11的第一行,并且結(jié)構(gòu)2被存儲在組12-15的第一行和組0-1的第二行。所圖示的AOS含有16個結(jié)構(gòu),并且從而占用6個整行。
[0034]在一個實施例中,假定傳送帶寬等于組的數(shù)量(16)。從而,系統(tǒng)具有每個操作循環(huán)傳送高達(dá)16個元素的容量。在傳統(tǒng)方法中,系統(tǒng)控制器可執(zhí)行整除以確定完整結(jié)構(gòu)和傳送帶寬的數(shù)量(16)除以結(jié)構(gòu)大小(6)給出了結(jié)果2(16/6=2)。傳統(tǒng)方法從而會每個操作循環(huán)讀取并傳送兩個整個結(jié)構(gòu)。如本文所描述的,系統(tǒng)控制器可確定組的數(shù)量(16)與結(jié)構(gòu)大小(6)之間的最高公因子(HCF),結(jié)果為2(16=2*2*2*2; 6=2*3; HCF=2)。系統(tǒng)控制器還可確定傳送帶寬除以HCF給出了結(jié)果8 (16/2=8),這意味著,在每個操作循環(huán)內(nèi)應(yīng)該從8(傳送帶寬除以HCF)個不同結(jié)構(gòu)中讀取2個元素(HCF或分區(qū)大小),對于每個循環(huán)讀取的總共16個元素。將理解到,此類方法將每次產(chǎn)生一個約整數(shù),對于每個傳送操作都充滿帶寬。
[0035]對于論述假定,變量num_banks表示TB(和A0S)中的組的數(shù)量,并且simd_size表示傳送帶寬或縱橫的寬度。還假定,變量struct_size表示AOS中的結(jié)構(gòu)大小,并且partit1n—size表示在單個操作中從每個結(jié)構(gòu)中讀取的元素的數(shù)量。從而,所示出的示例可被表示為num_banks=16,simd_size=16,struct_size=6并且partit1n_size=Highest_Common_Factor (num_banks,struct_size)=2。
[0036]圖3B圖示了基于以上計算的操作0。如所示的,兩個元素各從8個不同結(jié)構(gòu)讀取。8口,在操作0中,縱橫讀取元素[0.0]、[0.1]、[1.0]、[1.1]^..[7.0]、[7.1]。縱橫可將元素傳送到TB,其中結(jié)構(gòu)的所有“第一”元素都在TB的頂一行,并且所有“第二”元素都在TB的第二行。從而,系統(tǒng)分別將元素[0.0]、[1.0]、...[7.0]放在組0-7的第一行,并將元素[0.1]、[1.1]、...[7.1]放在組8-15的第二行。將理解到,在單個操作中,僅可從單個組讀取或向單個組寫入。從而,系統(tǒng)從所有16個AOS組讀取內(nèi)容,每組一個元素。類似地,系統(tǒng)向TB的所有16個組寫入,每組一個元素。
[0037]圖3C圖示了系統(tǒng)從AOS讀取元素[8.0]、[9.0]、...[F.0]和[8.1]、[9.1],...[F.1]并將它們傳送到TB的操作I。更確切地說,縱橫分別將元素[8.0]、[9.0]、-_[F.0]放在組8-15的第一行,并將元素[8.1]、[9.1]、-_[F.1]放在組0-7的第二行。圖3D圖示了系統(tǒng)讀取并傳送元素[0.2]、[0.3]、[1.2]、[1.3]、…[7.2]、[7.3]的操作2。圖3E圖示了系統(tǒng)讀取并傳送元素[8.2]、[8.3]、[9.2]、[9.3]、…[F.2]、[F.3]的操作3。圖3F圖示了系統(tǒng)讀取并傳送元素[0.4]、[0.5]、[1.4]、[1.5]、…[7.4]、[7.5]的操作4。圖3G圖示了系統(tǒng)讀取并傳送元素[8.4]、[8.5]、[9.4]、[9.5]、...[F.4]、[F.5]的操作5。系統(tǒng)以與操作O和I類似的方式執(zhí)行操作2、3、4和5。
[0038]圖3H表示操作5之后的TB內(nèi)容。將觀察到,TB內(nèi)容的每隔一行都旋轉(zhuǎn)或移位8個組。在一個實施例中,系統(tǒng)包含移位器以將數(shù)據(jù)移位或旋轉(zhuǎn)到其恰當(dāng)?shù)膶?zhǔn)(如在SOA內(nèi)容中所示的),其反應(yīng)TB內(nèi)容,但旋轉(zhuǎn)成對準(zhǔn)相同結(jié)構(gòu)的元素。從而,系統(tǒng)可將公共結(jié)構(gòu)的元素對準(zhǔn)到公共組。例如,組O保持結(jié)構(gòu)O的所有元素:[0.0]、[0.1]、[0.2]、[0.3]、[0.4]和[0.5]。組I保持結(jié)構(gòu)I的所有元素,等等。表述“公共組中的公共結(jié)構(gòu)”指的是在單個組中具有單個結(jié)構(gòu),并且不一定意味著組O必須保持結(jié)構(gòu)0,或者組7必須保持結(jié)構(gòu)7。移位操作例如可能已經(jīng)移位了第一行、第三行和第五行,以對準(zhǔn)公共組中的公共結(jié)構(gòu)的元素。在此類實現(xiàn)中,組O會保持結(jié)構(gòu)8,并且組9將保持結(jié)構(gòu)O。
[0039]圖4是用于從結(jié)構(gòu)陣列轉(zhuǎn)換到陣列結(jié)構(gòu)的偽代碼的實施例的表示。代碼400示出了實現(xiàn)轉(zhuǎn)換或轉(zhuǎn)換器的偽代碼的一個示例,其可以是實現(xiàn)按照圖3A-3H的轉(zhuǎn)換的代碼的一個示例。從而,代碼400描述了 AOS到SOA轉(zhuǎn)換器。本領(lǐng)域技術(shù)人員將理解如何修改代碼400用于SOA到AOS轉(zhuǎn)換。代碼400可由系統(tǒng)控制器或主機總線控制器運行。在一個實施例中,主機處理器運行代碼400,其使主機處理器生成使主機總線控制器運行實現(xiàn)代碼的特定操作的命令。
[0040]在一個實施例中,代碼作為輸入接收值num_banks、struct_size、simd_size和start_off set,行402。在一個實施例中,其中一個或多個值被作為變元傳遞到代碼400的函數(shù)調(diào)用。在一個實施例中,基于關(guān)于將運行代碼的系統(tǒng)的現(xiàn)有知識,一個或多個值被硬編碼成代碼400。在一個實施例中,代碼400訪問來自存儲在代碼外部的信息的值(例如,查詢或調(diào)用來自系統(tǒng)代碼中另一地方的值)。Num_banks表示AOS中的組的數(shù)量。在一個實施例中,TB中的組的數(shù)量與AOS中的組的數(shù)量相同。Start_off set表示標(biāo)識代碼400將開始讀取結(jié)構(gòu)的AOS的地址或位置的數(shù)字。Start_0ffSet可以是到代碼將開始運行的地址位置的指針。[0041 ] 在一個實施例中,控制器計算值partit1n_size,等于num_banks和struct_size的 HCF,行404。控制器還可計算值 num_partit1ns,等于struct_size除以partit1n_size,行406。值口31'1:;[1:;[011_8126是在單個操作中將讀取的結(jié)構(gòu)的部分。值1111111_。31'1:;[1:;[0118是在單個操作中將讀取多少部分。將理解到,將從不同結(jié)構(gòu)讀取每個num_partit1ns。當(dāng)struct_s i ze是num_banks的因子時,傳統(tǒng)轉(zhuǎn)換方法僅能提供全傳送帶寬利用。然而,如本文對結(jié)構(gòu)分區(qū)所描述的,轉(zhuǎn)換可為任何結(jié)構(gòu)大小提供全傳送帶寬,只要simd_size是(num_banks/partit1n_size)的倍數(shù)。
[0042]行408標(biāo)識可從AOS存儲器加載TB的代碼400的操作。在一個實施例中,操作可被運行為循環(huán)嵌套。外循環(huán)運行num_partit1ns次,每個分區(qū)一次,直到讀取整個結(jié)構(gòu)為止,行410。在圖3A-3H的示例中,圖3B和3C圖示了傳送第一分區(qū)(每個結(jié)構(gòu)的前兩個元素),圖3D和3E圖示了傳送第二分區(qū)(每個結(jié)構(gòu)的第二兩個元素),并且圖3F和3G圖示了傳送最后分區(qū)(每個結(jié)構(gòu)的最后兩個元素)。
[0043]中循環(huán)運行simcLsize次,對于要轉(zhuǎn)換的每個結(jié)構(gòu)運行一次,行412。雖然在示例中僅示出AOS含有16個結(jié)構(gòu),但將理解到,AOS可含有要轉(zhuǎn)換的任何數(shù)量的結(jié)構(gòu)。圖示16個結(jié)構(gòu)的原因是要顯示,一組操作將轉(zhuǎn)換等于傳送機制的寬度的若干結(jié)構(gòu),其理想上與SOA中的組的數(shù)量大小相同。從AOS到SOA的轉(zhuǎn)換的目標(biāo)是在單個組中具有單個結(jié)構(gòu)。從而,讀取的結(jié)構(gòu)的數(shù)量等于simd_size,或者一次可傳送的組的寬度或數(shù)量。從而,中循環(huán)運行simd_size次,以讀取結(jié)構(gòu)的全帶寬。
[0044]內(nèi)循環(huán)運行partit1n_SiZe次,對于在單個操作中要從每個結(jié)構(gòu)讀取的每個元素運行一次,行414。在內(nèi)循環(huán)內(nèi),代碼400計算aos_loc,其表示AOS從中讀取的位置或地址,行416DA0S位置被計算為固定值start_offset加上變量值。如上面所說明的,start_offset是從AOS讀取的初始位置。變量值在插入語內(nèi),并且是結(jié)構(gòu)變量(i)乘以struct_size加上分區(qū)變量(P)乘以partit1n_size加上元素或組分變量(j)。在內(nèi)循環(huán)中繼續(xù),在一個實施例中,代碼400計算移位值,等于num_banks除以partit1n_size,行418。移位值是為了將結(jié)構(gòu)元素與來自同一結(jié)構(gòu)的其它元素對準(zhǔn)(將同一結(jié)構(gòu)的元素對準(zhǔn)到同一組)而移位的量。
[0045]在一個實施例中,代碼400可使用由aos_loc標(biāo)識的位置以及向TB傳送或?qū)懭霐?shù)據(jù)的移位值。規(guī)定位置的TB(行420)接收在規(guī)定位置的AOS的內(nèi)容,行422 的元素標(biāo)識符由第一加括弧的了13值(其是口*口31'1:;[1:;[011_8126 +j)的解來確定。TB的組由第二加括弧的TB值(其是quantity (i+j*shift) mod num_banks)的解來確定。AOS組內(nèi)的位置由第一加括弧的AOS值(其是aos_l-oc除以num banks)的解來確定。AOS元素的組由第二加括弧的AOS值(其是aos_loc mod num_banks)的解來確定。內(nèi)循環(huán)結(jié)束于行424。中循環(huán)結(jié)束于行426。外循環(huán)結(jié)束于行428。
[0046]在一個實施例中,第一組嵌套循環(huán)向TB讀AOS數(shù)據(jù),并且第二組嵌套循環(huán)將數(shù)據(jù)從TB傳送到S0A,包含對數(shù)據(jù)移位。行430指示提供執(zhí)行反向移位(以撤銷在寫TB時引起的移位)并將TB內(nèi)容作為SOA內(nèi)容保存的示例的代碼400的部分。
[0047]外循環(huán)運行num_part it 1ns次,每個分區(qū)一次,直到讀取整個結(jié)構(gòu)為止,行432。中循環(huán)運行partit1n_Size次,對于要讀取的結(jié)構(gòu)的每個元素運行一次,行434。中循環(huán)運行simd_size次,對于要讀取和保存的每個結(jié)構(gòu)運行一次,行436。在內(nèi)循環(huán)內(nèi),在一個實施例中,代碼400計算移位值,等于num_banks除以partit1n_size,行438。將理解到,可在循環(huán)之前計算移位值,類似于num_partit1ns,并且在循環(huán)中使用。內(nèi)循環(huán)中的移位值可使在讀取AOS內(nèi)容時引入的移位反向。
[0048]在一個實施例中,SOA數(shù)據(jù)被標(biāo)識為組和元素值,以被指配了根據(jù)TB的組和元素值標(biāo)識的移位數(shù)據(jù)。SOA組由變量i標(biāo)識。組內(nèi)的位置通過計算p*par t i t 1n_s i z e加上j來標(biāo)識,行440。TB 組由 quant i ty (i + j*shift)mod num_banks標(biāo)識。組內(nèi)的位置通過p*partit1n_size加上j來標(biāo)識,行442。內(nèi)循環(huán)結(jié)束于行444。中循環(huán)結(jié)束于行446。外循環(huán)結(jié)束于行448。
[0049]將理解到,代碼400具有與AOS到SOA轉(zhuǎn)換的傳統(tǒng)方法類似的特征,但其中分區(qū)大小起類似于傳統(tǒng)解決方案的結(jié)構(gòu)大小的作用。由于該解決方案有效地“重新確定大小(resizes)” 了結(jié)構(gòu),因此外循環(huán)允許迭代通過所有分區(qū)以捕獲整個結(jié)構(gòu)。在行420,TB是數(shù)據(jù)的目標(biāo),并且使讀取的數(shù)據(jù)移位。在行442,TB是源,并且移位使在行420引入到數(shù)據(jù)中的移位反向。
[0050]圖5是用于從結(jié)構(gòu)陣列轉(zhuǎn)換到陣列結(jié)構(gòu)的過程實施例的流程圖。過程500提供了數(shù)據(jù)從AOS到SOA的轉(zhuǎn)換。在一個實施例中,系統(tǒng)確定存儲AOS數(shù)據(jù)和存儲SOA數(shù)據(jù)可用的組的數(shù)量,502。通常,AOS組的數(shù)量將等于SOA組的數(shù)量。組的數(shù)量在某些配置中可被設(shè)置為固定值。在其它實現(xiàn)中,系統(tǒng)可從系統(tǒng)配置信息中獲得組的數(shù)量。在一個實施例中,系統(tǒng)確定結(jié)構(gòu)大小504。結(jié)構(gòu)大小可以是存儲數(shù)據(jù)的公共容器(container)大小。
[0051 ]在一個實施例中,系統(tǒng)確定操作寬度或SIMD帶寬,506。操作寬度指示在一個操作循環(huán)中可從AOS向SOA傳送多少元素。常見的是,操作寬度等于組的數(shù)量。系統(tǒng)計算在組的數(shù)量或SMD帶寬大小與結(jié)構(gòu)大小之間的最高公因子,508。將理解到,如果SMD的大小與組的數(shù)量不相同,則系統(tǒng)基于組的數(shù)量而不是SMD帶寬來計算最高公因子。系統(tǒng)將分區(qū)大小變量值設(shè)置成計算的最高公因子,510。代替一次讀取整個結(jié)構(gòu),系統(tǒng)在轉(zhuǎn)換中將一次讀取部分結(jié)構(gòu)。系統(tǒng)可計算在每個操作循環(huán)中要傳送的分區(qū)的數(shù)量,512。要傳送的分區(qū)的數(shù)量是充滿S頂D帶寬將花費的數(shù)量。
[0052]將理解到,AOS到SOA轉(zhuǎn)換將一次對若干結(jié)構(gòu)進(jìn)行操作,以傳送等于將被生成的SOA數(shù)據(jù)的組的數(shù)量的若干結(jié)構(gòu)。用此類方法,每組在轉(zhuǎn)換操作之后都將含有整個結(jié)構(gòu)??赡艽嬖诒萐OA組的數(shù)量更多的AOS數(shù)據(jù),在此情況下可對其它AOS數(shù)據(jù)運行另一轉(zhuǎn)換。在一個實施例中,系統(tǒng)保持指示轉(zhuǎn)換操作的初始地址的指針。
[0053]從而,系統(tǒng)對于所有選擇的AOS數(shù)據(jù)執(zhí)行操作循環(huán),514。在一個實施例中,系統(tǒng)將通過SOA數(shù)據(jù)的組的數(shù)量進(jìn)行迭代,516。對于SOA數(shù)據(jù)的組的數(shù)量的每次迭代,系統(tǒng)可對于分區(qū)大小的元素(其是之前計算的分區(qū)大小)進(jìn)行迭代,518。對于分區(qū)大小數(shù)量的元素的每次迭代,系統(tǒng)讀取AOS元素,520ο系統(tǒng)可計算偏移以對準(zhǔn)元素并避免操作沖突,522。此類沖突例如可以是試圖在單個操作循環(huán)中在一個組中讀取或?qū)懭攵鄠€元素。系統(tǒng)可使用計算的偏移向TB寫入AOS數(shù)據(jù)的元素,524。系統(tǒng)然后迭代到下一分區(qū)元素,并且繼續(xù),直到已經(jīng)達(dá)到分區(qū)大小的整個長度。
[0054]系統(tǒng)然后可確定是否已經(jīng)讀取了足夠分區(qū)來充滿操作寬度,526。如果操作寬度未充滿,528否分支,則系統(tǒng)將繼續(xù)其到隨后分區(qū)的迭代,518。如果操作寬度充滿了,528是分支,則系統(tǒng)可確定是否已經(jīng)讀取了選擇的AOS數(shù)據(jù)的所有結(jié)構(gòu),530。如果尚未讀取所有AOS數(shù)據(jù),532否分支,則系統(tǒng)可繼續(xù)迭代,直到已經(jīng)讀取了所有結(jié)構(gòu),516。當(dāng)已經(jīng)讀取了所有選擇的AOS結(jié)構(gòu)時,532是分支,在一個實施例中,系統(tǒng)可使來自TB的元素移位以將結(jié)構(gòu)元素對準(zhǔn)到相同組,534。系統(tǒng)然后可將來自TB的移位數(shù)據(jù)寫入到SOA中,536。
[0055]圖6是可實現(xiàn)AOS與SOA之間轉(zhuǎn)換的計算系統(tǒng)的實施例的框圖。系統(tǒng)600表示按照本文描述的任何實施例的計算裝置,并且可以是膝上型計算機、桌上型計算機、服務(wù)器、游戲或娛樂控制系統(tǒng)、掃描儀、復(fù)印機、打印機、路由或交換裝置或其它電子裝置。系統(tǒng)600包含處理器620,其提供系統(tǒng)600的處理、操作管理和指令運行。處理器620可包含任何類型的微處理器、中央處理單元(CPU)、處理核或其它處理硬件以提供系統(tǒng)600的處理。處理器620控制系統(tǒng)600的總體操作,并且可以是或包含一個或多個可編程通用或?qū)S梦⑻幚砥鳌?shù)字信號處理器(DSP)、可編程控制器、專用集成電路(ASIC)、可編程邏輯器件(PLD)等或此類裝置的組合。
[0056]存儲器子系統(tǒng)630表示系統(tǒng)600的主存儲器,并且提供要由處理器620運行的代碼或者在運行例程時要使用的數(shù)據(jù)值的暫時存儲。存儲器子系統(tǒng)630可包含一個或多個存儲器裝置,諸如只讀存儲器(R0M)、閃存、一種或多種隨機存取存儲器(RAM)或其它存儲器裝置或此類裝置的組合。存儲器子系統(tǒng)630除了其它以外還存儲和托管操作系統(tǒng)(0S)636,以提供軟件平臺以便在系統(tǒng)600中運行指令。此外,從存儲器子系統(tǒng)630存儲和運行其它指令638以提供系統(tǒng)600的邏輯和處理。OS 636和指令638由處理器620運行。存儲器子系統(tǒng)630包含存儲裝置632,在其中它存儲數(shù)據(jù)、指令、程序或其它項目。在一個實施例中,存儲器子系統(tǒng)包含存儲器控制器634,其是生成命令并向存儲器裝置632發(fā)布命令的存儲器控制器。將理解到,存儲器控制器634可能是處理器620的物理部分。
[0057]處理器620和存儲器子系統(tǒng)630耦合到總線/總線系統(tǒng)610??偩€610是表示任一個或多個單獨物理總線、通信線/接口和/或通過適當(dāng)橋、適配器和/或控制器連接的點對點連接的抽象。因此,總線610例如可包含系統(tǒng)總線、外圍組件互連(PCI)總線、超傳輸或工業(yè)標(biāo)準(zhǔn)架構(gòu)(ISA)總線、小計算機系統(tǒng)接口(SCSI)總線、通用串行總線(USB)或電氣與電子工程師協(xié)會(IEEE)標(biāo)準(zhǔn)1394總線(通常稱為“火線”)中的一個或多個??偩€610的總線也可對應(yīng)于網(wǎng)絡(luò)接口 650中的接口。
[0058]系統(tǒng)600還包含一個或多個輸入/輸出(I/O)接口 640、網(wǎng)絡(luò)接口 650、一個或多個內(nèi)部大容量存儲裝置660以及耦合到總線610的外圍接口 670。1/0接口 640可包含一個或多個接口組件,通過其用戶與系統(tǒng)600交互(例如視頻、音頻和/或字母數(shù)字接口)。在一個實施例中,I/O接口 640包含一個或多個組件(諸如物理連接器和驅(qū)動器)以與顯示由處理器620運行并計算的數(shù)據(jù)和/或存儲在存儲器子系統(tǒng)630中的數(shù)據(jù)的數(shù)字顯示器裝置對接。網(wǎng)絡(luò)接口650給系統(tǒng)600提供了通過一個或多個網(wǎng)絡(luò)與遠(yuǎn)程裝置(例如服務(wù)器、其它計算裝置)通信的能力。網(wǎng)絡(luò)接口 650可包含以太網(wǎng)適配器、無線互連組件、USB(通用串行總線)或其它基于有線或無線標(biāo)準(zhǔn)的接口或?qū)S薪涌凇?br>[0059]存儲裝置660可以是或包含用于以非易失性方式存儲大量數(shù)據(jù)的任何常規(guī)介質(zhì),諸如一個或多個基于磁、固態(tài)或光的盤或組合。存儲裝置660以永久狀態(tài)保持代碼或指令和數(shù)據(jù)662(即,該值被保留,不管是否對系統(tǒng)600中斷電力)。存儲裝置660—般可被視為“存儲器”,盡管存儲器630是向處理器620提供指令的運行或操作存儲器。鑒于存儲裝置660是非易失性的,存儲器630可包含易失性存儲器(S卩,如果對系統(tǒng)600中斷電力,則數(shù)據(jù)的值或狀態(tài)是不確定的)。
[0000]外圍接口670可包含上面未明確提到的任何硬件接口。外圍一般指的是相關(guān)地連接到系統(tǒng)600的裝置。相關(guān)連接是系統(tǒng)600提供在其上運行操作并且用戶與其交互的軟件和/或硬件平臺的連接。
[0061]在一個實施例中,處理器620包含能以一種或多種數(shù)據(jù)格式存儲數(shù)據(jù)的一個或多個存儲器裝置。數(shù)據(jù)可從AOS轉(zhuǎn)換到SOA或從SOA轉(zhuǎn)換到A0S,如本文所描述的。如本文所描述的,主機總線控制器和/或處理器620執(zhí)行計算和轉(zhuǎn)換操作以對數(shù)據(jù)結(jié)構(gòu)分區(qū),并傳送部分或分區(qū)中的結(jié)構(gòu)數(shù)據(jù),代替整個結(jié)構(gòu)中的。對于傳送帶寬是結(jié)構(gòu)大小的倍數(shù)的實現(xiàn),部分大小可等于結(jié)構(gòu)大小。否則,系統(tǒng)在單個操作循環(huán)中傳送來自多個不同結(jié)構(gòu)的元素。在一個實施例中,此類轉(zhuǎn)換可發(fā)生在是存儲器子系統(tǒng)630—部分的至少一個存儲器裝置。
[0062]圖7是可實現(xiàn)AOS與SOA之間轉(zhuǎn)換的移動裝置的實施例的框圖。裝置700表示移動計算裝置,諸如計算平板、移動電話或智能電話、無線啟用的e閱讀器、可穿戴計算裝置或其它移動裝置。將理解到,一般示出了某些組件,并且在裝置700中并未示出此類裝置的全部組件。
[0063]裝置700包含處理器710,其執(zhí)行裝置700的初級處理操作。處理器710可包含一個或多個物理器件,諸如微處理器、應(yīng)用處理器、微控制器、可編程邏輯器件或其它處理部件。由處理器710執(zhí)行的處理操作包含運行應(yīng)用和/或裝置功能的操作平臺或操作系統(tǒng)的運行。處理操作包含與和人類用戶或其它裝置的1/0(輸入/輸出)相關(guān)的操作、與功率管理相關(guān)的操作和/或與將裝置700連接到另一裝置相關(guān)的操作。處理操作還可包含與音頻I/O和/或顯示器I/O相關(guān)的操作。
[0064]在一個實施例中,裝置700包含音頻子系統(tǒng)720,其表示與向計算裝置提供音頻功能關(guān)聯(lián)的硬件(例如音頻硬件和音頻電路)和軟件(例如驅(qū)動、編解碼器)組件。音頻功能可包含揚聲器和/或耳機輸出,以及麥克風(fēng)輸入。用于此類功能的裝置可被集成到裝置700中,或連接到裝置700。在一個實施例中,用戶通過提供由處理器710接收和處理的音頻命令與裝置700交互。
[0065]顯示器子系統(tǒng)730表示為用戶提供視覺和/或觸覺顯示以與計算裝置交互的硬件(例如顯示器裝置)和軟件(例如驅(qū)動)組件。顯示器子系統(tǒng)730包含顯示器接口 732,其包含用于向用戶提供顯示的具體屏幕或硬件裝置。在一個實施例中,顯示器接口732包含與處理器710分開的邏輯,以執(zhí)行與顯示器相關(guān)的至少一些處理。在一個實施例中,顯示器子系統(tǒng)730包含向用戶提供輸出和輸入兩者的觸摸屏裝置。在一個實施例中,顯示器子系統(tǒng)730包含一個或多個組件(諸如物理連接器和驅(qū)動器)以與顯示由處理器710運行并計算的數(shù)據(jù)和/或存儲在存儲器子系統(tǒng)760中的數(shù)據(jù)的數(shù)字顯示器裝置對接。
[0066]I/O控制器740表示與和用戶交互相關(guān)的硬件裝置和軟件組件。I/O控制器740可操作以管理是音頻子系統(tǒng)720和/或顯示器子系統(tǒng)730的一部分的硬件。此外,I/O控制器740圖示了連接到裝置700的附加裝置的連接點,通過其用戶可能與系統(tǒng)交互。例如,可附連到裝置700的裝置可包含麥克風(fēng)裝置、揚聲器或立體聲系統(tǒng)、視頻系統(tǒng)或其它顯示器裝置、鍵盤或鍵區(qū)裝置或用于與特定應(yīng)用一起使用的其它I/O裝置(諸如讀卡器或其它裝置)。
[0067]如上面所提到的,I/O控制器740可與音頻子系統(tǒng)720和/或顯示器子系統(tǒng)730交互。例如,通過麥克風(fēng)或其它音頻裝置的輸入可為裝置700的一個或多個應(yīng)用或功能提供輸入或命令。此外,代替顯示輸出或除了顯示輸出,可提供音頻輸出。在另一示例中,如果顯示器子系統(tǒng)包含觸摸屏,則顯示器裝置還充當(dāng)輸入裝置,其可至少部分由I/O控制器740管理??赡茉谘b置700上還存在附加按鈕或開關(guān)以提供由I/O控制器740管理的I/O功能。
[0068]在一個實施例中,I/O控制器740管理諸如加速計、相機、光傳感器或其它環(huán)境傳感器、陀螺儀、全球定位系統(tǒng)(GPS)或可包含在裝置700中的其它硬件的裝置。輸入可以是直接用戶交互的一部分,以及向系統(tǒng)提供環(huán)境輸入以影響其操作(諸如對于噪聲過濾、對于亮度檢測調(diào)整顯示器、對于相機施加閃光或其它特征)。在一個實施例中,裝置700包含管理電池功率使用、電池的充電以及與節(jié)電操作相關(guān)的特征的功率管理750。
[0069]存儲器子系統(tǒng)760包含用于將信息存儲在裝置700中的一個或多個存儲器裝置762。存儲器子系統(tǒng)760可包含非易失性(如果到存儲器件的電力被中斷則狀態(tài)不改變)和/或易失性(如果到存儲器裝置的電力被中斷則狀態(tài)不確定)存儲器裝置。存儲器760可存儲應(yīng)用數(shù)據(jù)、用戶數(shù)據(jù)、音樂、照片、文檔或其它數(shù)據(jù),以及與系統(tǒng)700的應(yīng)用和功能運行相關(guān)的系統(tǒng)數(shù)據(jù)(不管是長期的還是暫時的)。在一個實施例中,存儲器子系統(tǒng)760包含存儲器控制器764(其也可被視為系統(tǒng)700的控制的一部分,并且可潛在地被視為處理器710的一部分)。存儲器控制器764包含調(diào)度器以生成命令并向存儲器件762發(fā)布命令。
[0070]連接性770包含硬件裝置(例如無線和/或有線連接器和通信硬件)和軟件組件(例如驅(qū)動、協(xié)議棧),以使裝置700能夠與外部裝置通信。外部裝置可以是單獨裝置,諸如其它計算裝置、無線接入點或基站以及諸如耳麥、打印機或其它裝置的外設(shè)。
[0071]連接性770可包含多個不同類型連接性。概括地說,裝置700圖示為具有蜂窩連接性772和無線連接性774。蜂窩連接性772—般指的是由無線載波提供的蜂窩網(wǎng)絡(luò)連接性,諸如經(jīng)由GSM(全球移動通信系統(tǒng))或變形或衍生、CDMA(碼分多址)或變形或衍生、TDM(時分復(fù)用)或變形或衍生、LTE(長期演進(jìn)-也稱為“4G”)或其它蜂窩服務(wù)標(biāo)準(zhǔn)提供的連接性。無線連接性774指的是非蜂窩的無線連接性,并且可包含個域網(wǎng)(諸如藍(lán)牙)、局域網(wǎng)(諸如WiFi)和/或廣域網(wǎng)(諸如WiMax)或其它無線通信。無線通信指的是通過非固態(tài)介質(zhì)通過使用調(diào)制的電磁輻射傳送數(shù)據(jù)。有線通信通過固體通信介質(zhì)發(fā)生。
[0072]外圍連接780包含硬件接口和連接器以及軟件組件(例如驅(qū)動、協(xié)議棧)以進(jìn)行外圍連接。將理解到,裝置700可能是到其它計算裝置的外圍裝置(“到”782),以及具有連接到它的外圍裝置(“從”784)兩者。裝置700通常具有“塢(docking)”連接器以連接到其它計算裝置,諸如為了管理(例如下載和/或上載、改變、同步)裝置700上內(nèi)容的目的。此外,塢連接器可允許裝置700連接到某些外設(shè),這些外設(shè)允許裝置700控制例如到試聽系統(tǒng)或其它系統(tǒng)的內(nèi)容輸出。
[0073]除了專有塢連接器或其它專有連接硬件,裝置700可經(jīng)由公共連接器或基于標(biāo)準(zhǔn)的連接器進(jìn)行外圍連接780。公共類型可包含通用串行總線(USB)連接器(其可包含任何數(shù)量的不同硬件接口),顯示端口(包含迷你顯示端口(MDP))、高清多媒體接口(HDMI)、火線或其它類型。
[0074]在一個實施例中,處理器710包含能以一種或多種數(shù)據(jù)格式存儲數(shù)據(jù)的一個或多個高速緩沖存儲器裝置。數(shù)據(jù)可從AOS轉(zhuǎn)換到SOA或從SOA轉(zhuǎn)換到A0S,如本文所描述的。如本文所描述的,主機總線控制器和/或處理器710執(zhí)行計算和轉(zhuǎn)換操作以對數(shù)據(jù)結(jié)構(gòu)分區(qū),并傳送部分或分區(qū)中的結(jié)構(gòu)數(shù)據(jù),代替整個結(jié)構(gòu)中的。對于傳送帶寬是結(jié)構(gòu)大小的倍數(shù)的實現(xiàn),部分大小可等于結(jié)構(gòu)大小。否則,系統(tǒng)在單個操作循環(huán)中傳送來自多個不同結(jié)構(gòu)的元素。在一個實施例中,此類轉(zhuǎn)換可發(fā)生在是存儲器子系統(tǒng)760—部分的至少一個存儲器裝置。
[0075]在一個方面,方法包含:計算第一存儲器裝置中的組的數(shù)量與結(jié)構(gòu)陣列中的結(jié)構(gòu)的結(jié)構(gòu)大小之間的最高公因子,其中所述最高公因子不同于所述結(jié)構(gòu)的結(jié)構(gòu)大小;將分區(qū)大小值設(shè)置成計算的最高公因子;計算等于所述組的數(shù)量除以所述分區(qū)大小的移位值;在一個操作循環(huán)中從等于所述移位值的若干結(jié)構(gòu)中讀取等于所述分區(qū)大小的若干元素;在所述一個操作循環(huán)中將讀取的元素傳送到具有與所述第一存儲器裝置相等的組的數(shù)量的第二存儲器裝置中的陣列結(jié)構(gòu);以及在隨后操作循環(huán)中繼續(xù)所述讀取和傳送,直到所述結(jié)構(gòu)陣列的所有元素都被傳送到所述陣列結(jié)構(gòu)。
[0076]在一個實施例中,所述第一存儲器裝置和所述第二存儲器裝置是單個共享存儲器裝置的不同部分。在一個實施例中,將讀取的元素傳送到陣列結(jié)構(gòu)進(jìn)一步包括:計算等于所述組的數(shù)量的基數(shù)的取模運算以確定所述陣列結(jié)構(gòu)中的位置,其中傳送所述元素到所述陣列結(jié)構(gòu)中的所述位置。在一個實施例中,將讀取的元素傳送到陣列結(jié)構(gòu)進(jìn)一步包括:運行單指令多數(shù)據(jù)(SIMD)操作以傳送讀取的所述元素。在一個實施例中,將讀取的元素傳送到所述陣列結(jié)構(gòu)包括將讀取的元素從與主機處理器關(guān)聯(lián)的結(jié)構(gòu)陣列傳送到與圖形處理器關(guān)聯(lián)的陣列結(jié)構(gòu)。在一個實施例中,所述方法進(jìn)一步包括:移位傳送到所述陣列結(jié)構(gòu)的所述數(shù)據(jù)元素以將公共結(jié)構(gòu)的元素對準(zhǔn)到公共組的控制器。
[0077]在一方面,設(shè)備包含:具有若干組的第一存儲器裝置,用于按結(jié)構(gòu)陣列格式存儲數(shù)據(jù)元素;具有若干組的第二存儲器裝置,用于按陣列結(jié)構(gòu)格式存儲數(shù)據(jù)元素;以及控制器裝置,用于將所述數(shù)據(jù)元素從所述第一存儲器裝置傳送到所述第二存儲器裝置,包含所述控制器裝置配置成執(zhí)行如下操作:計算所述第一存儲器裝置中的組的數(shù)量與所述結(jié)構(gòu)陣列中的結(jié)構(gòu)的結(jié)構(gòu)大小之間的最高公因子,其中所述最高公因子不同于所述結(jié)構(gòu)的結(jié)構(gòu)大??;將分區(qū)大小值設(shè)置成計算的最高公因子;計算等于所述組的數(shù)量除以所述分區(qū)大小的移位值;在一個操作循環(huán)中從等于所述移位值的若干結(jié)構(gòu)中讀取等于所述分區(qū)大小的若干元素;在所述一個操作循環(huán)中將讀取的所述元素傳送到所述第二存儲器裝置中的所述陣列結(jié)構(gòu);以及在隨后操作循環(huán)中繼續(xù)所述讀取和傳送,直到所述結(jié)構(gòu)陣列的所有元素都被傳送到所述陣列結(jié)構(gòu)。
[0078]在一個實施例中,第一存儲器裝置和所述第二存儲器裝置是單個共享存儲器裝置的不同部分。在一個實施例中,所述控制器要將讀取的所述元素傳送到陣列結(jié)構(gòu)包含計算等于所述組的數(shù)量的基數(shù)的取模運算以確定所述陣列結(jié)構(gòu)中的位置,其中傳送所述元素到所述陣列結(jié)構(gòu)中的所述位置。在一個實施例中,控制器要將讀取的所述元素傳送到陣列結(jié)構(gòu)包含運行單指令多數(shù)據(jù)(SMD)操作以傳送讀取的所述元素。在一個實施例中,控制器要將讀取的所述元素傳送到所述陣列結(jié)構(gòu)包含將讀取的元素從與主機處理器關(guān)聯(lián)的結(jié)構(gòu)陣列傳送到與圖形處理器關(guān)聯(lián)的陣列結(jié)構(gòu)。在一個實施例中,進(jìn)一步包括控制器移位傳送到所述陣列結(jié)構(gòu)的所述數(shù)據(jù)元素以將公共結(jié)構(gòu)的元素對準(zhǔn)到公共組。
[0079]在一個方面,電子裝置包含:主機處理器裝置;耦合到所述主機處理器裝置的電路,所述電路包含:具有若干組的第一存儲器裝置,用于按結(jié)構(gòu)陣列格式存儲數(shù)據(jù)元素;具有若干組的第二存儲器裝置,用于按陣列結(jié)構(gòu)格式存儲數(shù)據(jù)元素;以及控制器裝置,用于將所述數(shù)據(jù)元素從所述第一存儲器裝置傳送到所述第二存儲器裝置,包含所述控制器裝置配置成執(zhí)行如下操作:計算所述第一存儲器裝置中的組的數(shù)量與所述結(jié)構(gòu)陣列中結(jié)構(gòu)的結(jié)構(gòu)大小之間的最高公因子,其中所述最高公因子不同于所述結(jié)構(gòu)的結(jié)構(gòu)大小;將分區(qū)大小值設(shè)置成計算的最高公因子;計算等于所述組的數(shù)量除以所述分區(qū)大小的移位值;在一個操作循環(huán)中從等于所述移位值的若干結(jié)構(gòu)中讀取等于所述分區(qū)大小的若干元素;在所述一個操作循環(huán)中將讀取的所述元素傳送到所述第二存儲器裝置中的所述陣列結(jié)構(gòu);以及在隨后操作循環(huán)中繼續(xù)所述讀取和傳送,直到所述結(jié)構(gòu)陣列的所有元素都被傳送到所述陣列結(jié)構(gòu);以及數(shù)字顯示器接口,用于耦合到顯示器裝置以顯示由所述主機處理器計算的數(shù)據(jù)。
[0080]在一個實施例中,第一存儲器裝置和第二存儲器裝置是單個共享存儲器裝置的不同部分。在一個實施例中,所述控制器將讀取的所述元素傳送到陣列結(jié)構(gòu)包含計算等于所述組的數(shù)量的基數(shù)的取模運算以確定所述陣列結(jié)構(gòu)中的位置,其中傳送所述元素到所述陣列結(jié)構(gòu)中的所述位置。在一個實施例中,控制器要將讀取的所述元素傳送到陣列結(jié)構(gòu)包含運行單指令多數(shù)據(jù)(snrn)操作以傳送讀取的所述元素。在一個實施例中,控制器要將讀取的所述元素傳送到所述陣列結(jié)構(gòu)包含將讀取的元素從與主機處理器關(guān)聯(lián)的結(jié)構(gòu)陣列傳送到與圖形處理器關(guān)聯(lián)的陣列結(jié)構(gòu)。在一個實施例中,進(jìn)一步包括控制器以移位傳送到陣列結(jié)構(gòu)的數(shù)據(jù)元素以將公共結(jié)構(gòu)的元素對準(zhǔn)到公共組。
[0081 ]在一方面,一種制品包括計算機可讀存儲介質(zhì),其上存儲有內(nèi)容,內(nèi)容當(dāng)被運行時執(zhí)行操作,包含:計算第一存儲器裝置中的組的數(shù)量與結(jié)構(gòu)陣列中的結(jié)構(gòu)的結(jié)構(gòu)大小之間的最高公因子,其中所述最高公因子不同于所述結(jié)構(gòu)的結(jié)構(gòu)大小;將分區(qū)大小值設(shè)置成計算的最高公因子;計算等于所述組的數(shù)量除以所述分區(qū)大小的移位值;在一個操作循環(huán)中從等于所述移位值的若干結(jié)構(gòu)中讀取等于所述分區(qū)大小的若干元素;在所述一個操作循環(huán)中將讀取的元素傳送到具有與所述第一存儲器裝置相等的組的數(shù)量的第二存儲器裝置中的陣列結(jié)構(gòu);以及在隨后操作循環(huán)中繼續(xù)所述讀取和傳送,直到所述結(jié)構(gòu)陣列的所有元素都被傳送到所述陣列結(jié)構(gòu)。
[0082]在一個實施例中,第一存儲器裝置和第二存儲器裝置是單個共享存儲器裝置的不同部分。在一個實施例中,用于將讀取的元素傳送到陣列結(jié)構(gòu)的內(nèi)容進(jìn)一步包括用于計算等于所述組的數(shù)量的基數(shù)的取模運算以確定所述陣列結(jié)構(gòu)中的位置(其中傳送所述元素到所述陣列結(jié)構(gòu)中的所述位置)的內(nèi)容。在一個實施例中,用于將讀取的元素傳送到陣列結(jié)構(gòu)的內(nèi)容進(jìn)一步包括用于運行單指令多數(shù)據(jù)(Sn?)操作以傳送讀取的所述元素的內(nèi)容。在一個實施例中,用于將讀取的元素傳送到所述陣列結(jié)構(gòu)的內(nèi)容包括用于將讀取的元素從與主機處理器關(guān)聯(lián)的結(jié)構(gòu)陣列傳送到與圖形處理器關(guān)聯(lián)的陣列結(jié)構(gòu)的內(nèi)容。在一個實施例中,進(jìn)一步包括用于移位傳送到所述陣列結(jié)構(gòu)的所述數(shù)據(jù)元素以將公共結(jié)構(gòu)的元素對準(zhǔn)到公共組的內(nèi)容。
[0083]在一方面,設(shè)備可包含:用于第一存儲器裝置中的組的數(shù)量與計算結(jié)構(gòu)陣列中的結(jié)構(gòu)的結(jié)構(gòu)大小之間的最高公因子的部件,其中所述最高公因子不同于所述結(jié)構(gòu)的結(jié)構(gòu)大小;用于將分區(qū)大小值設(shè)置成計算的最高公因子的部件;用于計算等于所述組的數(shù)量除以所述分區(qū)大小的移位值的部件;用于在一個操作循環(huán)中從等于所述移位值的若干結(jié)構(gòu)中讀取等于所述分區(qū)大小的若干元素的部件;用于在一個操作循環(huán)中將讀取的元素傳送到具有與所述第一存儲器裝置相等的組的數(shù)量的第二存儲器裝置中的陣列結(jié)構(gòu)的部件;以及用于在隨后操作循環(huán)中繼續(xù)所述讀取和傳送,直到所述結(jié)構(gòu)陣列的所有元素都被傳送到所述陣列結(jié)構(gòu)的部件。
[0084]在一個實施例中,第一存儲器裝置和所述第二存儲器裝置是單個共享存儲器裝置的不同部分。在一個實施例中,用于將讀取的元素傳送到陣列結(jié)構(gòu)的部件進(jìn)一步包括用于計算等于所述組的數(shù)量的基數(shù)的取模運算以確定所述陣列結(jié)構(gòu)中的位置(其中傳送所述元素到所述陣列結(jié)構(gòu)中的所述位置)的部件。在一個實施例中,用于將讀取的元素傳送到陣列結(jié)構(gòu)的部件進(jìn)一步包括用于運行單指令多數(shù)據(jù)(SIMD)操作以傳送讀取的所述元素的部件。在一個實施例中,用于將讀取的元素傳送到所述陣列結(jié)構(gòu)的部件包括用于將讀取的元素從與主機處理器關(guān)聯(lián)的結(jié)構(gòu)陣列傳送到與圖形處理器關(guān)聯(lián)的陣列結(jié)構(gòu)的部件。在一個實施例中,進(jìn)一步包括用于移位傳送到所述陣列結(jié)構(gòu)的所述數(shù)據(jù)元素以將公共結(jié)構(gòu)的元素對準(zhǔn)到公共組的部件。
[0085]本文所圖示的流程圖提供了各種過程動作順序的示例。流程圖可指示要由軟件或固件例程運行的操作以及物理操作。在一個實施例中,流程圖可圖示有限狀態(tài)機(FSM)的狀態(tài),其可用硬件和/或軟件實現(xiàn)。盡管按具體順序或次序示出了,但是除非另外規(guī)定,否則可以修改動作的次序。從而,所圖示的實施例應(yīng)該僅作為示例理解,并且過程可按不同次序執(zhí)行,并且一些動作可并行執(zhí)行。此外,在各種實施例中可省略一個或多個動作;從而,并不是在每個實施例中都需要所有動作。其它過程流程是可能的。
[0086]在本文描述各種操作或功能的意義上,它們可描述或者定義為軟件代碼、指令、配置和/或數(shù)據(jù)。內(nèi)容可以是直接可運行的(“對象”或“可運行”形式)源代碼或差分代碼(“ A ”或“補丁”代碼)。本文描述的實施例的軟件內(nèi)容可經(jīng)由其上存儲有內(nèi)容的制品或經(jīng)由操作通信接口以經(jīng)由通信接口發(fā)送數(shù)據(jù)的方法提供。機器可讀存儲介質(zhì)可使機器執(zhí)行所描述的功能或操作,并且包含存儲以由機器(例如計算裝置、電子系統(tǒng)等)可存取形式的信息的任何機制,諸如可記錄/不可記錄媒體(例如只讀存儲器(ROM)、隨機存取存儲器(RAM)、磁盤存儲媒體、光存儲媒體、閃存裝置等)。通信接口包含與任何硬連線、無線、光學(xué)等介質(zhì)對接以與另一裝置(諸如存儲器總線接口、處理器總線接口、因特網(wǎng)連接、盤控制器等)通信的任何機制。通信接口可被配置提供提供配置參數(shù)和/或發(fā)送信號以準(zhǔn)備通信接口來提供描述軟件內(nèi)容的數(shù)據(jù)信號。通信接口可經(jīng)由發(fā)送到通信接口的一個或多個命令或信號存取。
[0087]本文描述的各種組件可以是用于執(zhí)行所描述的操作或功能的部件。本文描述的每個部件都包含軟件、硬件或這些的組合。組件可實現(xiàn)為軟件模塊、硬件模塊、專用硬件(例如應(yīng)用特定硬件、專用集成電路(ASIC)、數(shù)字信號處理器(DSP)等)、嵌入式控制器、硬連線電路等。
[0088]除了本文所描述的內(nèi)容,可對所公開的本發(fā)明的實施例和實現(xiàn)進(jìn)行各種修改,而不脫離它們的范圍。因此,本文的圖示和示例應(yīng)該被視為說明性的,而非約束性意義。本發(fā)明的范圍應(yīng)該僅參考如下權(quán)利要求書進(jìn)行度量。
【主權(quán)項】
1.一種用于存取成組存儲器的方法,包括: 計算第一存儲器裝置中的組的數(shù)量與結(jié)構(gòu)陣列中的結(jié)構(gòu)的結(jié)構(gòu)大小之間的最高公因子,其中所述最高公因子不同于所述結(jié)構(gòu)的結(jié)構(gòu)大?。?將分區(qū)大小值設(shè)置成所述計算的最高公因子; 計算等于所述組的數(shù)量除以所述分區(qū)大小的移位值; 在一個操作循環(huán)中從等于所述移位值的若干結(jié)構(gòu)中讀取等于所述分區(qū)大小的若干元素; 在所述一個操作循環(huán)中將讀取的所述元素傳送到具有與所述第一存儲器裝置相等的組的數(shù)量的第二存儲器裝置中的陣列結(jié)構(gòu);以及 在隨后操作循環(huán)中繼續(xù)所述讀取和傳送,直到所述結(jié)構(gòu)陣列的所有元素都被傳送到所述陣列結(jié)構(gòu)。2.如權(quán)利要求1所述的方法,其中所述第一存儲器裝置和所述第二存儲器裝置是單個共享存儲器裝置的不同部分。3.如權(quán)利要求1所述的方法,其中將讀取的所述元素傳送到陣列結(jié)構(gòu)進(jìn)一步包括: 計算等于所述組的數(shù)量的基數(shù)的取模運算以確定在所述陣列結(jié)構(gòu)中的位置,其中傳送所述元素到所述陣列結(jié)構(gòu)中的所述位置。4.如權(quán)利要求1所述的方法,其中將讀取的所述元素傳送到陣列結(jié)構(gòu)進(jìn)一步包括: 運行單指令多數(shù)據(jù)(Sn?)操作以傳送讀取的所述元素。5.如權(quán)利要求1所述的方法,其中將讀取的所述元素傳送到所述陣列結(jié)構(gòu)包括將讀取的元素從與主機處理器關(guān)聯(lián)的結(jié)構(gòu)陣列傳送到與圖形處理器關(guān)聯(lián)的陣列結(jié)構(gòu)。6.如權(quán)利要求1所述的方法,進(jìn)一步包括: 移位傳送到所述陣列結(jié)構(gòu)的所述數(shù)據(jù)元素以將公共結(jié)構(gòu)的元素對準(zhǔn)到公共組。7.一種用于存取成組存儲器的設(shè)備,包括: 具有若干組的第一存儲器裝置,用于按結(jié)構(gòu)陣列格式存儲數(shù)據(jù)元素; 具有若干組的第二存儲器裝置,用于按陣列結(jié)構(gòu)格式存儲數(shù)據(jù)元素;以及控制器裝置,用于將所述數(shù)據(jù)元素從所述第一存儲器裝置傳送到所述第二存儲器裝置,包含所述控制器裝置配置成執(zhí)行如下操作: 計算所述第一存儲器裝置中的所述組的數(shù)量與所述結(jié)構(gòu)陣列中的結(jié)構(gòu)的結(jié)構(gòu)大小之間的最高公因子,其中所述最高公因子不同于所述結(jié)構(gòu)的結(jié)構(gòu)大小; 將分區(qū)大小值設(shè)置成所述計算的最高公因子; 計算等于所述組的數(shù)量除以所述分區(qū)大小的移位值; 在一個操作循環(huán)中從等于所述移位值的若干結(jié)構(gòu)中讀取等于所述分區(qū)大小的若干元素; 在所述一個操作循環(huán)中將讀取的所述元素傳送到所述第二存儲器裝置中的所述陣列結(jié)構(gòu);以及 在隨后操作循環(huán)中繼續(xù)所述讀取和傳送,直到所述結(jié)構(gòu)陣列的所有元素都被傳送到所述陣列結(jié)構(gòu)。8.如權(quán)利要求7所述的設(shè)備,其中所述第一存儲器裝置和所述第二存儲器裝置是單個共享存儲器裝置的不同部分。9.如權(quán)利要求7所述的設(shè)備,其中所述控制器要將讀取的所述元素傳送到陣列結(jié)構(gòu)包含計算等于所述組的數(shù)量的基數(shù)的取模運算以確定所述陣列結(jié)構(gòu)中的位置,其中傳送所述元素到所述陣列結(jié)構(gòu)中的所述位置。10.如權(quán)利要求7所述的設(shè)備,其中所述控制器要將讀取的所述元素傳送到陣列結(jié)構(gòu)包含運行單指令多數(shù)據(jù)(Sn?)操作以傳送讀取的所述元素。11.如權(quán)利要求7所述的設(shè)備,其中所述控制器要將讀取的所述元素傳送到所述陣列結(jié)構(gòu)包含將讀取的元素從與主機處理器關(guān)聯(lián)的結(jié)構(gòu)陣列傳送到與圖形處理器關(guān)聯(lián)的陣列結(jié)構(gòu)。12.如權(quán)利要求7所述的設(shè)備,進(jìn)一步包括所述控制器移位傳送到所述陣列結(jié)構(gòu)的所述數(shù)據(jù)元素以將公共結(jié)構(gòu)的元素對準(zhǔn)到公共組。13.一種用于存取成組存儲器的電子裝置,包括: 主機處理器裝置; 耦合到所述主機處理器裝置的電路,所述電路包含: 具有若干組的第一存儲器裝置,用于按結(jié)構(gòu)陣列格式存儲數(shù)據(jù)元素; 具有若干組的第二存儲器裝置,用于按陣列結(jié)構(gòu)格式存儲數(shù)據(jù)元素;以及 控制器裝置,用于將所述數(shù)據(jù)元素從所述第一存儲器裝置傳送到所述第二存儲器裝置,包含所述控制器裝置配置成執(zhí)行如下操作:計算所述第一存儲器裝置中的所述組的數(shù)量與所述結(jié)構(gòu)陣列中的結(jié)構(gòu)的結(jié)構(gòu)大小之間的最高公因子,其中所述最高公因子不同于所述結(jié)構(gòu)的結(jié)構(gòu)大小;將分區(qū)大小值設(shè)置成所述計算的最高公因子;計算等于所述組的數(shù)量除以所述分區(qū)大小的移位值;在一個操作循環(huán)中從等于所述移位值的若干結(jié)構(gòu)中讀取等于所述分區(qū)大小的若干元素;在所述一個操作循環(huán)中將讀取的所述元素傳送到所述第二存儲器裝置中的所述陣列結(jié)構(gòu);以及在隨后操作循環(huán)中繼續(xù)所述讀取和傳送,直到所述結(jié)構(gòu)陣列的所有元素都被傳送到所述陣列結(jié)構(gòu);以及 數(shù)字顯示器接口,耦合到顯示器裝置以顯示由所述主機處理器計算的數(shù)據(jù)。14.一種用于存取成組存儲器的制品,包括計算機可讀存儲介質(zhì),其上存儲有內(nèi)容,所述內(nèi)容當(dāng)由計算裝置運行時執(zhí)行運行如權(quán)利要求1至6中任一項所述的方法的操作。15.—種用于存取成組存儲器的設(shè)備,包括用于執(zhí)行運行如權(quán)利要求1至6中任一項所述的方法的操作的部件。
【文檔編號】G06T1/60GK106062814SQ201580013091
【公開日】2016年10月26日
【申請日】2015年4月8日 公開號201580013091.5, CN 106062814 A, CN 106062814A, CN 201580013091, CN-A-106062814, CN106062814 A, CN106062814A, CN201580013091, CN201580013091.5, PCT/2015/25004, PCT/US/15/025004, PCT/US/15/25004, PCT/US/2015/025004, PCT/US/2015/25004, PCT/US15/025004, PCT/US15/25004, PCT/US15025004, PCT/US1525004, PCT/US2015/025004, PCT/US2015/25004, PCT/US2015025004, PCT/US201525004
【發(fā)明人】S.帕爾, M.孫達(dá)雷桑
【申請人】英特爾公司