TWI617928B - 用於特徵搜尋之系統,裝置及方法 - Google Patents

用於特徵搜尋之系統,裝置及方法 Download PDF

Info

Publication number
TWI617928B
TWI617928B TW104105834A TW104105834A TWI617928B TW I617928 B TWI617928 B TW I617928B TW 104105834 A TW104105834 A TW 104105834A TW 104105834 A TW104105834 A TW 104105834A TW I617928 B TWI617928 B TW I617928B
Authority
TW
Taiwan
Prior art keywords
item
feature
icam
features
patent application
Prior art date
Application number
TW104105834A
Other languages
English (en)
Other versions
TW201602813A (zh
Inventor
祥重 孔
Original Assignee
英特爾股份有限公司
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 英特爾股份有限公司 filed Critical 英特爾股份有限公司
Publication of TW201602813A publication Critical patent/TW201602813A/zh
Application granted granted Critical
Publication of TWI617928B publication Critical patent/TWI617928B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90339Query processing by using parallel associative memories or content-addressable memories

Abstract

本文中詳細說明用於使用一項目為基搜尋結構來特徵搜尋的系統、方法及裝置之實施例。

Description

用於特徵搜尋之系統,裝置及方法
本發明之領域一般關於電腦處理器架構,尤其是關於特徵搜尋。
有許多應用,其中對資料集之多維特徵(點)的快速和有效最近鄰近搜尋係期望的。例如,這種類型的搜尋在如影像重建和機器學習的領域中係有利的。有數種最近鄰近資料集搜尋的方式。在最近鄰近搜尋中,已知在空間中的一組點和輸入數據(查詢點),進行搜尋以尋找在組合中最接近輸入數據的點。
101‧‧‧特徵
103‧‧‧胞元
201‧‧‧輸入數據
203‧‧‧iCAM
205‧‧‧RAM
301‧‧‧字典
501-504‧‧‧子內文
505‧‧‧界限框
601‧‧‧特徵α
701‧‧‧特徵間隔
703‧‧‧特徵間隔
705‧‧‧特徵間隔
707‧‧‧數據x
709‧‧‧界限框
1001‧‧‧界限框
1003‧‧‧界限框
1005‧‧‧界限框
3001‧‧‧核心
3003‧‧‧iCAM
3005‧‧‧合併單元
3301‧‧‧iCAM
3303‧‧‧間隔值
3305‧‧‧位址
3307‧‧‧有效位元
3309‧‧‧iCAM
3311‧‧‧間隔值
3315‧‧‧有效位元
3325‧‧‧iCAM
3317‧‧‧間隔值
3319‧‧‧位址
3321‧‧‧特徵
3323‧‧‧有效位元
3401‧‧‧硬體處理器
3403‧‧‧iCAM
3407‧‧‧處理裝置
3413‧‧‧特徵字典
3405‧‧‧記憶體裝置
3415‧‧‧特徵
3409‧‧‧感測器
3419‧‧‧字典
3441‧‧‧處理器
3451‧‧‧核心
3450‧‧‧處理器
3500‧‧‧暫存器架構
3510‧‧‧向量暫存器
3515‧‧‧寫入遮罩暫存器
3525‧‧‧通用暫存器
3545‧‧‧純量浮點堆疊暫存器檔案
3550‧‧‧MMX填充整數平暫存器檔案
3600‧‧‧處理器管線
3602‧‧‧提取級
3604‧‧‧長度解碼級
3606‧‧‧解碼級
3608‧‧‧分配級
3610‧‧‧更名級
3612‧‧‧排程級
3614‧‧‧暫存器讀取/記憶體讀取級
3616‧‧‧執行級
3618‧‧‧寫回/記憶體寫入級
3622‧‧‧例外處理級
3624‧‧‧提交級
3690‧‧‧處理器核心
3630‧‧‧前端單元
3650‧‧‧執行引擎單元
3670‧‧‧記憶體單元
3632‧‧‧分支預測單元
3634‧‧‧指令快取單元
3636‧‧‧指令轉譯旁視緩衝器
3638‧‧‧指令提取單元
3640‧‧‧解碼單元
3652‧‧‧更名/分配器單元
3654‧‧‧引退單元
3656‧‧‧排程器單元
3658‧‧‧實體暫存器檔案單元
3660‧‧‧執行叢集
3662‧‧‧執行單元
3664‧‧‧記憶體存取單元
3670‧‧‧記憶體單元
3674‧‧‧資料快取單元
3672‧‧‧資料TLB單元
3676‧‧‧第2級(L2)快取單元
3690‧‧‧核心
3700‧‧‧指令解碼器
3702‧‧‧互連網路
3704‧‧‧第2級(L2)快取的區域子集
3706‧‧‧L1快取
3708‧‧‧純量單元
3710‧‧‧向量單元
3712‧‧‧純量暫存器
3714‧‧‧向量暫存器
3706A‧‧‧L1資料快取
3720‧‧‧VPU以攪和單元
3722A-B‧‧‧數字轉換單元
3724‧‧‧複製單元
3726‧‧‧寫入遮罩暫存器
3800‧‧‧處理器
3802A-N‧‧‧核心
3810‧‧‧系統代理器
3816‧‧‧匯流排控制器單元
3814‧‧‧整合記憶體控制器單元
3808‧‧‧專用邏輯
3806‧‧‧共享快取單元
3812‧‧‧互連單元
3900‧‧‧系統
3910‧‧‧處理器
3915‧‧‧處理器
3920‧‧‧控制器中心
3990‧‧‧圖形記憶體控制器中心
3950‧‧‧輸入/輸出中心
3940‧‧‧記憶體
3945‧‧‧協處理器
3960‧‧‧輸入/輸出裝置
3995‧‧‧連線
4000‧‧‧多處理器系統
4050‧‧‧點對點互連
4070‧‧‧第一處理器
4080‧‧‧第二處理器
4038‧‧‧協處理器
4072‧‧‧整合記憶體控制器單元
4082‧‧‧整合記憶體控制器單元
4076‧‧‧P-P介面
4078‧‧‧P-P介面
4086‧‧‧P-P介面
4088‧‧‧P-P介面
4032‧‧‧記憶體
4034‧‧‧記憶體
4052‧‧‧P-P介面
4054‧‧‧P-P介面
4090‧‧‧晶片組
4039‧‧‧高效能介面
4096‧‧‧介面
4016‧‧‧第一匯流排
4014‧‧‧I/O裝置
4018‧‧‧匯流排橋接器
4020‧‧‧第二匯流排
4015‧‧‧處理器
4022‧‧‧鍵盤及/或滑鼠
4027‧‧‧通訊裝置
4030‧‧‧資料
4028‧‧‧儲存單元
4024‧‧‧音頻I/O
4114‧‧‧I/O裝置
4202‧‧‧互連單元
4210‧‧‧應用處理器
4220‧‧‧協處理器
4230‧‧‧靜態隨機存取記憶體單元
4232‧‧‧直接記憶體存取單元
4302‧‧‧高階語言
4304‧‧‧x86編譯器
4306‧‧‧x86二進制碼
4316‧‧‧x86指令集核心
4308‧‧‧指令集編譯器
4314‧‧‧x86指令集核心
4310‧‧‧指令集二進制碼
4312‧‧‧指令轉換器
本發明僅經由在附圖中的舉例,且非限定地說明,在附圖中的相同參考數字表示類似元件,且其中:
第1圖繪示具有多個特徵(點)之特徵空間的Voronoi圖之實例,其中針對在Voronoi區域中的任何點,最近特徵是在區域中的特徵(由黑點所表示)。
第2圖繪示示範iCAM為基系統的實施例。
第3(a)-(b)圖繪示在iCAM實作中之原始和隨機子取樣字典的實施例。
第4(a)-(b)圖繪示輸入數據和特徵之字典的實施例。
第5圖繪示用於相關內文之界限框的實施例。
第6圖繪示在二維空間(R2)中的示範界限框。
第7圖繪示示範3-D界限框。
第8圖繪示非重疊界限框的實例。
第9圖繪示用於尋找最佳匹配之OMP方法的實施例。
第10圖繪示OMP的示範應用。
第11圖繪示使用角度以識別出在每個迭代中的最佳匹配特徵之OMP的實例。
第12圖繪示僅使用特徵向量之正版本的示範iCAM OMP實作。
第13圖繪示根據一些實施例之用於使用匹配追蹤演算法(「MP」或「CoSaMP」)來識別出特徵的方法。
第14(A)-(B)圖繪示MP計算。
第15(a)-(b)圖繪示示範平行多維iCAM查找和輸入數據。
第16(a)-(b)圖繪示示範特徵間隔映射和iCAM項目。
第17(a)-(b)圖繪示分別在間隔重寫之後之在特徵間隔映射之前和之後的樣子。
第18圖繪示示範多維查找。
第19圖繪示多維iCAM架構的示範。
第20圖繪示用於有效編碼特徵間隔之方法的實施例。
第21圖繪示五個特徵(及其間隔)及何者被選擇作為進入iCAM中的項目之實例。
第22圖顯示用於第21圖之五個特徵的iCAM項目。
第23圖繪示在iCAM中使用無所謂的實例。
第24圖繪示在投票中使用之五個4維特徵的實例。
第25圖繪示在維度上之投票的實例。
第26(a)-(c)圖繪示CAM胞元的示範實施例。
第27圖繪示相對於TCAM為基實作之用於在維度上的給定輸入之iRAM的操作之對比。
第28圖繪示具有在維度上之其特徵間隔的F特徵a、b、c等。
第29圖繪示使用上面詳述之iCAM原則的高階方法之實施例。
第30圖繪示使用多個iCAM和多個核心之iCAM為基架構的實施例。
第31圖繪示用於使用多個核心及相關iCAM之方法的實施例。
第32圖繪示用於iSearch之方法的實施例。
第33(A)-(C)圖繪示iCAM項目的示範實施例。
第34(A)-(H)圖繪示利用iCAM之裝置和系統的各種實施例。
第35圖係根據本發明之一實施例之暫存器架構的方塊圖。
第36A圖係繪示根據本發明之實施例之示範有序管線與示範暫存器更名、亂序發出/執行管線兩者的方塊圖。
第36B圖係繪示根據本發明之實施例之將包括在處理器中的有序架構核心之示範實施例與示範暫存器更名、亂序發出/執行架構核心兩者的方塊圖。
第37A-B圖繪示更具體示範有序核心架構的方塊圖,其核心將是在晶片中的數個邏輯塊(包括相同類型及/或不同類型的其他核心)之其一者。
第38圖係根據本發明之實施例之可能具有超過一個核心,可能具有整合記憶體控制器,且可能具有整合圖形之處理器的方塊圖。
第39-42圖係示範電腦架構的方塊圖。
第43圖係根據本發明之實施例之對照於使用軟體指令轉換器將來源指令集中的二進制指令轉換成目標指令集中的二進制指令之方塊圖。
第44(A)-(B)圖繪示示範角座標。
第45(A)-(C)圖繪示角特徵間隔和界限框的實例。
【發明內容及實施方式】
在下面的說明中,提出了許多具體的細節。然而,了解沒有這些具體的細節仍可實行本發明之實施例。在其他例子中,並未詳細顯示熟知的電路、結構及技術,以免混淆對本說明書的理解。
在本說明書中提到的「一個實施例」、「一實施例」、「一示範實施例」、等等,係表示所述之實施例可能包括一特定特徵、結構、或特性,但每個實施例可能不必包括此特定特徵、結構、或特性。此外,這樣的說法不一定係指相同的實施例。又,當說明與實施例關聯之特定特徵、結構、或特性時,無論是否明確地說明,應認為其在本領域之熟知技藝者的理解內能影響這類與其他實施例關聯之特徵、結構、或特性。
針對最近鄰近搜尋的方法係用以計算自輸入數據至在資料集中之每個點的距離且持續追蹤最短距離。然而,這種簡單方法對於較大資料集而言可能並不可行。距離計算可能使用k維(k-d)樹來完成以進行一次一個 特徵地詳盡檢查所有特徵。因此,這種方法很慢且另外具有高功率消耗。
另一種最近鄰近方法使用Voronoi圖。第1圖繪示具有多個特徵(點)之特徵空間的Voronoi圖之實例。每個Voronoi圖將平面分成相等之稱為胞元的最近鄰近之區域。這是由各具有一個特徵(點)101的複數個胞元103所繪示。理論上,可能使用Voronoi圖對任何輸入數據找到「最佳匹配」特徵以在特定胞元中定位出特徵。然而,如圖所示,Voronoi胞元係高度不規則形狀的,且難以計算(它們都是時間和處理器密集的)和使用。換言之,Voronoi圖不適合容易、或有效的最近鄰近特徵搜尋。
本發明之實施例的高階概述
本文中所詳述的是用以改進最近鄰近搜尋之系統、裝置及方法的實施例,其克服上述方法之缺點。總之,給定輸入(即,觀察),進行了搜尋在特徵空間(即,特徵的字典)中的最佳匹配特徵。這種方法尤其非常適用於特徵向量,其通常稀疏地呈現於高維向量空間中(請注意在本說明中是特徵,由此,可互換地使用特徵和特徵向量)。
本文中所詳述的是針對給定輸入數據之特徵搜尋方法、系統及裝置的實施例:(i)在維度上平行查找對應特徵,且若需要的話,則(ii)結合結果以判定用 於輸入的一組一或更多最佳匹配特徵。如將於下所詳述,可能在特徵搜尋中利用用於在內文的每個維度上之特徵的間隔編碼架構。此外,在一些實施例中,搜尋任務被分成至少兩個階段:階段(i)平行處理所有維度,其提供效率(例如,使用如表或內容可定址記憶體的平行查找功能)、及階段(ii)允許結合來自個別維度的搜尋結果以在特徵選策略中提供彈性。在本說明中,說明了在可能在例如最近鄰近搜尋中使用之兩個階段之至少一者中使用間隔編碼且進行搜尋任務的多個特徵查找方法、系統及裝置。
說明了至少三個不同的特徵查找方法且在下面更透徹的處理之前於此提供這些查找方法的簡要概述。這些查找方法使用一或更多項目為基搜尋結構,如內容可定址記憶體(CAM)、搜尋樹、記憶體等等。第一特徵查找方法係一種以CAM為基的查找方法。CAM係實體裝置,其允許平行查找其內容。在計算裝置中使用之一個普遍類型的CAM係一轉譯旁視緩衝器(TLB)。在一些實施例中,用於特徵查找的CAM係三元CAM(TCAM)。然而,應了解針對CAM說明,可能也以下面詳述的方式來使用允許平行搜尋的其他實體結構。
每個特徵查找方法使用一種稱為「間隔編碼」的技術。間隔編碼允許基於所定義之維度間隔間隔來有效實作特徵查找。第一方法使用間隔內容可定址記憶體(iCAM),其使用稱為CAM的實體結構。在一些實施例 中,CAM係包括在處理器(CPU、GPU、APU等等)中且在其他中係晶片的一部分。給定輸入係用以從CAM查找最佳匹配特徵的索引(通常,只在一個CAM讀取週期中),而不是在傳統方法中計算用於給定輸入的最佳匹配特徵。此硬體輔助查找可能非常快速且顯著快於通常在資料集中尋找特徵所需的計算且可能更省電。儘管本文之論述利用硬體CAM,但可能使用提供類似功能的其他方法。例如,樹搜尋和雜湊設計可能提供類似功能(具有或沒有如複製和管線操作的硬體輔助)。此外,雜湊表查找可能提供CAM狀功能而不需要存在實體CAM。這些其他方法將通常不需要在計算裝置中尚未找到的硬體且因此更有可能為反向相容的。
有許多可能的iCAM系統應用。尤其是iCAM系統可能在計算用於儲存特徵位置或特徵之給定字典的輸入之稀疏表示方面有效進行最內查找操作。稀疏表示的有效計算對於如機器學習和資料壓縮的應用而言係必要的。一般而言,iCAM可適用於任何多維最近鄰近搜尋問題。
第二特徵查找方法係以隨機存取記憶體(RAM)為基(iRAM)的且儘管以RAM為基,也允許有效間隔編碼查找。在一些實施例中,在每個維度上,輸入的位元串係作為記憶體位址以取得儲存在RAM中(通常,只在一個RAM讀取週期中)的最佳匹配特徵間隔。這種架構係快速的且具有低功率消耗。它通常適用於其中特徵向量之元件具有相對小動態範圍的應用,因此它足以 使用適度尺寸的RAM。儘管RAM被詳述為最有可能要被使用的記憶體(且尤其是動態RAM),但可能使用如磁碟、靜態RAM(SRAM)、磁性RAM(MRAM)、PCMS、快閃、暫存器等的其他記憶體類型。
第三間隔編碼特徵查找方法係以二元搜尋樹為基的。藉由這種架構,在每個維度上,二元搜尋樹係用以定位出包含輸入的特徵間隔。這種方法通常適用於需要低功率消耗的應用且能容忍在查找速度下的適度退化(對數時間而不是常數時間)。
如將顯而易見的,且於上所提示,可能使用其他特徵查找方法。例如,可能使用不同的硬體為基架構(以FLASH為基等)及/或如其中h>2之h元搜尋樹的不同資料結構。
iCAM實施例
如上所提及,CAM為基架構被描述為基線iCAM實作,且其他實作(以RAM為基和以二元搜尋樹為基)被描述為用以符合各種應用需要及/或硬體限制的延伸/變化。在下面的說明中,iCAM係指使用在每個維度上之間隔編碼的查找架構。通常,這是透過使用近似於特徵之位置的界限框來完成且於之後更詳細地說明。
示範iCAM為基系統的高階實施例係繪示於第2圖中。在本實施例中,iCAM 203以「輸入數據」201的形式來接收資料,其係用以在一或更多維度上的值中定 位出最近特徵的內容。通常,每個iCAM項目指到在RAM 205(或其他儲存器)中儲存對應特徵(Fi)的位置。例如,儲存器可能是RAM、磁碟(固態、光學、或磁性)、PCM、複數個暫存器(如填充資料暫存器)、等等。在典型實作中,每個特徵在RAM 205中具有其自己的位址,然而,在一些實施例中,超過一個特徵係以填充資料格式儲存在特定位置中。使用用於儲存在用於給定輸入數據之iCAM 203中的特徵之給定字典(或其一部分)中的最佳匹配特徵之iCAM的平行查找係基於輸入數據來尋找相關特徵的至少一部分。
輸入數據201係樣本測量的向量。這些可能從在場中的感測器(照相機、音頻等)、在電腦系統中的計數器等中獲得。輸入數據201可能也在其輸入至iCAM 203中之前儲存於記憶體205(如RAM或非揮發性記憶體)中。如將於下所詳述,iCAM 203搜尋通常使用由被訓練或取得用於目前相關內文之字典原子(特徵)組成的字典。例如,可能使用房間的影像來訓練字典。
第3(a)-(b)圖繪示在iCAM實作中之原始和隨機子取樣域的實施例。從輸入(X)305之許多數據訓練且基於D 301之特徵301的字典(D)係用以為了分類目的而計算x 305之任何給定數據的稀疏表示(z)303。通常,如K-平均數的叢集演算法係用以訓練字典301。在這些圖中的字典301係儲存在耦接至iCAM中的儲存系統中。
應用就當以一些適當基礎(如適當訓練的字典D 301)來表示輸入的意義而言係稀疏的,它可以被表示為少量基本功能的線性組合。
為了降低處理成本,在一些實施例中,可能使用基於壓縮感測的隨機子取樣。隨機子取樣矩陣Φ307被施加至第3(a)圖之表達式的兩側以獲得第3(b)圖之第一表達式。第3(b)圖之第二表達式僅僅是第一個的重寫。
請注意第3(a)和(b)圖兩者包含相同的z 303。因此,可能基於原始x 305或壓縮311來計算第3(a)圖之稀疏表示z 303。針對後者情況,壓縮感測理論規定復原將以高機率獲得成功。隨機選定樣本的數量只需要為小倍數(如3倍)之關聯於應用的稀疏。針對本說明的其餘部分,輸入x和字典D不是表示在原始域中的x和D,就是表示在隨機取樣域中的。針對機器學習,所計算之z係用以分類輸入物件x,而針對物件重建,從計算的z係用以形成x=Dz。
在一些實施例中,第3圖之不同元件可能使用不同資料類型。例如,在一些實施例中,在字典中的特徵、其界限框的端點、及稀疏表示使用浮點數(且通常是帶符號浮點數)。根據一些實施例,整數係用於輸入數據。它可能有用於例如當指定每維度之特徵間隔時在界限框的端點上及/或當進行iCAM查找時在輸入數據上將浮點數數字轉換成整數。進行此轉換的一種方式係為用以在 字典中和在輸入數據中識別出浮點數數字的動態範圍,且接著將浮點數數字映射至整數的範圍中。此外,當於下論述了計算時(如進行最小平方、特徵距離比較、殘值更新/計算、界限框的計算等),在大多數實施例中,使用浮點數來進行這些計算。
第4(a)圖繪示輸入數據的實施例。例如,此輸入數據可以是輸入x 305或隨機子取樣輸入x 311。輸入數據係在對應於m個樣本之Rm中的m維向量,其中每個xil位元值。實際系統可能使用例如m=16和l=8。由此,在每個輸入數據中的總位元數是ml。使用示範值,ml=128。針對具有此許多位元的輸入數據,RAM為基表查找實作通常是不可行的。
第4(b)圖繪示特徵之字典的實施例。此示範字典具有構成行的特徵a、b和c(請注意原子之字詞可能也用於特徵)。這是m×F個字典。可能使用輸入樣本來訓練或可能從字典儲存庫獲得字典。
界限框
iCAM的實施例使用利用多維界限框來編碼特徵向量。通常,這些界限框係為矩形或正方形的形狀,但可以是其他形狀。因為界限框係規則形狀,所以其搜尋係高度有效的。然而,界限框在內文中不需要為相同尺寸或形狀。多維界限框係由其在個別座標軸上的投影間隔,其通常被稱為特徵間隔。在每個維度上的特徵間隔依序從在 給定特徵字典中的特徵取得。這是所謂下面的「間隔編碼」且允許搜尋界限框代理器而不是特徵本身。在一些實施例中,利用每個維度、每個特徵界限框。也就是說,用於給定特徵的界限框在兩個方向之各者上的最近特徵所判定之每個維度上具有其特徵間隔。
第5圖繪示用於相關內文之界限框的實施例。在此特定圖示中,相關內文具有各具有至少一個界限框505的數個不同子內文501-04。每個界限框505包括在給定座標的特徵507(被繪示為在界限框中的點)、或至少一近似座標值。通常,這些子內文501-04係藉由將子內文的字典置放於iCAM中來一次評估一個,但在一些實施例中,它們被平行評估,如下面所詳述。
在二維空間(R2)中的示範界限框係顯示於第6圖中。在給定維度上之界限框的特徵間隔係由在每個維度上的特徵與任何其他特徵之間的最小非零分隔所判定。針對給定特徵α 601,假設在X軸上,其與在每個方向上之任何其他特徵的每個最小非零分隔分別是,且針對y軸分別是。這導致用於如所示之特徵α 603的界限框。在此圖示中,有分別在之x和y維度兩者上的間隔。
若輸入值係在用於特定特徵的界限框(特徵間隔)內部,則此特徵係用於此輸入值之其中一個最佳匹配特徵。例如,在第6圖中,若對它搜尋輸入x,則將在特徵α 603的界限框中找到它。
儘管第6圖繪示簡單的2D界限框,但可能使用任何數量的維度。例如,可能使用3D界限框,如第7圖所示。此界限框分別在X、Y和Z軸701、703、和705上具有特徵間隔。為了判斷輸入數據x 707是否在界限框709中,足以檢查x之X、Y和Z座標是否在特徵間隔701、703、及705中。如前面所提及,藉由使用iCAM或RAM,可能經由在每個維度上的查找來完成檢查x是否在這些特徵間隔中。
這對於iCAM界限框使用角卡式座標、或簡稱為本文所定義之角座標而言係很自然的。然而,在一些實施例中使用非角(「傳統」)卡式座標。考慮一標準化向量x。在傳統卡式座標中,x=(x1,x2,...,,xm)T。在角卡式座標中,,其中=具有[0,π]的cos-1xi。第44(a)圖繪示用於在R2中之x(即,m=2)的角座標,且第44(b)圖繪示用於在R3中之 )的角座標(即,m=3)。
重要的是請注意角表示僅僅是表示正規卡式座標的另一種方式。在角空間中,針對在每個維度上之其角特徵間隔來指定界限框。這顯示於第45(a)圖中,其描繪角特徵間隔係由兩個虛線箭頭所包圍。
考慮在R2中的特徵α。假設至在X或Y軸上之任何其他特徵的最小非零分隔分別是2δx或2δy。可能如第45(b)圖所示地以虛線來指定用於α的界限框。
如第45(c)圖所示,在角空間中的均勻分隔 特徵在傳統卡式座標中不均勻地分隔。請注意在軸上的虛線箭頭不需要具有均勻長度。
使用傳統卡式座標,在軸附近的界限框將具有高縱橫比,且為了匹配界限框,輸入數據在其中界限框具有窄邊緣的那些維度上將需要更準確。這意味著在更接近軸的任何維度特徵上較不太可能被選擇。因此,可能有針對這些特徵的系統偏誤,若可能的話應盡量避免。
換言之,利用傳統卡式座標可能使界限框不必要不可靠地匹配。相比之下,在角座標中的界限框不具有這項問題。然而,本文之說明適用於傳統和角卡式座標兩者。
使用iCAM的計算稀疏表示
CAM為基多維iCAM查找架構的實施例具有iCAM胞元數量係2(l-1).F的屬性,其中l是在輸入數據之每個樣本中的位元數量,且F是特徵數量(在給定特徵字典中的原子數量)。此架構適用於尋找用於輸入數據之稀疏表示的任何稀疏編碼問題,或一般而言,任何最近鄰近搜尋問題。實際系統可能具有l=32和約數以萬計的F
使用iCAM間隔編碼,在一些實施例中,三元CAM(TCAM)的2(l-1)項目足以編碼在每個維度上的任何特徵間隔,其中l是在位元級的特徵精確度。這導致用於特徵查找的有效CAM為基iCAM實作。更精確地 說,針對給定精確度l,iCAM系統僅需要用於F特徵的O(F)項目,且能在獨立於F之O(1)時間中查找最佳匹配特徵。
在iCAM為基搜尋中,對最佳匹配特徵搜尋m維界限框。如先前所提及,這些界限框係圍繞特徵之數據的區塊。對針對其在樣本軸上之投影間隔的特徵指定界限框。這些係在這些維度上的特徵間隔。為了簡單起見,第8圖中繪示非重疊情況,然而,界限框可能因設計而重疊。在圖中,顯示了用於具有m=2且l=5的特徵之在R2中的界限框。特徵間隔在垂直軸上是11至17且在水平軸上是8至12。
針對任何給定數據x,iCAM查找係用以檢查x是否在界限框中。如圖所示,若x被發現為在用於特徵α的界限框中,則x的最佳匹配特徵是α。
針對第8圖之實例,給定在R2中的數據,其第一和第二組分係用以分別搜尋用於在維度1和2上之間隔[8,12]和[11,17]的iCAM。例如,考慮輸入數據。針對x1,進行了使用01000和01100的iCAM之搜尋。這兩者會產生匹配,且推論出x1的最佳匹配特徵是α。針對x2,搜尋不會產生匹配且由此未找到任何特徵。
有許多方法用以使用iCAM方法來計算稀疏表示。下面詳述的是用於此計算之方法的數個實施例。例如,假設輸入數據x會與在D中之K特徵的線性組合近 似。也就是說,稀疏是K。接著,對於x,其稀疏表示z具有高達K個非零組分。
用以計算稀疏表示的一個方法使用正交匹配追蹤演算法(OMP)。不失一般性,假設標準化輸入數據和字典原子,使得其L2範數等於1。使用OMP,藉由使用下列之3階段計算進行K迭代一次一個地進行在z中的這K個非零組分之計算:
1)藉由在D中尋找x的最佳匹配特徵來識別出非零組分的位置。選擇在角距離中最接近x的特徵。藉由iCAM,將經由表查找來至少部分地進行此步驟。
2)計算在目前和先前迭代中迄今為止所識別之所有非零組分(係數)的值。這通常藉由假設所有其他組分是零且接著經由最小平方解決產生之過度拘束系統來完成此。
3)藉由移除其在迄今為止所找到的所有最佳匹配特徵所跨距之空間上的正交投影來更新x。也就是說,經更新的x是殘值且接著在識別階段中使用標準化殘值。
第9圖繪示用於尋找最佳匹配之OMP方法的實施例。此外,為了有助於使本實施例更清楚,將參考第10圖來進行透過方法之實施例的示範運作,第10圖分別繪示特徵a、b、和c及其界限框1001、1003、和1005的實例。OMP常式係儲存在記憶體中且由處理器所執行(可能藉助於如協處理器或加速計的另一元件)。
在901中,輸入數據x係由OMP常式所接收。此常式係儲存在包括iCAM之計算系統的記憶體中。本文中說明了將OMP施用至用於輸入數據x1=10a+8c和x2=9c+3a+2b之第10圖之實例。
在903中,在字典中找到輸入數據的最佳匹配特徵。再次,這是藉由iCAM查找和可能的一些計算來進行。在一些實施例中,查找了多個特徵。在一些實施例中,例如,針對x1,第一步驟係用以進行用於x1:a、c的iCAM查找,且針對x2,它是用以查找c。針對x1,比較了查找結果。無論哪一個結果具有與x的最小點乘積是最佳匹配特徵。這是針對x1。
一旦找到了用於輸入數據的最佳匹配特徵,就在905中,進行了迄今為止找到的所有非零特徵之計算。通常,這是藉由在最佳匹配特徵上的最小平方計算來完成。針對x1和x2,這將是在a和c上的最小平方之計算以分別得到10和9之近似值。
在907中,藉由移除其在迄今為止所識別的所有最佳匹配特徵所跨距之空間上的正交投影來更新輸入數據。實質上,為輸入數據建立了殘值。例如,x1被更新為x1’和x2’,其中大約x1’=x1-10a和x2’=x2-9c。
在909中,進行了判斷更新是否具已發生了k倍。換言之,進行了判斷是否已識別出所有最佳匹配值。若不是的話,則在903中,使用殘值以識別出下一個最佳匹配特徵。例如,針對x1,在識別階段中使用x1’。在 此,進行了用於殘值的iCAM查找且找到c。針對x2’,將找到a和b。此識別、計算、和更新的程序繼續,直到已找到所有最佳匹配特徵為止。
OMP迭代的最昂貴成本係在用於輸入數據x或其殘值的D中尋找最佳匹配特徵。最佳匹配特徵係具有與x之最小點乘積的字典特徵。兩個向量a和b的點乘積被定義為如下,其中[0,π]係在這兩個向量之間的角度:a‧b=∥a∥2∥b∥2cos。由於在絕對值中比較點乘積,因此在一些實施例中,使用了正和負特徵向量兩者。
如第11圖所示,OMP使用角度以在每個迭代中識別出最佳匹配特徵,其中顯示了在D中之每個特徵向量的正和負特徵向量兩者係包括在考慮中。給定特徵a、b、c和輸入數據x,連續OMP迭代產生降低幅度的殘值r1、r2、等。在本圖示中,迭代被編號為1至3。在圖中,r2係垂直於a和c所跨距的子空間。虛線係在此子空間上的r2之投影。
在iCAM OMP實作中,有可能僅使用特徵向量的正版本,但查找正和負輸入兩者,例如,x和-x、r1和-r1、等等。這可能避免加倍iCAM尺寸。第12圖繪示僅使用特徵向量之正版本的示範iCAM OMP實作。請注意iCAM OMP找到與第11圖之OMP相同的最佳匹配特徵。
第13圖繪示根據一些實施例之用於使用匹配追蹤演算法(「MP」)來識別出特徵的方法。匹配追蹤 演算法(MP)具有比OMP更簡單的操作,且在如壓縮取樣追蹤演算法(CoSaMP)的一些變化中可能更準確且係用於高品質稀疏表示。在一些實施例中,用於識別出特徵的MP常式係儲存在記憶體中且至少部分地由處理器所執行。此外,在一些實施例中,在處理器之核心外部的加速器係用以存取CAM(如TCAM)或iCAM。使用MP,MP常式的每個迭代計算K頂部特徵而不是如在OMP中的一個頂部特徵。第14(A)圖繪示示範CoSaMP計算。
在1301中,輸入數據x被接收用於處理。此輸入數據係由儲存在關聯於處理器之記憶體中的CoSaMP常式所接收。
使用輸入數據x,在1303中,頂部N+k個特徵係由如iCAM或TCAM查找的查找所識別。例如,當N=2且k=2時,找到4個特徵。此識別結果之實例係繪示於第14(B)圖中。在此,識別出頂部4個特徵(虛線箭頭)。
在1305中,進行了在所識別之頂部特徵所跨距的子空間中計算與輸入數據的最佳近似。例如,CoSaMP常式需要最小平方計算以計算最佳近似(實線箭頭)。此最佳近似係這些頂部特徵的線性組合。最小平方計算的輸出是殘值和所識別之頂部特徵。最佳N個特徵(虛線箭頭)被保持用於在線性組合中具有最大係數的後續迭代。
使用殘值,在1307中,使用如iCAM或 TCAM查找的查找來找到用於殘值的頂部k個特徵。在1309中,進行了在所識別之頂部k個特徵和來自先前迭代的最佳N個特徵所跨距的子空間中計算與輸入數據的最佳近似。在一些實施例中,這是以如先前的最小平方計算來完成。然而,在其他實施例中,以如第14(b)圖所示之π/2互補來進行MP殘值之更新。例如,假設α是最近選定的特徵,且在角座標中,。然後,如圖中所示,藉由取得在α之角座標上的π/2互補來獲得殘值r(即,)。因此,儘管產生較高品質的稀疏表示,頂部k MP仍具有可比得上OMP的成本。在頂部k迭代中,能簡單地以在用於每個維度之角更新之前的iCAM查找來獲得每個連續頂部特徵。如同1305之計算,此計算的輸出是殘值和頂部k個特徵。
在一些實施例中,基於如1311所示之試探來重覆識別出頂部N+k個特徵和計算最佳近似的此模式。一般而言,沒有需要許多迭代(約2-5個迭代)。
iCAM查找之實例
單維iCAM間隔查找匹配在輸入數據x中的單一樣本。例如,針對具有l=32個位元的單一樣本(輸入數據)和具有F=1K個特徵(行)的字典,藉由對字典施加樣本以藉由平行評估iCAM的所有項目在iCAM中尋找最佳匹配特徵來完成此查找。通常,iCAM的字典將僅使用2(l-1).F個胞元,或使用上述值62K個胞元。
許多應用將需要超過單維查找。在第15(a)圖中詳述示範平行多維iCAM查找。在本實例中,如圖所示地提供各具有l=3個位元之具有m=6個樣本的輸入數據。
數據的m個樣本被平行輸入至iCAM中。由此,iCAM具有=6個「區段」,各關聯於樣本維度。針對上述輸入數據,每個區段的寬度為l=3個位元,如第15(b)圖所示。
用於維度的特徵間隔映射顯示投影至此維度上之所有特徵的特徵間隔。例如,第16(a)圖之特徵間隔映射描繪三個l=3個位元特徵F1、F2、和F3,其中特徵間隔分別是[0,1]、[2,5]和[6,7]。
包括項目建立的iCAM最佳化
在一些實施例中,儲存在iCAM中的字典每特徵間隔包括所有項目。然而,這不太可能是一種有效、或實際的方法來利用iCAM空間。在一些實施例中,如上所提及,儲存了高達2(l-1)個項目。
在一些實施例中,藉由注意通常並不重要的低序位元來保存iCAM項目。第16(b)圖繪示保存的iCAM項目。假設我們會想要查明單一樣本、3位元輸入數據x是否使用特徵F1。若其前面兩個位元是00,則可以立即的推論出數據使用F1。沒有必要繼續檢查位元3。此增益稱為早期完成。用於特徵的早期完成增益隨著其間 隔的長度而增加。請注意在此圖示中,矩形係用以標記對應之完成子串。
在一些實施例中,使用「間隔端重寫」來增加早期完成增益。第17(a)-(b)圖繪示分別在間隔端重寫之後之在特徵間隔映射之前和之後的樣子。如圖所示,特徵間隔F1和F2各具有它們特有的兩個位元樣式。間隔端重寫的目標係用以最小化那些位元樣式。若開始和結束數據分別具有1和0的最低有效位元,則以超過一個特有位元樣式來對開始數據增加「1」從/或從用於每個特徵間隔的最後數據減去「1」。在第17(a)圖中,F1的位元樣式010和F2的位元樣式011受到重寫,因為010是F1的最後數據並結束於0,且F2的011是開始數據且結束於1。在重寫這兩個值之後,能以00*來識別出F1且以10*來識別出F2,由此移除用於F1和F2兩者的iCAM項目。
多維iCAM間隔查找匹配在輸入數據x中的多個樣本。假設給定各具有l=6個位元之m=3個樣本的輸入數據,且期望與3維特徵的匹配,如第18圖所示。單維iCAM特徵查找係用於每個樣本。針對此,更佳的iCAM可能對任何特徵間隔使用高度不超過2(l-1)的胞元庫而不管其尺寸。這導致用於匹配所有三個樣本的多維iCAM架構,如第19圖所示,其顯示用於3D特徵之iCAM的胞元庫。
那些由符元N之完全副本組成的列將不匹配 任何東西。它們可以從表移除或為了均勻性而保持。此外,有其中位元位置並不重要的數據且因此是「無所謂」值(繪示為a*)。例如,在完成子串00010和00011中。最後位元並不重要且因此iCAM項目可能單純是0010*,由此必須要在iCAM中建立從中保存一個項目。請注意胞元庫尺寸不必相同。
第20圖繪示用於壓縮特徵間隔之方法的實施例。這種方法係由在儲存於記憶體中之特徵間隔組上的處理器所執行。在一些實施例中,在間隔端重寫之後進行這種方法。針對每個特徵間隔,有開始、中間、和端點。第21圖繪示五個特徵(及其間隔)及何者被選擇作為至iCAM中的項目之實例。在此圖中,l=6個位元和選定iCAM項目係由具有黑色實界限的方形所表示。第21圖係用以提供用於第20圖的具體實例。
在2001中,找到在間隔上方之最長不估值的前置匹配,其係在iCAM中的項目。針對第21圖,這是用於F1的0000、用於F2的01010、等等。iCAM項目係由在實例中之右端的一個位元所延伸的最長前置匹配樣式。延伸超出延伸位元的任何位元位置係無所謂的。因此,進入用於F1之iCAM中的第一項目是000001,其在典型實作中對應於指到RAM中之F1的位址。
在2003中,進行是否已到達中點的決策。若不是的話,則在2005中,延伸位元被一個位元位置從前一個位元位置移位至左邊,且在2001中,找到下一個最 長前置匹配樣式。針對F1,此下一個最長匹配是0000且項目將是00001*。請注意這涵蓋特徵間隔000011和000010的兩個項目,但最小化在iCAM中所需的項目數量。換言之,若有尚未識別的剩餘引導位元,則包括它們作為iCAM項目。
在2003中,若已到達中點,則在2007中,找到在間隔的中點下方之最長不估值的前置匹配,其係在iCAM中的項目。通常,這是在間隔中的最大值。針對F1,最長樣式是00100。進入iCAM中的項目將是001000,因為沒有其他樣式可用於匹配且項目被極為最佳化。
在2009中,進行是否已到達中點的決策。若不是的話,則在2007中,延伸位元被一個位元位置從前一個位元位置移位至左邊,且在2007中,找到下一個最長前置匹配樣式。針對F1,將沒有任何這樣的匹配。然而,針對F4,這將是1111,其導致11110*的iCAM項目。
由於每個連續最長匹配樣式從前一個位元位置移位至少一個位元位置,因此在間隔中無法有超過2(l-1)個上述最長前置匹配樣式。
每個特徵間隔進行上述操作,使得評估所有特徵間隔且推論出iCAM項目。當然,可能以不同順序來進行上述操作,如在自上而下經過之前進行自下而上經過。
第22圖顯示用於第21圖之五個特徵的iCAM項目。每個CAM項目指向其中儲存對應特徵Fi的RAM位址。
儘管此圖示顯示指向在RAM中之不同位置的每個iCAM項目,但應注意在典型實作中,每個iCAM項目包括用於特徵的樣本資訊和進入RAM(或其他儲存器)的位址。針對共用於特定特徵(且因此特徵間隔)的iCAM項目,進入RAM中的位址通常是相同的。換言之,相同特徵未儲存至在RAM中的不同位置中。
不幸的是,輸入數據可能具有一或更多不良樣本。例如,報告零深度值的樣本可能指示在深度估計中的感測失效。在一些實施例中,若不良樣本的數量超過臨界值,則輸入數據係無效的。例如,若不良樣本的數量>用於一些選定β(如β=.5)的β m,則輸入數據係無效的。無效輸入數據可能被完全地扔掉且不使用,或在一些實施例中,對應區段被設定為「無所謂」,如第23圖所示。
在搜尋中使用的投票
如先前所提及,在一些實作中,針對每個給定特徵,其界限框係由與在所使用之每個維度上的任何其他特徵的最小分隔所判定。然而,針對真實世界的特徵向量,最小分隔通常在維度之間顯著地改變。不太可能的是輸入數據或其殘值將結束於在其中最小分隔很小之那些維 度上的特徵間隔。因此,在一些實施例中,這些維度可能被打折扣。
在一些實施例中,投票係一種用於實作此折扣的機制且能允許結合多個單維iCAM查找結果的各種策略。例如,在iCAM搜尋中,由足夠多維度和由其最多數量所識別出的特徵被認為是最佳匹配特徵。通常,投票係儲存在待由處理器所執行之記憶體中的(子)常式。
在第24圖中,五個4維特徵被顯示為在投票中使用。考慮輸入數據x=(3,2,1,1)T,其在圖中係由黑色實線所表示。請注意針對此輸入數據,c特徵具有三票,其中均方誤差(MSE)等於。b特徵只具有一票;但它具有較小的MSE:(12+12+12)/4=約等於0.75的
這表明鄰近投票將是有用的。也就是說,投票將包括作為在每個維度上候選匹配特徵的一些鄰近物。假設候選只包括在每側上的一個立即鄰近物(「1鄰近物投票」架構)。針對本實例,人們會比較用於三個特徵b、c和d的票。它們將分別具有4、3和3票。針對b,在第一維度上,它具有c作為鄰近物(1),在第二維度上,它具有c作為鄰近物(2),在第三維度上,它具有c作為鄰近物(3),且在第四維度上,它具有d作為鄰近物(4)。針對c,在第一維度上,它具有b作為鄰近物(1),在第二維度上,它具有d作為鄰近物(2),在第三維度上,它具有b作為鄰近物(3),且在第四維度上,它沒有任何鄰近物(4)。基於這些鄰近投票結果,b 特徵將被選擇作為最佳匹配特徵。
由此,包括在投票中的係在每個維度上的匹配特徵和一些鄰近特徵兩者。這係繪示於第25圖之在維度上的iCAM鄰近投票。在本實例中,針對輸入數據x,在用於F2(特徵2)和F6(未示出)的胞元庫找到最佳匹配。F2具有F1和F3的鄰近物,其接著在投票中使用。
間隔共享減少
如先前所提及,在一些實施例中,針對CAM為基或RAM為基iCAM實作,浮點數特徵向量和輸入數據被轉換成l位元整數。在轉換中,附近的浮點數可能被映射至相同的整數。這意味著多個特徵可能共享在維度上的相同特徵間隔。因此,輸入數據可以在多個特徵的特徵間隔中。在這種情況下,針對在間隔中的給定輸入數據,iCAM將輸出在此維度上的所有這些特徵。在一些實施例中,使用用以減少間隔共享的大位元尺寸l
另外,在一些實施例中,去能了由大量特徵所共享之在維度上的那些特徵間隔。由此,將不會從用於跨維投票的目前維度輸出這些特徵。從投票排除這些特徵係合理的,假定它們共享在此維度上的相同特徵間隔,因此首先它們沒有鑑別性。
實體iCAM結構實施例
下面詳述的是用於基線投票及任何投票之iCAM電路的實施例。為了提供用於比較的基礎,考慮在TCAM中m=3且l=6的情況。在這種情況下,iCAM和TCAM皆為ml=18位元寬。第26(A)圖繪示傳統TCAM的前兩個胞元。搜尋線垂直地運行且對所有胞元廣播搜尋輸入數據。每個匹配線水平地運行且其輸出指示搜尋輸入數據是否匹配列的字。匹配線係預充電高的。具有不匹配的胞元下拉匹配線。
第26(B)圖之方塊圖顯示iCAM電路的簡單實施例,它估計跨輸入可能具有特徵(基線投票)之所有其維度的一些匹配。在本實例中,針對輸入, 特徵分別接收1和2票。請注意當特徵 間隔重疊時,輸入可能觸發在維度上的多個票。在本示範iCAM中,每個CAM胞元係耦接至加總邏輯(如加法器)以相加匹配於胞元的數量。在一些實施例中,此加總邏輯係在iCAM內部。在其他實施例中,每胞元和維度的信號係指示是否匹配的輸出。接著計數這些信號以判斷哪些胞元具有較佳匹配。通常,每個輸入值係與在維度上的胞元值邏輯地AND。若AND的結果指示所有位元位置匹配(或至少所有沒有無所謂的值),則在維度上的胞元值匹配。如同加總邏輯,AND邏輯可能在實體iCAM結構外部,其中信號被饋送至此邏輯中。
iCAM胞元庫可能包含用於特徵的多個項目, 如第26(C)圖所示。在一些實施例中,此iCAM電路係用於任何投票。請注意輸入x匹配在維度1上之胞元庫1中的第一項目和在維度2上的第二項目。因此,對應於胞元庫1的特徵接收用於輸入x的兩票。如圖所示,iCAM結構不僅包括上述加總邏輯,而且包括OR和AND邏輯。例如,在每個維度內,OR邏輯(如OR閘或多個OR閘)係用以判斷維度是否具有「是」票(若任何一個項目為是,則維度將為是)。
如同在單一值情況下的情況,每個輸入值係與在維度上之胞元的每個項目邏輯地AND。若AND的結果指示用於項目的所有位元位置匹配(或至少所有沒有無所謂的值),則在維度上有匹配。如同加總邏輯,OR及/或AND邏輯可能在實體iCAM結構外部,其中信號被饋送至此邏輯中。另外,可能使用等效邏輯。在其他實施例中,使用另一邏輯(如NAND等)。
iRAM
下面論述的是iRAM之實施例,其係iCAM實作的RAM為基版本。此RAM可能在處理器外部或內部(例如,嵌入式DRAM)。此外,一般使用RAM且可能利用其他記憶體技術,包括,但不限於相變記憶體(PCM)、相變記憶體及開關(PCMS)、FLASH、硬碟等等。假設特徵向量的分量具有相對較小的動態範圍。在這種情況下,在每個維度上,輸入數據的位元串係作為用 以取得其間隔包含輸入數據值之特徵的記憶體位址。查找時間只是一個記憶體讀取時間。當動態範圍小時,中等尺寸的RAM將足夠。
在第27圖中,繪示了相對於TCAM為基實作之用於在維度上的給定輸入之iRAM的操作之對比。假設在維度i上的樣本xi具有值12,其在二元表示中為01100。使用TCAM,輸入12匹配0110*項目且特徵b是輸出。相比之下,藉由iRAM,輸入12的位元係作為用以從RAM取得特徵b的位址。
請注意在支援鄰近投票中,iRAM可能輸出儲存在RAM中的額外鄰近特徵,如上所提及。接著,可能進行跨維度之在所有查找特徵中的投票以判定最佳匹配。
iSearch
本文所論述的是使用用於搜尋的樹。如第28圖所示,假設有F個特徵、a、b、c等,其中其在維度上的特徵間隔係由水平線所指定。基於這些特徵間隔的端點,如圖所示地建構平衡的二元搜尋數。樹係平衡的,因為樹節點的任何兩個子樹具有大致上相等數量的葉片。
使用在樹上的二元搜尋,可能在O(log2 F)比較中找到輸入所屬於的特徵間隔,對比於iRAM的O(1)時間。針對此搜尋,樹節點可能進行浮點數比較且樹大小僅為O(F),獨立於在特徵向量中之分量的動態範圍。此搜尋的小記憶體要求對於一些應用而言會有吸引力。
第32圖繪示用於iSearch之方法的實施例。首先,應建立樹。針對每個維度,在3201中,找到用於特徵之每對相鄰值的中點。在示範第28圖中,叫出每個特徵的值(a是3、b是7、等等),且在這些值與相鄰值之間的中點係以水平線來顯示。針對特徵a和b,中點是5。這些水平線定義用於每個特徵的特徵間隔。因此,針對特徵b,其間隔是[5,8]。
使用這些特徵間隔的端點(3203之中點),在3205中,建立了平衡的二元搜尋樹。樹係平衡的,因為任何樹節點的兩個子樹具有大致上相等數量的葉片。當然,可能使用其他樹類型。
一旦建立了搜尋樹,在以後的某個時間點,能藉由搜尋樹來找到輸入所屬於的特徵間隔。當輸入值等於節點值時,通常評估下一個較小分支。例如,若13是輸入值,則d可以是搜尋所尋找的葉片。在3207中,針對給定輸入數據,進行了用於所有維度的單維iCAM查找。iSerch常式和樹係儲存在如RAM的記憶體中且常式係由處理裝置所進行。
在一些實施例中,在3209中,這些查找接著受到跨維投票(具有如上所詳述之鄰近投票)以識別出最佳匹配特徵。
多個iCAM用法
儘管上述說明已將焦點主要放在單一iCAM 用法,但模型可被擴展至多個iCAM。第30圖繪示使用多個iCAM和多個核心之iCAM為基架構的實施例。這可能用於提取用於輸入數據的最佳匹配特徵。在本示範實施例中,每個核心3001具有相關iCAM 3003。這些核心3001可能是複雜核心(如SIMD、VLIW等等)或簡單核心(較不複雜的管線等等)。此外,核心不需要是相同的。例如,一些核心可能是簡單核心且其他核心可能是複雜核心,只要它們各支援iCAM 3003存取即可。
在此配置中,每個iCAM 3003可能負責內文的不同部分且可能藉由對應核心的命令來對一或更多特徵平行搜尋整個內文(或其一部分)。
合併單元3005從iCAM 3003所提供的搜尋結果形成合併的稀疏表示且輸出最佳匹配特徵。合併單元3005可能是離散邏輯、在其中一個核心3001上運行的軟體、或在所示之核心外部的核心上(如在不同機器上)運行的軟體。
尤其是,可能在可縮放映射-減少情境中使用這種架構。第31圖繪示用於使用多個核心及相關iCAM之方法的實施例。這種方法假設每個ICAM具有加載的子內文。在3101中,進行了從用於每個子內文的稀疏表示之特徵的計算且這些稀疏表示係儲存在記憶體中。針對每個核心和iCAM,這種計算係藉由首先將用於核心和iCAM可負責之子內文的字典載入iCAM中、載入輸入向量、並查詢最佳匹配特徵及其鄰近特徵來進行。通常,這 種計算係使用加載iCAM來並行、或實質上並行完成。
在3103中,從所有核心之所儲存的稀疏表示被合併至合併稀疏表示中。這可能使用最大合併(針對「多層階層式推論」)、相加合併(針對「投票」)、等等來完成。
在3105中,對應於在合併稀疏表示中之最大組分的特徵被輸出作為最佳匹配。
高階概述
第29圖繪示使用上面詳述之iCAM原則的高階方法之實施例。在2901中,藉由計算裝置來接收輸入數據的資料集。示範資料集包括,但不限於一或更多影像、財務資料、天氣預報資料、等等。此計算裝置可能是實作iCAM原則(使用特徵間隔搜尋)的裝置或可能是用以建立/訓練字典的裝置、等等。資料集可能來自感測器等,其係耦接至計算裝置、或計算裝置的一部分。
在2903中,藉由計算裝置來識別出相關特徵。通常,使用如字典訓練的軟體來找到這些特徵。此計算裝置可能或可能不與之前使用的計算裝置相同。
在2905中,建立了用於相關特徵的界限框。如先前所詳述,界限框基本上係自定義的,因為它係包含特徵的特徵間隔之集合,其中在給定維度上之界限框的特徵間隔係由在要被處理之每個維度上的特徵與任何其他特徵之間的最小非零分隔所判定。例如,用於特徵的2D界 限框可能由特徵與四個其他特徵(在每個維度上兩個)之間的最小非零分隔所定義。
在一些實施例中,在2907中,進行了特徵間隔之最佳化。已在先前詳述了用以縮小iCAM項目數量之示範最佳化,包括,但不限於如寫入端重寫的完成增益、判定哪些樣本係不良的、增加位元尺寸l、去能大量特徵所共享的特徵間隔。
在2909中,包括相關記憶體位置或特徵值的特徵間隔被載入iCAM中作為字典。可能在產生字典等之計算裝置中、或可能在不同計算裝置中找到此iCAM。在沒有CAM為基iCAM的系統中,可能利用iRAM及/或iSearch。
在以後的某個時間點,在2911中,藉由容納iCAM的計算裝置來接收輸入數據。上面已詳述了輸入數據之實例。
在2913中,進行了使用加載字典來搜尋用於輸入數據的最佳匹配特徵。可能使用CAM為基iCAM、iRAM、或iSearch來找到此特徵。此外,此搜尋可能包括多個內文搜尋、投票等等。
在2915中,輸出最佳匹配特徵。在一些實施例中,此輸出係用於特徵的位址,且在其他實施例中,輸出係特徵本身。
針對上述搜尋架構,有許多可能的應用。藉由施用類似觀念或其概括,超過在此所述之一些範圍的其 他應用機會係可能的。
一個上述應用係在深度成像中的影像重建。用於估計深度圖的傳統影像深度估計方法包含深度值的密集取樣,其中每個樣本需要費時的區塊匹配計算。請注意由於深度圖通常為稀疏性質,因此藉由使用壓縮感測,它們能以隨機子取樣程序所產生的小量樣本來重建。因此,我們能子取樣深度值且使用所獲得之樣本以重建完整的深度圖。對照於損壞保真度的傳統均勻子取樣,隨機子取樣能基於壓縮感測的理論以高機率來保存保真度。
藉由iCAM,能使用表查找來快速地進行重建,而不包含關聯於稀疏復原的昂貴最佳化計算。首先,iCAM項目係基於與相關內文相關的給定字典來配置。接著,針對隨機子取樣深度值的任何給定輸入數據,iCAM係用以查找在最小平方計算之前的最佳匹配字典原子以獲得其係數。藉由此資訊,可能使用OMP或類似方法以計算用於輸入數據的稀疏表示以復原完整的深度圖。
藉由與在重建深度影像中使用相同的原則,iCAM查找能用以從隨機選定像素之子集重建用於消費性照相機的RGB或RGB-D影像。
在機器學習中,輸入數據(觀察)通常係基於其針對特徵之字典的稀疏表示來分類。為了計算稀疏表示,我們通常會使用近似方法,如OMP或CoSaMP。如前面所提及,這相當於尋找iCAM所促進之用於輸入數據及其殘值的最佳匹配特徵。
近年來,在消費市場中已有一波新的物聯網(IoT)裝置。這些包括如用於個人娛樂、工作輔助及生物指標監控之手錶電腦和耳機的可配戴裝置。以節能計算核心和感測器來啟動,能編程這些裝置以在極低的功率消耗下進行各種個人化或內文特定任務。藉由iCAM來輔助,通常裝備有如加速器、陀螺儀和深度照相機之各種感測器的這些IoT裝置能映射附近的環境、或迅速且有效地辨識出事件或物件、且基於目前內文來進行預測。
藉由結合iCAM,可能進行了解特徵的電腦。這些電腦能提取用於輸入數據的特徵和用於目前內文的自學習字典。因此,它們能自動地進行任務,如特性化工作量用於電源管理、進行推測計算、識別出在架子上的物品、辨識和分類有毒軟體。
示範iCAM架構
下面論述的是可能利用上述教導的示範架構。
第33(A)-(C)圖繪示iCAM項目的示範實施例。在第33(A)圖中,每特徵間隔,iCAM 3301每維度具有間隔值3303和位址3305(或其一部分),其中對應特徵係儲存在每個項目中。在一些實施例中,每個項目也包括一或更多有效位元3307,其指示何時項目不保持可靠資料。有效位元可能也指示何時整個胞元不保持可靠資料。
在第33(B)圖,每特徵間隔,iCAM 3309每維度具有間隔值3311和用於在每個項目中之對應特徵的值3315。在一些實施例中,每個項目也包括一或更多有效位元3315,其指示何時項目不保持可靠資料。有效位元3315可能也指示何時整個胞元不保持可靠資料。
在第33(C)圖中,每特徵間隔,iCAM 3325每維度具有間隔值3317和位址3319(或其一部分),其中對應特徵係儲存在填充資料元件中且指示哪個資料元件將特徵3321儲存在每個項目中。在一些實施例中,每個項目也包括一或更多有效位元3323,其指示何時項目不保持可靠資料。有效位元可能也指示何時整個胞元不保持可靠資料。
儘管沒有說明,但在一些實施例中,iCAM項目具有一定範圍之用於特定特徵的間隔值。例如,這將是5-9而不是5之間隔值。
示範處理裝置及系統架構
第34(A)-(H)圖繪示利用iCAM之裝置和系統的各種實施例。在所有第34圖中,不包括不特別與使用iCAM相關的態樣。例如,未顯示顯示器。然而,若未明確地被調用,則存在如處理器核心的典型特徵。示範裝置及系統包括電腦、處理器、系統晶片、等等。此外,為了簡單起見,不會總是調用被同樣地編號的元件及其功能。
第34(A)圖繪示使用iCAM原則之處理裝置3407的實施例。硬體處理器3401(如中央處理單元、圖形處理單元等)包括iCAM 3403。此iCAM 3403係用以儲存如上所詳述之特徵字典3413且包括如第33(A)圖所示之項目。
記憶體裝置3405(如RAM)儲存用於至少一內文的特徵3415。記憶體裝置3405可能也儲存用於定位出如上面詳述之任一方法之特定特徵的程式。若iCAM 3403係不可用的,則RAM可能也用以儲存字典3413。
在一些實施例中,硬體加速器3413係耦接至處理器和記憶體3415以當作在處理器3401與記憶體3415之間的媒介。例如,此加速器3413可能用以存取字典3413和特徵3415兩者。
依據實作,處理裝置3407可能包括如一或更多照相機的感測器3409或這些感測器可能在如3411中所示之裝置外部。這些感測器可能與CAM 3403通訊以提供字典或相關原始資料流、或傳遞至記憶體3405,又,用以提供字典或相關原始資料流。
第34(B)圖繪示使用iCAM原則之處理裝置3407的另一實施例。在本實例中,iCAM 3403係在處理器3401內部且加速器3413當作在處理器3401與iCAM 3403之間的媒介。加速器3413可能也耦接至記憶體3405,雖然未顯示出此連接。
第34(C)圖繪示使用iCAM原則之處理裝置 3407的另一實施例。在本實例中,iCAM 3403係在處理器3401內部且包括具有如第33(B)或(C)圖所示之項目的字典3419。
第34(D)圖繪示使用iCAM原則之處理裝置3407的另一實施例。在本實例中,iCAM 3403係在處理器3401外部且包括具有如第33(B)或(C)圖所示之項目的字典3419。
第34(E)圖繪示使用iCAM原則之處理器3441的實施例。核心3451包括iCAM 3403。此iCAM 3403係用以儲存如上面詳述之特徵字典3413且包括如第33(A)圖所示之項目。記憶體裝置3405(如嵌入式RAM)儲存用於至少一內文的特徵3415。記憶體裝置3405可能也儲存用於定位出如上面詳述之任一方法之特定特徵的程式。若iCAM 3403係不可用的,則嵌入式RAM可能也用以儲存字典3413。
在一些實施例中,加速器3413係耦接至處理器和記憶體3415以當作在核心3451與記憶體3415之間的媒介。例如,此加速器3413可能用以存取字典3413和特徵3415兩者。
第34(F)圖繪示使用iCAM原則之處理器3450的另一實施例。在本實例中,iCAM 3403係在核心3451外部且加速器3413當作在核心3451與iCAM 3403之間的媒介。加速器3413可能也耦接至記憶體3405,雖然未顯示出此連接。再次,使用了嵌入式RAM。
第34(G)圖繪示使用iCAM原則之處理器3450的另一實施例。在本實例中,iCAM 3403係在核心3451內部且包括具有如第33(B)或(C)圖所示之項目的字典3419。再次,使用了嵌入式RAM。
第34(H)圖繪示使用iCAM原則之處理器3450的另一實施例。在本實例中,iCAM 3403係在核心3451外部且包括具有如第33(B)或(C)圖所示之項目的字典3419。再次,使用了嵌入式RAM。
示範暫存器架構
第35圖係根據本發明之一實施例之暫存器架構3500的方塊圖。在所示之實施例中,有32個512位元寬的向量暫存器3510;這些暫存器被引用為zmm0至zmm31。最低16zmm暫存器的低序256位元係覆蓋在暫存器ymm0-15上。最低16zmm暫存器的低序128位元(ymm暫存器的低序128位元)係覆蓋在暫存器xmm0-15上。
寫入遮罩暫存器3515-在所示之實施例中,有8個寫入遮罩暫存器(k0至k7),每個大小為64位元。在另一實施例中,寫入遮罩暫存器3515的大小為16位元。如之前所述,在本發明之一實施例中,向量遮罩暫存器k0不能作為寫入遮罩;當通常指示出k0係用於寫入遮罩的編碼時,便選擇0x45F的固線式寫入遮罩,有效地去能對此指令的寫入遮罩。
通用暫存器3525-在所示之實施例中,有16個64位元的通用暫存器,其與現存之x86定址模式一起使用以定址記憶體運算元。這些暫存器所引用的名稱為RAX、RBX、RCX、RDX、RBP、RSI、RDI、RSP、及R8至R15。
純量浮點堆疊暫存器檔案(x87堆疊)3545,於其上堆疊MMX填充整數平暫存器檔案3550-在所示之實施例中,x87堆疊係為8元素堆疊,用來使用x87指令集擴充對32/64/80位元浮點數資料執行純量浮點數操作;而MMX暫存器係用來對64位元填充整數資料進行操作,以及對在MMX與XMM暫存器之間進行的一些操作保持運算元。
本發明之其他實施例可能使用較寬或較窄的暫存器。此外,本發明之其他實施例可使用更多、更少、或不同的暫存器檔案和暫存器。
示範核心架構、處理器、及電腦架構
可能以不同方式、針對不同目的、且在不同處理器中實作處理器核心。例如,上述核心之實作可能包括:1)預期用於通用計算的通用有序核心;2)預期用於通用計算的高效能通用亂序核心;3)預期主要用於圖形及/或科學(產量)計算的專用核心。不同處理器之實作可能包括:1)包括預期用於通用計算的一或更多通用有序核心及/或預期用於通用計算的一或更多通用亂序核心 之CPU;及2)包括預期主要用於圖形及/或科學(產量)的一或更多專用核心之協處理器。上述不同的處理器導致不同的電腦系統架構,其可能包括:1)在與CPU分離之晶片上的協處理器;2)在與CPU之相同封裝中之獨立晶粒上的協處理器;3)在與CPU相同之晶粒上的協處理器(在這種情況下,這類協處理器有時稱為專用邏輯,如整合圖形及/或科學(產量)邏輯、或專用核心);及4)系統晶片,其可能包括在相同晶粒上的所述之CPU(有時稱為應用核心或應用處理器)、上述協處理器、及額外功能。在示範處理器和電腦架構的描述之後,接下來說明示範核心架構。
示範核心架構
有序和亂序核心方塊圖
第36A圖係繪示根據本發明之實施例之示範有序管線與示範暫存器更名、亂序發出/執行管線兩者的方塊圖。第36B圖係繪示根據本發明之實施例之將包括在處理器中的有序架構核心之示範實施例與示範暫存器更名、亂序發出/執行架構核心兩者的方塊圖。第36A-B圖中的實線框繪示有序管線和有序核心,而非必要附加的虛線框繪示暫存器更名、亂序發出/執行管線和核心。假定有序態樣係亂序態樣之子集,將說明亂序態樣。
在第36A圖中,處理器管線3600包括提取級 3602、長度解碼級3604、解碼級3606、分配級3608、更名級3610、排程(也稱為調度或發出)級3612、暫存器讀取/記憶體讀取級3614、執行級3616、寫回/記憶體寫入級3618、例外處理級3622、及提交級3624。
第36B圖顯示處理器核心3690,包括前端單元3630,耦接至執行引擎單元3650,且這兩者都耦接至記憶體單元3670。核心3690可能是精簡指令集計算(RISC)核心、複雜指令集計算(CISC)核心、極長指令字(VLIW)核心、或混合或任一核心類型。作為另一種選擇,核心3690可能是專用核心,例如,網路或通訊核心、壓縮引擎、協處理器核心、通用計算圖形處理單元(GPGPU)核心、圖形核心、或之類。
前端單元3630包括分支預測單元3632,耦接至指令快取單元3634,其係耦接至指令轉譯旁視緩衝器(TLB)3636,其係耦接至指令提取單元3638,其係耦接至解碼單元3640。解碼單元3640(或解碼器)可能解碼指令,並產生作為輸出的一或更多微操作、微碼進入點、微指令、其他指令、或其他控制信號,其係從原始指令解碼、或以其他方式反映原始指令、或從原始指令取得。解碼單元3640可能使用各種不同機制來實作。適當機制之實例包括,但不限於查找表、硬體實作、可程式化邏輯陣列(PLA)、微碼唯讀記憶體(ROM)、等等。在一實施例中,核心3690包括微碼ROM或儲存用於某些巨集指令之微碼的其他媒體(例如,在解碼單元3640中或以其他 方式在前端單元3630內)。解碼單元3640係耦接至執行引擎單元3650中的更名/分配器單元3652。
執行引擎單元3650包括更名/分配器單元3652,耦接至引退單元3654及一組一或更多排程器單元3656。排程器單元3656代表任何數量的不同排程器,包括保留站、中央指令視窗、等等。排程器單元3656係耦接至實體暫存器檔案單元3658。每個實體暫存器檔案單元3658代表一或更多實體暫存器檔案,其之不同者儲存一或更多不同的資料類型,如純量整數、純量浮點數、填充整數、填充浮點數、向量整數、向量浮點數、狀態(例如,指令指標,其係將被執行之下一個指令的位址)、等等。在一實施例中,實體暫存器檔案單元3658包含向量暫存器單元、寫入遮罩暫存器單元、及純量暫存器單元。這些暫存器單元可能提供架構向量暫存器、向量遮罩暫存器、及通用暫存器。引退單元3654重疊實體暫存器檔案單元3658以繪示可實作暫存器更名和亂序執行的各種方式(例如,使用重排序緩衝器和引退暫存器檔案;使用未來檔案、歷史緩衝器、和引退暫存器檔案;使用暫存器映射及暫存器池;等等)。引退單元3654和實體暫存器檔案單元3658係耦接至執行叢集3660。執行叢集3660包括一組一或更多執行單元3662和一組一或更多記憶體存取單元3664。執行單元3662可能對各種類型的資料(例如,純量浮點數、填充整數、填充浮點數、向量整數、向量浮點數)進行各種操作(例如,移位、加法、減法、乘 法)。儘管一些實施例可能包括一些專用於特定功能或功能組的執行單元,但其他實施例可能包括只有一個執行單元或全部進行所有功能的多個執行單元。排程器單元3656、實體暫存器檔案單元3658、和執行叢集3660被顯示為可能是複數的,因為某些實施例對某些類型的資料/操作建立獨立管線(例如,純量整數管線、純量浮點數/填充整數/填充浮點數/向量整數/向量浮點數管線、及/或各具有其自己之排程器單元的記憶體存取管線、實體暫存器檔案單元、及/或執行叢集-且在獨立的記憶體存取管線之情況下,實作了某些實施例是只有此管線的執行叢集具有記憶體存取單元3664。也應了解這裡使用了獨立管線,這些管線之一或更多者可能是亂序發出/執行且其餘的是有序的。
這組記憶體存取單元3664係耦接至記憶體單元3670,其包括耦接至資料快取單元3674的資料TLB單元3672,資料快取單元3674耦接至第2級(L2)快取單元3676。在一示範實施例中,記憶體存取單元3664可能包括載入單元、儲存位址單元、及儲存資料單元,各耦接至記憶體單元3670中的資料TLB單元3672。指令快取單元3634更耦接至記憶體單元3670中的第2級(L2)快取單元3676。L2快取單元3676係耦接至一或更多其他級的快取且最終耦接至主記憶體。
舉例而言,示範暫存器更名、亂序發出/執行核心架構可能如下實作管線3600:1)指令提取3638進 行提取和長度解碼級3602和3604;2)解碼單元3640進行解碼級3606;3)更名/分配器單元3652進行分配級3608和更名級3610;4)排程器單元3656進行排程級3612;5)實體暫存器檔案單元3658和記憶體單元3670進行暫存器讀取/記憶體讀取級3614;執行叢集3660進行執行級3616;6)記憶體單元3670和實體暫存器檔案單元3658進行寫回/記憶體寫入級3618;7)各種單元可能包含在例外處理級3622中;及8)引退單元3654和實體暫存器檔案單元3658進行提交級3624。
核心3690可能支援包括本文所述之指令的一或更多指令集(例如,x86指令集(具有已加入較新版本的一些擴充);美國加州Sunnyvale的MIPS技術之MIPS指令集;美國加州Sunnyvale的ARM股份公司之ARM指令集(具有如NEON的可選額外的擴充))。在一實施例中,核心3690包括支援先前所述之填充資料指令集擴充(例如,AVX1、AVX2、及/或某種形式的通用向量合適指令格式(U=0及/或U=1)的邏輯,藉此允許許多多媒體應用所使用之操作能使用填充資料來執行。
應了解核心可能支援多執行緒(執行兩個或更多平行組的操作或執行緒),且可以各種方式來實行,包括時間切割多執行緒、同步多執行緒(其中單一實體核心提供邏輯核心給實體核心係同步多執行緒的每個執行緒)、或以上之組合(例如,時間切割提取和解碼及之後如Intel®超執行緒技術的同步多執行緒)。
儘管在亂序執行之內文中說明了暫存器更名,但應了解可在有序架構中使用暫存器更名。儘管處理器之所示實施例也包括分開的指令和資料快取單元3634/3674及共享L2快取單元3676,但其他實施例可能具有用於指令和資料兩者的單一內部快取,例如,第1級(L1)內部快取、或多級的內部快取。在一些實施例中,系統可能包括內部快取與在核心及/或處理器外部的外部快取之組合。另外,所有快取可能在核心及/或處理器外部。
具體示範有序核心架構
第37A-B圖繪示更具體之示範有序核心架構的方塊圖,其核心會是在晶片中的數個邏輯方塊之其一者(包括相同類型及/或不同類型的其他核心)。邏輯方塊依據應用透過高頻寬互連網路(例如,環形網路)來與一些固定功能邏輯、記憶體I/O介面、及其他必要I/O邏輯通訊。
第37A圖係根據本發明之實施例之單一處理器核心,與其連結至晶粒上互連網路3702的連線及其第2級(L2)快取的區域子集3704之方塊圖。在一實施例中,指令解碼器3700支援具有填充資料指令級擴充的x86指令集。L1快取3706允許將快取記憶體低延遲地存取至純量和向量單元中。儘管在一實施例中(為了簡化設計),純量單元3708和向量單元3710使用單獨的暫存器 組(分別是純量暫存器3712和向量暫存器3714),且傳輸於其間的資料被寫入至記憶體而接著從第1級(L1)快取3706讀回,但本發明之其他實施例可能使用不同的方法(例如,使用單一暫存器組或包括允許資料在沒被寫入和讀回的情況下傳輸於這兩個暫存器檔案之間的通訊路徑)。
L2快取的區域子集3704係為部分的全域L2快取,其被分成單獨的區域子集,每個處理器核心一個。每個處理器核心具有直接存取路徑連接至自己的L2快取之區域子集3704。處理器核心所讀取的資料係儲存在其L2快取子集3704中並能與存取其自己區域L2快取子集之其他處理器核心並行地被快速存取。處理器核心所寫入的資料係儲存在自己的L2快取子集3704中,且若有需要的話,會從其他子集中清除。環形網路確保共享資料的一致性。環形網路係雙向的以使得如處理器核心、L2快取和其他邏輯方塊的代理器能在晶片內彼此通訊。每個環形資料路徑在每個方向上係為1012位元寬。
第37B圖係根據本發明之實施例之第37A圖中的處理器核心之部分之分解圖。第37B圖包括L1快取3704之L1資料快取3706A部分,及更多關於向量單元3710和向量暫存器3714的細節。具體來說,向量單元3710係為16寬的向量處理單元(VPU)(參見16寬的ALU 3728),其執行整數、單精度浮點數、及雙精度浮點數指令之一或更多者。VPU以攪和單元3720來支援攪 和暫存器輸入、利用數字轉換單元3722A-B來支援數字轉換、及利用複製單元3724來支援複製記憶體輸入。寫入遮罩暫存器3726允許預測產生之向量寫入。
具有整合記憶體控制器和圖形的處理器
第38圖係根據本發明之實施例之可能具有超過一個核心,可能具有整合記憶體控制器,且可能具有整合圖形之處理器3800的方塊圖。第38圖中的實線框繪示具有單一核心3802A、系統代理器3810,一組一或更多匯流排控制器單元3816的處理器3800,而非必要添加的虛線框繪示具有多個核心3802A-N、在系統代理器單元3810中的一組一或更多整合記憶體控制器單元3814、及專用邏輯3808的另一處理器3800。
因此,處理器3800之不同實作可能包括:1)具有為整合圖形及/或科學(產量)邏輯(其可能包括一或更多核心)之專用邏輯3808、及為一或更多通用核心(例如,通用有序核心、通用亂序核心、這兩者之組合)之核心3802A-N的CPU;2)具有為預期主要用於圖形及/或科學(產量)之大量專用核心之核心3802A-N的協處理器;及3)具有為大量通用有序核心之核心3802A-N的協處理器。於是,處理器3800可能是通用處理器、協處理器或專用處理器,例如,網路或通訊處理器、壓縮引擎、圖形處理器、GPGPU(通用圖形處理單元)、高產量多重整合核心(MIC)協處理器(包括30個或更多核 心)、嵌入式處理器或之類。處理器可能在一或更多晶片上實作。處理器3800可能是一或多個基板的一部分及/或可使用如BiCMOS、CMOS、或NMOS的一些處理技術來實作在一或多個基板上。
記憶體階層包括核心內之一或多級的快取、一組或一或更多共享快取單元3806、及耦接至這組整合記憶體控制器單元3814的外部記憶體(未示出)。這組共享快取單元3806可能包括如第2級(L2)、第3級(L3)、第4級(L4)、或其他級之快取的一或多個中級快取(LLC)、最後一級的快取(LLC)、及/或以上之組合。儘管在一實施例中,環形為基的互連單元3812互連整合圖形邏輯3808、這組共享快取單元3806、及系統代理器單元3810/整合記憶體控制器單元3814,但其他實施例可能使用一些熟知的技術來互連上述單元。在一實施例中,在一或更多快取單元3806與核心3802A-N之間保持一致性。
在一些實施例中,一或更多核心3802A-N能夠執行多執行緒。系統代理器3810包括那些協調和操作核心3802A-N的元件。例如,系統代理器單元3810可能包括電力控制單元(PCU)及顯示單元。PCU可能是或包括調節核心3802A-N及整合圖形邏輯3808之電力狀態所需的邏輯和元件。顯示單元係用於驅動一或更多外部連接的顯示器。
就架構指令集而言,核心3802A-N可能是同 型或不同型的;亦即,核心3802A-N之兩個或更多者也許能夠執行相同的指令集,而其他者也許僅能夠執行指令集的子集或不同的指令集。
示範電腦架構
第39-42圖係示範電腦架構的方塊圖。用於膝上型電腦、桌上型電腦、手持PC、個人數位助理、工程工作站、伺服器、網路裝置、網路集線器、交換器、嵌入式處理器、數位信號處理器(DSP)、圖形裝置、視頻遊戲裝置、機上盒、微控制器、手機、可攜式媒體播放器、手持裝置、及各種其他電子裝置之本領域中所知的其他系統設計和配置也是適當的。一般而言,能夠合併處理器及/或如本文所揭露之其他執行邏輯之種類繁多的系統或電子裝置通常都是適當的。
現在參考第39圖,所顯示的係依照本發明之一實施例之系統3900的方塊圖。系統3900可能包括一或更多處理器3910、3915,其係耦接至控制器中心3920。在一實施例中,控制器中心3920包括圖形記憶體控制器中心(GMCH)3990和輸入/輸出中心(IOH)3950(其可能在獨立晶片上);GMCH 3990包括耦接記憶體3940和協處理器3945的記憶體和圖形控制器;IOH 3950將輸入/輸出(I/O)裝置3960耦接至GMCH 3990。另外,記憶體和圖形控制器之一或兩者係整合在(如本文所述之)處理器內,記憶體3940和協處理器3945係直接耦接至處理 器3910、及在具有IOH 3950之單晶片中的控制器中心3920。
在第39圖中以虛線來表示額外處理器3915的非必要性。每個處理器3910、3915可能包括一或更多本文所述之處理核心且可能是一些型式的處理器3800。
記憶體3940可能是例如動態隨機存取記憶體(DRAM)、相變記憶體(PCM)、或這兩者之組合。針對至少一實施例,控制器中心3920經由如前端匯流排(FSB)之多點匯流排、如快速路徑互連(QPI)的點對點介面、或類似連線3995來與處理器3910、3915通訊。
在一實施例中,協處理器3945係專用處理器,例如,高產量MIC處理器、網路或通訊處理器、壓縮引擎、圖形處理器、GPGPU、嵌入式處理器或之類。在一實施例中,控制器中心3920可能包括整合圖形加速器。
就規制標準而言,在實體資源3910、3915之間會有多種差異,包括架構、微型架構、熱、功率消耗特性、等等。
在一實施例中,處理器3910執行控制一般類型之資料處理操作的指令。嵌入於指令內的可能是協處理器指令。處理器3910辨識這些協處理器指令為應由附接協處理器3945執行的類型。藉此,處理器3910在協處理器匯流排或其他互連上對協處理器3945發出這些協處理器指令(或代表協處理器指令的控制信號)。協處理器 3945接受和執行接收之協處理器指令。
現在參考第40圖,所顯示的係依照本發明之實施例之第一更具體示範系統4000的方塊圖。如第40圖所示,多處理器系統4000是點對點互連系統,且包括經由點對點互連4050耦接的第一處理器4070和第二處理器4080。處理器4070和4080之各者可能是一些型式的處理器3800。在本發明之一實施例中,處理器4070和4080分別是處理器3910和3915,而協處理器4038是協處理器3945。在另一實施例中,處理器4070和4080分別是處理器3910和協處理器3945。
顯示處理器4070和4080分別包括整合記憶體控制器(IMC)單元4072和4082。處理器4070也包括作為其匯流排控制器單元點對點(P-P)介面4076和4078的部分;同樣地,第二處理器4080包括P-P介面4086和4088。處理器4070、4080可能使用P-P介面電路4078、4088經由點對點(P-P)介面4050來交換資訊。如第40圖所示,IMC 4072和4082將處理器耦接至各別記憶體(即記憶體4032和記憶體4034),其可能是區域附接於各別處理器之主記憶體的部分。
處理器4070、4080可能各使用點對點介面電路4076、4094、4086、4098經由個別P-P介面4052、4054來與晶片組4090交換資訊。晶片組4090可能可選地經由高效能介面4039來與協處理器4038交換資訊。在一實施例中,協處理器4038係專用處理器,例如,高產 量MIC處理器、網路或通訊處理器、壓縮引擎、圖形處理器、GPGPU、嵌入式處理器或之類。
共享快取(未示出)可能包括在任一處理器中或兩處理器之外;還經由P-P互連與處理器連接,使得若將處理器置於低功率模式中,則任一或兩處理器的區域快取資訊可儲存於共享快取中。
晶片組4090可經由介面4096來耦接至第一匯流排4016。在一實施例中,第一匯流排4016可能是周邊元件互連(PCI)匯流排、或如PCI快捷匯流排或另一第三代I/O互連匯流排的匯流排,雖然本發明之範圍並不以此為限。
如第40圖所示,各種I/O裝置4014可能與匯流排橋接器4018一起耦接至第一匯流排4016,其中匯流排橋接器4018將第一匯流排4016耦接至第二匯流排4020。在一實施例中,一或更多額外的處理器4015(如協處理器、高產量MIC處理器、GPGPU的加速器(例如,圖形加速器或數位信號處理(DSP)單元)、現場可程式閘陣列、或任何其他處理器)係耦接至第一匯流排4016。在一實施例中,第二匯流排4020可能是低接腳數(LPC)匯流排。在一實施例中,各種裝置可能耦接至第二匯流排4020,包括例如鍵盤及/或滑鼠4022、通訊裝置4027及如磁碟機或可能包括指令/碼和資料4030之其他大容量儲存裝置的儲存單元4028。此外,音頻I/O 4024可能耦接至第二匯流排4020。請注意其他架構係可能的。 例如,系統可能實作多點匯流排或其他這類架構,來取代第40圖之點對點架構。
現在參考第41圖,所顯示的係依照本發明之實施例之第二更具體示範系統4100的方塊圖。第40和41圖中的相同元件具有類似參考數字,且已從第41圖省略第40圖之某些態樣以避免模糊第41圖之其他態樣。
第41圖繪示處理器4070、4080可分別包括整合記憶體和I/O控制邏輯(「CL」)4072和4082。因此,CL 4072、4082包括整合記憶體控制器單元且包括I/O控制邏輯。第41圖不只繪示記憶體4032、4034耦接至CL 4072、4082,而且還繪示I/O裝置4114也耦接至控制邏輯4072、4082。傳統I/O裝置4115係耦接至晶片組4090。
現在參考第42圖,所顯示的係依照本發明之實施例之SoC 4200的方塊圖。第38圖中的相似元件具有相同參考數字。而且,虛線框在更進階的SoC上是非必要的特徵。在第42圖中,互連單元4202係耦接至:包括一組一或更多核心202A-N及共享快取單元3806的應用處理器4210;系統代理器單元3810;匯流排控制器單元3816;整合記憶體控制器單元3814;可包括整合圖形邏輯、影像處理器、音頻處理器、和視頻處理器的一組或一或更多協處理器4220;靜態隨機存取記憶體(SRAM)單元4230;直接記憶體存取(DMA)單元4232、及用於耦接一或更多外部顯示器的顯示單元4240。在一實施例 中,協處理器4220包括專用處理器,例如,網路或通訊處理器、壓縮引擎、GPGPU、高產量MIC處理器、嵌入式處理器或之類。
本文所揭露之機制的實施例可能在硬體、軟體、韌體、或上述實作方法之組合中實作。本發明之實施例可實作成執行在包含至少一處理器、儲存系統(包括揮發性和非揮發性記憶體及/或儲存元件)、至少一輸入裝置、及至少一輸出裝置的可程式系統上的電腦程式或程式碼。
可施用程式碼(如第40圖所示之碼4030)來輸入指令以進行本文所述之功能並產生輸出資訊。可能以已知的方式來對一或更多輸出裝置施用輸出資訊。為了此應用之目的,處理系統包括任何具有處理器(例如,數位信號處理器(DSP)、微控制器、專用積體電路(ASIC)、或微處理器)之系統。
程式碼可能以高階程序或物件導向編程語言來實作以與處理系統通訊。若需要的話,程式碼也可能以組合或機器語言來實作。事實上,本文所述之機制在範圍上並不受限於任何特定編程語言。在任何情況下,語言可能是經編譯或轉譯語言。
至少一實施例之一或更多態樣可能藉由儲存在機器可讀媒體上的代表指令來實作,其表現在處理器內的各種邏輯,當指令被機器讀取時會使機器製造邏輯來進行本文所述之技術。這樣的表現,稱為「IP核心」,可儲 存在有形的機器可讀媒體上並供應給各種顧客或製造廠來下載至實際產生邏輯的製造機器或處理器中。
這類機器可讀媒體可能包括,但不限於機器或裝置製造或形成之物件的非暫態有形佈置,包括如硬碟、任何型態之磁碟(包括軟碟、光碟、唯讀光碟機(CD-ROM)、可覆寫光碟(CD-RW)、及磁光碟機)、如唯讀記憶體(ROM)的半導體裝置、如動態隨機存取記憶體(DRAM)、靜態隨機存取記憶體(SRAM)的隨機存取記憶體(RAM)、可抹除可程式化唯讀記憶體(EPROM)、快閃記憶體、電子可抹除可程式化唯讀記憶體(EEPROM)、相變記憶體(PCM)、磁或光學卡、或適用於儲存電子指令之任何其他型態之媒體的儲存媒體。
因此,本發明之實施例也包括非暫態、有形的機器可讀媒體,其包含指令或包含設計資料,如硬體描述語言(HDL),其定義本文所述之結構、電路、設備、處理器及/或系統特徵。上述實施例也可能係指程式產品。
模擬(包括二進制轉譯、碼模仿、等等)
在一些情況中,可能使用指令轉換器來將指令從來源指令集轉換成目標指令集。例如,指令轉換器可能轉譯(例如,使用靜態二進制轉譯、包括動態編譯的動態二進制轉譯)、模仿、模擬、或以其他方式將指令轉換 成一或更多由核心處理的其他指令。指令轉換器可能在軟體、硬體、韌體、或以上之組合中實作。指令轉換器可在處理器上、在處理器之外、或部分在處理器上且部分在處理器外。
第43圖係根據本發明之實施例之對照使用軟體指令轉換器來將來源指令集中的二進制指令轉換成目標指令集中的二進制指令之方塊圖。雖然指令轉換器可能另外在軟體、硬體、韌體、或以上之各種組合中實作,但在所述之實施例中,指令轉換器係軟體指令轉換器。第43圖顯示高階語言4302的程式可使用x86編譯器4304來編譯以產生x86二進制碼4306,其本身可被具有至少一x86指令集核心4316的處理器執行。具有至少一x86指令集核心4316的處理器代表任何能進行實質上與具有至少一x86指令集核心的Intel處理器相同之功能的處理器,藉由相容地執行或以其他方式處理(1)Intel x86指令集核心之指令集的實質部分或(2)目標碼型式的應用程式或其他針對在具有至少一x86指令集核心的Intel處理器上執行的軟體,以達到實質上與具有至少一x86指令集核心的Intel處理器有相同的結果。x86編譯器4304代表可操作以產生x86二進制碼4306(例如,目標碼)的編譯器,其能連同或無須額外的連鎖處理地在具有至少一x86指令集核心4316的處理器上執行。同樣地,第43圖顯示高階語言4302的程式可使用另一指令集編譯器4308來編譯以產生原本就可被不具有至少一x86指令集核心4314 的處理器(例如,具有執行美國加州Sunnyvale的MIPS技術之MIPS指令集及/或執行美國加州Sunnyvale的ARM股份公司之ARM指令集之核心的處理器)執行的另一指令集二進制碼4310。指令轉換器4312係用於將x86二進制碼4306轉換成本身可被不具有x86指令集核心4314之處理器執行的碼。由於能夠轉換上述的指令轉換器難以製造,因此經轉換碼不太可能與另一指令集二進制碼4310相同;然而,經轉換碼將完成一般操作且由來自另一指令集的指令組成。因此,指令轉換器4312代表軟體、硬體、韌體、或以上之組合,透過模仿、模擬或任何其他程序,允許處理器或其他不具有x86指令集處理器或核心的電子裝置執行x86二進制碼4306。
201‧‧‧輸入數據
203‧‧‧iCAM
205‧‧‧RAM

