TW201642138A - 半導體裝置及資訊寫入/讀取方法 - Google Patents

半導體裝置及資訊寫入/讀取方法 Download PDF

Info

Publication number
TW201642138A
TW201642138A TW105112469A TW105112469A TW201642138A TW 201642138 A TW201642138 A TW 201642138A TW 105112469 A TW105112469 A TW 105112469A TW 105112469 A TW105112469 A TW 105112469A TW 201642138 A TW201642138 A TW 201642138A
Authority
TW
Taiwan
Prior art keywords
memory
data
divided
address
key
Prior art date
Application number
TW105112469A
Other languages
English (en)
Other versions
TWI621016B (zh
Inventor
Masato Nishizawa
Kaoru Kobayashi
Kanji Otsuka
Yoichi Sato
Toshiyuki Kouchi
Minoru UWAI
Original Assignee
Nagase & Co Ltd
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 Nagase & Co Ltd filed Critical Nagase & Co Ltd
Publication of TW201642138A publication Critical patent/TW201642138A/zh
Application granted granted Critical
Publication of TWI621016B publication Critical patent/TWI621016B/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
    • 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
    • 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
    • G11C15/046Digital 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 using non-volatile storage elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本發明的半導體裝置可一邊維持搜尋處理的低消耗電力性,一邊實現擴大寫入容量、記憶體的小型化及寫入處理的高速化。半導體裝置將對應寫入對象之關鍵資料的登錄位址寫入構成搜尋記憶體墊之複數個分割記憶體的記憶體空間,並將分割資料分別分配給分割記憶體,將分割資料做為位址,將對應分割資料的登錄位址依序寫入由分割記憶體的記憶體位址特定的記憶體空間(第一寫入處理)。在第一寫入處理中,當存取的記憶體空間已經寫入其他的登錄位址時,不將登錄位址寫入記憶體空間。當將複數個分割資料中之一個分割資料對應的登錄位址成功寫入記憶體空間時,結束第一寫入處理。

Description

半導體裝置及資訊寫入/讀取方法
本發明係關於一種半導體裝置、對半導體裝置的登錄位址寫入方法以及讀取方法。具體來說,本發明的半導體裝置係關於可減少資料寫入及搜尋時消耗電力的聯想記憶體(Content Addressable Memory內容可定址記憶體,CAM)等。
近年來,已成為雲端運算科技(cloud computing)時代,網路交換機或路由器的高性能化或消耗電力的減少,已視為是緊急的課題。又,以網路的搜尋引擎而言,能以更高速且低消耗電力確實地執行搜尋操作的技術正需求甚殷。為了應付這種需求,近年在網路交換機或搜尋引擎方面,使用CAM的情況越來越多。
在此,一般的CAM係在對CAM內記憶的資料執行搜尋之際,被稱為關鍵資料(key data)的搜尋資料會被輸入於其中。然後,CAM在與關鍵資料相同的資料記憶在記憶體的情況,會將記憶該關鍵資料之記憶體的位址(地址)輸出,此時的位址也被稱作登錄位址。一般而言,為了實現這種搜尋功能,必須對CAM內全部的記憶空間存取,不僅使電路構成複雜化,也造成消耗電力增大的問題。特別是,這種消耗電力增大的問題,由於會伴隨CAM規模而變大,因此現在被視作非常重大的問題。
對於這種問題,例如在專利文獻1中,提出以一邊活用CAM的高速搜尋性一邊降低消耗電力為目的的一種資料搜尋裝置。專利文獻1的資料搜尋裝置將決定有優先次序的複數個規則資料按照其大小順序重新賦予次序,並按照該次序分配給複數個記憶體區塊。又,該搜尋裝置在執行資料搜尋之際,指定預定要搜尋的一個記憶體區塊來實行搜尋處理。依此方式,專利文獻1的資料搜尋裝置在執行搜尋處理之際,因為只激活(活化、啟動)所指定的一個區塊,而不需激活其他區塊,所以其不需激活的程度與一般的CAM比較,被視作可減少搜尋時的消耗電力。
然而,上述專利文獻1所揭露的資料搜尋裝置,與一般的記憶體比較雖然可減少搜尋時的消耗電力,但為了實行搜尋處理,必須一次就存取區塊內全部的記憶體空間。是以,習知的資料搜尋裝置係電路構成複雜的同時,還有搜尋時消耗電力甚大的問題。依此情形,上述專利文獻1的技術對於目前的問題並未提出根本的解決方案。
於是,為了實現高速且低消耗電力的資料搜尋,由本案發明人等提出(專利文獻2)了一種新穎的半導體裝置(CAM)。此新型的CAM具有一搜尋記憶體墊及一控制電路,搜尋記憶體墊在由記憶體位址特定的記憶體空間被寫入對應關鍵資料的登錄位址,控制電路連接該搜尋記憶體墊。搜尋記憶體墊係記憶體空間在保持記憶體位址之下被區分為複數個分割記憶體。若對CAM輸入用以寫入搜尋記憶體墊的關鍵資料,控制電路將該關鍵資料分割成複數個分割資料。然後,控制電路將複數個分割資料分別分配給複數個分割記憶體,並將各分割資料做為位址,將對應該等分割資料的登錄位址依序寫入由各分割記憶體的記憶體位址特定的記憶體空間。依此做法,對應複數個關鍵資料的登錄位址被寫入搜尋記憶體墊。
又,對寫入至搜尋記憶體墊之關鍵資料的搜尋處理,係與寫入處理在相同步驟中執行。也就是說,若對CAM輸入做為搜尋對象資料的關鍵資料,控制電路將做為搜尋對象資料的關鍵資料分割成複數個分割資料。然後,控制電路將分割資料分別做為位址,並存取由各分割記憶體的記憶體位址特定的記憶體空間,從存取的記憶體空間讀取對應該等分割資料的登錄位址。
依此做法,在本案發明人等所開發的新型CAM中,關鍵資料被分割成複數個,分別對應該等分割後關鍵資料的登錄位址被記憶在分割記憶體。因此,搜尋該登錄位址之際,就不須一次就激活(活化啟用)全部的搜尋記憶體墊,可將搜尋記憶體墊按各分割記憶體部分地激活後進行搜尋。是以,按此CAM可一邊實現以等同習知CAM的高速性做資料搜尋,一邊能以比習知CAM更低的消耗電力實行資料搜尋。
【先前技術文獻】
【專利文獻】
【專利文獻1】日本專利特開2004-185792號公報
【專利文獻2】日本專利登錄第5575997號
不過,專利文獻2所揭露的CAM在執行寫入處理之際,基本上,是對分割關鍵資料得到的分割資料全體,將其對應的登錄位址寫入搜尋記憶體墊的記憶體空間。舉例來說,將144位元的關鍵資料以每8位元分割成18份的情況下,專利文獻2的CAM最大必須將對應該關鍵資料的登錄位址寫入構成搜尋記憶體墊的18個分割記憶體。然而,在專利文獻2的CAM中,寫入18個分割記憶體的登錄位址全部都是相同的資料。依此情形,依專利文獻2的CAM,將一個關鍵資料寫入搜尋記憶體墊之際,必須將相同的登錄位址寫入複數個地方。因此,一個關鍵資料的寫入所利用的記憶體空間容量相較地變大,造成能寫入到搜尋記憶體墊的關鍵資料數量有不足的問題。又,依專利文獻2之CAM的寫入方式,搜尋記憶體墊的大小會有變大的傾向,也產生難以將CAM本身小型化的問題。
更進一步,在專利文獻2的CAM中,為了將一個關鍵資料寫入搜尋記憶體墊,基本上,必須將該關鍵資料分割成複數個分割資料,將複數個分割資料分配給分割記憶體,並將對應該等分割資料的登錄位址一個一個寫入。可是,若將全部複數個分割資料對應的登錄位址執行寫入處理,因為寫入處理會產生延遲,故將多數個關鍵資料做初期登錄之際會產生相較地花時間的問題。
依此情形,專利文獻2的CAM雖然具有能以更低的消耗電力進行關鍵資料之搜尋處理的優點,但在寫入容量(搜尋容量)、記憶體的大小以及寫入處理等幾點尚有改善的空間。
於是,本發明欲解決的課題是提供一種CAM等半導體裝置,其係可一邊維持搜尋處理的低消耗電力性,一邊實現擴大寫入容量(搜尋容量)、記憶體的小型化以及寫入處理的高速化。
本發明基本上,從其中一個寫入對象的關鍵資料所分割的複數個分割資料中,當對應於一個分割資料的關鍵資料成功寫入時,就不 再對之後的分割資料執行關鍵資料的寫入處理,故係基於所謂可將關鍵資料對於搜尋記憶體墊的寫入處理效率化的見解,本發明乃基於前述的見解。若依本發明,可將寫入容量(搜尋容量)擴大,更進一步,可實現記憶體的小型化及寫入處理的高速化。具體地來說,本發明具有以下的構成、步驟。
本發明的第一方面係關於一種CAM等的半導體裝置。本發明的半導體裝置包含搜尋記憶體墊100、控制電路200以及確認用記憶體300。搜尋記憶體墊100為一記憶裝置,其係在由記憶體位址(MA)特定的記憶體空間被寫入對應關鍵資料(KD)的登錄位址(EA),控制電路200連接搜尋記憶體墊,並執行對應搜尋記憶體墊100之資料的寫入處理及讀取處理。確認用記憶體300係連接控制電路的記憶裝置,並受該控制電路的控制。搜尋記憶體墊100的記憶體空間在保持記憶體位址之下,被區分為複數個分割記憶體110a、110b…。控制電路200包含輸入部210、分割部220以及寫入部230,其中關鍵資料輸入於輸入部210,該分割部將輸入於該輸入部210的關鍵資料分割成複數個分割資料,寫入部230至少實行下述說明的第一寫入處理。第一寫入處理係將分割部分割的複數個分割資料分別分配給複數個分割記憶體,並將該等分割資料做為位址,將對應該等分割資料的登錄位址依序寫入由分割記憶體的記憶體位址特定的記憶體空間。在此,寫入部230在第一寫入處理中,當對應其中一個分割資料的登錄位址預定要寫入的記憶體空間已經寫入有對應其他分割資料的登錄位址時,不將登錄位址寫入該記憶體空間。更進一步,寫入部230在第一寫入處理中,將複數個分割資料中之一個分割資料對應的登錄位址成功寫入記憶體空間時,結束第一寫入處理,不再對之後的分割資料執行寫入處理。
如上述的構成,本發明的半導體裝置對一個寫入對象的關鍵資料,當一個登錄位址成功寫入記憶體空間時,結束第一寫入處理,之後不再執行寫入處理。因此,在其中一個關鍵資料的寫入處理中,只有一個記憶體位址會被寫入搜尋記憶體墊的記憶體空間。如上述內容,專利文獻2的半導體裝置中,在其中一個關鍵資料的寫入處理中,複數個記憶體位址會被寫入搜尋記憶體墊的記憶體空間。與此相較,本發明的半導體裝置可減少一個關鍵資料之寫入處理所使用的記憶體空間的容量。藉此,本發 明可增加搜尋記憶體墊內可登錄的關鍵資料數量,達到擴大寫入容量的功效。又,因為本發明能有效率地利用搜尋記憶體墊的記憶體空間,所以可達到記憶體其大小小型化的功效。更進一步,本發明的半導體裝置因為將一個登錄位址成功寫入記憶體空間後就結束寫入處理,所以還能達到寫入處理的高速化。
在本發明的半導體裝置中,寫入部230較佳還包含連接控制電路200的確認用記憶體300。在此情況下,寫入部230較佳係實行下述說明的第二寫入處理。也就是說,第二寫入處理係為將輸入於輸入部210的關鍵資料與對應該關鍵資料的登錄位址建立關聯性並寫入確認用記憶體300的處理。
如上述的構成,藉由寫入部230的第二寫入處理,將寫入對象的關鍵資料與對應該關鍵資料的登錄位址建立關聯性並寫入確認用記憶體300。藉此,在後述的讀取處理中,在從搜尋記憶體墊100讀取複數個登錄位址的情況時,哪個登錄位址是正確的位址,可藉由參照確認用記憶體300來決定。
本發明的半導體裝置較佳還包含備份記憶體400。又,當寫入部230無法將從其中一個關鍵資料分割的關鍵資料複數個之全體所對應的登錄位址寫入記憶體空間時(發生「全衝突」時),寫入部較佳係將該關鍵資料與對應該關鍵資料的登錄位址建立關聯性並寫入備份記憶體400。
如上述的構成般設置備份記憶體400,當登錄位址的全衝突發生時,則將該全衝突的登錄位址與關鍵資料建立關聯性並存放至備份記憶體400。藉此,可以避免無法將登錄位址寫入搜尋記憶體墊內的事情。只是,在本發明中,由於是將一個關鍵資料對應的一個登錄位址記錄在搜尋記憶體墊內,因此在搜尋記憶體墊內發生登錄位址的衝突(全衝突)的機率相較地為低。另外,寫入處理中發生全衝突時將關鍵資料寫入備份記憶體400的情況下,無須將與前述相同的關鍵資料寫入上述的確認用記憶體300。也就是說,將關鍵資料寫入備份記憶體400的情況下,可不將關鍵資料寫入確認用記憶體300,也可將之寫入。
本發明的半導體裝置較佳還包含編碼電路500。編碼電路500為一電路,其係將輸入於該控制電路200之輸入部210的關鍵資料基於預 設的演算法編碼,並將編碼後的關鍵資料輸入分割部220。
如上述的構成,編碼電路500藉由將關鍵資料編碼,可將關鍵資料的數值分散。藉由將關鍵資料的數值分散,即使在例如是幾乎相同內容的關鍵資料連續輸入複數個的情況下,進行登錄位址的寫入處理之際,也能降低記憶體空間內登錄位址之衝突的發生機率。藉此,可達到登錄位址有效率的寫入處理。
本發明的半導體裝置,上述的搜尋記憶體墊100較佳係包含第一搜尋記憶墊100a及第二搜尋記憶墊100b。又,本發明的半導體裝置,上述的編碼電路500較佳係包含編碼演算法彼此不同的第一編碼電路500a及第二編碼電路500b。在此情況下,控制電路200的寫入部230首先藉由第一編碼電路500a將對應編碼後之關鍵資料的登錄位址寫入第一搜尋記憶墊100a。同時,控制電路200的寫入部230藉由第二編碼電路500b將對應編碼後之關鍵資料的登錄位址寫入第二搜尋記憶墊100b。
如上述的構成,寫入部230將對應其中一個關鍵資料的登錄位址至少寫入第一搜尋記憶體墊100a與第二搜尋記憶體墊100b的兩者。依此情形,寫入部230係執行鏡像寫入處理。更進一步,將其中一個關鍵資料寫入第一搜尋記憶體墊100a與第二搜尋記憶體墊100b之際,利用第一編碼電路500a及第二編碼電路500b,以各別的演算法編碼(分散)。藉此,進行登錄位址的寫入處理之際,能更進一步降低記憶體空間內登錄位址之衝突的發生機率。
在本發明的半導體裝置中,寫入部230對第一關鍵資料執行該第一寫入處理時,將第一關鍵資料分割,並將得到的複數個分割資料中,對應第k個分割資料的登錄位址最先寫入記憶體空間。在此情況下,寫入部230對第二關鍵資料執行第一寫入處理時,較佳將第二關鍵資料分割,並將得到的複數個分割資料中,對應第k個以外之分割資料的登錄位址最先寫入記憶體空間。
如上述的構成,寫入部230藉由讓執行登錄位址的寫入處理之分割資料的順序不同,能有效率地利用搜尋記憶體墊內的記憶體空間。也就是說,將寫入對象的關鍵資料分割成複數個分割資料後,若設定為一定要從第一個分割資料開始進行登錄位址的寫入處理,以及設定只將登錄 位址寫入對應該第一個分割資料的分割記憶體,記憶體空間的已寫入區域就會產生偏移。相對於此情況,在例如將寫入對象的關鍵資料分成18等份的情況時,對於第一關鍵資料係從第一個分割資料開始進行登錄位址的寫入處理,對於第二關鍵資料係從第18個分割資料開始進行登錄位址的寫入處理等,藉由讓寫入處理的順序不同,可廣泛並有效率地利用記憶體空間。
本發明之半導體裝置的控制電路200,更進一步還包含讀取部240,其係在搜尋對象的關鍵資料輸入的情況下,用以讀取對應該關鍵資料的登錄位址。讀取部240在將做為搜尋對象資料的關鍵資料輸入輸入部210且分割部220將做為該搜尋對象資料的關鍵資料分割成複數個分割資料的情況下,讀取部將分割資料分別做為位址,並存取各分割記憶體的記憶體位址特定的記憶體空間。然後,從存取的記憶體空間讀取對應分割資料的登錄位址。
如上述的構成,將做為搜尋對象資料的關鍵資料分割,把得到的分割資料分別做為位址,並存取分割記憶體的記憶體空間,從該存取的記憶體空間讀取記憶的登錄位址。藉此,由於無須激活啟用搜尋記憶體墊內全部的記憶體空間,只需要激活啟用必要的空間就足夠之下,因此可降低搜尋處理的消耗電力。
本發明之半導體裝置的控制電路200還包含確認部250,其用以確認由讀取部240讀取的登錄位址是否適當。該確認部250首先將讀取部240讀取的一個或複數個登錄位址做為關鍵字,從確認用記憶體300讀取對應該登錄位址的關鍵資料。然後,確認部250依此確認從確認用記憶體300讀取的關鍵資料是否與輸入於輸入部210做為搜尋對象資料的關鍵資料是否一致。
在本發明的半導體裝置中,如上述內容,執行對應關鍵資料之登錄位址的寫入處理時,對一個分割資料當登錄位址的寫入成功時,對之後的分割資料就不再執行登錄位址的寫入。因此,由上述的讀取部240執行登錄位址的讀取時,可知複數個不同的登錄位址會被讀取。依此情形,若複數個不同的登錄位址被讀取,就無法決定對應搜尋對象之關鍵資料的登錄位址。於是,設置如上述構成的確認部250,分別對讀取部240讀取的複數個登錄位址參照確認用記憶體300,執行對應各登錄位址的關鍵資料與 做為搜尋對象輸入的關鍵資料是否一致的確認處理。藉此,與做為搜尋對象輸入的關鍵資料一致的登錄位址可確切地決定。
在本發明的半導體裝置中,藉由確認部250,會有判斷對應讀取部240讀取之全部登錄位址的關鍵資料與做為搜尋對象資料的關鍵資料不一致的情況。在此情況下,讀取部240較佳係參照備份記憶體400,從備份記憶體400讀取對應於與做為搜尋資料的關鍵資料一致的關鍵資料之登錄位址。
如上所述,在寫入處理中,當登錄位址的全衝突發生時,將該全衝突的登錄位址與關鍵資料建立關聯性並存放至備份記憶體400。因此,即使是由確認部250判斷「沒有一致」的情況,在備份記憶體400內,仍可能記憶有與做為搜尋資料的關鍵資料一致的關鍵資料。於是,當這樣的情況時,讀取部240較佳係參照備份記憶體400。
本發明的半導體裝置更進一步,較佳還包含精選部270。精選部270,在由讀取部(240)讀取複數個登錄位址的情況時,從複數個登錄位址中縮小範圍精選登錄位址的候補,並將登錄位址的候補往確認部送出。另外,由精選部270精選之登錄位址的候補其數量,會變得比由讀取部240讀取之登錄位址的數量少。
如上述的構成,在本發明的讀取處理中,會有由讀取部240讀取複數個登錄位址的情況。在此情況下,分別對複數個登錄位址將確認用記憶體300做對照,可確切地決定對應搜尋對象之關鍵資料的登錄位址。然而,若由讀取部240讀取的登錄位址一多,逐一地參照確認用記憶體300可能導致讀取處理的延遲。於是,在讀取部240與確認部250之間係配置精選部270。然後,藉由該精選部270,從讀取部240讀取的複數個登錄位址之中,執行精選比其數量少之候補的處理,再將精選後的登錄位址往確認部250送出。藉此,由於減少了藉由確認部250參照確認用記憶體300的次數,因此可達到搜尋處理的高速化。
本發明的第二方面係關於一種資訊寫入方法,其係藉由上述第一方面的半導體裝置10實行。本發明的資訊寫入方法包含輸入步驟、分割步驟及寫入步驟,輸入步驟中,關鍵資料輸入於控制電路200,分割步驟中,控制電路200將輸入的關鍵資料分割成複數個分割資料。在寫入步驟 中,還執行第一寫入處理,其將分割的複數個分割資料分別分配給複數個分割記憶體110a、110b…,並將該等分割資料做為位址,將對應該等分割資料的登錄位址依序寫入由該等分割記憶體110a、110b…的記憶體位址特定的記憶體空間。於此,在第一寫入處理中,當對應其中一個分割資料的登錄位址預定要寫入的記憶體空間已經寫入有對應其他分割資料的登錄位址時,不將登錄位址寫入該記憶體空間。更進一步,在第一寫入處理中,當將複數個分割資料中之一個分割資料對應的登錄位址成功寫入記憶體空間時,結束該第一寫入處理。
又,寫入步驟較佳還包含第二寫入處理,其將輸入的關鍵資料與對應該關鍵資料的登錄位址建立關聯性並寫入確認用記憶體300。
本發明的第三方面係關於一種資訊讀取方法,其係藉由上述第二方面的資訊寫入方法,對半導體裝置10讀取寫入的登錄位址。本發明的資訊讀取方法包含輸入步驟及分割步驟,輸入步驟中,將做為搜尋對象資料的關鍵資料輸入控制電路200,分割步驟中,控制電路200將做為搜尋對象資料的關鍵資料分割成複數個分割資料。更進一步,本發明的資訊讀取方法還包含一讀取步驟,讀取步驟中,控制電路200將分割資料分別做為位址,並存取由各分割記憶體110a、110b…的記憶體位址所特定的記憶體空間,從存取的記憶體空間讀取對應該等分割資料的登錄位址。更進一步,本發明的資訊讀取方法還包含確認步驟,確認步驟中,將對應讀取之登錄位址的關鍵資料從確認用記憶體300讀取,同時確認從確認用記憶體300讀取的關鍵資料與做為搜尋對象資料的關鍵資料是否一致。
若依本發明,可一邊維持搜尋處理的低消耗電力性,一邊實現擴大寫入容量(搜尋容量)、記憶體的小型化以及寫入處理的高速化。
10‧‧‧半導體裝置
100‧‧‧搜尋記憶體墊
100a‧‧‧第一搜尋記憶體墊
100b‧‧‧第二搜尋記憶體墊
100c‧‧‧上側搜尋記憶體墊
100d‧‧‧下側搜尋記憶體墊
110a、110b…‧‧‧分割記憶體
200‧‧‧控制電路
210‧‧‧輸入部
220‧‧‧分割部
230‧‧‧寫入部
240‧‧‧讀取部
250‧‧‧確認部
260‧‧‧輸出部
270‧‧‧精選部
300‧‧‧確認用記憶體
400‧‧‧備份記憶體
500‧‧‧編碼電路
第1圖為顯示本發明之半導體裝置的功能方塊圖。
第2圖為顯示本發明之半導體裝置中資料的流程圖。
第3圖為顯示本發明之資訊寫入方法的主流程圖。
第4圖為顯示本發明之資訊寫入方法的副流程圖。
第5圖為顯示基本寫入處理的一實施例圖。
第6圖為顯示衝突發生的情況下寫入處理的一實施例圖。
第7圖為顯示全衝突發生的情況下寫入處理的一實施例圖。
第8圖為顯示本發明之資訊讀取方法的主流程圖。
第9圖為顯示本發明之資訊讀取方法的副流程圖。
第10圖為顯示基本讀取處理的一實施例圖。
第11圖為顯示不一致發生的情況下讀取處理的一實施例圖。
第12圖為顯示編碼處理的一實施例圖。
第13圖為顯示編碼處理的其他實施例圖。
第14圖為顯示寫入處理的其他實施例圖。
第15圖為顯示執行精選登錄位址候補之讀取處理的一實施例圖。
第16圖為顯示寫入處理的第一改良實施例圖。
第17圖為顯示寫入處理的第二改良實施例圖。
第18圖為顯示寫入處理的第三改良實施例圖。
以下,使用圖示說明用以實施本發明的態樣。但本發明並不限定於以下說明的態樣,而是還包含該所屬技術領域中具有通常知識者從以下的態樣在顯而易知的範圍內做適當修正的態樣。
第1圖係顯示構成半導體裝置10其主要功能構成的功能方塊圖,又,第2圖係顯示半導體裝置10其處理流程的流程圖。更進一步,第3~7圖係顯示半導體裝置10其登錄位址之寫入處理的一實施例圖,第8~11圖係顯示半導體裝置10其登錄位址之讀取處理(搜尋處理)的一實施例圖。
如第1圖所示,半導體裝置10基本上包含搜尋記憶體墊100、控制電路200以及確認用記憶體300。更甚者,半導體裝置10較佳還包含備份記憶體400及編碼電路500。控制電路200連接搜尋記憶體墊100、確認用記憶體300以及備份記憶體400,並擔負對各記憶體100、300、400統合地控制預設的資料(資訊)寫入與讀取之資訊處理的功能。特別是,控制電路200的主要功能為對搜尋記憶體墊100執行寫入處理及讀取處理。又, 控制電路200中也可組入編碼電路500。在此情況下,控制電路200基於經由編碼電路500的資料,對各記憶體100、300、400執行資料的寫入處理及讀取處理。
搜尋記憶體墊100為一記憶體裝置(記憶體),其在由記憶體位址(MA)特定的記憶體空間(D),被寫入對應關鍵資料(KD)的登錄位址(EA)。搜尋記憶體墊100用以寫入登錄位址(EA)的記憶體空間(D)在保持記憶體位址(MA)之下被區分為複數個分割記憶體110a、110b…。舉例來說,搜尋記憶體墊100及複數個分割記憶體110a、110b…的實施例如第5~7圖、第10圖以及第11圖等所示。
首先,參照第5圖,簡單地對搜尋記憶體墊100及記憶於其中的登錄位址(EA)與關鍵資料(KD)的關係作說明。如第5圖所示,搜尋記憶體墊100沿著y軸方向依序地分配複數個記憶體位址(MA),由該等記憶體位址(MA)來特定記憶體空間(D)的位址(地址)。記憶體空間(D)沿著x軸方向具有記憶資料的區域,搜尋記憶體墊100被區分為複數個分割記憶體110a、110b…,複數個分割記憶體110a、110b…保持有記憶體位址(MA)及由記憶體位址(MA)特定的記憶體空間(D)。又,各複數個分割記憶體110a、110b…的記憶體位址(MA)係共通的。也就是說,各分割記憶體110a、110b…分別賦予與記憶體位址(MA)形成一對一對應及分別賦予與由記憶體位址(MA)特定的記憶體空間(D)形成一對一對應。依此情形,搜尋記憶體墊100可視作被區分為複數個分割記憶體110a、110b…。換句話說,藉由複數個分割記憶體110a、110b…的集合,來構築搜尋記憶體墊100。
本發明的半導體裝置10,其可做為聯想記憶體(Content Addressable Memory,CAM)利用。也就是說,半導體裝置10將對應關鍵資料(KD)的登錄位址(EA)寫入搜尋記憶體墊100。之後,半導體裝置10或是與前述動作同時地將賦予對應之關鍵資料(KD)的登錄位址(EA)寫入確認用記憶體300。另一方面,若對半導體裝置10輸入做為搜尋對象的關鍵資料,半導體裝置10會讀取並輸出對應該關鍵資料(KD)的登錄位址(EA)。也就是說,「關鍵資料」指的是記憶在半導體裝置10的所需資料。又,「登錄位址」指的是表示記憶有關鍵資料(KD)之記憶體(具體來說 是確認用記憶體300)的位置場所(位址)的元資料。
在第5圖所示的實施例中,登錄位址(EA)係定義做為以16進位2位數表示之8位元的資料,8位元的登錄位址(EA)具有00~FF的值。半導體裝置10係對一個登錄位址(EA)賦予對應,並記憶一個關鍵資料(KD)。也就是說,對一個關鍵資料(KD)分配一個登錄位址(EA)。因此,登錄位址(EA)為8位元資訊的情況下,半導體裝置10可記憶256個關鍵資料(KD)。是以,登錄位址設定為8位元的半導體裝置10總共的登錄位址數為256個登錄位址。另外,在本發明中,登錄位址(EA)只要是2位元以上的資料都沒有問題。舉例來說,登錄位址(EA)也可以是3位元、4位元、6位元、或是8位元。又,登錄位址(EA)的位元數較佳係與搜尋記憶體墊100的記憶體位址(MA)的位元數一致。在第5圖所示的實施例中,登錄位址(EA)與記憶體位址(MA)皆被設定為8位元。
又,在第5圖所示的實施例中,輸入半導體裝置10的關鍵資料(KD)被設定為144位元的資料。若將144位元的關鍵資料(KD)以對應登錄位址(EA)之位元數的方式分割成各8位元,可分割成18個(144位元÷8位元=18)資料(分割資料)。於此,在本發明的半導體裝置10中,構成搜尋記憶體墊100之分割記憶體110a、110b…的數量,至少必須是關鍵資料的分割數(18)以上的數量。另外,關鍵資料(KD)的位元數並不限定為144位元,可以依據需要適當地調整。又,將關鍵資料(KD)分割成複數個分割資料時,除關鍵資料(KD)之位元數的除數,較佳係登錄位址(EA)的位元數。也就是說,較佳為(分割記憶體的數量)≧(KD的位元數)÷(EA的位元數)。
又,在第5圖所示的實施例中,各分割記憶體110a、110b…的記憶體位址(MA)分別是以8位元所定義的資料(資訊)。也就是說,在第5圖所示的實施例,從關鍵資料(KD)分割的分割資料與記憶體位址(MA)分別在設定為8位元的點是共通的。依此情形,分割資料與記憶體位址(MA)的位元數較佳係一致的。另外,如上述內容,記憶體位址(MA)的位元數與登錄位址(EA)的位元數也是一致的。
依此情形,在本發明的半導體裝置10中,搜尋記憶體墊100係用以寫入登錄位址(EA)的記憶體空間(D)在保持記憶體位址(MA) 之下被區分為複數個分割記憶體110a、110b…,各分割記憶體例如可使用靜態隨機存取記憶體SRAM(Static Random Access Memory)等記憶裝置來構成。也就是說,搜尋記憶體墊100可由做為分割記憶體110a、110b…功能的複數個SRAM所構築。這意味著,本發明可為利用複數個SRAM所實現的CAM。如本發明所述,利用複數個SRAM所實現的CAM稱作SRAM-CAM。
又,如第5圖所示的實施例,半導體裝置10可記憶的關鍵資料(KD)數量(總登錄位址數)定為256個位址的情況下,用以識別該256個位址的必要登錄位址(EA)的位元大小為8位元。又,輸入半導體裝置10的關鍵資料的位元大小為144位元的情況下,則將登錄位址(EA)的位元數以8除變為18。以這樣的條件思考,分割記憶體110a、110b…的數量至少需要18個以上。
在本發明的半導體裝置10中,最低限需要的分割記憶體110a、110b...其數量N(搜尋記憶體100的分割數N)可由以下的算式求出。
(算式)N=L/log2˙M
L:關鍵資料長度(位元數)
M:總登錄位址數
N:分割記憶體的最小個數(搜尋記憶體墊的分割數)
接著,參照第1~7圖,針對半導體裝置10進行的寫入處理及讀取處理做說明。另外,針對第1圖及第2圖所示之編碼電路500所進行的編碼處理則於後面詳述,首先針對該編碼處理除外之半導體裝置10進行的基本寫入處理做說明。
如第1圖所示,本實施態樣的控制電路200包含輸入部210、分割部200、寫入部230、讀取部240、確認部250、輸出部260以及精選部270,這些元件210~270係將控制電路200的功能示意地分類後所表示的元件。亦即,控制電路200利用這些元件210~270,執行對搜尋記憶體墊100寫入登錄位址(EA),讀取記憶在搜尋記憶體墊100之登錄位址(EA)的處理。又,第2圖中係一覽地顯示控制電路200其各元件之資訊處理的流程。
首先,說明由控制電路200執行之登錄位址(EA)的寫入處理。基本上,寫入處理的主流程圖係由第3圖所示。又,第3圖所示之主流程圖中,將登錄位址(EA)寫入搜尋記憶體墊100的處理(步驟S5)的具體 的流程係由第4圖所示。更進一步,寫入處理的具體實施例由第5~7圖所示。在此的寫入處理,指的是將新的關鍵資料(KD)記憶在半導體裝置10的處理。在該半導體裝置10,係執行將對應新的寫入對象之關鍵資料(KD)的登錄位址(EA)寫入搜尋記憶體墊100的處理。
如第3圖所示,在寫入處理中,首先寫入對象的關鍵資料被輸入於半導體裝置10(步驟S1)。在此,如第2圖所示,寫入對象的關鍵資料輸入於控制電路200的輸入部210。若寫入對象的關鍵資料輸入於控制電路200的輸入部210,該輸入部210將關鍵資料往分割部220及寫入部230送出。又,輸入部210也可以是將輸入的關鍵資料經由編碼電路500往分割部220送出。另外,針對編碼電路500進行的處理(步驟S2)則於後面詳述。依此情形,輸入部210係做為控制電路200中的輸入介面來作動。
接著,分割部220將寫入對象的關鍵資料分割成複數個分割資料(步驟S3)。舉例來說,分割部220較佳係將關鍵資料分割成與構築搜尋記憶體墊100之分割記憶體110a、110b…的數量相同的數量。也就是說,分割部220用以分割關鍵資料的分割數n,較佳係與與構築搜尋記憶體墊100之分割記憶體110a、110b…的數量N相同。依此情形,可將所有由分割部220複數地分割的關鍵資料(分割資料),分別依序地對複數個分割記憶體110a、110b…分配。舉例來說,在第5圖所示的實施例中,半導體裝置10可假設為被輸入144位元的關鍵資料。又,分配給各關鍵資料的登錄位址的位元數為8位元,故分割記憶體的數量為18。在這樣的條件下,分割部220較佳係將144位元的關鍵資料以每8位元分割成18個分割資料。藉由分割部220,將144位元的關鍵資料每8位元變換為18個分割資料。另外,分割部220的分割條件係可相應分割記憶體的數量、登錄位址的位元數、或關鍵資料的位元數等適當地變更,由分割部220所生成的複數個分割資料係往寫入部230送出。
更詳細地說,由分割部220分割的分割資料的位元數(α),較佳係與搜尋記憶體墊100的記憶體位址的位元數(β)相等(α=β)。舉例來說,如第5圖等所示,當搜尋記憶體墊100記憶體位址(MA)以8位元表示時,分割部220較佳係將關鍵資料(KD)分割成8位元的分割資料。又例如,當搜尋記憶體墊100記憶體位址(MA)以2位元表示時,分割部220較 佳係將關鍵資料(KD)分割成2位元的分割資料。依此情形,在後的處理中,可將分割部220分割的各個分割資料分別做為位址,適當地分配給構築搜尋記憶體墊100的分割記憶體。
如第1圖所示,寫入部230係具有對構築搜尋記憶體墊100的複數個分割記憶體110a、110b…等、確認用記憶體300、備份記憶體400寫入預設資料的功能。
如第1圖及第2圖所示,若對半導體裝置10輸入寫入對象的關鍵資料(KD),首先,寫入部230對該關鍵資料(KD)分配固有的登錄位址(EA)。該登錄位址(EA)係為對一個關鍵資料(KD)分配的一個位址。
又,如第1圖所示,寫入部230接受輸入於輸入部210之寫入對象的關鍵資料(KD)(分割狀態前的關鍵資料)。然後,寫入部230將一個登錄位址(EA)分配給關鍵資料(KD),將該等關鍵資料(KD)與登錄位址(EA)建立關聯性,寫入確認用記憶體300(步驟S4)。亦即,新的寫入對象之關鍵資料輸入半導體裝置10之際,寫入部230對該新的關鍵資料分配一個登錄位址,將新的關鍵資料與登錄位址的對應關係預先記憶在確認用記憶體300。藉此,在確認用記憶體300中,登錄位址(EA)與關鍵資料(KD)係以一對一對應被記憶。依此情形,確認用記憶體300也能做為用以記憶關鍵資料與登錄位址其對應關係的資料庫。又,確認用記憶體300係如後述,在執行讀取處理之際,也被利用在執行確認控制電路200讀取的登錄位址是否正確之際,而確認用記憶體300可由SRAM等習知的記憶體裝置所構成。
另外,確認用記憶體300也可以是預先登錄全部登錄位址(EA)的構成。也就是說,確認用記憶體300係可由預先登錄的登錄位址(EA)特定空的記憶體空間,對該空的記憶體空間寫入關鍵資料(KD)。舉例來說,寫入部230對關鍵資料(KD)參照分配的登錄位址(EA),並存取確認用記憶體300。然後,將關鍵資料(KD)寫入由確認用記憶體300內之登錄位址(EA)特定的記憶體空間。即使是這樣的處理,結果上仍是一個登錄位址(EA)與一個關鍵資料(KD)被賦予對應性並存入確認用記憶體300。
接著,寫入部230對關鍵資料(KD)分配固有的登錄位址 (EA)後,或者是分配的同時,對構成搜尋記憶體墊100的複數個分割記憶體110a、110b…,執行將對應關鍵資料(KD)的登錄位址(EA)寫入的處理(步驟S5)。具體來說,寫入部230將複數個分割資料分別分配給分割記憶體110a、110b…,將各分割資料做為位址,並存取各分割記憶體110a、110b…的記憶體空間,依序地將對應分割資料的登錄位址寫入該存取的記憶體空間。在該步驟S5所執行的處理,係於第4圖做更詳細的說明。
第4圖的流程圖係將關鍵資料(KD)分割成n個分割資料,並顯示該分割資料定義為第k個的情況。如第4圖所示,首先將“1”代入“k”,開始進行n個分割資料中第一個(最先)之分割資料的處理(步驟S5A)。
其次,寫入部230對第一個(第k個)分割資料分配固有的登錄位址(EA)同時,將該第一個分割資料做為位址,存取分割記憶體的記憶體空間(步驟S5B)。具體來說,寫入部230首先將第一個(第k個)分割資料往第一個(第k個)分割記憶體110a送出。又,寫入部230從分配有第一個分割記憶體110a之y軸的複數個記憶體位址(MA)中,找出與第一個分割資料相同值的記憶體位址(MA)。然後,寫入部230從第一個分割記憶體110a的記憶體空間中,存取由具有與第一個分割資料相同值的記憶體位址(MA)所特定的記憶體空間。
接著,寫入部230判斷基於第一個(第k個)分割資料存取的記憶體空間中,是否已經寫入其他分割資料對應的登錄位址、登錄位址彼此的衝突是否發生(步驟S5C)。舉例來說,現在進行寫入處理的關鍵資料之前,當別的關鍵資料之寫入處理被執行時,即發生登錄位址彼此的衝突。
在步驟S5C中,判斷登錄位址的衝突沒有發生的情況下,寫入部230將對應第一個(第k個)分割資料的登錄位址,寫入基於分割資料存取之第一個分割記憶體110a的記憶體空間(步驟S5D)。藉此,結束對應第一個(第k個)分割資料之登錄位址的寫入處理。
在此,在本發明如第4圖所示,從其中一個關鍵資料(KD)得到的複數個分割資料中,對一個分割資料的登錄位址(EA)寫入成功時,對之後的分割資料就停止登錄位址(EA)的寫入處理。因此,在步驟S5D 之後,將回到主流程(第3圖),結束全部登錄位址的寫入處理。依此情形,本發明對一個關鍵資料(KD)只將一個登錄位址(EA)寫入搜尋記憶體墊100內。藉此,擴大寫入容量(搜尋容量)的同時,達到寫入處理的高速化。又,藉由寫入容量的擴大,實現半導體裝置整體的小型化。
另一方面,在步驟S5C中,基於第一個(第k個)分割資料存取的第一個分割記憶體110a的記憶體空間中,被判斷已經寫入對應其他分割資料的登錄位址(EA)情況下,寫入部230不執行對應該第一個分割資料之登錄位址的寫入處理(步驟S5E)。因此,在記憶體空間內,只會留存對應已經結束寫入處理的其他分割資料之登錄位址。依此情形,本發明只要將一個登錄位址記錄在一個記憶體空間即可。由此點也可知,本發明可達到寫入處理的效率化。
如步驟S5E,登錄位址的寫入失敗的情況下,寫入部230執行下一個分割資料的寫入處理。也就是說,上述步驟S5E之後,寫入部230將“k”加上“1”,將該“k+1”的值代入“k”(步驟S5F)。然後,寫入部230確認經由步驟S5F得到的“k”值是否變得與“n”(關鍵資料的分割數)相同(步驟S5G)。k為未滿n(k<n)的情況下,寫入部230回到步驟S5B。舉例來說,在對第一個(第k個)分割資料結束處理之後,繼續對第二個(第k+1個)分割資料執行讀取處理。依此情形,寫入部230直到登錄位址的寫入成功為止,會依序地處理複數個分割資料。另外,於第4圖所示的實施例中,為了使說明簡單,雖將步驟S5F中的“k”加上“1”,但也可以採用例如是將“k”加上“-1”等,其他可對複數個分割資料一個個處理的其他演算法。
接著,在步驟S5G中,判斷k=n的情況下,對於分割一個關鍵資料(KD)得到的複數個分割資料全體,就說是發生衝突(步驟S5H)。依此情形,登錄位址(EA)的寫入處理發生全衝突的情況下,寫入部230無法將對應關鍵資料(KD)的登錄位址(EA)寫入搜尋記憶體墊100。此時,寫入部230將輸入於輸入210之寫入對象的關鍵資料(KD)與對應關鍵資料(KD)的登錄位址(EA)彼此建立關聯性,執行寫入備份記憶體400的處理(步驟S5I)。備份記憶體400,例如第2圖所示,可將關鍵資料(KD)的登錄位址(EA)賦予一對一對應而加以記憶的記憶體,備份記憶體400 可由例如是SRAM等習知的記憶體所構成,依此情形,寫入部230對於產生全衝突的關鍵資料(KD),為了迴避該全衝突,不會寫入搜尋記憶體墊100,較佳係預備將關鍵資料(KD)寫入備份記憶體400。除記憶體墊100外因預先設置備份記憶體400,故在產生全衝突的關鍵資料(KD)的寫入處理會變得容易的同時,可有效執行產生全衝突的關鍵資料(KD)的搜尋處理(讀取處理)。另外,在寫入處理中,將關鍵資料寫入發生全衝突的備份記憶體400情況下,可省略將關鍵資料寫入上述確認用記憶體300的寫入處理(步驟S4)。也就是說,將關鍵資料寫入備份記憶體400的情況下,可不將關鍵資料寫入確認用記憶體300,也可將之寫入。
如上述內容,寫入部230依步驟S5A~S5I,將對應寫入對象之關鍵資料(KD)的登錄位址(EA),執行寫入搜尋記憶體墊100或備份記憶體400的寫入處理。之後,寫入部230結束寫入處理,回到第3圖所示的主流程。
接著,參照第5~7圖,針對寫入部230進行的寫入處理列舉具體例子說明。
首先,第5圖係顯示基本寫入處理的一實施例。在第5圖所示的實施例中,“00_01_02_03_04_05_06_07_08_09_0A_0B_0C_0D_0E_0F_10_11”值的關鍵資料(KD)被輸入於半導體裝置10。另外,下底線係為了方便說明所附加的記號,實際上是不存在的。關鍵資料(KD)係以16進位表示的144位元值。寫入部230首先對該關鍵資料(KD)分配具有“00”值的登錄位址(EA),登錄位址(EA)係以16進位2位數表示的8位元值。另外,登錄位址(EA)可由數值小的依序分配。但是,登錄位址(EA)可例如是隨機地分配,也可以是適當地依序分配給空的位址。
又,如第4圖所示,寫入部230將做為寫入對象的關鍵資料(KD)與固有的登錄位址(EA)賦予對應,將其數值寫入確認用記憶體300。藉此,登錄位址(EA)與關鍵資料(KD)係以一對一賦予對應後被記憶在確認用記憶體300中。
又,若關鍵資料(KD)被輸入於半導體裝置10,分割部220將該關鍵資料(KD)分割成複數個分割資料。在第5圖所示的實施例中, 搜尋記憶體墊100的記憶體位址(MA)及登錄位址(EA)係8位元的數值。又,搜尋記憶體墊100被區分為18個分割記憶體110a、110b、…110m。於是,分割部220將144位元的關鍵資料(KD)以每8位元分割成18個分割資料。因此,各分割資料係為8位元的值。在第5圖所示的實施例中,關鍵資料(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)寫入。如第5圖所示,首先寫入部230將第一個分割資料“00”分配給第一個分割記憶體110a,第一個分割記憶體110a係為具有“00”~“FF”數值的8位元記憶體位址(MA)。在此,寫入部230參照第一個分割資料“00”,指定第一個分割記憶體110a的記憶體位址(MA)“00”,存取由該記憶體位址“00”特定的記憶體空間(D)。然後,寫入部230對由記憶體位址“00”特定的記憶體空間(D)將對應第一個分割資料“00”的登錄位址(EA)“00”寫入。在第5圖的實施例,對於第一個分割資料“00”,登錄位址(EA)“00”的寫入處理是成功的。因此,對於第二個以後的分割資料“01”“02”…,就不再執行登錄位址(EA)的寫入處理。是以,對第5圖的關鍵資料(KD)來說,只須對第一個分割資料“00”執行登錄位址(EA)寫入處理即可。
接著,參照第6圖,說明寫入處理中,登錄位址(EA)的「衝突」產生之情況的實施例。在本發明的半導體裝置,寫入部230將分割資料做為位址,將對應該分割資料的登錄位址(EA)寫入分割記憶體110a…。因此,相同的分割記憶體其相同的記憶體空間有可能會被寫入複數個登錄位址(EA)。如此情形,在本發明說明書中,係將相同的記憶體空間被寫入複數個登錄位址的現象以「衝突」一詞表現。於此,本發明的半導體裝置在執行登錄位址(EA)的寫入處理時產生「衝突」的情況下,則不將登錄位址(EA)重複地寫入發生「衝突」的記憶體空間。寫入處理中發生衝突的情況下,寫入部230對發生衝突的分割資料不進行登錄位址的寫入處理,而是對下一個分割資料開始登錄位址的寫入處理。
在第6圖所示的實施例,接續第5圖所示的關鍵資料(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)。然後,寫入部230將關鍵資料(KD)與登錄位址(EA)賦予對應,登錄於確認用記憶體300。
又,若關鍵資料(KD)被輸入於半導體裝置10,分割部220將該關鍵資料(KD)分割成複數個分割資料,分割部220將144位元的關鍵資料(KD)以每8位元分割成18個分割資料。在第6圖所示的實施例中,關鍵資料(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)寫入。如第6圖所示,首先寫入部230將第一個分割資料“00”分配給第一個分割記憶體110a,並參照第一個分割資料“00”,指定第一個分割記憶體110a的記憶體位址(MA)“00”,存取由該記憶體位址“00”特定的記憶體空間(D)。然後,寫入部230準備將對應第一個分割資料“00”的登錄位址(EA)“01”寫入該記憶體空間(D)。然而,由該記憶體位址“00”特定的記憶體空間(D)中,已經被寫入其他登錄位址(EA)“00”(參照第5圖)。因此寫入部230不能將新的登錄位址(EA)“01”寫入此記憶體空間(D)中,依此情形,一個記憶體空間中被寫入複數個登錄位址(EA)的現象係為「衝突」。產生此「衝突」的情況下,寫入部230對於第一個分割資料“00”,就不將登錄位址(EA)“01”寫入而結束處理。
其次,寫入部230對於第二個分割資料“02”開始將登錄位址(EA)“01”寫入的處理。也就是說,寫入部230將第二個分割資料“02”分配給第二個分割記憶體110b,並參照第二個分割資料“02”,指定第二個分割記憶體110b的記憶體位址(MA)“02”,對由該記憶體位址“02”特定的記憶體空間(D),將對應第二個分割資料“02”的登錄位址(EA)“01”寫入。關於第二個分割資料“02”,由於沒有產生衝突,因此能寫入第二個分割記憶體110b。因此,寫入部230對由記憶體位址“02”特定的記憶體空間(D),將對應第二個分割資料“02”的登錄位址(EA)“01” 寫入。依此方式,在第6圖所示實施例,對於第二個分割資料“02”,登錄位址(EA)“01”的寫入處理是成功的。因此,對於第三個以後的分割資料“02”“03”…,就不再執行登錄位址(EA)的寫入處理。因而,對第6圖的關鍵資料(KD)來說,只須對第二個分割資料“02”執行登錄位址(EA)寫入處理即可。
依此情形,寫入部230對發生衝突的分割資料不執行登錄位址的寫入處理。又,寫入部230係直到登錄位址的寫入成功前,會一直對複數個分割資料執行寫入處理。然後,當登錄位址的寫入處理成功時,結束寫入處理,對之後的分割資料就不執行寫入處理。藉此,擴大搜尋記憶體墊的寫入容量同時,也可達到寫入處理的高速化。
接著,參照第7圖,說明在寫入處理中,產生登錄位址(EA)之全衝突情況的實施例。本發明的半導體裝置10如上述,將登錄位址(EA)依序地登錄於搜尋記憶體墊100的記憶體空間。可是,由一個關鍵資料(KD)生成的所有的複數個分割資料尚存在產生衝突的可能性。雖然產生這樣全衝突的可能性相當地低,但理論上還是可能發生。於是,在第7圖係顯示全衝突發生之情況下的對策。
第7圖係顯示全衝突發生的情況下寫入處理的一實施例,在第7圖所示的實施例中,在結束一定程度複數個關鍵資料(KD)的寫入處理階段,“00_02_02_03_04_05_05_07_08_09_01_0B_0C_0D_0E_0F_10_FF”值的關鍵資料(KD)係被輸入於半導體裝置10,寫入部230首先對該關鍵資料(KD)分配具有“FF”值的登錄位址(EA)。
接著,若關鍵資料(KD)被輸入於半導體裝置10,分割部220將該關鍵資料(KD)分割成複數個分割資料,分割部220將144位元的關鍵資料(KD)以每8位元分割成18個分割資料。在第7圖所示的實施例中,關鍵資料(KD)係被分割成“00”“02”“02”“03”“04”“05”“05”“07”“08”“09”“01”“0B”“0C”“0D”“0E”“0F”“10”“FF”的18個分割資料。
之後,寫入部230將由分割部220生成的分割資料分配給分割記憶體110a~110m,並將登錄位址(EA)寫入。然而,第1~第18個的 分割記憶體110a~110m全體中,對應分割資料的記憶體空間(D)已經被寫入其他登錄位址(EA)。因此,寫入部230無法將對應分割資料的登錄位址(EA)寫入搜尋記憶體墊100內。
於是,這樣的全衝突發生的情況下,寫入部230將產生全衝突的關鍵資料(KD)與固有的登錄位址(EA)賦予對應,寫入備份記憶體400。備份記憶體400例如第2圖所示,係為可將關鍵資料(KD)與登錄位址(EA)以一對一賦予對應並記憶的記憶體,備份記憶體400可由例如是SRAM等習知的記憶體所構成。依此情形,寫入部230對於寫入搜尋記憶體墊100就產生全衝突的關鍵資料(KD),較佳係寫入備份記憶體400。藉由除搜尋記憶體墊100之外因預先準備設置備份記憶體400,故產生全衝突的關鍵資料(KD)的寫入處理會變得容易,同時可有效進行產生全衝突的關鍵資料(KD)的搜尋處理(讀取處理)。另外,當寫入部230將上述發生全衝突的關鍵資料(KD)寫入備份記憶體400時,可將與其相同的關鍵資料(KD)寫入確認用記憶體300,也可不將之寫入。而是否將產生全衝突的關鍵資料寫入確認用記憶體300,係可任意地設計。
接著,參照第1圖、第2圖以及第8~11圖,針對由半導體裝置10進行的基本讀取處理(搜尋處理)做說明。在此的讀取處理,指的是搜尋對象的關鍵資料(KD)被輸入於半導體裝置10時,該半導體裝置10搜尋搜尋記憶體墊100,讀取對應搜尋對象之關鍵資料(KD)的登錄位址(EA)並輸出的處理。另外,對於包含編碼處理的讀取處理則於後面說明。
基本寫入處理的主流程圖係第8圖所示,又,第8圖所示的主流程中,從搜尋記憶體墊讀取登錄位址(EA)的處理(步驟S9),其具體的流程係於第9圖顯示。更進一步,讀取處理的具體例子係由第10圖及第11圖所示。在該半導體裝置10,係執行以下的讀取處理:將對應搜尋對象之關鍵資料(KD)的登錄位址(EA)從搜尋記憶體墊100讀取。
如第8圖所示,在讀取處理中,首先搜尋對象的關鍵資料被輸入於半導體裝置10(步驟S6)。於此,如第2圖所示,搜尋對象的關鍵資料係被輸入於控制電路200的輸入部210。若搜尋對象的關鍵資料被輸入於控制電路200的輸入部210,該輸入部210將關鍵資料往分割部220及確認部250送出。又,輸入部210也可經由編碼電路500將輸入的關鍵資料往分割部 220送出。另外,關於由編碼電路500所進行的處理(步驟S7)係於後面詳述。
如第8圖所示,分割部220將搜尋對象的關鍵資料(KD)分割成複數個分割資料(步驟S8)。於此,分割部220分割搜尋對象的關鍵資料(KD)時的條件(演算法)係與分割上述寫入對象之關鍵資料(KD)時的條件(演算法)相同,由分割部220得到的複數個分割資料係往讀取部240送出。
接著,讀取部240執行從搜尋記憶體墊100讀取對應搜尋對象之關鍵資料(KD)之登錄位址(EA)的處理(步驟S9)。具體來說,讀取部240將複數個分割資料分別分配給分割記憶體110a、110b…,將各分割資料做為位址並存取各分割記憶體110a、110b…的記憶體空間,依序地讀取記憶在該存取記憶體空間的登錄位址(EA),在步驟S9中執行的處理係於第9圖做更詳細的說明。
在第9圖,以n定義關鍵資料(KD)的分割數,並以k定義該分割資料的順序。如第9圖所示,首先將“1”代入“k”,開始進行n個分割資料中第一個(最先)之分割資料的處理(步驟S9A)。
其次,讀取部240將第一個分割資料做為位址,存取分割記憶體的記憶體空間(步驟S9B),此步驟S9B的處理係與第4圖所示之步驟S5B相同。也就是說,讀取部240首先將第一個(第k個)分割資料往第一個(第k個)分割記憶體110a送出。又,讀取部240從在第一個分割記憶體110a之y軸分配的複數個記憶體位址(MA)中,找出與第一個分割資料相同值的記憶體位址(MA)。然後,讀取部240從第一個分割記憶體110a的記憶體空間中,存取由具有與第一個分割資料相同值的記憶體位址(MA)所特定的記憶體空間。
之後,讀取部240從步驟S9B存取的記憶體空間將登錄位址(EA)讀取(步驟S9C)。另外,當存取的記憶體空間沒有記憶登錄位址(EA)時,讀取部240就不進行讀取,或者讀取部240也可以是產生“無搜尋結果”的訊號。
讀取部240係對分割記憶體110a、110b...全體執行這樣的讀取處理,也就是說,在上述步驟S9C之後,讀取部240將“k”加上“1”, 將該“k+1”的值代入“k”(步驟S9D)。然後,讀取部240確認經由步驟S9D得到的“k”值是否變得與“n”(關鍵資料的分割數)相同(步驟S9E)。k為未滿n(k<n)的情況下,讀取部240回到步驟S9B。舉例來說,在對第一個(第k個)分割資料結束處理之後,繼續對第二個(第k+1個)分割資料執行讀取處理。依此情形,讀取部240,會基於複數個分割資料執行讀取處理,直到全部的分割記憶體110a、110b...的讀取處理結束。另外,在第9圖所示的實施例中,為了使說明簡單,雖將步驟S9D中的“k”加上“1”,但也可以是採用其他演算法。
讀取部240在步驟S9E中,判斷對全部的分割資料結束讀取處理的情況下,也就是判斷達到k=n的情況下,會移至下一個步驟S9F。在步驟S9F中,讀取部240首先將重複執行步驟S9B~步驟S9E讀取的一個或複數個登錄位址(EA)往確認部250送出,確認部250若接收從讀取部240來的一個或複數個登錄位址(EA),則將該等登錄位址做為關鍵字,存取確認用記憶體300。然後,確認部250從確認用記憶體300將關鍵資料讀取(KD),關鍵資料係與該等一個或複數個登錄位址(EA)被賦予對應且記憶在確認用記憶體。亦即,如上述內容,在第3圖所示的步驟S4中,寫入處理時在確認用記憶體300中,寫入對象的關鍵資料(KD)與登錄位址(EA)被賦予對應且記憶於其中。因此,在讀取處理時,確認部250只要將登錄位址(EA)做為關鍵字搜尋該確認用記憶體300,就可讀取對應該登錄位址(EA)的關鍵資料(KD)。
接著,確認部250從輸入部210接收搜尋對象的關鍵資料(KD),並判斷在步驟S9F從確認用記憶體300讀取的關鍵資料(KD)與該搜尋對象的關鍵資料(KD)是否一致(步驟S9G)。也就是說,在本發明的讀取處理,可思考是讀取部240從搜尋記憶體墊100讀取複數個登錄資料(EA)的候補。若這樣登錄位址(EA)的候補有複數個存在,就無法確切地決定對應搜尋對象之關鍵資料(KD)的登錄位址(EA)。於是,為了從複數個登錄位址(EA)的候補中決定一個對應搜尋對象之關鍵資料(KD)的登錄位址(EA),存在有一確認部250,該確認部250係執行一致判斷處理(步驟S9G)。亦即,確認部250對複數個登錄位址(EA)的候補,分別從確認用記憶體300讀取對應該等登錄位址之候補的複數個關鍵資料(KD) 的候補。又,確認部250將複數個關鍵資料(KD)的候補與從輸入部210接收的搜尋對象的關鍵資料(KD)做對照。然後,確認部250判斷在複數個關鍵資料(KD)的候補中是否存在與搜尋對象的關鍵資料(KD)一致者。
在步驟S9G中,確認部250判斷複數個關鍵資料(KD)的候補中存在與搜尋對象的關鍵資料(KD)一致者時,移行至步驟S9H。在步驟S9H,將登錄位址(EA),從確認部250往輸出部260輸出(步驟S9H),該登錄位址(EA)為對應於由確認部250判斷與搜尋對象的關鍵資料(KD)一致之關鍵資料(KD)的登錄位址(EA)。該讀取處理返回到第8圖的主流程,輸出部260連接外部電路。因此,藉由輸出部260將登錄位址(EA)往外部電路輸出(步驟S10)。依此情形,輸出部260做為半導體裝置10的輸出介面。藉此,半導體裝置10可將對應搜尋對象之關鍵資料(KD)的登錄位址(EA)做為搜尋結果輸出。
另一方面,在步驟S9G中,確認部250判斷複數個關鍵資料(KD)的候補中不存在與搜尋對象的關鍵資料(KD)一致者時,移行至步驟S9I。在步驟S9I,讀取部240基於搜尋對象的關鍵資料(KD)參照備份記憶體400(步驟S9I)。之後,讀取部240判斷該參照的備份記憶體400內是否記憶與搜尋對象的關鍵資料(KD)相同的關鍵資料(步驟S9J)。於此,備份記憶體400內有記憶與搜尋對象的關鍵資料(KD)相同的關鍵資料時,讀取部240讀取該關鍵資料與被建立關聯性的登錄位址(EA)。之後,讀取部240將從備份記憶體400讀取的登錄位址(EA)往輸出部260輸出(步驟S9H)。另一方面,備份記憶體400內未記憶與搜尋對象的關鍵資料(KD)相同的關鍵資料時,讀取部240係判斷“無一致資料”(步驟S9K)。也就是說,“無一致資料”意味著與搜尋對象的關鍵資料(KD)相同的關鍵資料(KD)還沒被寫入半導體裝置10。讀取部240判斷“無一致資料”的情況下,係結束讀取處理。
於此,讀取部240與確認部250之間還可設置精選部270(參照第1圖)。也就是說,在上述步驟S9H之前,還可由精選部270執行登錄位址的候補的精選處理。若具體來說,在本發明的讀取處理之中,會有由讀取部240讀取負數個登錄位址的情況。在此情況下,若分別對複數個登錄位址對照確認用記憶體300,可確切地決定對應搜尋對象之關鍵資料的登錄位 址。然而,若由讀取部240讀取的登錄位址一多,逐一地對照確認用記憶體300可能導致讀取處理的延遲。於是,在讀取部240與確認部250之間係配置精選部270。然後,藉由該精選部270,從讀取部240讀取的複數個登錄位址之中,執行精選比該登錄位址數量少之候補的處理,再將精選後的登錄位址往確認部250送出。藉此,因為減少了藉由確認部250參照確認用記憶體300的次數,所以可達到搜尋處理的高速化。而對於這樣精選部270的具體實施例,係參照第14圖及第15圖於後面詳細說明。
接著,參照第10圖及第11圖,針對由讀取部240與確認部250進行的讀取處理列舉具體例子說明。
首先,第10圖係顯示基本讀取處理的一實施例。在第10圖所示的實施例,“00_02_02_03_04_05_06_07_08_09_0A_0B_0C_0D_0E_0F_10_FF”值的關鍵資料(KD)係做為搜尋對象被輸入於半導體裝置10。搜尋對象的關鍵資料(KD)被輸入於半導體裝置10時,分割部220將該關鍵資料(KD)分割成複數個分割資料。在第10圖所示的實施例中,分割部220將144位元的關鍵資料(KD)以每8位元分割成18個分割資料。因此,各分割資料係為8位元的值。在第10圖所示的實施例中,關鍵資料(KD)係被分割成“00”“02”“02”“03”“04”“05”“06”“07”“08”“09”“0A”“0B”“0C”“0D”“0E”“0F”“10”“FF”的18個分割資料。
之後,讀取部240將由分割部220生成的分割資料做為位址並存取分割記憶體110a~110m的記憶體空間(D),讀取登錄位址(EA)。如第10圖所示,首先讀取部240將第一個分割資料“00”分配給第一個分割記憶體110a,並參照第一個分割資料“00”,指定第一個分割記憶體110a的記憶體位址(MA)“00”,存取由該記憶體位址(MA)“00”特定的記憶體空間(D)。在存取的記憶體空間(D),因為記憶有登錄位址(EA)“00”,讀取部240讀取該登錄位址(EA)“00”。同樣地,讀取部240將第二個分割資料“02”做為位址,存取第二個分割記憶體110b的記憶體空間(D),讀取登錄位址(EA)“01”。讀取部240係對全部的分割資料與分割記憶體實行這樣的處理,在第10圖所示的實施例,從第一個分割記憶體110a讀取登錄位址“00”,從第二個分割記憶體110b讀取登錄位址 “01”,從第三個分割記憶體110c讀取登錄位址“02”,從第18個分割記憶體110m讀取登錄位址“FE”。而對其他的分割記憶體,在該記憶體空間(D)沒有記憶登錄位址,讀取部240係判斷“無搜尋結果”。
依此情形,在本發明的讀取處理中,會有讀取複數個例如是“00”“01”“02”“FE”的登錄位址。在此情況下,無法確切地決定哪個登錄位址是對應搜尋對象的關鍵資料。於是,讀取部240將讀取的複數個登錄位址“00”“01”“02”“FE”做為候補,由確認部250執行確認其中是否含有正確登錄位址的處理。
若具體地說明,如第10圖所示,確認部250將由讀取部240讀取的複數個登錄位址的候補“00”“01”“02”“FE”分別做為關鍵字,存取確認用記憶體300,確認用記憶體300記憶有與登錄位址(EA)一對一地被賦予對應的關鍵資料(KD)。因此,確認部250能將對應登錄位址(EA)的候補“00”“01”“02”“FE”的關鍵資料(KD)從確認用記憶體300讀取。然後,確認部250將從確認用記憶體300讀取的關鍵資料(KD)分別與搜尋對象的關鍵資料(KD)比較,確認彼此是否一致。在第10圖所示的實施例中,確認用記憶體300中,在與登錄位址“02”賦予對應的記憶區域,係記憶“00_02_02_03_04_05_06_07_08_09_0A_0B_0C_0D_0E_0F_10_FF”值的關鍵資料(KD),該關鍵資料(KD)係與搜尋對象的關鍵資料(KD)一致。因此,確認部250可判斷對應搜尋對象之關鍵資料(KD)的登錄位址(EA)就是“02”。於是,確認部250輸出關鍵資料(KD)彼此的一致資料同時,也輸出對應搜尋對象之關鍵資料(KD)的登錄位址(EA)“02”。藉此,可確切地決定對應搜尋對象之關鍵資料(KD)的登錄位址(EA)。
在另一方面,確認部250參照確認用記憶體300在結果上,會有判斷由讀取部240讀取的登錄位址的候補中不存在對應搜尋對象之關鍵資料(KD)之者時,這樣的實施例係於第11圖所示。
在第11圖所示的實施例,輸入“00_02_02_03_04_05_06_07_08_09_01_0B_0C_0D_0E_0F_10_FF”的值做為搜尋對象的關鍵資料(KD),分割部220將輸入的關鍵資料(KD)分割成18份。又,讀取部240將複數個分割資料分別分配給構成搜尋記憶體墊100 的複數個分割記憶體110a~110m。又,讀取部240將各分割資料做為位址,並存取各分割記憶體110a~110m的記憶體空間(D),讀取記憶在該記憶體空間的登錄位址(EA)。在第11圖的實施例,及在第10圖所示的實施例,從第一個分割記憶體110a讀取登錄位址“00”,從第二個分割記憶體110b讀取登錄位址“01”,從第三個分割記憶體110c讀取登錄位址“02”,從第18個分割記憶體110m讀取登錄位址“FE”。然後,確認部250使用讀取部240讀取之登錄位址(EA)的候補,參照確認用記憶體300,讀取與該登錄位址(EA)的候補建立關聯性的關鍵資料(KD)。然後,確認部250將從確認用記憶體300讀取的複數個關鍵資料(KD)與搜尋對象的關鍵資料(KD)比較,判斷是否一致。可是,在第11圖的實施例中,確認用記憶體300並未記憶與搜尋對象的關鍵資料(KD)一致的關鍵資料(KD)。因此,確認部250係判斷“不一致”。
然而,如第7圖所示,將對應關鍵資料的登錄位址寫入之際,在全部的分割記憶體會有發生衝突使登錄位址無法寫入分割記憶體內的情況。這樣的全衝突發生的情況下,於本發明係將全衝突的關鍵資料(KD)與對應該全衝突之關鍵資料的登錄位址(EA)寫入備份記憶體400(參照第7圖)。因此,如第11圖所示,即使在確認部250判斷“不一致”的情況下,仍會有備份記憶體400內記錄關鍵資料(KD)的情況。於是,如第11圖所示,判斷“不一致”的情況下,讀取部240係搜尋備份記憶體400內部,調查是否有記憶與搜尋對象的關鍵資料一致的關鍵資料。在此,第11圖的實施例中,備份記憶體400內係記憶與搜尋對象的關鍵資料一致的關鍵資料,而對應該關鍵資料的登錄位址係為“FF”。因此,讀取部240藉由搜尋備份記憶體400內部,可判斷對應搜尋對象之關鍵資料的登錄位址為“FF”。因此,讀取部240將登錄位址“FF”做為搜尋結果輸出。
藉由採用上述的寫入方式與讀取方式,本發明的半導體裝置10最大能只以等同於搜尋記憶體墊100的登錄數的數量將關鍵資料(KD)寫入。在第5圖等所示的實施例,由於半導體裝置10的總登錄數為256個登錄數,因此最大可以登錄256個關鍵資料(KD)。是以,可飛躍地提升半導體裝置10的寫入容量。
接著,參照第1~3圖、第8圖、第12圖以及第13圖,針對關 鍵資料(KD)的編碼處理做說明。
如上述內容,本發明的半導體裝置10在登錄位址(EA)的寫入處理發生衝突時,則不將登錄位址寫入記憶體空間。在此,若寫入對象的關鍵資料(KD)有偏移,資料的衝突頻率會變高,發生無法搜尋的資料列變多的問題。舉例來說,如將ID號碼與IP位址以降序連續地寫入的情況,若幾乎相同的資料連續地寫入相同的記憶體墊100,就會發生資料偏移。依此情形,在搜尋記憶體墊100內,登錄位址的衝突發生的機率就會變高。舉例來說,考慮在“00_01_02_03”值的關鍵資料(KD)之後接著輸入“00_01_02_04”值的關鍵資料(KD)的情況,兩個關鍵資料(KD)的值只有最後的1位元不同。因此,後者的關鍵資料(KD)執行寫入處理之際,無法將登錄位址寫入到最後。是以,這種資料的偏移最好是避免為佳。
於是,本發明的半導體裝置10如第1圖及第2圖所示,還包含用以將關鍵資料(KD)編碼的編碼電路500。在寫入處理中,編碼電路500將輸入於控制電路200之寫入對象的關鍵資料(KD)在分割部220分割前編碼(第3圖:步驟S2)。同樣地,在讀取處理中,編碼電路500將輸入於控制電路200之搜尋對象的關鍵資料(KD)在分割部220分割前編碼(第8圖:步驟S7)。在此所提到的編碼,係包含將關鍵資料的值以預設的演算法擴散(分散),或包含將關鍵資料之值的順序排列的處理。依此情形,即使在連續地輸入幾乎相同的關鍵資料情況下,藉由將該等關鍵資料編碼,可以解除寫入搜尋記憶體墊100之資料的偏移。只要資料的偏移解除,就能降低在搜尋記憶體墊100內衝突發生的可能性。結果上,提高了正確地執行資料搜尋的可能性。另外,編碼電路500對寫入對象的關鍵資料(KD)、對搜尋對象的關鍵資料(KD)可使用完全相同的演算法編碼。藉此,可將寫入對象的關鍵資料(KD)與搜尋對象的關鍵資料(KD)整合。
第12圖係示意地顯示由編碼電路500實行之編碼處理的一實施例,如第12圖所示,編碼電路500將寫入對象/搜尋對象的關鍵資料(144位元)分割成複數個分割資料(1~18)。此時的分割處理,只要與上述分割部220進行的處理相同即可。之後,編碼電路500排列複數個分割資料(1~18)的位置。此時的排列處理,基於一定的演算法執行。之後,編碼電路500擴散(分散)排列後的複數個分割資料的值。分割資料之值的擴 散處理,係可基於習知的編碼演算法(加密演算法)執行。舉例來說,藉由執行擴散處理,最先輸入的關鍵資料(KD)較佳係在保持位元數之下,變換成不同的值。在第12圖所示的實施例中,最先的關鍵資料(KD)與擴散處理後的資料(擴散資料)同樣都是144位元的資料。
如上述,編碼電路500藉由例如排列處理與擴散處理的組合,可將關鍵資料(KD)編碼,編碼後的關鍵資料(擴散資料)係輸入控制電路200的分割部220(參照第1圖及第2圖)。之後,如第12圖所示,控制電路200如通常時候將擴散資料分割,生成複數個分割資料,將各分割資料做為位址,存取構成搜尋記憶體墊100的分割記憶體。然後,控制電路200對存取的分割記憶體進行登錄位址(EA)的寫入處理,或者執行從存取的分割記憶體讀取登錄位址(EA)的處理。
第13圖係示意地顯示由編碼電路500實行之編碼處理的其他實施例,如第13圖所示,編碼電路500係複製寫入對象/搜尋對象的關鍵資料(144位元)。舉例來說,如第13圖所示,存在有18個分割資料的情況下,編碼電路500比照該分割記憶體的數量,複製18個關鍵資料(KD),複製的複數個關鍵資料(KD)皆具有相同的值。之後,編碼電路500對具有相同值的複數個關鍵資料(KD),分別基於不同的擴散演算法執行擴散處理。舉例來說,由於關鍵資料(KD)係被複製為18個,因此也準備18種擴散演算法。藉此,可得到具有不同值的擴散資料。依此情形,編碼電路500可從一個關鍵資料(KD)生成複數個(對應分割記憶體的數量)擴散資料。
如上述,編碼電路500藉由例如是複製處理與擴散處理的組合,可將關鍵資料(KD)編碼,複數個擴散資料係輸入控制電路200的分割部220(參照第1圖及第2圖)。之後,如第13圖所示,控制電路200分別將複數個擴散資料分割,從各擴散資料生成複數個分割資料。又,控制電路200將各分割資料做為位址,存取構成搜尋記憶體墊100的分割記憶體。然後,控制電路200對存取的分割記憶體進行登錄位址(EA)的寫入處理,或者執行從存取的分割記憶體讀取登錄位址(EA)的處理。
依此情形,藉由設置編碼電路500將寫入對象的關鍵資料(KD)編碼,可解除被寫入搜尋記憶體墊100之資料的偏移。只要資料的偏移解除,就能降低在搜尋記憶體墊100內衝突發生的可能性。結果上,提 高了正確地執行資料搜尋的可能性。
接著,參照第14圖及第15圖,針對登錄位址(EA)的候補進行精選處理做說明。
第14圖及第15圖顯示的實施例,係用以在登錄位址(EA)的讀取處理中,從由讀取部240讀取的複數個登錄位址(EA)的候補中,精選最可能對應搜尋對象之關鍵資料(KD)者的處理。如上述內容,在本發明的讀取方式中,讀取部240從搜尋記憶體墊100讀取複數個登錄位址(EA)的候補。登錄位址(EA)的候補即使存在複數個,如上述內容,只要逐一地利用確認用記憶體300對照,就可以確切地決定對應搜尋對象之關鍵資料(KD)的登錄位址(EA)。但是,若登錄位址(EA)的候補數一多,由於與確認用記憶體300對照的次數會增加,因此會有發生讀取延遲的可能性。於是,較佳係從由讀取部240讀取的複數個登錄位址(EA)的候補之中,更進一步執行精選,漸少與確認用記憶體300對照的次數。
第14圖首先係顯示將對應寫入對象之關鍵資料(KD)的登錄位址(EA)寫入半導體裝置10的處理概要。如第14圖所示,用以寫入一個關鍵資料(KD)的搜尋記憶體墊100係由第一搜尋記憶體墊100a與第二搜尋記憶體墊100b所構成。也就是說,寫入對象的關鍵資料(KD)被輸入並寫入第一搜尋記憶體墊100a與第二搜尋記憶體墊100b兩者。又,編碼電路500由設置供第一搜尋記憶體墊100a使用的第一編碼電路500a與設置供第二搜尋記憶體墊100b使用的第二編碼電路500b所構成。這些第一編碼電路500a與第二編碼電路500b,各自的編碼方式(擴散式)彼此不同。也就是說,相對於第一編碼電路500a將寫入對象的關鍵資料(KD)以擴散式A擴散,第二編碼電路500b則將寫入對象的關鍵資料(KD)以擴散式B擴散。
如第14圖所示,例如當288位元的關鍵資料(KD)被輸入於半導體裝置10,則對該關鍵資料(KD)分配固有的登錄位址(EA),將他們的關聯性記錄在確認用記憶體300。又,被分配登錄位址(EA)的關鍵資料(KD)係被輸入第一編碼電路500a與第二編碼電路500b兩者。各編碼電路500a與500b係以預設的演算法,將寫入對象的關鍵資料(KD)從288位元長度擴散到366位元長度,兩個電路在此點係共通。依此情形,藉由拉長關鍵資料的位元長度,可降低在寫入處理時全衝突發生的可能性。另一 方面,各編碼電路500a與500b係具有不同的關鍵資料擴散方式。因此,各編碼電路500a與500b雖被輸入相同值的關鍵資料(288位元),但各編碼電路500a與500b所輸出之擴散後的關鍵資料之值完全不同。但是,從各編碼電路500a與500b所輸出之擴散後的關鍵資料,其位元長度(366位元)是相同的。之後,半導體裝置10藉由第一編碼電路500a將擴散後的關鍵資料分割成24份,將各分割資料做為位址,將登錄位址(EA)寫入第一搜尋記憶體墊100a的適當場所。同時,半導體裝置10藉由第二編碼電路500b將擴散後的關鍵資料分割成24份,將各分割資料做為位址,將登錄位址(EA)寫入第二搜尋記憶體墊100b的適當場所。在此的登錄位址(EA)的寫入處理,係與上述方法相同。依此做法,在第14圖的實施態樣中,半導體裝置10使用兩個不同的編碼電路500a、500b,將一個關鍵資料(KD)以不同的編碼方式編碼,並將編碼後的兩個關鍵資料,分別寫入兩個不同的搜尋記憶體墊100a、100b。
如第15圖所示,首先,其係顯示將對應搜尋對象之關鍵資料(KD)的登錄位址(EA)從半導體裝置10讀取的處理概要。在第15圖所示的實施態樣中,半導體裝置10的控制電路200還包含有精選部270,精選部270係設置在讀取部240與確認部250之間。在讀取部240從第一搜尋記憶體墊100a及第二搜尋記憶體墊100b讀取之登錄位址(EA)的候補中,精選部270具有用以從中更進一步執行精選的功能,精選部270係將精選之登錄位址(EA)的候補往確認部250送出。因此,確認部250只需針對由精選部270精選的候補,執行以確認用記憶體300做的對照即可。是以,可達到登錄位址(EA)的搜尋處理的高速化。
若具體地說明,288位元的搜尋對象的關鍵資料(KD)係被輸入於半導體裝置10。搜尋對象的關鍵資料(KD)分別被輸入於第一編碼電路500a與第二編碼電路500b,擴散為366位元。擴散後的兩個關鍵資料(KD)之後分別被分割成24份,讀取部240將藉由第一編碼電路500a得到的分割資料做為位址,存取第一搜尋記憶體墊100a的記憶體空間,讀取記憶於該處的登錄位址(EA)。依此情形,從第一搜尋記憶體墊100a抽出一個或複數個登錄位址(EA)的候補,第一搜尋記憶體墊100a係由24個分割記憶體所構成。因此,從該第一搜尋記憶體墊100a讀取得到的登錄位址(EA) 的候補數,最大為24個。同時,讀取部240將藉由第二編碼電路500b得到的分割資料做為位址,存取第二搜尋記憶體墊100b的記憶體空間,讀取記憶於該處的登錄位址(EA)。依此情形,從第二搜尋記憶體墊100b抽出一個或複數個登錄位址(EA)的候補,從第二搜尋記憶體墊100b讀取得到的登錄位址(EA)的候補數,最大也為24個。
在此,讀取部240將從第一搜尋記憶體墊100a與第二搜尋記憶體墊100b讀取之登錄位址(EA)的候補分別往精選部270送出。於此,精選部270將從第一搜尋記憶體墊100a讀取之登錄位址(EA)的候補與從第二搜尋記憶體墊100b讀取之登錄位址(EA)的候補比較,抽出共通的登錄位址(EA)候補。舉例來說,從第一搜尋記憶體墊100a讀取之登錄位址(EA)的候補中係包含“01”“02”“03”“04”,且從第二搜尋記憶體墊100b讀取之登錄位址(EA)的候補中係包含“03”“04”“05”“06”的情況下,精選部270將這些候補中共通的登錄位址候補“03”“04”抽出。之後,精選部270依此做法將精選的登錄位址候補往確認部250傳達。
確認部250對於從精選部270接收之登錄位址(EA)的候補,執行在確認用記憶體300做的對照。也就是說,確認部250將登錄位址(EA)的候補做為關鍵字並存取確認用記憶體300,讀取與該登錄位址(EA)賦予對應且被記憶的關鍵資料(KD),執行該讀取的關鍵資料(KD)是否與做為搜尋對象輸入的關鍵資料一致的對照處理。然後,從確認用記憶體300讀取的關鍵資料與搜尋對象的關鍵資料一致的情況下,半導體裝置10可將對應該關鍵資料的登錄位址(EA)做為搜尋結果輸出。
如上述內容,藉由在讀取部240與確認部250之間設置精選部270,可減少確認部250對確認用記憶體300執行對照的次數。舉例來說,精選部270不存在的情況下,從第一搜尋記憶體墊100a讀取之登錄位址(EA)的候補中係包含“01”“02”“03”“04”,若從第二搜尋記憶體墊100b讀取之登錄位址(EA)的候補中包含“03”“04”“05”“06”,確認部250最少也須對確認用記憶體300執行四次的對照。相對於此,若存在有精選部270,就可以將登錄位址的候補精選到只有“03”“04”兩個。藉由精選部270的設置,確認部250變成只需對確認用記憶體300執行兩次的對照即可。是以,可實現搜尋處理的高速化。
另外,登錄位址的候補的精選處理並不限定於上述的態樣。亦即,藉由執行精選處理,只要能使藉由確認部250對照確認用記憶體300的登錄位址數量變得比由讀取部240讀取的登錄位址數量少即可。依此情形,以精選部270來說,只要是可讓登錄位址的數量變少者,不論是什麼的態樣都可採用。
接著,參照第16~18圖,針對不容易產生資料偏移的寫入處理方式一實施例做說明。
如參照第5~7圖所說明的內容,本發明的半導體裝置10將寫入對象的關鍵資料分割成複數個分割資料之後,將各分割資料依序地分配給構成搜尋記憶體墊100的複數個分割記憶體110a、110b…,將對應該等資料的登錄位址(EA)依序地寫入。此時,一般上寫入處理係從第一個分割資料開始,接著是第二個,第三個,如後續內容所述,寫入處理係從關鍵資料的前頭往末尾依序地執行。但是,在本發明的半導體裝置10,如上述內容,登錄位址的寫入成功時,就不再執行之後的寫入處理而結束寫入處理。因此,對全部的寫入對象之關鍵資料若一律從第一個分割資料開始寫入處理,存取會集中在第一個分割記憶體110a。又,對全部的寫入對象之關鍵資料若一律從前頭部份開始寫入處理,登錄位址的寫入會集中在搜尋記憶體墊100的前半部分,在後半部分的分割記憶體其空的區域會變多。依此情形,在搜尋記憶體墊100內,若資料寫入結束的區域產生偏移,寫入處理時衝突的發生次數會增加,導致寫入處理產生延遲、讀取處理的精準度低下、或讀取處理產生延遲。於是,以下係說明資料偏移不容易產生之寫入處理方式的一實施例。
在第16圖所示的方式,執行寫入處理之際,係分為從前頭側執行處理的關鍵資料與從末尾側執行處理的關鍵資料。若具體地說明,對(1)的寫入對象之關鍵資料,先擴散編碼化,分割成18個分割資料後,從第一個(前頭)的分割資料以升序執行寫入處理。另一方面,對(2)的寫入對象之關鍵資料,先擴散編碼化,分割成18個分割資料後,從第18個(末尾)的分割資料以降序執行寫入處理。又,對(3)的寫入對象之資料,從第一個(前頭)的分割資料以升序寫入,對(4)的寫入對象之資料,從第18個(末尾)的分割資料以降序寫入。依此情形,在第16圖的寫入方式 中,寫入對象的關鍵資料被輸入時,則分成從前頭開始寫入者與從末尾開始寫入者。藉此,可解除搜尋記憶體墊100內被寫入之資料的偏移。
在第17圖所示的方式,以上下兩段構成搜尋記憶體墊100。也就是說,搜尋記憶體墊100係為在y軸方向連結上側記憶體墊100c與下側記憶體墊100d所構成,上側記憶體墊100c與下側記憶體墊100d分別在x軸方向分割成18個分割記憶體。於此,對(1)的寫入對象之關鍵資料,先擴散編碼化,分割成18個分割資料後,對上側記憶體墊100c從第一個(前頭)的分割資料以升序執行寫入處理。另一方面,對(2)的寫入對象之關鍵資料,先擴散編碼化,分割成18個分割資料後,對下側記憶體墊100d從第18個(末尾)的分割資料以降序執行寫入處理。又,對(3)的寫入對象之資料,在上側記憶體墊100c從第一個(前頭)的分割資料以升序寫入,對(4)的寫入對象之資料,在下側記憶體墊100d從第18個(末尾)的分割資料以降序寫入。在如第17圖所示的寫入方式,係由上下兩段的記憶體墊構築搜尋記憶體墊100,寫入對象的關鍵資料被輸入時,分為對上側記憶體墊100c執行寫入處理者與對下側記憶體墊100d執行寫入處理者。藉此,可消除搜尋記憶體墊100內被寫入之資料的偏移。另外,雖然在第17圖未顯示,也可以是對上側記憶體墊100c從第18個(末尾)的分割資料以降序執行寫入處理,或是對下側記憶體墊100d從第一個(前頭)的分割資料以升序執行寫入處理。
在第18圖所示的方式,執行寫入處理之際,係使每個關鍵資料之最先開始寫入的分割資料不同。在第18圖,最先執行寫入處理的分割資料係以符號“S”表示。若具體地說明,對(1)的寫入對象之關鍵資料,先擴散編碼化,分割成18個分割資料後,從第一個(前頭)的分割資料以升序執行寫入處理。又,對(2)的寫入對象之關鍵資料,先擴散編碼化,分割成18個分割資料後,從第二個的分割資料以升序執行寫入處理。又,對(3)的寫入對象之資料,從第三個的分割資料以升序寫入,對(4)的寫入對象之資料,從第四個的分割資料以升序寫入。依此情形,在第18圖的寫入方式,寫入對象的關鍵資料被輸入時,會使最先開始寫入處理的分割資料不同。藉此,可解除在搜尋記憶體墊100內寫入資料的偏移。
在本發明說明書,針對不容易產生資料偏移的寫入處理方 式,係列舉第16至18圖所示的實施例,但寫入處理的方式並不限定於此。舉例來說,考慮將第一關鍵資料與第二關鍵資料寫入半導體裝置10的情況。在此情況,對第一個關鍵資料執行寫入處理時,將第一個關鍵資料分割得到的複數個割資料中,只需將對應第k個分割資料的登錄位址最先寫入記憶體空間即可。另一方面,對第二個關鍵資料執行寫入處理時,將第二個關鍵資料分割得到的複數個割資料中,只需將對應第k個以外之分割資料的登錄位址最先寫入記憶體空間即可。又,對最先處理的分割資料後面的資料,可以降序或升序處理,也可以是隔一個或隔兩個處理。依此情形,對每個寫入對象的關鍵資料,藉由改變最先執行寫入處理的分割資料,可有效率地對搜尋記憶體墊將對應關鍵資料的登錄位址寫入。
以上,在本發明說明書中,為呈現本發明的內容係參照圖示說明本發明的實施態樣。但本發明並不限定於上述實施態樣,而是還包含該所屬技術領域中具有通常知識者基於本發明說明書記載的事項所做之顯而易知的變更態樣或改良態樣。

Claims (13)

  1. 一種半導體裝置,包含:搜尋記憶體墊(100),其在由記憶體位址特定的記憶體空間,被寫入對應關鍵資料的登錄位址;以及控制電路(200),其係連接該搜尋記憶體墊(100),其中,該搜尋記憶體墊(100)係記憶體空間在保持記憶體位址之下被區分為複數個分割記憶體(110a、110b…),該控制電路(200)包含:輸入部(210),關鍵資料輸入於其中;分割部(220),其將輸入於該輸入部(210)的關鍵資料分割成複數個分割資料;以及寫入部(230),而該寫入部(230)執行第一寫入處理,其將該分割部(220)分割的複數個分割資料分別分配給複數個分割記憶體(110a、110b…),並將該等分割資料做為位址,將對應該等分割資料的登錄位址依序寫入由該等分割記憶體(110a、110b…)的記憶體位址特定的記憶體空間;該寫入部(230)在該第一寫入處理中,當對應其中一個分割資料的登錄位址預定要寫入的記憶體空間已經寫入有對應其他分割資料的登錄位址時,不將登錄位址寫入該記憶體空間,當該寫入部將複數個分割資料中的一個分割資料對應的登錄位址成功寫入記憶體空間時,結束該第一寫入處理。
  2. 如申請專利範圍第1項所述的半導體裝置,還包含確認用記憶體(300),其係連接該控制電路(200),該寫入部(230)還執行第二寫入處理,其將輸入於該輸入部(210)的關鍵資料與對應該關鍵資料的登錄位址建立關聯性並寫入該確認用記憶體(300)。
  3. 如申請專利範圍第1項所述的半導體裝置,還包含備份記憶體(400),當該寫入部(230)無法將從其中一個關鍵資料分割的複數個分割資料全體所對應的登錄位址寫入記憶體空間時,該寫入部將該關鍵資料與對應該關鍵資料的登錄位址建立關聯性並寫入該備份記憶體(400)。
  4. 如申請專利範圍第1項所述的半導體裝置,還包含編碼電路(500),該編碼電路(500)將輸入於該控制電路(200)之該輸入部(210)的關鍵 資料基於預設的演算法編碼,並將編碼後的關鍵資料輸入該分割部(220)。
  5. 如申請專利範圍第1項所述的半導體裝置,其中,該搜尋記憶墊(100)包含第一搜尋記憶墊(100a)及第二搜尋記憶墊(100b),該編碼電路(500)包含編碼演算法彼此不同的第一編碼電路(500a)及第二編碼電路(500b),該控制電路(200)的寫入部(230)藉由該第一編碼電路(500a)將對應編碼後之關鍵資料的登錄位址寫入該第一搜尋記憶墊(100a),該控制電路的寫入部藉由該第二編碼電路(500b)將對應編碼後之關鍵資料的登錄位址寫入該第二搜尋記憶墊(100b)。
  6. 如申請專利範圍第1項所述的半導體裝置,其中,該寫入部(230)對第一關鍵資料執行該第一寫入處理時,將該第一關鍵資料分割,並將得到的複數個分割資料中,對應第k個分割資料的登錄位址最先寫入記憶體空間,該寫入部對第二關鍵資料執行該第一寫入處理時,將該第二關鍵資料分割,並將得到的複數個分割資料中,對應第k個以外之分割資料的登錄位址最先寫入記憶體空間。
  7. 如申請專利範圍第1至第6項中任一項所述的半導體裝置,其中,該控制電路(200)還包含讀取部(240),其在做為搜尋對象資料的關鍵資料輸入該輸入部(210)且該分割部(220)將做為搜尋對象資料的關鍵資料分割成複數個分割資料的情況下,該讀取部將該等分割資料分別做為位址,並存取由各分割記憶體(110a、110b…)的記憶體位址特定的記憶體空間,從存取的記憶體空間讀取對應該等分割資料的登錄位址。
  8. 如依附申請專利範圍第2項的第7項所述的半導體裝置,其中,該控制電路(200)還包含確認部(250),其將對應該讀取部(240)讀取之登錄位址的關鍵資料從該確認用記憶體(300)讀取,同時確認從該確認用記憶體(300)讀取的關鍵資料與輸入該輸入部(210)做為該搜尋對象資料的關鍵資料是否一致。
  9. 如依附申請專利範圍第3項的第7項所述之半導體裝置,其中,由該確認部(250)判斷對應從該讀取部(240)讀取之全部登錄位址的關鍵資料與做為該搜尋對象資料的關鍵資料不一致的情況下,該讀取部(240)參照該備份記憶體(400),並從該備份記憶體(400)讀取與做為該搜尋對象資料的關鍵資料一致的關鍵資料之對應的登錄位址。
  10. 如申請專利範圍第8項所述之半導體裝置,還包含精選部(270),其在由該讀取部(240)讀取複數個登錄位址的情況時,從該等登錄位址中精選登錄位址的候補,並將該登錄位址的候補往該確認部送出(250)。
  11. 一種資訊寫入方法,其係將登錄位址寫入半導體裝置(10),該半導體裝置包含搜尋記憶體墊(100)及控制電路(200),該搜尋記憶體墊在由記憶體位址特定的記憶體空間被寫入對應關鍵資料的登錄位址,該控制電路連接該搜尋記憶體墊,其中,該搜尋記憶體墊(100)係記憶體空間在保持記憶體位址之下被區分為複數個分割記憶體(110a、110b…),該資訊寫入方法包含以下步驟:輸入步驟,關鍵資料輸入於該控制電路(200);分割步驟,該控制電路(200)將輸入的關鍵資料分割成複數個分割資料;以及寫入步驟,該寫入步驟包含第一寫入處理,其將分割的複數個分割資料分別分配給複數個分割記憶體(110a、110b…),並將該等分割資料做為位址,將對應該等分割資料的登錄位址依序寫入由該等分割記憶體(110a、110b…)的記憶體位址特定的記憶體空間,在該第一寫入處理中,當對應其中一個分割資料的登錄位址預定要寫入的記憶體空間已經寫入有對應其他分割資料的登錄位址時,不將登錄位址寫入該記憶體空間,當將複數個分割資料中的一個分割資料對應的登錄位址成功寫入記憶體空間時,結束該第一寫入處理。
  12. 如申請專利範圍第11項所述的資訊寫入方法,其中,該半導體裝置(10)還包含確認用記憶體(300),其連接該控制電路(200),該資訊寫入方法的該寫入步驟還包含第二寫入處理,其將輸入於該輸入部(210)的關鍵資料與對應該關鍵資料的登錄位址建立關聯性並寫入該確認用記憶體(300)。
  13. 一種資訊讀取方法,其係藉由如申請專利範圍第12項所述的資訊寫入方法,對該半導體裝置(10)讀取寫入的登錄位址,該資訊讀取方法包含以下步驟: 輸入步驟,將做為搜尋對象資料的關鍵資料輸入該控制電路(200);分割步驟,該控制電路(200)將做為該搜尋對象資料的關鍵資料分割成複數個分割資料;讀取步驟,該控制電路(200)將該等分割資料分別做為位址,並存取由各分割記憶體(110a、110b…)的記憶體位址所特定的記憶體空間,從存取的記憶體空間讀取對應該等分割資料的登錄位址;以及確認步驟,將對應讀取之登錄位址的關鍵資料從該確認用記憶體(300)讀取,同時確認從該確認用記憶體(300)讀取的關鍵資料與做為該搜尋對象資料的關鍵資料是否一致。
TW105112469A 2015-05-18 2016-04-21 半導體裝置及資訊寫入/讀取方法 TWI621016B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015101082A JP6205386B2 (ja) 2015-05-18 2015-05-18 半導体装置及び情報書込/読出方法

Publications (2)

Publication Number Publication Date
TW201642138A true TW201642138A (zh) 2016-12-01
TWI621016B TWI621016B (zh) 2018-04-11

Family

ID=57319809

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105112469A TWI621016B (zh) 2015-05-18 2016-04-21 半導體裝置及資訊寫入/讀取方法

Country Status (5)

Country Link
US (1) US10423666B2 (zh)
JP (1) JP6205386B2 (zh)
CN (1) CN107533865B (zh)
TW (1) TWI621016B (zh)
WO (1) WO2016185849A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11587611B2 (en) * 2021-07-20 2023-02-21 Macronix International Co., Ltd. Memory device with input circuit, output circuit for performing efficient data searching and comparing within large-sized memory array
CN113642276B (zh) * 2021-08-18 2023-05-05 电子科技大学 一种基于数据预编码的sram架构

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5575997A (en) 1978-11-29 1980-06-07 Hitachi Cable Ltd Liquid phase crystal growing method
JP3938124B2 (ja) 2002-11-20 2007-06-27 ソニー株式会社 データ検索装置
US7711893B1 (en) * 2004-07-22 2010-05-04 Netlogic Microsystems, Inc. Range code compression method and apparatus for ternary content addressable memory (CAM) devices
US8074011B2 (en) * 2006-12-06 2011-12-06 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery after reaching a read count limit
US7934025B2 (en) * 2007-01-24 2011-04-26 Qualcomm Incorporated Content terminated DMA
US8205037B2 (en) * 2009-04-08 2012-06-19 Google Inc. Data storage device capable of recognizing and controlling multiple types of memory chips operating at different voltages
JP5677336B2 (ja) * 2011-08-01 2015-02-25 株式会社東芝 メモリ・デバイス
US9026717B2 (en) * 2011-09-30 2015-05-05 SanDisk Technologies, Inc. Apparatus, system, and method for a persistent object store
KR20130128685A (ko) * 2012-05-17 2013-11-27 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
US9240237B2 (en) * 2013-03-13 2016-01-19 Nagase & Co., Ltd. Semiconductor device and method of writing/reading entry address into/from semiconductor device

Also Published As

Publication number Publication date
US20180129756A1 (en) 2018-05-10
CN107533865B (zh) 2020-10-16
TWI621016B (zh) 2018-04-11
CN107533865A (zh) 2018-01-02
US10423666B2 (en) 2019-09-24
JP2016219074A (ja) 2016-12-22
JP6205386B2 (ja) 2017-09-27
WO2016185849A1 (ja) 2016-11-24

Similar Documents

Publication Publication Date Title
US10642515B2 (en) Data storage method, electronic device, and computer non-volatile storage medium
US4064489A (en) Apparatus for searching compressed data file
US9406381B2 (en) TCAM search unit including a distributor TCAM and DRAM and a method for dividing a database of TCAM rules
US4606002A (en) B-tree structured data base using sparse array bit maps to store inverted lists
US4381541A (en) Buffer memory referencing system for two data words
CN101855620B (zh) 数据处理设备和数据处理方法
KR970006648B1 (ko) 다계층의 파일구조를 가진 ic카드
US8117377B2 (en) Flash memory device having secure file deletion function and method for securely deleting flash file
TWI540578B (zh) A semiconductor device, and a method of writing / reading a registered address in a semiconductor device
KR100703753B1 (ko) 파일 시스템 관리 장치 및 방법
TW201642138A (zh) 半導體裝置及資訊寫入/讀取方法
CN111858678A (zh) 基于Redis的key值删除方法、计算机设备、装置和存储介质
CN114936188A (zh) 数据处理方法、装置、电子设备及存储介质
US8180744B2 (en) Managing storage of data in a data structure
JP6258436B2 (ja) メモリシステムのローカルコントローラ
JP2014063540A (ja) key−valueストア方式を有するメモリシステム
KR20210022503A (ko) 연관 유사성 검색을 통한 데이터의 중복 제거
US11347860B2 (en) Randomizing firmware loaded to a processor memory
CN114297193A (zh) 一种基于hash的数据比对方法及装置
TWI640879B (zh) Semiconductor device, information processing system, and information writing/reading method
JP2004534981A5 (zh)
CN108647289B (zh) 基于布谷哈希和布隆过滤器的Hash建表方法
CN110209489B (zh) 一种适用于内存页结构的内存管理方法及装置
JP4785492B2 (ja) メモリシステムおよび検索方法
Bardis et al. Hash addressing of the quasi-permanent key arrays in multilevel memory