優(yōu)化圖像存儲(chǔ)器訪(fǎng)問(wèn)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明大體設(shè)及訪(fǎng)問(wèn)存儲(chǔ)器。更具體地,本發(fā)明設(shè)及使用步進(jìn)瓦工引擎(stepper Tiler Engine)訪(fǎng)問(wèn)成像存儲(chǔ)器。
【背景技術(shù)】
[0002] 訪(fǎng)問(wèn)存儲(chǔ)在存儲(chǔ)器中的圖像的計(jì)算機(jī)行為可能連續(xù)訪(fǎng)問(wèn)存儲(chǔ)器中的圖像的某一 部分。相應(yīng)地,流式傳送來(lái)自攝像機(jī)的視頻或?qū)D像發(fā)送到高速打印機(jī)可能需要每秒幾 千兆的數(shù)據(jù)帶寬。對(duì)存儲(chǔ)器和數(shù)據(jù)帶寬的差管理可能導(dǎo)致差的成像性能。
[0003] 此外,在訪(fǎng)問(wèn)儲(chǔ)存設(shè)備中的圖像的時(shí)候,各種類(lèi)型的無(wú)效率或錯(cuò)誤可能發(fā)生。例 如,處理器可能試圖處理仍未被放在高速緩存中的圖像的行或區(qū)域,導(dǎo)致從儲(chǔ)存設(shè)備處理 該行或圖像。高速緩存是當(dāng)與儲(chǔ)存設(shè)備相比時(shí)可被更快訪(fǎng)問(wèn)的較小存儲(chǔ)器。當(dāng)在高速緩存 中未找到之后從儲(chǔ)存設(shè)備處理圖像的該行或區(qū)域時(shí),結(jié)果是高速緩存未命中。當(dāng)與在不具 有任何高速緩存未命中的情況下處理圖像相比時(shí),高速緩存未命中可能減慢圖像存儲(chǔ)器訪(fǎng) 問(wèn)。
【附圖說(shuō)明】
[0004] 通過(guò)參照附圖,可更好理解W下詳細(xì)描述,附圖包含了所公開(kāi)的主題的許多對(duì)象 和特征的具體示例: 圖1是可根據(jù)實(shí)施例使用的計(jì)算設(shè)備的框圖; 圖2是圖示根據(jù)實(shí)施例的將圖像布置成一維陣列的圖; 圖3是矩形組裝器的圖示; 圖4A、4B和4C圖示了根據(jù)實(shí)施例的使用矩形緩沖器線(xiàn)性處理圖像的示例; 圖5A、5B和4C圖示了根據(jù)實(shí)施例使用行緩沖器線(xiàn)性處理圖像的示例; 圖6是根據(jù)實(shí)施例的訪(fǎng)問(wèn)存儲(chǔ)在存儲(chǔ)器中的圖像的方法的處理流程圖;W及 圖7是根據(jù)實(shí)施例的包含訪(fǎng)問(wèn)存儲(chǔ)在存儲(chǔ)器中的圖像的指令的計(jì)算機(jī)可讀介質(zhì)的圖。
[0005] 貫穿公開(kāi)文本和圖,使用相同數(shù)字來(lái)引用類(lèi)似部件和特征。在100系列中的數(shù)字 指代最初在圖1中發(fā)現(xiàn)的特征;在200系列中的數(shù)字指代最初在圖2中發(fā)現(xiàn)的特征;并且W 此類(lèi)推。
【具體實(shí)施方式】
[0006] 本文描述的實(shí)施例公開(kāi)了優(yōu)化圖像存儲(chǔ)器訪(fǎng)問(wèn)。圖像被布置為一維(1D)陣列,使 得可使能線(xiàn)性訪(fǎng)問(wèn)模式。如本文中使用的圖像可W是二維位圖、視頻的帖或=維對(duì)象。圖 像數(shù)據(jù)可W由像素區(qū)域構(gòu)成。如本文使用的術(shù)語(yǔ)像素區(qū)域可W是單個(gè)像素、一組像素、像素 區(qū)域或其任意組合中的至少一種。圖像可W被處理為像素區(qū)域或行的組或矩形區(qū)域。在 實(shí)施例中,在本文還可W與術(shù)語(yǔ)行、行緩沖器、矩形、矩形緩沖器、數(shù)據(jù)緩沖器、陣列、1D陣列 或緩沖器可互換地稱(chēng)為術(shù)語(yǔ)遞增。如本文使用的處理可W設(shè)及復(fù)制、傳輸或流式傳送來(lái)自 存儲(chǔ)器的圖像的遞增或像素區(qū)域到電子設(shè)備(例如計(jì)算機(jī)、打印機(jī)或攝像機(jī))的處理器或輸 出。因此,替代對(duì)非線(xiàn)性矩形存儲(chǔ)器區(qū)域或非郵鄰行的低效存儲(chǔ)器訪(fǎng)問(wèn)的是,將數(shù)據(jù)的期望 的矩形或行訪(fǎng)問(wèn)模式順序封裝到1D陣列的集合中,W易于存儲(chǔ)器訪(fǎng)問(wèn)并且易于計(jì)算。本領(lǐng) 域技術(shù)人員將認(rèn)識(shí)到,將存儲(chǔ)器模式封裝到1D陣列中的該方法允許標(biāo)準(zhǔn)矢量處理指令和 自動(dòng)遞增存儲(chǔ)器訪(fǎng)問(wèn)指令被采用W高效訪(fǎng)問(wèn)和處理數(shù)據(jù)。
[0007] 步進(jìn)瓦工引擎用作流水線(xiàn)機(jī)器W預(yù)取用于矩形組裝器的存儲(chǔ)器模式。矩形組裝器 將存儲(chǔ)器模式組裝成高速緩存中的線(xiàn)性封裝的1D陣列的集合。步進(jìn)瓦工引擎可然后使得 該1D陣列的集合是處理器可用的。處理單元然后可W使用指針訪(fǎng)問(wèn)1D陣列。處理單元處 理數(shù)據(jù),然后步進(jìn)瓦工引擎將經(jīng)處理的數(shù)據(jù)從1D陣列寫(xiě)回到高速緩存或儲(chǔ)存設(shè)備。矩形組 裝器在處理完成之后可W將1D陣列從高速緩存收回。
[0008] 附加地,步進(jìn)瓦工引擎包括狀態(tài)和控制寄存器的集合,該集合可被編程為自動(dòng)訪(fǎng) 問(wèn)存儲(chǔ)器模式并且將它們組裝成如上文所討論的線(xiàn)性封裝的1D陣列??闪魉€(xiàn)方式 訪(fǎng)問(wèn)存儲(chǔ)器模式,其中順序訪(fǎng)問(wèn)每個(gè)模式。步進(jìn)瓦工引擎包括可編程能力W順序在將被處 理的整個(gè)圖像區(qū)域上步進(jìn),并且將存儲(chǔ)器模式(例如矩形和行)組裝成封裝的線(xiàn)性1D陣列作 為流水線(xiàn)中的預(yù)取步驟。存儲(chǔ)器模式也可W W重疊方式訪(fǎng)問(wèn),其還使能預(yù)取和處理。當(dāng)預(yù)取 存儲(chǔ)器模式時(shí),通過(guò)步進(jìn)瓦工引擎訪(fǎng)問(wèn)存儲(chǔ)器并且將存儲(chǔ)器組裝成高速緩存中的1D陣列, 同時(shí)處理器訪(fǎng)問(wèn)來(lái)自高速緩存的1D陣列。如上文討論的,在通過(guò)步進(jìn)瓦工引擎將已經(jīng)處理 或使用的1D陣列已經(jīng)寫(xiě)回到存儲(chǔ)器中的適當(dāng)位置中時(shí),可W從高速緩存收回它們。
[0009] 附加地,在實(shí)施例中,在處理行或區(qū)域之前可W將圖像的行或區(qū)域放到高速緩存 中,W防止高速緩存未命中。因?yàn)閳D像被布置為一維陣列并且訪(fǎng)問(wèn)模式是線(xiàn)性的,使用存 儲(chǔ)器尋址自動(dòng)遞增指令和面向陣列處理的指令集,處理數(shù)據(jù)的陣列可W更快,因?yàn)榭深A(yù)測(cè) 在圖像存儲(chǔ)器訪(fǎng)問(wèn)期間將被處理的下一行或區(qū)域??赏ㄟ^(guò)存儲(chǔ)在高速緩存中來(lái)準(zhǔn)備行或區(qū) 域,W用于快速訪(fǎng)問(wèn)和處理。使用本文公開(kāi)的方法來(lái)封裝存儲(chǔ)器模式(例如矩形或選擇的 行巧Ij線(xiàn)性1D陣列的集合中,本文描述的實(shí)施例可提供對(duì)存儲(chǔ)器訪(fǎng)問(wèn)的優(yōu)化W加速處理,因 為處理器將原本在繼續(xù)處理之前需要等待存儲(chǔ)器讀取和寫(xiě)入操作完成。
[0010] 在W下描述和權(quán)利要求中,可使用術(shù)語(yǔ)"禪合"和"連接"W及它們的派生詞。應(yīng) 當(dāng)理解的是,該些術(shù)語(yǔ)非旨在作為相互的同義詞。相反,在特定實(shí)施例中,"連接"可用于指 示兩個(gè)或更多元件處于相互的直接物理或電氣接觸中。"禪合"可表示兩個(gè)或更多元件處于 直接物理或電氣接觸中。然而,"禪合"還可表示兩個(gè)或更多元件不處于相互直接接觸中,但 仍然相互協(xié)作或交互。
[0011] 一些實(shí)施例可W在硬件、固件和軟件中的一個(gè)或組合中實(shí)施。一些實(shí)施例還可被 實(shí)施為存儲(chǔ)在機(jī)器可讀介質(zhì)上的指令,其可由計(jì)算平臺(tái)讀取和實(shí)行W執(zhí)行本文描述的操 作。機(jī)器可讀介質(zhì)可包括用于存儲(chǔ)或傳輸機(jī)器(例如計(jì)算機(jī))可讀形式的信息的任何機(jī)構(gòu)。 例如,機(jī)器可讀介質(zhì)可包括只讀存儲(chǔ)器(ROM);隨機(jī)存取存儲(chǔ)器(RAM);磁盤(pán)存儲(chǔ)介質(zhì);光學(xué) 存儲(chǔ)介質(zhì);閃存設(shè)備;或電、光、聲或其它形式的傳播信號(hào),例如載波、紅外信號(hào)、數(shù)字信號(hào), 或發(fā)送和/或接收信號(hào)的接口,等等。
[0012] 實(shí)施例是實(shí)施方式或示例。在說(shuō)明書(shū)中對(duì)"一實(shí)施例"、"一個(gè)實(shí)施例"、"一些實(shí)施 例"、"各個(gè)實(shí)施例"、或"其它實(shí)施例"的引用表示結(jié)合該實(shí)施例描述的特定特征、結(jié)構(gòu)或特 性被包括在本發(fā)明的至少一些實(shí)施例中,但不一定在所有實(shí)施例中。各處出現(xiàn)的"一實(shí)施 例"、"一個(gè)實(shí)施例"或"一些實(shí)施例"不一定都指代相同實(shí)施例。來(lái)自一實(shí)施例的元件或方 面可W與另一實(shí)施例的元件或方面組合。
[0013] 不是本文描述和圖示的所有部件、特征、結(jié)構(gòu)、特性等都需要被包括在特定實(shí)施例 或多個(gè)實(shí)施例中。如果說(shuō)明書(shū)例如陳述了 "可"、"可能"、"能夠"或"能"包括部件、特征、結(jié) 構(gòu)或特性,不要求該特定部件、特征、結(jié)構(gòu)或特性被包括。如果說(shuō)明書(shū)或權(quán)利要求設(shè)及"一" 或"一種"元件,其不表示僅存在一個(gè)該元件。如果說(shuō)明書(shū)或權(quán)利要求設(shè)及"一附加"元件, 其不排除存在多于一個(gè)的該附加元件。
[0014] 應(yīng)當(dāng)注意,盡管參考特定實(shí)施方式描述了一些實(shí)施例,但是根據(jù)一些實(shí)施例,其它 實(shí)施方式是可能的。附加地,在圖中圖示的和/或本文描述的電路元件或其他特征的布置 和/或順序不需要W圖示和描述的特定方式來(lái)布置。根據(jù)一些實(shí)施例,很多其它布置是可 能的。
[0015] 在圖中示出的每個(gè)系統(tǒng)中,在一些情況下的元件可能每個(gè)具有相同附圖標(biāo)記或不 同附圖標(biāo)記來(lái)表明表示的該元件可能是不同和/或類(lèi)似的。然而,元件可W足夠靈活W具 有不同實(shí)施方式,并且與本文示出或描述的系統(tǒng)中的一些或所有一起工作。圖中示出的各 個(gè)元件可W是相同或不同的。哪個(gè)被稱(chēng)為第一元件并且哪個(gè)被稱(chēng)為第二元件是任意的。
[0016] 圖1是根據(jù)實(shí)施例可使用的計(jì)算設(shè)備100的框圖。計(jì)算設(shè)備100可例如是膝上型 計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、平板計(jì)算機(jī)、移動(dòng)設(shè)備或服務(wù)器等。計(jì)算設(shè)備100可包括被配置為執(zhí) 行存儲(chǔ)的指令的中央處理單元(CPU) 102,W及存儲(chǔ)由CPU102可執(zhí)行的指令的存儲(chǔ)器設(shè)備 104。CPU可通過(guò)總線(xiàn)106禪合到存儲(chǔ)器設(shè)備104。附加地,CPU102可W是單核處理器、多 核儲(chǔ)存設(shè)備、計(jì)算集群、或任意數(shù)量的其它配置。此外,計(jì)算設(shè)備100可包括多于一個(gè)的CPU 102。由CPU102執(zhí)行的指令可被用于優(yōu)化存儲(chǔ)器訪(fǎng)問(wèn)??蒞在本發(fā)明的實(shí)施例中使用除 了CPU之外的很多計(jì)算架構(gòu),例如單指令多數(shù)據(jù)(SIMD)指令集、數(shù)字信號(hào)處理(DSP)處理 器、圖像信號(hào)處理(ISP)處理器、GPU、或其他類(lèi)型的陣列處理器,例如超長(zhǎng)指令字(VLIW)機(jī) 器。
[0017] 計(jì)算設(shè)備100還可包括圖形處理單元(GPU) 108。如示出的,CPU102可W經(jīng)由總 線(xiàn)106禪合到GPU108。GPU108可W被配置為執(zhí)行在計(jì)算設(shè)備100內(nèi)的任何數(shù)量的圖形 操作。例如,GPU108可W被配置為擅染或操縱將被顯示給計(jì)算設(shè)備100的用戶(hù)的圖形圖 像、圖形帖、視頻等。在一些實(shí)施例中,GPU108包括多個(gè)圖形引擎(未示出),其中