Claims (24)

  1. 一種裝置,包含:一項目為基搜尋結構,用以搜尋具有依賴於在一詞典中之特徵的項目之特徵的該詞典;實體儲存,耦接至該項目為基搜尋結構以儲存該些特徵;及實體邏輯,用以存取該項目為基搜尋結構以基於一接收輸入數據來搜尋用於儲存在特徵之該詞典中之特定特徵的項目,及用以存取該實體儲存且取得該特定特徵;其中該項目為基搜尋結構係為包含複數個胞元的一內容可定址記憶體(CAM);其中該CAM之胞元的數量係小於或等於2(l-1).F,其中l係為在輸入數據之每個樣本中的位元數量,且F係為在該詞典中的特徵數量。
  2. 如申請專利範圍第1項所述之裝置,其中該實體儲存係為一隨機存取記憶體(RAM)。
  3. 如申請專利範圍第2項所述之裝置,其中該RAM係嵌入在該裝置的一中央處理單元中。
  4. 如申請專利範圍第2項所述之裝置,其中該RAM係在該裝置的一中央處理單元外部。
  5. 如申請專利範圍第1項所述之裝置,其中該實體儲存係為一固態硬碟(SSD)。
  6. 如申請專利範圍第1項所述之裝置,其中該項目為基搜尋結構之每個項目係用以將一間隔值及一特徵的位址 儲存在該實體儲存中。
  7. 如申請專利範圍第6項所述之裝置,其中該間隔值包含具有1、0、或無所謂之值的複數個位元。
  8. 如申請專利範圍第1項所述之裝置,其中該項目為基搜尋結構之每個項目係用以儲存一間隔值及一特徵之值。
  9. 如申請專利範圍第8項所述之裝置,其中該間隔值包含具有1、0、或無所謂之值的複數個位元。
  10. 如申請專利範圍第1項所述之裝置,其中該CAM之每個胞元係耦接於加總邏輯以相加匹配於該胞元的數量。
  11. 如申請專利範圍第10項所述之裝置,其中該加總邏輯係在該CAM內部。
  12. 如申請專利範圍第10項所述之裝置,其中該加總邏輯係在該CAM外部。
  13. 如申請專利範圍第1項所述之裝置,其中該CAM之每個胞元係耦接於AND及OR邏輯以被用以指示匹配。
  14. 如申請專利範圍第1項所述之裝置,其中特徵的該詞典係用以描述由間隔值定義之複數個界限框,且其中每個界限框係用以容納一單一特徵。
  15. 如申請專利範圍第14項所述之裝置,其中該特徵係儲存為一浮點數值。
  16. 如申請專利範圍第1項所述之裝置,其中用以存 取該項目為基搜尋結構以基於一接收輸入數據來搜尋用於在特徵之該詞典中之特定特徵的項目及用以存取該實體儲存且取得該特定特徵的該實體邏輯係為一核心。
  17. 如申請專利範圍第1項所述之裝置,其中用以存取該項目為基搜尋結構以基於一接收輸入數據來搜尋用於在特徵之該詞典中之特定特徵的項目及用以存取該實體儲存且取得該特定特徵的該實體邏輯係為一加速器。
  18. 如申請專利範圍第1項所述之裝置,其中該項目為基搜尋結構係用以在該接收輸入數據的多個樣本維度上平行搜尋。
  19. 如申請專利範圍第18項所述之裝置,其中該實體邏輯用以跨該接收輸入數據的多個樣本維度地計算匹配特徵且以高得票數來識別特徵。
  20. 如申請專利範圍第1項所述之裝置,其中該實體儲存用以儲存待被一處理器執行之用於搜尋一特徵的一程式。
  21. 如申請專利範圍第20項所述之裝置,其中該程式係基於正交匹配追蹤演算法。
  22. 如申請專利範圍第20項所述之裝置,其中該程式係基於壓縮取樣匹配追蹤演算法(CoSaMP)。
  23. 如申請專利範圍第1項所述之裝置,其中該項目為基搜尋結構係為一n元搜尋樹,其中n為任一整數。
  24. 如申請專利範圍第1項所述之裝置,其中該項目為基搜尋結構係為一隨機存取記憶體(RAM)且在該輸入 數據中的一位元串被使用作為一記憶體位址以取得一儲存特徵。
