TWI640879B - Semiconductor device, information processing system, and information writing/reading method - Google Patents

Semiconductor device, information processing system, and information writing/reading method Download PDF

Info

Publication number
TWI640879B
TWI640879B TW105112474A TW105112474A TWI640879B TW I640879 B TWI640879 B TW I640879B TW 105112474 A TW105112474 A TW 105112474A TW 105112474 A TW105112474 A TW 105112474A TW I640879 B TWI640879 B TW I640879B
Authority
TW
Taiwan
Prior art keywords
data
memory
divided
address
entry address
Prior art date
Application number
TW105112474A
Other languages
English (en)
Other versions
TW201709095A (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 TW201709095A publication Critical patent/TW201709095A/zh
Application granted granted Critical
Publication of TWI640879B publication Critical patent/TWI640879B/zh

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本發明提供一種關鍵資料的寫入處理時發生全衝突的有效解決手段。
本發明的半導體裝置係將寫入對象的關鍵資料分割為複數個分割資料,將複數個分割資料的各資料分配給分割記憶體,以各分割資料為位址,將與分割資料對應的入口位址寫入由各分割記憶體的記憶體位址特別指定的記憶體空間。此時,在要寫入與某分割資料對應的入口位址的記憶體空間,已被寫入與其他的分割資料對應的入口位址時,在記憶體空間登錄表示入口位址衝突的衝突資訊。又,在從某關鍵資料分割的複數個分割資料的全部資料發生衝突時,將發生全衝突的關鍵資料和與該關鍵資料對應的入口位址寫入備用記憶體。

Description

半導體裝置、資訊處理系統、及資訊寫入/讀取方法
本發明係關於一種半導體裝置、具備複數個半導體裝置的資訊處理系統、及一種對於半導體裝置的入口位址的寫入/讀取方法。具體而言,本發明的半導體裝置係關於一種謀求資料的寫入及檢索時使耗電減低的內容可定址記憶體(CAM:Content Addressable Memory)等。
近幾年進入雲端運算的時代,一般認為網際網路交換器或路由器的高性能化或耗電的減低是緊急的課題。此外,就網際網路的檢索引擎而言,要求可以更高速且低耗電進行確實的檢索操作。為了回應這種要求,近幾年在網際網路交換器或檢索引擎方面,使用CAM的情形變多起來。
在此,一般的CAM在進行記憶於CAM內的資料檢索之際,要輸入稱為關鍵資料的檢索資料。而且,CAM在將與關鍵資料相同的資料記憶於記憶體時,要輸出記憶有該關鍵資料的記憶體的位址(地址)。此時的位址也稱為入口位址。一般而言,要實現這種檢索功能,需要對CAM內的全記憶體空間進行存取,不但電路構造變成複雜,而且也有耗電變大的問題。特別是此耗電變大的問題是伴隨CAM的規模而變大的,所以目前被認為是非常嚴重的問題。
對於這種問題,在例如專利文獻1中提出了一種以活用CAM的高速檢索性並謀求低耗電化為目的的資料檢索裝置。專利文獻1的資料檢索裝置係將定有 優先順序的複數個規則資料依其大小順序重新附加順序,按其順序分配給複數個記憶塊。此外,此檢索裝置在進行資料的檢索之際,指定要檢索的一個記憶塊而執行檢索處理。如此,專利文獻1的資料檢索裝置在進行檢索處理之際,只使所指定的一個方塊成為激活,無需使其他的方塊成為激活,所以與一般的CAM比較,被認為可減低檢索時的耗電。
然而,上述專利文獻1所揭示的資料檢索裝置相較於一般的記憶體,雖然可以減低檢索時的耗電,但要執行檢索處理,必需同時對塊內的全記憶體空間進行存取。因此,以往的資料檢索裝置的電路構造複雜,並且有檢索時耗電大的問題。如此,上述專利文獻1的技術並不能針對目前的問題找出根本的解決辦法。
【先前技術文獻】 【專利文獻】
【專利文獻1】特開2004-185792號公報
【專利文獻2】專利第5575997號公報
且說要實現高速且低耗電的資料檢索,由本發明者們研討了新穎的半導體裝置(CAM)(專利文獻2)。此新穎的CAM具備:檢索記憶體墊,其將與關鍵資料對應的入口位址寫入由記憶體位址特別指定的記憶體空間;以及控制電路,其連接於該檢索記憶體墊。檢索記憶體墊在記憶體空間保持記憶體位址的狀態下被區分為複數個分割記憶體。對於CAM輸入寫入檢索記憶體墊用的關鍵資料,控制電路就將該關鍵資料分割為複數個分割資料。然後,控制電路將複數個分割資料的各資料分配給複數個分割記憶體,以各分割資料為位址,將與 該分割資料對應的入口位址逐漸寫入由各分割記憶體的記憶體位址特別指定的記憶體空間。如此一來,與複數個關鍵資料對應的入口位址被逐漸寫入檢索記憶體墊。
此外,檢索寫入於檢索記憶體墊的關鍵資料的處理,係以與寫入處理同樣的步驟進行。即,對於CAM輸入作為檢索對象資料的關鍵資料時,控制電路就將作為該檢索對象資料的關鍵資料逐漸分割為複數個分割資料。然後,控制電路以分割資料的各資料為位址,對由各分割記憶體的記憶體位址特別指定的記憶體空間進行存取,從存取的記憶體空間讀取與該分割資料對應的入口位址。
如此一來,在由本發明者開發之新穎的CAM方面,係將關鍵資料分割為複數個,將與該分割的關鍵資料的各資料對應的入口位址記憶於分割記憶體。因此,當檢索該入口位址之際,無需使整個檢索記憶體墊同時激活(活化),而可使各分割記憶體部分地成為激活而進行檢索記憶體墊。因此,藉由此CAM,可以與以往的CAM同樣的高速性實現資料檢索,並比以往的CAM以極低的耗電執行資料檢索。
然而,對於CAM的記憶體空間在寫入與複數個關鍵資料對應的入口位址時,可假設在其記憶體空間已經寫入有與其他的關鍵資料對應的入口位址的事態。如此,在記憶體空間發生入口位址衝突時,藉由在其記憶體空間登錄表示入口位址衝突的衝突資訊(可忽略值)來處理。藉此,可使入口位址的寫入處理/讀取處理高速化。
然而,要寫入半導體裝置的關鍵資料的值產生偏差,關鍵資料的值大致都成為相同的值時等,當要寫入關鍵資料之際,全部的記憶體空間都發生衝突(全衝 突)時。發生這種全衝突時,在所分割的記憶體空間會只登錄衝突資訊(可忽略值),而不寫入與關鍵資料對應的入口位址。如此一來,當要從檢索記憶體墊檢索發生全衝突的關鍵資料之際,就只能讀取衝突資訊(可忽略值)。此情況,必需進行下述處理(所謂的匯總處理):例如從衝突的入口位址讀取與檢索對象的關鍵資料對應的入口位址的複數個候補位址,由該等複數個候補位址中逐個核對是否與檢索對象的關鍵資料對應。發生這種匯總處理,一般認為會有對資料檢索處理招致延遲或資料檢索的精度降低之類的問題。
如此,在新穎的CAM的構造方面,對於關鍵資料的寫入處理時發生全衝突的對策,即使本發明者們也認為還有研討的餘地。
此外,CAM被要求安裝有通配檢索功能。例如,依據IPv4的32位元的IP位址被規定成高階24位元(或28位元)成為網路位址,低階8位元(或4位元)成為主機位址。例如,24位元的網路位址寫成「/24」,28位元的網路位址寫成「/28」。如此,此時例如記憶於CAM的IP位址之中,高階24位元的網路位址一致者被作為檢索對象,而大多可忽略(無需顧慮而加以忽略)低階8位元的主機位址而進行檢索的情形。這種部分一致的檢索功能也稱為通配檢索功能。
一般的CAM中被要求安裝有這種通配檢索功能。即使在本發明者們所研討之新穎的CAM的構造方面,對於實現此通配檢索功能用的架構,也有研討的餘地。
於是,本發明的第一目的為一種關鍵資料的寫入處理時發生全衝突的情況下提供有效解決手段。
此外,本發明的第二目為提供一種實現通配 檢索功能用的有效架構。
本發明是達成第一目的與第二目的的至少任一個者。
本發明的第一方面係關於半導體裝置。
本發明的半導體裝置具備檢索記憶體墊100、控制電路200以及備用記憶體300。
檢索記憶體墊100將與關鍵資料(KD)對應的入口位址(EA)寫入由記憶體位址(MA)特別指定的記憶體空間。控制電路200連接於檢索記憶體墊100。備用記憶體300連接於控制電路200。
檢索記憶體墊100係記憶體空間在保持前述記憶體位址(MA)的狀態下被區分為複數個分割記憶體110a、110b…。即,檢索記憶體墊100係由具有共通的記憶體位址(MA)的複數個分割記憶體110a、110b…所構成。
控制電路200具有輸入部210、分割部220以及寫入部230。
寫入檢索記憶體墊100用的關鍵資料(KD)被輸入輸入部210。分割部220將輸入輸入部210的關鍵資料(KD)分割為複數個分割資料。然後,寫入部230將複數個分割資料的各資料分配給複數個分割記憶體110a、110b…,以各分割資料為位址,將與該分割資料對應的入口位址(EA)寫入由各分割記憶體110a、110b…的記憶體位址(MA)特別指定的記憶體空間(參照第4圖)。
此處,在要寫入與某分割資料對應的入口位址(EA)的記憶體空間,已被寫入與其他的分割資料對應的入口位址(EA)時,則寫入部230在該記憶體空間登錄表示入口位址(EA)衝突的衝突資訊(可忽略值)(參照第5圖)。
再者,在對於從某關鍵資料分割的複數個分割資料 的全部資料發生了入口位址(EA)衝突時,寫入部230將發生該全衝突的關鍵資料(KD)和與其對應的入口位址(EA)賦予對應,寫入備用記憶體300(參照第6圖)。
如上述構造,本發明的半導體裝置具備備用記憶體300作為全衝突對策。即,在本發明的半導體裝置中,進行以下處理:(i)將關鍵資料分割為複數個分割資料;(ii)將各分割資料分配給分割記憶體110a、110b…;(iii)以各分割資料為位址,對由各分割記憶體110a、110b…的記憶體位址特別指定的記憶體空間進行存取;(iv)將與關鍵資料對應的入口位址寫入存取的記憶體空間(參照第4圖)。此時,在要寫入與某分割資料對應的入口位址(EA)的記憶體空間,已被寫入與其他的分割資料對應的入口位址(EA)時,則在該記憶體空間登錄表示入口位址(EA)衝突的衝突資訊(可忽略值)(參照第5圖)。然而,這種衝突資訊也有以下的可能性:對於從某關鍵資料分割的複數個分割資料的全部資料會被寫入。於是,本發明的半導體裝置在發生全衝突時,將發生該全衝突的關鍵資料和與其對應的入口位址賦予對應,寫入與檢索記憶體墊100分開設置的備用記憶體300(參照第6圖)。如此,本發明的半導體裝置藉由預先設置備用記憶體300,可使發生全衝突的關鍵資料與其入口位址預先回避而記憶。雖然讀取處理(檢索處理)非常繁雜,但發生全衝突的關鍵資料藉由預先記憶於備用記憶體300,卻可迅速且有效地進行讀取處理(檢索處理)。藉此,可達成上述本發明的第一目的。
本發明的半導體裝置較佳進一步具備:確認用記憶體400,其對入口位址(EA)賦予對應,記憶關鍵資料(KD)。特別是該確認用記憶體400中較佳只記憶未寫入上述備用記憶體300的入口位址(EA)與關鍵資料 (KD)。
如上述構造,作為不同於檢索記憶體墊100及備用記憶體300的用途,半導體裝置較佳具備確認用記憶體400。例如,在新的關鍵資料被輸入時,半導體裝置將入口位址分配給該新的關鍵資料,可將該新的關鍵資料與入口位址的對應關係預先記憶於確認用記憶體400。如此一來,在利用關鍵資料的讀取處理讀取入口位址時,若適當參照確認用記憶體400,則可確認該讀取的入口位址是否是與檢索對象資料對應的入口位址。特別是在檢索記憶體墊100發生了入口位址的衝突,於讀取處理時進行無需顧慮而加以忽略時,利用確認用記憶體400確認讀取的入口位址是否適當?這種情形是激活的。如此一來,藉由本發明,即使是發生了入口位址衝突時,也可以正確地進行資料檢索。此外,對於寫入備用記憶體300的入口位址與關鍵資料,無需記憶於確認用記憶體400。藉此,可防止將重複的資料各別寫入備用記憶體300與確認用記憶體400之類的記憶體。
本發明的半導體裝置較佳進一步具備遮罩暫存器500。
遮罩暫存器500(遮蔽暫存器)進行下述處理:登錄有所希望的遮罩圖案,依照該遮罩圖案給予所輸入的關鍵資料遮罩。然後,將利用遮罩暫存器500給予遮罩的關鍵資料輸入控制電路200的輸入部210。
如上述構造,設置遮罩暫存器500,藉由對於寫入對象或檢索對象的關鍵資料給予遮罩,可在本發明的半導體裝置上安裝通配檢索功能。即,藉由將給予遮罩後的關鍵資料經由輸入部210輸入到分割部220及寫入部230而進行處理,可將給予有遮罩的關鍵資料預先記憶於檢索記憶體墊100。藉此,當從檢索記憶體墊 100讀取與關鍵資料對應的入口位址之際,也可以可忽略給予有遮罩的位元(當作無需顧慮而加以忽略)。藉此,可達成上述本發明的第二目的。
在本發明的半導體裝置中,控制電路200較佳進一步具有讀取部240。首先,作為檢索對象資料的關鍵資料被輸入輸入部210,分割部220就將作為該檢索對象資料的關鍵資料分割為複數個分割資料。其後,讀取部240以分割資料的各資料為位址,對由各分割記憶體的記憶體位址特別指定的記憶體空間進行存取,從存取的記憶體空間讀取與該分割資料對應的入口位址(參照第7圖)。
此時,讀取部240在對記憶體空間進行存取,在該記憶體空間登錄有前述衝突資訊時,不讀取與分割資料對應的入口位址,而作為無需顧慮而加以忽略處理(參照第7圖)。
另一方面,讀取部240在從作為某檢索對象資料的關鍵資料分割的複數個分割資料的全部資料被作為無需顧慮而加以忽略處理時、或讀取的入口位址產生不一致時,從備用記憶體300,基於作為該檢索對象資料的關鍵資料,檢索與其對應的入口位址(參照第8圖)。
如上述構造,設想要讀取與作為檢索對象資料的關鍵資料對應的入口位址時,全部分割資料被作為無需顧慮而加以忽略處理時(全衝突)。例如,發生了全衝突時,將寫入記憶體空間的入口位址的候補位址全部讀取,也可以匯總地驗證是否和作為檢索對象資料的關鍵資料一致。然而,進行上述的匯總處理,關鍵資料的檢索處理就會發生明顯的延遲。因此,如此在發生了全衝突時或發生了入口位址不一致時,要參照備用記憶體300,檢索與作為檢索對象資料的關鍵資料一致的關鍵資 料。藉此,回避由匯總處理引起的處理延遲,可迅速且有效地輸出檢索結果。這種處理與上述本發明的第一目的有關聯。
本發明的第二方面係關於資訊處理系統。關於第二方面的資訊處理系統為具有複數個關於上述第一方面的半導體裝置10的系統。
在本發明的資訊處理系統中,複數個半導體裝置10較佳各個登錄於遮罩暫存器500的遮罩圖案皆不同。
如上述構造,準備複數個半導體裝置10,在各半導體裝置10的遮罩暫存器500預先登錄不同的遮罩圖案。然後,在寫入對象或檢索對象的關鍵資料被輸入系統時,將相同的關鍵資料分別輸入到遮罩圖案不同的複數個半導體裝置10的各半導體裝置。如此一來,藉由預先登錄複數個遮罩圖案,對於利用通配檢索功能的使用者,可提供按照使用者希望的檢索結果。
本發明的資訊處理系統較佳進一步具備遮罩控制器20。
遮罩控制器20連接於複數個半導體裝置10的各半導體裝置。
遮罩控制器20具有表資料輸入部21、遮罩圖案產生部22以及遮罩圖案登錄部23。
包含具有遮罩部位的複數個關鍵資料的表資料被輸入表資料輸入部21。即,表資料中含有複數個關鍵資料,該複數個關鍵資料中包含具有遮罩部位的關鍵資料。關鍵資料的遮罩部位中較佳存在複數個型樣(參照第11圖)。
遮罩圖案產生部22解析表資料所含的複數個關鍵資料的遮罩部位的型樣,產生複數種的遮罩圖案(參照第11圖)。
遮罩圖案登錄部23將遮罩圖案產生部22產生的複數種的遮罩圖案分別登錄於不同的前述半導體裝置10的遮罩暫存器500(參照第12圖、第1圖)。
如上述構造,藉由具備遮罩控制器20,可將由遮罩部位不同的複數個關鍵資料構成的表資料匯總起來寫入半導體裝置10的檢索記憶體墊100。當寫入表資料之際,遮罩控制器20自動解析關鍵資料的遮罩部位,將此遮罩部位型樣化,將與此遮罩部位的型樣對應的遮罩圖案逐漸登錄於半導體裝置10的遮罩暫存器500。因此,當檢索表資料內所含的關鍵資料之際,可利用通配檢索功能。這種處理與上述本發明的第二目的有關聯。
本發明的第三方面係關於資訊寫入方法。關於第三方面的資訊寫入方法係由有關上述第一方面的半導體裝置所執行。
資訊寫入方法包含以下步驟:將關鍵資料輸入控制電路;控制電路將關鍵資料分割為複數個分割資料;以及控制電路將複數個前述分割資料的各資料分配給複數個分割記憶體,以各分割資料為位址,將與該分割資料對應的入口位址寫入到由各分割記憶體的記憶體位址特別指定的記憶體空間。
在寫入入口位址的步驟中,在要寫入與某分割資料對應的入口位址的記憶體空間,已被寫入與其他的分割資料對應的入口位址時,控制電路在該記憶體空間登錄表示入口位址衝突的衝突資訊。然而,在從某關鍵資料分割的複數個分割資料的全部資料發生衝突時,控制電路將發生該全衝突的關鍵資料和與其對應的入口位址賦予對應,寫入備用記憶體300。
本發明的第四方面係關於資訊讀取方法。關 於第四方面的資訊讀取方法為利用關於上述第三方面的資訊寫入方法讀取寫入半導體裝置的資訊的方法。
資訊讀取方法包含以下步驟:將作為檢索對象資料的關鍵資料輸入控制電路;控制電路將作為檢索對象資料的關鍵資料分割為複數個分割資料;以及控制電路以分割資料的各資料為位址,對由各分割記憶體的記憶體位址特別指定的記憶體空間進行存取,從存取的記憶體空間讀取與該分割資料對應的入口位址。
在讀取入口位址的步驟中,在對記憶體空間進行存取,在該記憶體空間登錄有前述衝突資訊時,控制電路不讀取與分割資料對應的入口位址,而作為無需顧慮而加以忽略處理。然而,在從作為某檢索對象資料的關鍵資料分割的複數個分割資料的全部資料被作為無需顧慮而加以忽略處理時、或讀取的入口位址產生了不一致時,控制電路則從備用記憶體300,基於作為該檢索對象資料的關鍵資料,檢索與其對應的入口位址。
藉由本發明,可提供一種關鍵資料的寫入處理時發生全衝突的有效解決手段(第一目的)。此外,藉由本發明,可提供一種實現通配檢索功能用的有效架構(第二目的)。
1‧‧‧資訊處理系統
10‧‧‧半導體裝置
20‧‧‧遮罩控制器
21‧‧‧表資料輸入部
22‧‧‧遮罩圖案產生部
23‧‧‧遮罩圖案登錄部
30‧‧‧優先處理器
100‧‧‧檢索記憶體墊
110a、110b、110c...110m‧‧‧分割記憶體
200‧‧‧控制電路
210‧‧‧輸入部
220‧‧‧分割部
230‧‧‧寫入部
240‧‧‧讀取部
250‧‧‧確認部
260‧‧‧輸出部
300‧‧‧備用記憶體
400‧‧‧確認用記憶體
500‧‧‧遮罩暫存器
600‧‧‧編碼電路
第1圖顯示關於本發明的資訊處理系統的功能塊。
第2圖顯示關於本發明的半導體裝置的功能塊。
第3圖顯示由關於本發明的半導體裝置進行的寫入處理/讀取處理的流程。
第4圖顯示基本的寫入處理之例。
第5圖顯示發生衝突時的寫入處理之例。
第6圖顯示發生全衝突時的寫入處理之例。
第7圖顯示基本的讀取處理之例。
第8圖顯示發生不一致時的讀取處理之例。
第9圖顯示發生全衝突時的讀取處理之例。
第10圖顯示遮罩控制器的構造例。
第11圖顯示包含遮罩暫存器的資訊處理系統的構造例。
第12圖顯示包含遮罩處理的寫入處理之例。
第13圖顯示包含遮罩處理的讀取處理之例。
第14圖顯示編碼處理的一例。
第15圖顯示編碼處理的他例。
第16圖顯示通配檢索的方案例。
第17圖顯示通配檢索的方案例。
第18圖顯示通配檢索的方案例。
第19圖顯示通配檢索的方案例。
第20圖顯示通配檢索的方案例。
第21圖顯示通配檢索的方案例。
第22圖顯示通配檢索的方案例。
第23圖顯示通配檢索的方案例。
第24圖顯示通配檢索的方案例。
以下,就使用圖面實施本發明用的形態進行說明。本發明並不受以下說明的形態限定,也包含熟習該行業人士從以下的形態在自明的範圍內適當修正者。
第1圖為顯示資訊處理系統1的示意的方塊圖。如第1圖所示,資訊處理系統1包含複數個半導體裝置10、連接於各半導體裝置10的輸入側的遮罩控制 器20、以及連接於各半導體裝置10的輸出側的優先處理器30。在本案說明書中,首先就半導體裝置10的構造詳細地進行說明。其後,再就包含複數個半導體裝置10所構成的資訊處理系統1的構造進行說明。
第1圖顯示半導體裝置10內部構造的示意。此外,第2圖為顯示半導體裝置10主要功能構造的功能方塊圖。此外,第3圖為顯示由半導體裝置10進行的處理流程的流程圖。再者,第4圖至第6圖顯示由半導體裝置10進行的入口位址寫入處理之例,第7圖至第9圖顯示由半導體裝置10進行的入口位址讀取處理(檢索處理)之例。
如第1圖及第2圖所示,半導體裝置10基本上具備檢索記憶體墊100與控制電路200。此外,半導體裝置10較佳進一步具備備用記憶體300、確認用記憶體400、遮罩暫存器500以及編碼電路600。控制電路200連接於檢索記憶體墊100、備用記憶體300及確認用記憶體400,擔負綜合控制資訊處理的功能,該資訊處理係對各記憶體100、300、400寫入或讀取預定的資料(資訊)。控制電路200特別是主要作為對檢索記憶體墊100的資料寫入處理及讀取處理。此外,資料經由遮罩暫存器500及編碼電路600而被輸入控制電路200。因此,控制電路200基於經由遮罩暫存器500及編碼電路600的資料,對各記憶體100、300、400進行資料的寫入處理及讀取處理。
檢索記憶體墊100為將與關鍵資料(KD)對應的入口位址(EA)寫入由記憶體位址(MA)特別指定的記憶體空間(D)的記憶裝置(記憶體)。檢索記憶體墊100用來寫入入口位址(EA)用的記憶體空間(D)在保持記憶體位址(MA)的狀態下被區分為複數個分割記憶體110a、 110b…的構造。例如,檢索記憶體墊100及複數個分割記憶體110a、110b…之例顯示於第4圖等。
首先,參照第4圖,就檢索記憶體墊100與其所記憶的入口位址(EA)及關鍵資料(KD)的關係簡單地進行說明。如第4圖所示,檢索記憶體墊100係沿著y軸方向依次分配複數個記憶體位址(MA),利用該記憶體位址(MA)特別指定記憶體空間(D)的位址(地址)。記憶體空間(D)具有沿著x軸方向記憶資料的區域。該檢索記憶體墊100被區分為複數個分割記憶體110a、110b…。複數個分割記憶體110a、110b…保持記憶體位址(MA)與由其特別指定的記憶體空間(D)。此外,複數個分割記憶體110a、110b…的記憶體位址(MA)分別共通。即,分割記憶體110a、110b…的各記憶體係為將記憶體位址(MA)與由其特別指定的記憶體空間(D)以一對一賦予對應的構造。如此,檢索記憶體墊100可視為是被區分為複數個分割記憶體110a、110b…者。換言之,藉由複數個分割記憶體110a、110b…的集合而構築檢索記憶體墊100。
本發明的半導體裝置10可用作CAM(聯想記憶體)。即,半導體裝置10將與關鍵資料(KD)對應的入口位址(EA)寫入檢索記憶體墊100。其後或與此同時,半導體裝置10和入口位址(EA)賦予對應而將關鍵資料(KD)寫入確認用記憶體400或備用記憶體300。另一方面,對半導體裝置10輸入作為檢索對象的關鍵資料(KD)時,半導體裝置10就將與此關鍵資料(KD)對應的入口位址(EA)讀取而輸出。即,所謂「關鍵資料」,意味著記憶於半導體裝置10之所希望的資料。此外,所謂「入口位址」,意味著元資料,該元資料係表示記憶有關鍵資料(KD)的記憶體(具體而言係確認用記憶體400或備用記憶體300)的地方(位址)。
在第4圖所示之例中,入口位址(EA)被定義為以十六進記法兩位數表示的8位元的資料。8位元的入口位址(EA)取00~FF的值。半導體裝置10係對一個入口位址(EA)賦予對應,記憶一個關鍵資料(KD)。即,對一個關鍵資料(KD)分配一個入口位址(EA)。因此,入口位址(EA)為8位元的資訊時,可將256個關鍵資料(KD)記憶於半導體裝置10。因此,將入口位址設定為8位元的半導體裝置的總入口數量成為256個。再者,在本發明中,入口位址(EA)若為2位元以上的資料,則沒有問題。例如,入口位址(EA)也可以設定為3位元、4位元、6位元或8位元以上。此外,入口位址(EA)的位元數量較佳與檢索記憶體墊100的記憶體位址(MA)的位元數量一致。在第4圖所示之例中,入口位址(EA)與記憶體位址(MA)都被設定為8位元。
此外,在第4圖所示之例中,輸入半導體裝置10的關鍵資料(KD)被設定為144位元的資料。若將144位元的關鍵資料(KD)以與入口位址(EA)的位元數量對應的方式以每8位元分割時,則可分割為18個資料(分割資料)(即,144位元÷8位元=18)。此處,在本發明的半導體裝置10中,構成檢索記憶體墊100的分割記憶體110a、110b…的數量需要至少關鍵資料的分割數量(18)以上。再者,關鍵資料(KD)的位元數量並不受144位元限定,可依需要適當調整。此外,當將關鍵資料(KD)分割為複數個分割資料之際,分割關鍵資料(KD)的位元數量的數量較佳為入口位址(EA)的位元數量。即,較佳為(分割記憶體的數量)≧(KD的位元數量)÷(EA的位元數量)。
此外,在第4圖所示之例中,各分割記憶體110a、110b…的記憶體位址(MA)分別為以8位元定義的 資料(資訊)。即,在第4圖所示之例中,從關鍵資料(KD)分割的分割資料與記憶體位址(MA)分別在設定為8位元這點上是共通。如此,分割資料與記憶體位址(MA)的位元數量最好一致。再者,如上述,記憶體位址(MA)的位元數量與入口位址(EA)的位元數量也一致。
如此,在本發明的半導體裝置10中,檢索記憶體墊100其寫入入口位址(EA)用的記憶體空間(D)係在保持記憶體位址(MA)的狀態下被區分為複數個分割記憶體110a、110b…的構造。各分割記憶體可以使用例如SRAM(Static Random Access Memory;即靜態隨機存取記憶體)等記憶裝置構成。在此意義上,本發明可以是利用複數個SRAM實現的CAM。如同本發明,也可以將利用複數個SRAM所實現的CAM稱為SRAM-CAM。
此外,如第4圖所示之例,將可記憶於半導體裝置10的關鍵資料(KD)的數量(總入口數量)定為256個入口時,辨別此256個入口所需的入口位址(EA)的位元尺寸成為8位元。此外,設定輸入半導體裝置10的關鍵資料的位元尺寸為144位元時,將此144位元用入口位址(EA)的位元數量8去除,就成為18個。設想這種條件,則分割記憶體110a、110b…的數量需要至少18個以上。
在本發明的半導體裝置10中,成為最低限度必要的分割記憶體110a、110b…的數量N(檢索記憶體墊100的分割數量N)可以利用下式求出:(公式)N=L/log2‧M
L:關鍵資料長度(位元數量)
M:總入口數量
N:分割記憶體的最小個數(檢索記憶體墊的分割數量)
接著,參照第2圖至第9圖,就半導體裝置10的寫入處理及讀取處理進行說明。再者,關於第2圖及第3圖所示的遮罩暫存器500的遮罩處理與編碼電路600的編碼處理,將隨後詳細地敘述。首先,除了遮罩處理與編碼處理以外,就半導體裝置10的基本寫入處理進行說明。
如第2圖所示,控制電路200基本上具有輸入部210、分割部220、寫入部230、讀取部240、確認部250以及輸出部260。該等元件210~260係將控制電路200的功能在示意上分類而顯示者。即,控制電路200進行下述處理:利用該等功能性的元件210~260,對檢索記憶體墊100寫入入口位址(EA)或讀取記憶於檢索記憶體墊100的入口位址(EA)。此外,第3圖中顯示控制電路200的資訊處理的流程。
首先,說明由控制電路200進行的入口位址(EA)的寫入處理。基本的寫入處理的具體例顯示於第4圖至第6圖。此處所謂的寫入處理,係為當記憶新的關鍵資料(KD)之際,將與該新的關鍵資料(KD)對應的入口位址(EA)寫入檢索記憶體墊100的處理。
如第2圖所示,在寫入處理方面,首先成為寫入對象的關鍵資料被輸入半導體裝置10。此處,寫入對象的關鍵資料也可以如第2圖所示,被直接輸入控制電路200的輸入部210。此外,成為寫入對象的關鍵資料也可以經由遮罩暫存器500與編碼電路600而被輸入控制電路200的輸入部210。關於遮罩暫存器500與編碼電路600的處理,詳情後述之。
寫入對象的關鍵資料被輸入控制電路200的輸入部210,該輸入部210就將關鍵資料送到分割部220。即,該輸入部210作用為控制電路200的輸入介面。
接著,分割部220將寫入對象的關鍵資料分割為複數個分割資料。例如,分割部220較佳將關鍵資料分割為與構築檢索記憶體墊100的分割記憶體110a、110b…的數量相等的數量。即,分割部220分割關鍵資料的分割數量n較佳與構築檢索記憶體墊100的分割記憶體110a、110b…的數量N相等。藉此,可將利用分割部220分割為複數個的關鍵資料(分割資料)的全部分別依序對複數個分割記憶體110a、110b…逐漸分配。例如,在第3圖所示之例中,設想144位元的關鍵資料被輸入半導體裝置10。此外,分配給各關鍵資料的入口位址的位元數量為8位元,分割記憶體的數量成為18個。在這種條件下,分割部220較佳將144位元的關鍵資料以每8位元分割為18個分割資料。144位元的關鍵資料由分割部220以每8位元變換為18個分割資料。再者,分割部220的分割條件可依分割記憶體的數量或入口位址的位元數量、關鍵資料的位元數量等而適當變更。由分割部220所產生的複數個分割資料被送到寫入部230。
進一步詳細地說明,由分割部220分割的分割資料的位元數量(α)較佳與檢索記憶體墊100的記憶體位址(MA)的位元數量(β)相等(α=β)。例如,如第4圖等所示,在檢索記憶體墊100的記憶體位址(MA)以8位元表示時,分割部220較佳將關鍵資料(KD)分割為8位元的分割資料。此外,在例如檢索記憶體墊100的記憶體位址(MA)以2位元表示時,分割部220較佳將關鍵資料(KD)分割為2位元的分割資料。藉此,在後續的處理方面,可將分割部220分割的分割資料的各資料以該分割資料為位址而適當地分配給構築檢索記憶體墊100的分割記憶體。
寫入部230具有下述功能:對構築檢索記憶 體墊100的複數個分割記憶體110a、110b…或確認用記憶體400、備用記憶體300寫入預定的資料。
如第2圖及第3圖所示,對半導體裝置10輸入寫入對象的關鍵資料(KD),首先,寫入部230就對此關鍵資料(KD)分配固有的入口位址(EA)。此入口位址(EA)係對一個關鍵資料(KD)被分配一個。
此外,寫入部230對關鍵資料(KD)分配固有的入口位址(EA)後,或與分配同時,對構成檢索記憶體墊100的複數個分割記憶體110a、110b…逐漸寫入與關鍵資料(KD)對應的入口位址(EA)。如第3圖所示,寫入部230以複數個分割資料為位址,將與此等分割資料的各資料對應的入口位址(EA)對分割記憶體110a、110b…寫入。
具體地說明,如第3圖所示,關鍵資料(KD)的分割數量與檢索記憶體墊100的區分數量相等。在第3圖所示之例中,關鍵資料(KD)被分割為18個分割資料,檢索記憶體墊100被區分為18個分割記憶體。首先,寫入部230將複數個分割資料分別逐個分配給分割記憶體。即,第一分割資料分配給第一分割記憶體,第二分割資料分配給第二分割記憶體,同樣地,第k分割資料分配給第k分割記憶體。此處,各分割記憶體被給予有記憶體位址(MA),利用該記憶體位址(MA)特別指定記憶體空間。寫入部230將分割資料分配給分割記憶體後,核對該分割資料與分割記憶體的記憶體位址(MA),指定與該分割資料一致的記憶體位址(MA)。例如,分割資料為“00”這個值時,寫入部230從分割記憶體中指定具有“00”這個值的記憶體位址(MA)。然後,寫入部230對由與分割資料一致的記憶體位址(MA)特別指定的記憶體空間進行存取,將與分割資料對應的入口位址(EA) 逐漸寫入此記憶體空間。例如,與分割資料“00”對應的入口位址為“01”時,將入口位址“01”寫入由記憶體位址“00”特別指定的記憶體空間。如此,寫入部230以分割資料為位址,對由記憶體位址(MA)特別指定的記憶體空間進行存取,將與分割資料對應的入口位址(EA)寫入存取的記憶體空間。寫入部230對分配有分割資料的所有分割記憶體逐漸進行這種入口位址(EA)的寫入處理。這種處理成為基本的寫入處理。
此外,寫入部230進行下述處理:將輸入輸入部210的關鍵資料(KD)(分割前的狀態的關鍵資料)與分配給此資料的入口位址(EA)賦予對應,寫入確認用記憶體400。即,當新的寫入對象的關鍵資料被輸入半導體裝置10之際,寫入部230對此新的關鍵資料分配一個入口位址,將新的關鍵資料與入口位址的對應關係預先記憶於確認用記憶體400。藉此,將入口位址(EA)與關鍵資料(KD)以一對一對應而記憶於確認用記憶體400。如此,確認用記憶體400也作用為用來預先記憶關鍵資料與入口位址的對應關係用的資料庫。此外,如後述,確認用記憶體400於進行讀取處理之際及於進行控制電路讀取的入口位址是否正確的最後確認之際也都被利用。再者,確認用記憶體400由SRAM等眾所周知的記憶裝置構成即可。
此外,例如如第3圖或第4圖所示,確認用記憶體400也可以是預先登錄有所有入口位址(EA)的構造。即,確認用記憶體400係利用預先登錄的入口位址(EA)特別指定空的記憶體空間,可對此空的記憶體空間寫入關鍵資料(KD)。例如,寫入部230參照對關鍵資料(KD)所分配的入口位址(EA),對確認用記憶體400進行存取。然後,將關鍵資料(KD)寫入由確認用記憶體400 內的入口位址(EA)特別指定的記憶體空間。結果,藉由這種處理,也可以將一個入口位址(EA)與一個關鍵資料(KD)賦予對應而記憶於確認用記憶體400。
其次,參照第4圖至第6圖,就寫入部230的寫入處理舉出具體例而進行說明。
首先,第4圖顯示基本的寫入處理之例。在第4圖所示之例中,“00_01_02_03_04_05_06_07_08_09_0A_0B_0C_0D_0E_0F_10_11”這個值的關鍵資料(KD)被輸入半導體裝置10。再者,底線是為了方便起見而附加的,本來不存在。關鍵資料(KD)為以十六進記法表示的144位元的值。寫入部230首先對此關鍵資料(KD)分配具有“00”的值的入口位址(EA)。入口位址(EA)為以十六進記法兩位數表示的8位元的值。
此外,關鍵資料(KD)被輸入半導體裝置10,分割部220就將此關鍵資料(KD)分割為複數個分割資料。在第4圖所示之例中,檢索記憶體墊100的記憶體位址(MA)及入口位址(EA)為8位元的值。此外,檢索記憶體墊100被區分為18個分割記憶體110a、110b、…110m。於是,分割部220將144位元的關鍵資料(KD)以每8位元分割為18個分割資料。因此,各分割資料成為8位元的值。在第4圖所示之例中,關鍵資料(KD)被分割為“00”“01”“02”“03”“04”“05”“06”“07”“08”“09”“0A”“0B”“0C”“0D”“0E”“0F”“10”“11”的18個分割資料。
其後,寫入部230將由分割部220產生的分割資料分配給分割記憶體110a~110m,逐漸寫入入口位址(EA)。如第4圖所示,首先,寫入部230將第一分割資料“00”分配給第一分割記憶體110a。第一分割記憶 體110a有具有“00”~“FF”的值的8位元的記憶體位址(MA)。此處,寫入部230參照第一分割資料“00”指定第一分割記憶體110a的記憶體位址(MA)“00”,對由此記憶體位址“00”特別指定的記憶體空間(D)進行存取。然後,寫入部230對由記憶體位址“00”特別指定的記憶體空間(D)寫入與第一分割資料“00”對應的入口位址(EA)“00”。寫入部230對於第二~第十八分割資料也同樣地進行這種寫入處理。例如,寫入部230將第二分割資料“01”分配給第二分割記憶體110b,參照第二分割資料“01”指定第二分割記憶體110b的記憶體位址(MA)“01”,對由該記憶體位址“01”特別指定的記憶體空間(D)寫入與第二分割資料“01”對應的入口位址(EA)“00”。此外,例如寫入部230將第十八分割資料“11”分配給第十八分割記憶體110m,參照第十八分割資料“11”指定第十八分割記憶體110m的記憶體位址(MA)“11”,對由此記憶體位址“11”特別指定的記憶體空間(D)寫入與第十八分割資料“11”對應的入口位址(EA)“00”。如此一來,寫入部230將關鍵資料(KD)分割為複數個分割資料後,對構成檢索記憶體墊100的複數個分割記憶體110a、110b…逐漸寫入與關鍵資料(KD)對應的入口位址(EA)。
此外,如第4圖所示,寫入部230結束對檢索記憶體墊100的寫入處理,就將作為寫入對象的關鍵資料(KD)(分割前的狀態的關鍵資料)與固有的入口位址(EA)賦予對應,將此等的值寫入確認用記憶體400。藉此,可以將入口位址(EA)與關鍵資料(KD)以一對一賦予對應而記憶於確認用記憶體400。
接著,參照第5圖,說明在寫入處理中發生入口位址(EA)「衝突」時之例。在本發明的半導體裝置 中,寫入部230係以分割資料為位址,將與該分割資料對應的入口位址(EA)寫入分割記憶體110a…。因此,有將複數個入口位址(EA)寫入相同分割記憶體的相同記憶體空間的可能性。如此,在本案說明書中,將複數個入口位址寫入相同記憶體空間的現象表現為「衝突」。此處,本發明的半導體裝置在進行入口位址(EA)的寫入處理時發生了「衝突」時,在發生「衝突」的記憶體空間登錄衝突資訊(可忽略值),照樣繼續進行寫入處理。藉此,可使入口位址的寫入處理高速化。即,本發明不是避開入口位址(EA)的衝突,而是不在意入口位址的衝突而進行寫入處理。藉此,本發明使寫入處理/讀取處理的演算法簡化,可進一步地將資料檢索的高速性與低耗電性同時並存地加以實現。
第5圖顯示發生衝突時的寫入處理之例。在第5圖所示之例中,接著第4圖所示之關鍵資料(KD),“00_02_02_03_04_05_06_07_08_09_0A_0B_0C_0D_0E_0F_10_FF”這個值的關鍵資料(KD)被寫入半導體裝置10。寫入部230首先對此關鍵資料(KD)分配具有“01”的值的入口位址(EA)。
此外,關鍵資料(KD)被輸入半導體裝置10時,分割部220就將此關鍵資料(KD)分割為複數個分割資料。分割部220將144位元的關鍵資料(KD)以每8位元分割為18個分割資料。在第5圖所示之例中,關鍵資料(KD)被分割為“00”“02”“02”“03”“04”“05”“06”“07”“08”“09”“0A”“0B”“0C”“0D”“0E”“0F”“10”“FF”這個18個分割資料。
其後,寫入部230將由分割部220產生的分割資料分配給分割記憶體110a~110m,逐漸寫入入口位 址(EA)。如第5圖所示,首先,寫入部230將第一分割資料“00”分配給第一分割記憶體110a,參照第一分割資料“00”指定第一分割記憶體110a的記憶體位址(MA)“00”,對由該記憶體位址“00”特別指定的記憶體空間(D)進行存取。然後,寫入部230就將與第一分割資料“00”對應的入口位址(EA)“01”寫入此記憶體空間(D)。然而,在由此記憶體位址“00”特別指定的記憶體空間(D)已經寫入有其他的入口位址(EA)“00”(參照第4圖)。因此,寫入部230無法在此記憶體空間(D)寫入新的入口位址(EA)“01”。如此,在一個記憶體空間寫入複數個入口位址(EA)的現象稱為「衝突」。發生了這種「衝突」時,寫入部230在發生衝突的記憶體空間(D)登錄表示入口位址衝突的衝突資訊(可忽略值)。如此,寫入部230對於第一分割資料“00”,在對應的憶體空間登錄衝突資訊,結束該寫入處理。
寫入部230對於第二~第十八分割資料也同樣地進行這種寫入處理。例如,寫入部230將第二分割資料“02”分配給第二分割記憶體110b,參照第二分割資料“02”指定第二分割記憶體110b的記憶體位址(MA)“02”,對由此記憶體位址“02”特別指定的記憶體空間(D)寫入與第二分割資料“02”對應的入口位址(EA)“01”。關於第二分割資料“02”,由於未發生衝突,所以可寫入分割記憶體。另一方面,例如,寫入部230將第三分割資料“02”分配給第三分割記憶體110c,參照第三分割資料“02”指定第三分割記憶體110c的記憶體位址(MA)“02”,對由此記憶體位址“02”特別指定的記憶體空間(D)要寫入與第三分割資料“02”對應的入口位址(EA)“01”。然而,在由記憶體位址“02”特別指定的記憶體空間(D)已經寫入有其他的入口位址 “00”。於是,寫入部230在該記憶體空間登錄衝突資訊(可忽略值),結束關於第三分割資料“02”的寫入處理。如此,寫入部230對於發生衝突的部分登錄衝突資訊,對於所有分割資料進行寫入處理。如此,藉由對於發生衝突的記憶體空間登錄衝突資訊並照樣續行寫入處理,可使入口位址的寫入處理高速化。
其後,如第5圖所示,寫入部230將作為寫入對象的關鍵資料(KD)(分割前的狀態的關鍵資料)與固有的入口位址(EA)賦予對應,將此等的值寫入確認用記憶體400。藉此,可以將入口位址(EA)與關鍵資料(KD)以一對一賦予對應而記憶於確認用記憶體400。
接著,參照第6圖,說明在寫入處理中發生入口位址(EA)「全衝突」時之例。如上述,本發明的半導體裝置10在入口位址衝突的記憶體空間逐漸登錄衝突資訊。然而,對於從一個關鍵資料(KD)產生的複數個分割資料的全部資料,也存在發生衝突的可能性。發生這種全衝突的可能性雖然極低,但理論上可能發生。於是,第6圖中顯示發生全衝突時的對策。
第6圖顯示發生全衝突時的寫入處理之例。在第6圖所示之例中,接著第4圖及第5圖所示的關鍵資料(KD),“00_01_02_03_04_05_06_07_08_09_0A_0B_0C_0D_0E_0F_10_FF”這個值的關鍵資料(KD)被輸入半導體裝置10。寫入部230首先對此關鍵資料(KD)分配具有“02”之值的入口位址(EA)。
此外,關鍵資料(KD)被輸入半導體裝置10,分割部220就將該關鍵資料(KD)分割為複數個分割資料。分割部220將144位元的關鍵資料(KD)以每8位元分割為18個分割資料。在第6圖所示之例中,關鍵資料 (KD)被分割為“00”“01”“02”“03”“04”“05”“06”“07”“08”“09”“0A”“0B”“0C”“0D”“0E”“0F”“10”“FF”這個18個分割資料。
其後,寫入部230將由分割部220產生的分割資料分配給分割記憶體110a~110m,逐漸寫入入口位址(EA)。如第6圖所示,首先,寫入部230將第一分割資料“00”分配給第一分割記憶體110a,參照第一分割資料“00”指定第一分割記憶體110a的記憶體位址(MA)“00”,對由此記憶體位址“00”特別指定的記憶體空間(D)進行存取,要寫入與第一分割資料“00”對應的入口位址(EA)“02”。然而,在由此記憶體位址“00”特別指定的記憶體空間(D)已經寫入有別的入口位址,發生了衝突。同樣地,寫入部230對於第二~第十八分割資料,也以此等分割資料為位址,對第二~第十八分割記憶體110b~110m的記憶體空間進行存取。然而,在第二~第十八分割記憶體110b~110m也發生了衝突。其結果,對於第一~第十八分割記憶體110a~110m的全部記憶體都發生了衝突。
如第6圖所示,發生這種全衝突時,寫入部230將發生全衝突的關鍵資料(KD)和固有的入口位址(EA)賦予對應,寫入備用記憶體300。如例如第3圖所示,備用記憶體300為可以關鍵資料(KD)與入口位址(EA)以一對一賦予對應而記憶的記憶體。備用記憶體300可由例如SRAM等眾所周知的記憶體構成。如此,寫入部230較佳是對於寫入檢索記憶體墊100就發生全衝突的關鍵資料(KD),為了回避此全衝突,不寫入檢索記憶體墊100而預先寫入備用記憶體300。如此,除了檢索記憶體墊100之外還預先設置備用記憶體300,發生全衝突的關鍵資料(KD)的寫入處理就變得簡易,並可有效 地進行發生全衝突的關鍵資料(KD)的檢索處理(讀取處理)。再者,如第6圖所示,寫入備用記憶體300的關鍵資料(KD)較佳是被分割部220分割前的狀態的資料。
如參照第4圖及第5圖而說明,若是通常,寫入部230進行下述處理:對檢索記憶體墊100的寫入處理後,將關鍵資料(KD)與入口位址(EA)賦予對應而寫入確認用記憶體400。然而,如第6圖所示,發生了全衝突的關鍵資料(KD)被寫入備用記憶體300。此情況,無需將寫入備用記憶體300的關鍵資料(KD)再寫入確認用記憶體400。如此,只在備用記憶體300與確認用記憶體400的任一個寫入關鍵資料(KD),當讀取該關鍵資料(KD)之際,只參照寫入有該關鍵資料(KD)的記憶體即可,所以可使檢索處理高速化。
此外,如第6圖所示,發生全衝突時,不將關鍵資料(KD)寫入確認用記憶體400,若是本來要寫入關鍵資料(KD)的記憶體空間則照樣被保持空白(blank)。例如,雖然在確認用記憶體400登錄有入口位址(EA)“02”,但由此入口位址(EA)“02”特別指定的記憶體空間卻成為空白(blank)的狀態。因此,對確認用記憶體400進行存取,若參照空白(blank)的記憶體空間,則與任一入口位址(EA)對應的關鍵資料(KD)都發生全衝突,可掌握是否記憶於備用記憶體300。即,若觀看確認用記憶體400,則可容易掌握與入口位址(EA)“02”對應的關鍵資料(KD)發生了全衝突。
接著,參照第2圖、第3圖及第7圖至第9圖,就半導體裝置10的基本讀取處理(檢索處理)進行說明。此處所謂讀取處理,係成為檢索對象的關鍵資料(KD)被輸入半導體裝置10時,該半導體裝置10檢索檢索記憶體墊100,讀取與成為檢索對象的關鍵資料(KD)對應 的入口位址(EA)的處理。再者,關於包含遮罩處理與編碼處理的讀取處理,將隨後說明,此處就除了遮罩處理與編碼處理以外的讀取處理進行說明。
如第2圖所示,在寫入處理中,首先,成為寫入對象的關鍵資料被輸入半導體裝置10。此處,如第2圖所示,寫入對象的關鍵資料也可以被直接輸入控制電路200的輸入部210。此外,成為寫入對象的關鍵資料也可以經由遮罩暫存器500與編碼電路600而被輸入控制電路200的輸入部210。關於遮罩暫存器500與編碼電路600的處理,詳情後述之。
如第2圖及第3圖所示,檢索對象的關鍵資料(KD)被輸入控制電路200的輸入部210,該輸入部210就將關鍵資料(KD)送到分割部220。接著,分割部220將檢索對象的關鍵資料(KD)分割為複數個分割資料。此處,分割部220分割檢索對象的關鍵資料(KD)時的條件(演算法)與分割上述寫入對象的關鍵資料(KD)時的條件(演算法)相同。由分割部220得到的複數個分割資料被送到讀取部240。
對於複數個分割資料的各資料,讀取部240以該分割資料為位址,對檢索記憶體墊100的各分割記憶體110a、110b…進行存取,讀取記憶於分割記憶體110a、110b…的入口位址(EA)。此處,讀取部240以分割資料為位址而對分割記憶體進行存取的方法(演算法)和上述寫入部230以分割資料為位址而對分割記憶體進行存取的方法相同。即,首先,讀取部240將複數個分割資料分別逐個分配給分割記憶體。即,第一分割資料分配給第一分割記憶體,第二分割資料分配給第二分割記憶體,同樣地,第k分割資料分配給第k分割記憶體。此處,各分割記憶體被給予有記憶體位址(MA),利用此 記憶體位址(MA)特別指定記憶體空間。讀取部240將分割資料分配給分割記憶體後,核對此分割資料與分割記憶體的記憶體位址(MA),指定與該分割資料一致的記憶體位址(MA)。例如,分割資料為“00”這個值時,讀取部240從分割記憶體之中指定具有“00”這個值的記憶體位址(MA)。此外,讀取部240對由與分割資料一致的記憶體位址(MA)特別指定的記憶體空間進行存取。然後,讀取部240逐漸讀取記憶於存取的記憶體空間的入口位址(EA)。如此,讀取部240以分割資料為位址,對由記憶體位址(MA)特別指定的記憶體空間進行存取,讀取記憶於存取的記憶體空間的入口位址(EA)。如此,讀取部240基本上是以和寫入部230相同的步驟對記憶體空間進行存取,讀取記憶於該處的入口位址(EA)。
其次,參照第7圖至第9圖,就讀取部240的讀取處理舉出具體例而進行說明。
首先,第7圖顯示基本的讀取處理之例。在第7圖所示之例中,“00_02_02_03_04_05_06_07_08_09_0A_0B_0C_0D_0E_0F_10_FF”這個值的關鍵資料(KD)被作為檢索對象而輸入半導體裝置10。檢索對象的關鍵資料(KD)被輸入半導體裝置10時,分割部220就將此關鍵資料(KD)分割為複數個分割資料。在第7圖所示之例中,分割部220將144位元的關鍵資料(KD)以每8位元分割為18個分割資料。因此,各分割資料成為8位元的值。在第7圖所示之例中,關鍵資料(KD)被分割為“00““02”“02”“03”“04”“05”“06”“07”“08”“09”“0A”“0B”“0C”“0D”“0E”“0F”“10”“FF”這個18個分割資料。
其後,讀取部240以由分割部220產生的分 割資料為位址而對分割記憶體110a~110m進行存取,逐漸讀取入口位址(EA)。如第7圖所示,首先,讀取部240將第一分割資料“00”分配給第一分割記憶體110a,參照第一分割資料“00”指定第一分割記憶體110a的記憶體位址(MA)“00”,對由此記憶體位址(MA)“00”特別指定的記憶體空間(D)進行存取。然而,在第一分割記憶體110a方面,在由記憶體位址(MA)“00”特別指定的記憶體空間(D)登錄有衝突資訊(可忽略值)。在這種情況,讀取部240不從第一分割記憶體110a讀取入口位址(EA),而作為無需顧慮而加以忽略(不考慮)處理。
其次,讀取部240將第二分割資料“02”分配給第二分割記憶體110b,參照第二分割資料“02”指定第二分割記憶體110b的記憶體位址(MA)“02”,對由此記憶體位址“02”特別指定的記憶體空間(D)進行存取。在此存取的記憶體空間(D)不登錄衝突資訊,而只記憶入口位址“01”。於是,讀取部240從此記憶體空間(D)讀取入口位址“01”。寫入部240對於第三~第十八分割資料也同樣地進行這種寫入處理。例如,讀取部240以第三分割資料“02”為位址,對第三分割記憶體110c的記憶體空間進行存取,但在此記憶體空間登錄有衝突資訊,所以作為無需顧慮而加以忽略處理。此外,讀取部240以第十八分割資料“FF”為位址,對第十八分割記憶體110m的記憶體空間進行存取時,就可以從此記憶體空間讀取入口位址“01”。
讀取部240對於從一個關鍵資料(KD)分割的複數個分割資料的各資料進行上述的讀取處理。此處,基於一個關鍵資料(KD)所讀取的入口位址(EA)的值一致時,讀取部240將該讀取的入口位址(EA)判斷為激活的位址。另一方面,基於一個關鍵資料(KD)所讀取的入口 位址(EA)的值有不一致時,讀取部240將該讀取的入口位址(EA)判斷為無效的位址。即,在關於一個關鍵資料(KD)的讀取處理方面,讀取部240以只讀取一種入口位址(EA)時為激活,以讀取兩種以上的入口位址(EA)時為無效。在第7圖所示之例中,分割檢索對象的關鍵資料(KD)而進行讀取處理的結果,除了被作為無需顧慮而加以忽略處理者以外,都從各分割記憶體讀取“01”這個共通值的入口位址(EA)。如此,所讀取的入口位址(EA)的值為相同的“01”,全部一致。因此,在第7圖之例中,讀取部240可將入口位址(EA)“01”判斷為激活的值。
此外,讀取部240讀取作為激活的值的入口位址(EA)時,該入口位址(EA)被送到確認部250(參照第2圖)。例如,在第7圖之例中,由於可將入口位址(EA)“01”判斷為激活的值,所以將此入口位址(EA)“01”送到確認部250。確認部250基於由讀取部240判斷為激活的入口位址(EA),對確認用記憶體400進行存取。如上述,在確認用記憶體400,對入口位址(EA)賦予對應而記憶有關鍵資料(KD)。此處,確認部250從確認用記憶體400讀取和入口位址(EA)賦予對應的關鍵資料(KD)。在第7圖所示之例中,從確認用記憶體400讀取對入口位址(EA)“01”賦予對應的“00_02_02_03_04_05_06_07_08_09_0A_0B_0C_0D_0E_0F_10_FF”這個值的關鍵資料(KD)。此處,確認部250比較從確認用記憶體400讀取的關鍵資料(KD)和輸入半導體裝置10的關鍵資料(KD)。然後,確認部250輸出該比較結果。就關於比較結果的資訊而言,係例如被作為比較對象的兩個關鍵資料(KD)為一致或不一致的資訊。在第7圖所示之例中,於確認部250(比較器)所比較的關 鍵資料(KD)為彼此相同的值。因此,確認部250可輸出關鍵資料(KD)一致的宗旨的資訊(一致資訊)。
如第2圖及第3圖所示,由讀取部240判斷為激活的入口位址(EA)與確認部250的確認資訊(一致或不一致的資訊)被送到輸出部260(參照第2圖)。輸出部260連接於外部電路。因此,經由輸出部260而將入口位址(EA)與確認資訊輸出到外部電路。如此,輸出部260作為半導體裝置10的輸出介面的功能。
其次,第8圖顯示由讀取部240讀取的入口位址(EA)的值為不一致時之例。在第8圖所示之例中,讀取部240以第二分割資料“01”為位址,對第二分割記憶體110b的記憶體空間進行存取的結果,可從此記憶體空間讀取入口位址“00”。另一方面,讀取部240以第十八分割資料“FF”為位址,對第十八分割記憶體110m的記憶體空間進行存取的結果,可從此記憶體空間讀取入口位址“01”。然而,在讀取部240從第二分割記憶體110b讀取的入口位址“00”與從第十八分割記憶體110m讀取的入口位址“01”的值之間,發生了不一致。因此,讀取部240無法單一地特別指定與所輸入的關鍵資料(KD)對應的入口位址(EA)。如此,讀取的入口位址(EA)發生了不一致時,可判斷為在檢索記憶體墊100未寫入與所輸入的關鍵資料(KD)對應的入口位址(EA)。因此,讀取部240將此等讀取的入口位址(EA)判斷為無效。
另一方面,如參照第6圖所說明,在本發明的半導體裝置10中,於關鍵資料(KD)的寫入處理時,在發生了入口位址(EA)的全衝突時,不寫入檢索記憶體墊100,而要將關鍵資料(KD)寫入備用記憶體300。因此,如第8圖所示,即使是由讀取部240讀取的入口位址(EA) 發生了不一致,可判斷為入口位址(EA)未被寫入檢索記憶體墊100時,也有關鍵資料(KD)被記憶於備用記憶體300的可能性。於是,如第8圖所示,讀取部240基於作為檢索對象所輸入的關鍵資料(KD),檢索記憶於備用記憶體300的資訊。如上述,關鍵資料(KD)與入口位址(EA)被賦予對應而記憶於備用記憶體300。因此,讀取部240在檢索備用記憶體300內後,發現與檢索對象的關鍵資料(KD)相同的關鍵資料(KD)時,將對該關鍵資料(KD)賦予對應的入口位址(EA)讀取而輸出。另一方面,讀取部240在檢索備用記憶體300內,也無法發現與檢索對象的關鍵資料(KD)相同的關鍵資料(KD)時,輸出例如“無檢索資訊(無一致資訊)”的資訊,結束檢索處理。在第8圖所示之例中,基於檢索對象的關鍵資料(KD)而檢索備用記憶體300的結果,由於記憶有一致的關鍵資料(KD),所以輸出與此對應的入口位址(EA)“02”。
接著,第9圖為顯示讀取部240的讀取處理全部被作為無需顧慮而加以忽略處理時之例子。如第9圖所示,作為檢索對象的關鍵資料(KD)被輸入半導體裝置10時,分割部220就將此關鍵資料(KD)分割為複數個分割資料。此外,讀取部240以各分割資料為位址,對各分割記憶體110a…110m進行存取,要從各分割記憶體的記憶體空間讀取入口位址(EA)。然而,在第9圖所示之例中,在所有讀取部240存取的記憶體空間登錄有衝突資訊。因此,讀取部240對於所有的分割資料,作為無需顧慮而加以忽略處理。其結果,讀取部240完全無法從檢索記憶體墊100讀取入口位址(EA),不能得到檢索結果。
在這種情況,也考慮進行下述處理(所謂的匯總處理):例如以衝突的複數個入口位址(EA)為候補,從 該等複數個候補之中逐個核對是否與檢索對象的關鍵資料對應。然而,發生這種匯總處理時,就要想到有招致資料檢索處理延遲或資料檢索精度降低之類的問題。
因此,在本發明的半導體裝置10中,如參照第6圖所說明,在發生入口位址(EA)全衝突時,要使關鍵資料(KD)退避而寫入備用記憶體300。因此,如第9圖所示,在衝突資訊已被登錄於所有存取的記憶體空間時,讀取部240進行檢索備用記憶體300的處理。即,在因全衝突而無法檢索入口位址(EA)時,讀取部240基於作為檢索對象所輸入的關鍵資料(KD),檢索記憶於備用記憶體300的資訊。讀取部240在檢索備用記憶體300內,發現與檢索對象的關鍵資料(KD)相同的關鍵資料(KD)時,將對該關鍵資料(KD)賦予對應的入口位址(EA)讀取而輸出。另一方面,讀取部240在檢索備用記憶體300內,也無法發現與檢索對象的關鍵資料(KD)相同的關鍵資料(KD)時,輸出例如“無檢索資訊(無一致資訊)”的資訊,結束檢索處理。在第9圖所示之例中,基於檢索對象的關鍵資料(KD)而檢索備用記憶體300的結果,由於記憶有一致的關鍵資料(KD),所以輸出與此對應的入口位址(EA)“02”。
如此,本發明的半導體裝置具備備用記憶體300作為全衝突對策。本發明的半導體裝置藉由預先設置備用記憶體300,可使發生全衝突的關鍵資料與其入口位址預先回避並記憶。雖然用在讀取發生全衝突的關鍵資料的處理非常繁雜,但藉由預先記憶於備用記憶體300,卻可迅速且有效地進行讀取處理(檢索處理)。
其次,參照第1圖至第3圖及第10圖至第13圖,對在半導體裝置上為了執行通配功能的遮罩處理進行說明。
如第1圖所示,利用複數個半導體裝置10構築資訊處理系統1。資訊處理系統1具備遮罩控制器20、複數個半導體裝置10以及優先處理器30。此外,複數個半導體裝置10分別具備遮罩暫存器500。
遮罩控制器20連接於各半導體裝置10的遮罩暫存器500。例如,可將由複數個關鍵資料(KD)構成的表資料輸入半導體裝置10。藉由輸入表資料,可對半導體裝置10一次全部地寫入複數個關鍵資料(KD)。在這種情況,遮罩控制器20具有下述功能:解析由複數個關鍵資料(KD)構成的表資料,從該表資料擷取複數個遮罩圖案,將各遮罩圖案登錄於半導體裝置10的遮罩暫存器500。此外,遮罩暫存器500具有下述功能:按照所登錄的遮罩圖案,對成為寫入對象/檢索對象的關鍵資料(KD)給予遮罩。此外,優先處理器30連接於各半導體裝置10的控制電路200的輸出端。優先處理器30輸入從各控制電路200輸出的入口位址(EA)。優先處理器30具有下述功能:在同時從複數個控制電路200輸入入口位址(EA)時,決定各入口位址(EA)的優先度(priority),按優先度高的順序選擇一個或複數個入口位址(EA)予以輸出。
首先,就將遮罩圖案登錄於半導體裝置10的遮罩暫存器500的初期登錄處理進行說明。
第10圖中顯示可輸入包含半導體裝置10的資訊處理系統1的表資料的一例。例如,本發明的資訊處理系統1可用作構成網際網路交換器或路由器的CAM。如第10圖所示,表資料係由例如要寫入交換路由器用的CAM的複數個關鍵資料(KD)所構成。例如,各關鍵資料(KD)包含關於「Src-IP」(傳輸源的IP位址)、「Dst-IP」(傳輸目的地的IP位址)、「Protocol」(通信所使用 的通信協定)、「Src-Port」(傳輸源終端機的埠號)及「Dst-Port」(傳輸目的地終端機的埠號)等的資訊。此外,在第10圖中,「*」表示未被特別指定的資訊(遮罩部位)。此外,「Src-IP」表示依據IPv4的32位元的IP位址,「/24」或「/28」這個記載表示高階24位元(或28位元)成為網路位址,低階8位元(或4位元)成為主機位址。在交換路由器用的CAM方面,一般都將成為IP位址中的主機位址的低階位元作為可忽略(無需顧慮而加以忽略)而被檢索。因此,在例如「/28」這個IP位址方面,一般是將低階4位元作為遮罩處理。
如第10圖所示,構成表資料的複數個關鍵資料(KD)在不同的部分有遮罩部位。然而,各關鍵資料(KD)的遮罩部位並不是在所有的資料都不同,也存在具有共通的遮罩部位的關鍵資料(KD)。例如,在第10圖所示之例中,表資料雖然由8個關鍵資料(KD)所構成,但利用遮罩部位的共通性進行分組,就可分類成5組。屬於同組的關鍵資料(KD)就具有共通的遮罩部位。
於是,將這種表資料輸入遮罩控制器20時,遮罩控制器20就解析表資料,自動產生遮罩圖案,而登錄於各半導體裝置10的遮罩暫存器500。即,如第10圖所示,遮罩控制器20具備表資料輸入部21、遮罩圖案產生部22及遮罩圖案登錄部23。此等元件為遮罩控制器20的功能塊。
要寫入半導體裝置10的所希望的表資料被輸入表資料輸入部21。表資料輸入部21作為輸入介面的功能。表資料輸入部21將所輸入的表資料送到遮罩圖案產生部22。
遮罩圖案產生部22解析被輸入的表資料所含的關鍵資料(KD)的遮罩部位,基於此遮罩部位的型樣 產生一個或複數個遮罩圖案。首先,遮罩圖案產生部22從表資料所含的複數個關鍵資料(KD)中擷取在共通的部分所具有的遮罩部位的關鍵資料(KD)。如此,遮罩圖案產生部22基於遮罩部位的共通性將關鍵資料(KD)分類成複數個組。即,屬於同組的關鍵資料(KD)具有共通的遮罩部位。其後,基於各組的遮罩部位的共通性產生遮罩圖案。例如,在第10圖所示之例中,遮罩圖案表示成“FFFFFFF000000000FFFFFF0000”。“F”為十六進記法的0~F的任意數值存在的部位(非遮罩部位),“0”表示在檢索中被可忽略的部位(遮罩部位)。如此一來,遮罩圖案產生部22對於關鍵資料(KD)所屬的各組產生遮罩圖案。在第10圖所示之例中,產生了遮罩圖案1~5的5個遮罩圖案。
遮罩圖案登錄部23將由遮罩圖案產生部22產生的複數個遮罩圖案分別分開登錄於不同的半導體裝置10的遮罩暫存器500。例如,由遮罩圖案產生部22產生5個遮罩圖案時,遮罩圖案登錄部23將5個遮罩圖案分別登錄於不同的遮罩暫存器500。例如,如第10圖所示,準備5個遮罩暫存器500。在第一遮罩暫存器500登錄型樣1的遮罩圖案,在第二遮罩暫存器500登錄型樣2的遮罩圖案,第三~第五遮罩暫存器500也被同樣處理。如此,可在複數個遮罩暫存器500分別登錄不同的遮罩圖案。藉此,對複數個半導體裝置10的遮罩暫存器500的遮罩圖案完成初期登錄處理。
接著,就利用具有遮罩圖案登錄完的遮罩暫存器500的半導體裝置10寫入入口位址(EA)的處理及檢索入口位址(EA)的處理進行說明。
第12圖顯示利用遮罩暫存器500的寫入處理的一例。第12圖雖然顯示一個半導體裝置10的寫入處 理,但對於資訊處理系統1所含的其他的半導體裝置10也進行同樣的寫入處理(參照第11圖)。在第12圖所示之例中,“00_01_02_03_04_05_06_07_08_09_0A_0B_0C_0D_0E_0F_10_11”這個值的關鍵資料(KD)被作為寫入對象而寫入半導體裝置10。寫入部230對此關鍵資料(KD)分配具有“00”的值的入口位址(EA)。
如第12圖所示,寫入對象的關鍵資料(KD)被輸入登錄有預定的遮罩圖案的遮罩暫存器500。例如,在第12圖所示之例中,在遮罩暫存器500登錄有“FF_FF_FF_FF_00_00_00_00_FF_FF_FF_FF_F0_FF_FF_FF_FF_F0”這個遮罩圖案。遮罩暫存器500按照此遮罩圖案,對寫入對象的關鍵資料(KD)給予遮罩。例如,“F”為十六進記法的0~F的任意數值存在的部位(非遮罩部位)。因此,對於“F”的部位,遮罩暫存器500不變換關鍵資料(KD)的值。另一方面,“0”為在檢索中被可忽略的部位(遮罩部位)。因此,對於“0”的部位,遮罩暫存器500將關鍵資料(KD)的值全部變換為“0”。因此,利用遮罩暫存器500,寫入對象的關鍵資料(KD)的值從“00_01_02_03_04_05_06_07_08_09_0A_0B_0C_0D_0E_0F_10_11”變換為“00_01_02_03_00_00_00_00_08_09_0A_0B_00_0D_0E_0F_10_10”。藉此,就會對寫入處理的關鍵資料(KD)給予遮罩。
其後,如同一般一樣,對於給予遮罩後的關鍵資料(KD),寫入部230對構成檢索記憶體墊100的複數個分割記憶體110a、110b…進行入口位址(EA)的寫入處理。寫入處理和參照第4圖所說明者相同,所以詳細 的說明省略。如此,例如將寫入對象的關鍵資料(KD)輸入遮罩暫存器500,利用遮罩暫存器500將預定的遮罩部位的值全部變換為“0”。然後,對於寫入對象的關鍵資料(KD),將在檢索中被可忽略的部位(遮罩部位)全部變換為“0”這個值後,進行對檢索記憶體墊100的寫入處理。藉此,通過相同遮罩暫存器500的關鍵資料(KD)的相同部位全部成為“0”這個值。因此,寫入給予有遮罩的關鍵資料(KD)時,就必定會在與遮罩部位對應的記憶體空間登錄衝突資訊,在其讀取處理中被作為無需顧慮而加以忽略(可忽略檢索)處理。因此,可實現對於遮罩部位不作為檢索對象之所謂的通配檢索功能。
再者,在第12圖所示之例中,遮罩暫存器500將關鍵資料(KD)的遮罩部位全部變換為“0”這個值。然而,遮罩部位的值的變換值不限於“0”。即使是“0”以外的值,以在寫入處理時發生衝突的方式將關鍵資料(KD)的遮罩部位變換為共通的值也可以。
此外,如第12圖所示,寫入部230將給予遮罩後的關鍵資料(KD)和入口位址(EA)賦予對應,寫入確認用記憶體400。即,此處不是給予遮罩前的關鍵資料(KD),而是給予遮罩後的關鍵資料(KD)的值被寫入確認用記憶體400。
接著,第13圖顯示利用遮罩暫存器500的讀取處理(檢索處理)的一例。第13圖雖然顯示一個半導體裝置10的讀取處理,但對於資訊處理系統1所含的其他的半導體裝置10也進行同樣的讀取處理(參照第11圖)。在第13圖所示之例中,“00_01_02_03_DE_AD_BE_EF_08_09_0A_0B_01_0D_0E_0F_10_1F”這個值的關鍵資料(KD)作為檢索對象而輸入半導體裝置10。其後,檢索對象的關鍵資料(KD)被 輸入登錄有預定的遮罩圖案的遮罩暫存器500。例如,在第12圖所示之例中,在遮罩暫存器500登錄有“FF_FF_FF_FF_00_00_00_00_FF_FF_FF_FF_F0_FF_FF_FF_FF_F0”這個遮罩圖案。遮罩暫存器500按照此遮罩圖案,對檢索對象的關鍵資料(KD)給予遮罩。例如,遮罩暫存器500對於“F”的部位,不變換關鍵資料(KD)的值,對於“0”的部位,將關鍵資料(KD)的值全部變換為“0”。因此,利用遮罩暫存器500,檢索對象的關鍵資料(KD)的值從“00_01_02_03_DE_AD_BE_EF_08_09_0A_0B_01_0D_0E_0F_10_1F”變換為“00_01_02_03_00_00_00_00_08_09_0A_0B_00_0D_0E_0F_10_10”。藉此,就會給予檢索處理的關鍵資料(KD)遮罩。
其後,如同一般一樣,對於給予遮罩後的關鍵資料(KD),讀取部240對構成檢索記憶體墊100的複數個分割記憶體110a、110b…進行存取,進行入口位址(EA)的讀取處理。讀取處理(檢索處理)和參照第7圖所說明者相同,所以詳細的說明省略。如此,例如將檢索對象的關鍵資料(KD)輸入遮罩暫存器500,利用遮罩暫存器500將預定的遮罩部位的值全部變換為“0”。然後,對於檢索對象的關鍵資料(KD),將在檢索中被可忽略的部位(遮罩部位)全部變換為“0”這個值後,進行對檢索記憶體墊100的檢索處理。藉此,對於遮罩部位,可以不考慮作為檢索條件而進行檢索處理。例如,第12圖所示的寫入對象的關鍵資料(KD)(給予遮罩前)與第13圖所示的檢索對象的關鍵資料(KD)(給予遮罩前)的值不同。然而,第12圖所示的給予遮罩後的關鍵資料(KD)(給予遮罩前)與第13圖所示的給予遮罩後的關鍵資料 (KD)(給予遮罩前)的值卻相同。因此,藉由將給予有遮罩的部分可忽略而作為檢索條件,基於第13圖所示的給予遮罩後的關鍵資料(KD)而檢索檢索記憶體墊100,則可讀取與第12圖所示的寫入對象的關鍵資料(KD)對應的入口位址(EA)。因此,可實現對於遮罩部位不作為檢索對象的所謂的通配檢索功能。
其後,如第13圖所示,確認部250基於讀取部240讀取的入口位址(EA)參照確認用記憶體400,從確認用記憶體400讀取對入口位址(EA)賦予對應而記憶的關鍵資料(KD)。然後,確認部250比較從確認用記憶體400讀取的關鍵資料(KD)與給予遮罩後的檢索對象的關鍵資料(KD),輸出是否一致的資訊。如上述,在寫入處理(參照第12圖)中,在確認用記憶體400記憶有給予遮罩後的寫入對象的關鍵資料(KD)。因此,藉由比較給予遮罩後的各關鍵資料,確認部250可確認是否正確進行了檢索處理。在第13圖所示之例中,從確認部250(比較器)輸出一致資訊。
以第12圖及第13圖說明的寫入處理/讀取處理,係在複數個半導體裝置10中被同時進行。即,如第11圖所示,在資訊處理系統1中,相同的寫入對象或檢索對象的關鍵資料(KD)被同時對複數個半導體裝置10輸入。複數個半導體裝置10分別具有登錄有不同的遮罩圖案的遮罩暫存器500。將檢索對象的關鍵資料(KD)輸入複數個半導體裝置10時,從各半導體裝置10得到的檢索結果(入口位址及確認資訊)就不同。例如,有只從一個半導體裝置10輸出檢索結果時,也有從複數個半導體裝置10輸出檢索結果時。來自複數個半導體裝置10的檢索結果被全部輸入優先處理器30。
如第11圖所示,在從複數個半導體裝置10 輸入檢索結果時,優先處理器30比較該複數個檢索結果的優先度,選擇輸出一個或複數個檢索結果。例如,在第11圖所示之例中,來自第二半導體裝置10與第四半導體裝置10的檢索結果被輸入優先處理器30。此情況,例如優先處理器30將來自第二半導體裝置10的檢索結果優先輸出外部,廢棄來自第四半導體裝置10的檢索結果。因此,可以說讓第二半導體裝置10的檢索結果優先。如此,優先處理器30對複數個半導體裝置10中用來區分檢索結果分優劣的演算法加以程式化,按照此演算法決定是否可輸出檢索結果。優劣用的演算法可以任意設定。
如此,進行通配檢索時,也要設想從複數個半導體裝置10得到不同的檢索結果的事態。在此情況,藉由對半導體裝置10的輸出目的地預先設定優先處理器30,可例如只選擇一個檢索結果,廢棄剩餘的檢索結果。藉此,可將從資訊處理系統1輸出的檢索結果(入口位址)只集中於一個,可防止在接收該結果的外部電路發生錯誤動作或混亂。
再者,雖然詳細的圖示省略,但當對寫入對象的關鍵資料(KD)給予遮罩而寫入檢索記憶體墊100之際,也有發生「全衝突」(參照第6圖)的可能性。此情況,如第3圖所示,給予遮罩後的關鍵資料(KD)和入口位址(EA)賦予對應而被寫入備用記憶體300。此外,當對檢索對象的關鍵資料(KD)給予遮罩而進行檢索處理之際,也有從檢索記憶體墊100讀取的入口位址(EA)發生「不一致」(參照第8圖)或發生「全衝突」(參照第9圖)的可能性。此情況,如第3圖所示,基於給予遮罩後的關鍵資料(KD)檢索備用記憶體300。藉此,可併用遮罩處理與利用備用記憶體300的全衝突對策處理。
其次,參照第1圖至第3圖、第14圖及第15圖,就關鍵資料(KD)的編碼處理進行說明。
如上述,在入口位址(EA)的寫入處理中發生了衝突時,本發明的半導體裝置10要在記憶體空間登錄衝突資訊。此處,若寫入對象的關鍵資料(KD)有偏差,則資料的衝突頻率變高,會發生不能檢索的資料行變多的問題。例如,如以遞降次序連續地寫入ID號碼或IP位址時,若幾乎相同的資料被連續寫入相同的檢索記憶體墊100,就會發生資料的偏差。因此,在檢索記憶體墊100內,發生入口位址衝突的機率變高。例如,若思考接著“00_01_02_03”這個關鍵資料(KD)輸入“00_01_02_04”這個關鍵資料(KD),則兩個關鍵資料(KD)的值只有最後的1位元不同。因此,當進行後者的關鍵資料(KD)的寫入處理之際,對於大部分的值都必需登錄衝突資訊。這種資料的偏差最好要預防。
於是,本發明的半導體裝置10具備將關鍵資料(KD)編碼用的編碼電路600(參照第1圖至第3圖等)。如第1圖至第3圖所示,在寫入對象/檢索對象的關鍵資料(KD)被輸入半導體裝置10時的控制電路200之前,利用編碼電路600將關鍵資料(KD)進行編碼。此處所謂的編碼中包含以預定的演算法使關鍵資料的值擴散(分散)或重新排列關鍵資料的值的順序之類的處理。如此,即使是連續輸入幾乎相同的關鍵資料時,藉由將此等關鍵資料進行編碼,也可以解除寫入檢索記憶體墊100的資料的偏差。若資料的偏差解除,則可使在檢索記憶體墊100內發生衝突的可能性降低。其結果,可正確進行資料檢索的可能性提高。再者,編碼電路600對於寫入對象的關鍵資料(KD)及對於檢索對象的關鍵資料(KD),都以完全相同的演算法進行編碼。藉此,可使寫入對象 的關鍵資料(KD)與檢索對象的關鍵資料(KD)整合。
第14圖示意地顯示由編碼電路600執行的編碼處理的一例。如第14圖所示,編碼電路600將寫入對象/檢索對象的關鍵資料(144位元)分割為複數個分割資料(1~18)。此時的分割處理和上述的分割部220的處理相同地進行即可。其後,編碼電路600重新排列複數個分割資料(1~18)的位置。此時的重新排列處理基於一定的演算法進行。其後,編碼電路600使重新排列過的複數個分割資料的值擴散(分散)。分割資料的值的擴散處理可基於眾所周知的編碼演算法(加密演算法)進行。例如,進行擴散處理,最初所輸入的關鍵資料(KD)較佳在維持位元數量的狀態下被變換為不同的值。在第14圖所示之例中,最初的關鍵資料(KD)與擴散處理後的資料(擴散化資料)被設定為都是144位元的資料。
如上述,藉由例如重新排列處理與擴散處理的組合,編碼電路600可將關鍵資料(KD)進行編碼。經編碼過的關鍵資料(擴散化資料)被輸入上述的控制電路200(參照第1圖至第3圖)。其後,如第14圖所示,如同一般一樣,控制電路200分割擴散化資料,產生複數個分割資料,以各分割資料為位址,對構成檢索記憶體墊100的分割記憶體進行存取。然後,控制電路200進行對存取的分割記憶體寫入入口位址(EA)的處理或從存取的分割記憶體讀取入口位址(EA)的處理。
第15圖示意地顯示由編碼電路600執行的編碼處理的他例。如第15圖所示,編碼電路600複製寫入對象/檢索對象的關鍵資料(144位元)。例如,如第15圖所示,在分割記憶體存在18個時,編碼電路600配合此分割記憶體的數量,複製18個關鍵資料(KD)。經複製過的複數個關鍵資料(KD)具有相同的值。其後,編碼電 路600對具有相同的值的複數個關鍵資料(KD),分別進行基於不同的擴散演算法的擴散處理。例如,關鍵資料(KD)被複製為18個,所以擴散演算法也被準備18種。藉此,可得到具有不同的值的擴散化資料。如此,編碼電路600可以從一個關鍵資料(KD)產生複數個(與分割記憶體對應的數量)擴散化資料。
如上述,藉由例如複製處理與擴散處理的組合,編碼電路600可將關鍵資料(KD)進行編碼。複數個擴散化資料被輸入上述的控制電路200(參照第1圖至第3圖)。其後,如第15圖所示,控制電路200分別分割複數個擴散化資料,從各擴散化資料產生複數個分割資料。此外,控制電路200以各分割資料為位址,對構成檢索記憶體墊100的分割記憶體進行存取。然後,控制電路200進行對存取的分割記憶體寫入入口位址(EA)的處理或從存取的分割記憶體讀取入口位址(EA)的處理。
如此,設置編碼電路600,藉由將關鍵資料(KD)進行編碼,可解除寫入檢索記憶體墊100的資料的偏差。若資料的偏差解除,則可使在檢索記憶體墊100內發生衝突的可能性降低。其結果,可正確進行資料檢索的可能性提高。
再者,如第1圖至第3圖所示,併用遮罩處理與編碼處理時,較佳在遮罩暫存器500的後段設置編碼電路600。即,編碼電路600將利用遮罩暫存器500給予遮罩的關鍵資料(KD)進行編碼。此外,當然也可以如第1圖至第3圖所示,併用備用記憶體300、遮罩暫存器500及編碼電路600。
接著,參照第16圖至第24圖,就實現通配檢索功能用的方式的他例進行說明。
第16圖(a)示意地顯示通配檢索功能的方案 例。第16圖(a)所示的方案例1與參照第1圖至第15圖說明的方式相同。第16圖(b)示意地顯示和方案例1不同的方案例2。以下,參照第17圖至第24圖,就此第16圖(b)所示的方案例2進行說明。
第17圖(a)顯示寫入檢索記憶體的關鍵資料的構造之例。茲就輸入例如TCAM(半導體裝置)的關鍵資料的構造具有如第17圖(a)的構造時進行思考。如第17圖(a)所示,關鍵資料的構造構成如下:
‧輸入關鍵資料長度:32位元
‧輸入關鍵資料中成為W/C(通配:無需顧慮而加以忽略位元)的部分:低階4位元(/28)或8位元(/24)
‧入口數量:4k
將W/C部分限定於/24或/28而思考時(不包含/32),至少低階的4位元不在檢索對象之內,所以僅高階28位元成為檢索的對象。此處,將不受W/C影響的部分定義為「固定部分」,將有成為W/C的可能性的部分定義為「W/C部分」。若按照此定義,則「W/C部分」成為4位元,「固定部分」成為24位元。在此例中,入口數量為4k,所以構成檢索記憶體的各分割記憶體的字元長度(旗標除外)成為12位元。即,若將「固定部分」(24位元)分配給分割記憶體(12位元),則成為分割記憶體2個部分。從衝突理論思考,分割記憶體的數量2個為過少,所以會發生衝突經常發生的問題。要解決此問題,必需擴充固定部分的關鍵資料。因此,必需如第17圖(b)所示般地擴充固定部分的關鍵資料,以相當於分割記憶體6個部分的方式擴充到至少6個(72位元)程度。
第17圖(b)顯示擴充了固定部分的關鍵資料之例。在第17圖(b)中,經擴充過的固定部分(72位元) 以(1)~(6)表示。此外,W/C部分(/28與/24的差異資料+遮罩資訊)以(7)表示。即,除了遮罩部分以外的/24及/28的資料如下:
‧/24的關鍵資料僅為固定部分的24位元(W/C部分被遮罩)
‧/28的關鍵資料為固定部分的24位元+4位元(W/C部分)
此外,遮罩資料為指定/24或/28的部分。將以(7)所示的W/C部分的遮罩狀態利用遮罩資料指定如下:
‧/24:11(2位元)
‧/28:01(2位元)
‧無登錄:00(2位元)
再者,「無登錄:00」係防止僅/28的登錄時弄錯,判斷為/24所必需。
第18圖(a)顯示/24及/28對應的TCAM的構造例。實現TCAM所需的記憶體構造如第18圖(a)所示,可將關鍵資料收容於4k×144位元的方塊。遮罩資訊可辨別是否遮罩其前面的4位元,並可辨別在其前面的4位元登錄有遮罩的資料即可。因此,遮罩資訊有2位元就足夠。
此外,第18圖(b)顯示/16及/18對應的TCAM(20位元)的構造例。此處,要說明第18圖(a)所示的/24及/28(位元長度32位元)對應TCAM的基本動作,規模會過大,所以基本的想法不變,而使用縮小規模的/16及/18(位元長度20位元)對應的TCAM,就基本動作與該TCAM的構成方法進行說明。再者,將除旗標外的資料位元從24位元擴散為72位元的操作以外,在/24及/28對應的TCAM與/16及/18對應的 TCAM方面都可採用相同的操作。
第19圖(a)顯示登錄於/16及/18對應的TCAM(20位元)所具備的確認用記憶體之例。確認用記憶體為檢索資料的最後檢查用的記憶體。基本上,確認用記憶體為登錄W/C的規格和W/C處理後的資料的場所。在確認用記憶體方面,分為與W/C的處理無關的部分和與W/C的處理有關的部分。此處,將與W/C的處理無關的部分稱為「固定部分」。此外,將與W/C的處理有關的部分稱為「遮罩部分」。如第19圖(a)所示,/16及/18時,(1)~(5)成為固定部分,(5)及(6)成為遮罩部分。在/16時,(1)~(4)成為不被W/C處理的固定部分,在/18時,(1)~(5)成為不被W/C處理的固定部分。是否將(5)包含於固定部分,取決於(6)的遮罩資料(定義是否遮罩(5)的資訊)。關於/16及/18對應TCAM,雖然位元長度為20位元,但為/16或/18的任一情況,低階2位元的資料都會被遮罩。因此,關於檢索的位元成為從高階起16位元或從高階起18位元。再者,關於(1)~(4)的固定資料部分,在此例中,雖然是不需要利用擴散擴充位元數量時,但即使是必需擴充位元數量時,也就將擴充位元數量前的資料登錄於確認用記憶體。
此處,就登錄於/16及/18對應TCAM具備的檢索記憶體墊的方法進行說明。固定資料部分的位元數量少時,從防止衝突這點,按照需要,必需利用擴散來操作位元擴充。即,例如對於入口數量為4k,固定資料部分的位元數量為24位元時,若要不進行位元擴充而登錄於分割記憶體,則分割記憶體的數量為兩個,即使隨機登錄資料,也會以1/14.3的機率發生衝突,衝突成為使用上的重大問題。因此,要解決此問題,為了 謀求大幅減低登錄資料的隨機化和分割記憶體數量的增大所致衝突機率,必須利用擴散操作擴充位元數量。再者,在/16及/18對應TCAM方面,由於不需要利用擴散擴充位元,所以原則上是將(1)~(4)的資料照樣登錄於檢索記憶體墊。然而,由於在遮罩部分包含W/C,所以(1)~(4)未必就成為唯一的。即,也可以考慮在(1)~(4)部分連續地登錄相同的資料的可能性。如此,若在(1)~(4)部分存在複數個相同的資料時,在(1)~(4)就會發生全行衝突,也會發生無法以一個循環進行檢索的問題。
因此,需要防止這種全行衝突用的對策。於是,在說明的方案例中,為了防止此W/C的全行衝突,導入下述示意:僅最初的資料登錄於檢索記憶體墊,第二次以後的資料不登錄於檢索記憶體墊。此處,將這種示意稱為「組登錄」。進行「組登錄」時,需要代表組的號碼。此處,將代表此組的號碼稱為「代表號碼」。再者,對於此代表號碼,要使用登錄的最初的關鍵資料的入口位址。如此一來,以(1)~(4)的相同資料為一個組,就可以利用代表號碼區別該組。
第19圖(b)為說明組登錄的限制事項用的圖。(1)~(4)的同一個組有登錄上的限制。首先,作為基本的限制事項,CAM有無法登錄相同資料的限制。依據此限制,(1)~(4)為相同資料時,在本例中,若(5)或(6)之任一者沒有不同,則無法登錄。由此限制思考可登錄的範圍,可以說是以下:
‧遮罩1與遮罩3可混在一起。
‧然而,遮罩1係僅(5)為0時,遮罩3係(5)為可登錄0~3。
‧遮罩1與遮罩3混在一起時,遮罩1的登錄入口號碼必須小。
‧(遮罩1與遮罩3混在一起時的代表號碼必定成為遮罩1的號碼)
由此限制事項,屬於同組的登錄資料的數量若也包含遮罩1,則最大可以說是5個。然而,由於遮罩3被優先檢索,所以登錄於遮罩3的(5)的資料即使已有遮罩1的登錄,也不會被作為遮罩1檢索。
其他,藉由導入「組登錄」,在檢索資料中產生不登錄的區域,所以有隨著組登錄的數量增加而衝突機率降低的優點。此外,「組登錄」由於進行登錄時的基本限制事項的確認,所以也有不產生在登錄前必需讀取病進行確認用的特別限制事項的優點。再者,要確認基本的限制事項,僅確認固定資料部分的檢索記憶體即可,並無需到要用記憶體做最後確認。
接著,就遮罩資料部分的登錄進行說明。第20圖(a)顯示遮罩資料部分的構成例。如第20圖所示,遮罩資料部分為進行相當於確認用記憶體的(5)與(6)的部分的登錄處理的部分。如/16及/18對應TCAM(20位元)之例所示,遮罩資料部分係由確認代表號碼變換記憶體及碼檢索記憶體(16w×2位元SRAM)的兩個記憶體所構成。
茲就代表號碼變換記憶體與碼變換記憶體進行說明。首先,(5)的位元數量為4位元,但因W/C存在,所以在/16(遮罩1)方面,(5)全位元不在檢索對象之內,在/18(遮罩3)方面,最低階起2位元不在檢索對象之內。於是,將除兩者共通的最低階起的2位元之外的剩餘的2位元的部分作為(5)的資料。若如此思考,則(5)的登錄資料在/16方面成為遮罩處理後的資料即0,在/18方面成為除最低階起的2位元以外的高階2位元的資料即0~3。有W/C時,因(5)的不同,發生(1)~(4) 的全行衝突。要避開此全行衝突,有導入「組登錄」的必要。此外,為了避開組間的衝突,要在0~15的入口內配合/18的0~3的登錄範圍,確保登錄區域,分配給各組。進行此區域分配用的記憶體為「代表號碼變換記憶體」,在各區域內登錄(5)的值的記憶體為「碼變換記憶體」。
第20圖(b)顯示代表號碼變換記憶體的登錄方法之例。如第20圖(b)所示,用4去除有16個的入口,就可確保可登錄4個0~3的區域。若將可登錄此0~3的4個區域的0的入口位址作為遮罩3的代表號碼的移位號碼,則入口位址的0、4、8、12成為代表可登錄0~3的區域的移位號碼。藉由導入此移位號碼,可簡單決定在哪個區域登錄0~3。例如,如第20圖(b)所示,在代表號碼1登錄移位號碼4,以移位號碼4指定為在檢索記憶體的入口位址4~7登錄0~3的區域。如此,代表號碼變換記憶體的作用就是進行登錄0~3的區域的分配。
第21圖(a)顯示碼檢索記憶體的登錄方法之例。第21圖(a)之圖顯示碼3的(5)為0~3的任一值。如在前述之例(參照第20圖(b))所示,若代表號碼變換記憶體的代表號碼以1指定移位號碼4,則如第21圖(a)所示,(5)的0~3被分配給入口位址4~7。例如,(5)為0,若此資料的入口位址為5,則如第21圖(a)的切出部分所示,在4字記憶體的0位址登錄入口位址5。同樣地,(5)為1、2,若此等資料的位址分別為4、12,則在1位址登錄入口位址4,在2位址登錄入口號碼12。如此,若以切出部分來看,則和登錄於分割記憶體的基本手法完全相同。然而,此切出部分的入口數量為0~15的一部分。因此,在入口數量為0~15之中需要適用此切出部 分。就將移位號碼用於此適用操作。在此例中,由於將切出部分適用於入口位址的4~7,所以將移位號碼的4加到(5)的值上。藉由進行這種操作,可進行對碼檢索記憶體的資料登錄。
接著,就使用這種方案例的TCAM的檢索動作進行說明。第21圖(b)顯示檢索動作的動作1。動作1為「檢索資料的前處理」。即,在檢索資料的前處理方面,將所輸入的20位元的檢索資料進行18位元化,並且進行(1)~(5)的分配。檢索時所輸入的檢索資料為20位元。此輸入資料中含有W/C,成為檢索對象的資料為/16或/18。因此,20位元的輸入資料之中成為檢索對象的資料為18位元或16位元,最低階起2位元的資料成為與檢索無關的資料。此CAM的入口為16字。因此,以4位元單位劃分20位元的輸入資料,對最高階起以此4位元劃分的資料分別分配(1)~(5)的號碼,(1)~(4)各4位元合計成為16位元,(5)成為低階2位元的構造。(1)~(4)為固定部分。另一方面,(5)於/16時,(5)的2位元被全位元遮罩而成為0,於/18時,照樣被作為2位元的資料處理。然而,在輸入檢索資料的階段,不清楚(5)的資料是/16還是/18。於是,需要下述操作:除了20位元的輸入資料的最低階起2位元以外,將此輸入資料分配給(1)~(5)。此操作為「檢索資料的前處理」。
第22圖(a)顯示檢索動作的動作2。在動作2方面,進行(1)~(4)的固定資料的組(代表號碼)的檢索。使用輸入資料的(1)~(4)來檢索固定部分的檢索記憶體。第22圖(a)中顯示此處的檢索動作。
第22圖(b)顯示檢索動作的動作3。在動作3方面,進行(5)的遮罩資料的檢索。首先,使用輸入資料的(5)和讀取的代表號碼,檢索是否登錄有遮罩3的資 料。登錄資料為遮罩1或遮罩3的任一者,所以使用以下前提的檢索方法:假定為遮罩3而進行檢索,若未登錄於遮罩3,則為遮罩1的資料。要此檢索方法成立,在遮罩1與遮罩3混在一起時,需就將遮罩1登錄於遮罩3前面的入口。再者,在第23圖(b)中,在代表號碼變換成為空白之處表示不是遮罩3(即是遮罩1的資料)。此外,在檢索結果成為空白之處也成為遮罩1的資料。
第23圖(a)顯示檢索動作的動作4。在動作4方面,使用動作3的檢索結果檢索確認用記憶體,進行和檢索輸入的比較。若一致則成為匹配狀態,若不一致則成為未匹配。在第23圖(a)中,以檢索輸入資料來看,檢索順序的1和4相同。此外,由於優先檢索遮罩3(碼3),所以看碼3的登錄資料時,登錄有該號碼,檢索結果被判斷為入口號碼4。檢索順序的1和4屬於同組,由於優先檢索碼3,所以登錄於碼3的入口號碼不被作為碼1的資料檢索(成為最長匹配)。
第23圖(b)顯示碼檢索記憶體的登錄區域擴充法的一例。/16及/18對應TCAM時,在例中,入口數量16之中作為遮罩3(碼3)的登錄區域,只取四種。也有必要產生比四種更多登錄區域的情況。研究該情況的對策方法,可思考以下對策。首先,就對策方法1而言,可思考將遮罩3(碼3)登錄於各別的TCAM塊。此外,就對策方法2而言,可思考增加碼3的碼檢索記憶體的數量,附加辨別號碼。不進行增加代表號碼變換記憶體的數量,而活用未使用的旗標(3位元),進行所增加的碼檢索記憶體的辨別。例如,以000為第一個,以001為第二個,在代表號碼變換記憶體的變換時,變換資料為0,若讀取旗標的001,則檢索第二個的0~3的該位址。
第24圖顯示管線動作時檢索動作的流程。第 24圖為匯集了上述檢索動作的圖。如第24圖所示,檢索動作可利用第一循環至第四循環執行。
以上,在本案說明書方面,為了表現本發明的內容,一面參照圖面,一面進行了本發明的實施形態的說明。然而,本發明並不受上述實施形態限定,當然包含精通本技術者基於本案說明書所記載的事項而自明的變更形態或改良形態。

Claims (8)

  1. 一種半導體裝置,具備:檢索記憶體墊(100),其將與關鍵資料對應的入口位址寫入由記憶體位址特別指定的記憶體空間;控制電路(200),其連接於前述檢索記憶體墊;以及備用記憶體(300),其連接於前述控制電路;其中,前述檢索記憶體墊(100)係前述記憶體空間在保持前述記憶體位址的狀態下被區分為複數個分割記憶體(110a、110b…),而前述控制電路(200)具有:輸入部(210),其輸入前述關鍵資料;分割部(220),其將輸入前述輸入部的前述關鍵資料分割為複數個分割資料;以及寫入部(230),其將複數個前述分割資料的各資料分配給複數個前述分割記憶體,以各分割資料為位址,將與該分割資料對應的入口位址寫入由各分割記憶體的記憶體位址特別指定的記憶體空間;前述寫入部(230)係在要寫入與某分割資料對應的的入口位址的記憶體空間,已被寫入與其他的分割資料對應的入口位址時,將表示入口位址衝突的衝突資訊寫入該記憶體空間,在對於從某關鍵資料分割的複數個分割資料的全部資料發生了前述衝突時,將發生該全衝突的關鍵資料和與其對應的入口位址寫入前述備用記憶體(300)。
  2. 如申請專利範圍第1項所述之半導體裝置,其中進一步具備:確認用記憶體(400),其對前述入口位址賦予對應以記憶前述關鍵資料。
  3. 如申請專利範圍第1項所述之半導體裝置,其中進一步具備遮罩暫存器(500),該遮罩暫存器(500)係登錄有所希望的遮罩圖案,依照該遮罩圖案給予前述關鍵資料遮罩,將給予有前述遮罩的關鍵資料輸入前述控制電路(200)的前述輸入部(210)。
  4. 如申請專利範圍第1項所述之半導體裝置,其中前述控制電路(200)進一步具有讀取部(240),該讀取部係在作為檢索對象資料的關鍵資料被輸入前述輸入部(210),前述分割部(220)將作為該檢索對象資料的關鍵資料分割為複數個分割資料時,以前述分割資料的各資料為位址,對由各分割記憶體的記憶體位址特別指定的記憶體空間進行存取,從存取的記憶體空間讀取與該分割資料對應的入口位址,前述讀取部(240)係在對前述記憶體空間進行存取時,前述衝突資訊已經被寫入該記憶體空間時,不讀取與分割資料對應的入口位址,而作為無需顧慮而加以忽略處理,在從作為某檢索對象資料的關鍵資料分割的複數個分割資料的全部資料被作為無需顧慮而加以忽略處理時、或讀取的入口位址產生了不一致時,從前述備用記憶體(300),基於作為該檢索對象資料的關鍵資料,來檢索與其對應的入口位址。
  5. 一種資訊處理系統,其具有複數個申請專利範圍第3項所述之半導體裝置(10),在複數個前述半導體裝置(10)中,登錄於前述遮罩暫存器(500)的前述遮罩圖案均為不同。
  6. 如申請專利範圍第5項所述之資訊處理系統,其中進一步具備:遮罩控制器(20),其連接於複數個前述半導體裝置(10),其中,前述遮罩控制器(20)具有:表資料輸入部(21),其輸入包含具有遮罩部位的複數個關鍵資料的表資料;遮罩圖案產生部(22),其解析前述表資料所含的複數個關鍵資料的遮罩部位的型樣,產生複數種的遮罩圖案;以及遮罩圖案登錄部(23),其將前述遮罩圖案產生部(22)所產生的複數種的遮罩圖案分別登錄於不同的前述半導體裝置(10)的前述遮罩暫存器(500)。
  7. 一種資訊寫入方法,其係對於半導體裝置(10)寫入入口位址,該半導體裝置具備:檢索記憶體墊(100),其將與關鍵資料對應的前述入口位址寫入由記憶體位址特別指定的記憶體空間;控制電路(200),其連接於前述檢索記憶體墊;以及備用記憶體(300),其連接於前述控制電路;其中,前述檢索記憶體墊(100)係前述記憶體空間在保持前述記憶體位址的狀態下被區分為複數個分割記憶體(110a、110b…),前述寫入方法包含以下步驟:將關鍵資料輸入前述控制電路;前述控制電路將前述關鍵資料分割為複數個分割資料;以及前述控制電路將複數個前述分割資料的各資料分配給複數個前述分割記憶體,以各分割資料為位址,將與該分割資料對應的入口位址寫入由各分割記憶體的記憶體位址特別指定的記憶體空間;在寫入前述入口位址的步驟中,前述控制電路係在要寫入與某分割資料對應的的入口位址的記憶體空間,已被寫入與其他的分割資料對應的入口位址時,在該記憶體空間登錄表示入口位址衝突的衝突資訊,在對於從某關鍵資料分割的複數個分割資料的全部資料發生了前述衝突時,將發生該全衝突的關鍵資料和與其對應的入口位址寫入前述備用記憶體(300)。
  8. 一種資訊讀取方法,其係將藉由請求項7所記載的資訊寫入方法對前述半導體裝置(10)所寫入的前述入口位址加以讀取,包含以下步驟:將作為檢索對象資料的關鍵資料輸入前述控制電路;前述控制電路將作為前述檢索對象資料的關鍵資料分割為複數個分割資料;以及前述控制電路以前述分割資料的各資料為位址,對由各分割記憶體的記憶體位址特別指定的記憶體空間進行存取,從存取的記憶體空間讀取與該分割資料對應的入口位址;在讀取前述入口位址的步驟中,前述控制電路係在對前述記憶體空間進行存取,在該記憶體空間登錄有前述衝突資訊時,不讀取與分割資料對應的入口位址,而作為無需顧慮而加以忽略處理,在從作為某檢索對象資料的關鍵資料分割的複數個分割資料的全部資料被作為無需顧慮而加以忽略處理時、或讀取的入口位址產生了不一致時,從前述備用記憶體(300),基於作為該檢索對象資料的關鍵資料來檢索與其對應的入口位址。
TW105112474A 2015-05-18 2016-04-21 Semiconductor device, information processing system, and information writing/reading method TWI640879B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015101081A JP6166306B2 (ja) 2015-05-18 2015-05-18 半導体装置,情報処理システム,及び情報書込/読出方法
JP2015-101081 2015-05-18

Publications (2)

Publication Number Publication Date
TW201709095A TW201709095A (zh) 2017-03-01
TWI640879B true TWI640879B (zh) 2018-11-11

Family

ID=57319830

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105112474A TWI640879B (zh) 2015-05-18 2016-04-21 Semiconductor device, information processing system, and information writing/reading method

Country Status (3)

Country Link
JP (1) JP6166306B2 (zh)
TW (1) TWI640879B (zh)
WO (1) WO2016185848A1 (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020152352A1 (en) * 2001-04-13 2002-10-17 Nec Corporation High-speed information retrieval system
US20080212350A1 (en) * 2006-09-15 2008-09-04 International Business Machines CAM Asynchronous Search-Line Switching
US7711893B1 (en) * 2004-07-22 2010-05-04 Netlogic Microsystems, Inc. Range code compression method and apparatus for ternary content addressable memory (CAM) devices
US20100328982A1 (en) * 2009-06-30 2010-12-30 Taiwan Semiconductor Manufacturing Company, Ltd. Content addressable memory design
US20120127772A1 (en) * 2010-11-24 2012-05-24 Stephani Richard J Low power sram based content addressable memory
US20120170344A1 (en) * 2006-04-25 2012-07-05 Renesas Electronics Corporation Content addressable memory
TW201445567A (zh) * 2013-03-13 2014-12-01 Nagase & Co Ltd 半導體裝置及寫入/讀取登錄位址於半導體裝置中的方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020152352A1 (en) * 2001-04-13 2002-10-17 Nec Corporation High-speed information retrieval system
US7711893B1 (en) * 2004-07-22 2010-05-04 Netlogic Microsystems, Inc. Range code compression method and apparatus for ternary content addressable memory (CAM) devices
US20120170344A1 (en) * 2006-04-25 2012-07-05 Renesas Electronics Corporation Content addressable memory
US20080212350A1 (en) * 2006-09-15 2008-09-04 International Business Machines CAM Asynchronous Search-Line Switching
US20100328982A1 (en) * 2009-06-30 2010-12-30 Taiwan Semiconductor Manufacturing Company, Ltd. Content addressable memory design
US20120127772A1 (en) * 2010-11-24 2012-05-24 Stephani Richard J Low power sram based content addressable memory
TW201445567A (zh) * 2013-03-13 2014-12-01 Nagase & Co Ltd 半導體裝置及寫入/讀取登錄位址於半導體裝置中的方法

Also Published As

Publication number Publication date
JP6166306B2 (ja) 2017-07-19
WO2016185848A1 (ja) 2016-11-24
TW201709095A (zh) 2017-03-01
JP2016219073A (ja) 2016-12-22

Similar Documents

Publication Publication Date Title
US6553370B1 (en) Flexible search engine having sorted binary search tree for perfect match
KR100488414B1 (ko) 다중탐색 트리의 노드 생성 방법, 및 그에 따라 생성된 다중탐색 트리 구조의 자료 탐색 방법
US7805427B1 (en) Integrated search engine devices that support multi-way search trees having multi-column nodes
CN107567621B (zh) 用于执行数字搜索的方法、系统和计算机程序产品
TWI540578B (zh) A semiconductor device, and a method of writing / reading a registered address in a semiconductor device
JP2003006045A (ja) コンピュータシステム
US9672239B1 (en) Efficient content addressable memory (CAM) architecture
US10565205B2 (en) Incrementally building hash collision tables
US20150278543A1 (en) System and Method for Optimizing Storage of File System Access Control Lists
US9899088B1 (en) Content addressable memory decomposition
TWI640879B (zh) Semiconductor device, information processing system, and information writing/reading method
TWI621016B (zh) 半導體裝置及資訊寫入/讀取方法
JPH0133857B2 (zh)
US10795580B2 (en) Content addressable memory system
CN107045535B (zh) 数据库表索引
US7181568B2 (en) Content addressable memory to identify subtag matches
US20220229777A1 (en) Data storage system with multiple-size object allocator for disk cache
KR101359692B1 (ko) 입력되는 서명 문자열 부분 정보를 저장하는 메모리 공간을 이용한 서명 탐지 시스템
JP2000090115A (ja) インデクス作成方法および検索方法
Wang et al. GenMatcher: A generic clustering-based arbitrary matching framework
US20230049428A1 (en) Hash based filter
Anusha et al. Implementation Of “Bloom Filter” Using Cam Based Structure
Chung Parallel relational operations using clustered surrogate files on shared-nothing multiprocessors
CN115714752A (zh) 一种包分类方法、装置、转发芯片及电子设备
KR101656619B1 (ko) Rbi 그래프 기반의 서브 그래프 리스팅 방법