TW104105834A 2014-02-25 2015-02-24 用於特徵搜尋之系統,裝置及方法 TWI617928B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201461944519P 2014-02-25 2014-02-25
US61/944,519 2014-02-25
US14/257,822 US10296660B2 (en) 2014-02-25 2014-04-21 Systems, apparatuses, and methods for feature searching
US14/257,822 2014-04-21

Publications (2)

Publication Number Publication Date
TW201602813A TW201602813A (zh) 2016-01-16
TWI617928B true TWI617928B (zh) 2018-03-11

Family

ID=53882418

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104105834A TWI617928B (zh) 2014-02-25 2015-02-24 用於特徵搜尋之系統,裝置及方法

Country Status (3)

Country Link
US (1) US10296660B2 (zh)
CN (1) CN104866537B (zh)
TW (1) TWI617928B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI814419B (zh) * 2022-04-27 2023-09-01 大陸商南京鼎華智能系統有限公司 基於記憶體運算的派工系統以及派工方法
TWI821027B (zh) * 2022-11-17 2023-11-01 英業達股份有限公司 元件匹配和報告方法

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015189845A1 (en) 2014-06-10 2015-12-17 Ramot At Tel-Aviv University Ltd. Method and system for processing an image
US10193902B1 (en) * 2015-11-02 2019-01-29 Deep Instinct Ltd. Methods and systems for malware detection
CN105573204A (zh) * 2015-12-22 2016-05-11 深圳市东微智能科技有限公司 一种多处理器的数字音频矩阵控制设备及方法
CN105631866B (zh) * 2015-12-24 2019-04-05 武汉鸿瑞达信息技术有限公司 一种提取前景目标方法基于异构平台的计算优化方法
CN105787910B (zh) * 2015-12-24 2019-01-11 武汉鸿瑞达信息技术有限公司 一种人脸区域滤波方法基于异构平台的计算优化方法
US10267645B2 (en) * 2016-02-17 2019-04-23 International Business Machines Corporation Method, apparatus and product for efficient solution of nearest object problems
US10685118B2 (en) * 2017-05-15 2020-06-16 Ut-Battelle, Llc System and method for monitoring power consumption to detect malware
US11869150B1 (en) 2017-06-01 2024-01-09 Apple Inc. Avatar modeling and generation
CN110019682B (zh) * 2017-12-28 2022-12-27 北京京东尚科信息技术有限公司 用于处理信息的系统、方法和装置
US10397115B1 (en) * 2018-04-09 2019-08-27 Cisco Technology, Inc. Longest prefix matching providing packet processing and/or memory efficiencies in processing of packets
US11727724B1 (en) * 2018-09-27 2023-08-15 Apple Inc. Emotion detection
CN111078283B (zh) * 2018-10-19 2021-02-09 中科寒武纪科技股份有限公司 运算方法、装置及相关产品
US11830182B1 (en) 2019-08-20 2023-11-28 Apple Inc. Machine learning-based blood flow tracking
US11967018B2 (en) 2019-12-20 2024-04-23 Apple Inc. Inferred shading
CN113591893A (zh) * 2021-01-26 2021-11-02 腾讯医疗健康(深圳)有限公司 基于人工智能的图像处理方法、装置和计算机设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090037448A1 (en) * 2007-07-31 2009-02-05 Novell, Inc. Network content in dictionary-based (DE)compression
CN102314876B (zh) * 2010-06-29 2013-04-10 株式会社理光 语音检索的方法和系统
US20130216206A1 (en) * 2010-03-08 2013-08-22 Vumanity Media, Inc. Generation of Composited Video Programming

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7539750B1 (en) 2004-03-30 2009-05-26 Extreme Networks, Inc. System and method for packet processor status monitoring
CN101075251A (zh) 2007-06-18 2007-11-21 中国电子科技集团公司第五十四研究所 一种基于数据挖掘的文本搜索方法
US20090037228A1 (en) 2007-08-02 2009-02-05 Justin Engel System and Method for Analyzing Complex Insurance Policy Proposals

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090037448A1 (en) * 2007-07-31 2009-02-05 Novell, Inc. Network content in dictionary-based (DE)compression
US20130216206A1 (en) * 2010-03-08 2013-08-22 Vumanity Media, Inc. Generation of Composited Video Programming
CN102314876B (zh) * 2010-06-29 2013-04-10 株式会社理光 语音检索的方法和系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI814419B (zh) * 2022-04-27 2023-09-01 大陸商南京鼎華智能系統有限公司 基於記憶體運算的派工系統以及派工方法
TWI821027B (zh) * 2022-11-17 2023-11-01 英業達股份有限公司 元件匹配和報告方法

Also Published As

Publication number Publication date
US10296660B2 (en) 2019-05-21
TW201602813A (zh) 2016-01-16
CN104866537A (zh) 2015-08-26
US20150242461A1 (en) 2015-08-27
CN104866537B (zh) 2019-09-10

Similar Documents

Publication Publication Date Title
TWI617928B (zh) 用於特徵搜尋之系統,裝置及方法
US10282465B2 (en) Systems, apparatuses, and methods for deep learning of feature detectors with sparse coding
US10984286B2 (en) Domain stylization using a neural network model
US10180928B2 (en) Heterogeneous hardware accelerator architecture for processing sparse matrix data with skewed non-zero distributions
US10387037B2 (en) Microarchitecture enabling enhanced parallelism for sparse linear algebra operations having write-to-read dependencies
US20190244329A1 (en) Photorealistic Image Stylization Using a Neural Network Model
US20180189675A1 (en) Hardware accelerator architecture and template for web-scale k-means clustering
Halappanavar et al. Approximate weighted matching on emerging manycore and multithreaded architectures
US10891255B2 (en) Heterogeneous multiprocessor including scalar and SIMD processors in a ratio defined by execution time and consumed die area
Lee et al. Application codesign of near-data processing for similarity search
WO2021045905A1 (en) Video prediction using one or more neural networks
Li et al. An architecture-level analysis on deep learning models for low-impact computations
US10303735B2 (en) Systems, apparatuses, and methods for K nearest neighbor search
Feng et al. Principal component analysis based filtering for scalable, high precision k-NN search
Taranco et al. LOCATOR: Low-power ORB accelerator for autonomous cars
US9626334B2 (en) Systems, apparatuses, and methods for K nearest neighbor search
Li et al. Sub-selective quantization for large-scale image search
Wang et al. GPU-based MapReduce for large-scale near-duplicate video retrieval
Tian et al. Unsupervised hashing based on the recovery of subspace structures
Clemons et al. EVA: An efficient vision architecture for mobile systems
TW201732569A (zh) 用以監控位址衝突的計數器
Kaur et al. Content based image retrieval with graphical processing unit
Rodriguez-Borbon et al. Heterogeneous acceleration of HAR applications
US20230161626A1 (en) Point cloud adjacency-map and hash-map accelerator
Romero et al. Covariance tracking: architecture optimizations for embedded systems

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees