CN105190762A - 半导体装置及写入/读取登录位址于半导体装置中的方法 - Google Patents

半导体装置及写入/读取登录位址于半导体装置中的方法 Download PDF

Info

Publication number
CN105190762A
CN105190762A CN201380074530.4A CN201380074530A CN105190762A CN 105190762 A CN105190762 A CN 105190762A CN 201380074530 A CN201380074530 A CN 201380074530A CN 105190762 A CN105190762 A CN 105190762A
Authority
CN
China
Prior art keywords
address
critical data
data
segmentation
pad
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN201380074530.4A
Other languages
English (en)
Other versions
CN105190762B (zh
Inventor
大塚宽治
佐藤阳一
秋山丰
藤井文明
长泽达也
上井稔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nagase and Co Ltd
Original Assignee
Nagase and 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 and Co Ltd filed Critical Nagase and Co Ltd
Publication of CN105190762A publication Critical patent/CN105190762A/zh
Application granted granted Critical
Publication of CN105190762B publication Critical patent/CN105190762B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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
    • 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/02Digital 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 magnetic 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Static Random-Access Memory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供一种实现低电力消耗性与高速搜寻功能的新颖半导体装置及使用该半导体装置的方法。该半导体装置具备搜寻存储垫102及连接于搜寻存储垫的控制电路105,搜寻存储垫102设有朝y轴方向分配登录位址记入用位置,朝x轴方向分配关键数据的结构。搜寻存储垫藉由将关键数据分配区域沿y轴方向分割成多个,形成有多个分割存储单元。控制电路具有:输入部1051,供关键数据的输入;分割部1052,将输入到输入部的关键数据分割成多个;及写入部1053,将分割部所分割的各个关键数据以经分割的关键数据作为位址分配到分割存储单元,并将与经分割的各个关键数据对应的登录位址写入到分割存储单元。

Description

半导体装置及写入/读取登录位址于半导体装置中的方法
技术领域
本发明有关一种半导体装置、及写入/读取登录位址于半导体装置中的方法。具体而言,本发明有关一种联想存储单元(CAM,ContentAddressableMemory),该联想存储为藉由以分割搜寻存储垫的方式来谋求使数据搜寻时的电力消耗减少。
背景技术
近年来,已成为云端运算科技时代,网路交换机或路由器的高性能化或电力消耗的减少,已被认作是紧急的课题。此外,以网路的搜寻引擎而言,一种能够以更高速且低电力消耗进行确实的搜寻操作的技术正需求甚殷。为了能应付这种需求,近年来,在网路交换机或搜寻引擎方面,使用CAM的情况越来越多。
在此,一般的CAM在对CAM内所存储的数据进行搜寻时,使所谓关键数据的搜寻数据输入其中。另一方面,存储单元内存储有与关键数据相同的数据的情况中,CAM会将存储有该关键数据的所谓登录位址的地址输出。一般而言,为了实现这种搜寻功能,必须存取CAM内的整个存储空间,故不仅使电路构成复杂化,也造成电力消耗增大的问题。特别是,这种电力消耗增大的问题,由于会随着CAM规模而变大,所以现在被认为是非常重大的问题。
对于这种问题,在例如专利文献1中,已提案一种以一边活用CAM的高速搜寻性一边谋求降低电力消耗为目的的数据搜寻装置。专利文献1的数据搜寻装置将决定有优先次序的多个规则数据按照其大小顺序重新赋予次序,并按照该次序分配到多个存储区块。而且,该搜寻装置在进行数据搜寻时,指定要搜寻的一个存储区块来执行搜寻处理。依此方式,专利文献1的数据搜寻装置在进行搜寻处理时,由于仅将所指定的一个区块激活,而不需要将其他区块激活,以其不需激活的程度,与一般的CAM比较,被认为可以减少搜寻时的电力消耗。
先前技术文献
专利文献
专利文献1日本特开2004-185792号公报
发明内容
〔发明所欲解决的课题〕
然而,上述专利文献1所揭露的数据搜寻装置,与一般的存储单元比较,虽可减少搜寻时的电力消耗,但为了执行搜寻处理,必须一次就存取于区块内的整个存储空间。因此,现有的数据搜寻装置,电路构成复杂,且有搜寻时电力消耗甚大的问题。依此情形,上述专利文献1的技术对于现前的这些问题并未提出根本的解决方案。
因此,现在续需求一种在维持CAM的高速搜寻性能的同时能够减少搜寻处理时的电力消耗的新颖半导体装置。
〔解决课题所使用的手段〕
因此,经本发明的发明人等针对上述问题点的解决手段专心鋭意研究的结果,获得了一种将搜寻存储垫分割多个,并将关键数据分割为多个后,将与经分割的关键数据对应的登录位址写入到经分割的搜寻存储垫的新认知。依此方式,藉由将关键数据分割为多个并写入到搜寻存储垫的方式,在进行该关键数据的搜寻时,即可将搜寻存储垫作局部分性激活以进行数据的搜寻。结果,与现有的CAM相比较,本发明得以实现大幅度的消耗电力降低。从而,本发明人等乃根据上述认知,而想到能够解决现有技术课题的方案,因而完成了本发明。
本发明的第1方面为关于半导体装置。在此,首先,就将数据写入半导体装置的处理加以说明。
本发明的半导体装置具备搜寻存储垫102与控制电路105。
搜寻存储垫102使记入登录位址用位置分配于y轴方向(列方向),关键数据则朝x轴方向(行方向)分配。
在此,搜寻存储垫102藉由将分配关键数据的区域沿x轴方向分割成多个,形成有多个分割存储单元102a、102b…。
而且,控制电路105连接于搜寻存储垫。
在此,控制电路105具有输入部1051、分割部1052、及写入部1053。
关键数据(输入数据)输入于输入部1051。
分割部1052将输入到输入部的关键数据(输入数据)分割成多个。
写入部1053将分割部所分割的各个关键数据以该分割的关键数据作为位址分配到分割存储单元,并将与该经分割的各个关键数据对应的登录位址写入到该分割存储单元。
依上述构成的方式,本发明的半导体装置中,首先,使搜寻存储垫102中的分配关键数据的区域分割成多个。藉此方式,搜寻存储垫102即分割成多个分割存储单元102a、102b…。在此,本发明以对此多个分割存储单元102a、102b…写入与关键数据对应的登录位址的方式来存储关键数据。即,本发明在关键数据输入到控制电路105时,将该关键数据分割成多个。接着,控制电路105会针对所分割的各个关键数据,将分配到该关键数据的登录位址写入到分割存储单元102a、102b…。而且,此时,控制电路105在将登录位址写入到分割存储单元时,会将分配到搜寻存储垫102的y轴的登录位址的记入位置,当作经分割的关键数据内容(二进制数据),而将与该经分割的关键数据对应的登录位址写入到藉该分割的关键数据来表示的位置。
依此方式,本发明的半导体装置,除了将搜寻存储垫102分割成多个,还将与分割成多个的关键数据对应的登录位址写入到该处。藉由进行这种写入处理的方式,就可以以低消耗电力且高速方式进行关键数据的读取处理。即,如上所述,在本发明中,使关键数据分割成多个,并使该经分割的各个关键数据的相关登录位址存储到分割存储单元。因此,在搜寻登录位址时,不必一次就将搜寻存储垫102整体活化,而可以使搜寻存储垫102按每一个分割存储单元102a、102b…作局部性活化以进行搜寻。从而,若依本发明,可以一面用与现有CAM同样的高速性实现数据搜寻,一面又以极低于现有CAM的电力消耗执行数据搜寻。
本发明的半导体装置中,控制电路105较佳为再具有冲突重复资讯存储部1054。
冲突重复资讯存储部1054在藉由写入部使多个登录位址写入到同一个分割存储单元的情形中,会将表示登录位址冲突重复的资讯写入到该分割存储单元。
本发明的半导体装置中,由于控制电路105的写入部1053将分割成多个的各个关键数据,以该分割的关键数据作为位址,将与该分割关键数据对应的登录位址写入到该分割存储单元,而有多个登录位址写入到相同分割存储单元的相同位址的可能性。如此,多个登录位址写入到相同位址的现象,在本案说明书中以“冲突重复”字眼来表示。在此,本发明的半导体装置,在进行登录位址的写入处理中发生”冲突重复”时,将表示冲突重复的资讯(旗标等)记入到该冲突重复的位址,并直接继续执行写入处理。藉此方式,就可使登录位址的写入处理高速化。而且,本发明不是仅避免登录位址的冲突重复,而是即使登录位址有冲突重复,也不予理会,径行写入处理。藉此方式,本发明即可将写入处理/读取处理的计算法简洁化,更进一步实现数据搜寻的高速性与低消耗电力性而两全其美。
接着,就从半导体装置读取数据的处理加以说明。
本发明的半导体装置中,控制电路105再具有读取部1055。
读取部1055在作为搜寻对象数据的关键数据输入到输入部时发挥其功能。即,本发明中,作为搜寻对象数据的关键数据输入到输入部时,分割部会将作为该搜寻对象数据的关键数据分割成多个。然后,读取部1055会以分割部所分割的各个关键数据当作位址而存取于分割存储单元,并从该分割存储单元读取与该经分割的各个关键数据对应的登录位址。
如上所述,本发明的半导体装置中,关键数据分割成多个,有关该分割的各个关键数据的登录位址则存储在分割存储单元。因此,搜寻该登录位址的处理中,不必一次就将搜寻存储垫102整体活化,而可使搜寻存储垫102按每一个分割存储单元102a、102b…局部活化后进行搜寻。因而,若依本发明,可用和现有CAM同样的高速性来实现数据搜寻,又可以极低于现有CAM的消耗电力进行数据搜寻。
本发明的半导体装置中,读取部1055在将分割部所分割的关键数据作为位址而存取于分割存储单元时,在表示冲突重复的资讯写入到该分割存储单元的情况中,对于该分割的关键数据,不会将对应的登录位址读取,而是当作无需顾虑的数据来处理。
如上所述,本发明的半导体装置,在将经分割的关键数据作为位址进行搜寻存储垫102的搜寻时,在同一位址产生多个登录位址的冲突重复情形中,对于该经分割的关键数据,可将其自搜寻对象中除开,而当作“无需顾虑(don’tcare)”的数据来处理。本发明除了将作为搜寻对象数据的一个关键数据分割成多个外,亦进行搜寻存储垫102的搜寻。因此,即使分割的关键数据中有若干个被当作“无需顾虑(don’tcare)”数据来处理时,只要可藉至少一个分割关键数据来读取登录位址,就可确认与该登录位址对应的关键数据和作为搜寻对象数据的关键数据是否一致。所以,依此方式,发生冲突重复时,就不需硬要读取登录位址,而将其当作无需顾虑的数据来处理,并藉由特意以原样来续行处理,使读取处理高速化。
不过,在进行数据的读取处理时,若存在有登录位址的冲突重复,理论上,可想到数据搜寻精度会被降低。因此,接着就即使在产生登录位址冲突重复的情形中,也能提高正确进行数据搜寻的可能性的作法例子加以说明。
作为冲突重复对策的第1个例子,半导体装置较佳为具备确认存储垫104。该确认存储垫104使各登录位址与各关键数据形成对应关系来存储。
而且,在此情形中,控制电路105较佳为具有确认部1056。该确认部1056将与读取部1055所读取的登录位址对应的关键数据从确认存储垫读取,并就该关键数据和输入到输入部的作为搜寻对象数据的关键数据是否一致加以确认。
依上述构成的方式,本发明的半导体装置设有建构确认存储垫104的存储区域,且可将登录位址与关键数据的对应关系存储在此处。例如,半导体装置在输入有新颖的关键数据时,只要将登录位址分配到该新颖的关键数据,该新颖的关键数据与登录位址的对应关系预先存储到确认存储垫104即可。以这种作法,藉上述的读取处理读取登录位址时,只要参阅确认存储垫104就可确认该登录位址是否与作为搜寻对象数据而输入的关键数据对应。特别是,搜寻存储垫102发生登录位址的冲突重复,藉读取部进行“无需顾虑(don’tcare)”处理的情形中,可利用确认存储垫102确认所读取的登录位址是否适当,甚为有效。依此方式,若依本发明,即使是发生登录位址的冲突重复的情形中,也可提高正确进行数据搜寻的可能性。
作为冲突重复对策的第2个例子,半导体装置较佳为再具备编码电路106。该编码电路106为配置在控制电路105的输入部1051前段的电路。即,编码电路106藉由预定的处理将关键数据进行编码,并将该经编码的关键数据向控制电路的输入部输出。
本发明的半导体装置为将与经分割的关键数据对应的登录位址写入到搜寻存储垫102的分割存储单元102a、102b…,并在分割存储单元的同一位址写入了多个登录位址时,采用将冲突重复资讯记入的设计。在此,为了写入存储单元而使输入的关键数据偏倚时,有数据的冲突重复频度增高而发生不能搜寻的数据行变多的问题。即,数据的偏倚就像例如以递减排序记入ID号码那样,发生在持续记入多个几乎相同的数据的情形中。几乎相同内容的数据持续记入时,不会均匀分散在搜寻存储垫102内,而会集中在搜寻存储垫102的几乎相同位址,而记入成偏倚形态。如此,在搜寻存储垫102内,就会发生登录位址冲突重复的可能性增高。因此,以上述构成的方式,在将关键数据输入到控制电路105的输入部1051前,藉由编码电路106将该关键数据进行编码。此处所称的编码,包含以规定的计算法使关键数据(二进制数据)分散的方式、或将关键数据(二进制数据)的次序变换排列的处理。依此方式,即使在几乎相同的关键数据持续输入的情形中,藉由将这些关键数据编码,即可解除这些数据的偏倚。只要数据的偏倚解除,即可使搜寻存储垫102内发生冲突重复的可能性降低。结果,可正确进行数据搜寻的可能性就提高。
再就控制电路105的读取部1055所存取的整个分割存储单元中写入有表示冲突重复的资讯的情形,作为冲突重复对策的第3个例子加以说明。分割存储单元的整体发生冲突重复的可能性虽然极低,但理论上仍会发生。
因此,读取部1055在以分割部所分割的各个关键数据作为位址而存取于分割存储单元时,在将表示冲突重复的资讯写入到全部分割存储单元的情形中,较佳为将已经写入该全部分割存储单元的登录位址读取。
此外,在这种情形中,确认部1056较佳为以读取部所读取的登录位址依序参阅确认存储垫,将与作为搜寻对象数据的关键数据一致的关键位址从该确认存储垫抽出后,将与该抽出的关键数据对应的登录位址输出。
如上所述,即使来自搜寻存储垫102的输出为全属忽视搜寻状态,本发明仍可从搜寻中找到的全部位址,将业已写入的登录位址读取,并以各登录位址依序参阅确认存储垫。藉此方式,来自搜寻存储垫102的输出即使为全属忽视搜寻状态,仍有可以数据搜寻导出正确解答的可能性。结果,可正确进行数据搜寻的可能性得以提高。
本发明的第2方面为关于写入/读取登录位址于半导体装置中的方法。首先,就将登录位址写入半导体装置方法加以说明。
本发明的方法关于将与关键数据对应的登录位址写入半导体装置的方法。该半导体装置具备搜寻存储垫102与连接于该搜寻存储垫102的控制电路105,该搜寻存储垫102设有朝y轴方向分配登录位址记入用位置,并朝x轴方向分配关键数据的结构。
搜寻存储垫102藉由将分配关键数据的区域沿x轴方向分割成多个,形成有多个分割存储单元102a、102b…。
在此,本发明的方法,首先使关键数据输入到半导体装置的控制电路105。其后,控制电路将所输入的关键数据分割成多个。接着,控制电路将所分割的各个关键数据以该经分割的关键数据作为位址分配到分割存储单元,并将与该经分割的各个关键数据对应的登录位址写入到该分割存储单元。
接着,就藉由上述写入处理而写入到半导体装置的登录位址的读取方法加以说明。
该读取处理中,首先,使作为搜寻对象数据的关键数据输入到控制电路。其后,控制电路将所输入的作为搜寻对象数据的关键数据分割成多个。接着,控制电路以经分割的各个关键数据作为位址而存取于分割存储单元,并从该分割存储单元读取与该经分割的各个关键数据对应的登录位址。
按照上述程序,藉由对半导体装置进行登录位址的写入/读取的方式,即可高速进行数据搜寻,同时,也可抑制数据搜寻时的电力消耗。
〔发明的功效〕
若依本发明,可以低电力消耗高速地进行数据的搜寻处理。
而且,若依本发明,可以实现得进行硬体式动态再建构的自动开关。此外,本发明中,若以丛发传送输入基本输入资讯群,基本上,在进行搜寻处理时,只要有微符码就很充分,并不需要程式。当然,以相同方法也可作影像压缩或加密。
又,一般的影像处理或模糊处理时,因为是在庞大的数据库中处理,需要步骤数较多的程式。对于这种情形,若依本发明,基本上,可以减少程式的步骤数,而可谋求程式的简洁化。
此外,若依本发明,可以消除输入数据(搜寻数据)的偏倚,减少数据的冲突重复频度。同时,在本发明中,可以实现即使在发生数据冲突重复时,仍可因应的半导体装置。
而且,若依本发明,可以实现即使搜寻时所输入的搜寻数据发生全行冲突重复状态,仍可输出搜寻结果的半导体装置。
再者,若依本发明,可以实现藉由増加搜寻用存储垫的分割数来使冲突重复频度得以减少的半导体装置。
附图说明
图1为显示本发明一实施形态的半导体装置的主要构成的功能方块图;
图2为显示本发明一实施形态的写入方法的主流程流程图;
图3为显示本发明一实施形态的写入方法的副流程流程图;
图4为显示本发明一实施形态的读取方法的主流程流程图;
图5为显示本发明一实施形态的读取方法的副流程流程图;
图6为显示本发明一实施例的半导体存储单元电路的构成图;
图7为显示本发明一实施例的SRAM-CAM的开关或搜寻动作图;
图8为显示本发明一实施例的SRAM-CAM的写入动作图;
图9为显示本发明一实施例的SRAM-CAM的搜寻动作图;
图10为显示依本发明一实施例的SRAM-CAM登录数的程度将关键数据写入时所产生的搜寻时NG发生数的图示;
图11为显示本发明其他实施例的半导体存储单元电路构成图,其为以256个登录数来适应的例子的构成图;
图12为显示图11中,登录宽度(登录数)虽为256,但在关键数据长度32位元仍没有误动作的机率图;
图13为显示登录位址的数据相同时,未写入区域増加,可以增加写入数的构成图;
图14为显示本发明又一实施例的表示扩张功能的构成图;
图15为显示图14的写入动作的图示;
图16为显示图14的搜寻动作的图示;
图17为显示关键字搜寻的基础的遮蔽操作的图示。
图18为显示多发命中功能的实现例的构成图;
图19为显示与一般CAM的多发命中的差异的图示;
图20为显示可达成一般CAM的多发命中功能的构成图;
图21为显示多发命中的时钟定时的定时图;
图22为显示搜寻存储垫附加有LUT控制电路的状态的构成图;
图23为显示作为四则运算及数据位移源的一个的加法器例的构成图;
图24为显示256登录数×32键的CAM阵列的单元部分构成图。
图25为显示开关或搜寻的构成图;
图26为显示一动态组构存储单元例的构成图;
图27为显示一运算时钟减少例的构成图;
图28为显示登录数较256大时的想法的概念图;
图29为显示本发明第4实施例的半导体存储单元电路的构成图;
图30为显示编码位元与数据的散乱程度的说明图;
图31为显示本发明第4实施例的SRAM-CAM的编码电路输出的原资讯及编码位元的图示;
图32为显示本发明第4实施例的SRAM-CAM的编码电路输出的其他原资讯与编码位元的图示;
图33为显示本发明第4实施例的SRAM-CAM的编码电路的构成图;
图34为显示本发明第4实施例的SRAM-CAM的编码电路的其他构成图;
图35为显示本发明第4实施例的SRAM-CAM的开关或搜寻动作的图示;
图36为显示本发明第4实施例的SRAM-CAM的写入动作的图示;
图37为显示本发明第4实施例的SRAM-CAM的搜寻动作的图示;
图38为显示本发明第4实施例的SRAM-CAM的编码电路输出的原资讯与编码位元的图示;
图39为显示输入到SRAM-CAM的原资讯的关键数据、依每组4位元分群组并进行群组的排列变更后的关键数据、及以8位元单位编码后的3种数据变化的图示;
图40为显示关键数据及对关键数据进行排列变更–编码处理时的搜寻存储垫内容及读取结果的图示;
图41为显示对关键数据执行2次排列变更–编码处理时的搜寻存储垫的内容及读取结果的图示;
图42为显示本发明第5实施例的SRAM-CAM的写入动作图;
图43为显示本发明第5实施例的SRAM-CAM的搜寻动作图;
图44为显示本发明第4实施例的SRAM-CAM的写入动作图;以及
图45为显示本发明第4实施例的SRAM-CAM的搜寻动作图。
具体实施方式
〔发明的实施形态〕
以下,使用附图就本发明的实施形态加以说明。本发明并非限定于以下说明的形态,本业者亦可在一般显而易知范围内对以下形态作适当地修正。
此外,本说明书中,所谓“写入/读取"的用语,意指“写入及读取的双方或任一方"。
本发明关于半导体装置及登录位址写入/读取于半导体装置中的方法。本发明的基本技术思想要素如下述。
(1)半导体装置的控制电路将作为搜寻对象的数据分割成多个(n分割),并以该经分割的关键数据作为位址而连接存取于存储单元电路(搜寻存储垫)。
(2)控制电路将与经分割的关键数据对应的登录位址记入所存取的存储单元电路的位址。
(3)该登录位址的记入处理对与关键数据的分割数(n)对应的整个存储单元电路执行。
(4)该登录位址的记入处理后,作为搜寻对象数据的关键数据输入到控制电路时,控制电路会将所输入的关键数据分割成多个(n分割)。接着,控制电路会以所分割的关键数据作为位址而连接存取于存储单元电路,并将记入于存储单元电路的登录位址输出。
此外,较理想的情况为,
(5)控制电路在所输出的登录位址全部一致时,将其采用作为所寻求的登录位址。另一方面,若所输出的登录位址有不一致,控制电路会判定为与搜寻对象数据一致的数据未记入。
以上为本发明的基本技术思想。此外,将本发明安装在可实际实现功能的制品上时,虽会留下各色各样的待解决问题,惟针对解决这些问题的方法,将于后述的实施例中详细说明。
首先,参照图1至图5说明有关本发明的概要。
图1为显示本发明半导体装置的主要功能结构的功能方块图。
如图1所示,本发明的半导体装置具备搜寻存储垫102与控制电路105。而且,如图1所示,本发明的半导体装置较佳为再具备确认存储垫104与编码电路106。控制电路105连接于各个搜寻存储垫102、确认存储垫104、及编码电路106,行使统合控制半导体装置中的资讯处理功能。
图1所示的搜寻存储垫102具有使登录位址记入用位置朝y轴方向分配,关键数据朝x轴方向分配的结构。此处所称“y轴方向",意指由行列所构成的阵列的列方向(纵向)与行方向(横向)的任一方向,所称“x轴方向"则意指列方向(纵向)与行方向(横向)的任一个的另一方向。即,搜寻存储垫102中,使一个关键数据以对应关系存储到一个登录位址中。以此方式,搜寻存储垫102以可朝y轴方向分配多个登录位址记入用位置,并朝x轴方向使一个关键数据分配到各登录位址的结构作为基础。
此外,可藉本发明半导体装置实现的CAM(联想存储单元),一般而言,具有以下功能:从记入于搜寻存储垫的多个关键数据中搜寻并找出使用者所指定的关键数据,把发现该关键数据的位置的登录位址提供给使用者。即,所谓“关键数据"指记入于搜寻存储垫内的期望资讯。同时,所谓“登录位址",是指显示记入有关键数据的搜寻存储垫内的位置(位址)的原资讯。
同时,例如后述的图8等所示,分配到搜寻存储垫102的y轴方向的“登录位址记入位置"中,分别赋予用以特定该位置的地址数据。例如,图8所示的例子中,“登录位址记入位置"就是朝y轴方向以每组4个的方式存在。各个“登录位址记入位置"的地址,则以例如2位元数据来特定。例如,4个“登录位址记入位置"中,分别赋以“00”、“01”、“10”、及“11”的地址数据。该所谓地址数据,为用以特定搜寻存储单元102的存储空间中的“登录位址记入位置"的地址的数据。此外,“登录位址记入位置"也可存在8个以上。用以特定该“登录位址记入位置"的地址数据,也可为3位元以上的数据。例如,用以特定该“登录位址记入位置"的地址数据,也可为2位元至6位元或3位元至5位元的数据。
又,本发明的半导体装置中,关键数据可将期望位元数的数据写入或读取。此外,关于登录位址方面,以例如2位元以上来定义为佳。例如,登录位址可设为2位元至6位元,也可为3位元至5位元。
而且,如图1所示,搜寻存储垫102藉由多个分割存储单元102a、102b、102c…来建构。多个分割存储单元在搜寻存储垫102的存储空间中,将要分配关键数据的x轴方向区域沿y轴方向分割成多个。即,藉由将搜寻存储垫102分割成多个分割存储单元102a、102b、102c…来建构的方式,使要分配关键数据的区域分割成多个。各分割存储单元可用SRAM等存储装置来构成。在这种意义上,本发明可说是利用多个SRAM来实现的CAM。本案说明书中,将用SRAM来实现的CAM称为SRAM-CAM。例如,要分配关键数据的区域分割成多个的搜寻存储垫102,形成如图8所示的结构,这部分将陈述于后。
依此方式,藉由将搜寻存储垫102的要分配关键数据的x轴方向区域分割成多个的方式,搜寻存储垫102的存储空间即可使y轴方向及x轴方向的各个区域分割成多个。如此,在本案说明书中,以y轴及x轴来特定的区分存储空间(存储包),以搜寻存储垫102的位置或位址来表现。
例如,搜寻存储垫102的总登录数假设定为4096个登录时,可识别4096个登录的位址规格即为12位元。再者,输入到搜寻存储单元102的关键数据的大小设为144位元时,将其除以前述的12位元,商数为12。即,在此情况中,分割存储单元数必须至少12个以上。
以这种条件来考虑时,搜寻存储垫102的分割数N的最低必要限度就可以下式求得。
(式)N=L/Log2·M
L:关键数据长度
M:总登录数
N:搜寻存储垫的分割数(分割存储单元的最小个数)
另一方面,如图1所示,控制电路105基本上具有:输入部1051、分割部1052、写入部1053、读取部1055、及输出部1057。而且,控制电路105较佳为再具有冲突重复资讯存储部1054与确认部1056。这些要素1051至1056以控制电路105的功能作概念性分类来表示。即,控制电路105利用这些要素1051至1056将登录位址写入于搜寻存储垫102中,或进行将记入于搜寻存储垫102的登录位址读取的处理。
以下,一边参照图2至图5的流程图,一边就藉由控制电路105执行的基本处理加以说明。
首先,说明藉由控制电路105进行的登录位址写入处理。
在此,图2及图3为显示控制电路105进行的写入处理的流程图。此处所谓的写入处理,指要存储新的关键数据(输入数据)时,将与该新的关键数据对应的登录位址写入到搜寻存储垫的处理。
如图2所示,在写入处理中,首先,使要用于新记入到搜寻存储垫内的关键数据(输入数据)输入到半导体装置(步骤S1)。在此,作为输入数据的关键数据,如图1所示,可直接输入到控制电路105的输入部1051,也可经由编码电路106输入到控制电路105的输入部1051。
在此,关键数据输入至编码电路106时,藉由编码电路106进行关键数据的编码处理(步骤S2)。又,有关此处所进行的编码处理,将于后面的[实施例4]中详细说明。
另一方面,作为输入数据的关键数据直接输入控制电路105的输入部1051时,该输入部1051会将关键数据往分割部1052送出。即,输入部1051是控制电路105的输入介面。
接着,分割部1052将作为输入数据的关键数据分割成多个(步骤S3)。即,分割部1052会将所输入的关键数据的二进制数据(电脑可处理的二进式数据)分割成多个。例如,分割部1052较佳为将关键数据分割成和建构搜寻存储垫102的分割存储单元102a、102b、102c…的数目相等的数量。总而言之,分割部1052分割关键数据的分割数n较佳为建构搜寻存储垫102的分割存储单元的数目N。藉此方式,即可将藉分割部1052分割成多个的关键数据(亦称“分割关键数据")的全部分别依序记入到多个分割存储单元。
此外,分割部1052在将关键数据的二进制数据进行分割时,该二进制数据以分成每组预定位元为佳。例如,输入“2699”作为关键数据时,若以二进制来表现该关键数据“2699”,就成为“101010001011”。例如,分割部1052也可将该关键数据以“10”“10”“10”“00”“10”“11”的方式分割成每组2位元。此外,分割部1052也可将关键数据分割成每组3位元,分割成每组4位元亦可。例如,分割的位元数只要是每组2至10位元即可。
更具体说明时,分割部1052所分割的关键数据的位元数(α)较佳为相等于用以特定要分配到搜寻存储垫102的y轴方向的“登录位址记入位置"的地址数据位元数(β)(α=β)。例如,用以特定搜寻存储垫102内的"登录位址记入位置"的地址数据以2位元来表示时,分割部1052较佳为将所输入的关键数据依每组2位元分割成多组。同样地,分配到搜寻存储垫102的登录位址记入位置以3位元的地址数据来特定时,分割部1052较佳为将所输入的关键数据依每组3位元分割成多组。藉此方式,在后面的处理中,分割部1052即可将经分割的各个关键数据,以该经分割的关键数据作为位址,适当分配到用以建构搜寻存储垫102的分割存储单元。
如图1所示,在写入处理中,分割部1052以上述方式分割的关键数据往写入部1053送出。
其次,写入部1053对从分割部1052接收的关键数据分配固有的登录位址,并对确认存储垫104进行写入处理(步骤S4)。即,该步骤S4中,将新颖关键数据新记入到搜寻存储垫102时,对新颖关键数据分配一个登录位址,且将新颖关键数据与登录位址的对应关系预先存储到确认存储垫104。确认存储垫104的数据构造例,显示于图8的右下方。依此方式,确认存储垫104就可作为用以预先存储关键数据与登录位址的对应关系的数据库来发挥功能。而且,依后述方式进行读取处理时,确认存储垫104就可在进行控制电路所读取的登录位址是否正确的最终确认时加以利用。此外,确认存储垫104只要藉SRAM等存储装置来构成即可。
其后,写入部1053会进行将藉分割部1052所分割的多个分割关键数据分别写入到搜寻存储垫102的分割存储单元102a、102b、102c…的处理(步骤S5)。该步骤S5进行的处理,在图3中有更详细的说明。
图3的流程图显示将关键数据(KD)的二进制数据分割为n个分割关键数据,并将该分割关键数据的次序定义第k个的情形。
即,如图3所示,首先,将“1”代入“k”,而在n个分割关键数据中开始第1个(最初)分割关键数据的处理(步骤S5A)。
接着,写入部1053将第1个(第k个)分割关键数据的登录位址分配到搜寻存储垫102(步骤S5B)。具体而言,写入部1053一边参照分配到搜寻存储垫102的y轴的用以特定"要记入登录位址(EA)的位置"的地址数据,以表示第1个(第k个)分割关键数据的二进制数据作为位址而存取于搜寻存储垫102,并将与该分割关键数据对应的登录位址(EA)分配到此处所存取的搜寻存储垫102的位置(位址)。此处的处理将于下文中参照图8等作详细说明。
总而言之,写入部1053会持续将与第1个(第k个)分割关键数据形成对应的登录位址(EA)分配到搜寻存储垫102的适当位置(位址)。该搜寻存储垫102的适当位置(位址)可藉现在处理中的分割关键数据的次序(第k个)与分割关键数据的二进制数据来特定。即,首先,参照分割关键数据的次序(第k个),特定要写入该分割关键数据的登录位址在搜寻存储垫102的x轴方向的区域。例如,使第1个分割关键数据的登录位址写入到建构搜寻存储垫102的多个分割存储单元102a、102b、103c…中的第1个分割存储单元102a。接着,参照分割关键数据的二进制数据,特定要写入该分割关键数据的登录位址在搜寻存储垫102的y轴方向的区域。即,分割关键数据的登录位址所写入的区域,为表示该分割关键数据的二进制数据、与用以特定分配到搜寻存储垫102的y轴方向的"要记入登录位址(EA)的位置"的地址数据一致的y轴方向区域。例如,搜寻存储垫102的y轴方向分配有“00”“01”“10”“11”等4个地址数据,分割关键数据的二进制数据为“10”,而且,假设与该分割关键数据对应的登录位址为“00”的情形。在此情形中,该分割关键数据的登录位址“00”写入到搜寻存储垫102中分配有“10”的地址数据的y轴方向区域(要记入登录位址(EA)的位置)。依此方式,即可根据现在处理中的分割关键数据的次序(第k个)与分割关键数据的二进制数据,求得要分配该分割关键数据的登录位址的搜寻存储垫102的适当位置(位址)。
接着,写入部1053会确认分配有第1个(第k个)分割关键数据的登录位址(EA)的位置(位址)是否已写入了其他登录位址,而发生登录位址的冲突重复(步骤S5C)。例如,于进行现在写入处理中的关键数据前,有其他的关键数据业已写入搜寻存储垫102时,就会发生登录位址的冲突重复。
首先,在步骤S5C中,写入部1053判断为未发生登录位址的冲突重复时,写入部1053就直接将对应第1个(第k个)分割关键数据的登录位址写入到搜寻存储垫102的适当位置(位址)(步骤S5D)。
另一方面,在步骤S5C中,写入部1053判断为已发生登录位址的冲突重复时,冲突重复资讯存储部1054就将表示冲突重复的资讯写入到正发生该冲突重复的搜寻存储垫102的位置(位址)(步骤S5E)。例如,冲突重复资讯存储部1054只要将旗标位元等追加到正发生冲突重复的位置(位址),将已产生冲突重复的情形加以记录即可。
上述步骤S5D或步骤S5E的任一处理结束后,写入部1053会在“k”中加入“1”,并将该“k+1”的值代入“k”(步骤S5F)。然后,写入部1053会确认经由步骤S5G所得的“k”值是否等于“n(关键数据的分割数)”(步骤S5G)。k未达n(k<n)时,写入部1053就返回步骤S5B。例如,第1个(第k个)分割关键数据的处理完毕后,继续进行第2个(k+第1个)分割关键数据的处理。另一方面,k与n相等(k=n)时,写入部1053会将图3所示的副流程结束,并返回图2所示的主流程。
藉由上述各步骤(S1至S5),写入部1053可针对多个分割关键数据的全部,将对应的登录位址写入到搜寻存储垫102的适当位置(位址)。全部分割关键数据的登录位址写入完毕后,写入部1053就将写入处理结束。
接着,说明藉控制电路105执行的登录位址的读取处理。
在此,图4及图5显示控制电路105执行的读取处理的流程图。此处所称的读取处理,指与作为搜寻对象的关键数据(搜寻数据)一致的数据业已写入搜寻存储垫102内时,即读取与该关键数据对应的登录位址的处理。
如图4所示,在读取处理中,首先使作为要在搜寻存储垫102内进行搜寻的对象的关键数据(搜寻数据)输入到半导体装置(步骤S6)。在此,作为搜寻数据的关键数据,如图1所示,可设为直接输入到控制电路105的输入部1051,也可经由编码电路106输入到控制电路105的输入部1051。
在此,作为搜寻数据的关键数据输入到编码电路106时,藉由编码电路106进行该关键数据的编码处理(步骤S7)。此外,关于要在此进行的编码处理,将于后面的[实施例4]中详细说明。
另一方面,作为搜寻数据的关键数据直接输入到控制电路105的输入部1051时,该输入部1051就将关键数据向分割部1052送出。
接着,分割部1052会将作为搜寻数据的关键数据分割成多个(步骤S8)。在此,分割部1052在读取处理中所进行的分割处理(步骤S8),用与分割部1052在前述写入处理中进行的分割处理(步骤S3)相同的计算法来进行。依此方式,由于步骤S8的处理与步骤S3的处理相同,其说明从略。
如图1所示,读取处理中,分割部1052将经分割的关键数据往读取部1055送出。
其后,读取部1055根据藉分割部1052分割的多个分割关键数据存取于搜寻存储垫102的分割存储单元102a、102b、102c…,并将对应于多个分割关键数据的各个数据的登录位址进行读取的处理(步骤S9)。该步骤S9中进行的处理,在图5中有更详细的说明。
图5的流程图显示将关键数据(KD)的二进制数据分割为n个分割关键数据,并将该分割关键数据的次序定义为第k个的情形。
即,如图3所示,首先,将“1”代入“k”,开始n个分割关键数据中的第1个(最初)分割关键数据的处理(步骤S9A)。
接着,读取部1055根据第1个(第k个)分割关键数据,对搜寻存储垫102内进行搜寻(步骤S9B)。具体而言,读取部1055一边参照分配于搜寻存储垫102的y轴的用以特定“要记入登录位址(EA)的位置"的地址数据,将表示第1个(第k个)分割关键数据的二进制数据作为位址,而存取于搜寻存储垫102,并将写入于此处存取的搜寻存储垫102的位址内的资讯抽出。此处的处理,将于后文中参照图8等作更详细的说明。
总而言之,步骤S9B中,读取部1055用与写入部1053在步骤S5B进行的相同方法来存取于搜寻存储垫102的适当位置(位址)。即,该搜寻存储垫102的适当位置(位址)可藉由现在处理中的分割关键数据的次序(第k个)、与分割关键数据的二进制数据来特定。特定搜寻存储垫102的适当位置的方法,由于已在步骤S5B中说明,故此处的说明从略。
接着,读取部1055会根据第1个(第k个)分割关键数据来确认所存取的位址是否已写入有表示冲突重复的资讯(冲突重复旗标)(步骤S9C)。此处所称"表示冲突重复的资讯",为上述步骤S5F中藉由冲突重复资讯存储部1054所写入的资讯。
在此,步骤S9C中,判断为已发生登录位址的冲突重复时,读取部1055即将第1个(第k个)分割关键数据作为搜寻对象当作“无需顾虑(don’tcare)"者来处理(步骤S9D)。即,有关当作“无需顾虑(don’tcare)"来处理的分割关键数据,不读取与其对应的登录位址,就结束处理(往步骤S9G)。以此方式,在读取处理中存取的位址有发生登录位址的冲突重复时,藉由导入将该登录位址当作“无需顾虑(don’tcare)"的概念,即可以高速且低电力消耗有效率的进行数据搜寻。
另一方面,步骤S9C中,判断为未发生登录位址的冲突重复时,读取部1055就将写入于所存取的搜寻存储垫102的位置(位址)的一个登录位址读取(步骤9E)。即,此处读取部1055所读取的登录位址,有可能是与作为搜寻对象而输入的入的关键数据(搜寻数据)对应的登录位址。但,虽可读取与一个分割关键数据对应的登录位址,但由于并不能肯定该登录位址就是与作为搜寻对象的关键数据(搜寻数据)对应的登录位址,故继续进行与各分割数据对应的登录位址的读取处理。
接着,读取部1055会确认以步骤S9C读取的登录位址与前根据其他分割数据读取的登录位址是否不一致(步骤S9F)。此外,最先就第1个分割关键数据进行处理,由于前读取的登录位址不存在,所以藉由步骤S9F,而移换到步骤S9G。
上述步骤S9D或步骤S5F的任一处理结束后,读取部1055在“k”中加入“1”,并将该“k+1”的值代入“k”(步骤S9G)。然后,读取部1055确认经步骤S9G所得的“k”值是否与“n(关键数据的分割数)”相等(步骤S9H)。K未达n(k<n)时,读取部1055返回步骤S5B。例如,根据第1个(第k个)分割关键数据进行的读取处理完了其后,继续进行根据第2个(k+第1个)分割关键数据的读取处理。另一方面,k与n相等(k=n)时,读取部1055就将图5所示的副流程结束,并返回图4所示的主流程。
然后,继第1个(第k个)分割关键数据其后,根据第2个(k+第1个)分割关键数据进行读取处理。在此,例如步骤9F中,假设判断为根据第2个分割关键数据读取的登录位址与前根据第1个分割数据读取的登录位址不一致(步骤9F)。例如,相对于根据第2个分割关键数据读取的登录位址为“00”的情况,会有前根据第1个分割数据读取的登录位址为“01”的可能性。在此情况中,读取部1055会以作为搜寻对象而输入的关键数据并未记入搜寻存储垫102内,而判定为"无一致数据"(步骤S9I)。接下来,读取部1055不会向图4所示的主流程返回,而在此将读取处理整体结束。依此方式,本发明中,例如,由于在处理第2个分割关键数据的阶段可判定为“无一致数据",当然不用执行第3个以后的分割关键数据的读取处理,而可早期获得结果。藉此方式,可谋求搜寻处理的高速化。
如图4所示,登录位址的读取处理(步骤S9)结束时,控制电路105执行的处理就进到步骤S10。在步骤S10中,控制电路105的确认部1056根据读取部1055所读取的登录位址来参阅确认存储垫104。如步骤S4所说明者,登录位址与关键数据以正确组合构成对应关系而存储在确认存储垫104中。即,在此,确认部1056根据读取部1055所读取的登录位址,从确认存储垫104中读取与该登录位址构成对应关系的关键数据。接着,确认部1056会对从确认存储垫104读取的关键数据与作为搜寻对象而输入的关键数据的登录位址是否一致加以确认。以此方式,藉由根据读取部1055所读取的登录位址来参阅确认存储垫104,就可确认该登录位址是否真的与作为搜寻对象而输入的关键数据的登录位址一致。
例如,根据分割成多个的关键数据来读取多个登录位址时,全部的登录位址若为相同值,即可知该登录位址属正确。但,如上所述,本发明中导入了以下的概念:多个登录位址记入到相同位置(位址)而发生“冲突重复”时,以“无需顾虑(don’tcare)"来处理。于是,根据分割成多个的关键数据来读取多个登录位址时,会获得其中几个虽显示为相同值,但其他为“无需顾虑(don’tcare)"的结果。因此,在机率理论上,也会有所读取的登录位址发生错误的情形。因此,为了排除这种不确定性,本发明中,采用了参阅确认存储垫104的方式。
步骤S10中,参阅确认存储垫104的结果,判断为读取部1055所读取的登录位址无误时,确认部1056就将该登录位址往输出部1057送出。接着,输出部1057会将接受自确认部1056的一个登录位址作为搜寻结果向控制电路105的外部输出(步骤S10)。即,输出部1057为控制电路105的输出介面。
藉由上述各步骤(S6至S10),控制电路105可按照来自使用者的搜寻要求,进行搜寻存储垫102中所记入的数据的搜寻,并将与当作搜寻数据而输入的关键数据对应的一个登录位址输出。
如上所述,本发明的半导体装置具有图1所示的基本构成。该半导体装置基本上进行图2至图5所示的写入处理/读取处理。这些处理系显示本发明的基本概念者。本发明中更具体的处理,将于下述的[实施例1]至[实施例6]中更详细地加以说明。
如上所述,本发明系以现有的电路,特别是存储单元电路作为基础所构成,同时提供全新的逻辑方法论的发明。即,本发明关于巧妙利用关键数据及其登录位址的结构而无需程式的架构。若换成另一种说法,本发明关于一种头脑形式的架构。
本发明中,首先,在将存储单元电路的存储空间分割成多个分群的同时,写入该分群的数据亦同样进行分割。此外,本发明中,将分割的数据本身当作用以存取于分群的位址来掌握。而且,将该位址分配于存储空间的y轴,输入分群的数据则分配于存储空间的x轴。同时,本发明中,x方向的存储空间分割成可独立地写入/读取的多个存储单元,并将经分割的分群的输入分配到所分割的多个存储单元。
而且,本发明根据利用上述的构成,在位址冲突重复时导入“无需顾虑(don’tcare)"的概念,而得以用高速且低电力消耗的方式实现开关或搜寻的构想。
再者,本发明的发明人亦想到设置可将输入输出数据的次序以选择性地分配到分割存储单元的输入与输出部的开关、及控制这些开关的控制电路。藉此方式,即可将分割存储单元作为查找表LUT(LookUpTable)来使用,也将存储单元内的分群作为逻辑电路来使用。即,本发明的半导体装置成为所谓的均质电路。藉此方式,本发明的半导体装置可依需要来切换其作为逻辑电路或存储单元的功能来使用。此外,本发明的半导体装置也可动态地移动到使设定的必要分群相邻接的位置,且可用低电力消耗进行高速的搜寻处理。
再者,本发明的半导体装置也可在分割存储单元的输入部与输出部设置开关电路。在此情形中,半导体装置的控制电路又得以可逻辑性选择分割存储单元的方式来构成。而且,该分割存储单元再具备有藉由输入数据作为LUT(LookUpTable)以进行逻辑运算的构成,必要时,可将其排列多个区块。
此外,对本发明的半导体装置进行写入/读取登录位址的方法,在以分割关键数据特定的分割存储单元的同一位址写入多个登录位址的情况中,假设在该分割存储单元的位址存储有表示冲突重复的资讯。而且,本发明方法的构成方式:根据分割关键数据读取的全部资讯为表示冲突重复的资讯时,以所读取的冲突重复资讯依序参阅确认存储垫,并将一致的关键位址抽出。
在此,为了容易理解本发明,兹针对搜寻存储垫及分割存储单元,使用具体的数值来说明。搜寻存储垫102具备有多个分割存储单元。例如,搜寻存储垫102的总登录数定为4096个登录时,可识别4096个登录的位址规格即为12位元。其次,假设从搜寻存储垫102搜寻登录位址所需的关键数据大小为144位元时,用前述的12位元除以该数值,其商数为12。即,分割存储单元的数目为12个。
附属于搜寻存储垫102的控制电路105,在144位元的关键数据输入时,即将其作12等份分割,并分别分配到预先对应的各分割存储单元。经分割的关键数据的二进制数据则作为存取于对应的分割存储单元所需的位址来使用。然后,藉该分割的关键数据所指定的搜寻存储垫的位置,则写入对应关键数据的登录位址。该登录位址写入于该12等份分割的全部分割存储单元。
接着,读取所写入的资讯时,控制电路105会用相同于写入的步骤将输入的144位元关键数据作12等份分割。此外,控制电路105会存取于以分割的关键数据作为位址的预定分割存储单元。然后,控制电路105将写入于指定的分割存储单元的数据读取。该读取的数据即为与关键数据对应的登录位址。
在此,也可将要输入的关键数据的大小再行放大。例如,可从关键数据的144位元大小扩张到288位元。在此情形中,只要将搜寻存储垫102构成为并排式2排即可。此外,搜寻存储垫102的总登录数也可扩大。例如,要将搜寻存储垫102的总登录数从4096扩大到8192时,只要将搜寻存储垫102构成为串列式排成2个即可。另外,搜寻存储垫总登录数的基本单位或、并列式或串列式排列的搜寻存储垫的个数,并不限定于上述方式,而是可依要求而自由扩大或缩小。
又,如后文所述,也可在上述搜寻存储垫中附加开关功能。在此情形中,可将搜寻存储垫构成为查找表LUT(LookUpTable)方式的逻辑电路。而且,也可设定成包含搜寻存储垫的构成作为一部分扩大存储空间的方式。
上述说明为了容易理解本发明所列举的具体例。从而,本发明并不限定于上述方式。
【实施例1】
图1显示了实现本发明的半导体装置例。特别是图6显示了藉由SRAM-CAM表现存储单元电路构成的一个例子。另外,本实施例中,就藉SRAM-CAM构成的半导体装置的存储单元构成与基本原理加以说明。然而,只要是半导体装置具备可对例如由列位址(rowaddress)与行位址(columnaddress)所组成的存储单元阵列存取的存储空间(存储垫),即可实现本发明的原理。
如图6所示,本发明一实施例的半导体装置具备:近接快捷存储垫101、控制电路105、搜寻存储垫102、比较及闩锁电路103、以及确认存储垫104。而且,搜寻存储垫102由多个分割存储单元102a、102b、102c、…、102h建构而成。此外,近接快捷存储垫101不需要时,就没有设置的必要。
首先,本发明以克服网路的开关或路由器常用的CAM的缺点为目的。即,现有的CAM具有在进行数据的搜寻时,为了要使全部位元具备活性而消耗大电力的缺点。因此,本发明在搜寻时并不是像现有的CAM那样使全部位元具备活性,而是仅使y轴的指定登录位址活化。藉此方式,若依本发明,与现有的CAM相比较,可用登录数分之一(1/登录数)的活性位元进行搜寻。即,若与现有的CAM相比较,本发明只要使y轴登录数分之一(1/登录数)的位址动作,就可输出搜寻结果。因此,本发明中,不需要现有CAM所使用的输出编码器,而且,不需要会消耗大电力的与非电路的树状构造。从而,若依本发明,可以以低消耗电力执行搜寻处理。
如图6所示,本发明的半导体装置(SRAM-CAM)中,作为输入数据的关键数据(KD)与登录位址(EA)输入到控制电路105,并以预定的计算法写入于搜寻存储垫102。即,控制电路105会将所输入的关键数据分割成预定数,并以分割的关键数据作为位址,存取于预定的对应分割存储单元102a、102b、102c、…、102h。然后,控制电路105会将关键数据与登录位址写入到所存取的该分割存储单元102a、102b、102c、…、102h。该控制电路105的写入动作对全部分割存储单元102a、102b、102c、…、102h进行。此外,本案说明书中,将为了新记入于搜寻存储垫102而输入的关键数据称为“输入数据",为了对搜寻存储垫102内进行搜寻而输入的关键数据称为"搜寻数据"。
控制电路105将要记入登录位址(EA)的位置分配于搜寻存储垫102的y轴(位址),关键位址(KD)分配到x轴。将该控制电路105的动作与CAM的基本动作构成对应关系来说明时,将数据搜寻时所输入的关键数据分配于x轴,用于记入登录位址的位置(位址)分配于y轴。
搜寻存储垫102使x轴方向的区域分割为多个基本单元。搜寻存储垫102的分割数为n(n为2以上的自然数)。各基本单元中,在依据分割成适当大小位元数的关键数据来指定的位置储存有登录位址(EA)。图6的例子中,显示n设为8的情形。储存在各基本单元的登录位址的位元数由所分割的关键数据的位元数来决定,但关键数据的位元数则为任意个。
确认存储垫104中,使登录位址(EA)分配于y轴,与登录位址对应的关键数据(KD)则分配于x轴。即,与登录位址对应的关键数据写入于确认存储垫104的x轴。
图7将图6所示的存储单元电路的搜寻动作的定时以第1时钟及第2时钟的关系来表示。在第1时钟里,执行将关键数据(KD)输入到控制电路105且将储存于经分割的各垫的登录位址(EA)读取、直到将所读取的登录位址往闩锁电路103a闩锁为止的动作。接着,在第2时钟里,执行以比较器103b比较及闩锁电路103a的数据、将经确认一致的登录位址往确认存储垫104输入、参阅确认存储垫104并将经确认一致的登录位址作为CAM的输出的动作。
以此方式,图7中,显示了依本发明实施例的SRAM-CAM进行的开关或搜寻的动作。如图7所示,本实施例中,一次搜寻动作在2个时钟的机器周期完毕。与此相对地,现有的CAM在执行每一次搜寻动作时,最低也需要3个时钟的机器周期。一般而言,需要5到10个时钟。即,现有的CAM因为务必供给使全部位元动作所需的电力,故需要管线式操作。而且,现有的CAM在编码器要消耗1个时钟,所以最低也需要3个时钟。在这方面,本发明的SRAM-CAM,藉由研创了关键数据的输入方法,如图7所示,可用2个时钟完成搜寻动作。即,本发明的SRAM-CAM中,与现有的CAM相比较,可用登录数分之一(1/登录数)的电力来执行搜寻动作。
图8显示了本发明实施例的SRAM-CAM的写入动作。图8中,显示了将4个关键数据(KD=“2699”“3779”“1859”“1440”)的登录位址输入到搜寻存储垫102时的例子。另外,图8所示的例子中,即使在4个关键数据的登录位址全部输入后,搜寻存储垫102中仍存在有空白。因此,图8的例子中,可记入登录数以上的关键数据。这是因为相对于登录数,关键数据长度充分够大的缘故。图8的例子中,关键数据长度为登录数的2倍以上。
兹用图8说明对搜寻存储垫102进行登录位址写入动作的例子。图8的例子中,将搜寻存储垫102分割成6个(搜寻存储垫的分割数:N)。藉此方式,搜寻存储垫102b由6个分割存储单元102a、102b、102c、102d、102e、102f建构而成。此外,图8的例子中,写入于搜寻存储垫的关键数据系以12位元来表现。将这种12位元的关键数据持续写入于6个分割存储单元。因此,控制电路105会将所输入的关键数据分割为6个(关键数据的分割数:n)。从而,所分割的关键数据的位元数分别为2位元。
而且,如图8所示,构成搜寻存储垫102的多个分割存储单元102a至102f的每一个,在其y轴方向分配用以记入多个登录位址的位置。以此方式,各分割存储单元102a至102f的存储区域,分别朝y轴方向分割成多个。在图8所示的例子中,各分割存储单元102a至102f以每组4个的方式具有登录位址记入位置。再者,如图8所示,登录位址记入位置分别赋予用以特定搜寻存储垫102内的存储空间地址所需的地址数据。在图8所示的例子中,地址数据为2位元的资讯。例如,地址数据以“00”“01”“10”“11”的二进制数据来表现。如图8所示,登录位址记入位置中只要从上依序赋予“00”“01”“10”“11”的地址数据即可。
首先,将登录位址(EA)分配到作为输入数据的各关键数据(KD)“2699”“3779”“1859”“1440”。在图8的例子中,登录位址分别为2位元数据。即,登录位址为“00”“01”“10”“11”。依此方式,一个关键数据与一个登录位址形成对应关系。关键数据与登录位址的对应关系既可存储在确认存储垫104,也可存储在其他存储单元。图8的左上方显示了登录位址(EA)与关键数据(KD)的对应关系。
首先,作为应写入登录位址“00”的数据而输入的关键数据为“2699”。该关键数据“2699”以二进制来表现时,为“101010001011”。本实施例中,将该6等份分割的关键数据的二进制值作为存取于经分割的搜寻存储垫102所需的位址来使用。即,控制电路105将关键数据“2699”的登录位址的“00”写入到建构搜寻存储垫102的多个分割存储单元102a至102f的每一个。依此方式,在本发明的半导体装置中,写入到存储垫的数据成为与一般的CAM反转的形式。
如图8(a)所示,关键数据“2699”经6等份分割,并以“10”“10”“10”“00”“10”“11”的型态来表现。控制电路105将登录位址“00”写入到具备以这些分割关键数据作为位址而分割的分割存储单元102a至102f的搜寻存储垫102中。若具体来说明时,控制电路105将经6等份分割的输入数据“2699”中的第1个分割关键数据“10”作为位址,而存取于以第1个分割存储单元102a内的地址数据“10”来特定的位置,并将与输入数据“2699”对应的登录位址“00”写入到该位置。接着,控制电路105会针对输入数据“2699”的第2个分割关键数据“10”,以该“10”作为位址而存取于以第2个分割存储单元102b内的地址数据“10”来特定的位置,并将登录位址“00”写入到该位置。其次,控制电路105会以第3个分割关键数据“10”作为位址而存取于以第3个分割存储单元102c内的地址数据“10”来特定的位置,并将登录位址“00”写入到该位置。然后,控制电路105会以第4个分割关键数据“00”作为位址而存取于以第4个分割存储单元102d内的地址数据“00”来特定的位置,并将登录位址“00”写入到该位置。而且,控制电路105也以第5个分割关键数据“10”作为位址而存取于以第5个分割存储单元102e内的地址数据“10”来特定的位置,并将登录位址“00”写入到该位置。同样地,控制电路105亦以第6个分割关键数据“11”作为位址而存取于以第6个分割存储单元102f内的地址数据“11”来特定的位置,并将登录位址“00”写入到该位置。
藉此方式,与所输入的关键数据“2699”对应的登录位址“00”就写入于用关键数据“2699”来指定的搜寻存储垫102的分割存储单元。依此方式,由于关键数据“2699”以“101010001011”来表现,故将其以每组2位元作6等份分割。然后,将经分割的各个关键数据作为用来存取于分配到经6等份分割的搜寻存储垫的y轴的“登录位址记入位置"的位址。
经上述方式,即可将与输入的关键数据对应的登录位址写入到搜寻存储垫。然后,对搜寻存储垫进行搜寻时,就以与写入关键数据时同样的步骤,将作为搜寻对象的关键数据分割成多个。例如,作为搜寻对象的关键数据为“2699”的情况中,就将该二进制数据分割为“101010001011”等6个。藉此方式,以第1个分割关键数据“10”作为位址来读取搜寻存储垫102的数据时,就读取登录位址“00”。接着,以第2个“10”作为位址来读取搜寻存储垫102的数据时,就读取登录位址“00”。以下,依同样方式,分别以第3个至第6个数据“10”“00”“10”“11”作为位址而存取搜寻存储垫102时,与上述同样地从搜寻存储垫102读取登录位址“00”。此外,图8显示从各个分割存储单元102a至102h读取登录位址的状态。
即,可以以所分割的关键数据的任一个来搜寻登录位址“00”。此外,在此意义上,本实施例所具备的确认存储垫104充其量只是作为确认用,在原理上并非必要的构成要件。
如上所述,藉由利用多个分割存储单元来构成搜寻存储垫102,同时进行分割输入用及搜寻用关键数据的处理,可解决现有CAM的问题。即,若依本发明,由于不必像现有CAM那样使全部位元活化,故可解决消耗大电力的缺点。本发明的实施例中,要输出搜寻结果时,可用y轴的登录数分之一(1/登录数)的活性位元进行搜寻。依此方式,本发明可以仅使y轴的登录数分之一(1/登录数)的登录位址动作。从而,本发明中,并不需要现有CAM的输出部所使用会消耗大面积的与非电路的树状构造式输出编码器。
接着,返回图8继续进行说明。用与上述同样的方式,针对下一个输入数据的关键数据“3779”输入时的动作加以说明。该关键数据“3779”作为应写入登录位址“01”的数据而输入的关键数据。以二进制来表现关键数据“3779”时,即为“111011000011”。以该二进制值作为位址,存取于经6等份分割的搜寻存储垫102的y轴的存储区域,将与关键数据“3779”对应的登录位址“01”写入搜寻存储垫102中。
图8(b)中,关键数据“3779”经6等份分割而表现作“11”“10”“11”“00”“00”“11”。控制电路105即以这些分割关键数据作为位址,将登录位址“01”写入于具备多个分割存储单元102a至102f的搜寻存储垫102中。即,控制电路105在输入关键数据“3779”的分割关键数据中,以最初的分割关键数据“11”作为位址,存取于以最初分割存储单元102a内的地址数据“11”来特定的位置,将与关键数据“3779”对应的登录位址“01”写入到该位置。接着,控制电路105会以第2个分割关键数据“10”作为位址,存取于以第2个分割存储单元102b内的地址数据“10”来特定的位置,并将登录位址“01”写入到该位置。惟,登录位址写入于第2个分割存储单元102b时,该第2个分割存储单元102b的位置中,业已写入有关键数据“2699”的登录位址“00”。依此方式,欲将登录位址写入于搜寻存储垫102时,会有所谓冲突重复的现象发生的情形。发生该冲突重复现象的位址,在图8(b)中,以涂黑部分来表示。该涂黑部分的关键数据,在此后进行的搜寻处理,当作“无需顾虑(don’tcare)"者来处理。
此外,在本发明中,为了记录发生上述冲突重复的情事,较佳为设置冲突重复旗标。冲突重复旗标可以设成例如2位元的数据。例如,冲突重复旗标设为2位元的情况中,“00”时,表示未写入的初期状态,“01”表示写入完毕状态,“10”表示冲突重复状态,“11”表示其他状态。
图8(b)中,接着以第3个分割关键数据“11”作为位址,存取于以第3个分割存储单元102c内的地址数据“10”来特定的位置,并将登录位址“01”写入到该位置。同样的,对于从第4个到第6个分割关键数据“00”“00”“11”,也以这些关键数据作为位址,分别将登录位址“01”写入第3个到第6个分割存储单元102d至102f中。惟,关于第4个与第6个位址,业已因关键数据“2699”的写入而正处于使用中,故写入冲突重复旗标。藉此方式,有关第4个与第6个位址,在其后进行的搜寻处理中,当作“无需顾虑(don’tcare)"来处理。
藉由以上的处理,登录位址“01”就被写入于以关键数据“3799”指定的搜寻存储垫102。在上述步骤中,2个关键数据“2699”“3799”写入于搜寻存储垫102的处理即告完成。惟,有关关键数据“3799”,第2、4、6个分割关键数据的写入动作中发生了冲突重复,故在后续的搜寻处理中,执行“无需顾虑(don’tcare)"的处理。因此,如着眼于关键数据“3799”时,6个分割关键数据中,3个不能当作搜寻对象来处理,搜寻对象乃从6个减少为3个。
控制电路105也是同样的针对第3个及第4个关键数据“1859”及“1440”,以与上述关键数据同样的步骤,将对应的登录位址“10”及“11”写入搜寻存储垫102。如图8(c)所示,关键数据“1859”的写入处理中,重新在第5个分割存储单元102e产生位址冲突重复。而且,如图8(d)所示,关键数据“1440”的写入处理中,重新在第1个与第3个分割存储单元102a、102c发生位址冲突重复。
图8(e)显示了确认存储垫(SRAM)104的写入状态。第1输入数据的关键数据“2699”的二进制数据“101010001011”经分割并依序写入到该确认存储垫104的存储单元位址“00”中。而且,在确认存储垫104的存储单元位址“01”中依序写入第2输入数据的关键数据“3779”的二进制数据“111011000011”。以下,同样地,在确认存储垫104的存储单元位址“10”中依序写入第3输入数据的关键数据“1859”的二进制数据,存储单元位址“11”中则依序写入第4输入数据的关键数据“1440”的二进制数据。
以上的处理为将与输入于搜寻存储垫102的关键数据对应的登录位址写入的基本处理。
接着,在下文中,就根据所输入的关键数据对搜寻存储垫102内进行搜寻,并读取与该关键数据对应的登录位址的处理加以说明。
图9为显示本发明实施例的SRAM-CAM的搜寻–读取动作例的图示。图9显示了即使在写入处理时发生登录位址冲突重复的情况下,即,将图8中所示的涂黑登录位址设为“无需顾虑(don’tcare)"的情形中,也可根据搜寻输入数据正确搜寻的情形。
图9(a)显示输入关键数据“2699”作为搜寻数据的情形。所输入的关键数据“2699”以二进制数据表现为“101010001011”。而且,该关键数据“2699”的二进制数据以“10”“10”“10”“00”“10”“11”的方式作6等份分割。然后,这些多个分割关键数据作为存取于分配于经6等份分割的搜寻存储垫102的y轴的"登录位址记入位置"所需的位址来使用。
首先,在6个分割关键数据中,以最初的分割关键数据“10”作为位址,存取于以搜寻存储垫102内的地址数据“10”来特定的位置时,从与最初的分割存储单元10a中的“10”对应的位置(位址)读取登录位址“00”。同样地,以第2个分割关键数据“10”作为位址,存取于以第2个分割存储单元102b内的地址数据“10”来特定的位置。然而,该第2个分割存储单元102b的位置(位址)已写入有图8(b)的第2输入数据“3799”时,发生了位址的冲突重复。因此,控制电路会在根据第2个分割关键数据“10”的搜寻处理中,把搜寻结果当作“无需顾虑(don’tcare)"者来处理。于是,来自搜寻存储垫102的第2个分割存储单元102b的读取数据就被当成搜寻对象外。是否要执行“无需顾虑(don’tcare)"处理,只要从存储单元暂行数据读取,并以赋予到该读取数据的旗标部分来判断即可。依此方式,严格来说,控制电路105虽对于当作搜寻对象外的数据未进行登录位址的输出,但会进行从存储单元电路读取的动作。
关于以第3个分割关键数据“10”、第4个分割关键数据“00”、及第6个分割关键数据“11”作为位址对搜寻存储垫102进行的存取,也是同样的利用“无需顾虑(don’tcare)"的处理,使所读取的数据设为搜寻对象外。另一方面,以第5个分割关键数据“10”作为位址,存取于以搜寻存储垫102的第5个分割存储单元102f内的地址数据“10”特定的位置时,因未产生冲突重复旗标,故可读取登录位址“00”。图9(a)右侧的图根据关键数据“2699”,将从搜寻存储垫102读取的登录位址(EA)排列显示。
如图9(a)所示,根据作为搜寻数据的关键数据“2699”而从搜寻存储垫102读取的登录位址中,实际使用于搜寻的登录位址就会变成为写入于第1个分割存储单元105a及第5个分割存储单元105e的登录位址“00”。
在此,根据登录位址“00”从图8(e)所示的确认存储垫104读取关键数据值时,可知与该登录位址“00”对应的关键数据为“101010001011”。该“101010001011”若以十进法表现,即为“2699”。藉此方式,就可知以读取处理所读取的登录位址“00”,为当作搜寻数据而输入的关键数据“2699”。即,本发明中,可一面使用“无需顾虑(don’tcare)"处理,一面从搜寻存储垫102读取登录位址,用该登录位址存取于确认存储垫104。因此,本发明将来自确认存储垫104的输出数据的关键数据与作为搜寻对象而输入的关键数据相比较,确认其一致性,并输出该登录位址。
图9(b)显示作为搜寻输入数据的关键数据而输入“3779”的情形。所输入的关键数据“3779”可以二进制数据“111011000011”来表现。该二进制数据以“11”“10”“11”“00”“00”“11”的方式作6等份分割,且分别使用作为用以存取于分配在搜寻存储垫102的y轴的“登录位址记入位置"所需的位址。以最初的分割关键数据“11”作为位址,从最初的分割存储单元102a读取数据时,就会读取登录位址“01”。以第2个分割关键数据“10”作为位址,虽从第2个分割存储单元102b读取数据,但由于在输入数据“3779”输入时产生了位址冲突重复,所以该数据会被当作“无需顾虑(don’tcare)"来处理,而变成搜寻对象外。
以第3个分割关键数据“11”作为位址,从搜寻存储垫102的分割存储单元102c读取数据时,登录位址“01”就被读取。此外,分别以第4个分割关键数据“00”、第5个分割关键数据“00”、第6个分割关键数据“11”作为位址而朝搜寻存储垫102的存取动作,由于产生了冲突重复,故藉由“无需顾虑(don’tcare)"处理而成为搜寻对象外。
如图9(b)所示,根据作为搜寻数据的关键数据“3779”而从搜寻存储垫102读取的值,成为写入于最初分割存储单元102a的(删除)第3个分割存储单元102c的登录位址“01”。
在此,藉由登录位址“01”读取储存于图8(e)所示的确认存储垫104的关键数据的值时,即为“111011000011”,可知以作为输入数据而言,其与关键数据“3779”一致。即,一边使用“无需顾虑(don’tcare)"处理,一边使用从读取自搜寻存储垫102的数据所读取的登录位址,存取于确认存储垫104。然后,控制电路105会将来自确认存储垫104的作为输出数据的关键数据与作为搜寻对象而输入的关键数据加以比较,确认是否一致后进行输出。
接着,图9(c)显示将未写入搜寻存储垫102的关键数据“1504”当作搜寻对象的关键数据而输入时的处理。
首先,关键数据“1504”作为搜寻数据被输入时,“1504”的二进制数据即以“01”“01”“11”“10”“00”“00”的方式作6等份分割。该6个分割关键数据分别用作为存取于分配于搜寻存储垫102的y轴的“登录位址记入位置"所需的位址。把最初的分割关键数据“01”作为位址而从最初的分割存储单元102a读取数据时,由于在写入处理时产生位址冲突重复,故执行“无需顾虑(don’tcare)"处理。然后,以第2个分割关键数据“01”作为位址,而从第2个分割存储单元102b读取数据时,可读取登录位址“11”。接着,将第3个分割关键数据“11”作为位址,而从第3个分割存储单元102c读取数据时,登录位址“01”就被读取。不过,在此读取的登录位址“01”与刚才读取的登录位址“11”为相异的值。即,根据关键数据“1504”读取的登录位址中,在“11”与“01”上发生了不一致。于是,可知搜寻存储垫102中尚未记录有关键数据“1504”。从而,控制电路10可在处理第3个分割关键数据的阶段判定为"无一致数据"。
以此方式,从搜寻存储垫102读取的登录位址发生不一致时,不需要使用上述确认存储垫104进行确认处理。此外,本实施例中虽未揭示相同的分割存储单元中有多个位址冲突重复,要执行“无需顾虑(don’tcare)"处理时,即使从存储单元读取得全部登录位址一致,作为搜寻数据而输入的关键数据、和与在读取处理时输出的登录位址对应的关键数据,也会发生不一致的问题。惟,这种问题可藉由参阅确认存储垫104来解决。即,根据从搜寻存储垫102读取的登录位址而存取于确认存储垫104,作为搜寻对象的关键数据和从确认存储垫104输出的关键数据不一致时,就可判定为"无一致数据"。
图10为显示依登录数份写入关键数据时的搜寻不一致(NG)发生数的曲线图。即,图10的曲线图中,显示了“无需顾虑(don’tcare)"的处理在搜寻存储垫102内发生多次,并从乱数表模拟误动作机率的例子。图10(a)显示关键数据在4位元以上,搜寻存储垫的登录数为4个的情形。其次,图10(b)显示关键数据在8位元以上,搜寻存储垫的登录数为8个的情形。由图10(a)所示的模拟结果看来,可知藉由将关键数据长设定在8位元以上,搜寻不一致(NG)的发生数会无限接近零。同样地,由图10(b)所示的模拟结果看来,可知藉由将关键数据长设定在16位元以上,搜寻不一致(NG)的发生数会无限接近零。即,由这些模拟结果来看,可知藉由将关键数据的位元数设为搜寻存储垫的登录数的2倍以上,可以大致确实防止半导体装置误动作而发生搜寻不一致(NG)的情形。所以,关键数据的位元数较佳为搜寻存储垫的登录数的2倍以上。
如上所述,本发明的半导体装置以输入数据经分割的分割关键数据作为位址,将其输入数据的登录位址写入到构成搜寻存储垫102的多个分割存储单元中。由于分割关键数据将输入数据分割成多个,所以在将这些分割关键数据写入到搜寻存储垫102时,有发生冲突重复状态的可能。
登录位址写入于这种多个分割存储单元的操作设为"第1操作"。此外,第1操作的处理程序例在图2中亦有显示。
以上的第1操作为搜寻存储垫内的开关操作或制作用以执行搜寻处理的基本资讯数据的操作。
在该第1操作中,即使是多个登录位址写入到相同位址的情况中,也是设定冲突重复旗标,并直接进行输入。然后,在对搜寻存储垫内进行搜寻时,关于设定有冲突重复旗标的位址,当作“无需顾虑(don’tcare)"来处理。依此方式,本发明中,登录位址写入至分割存储单元时,所发生的位址冲突重复问题在执行搜寻动作时加以解决。
在此,在本实施例所说明的情形,登录位址(EA)的数目相对于所输入的关键数据(KD)的位元长度为充分大时,针对例如2倍以上的情形来考量。
例如,关键数据的位元长度相对于登录位址的大小为较小的情形中,在分割关键数据时,藉由使分割部分的最初数据的一部分重迭于下一个分割关键数据的方式分割关键数据,使分割部分的数据的总和可大于本来的关键数据位元长度。利用该关键数据的扩张,即使在关键数据的位元长度相对于登录位址的大小为较小的情形中,也可将关键数据的位元长度扩大到相对于登录位址的大小为充分大。惟,关键数据的扩张必须使分割关键数据彼此间不会发生完全重迭。
而且,在后文说明的搜寻动作中,要使作为搜寻结果而输出的数据可确认为正确无误,对确保数据的信頼度至为重要。因此,在本发明的实施例中,乃将存储空间的一部分分配到确认存储垫104。该确认存储垫104朝y轴方向具有登录位址(EA)的存储区域,在x轴方向则与登录位址形成对应关系而具有关键数据(KD)的存储区域。而且,本发明的实施例中,在将所输入的关键数据写入搜寻存储垫102的同时,也将所输入的关键数据与登录位址对该确认存储垫104进行写入。依此方式,即可在确认存储垫104准备确认用的基本资讯数据。这种关键数据写入确认存储垫104的操作作为“第2操作"。此外,第1操作的处理程序例亦显示于图2。
其后,控制电路105会按照使用者的要求,根据所输入的关键数据在搜寻存储垫102内进行搜寻,并进行将与该关键数据对应的登录位址读取的处理。在登录位址的读取处理中,控制电路105会将作为搜寻数据而输入的关键数据依照上述关键数据(KD)的分割方法进行分割,以分割关键数据使搜寻存储垫活化,并将根据该分割关键数据而读取的登录位址(EA)输出。该搜寻处理作为"第3操作"。惟,有关在上述写入处理(第1操作)中记录了位址冲突重复的登录位址,则在读取处理中当作“无需顾虑(don’tcare)"来处理,而不输出登录位址。
再者,控制电路105根据多个分割关键数据读取1个以上登录位址,该所读取的登录位址全部一致时,就使用该登录位址来参阅储存有确认用基本资讯数据的确认存储垫104。即,控制电路105会将在搜寻处理所读取的登录位址及作为搜寻对象而输入的关键数据,与存储在确认存储垫104的y轴的登录位址及存储在x轴的关键数据进行比较。接着,控制电路105对登录位址与关键数据一致的情况进行确认,并输出一个登录位址。这种参阅确认存储垫104的操作作为“第4操作"。另外,第4操作的处理程序例亦显示于图4。又,上述第3操作及在第3操作输出的登录位址为开关连接或搜寻的位址。
上文中,本发明用图6所示的SRAM-CAM存储单元电路来实现可进行第1操作至第4操作的4个操作的存储单元电路构成〔即,这些逻辑形式的构成〕。
【实施例2】
接着,就“无需顾虑(don’tcare)"的处理即使发生多次,也可减少半导体装置的误动作机率的其他方法作为本发明的实施例加以说明。
首先,说明该实施例的概要。该实施例中,准备m个(m为2以上的自然数)定义区块作为搜寻存储垫102。而且,搜寻存储垫102的登录数决定为某种任意大小时,对于1个区块,将登录位址作分割,决定从下位开始输入到登录数的1/m为止。然后,对于1个区块,将一定数以上登录位址的输入中断,移到其他存储区块,继续该操作,并将较大的基本资讯数据储存于多个存储区块。该方法中,以关键数据长度为登录数的1/8位元以上作为条件。针对其余的较1/m上位的登录位址,也是与最初的存储区块同样从下位位址开始依序输入。本实施例中,各存储区块间的操作切换等,可藉选择器进行控制。藉此方式,上位下位搜寻位址即得以合成,且可输入到作为前述确认用搜寻垫的位址轴的y轴,以进行实施例1所说明的第1至第4操作。
图11显示搜寻存储垫102的登录数假设为256个时的实施例。
如图11所示,搜寻存储垫102以2个存储垫所构成。在此,y轴方向的登录数大小设为256个时,将从0到127的登录输入到第1搜寻存储垫102,从128到255的登录输入到第2搜寻存储垫102。藉此方式,就可几乎完全将误动作发生机率维持在实用水平以下。构成该搜寻存储垫102的2个存储垫间的切换,只要使用附加于标头的第1旗标F1来进行即可。由于实际的搜寻存储垫102中,需要2位元作为旗标,故在256登录×32位元关键数据的情形中,就以8个256字元×10位元的SRAM作为搜寻存储垫、及1个256字元×32位元的SRAM作为确认存储垫104来构成搜寻存储垫。
如以上所述,藉由将可写入到搜寻存储垫102的登录数限制于1/m(m为2以上自然数)个,就可减少误动作发生的机率。图12中显示m为2时,即,写入存储单元的登录数限制于1/2时的误动作发生机率的模拟结果。如图12所示,即使登录宽度(登录数)为256字元(8位元),在机机率上,在关键数据长度32位元发生的误动作就不会发生。此外,图12所示的模拟中,使用EXCEL的乱数函数作为CAM的写入数据。
以上就防止误动作的方法的例子加以说明,但以本发明的其他实施例而言,也有将未写入区域消除,并有效率的将登录位址记入到搜寻存储垫102的方法。
以SRAM单位来看可写入的登录位址的记入登录位址数目,仅限于记入登录位址全部皆为唯一性时,未写入区域并不存在。所谓唯一性,可假想SRAM的构成为n字元×n位元时,会有SRAM的位址与SRAM的内容相同的情况、及在该状态下SRAM的内容或位址经任意取代的两种情况。
但,如图13所示,在多个位置发生SRAM的内容、或位址重迭时,未写入区域会依其程度増加。即,SRAM的内容相同时,例如“00…00"地址的数据与“00…01"地址的数据相同时,“00…00"地址的内容会如右图所示的成为未写入区域。即,非唯一性的数据増加时,就会导致未写入区域増加(变得容易记入)的结果。利用这种特性,即可增加写入数。说明这种情形的理由,是因例如CAM搜寻的情况中,就有像标头那样可将相同数据使用好几次的倾向。这种结果,是因为以各个SRAM来看时,未写入区域有增多的倾向的缘故。
在此,将本实施例从其效果方面进行归纳。
首先,由于使用SRAM,所以容易大规模化,相较于一般的CAM,可获得登录数分之一(1/登录数)的大幅低电力化。
其次,写入动作结束后,即使写入登录位址的分割存储单元(SRAM)剩下1个,也可正常搜寻所记入的登录位址。
分割存储单元(SRAM)中存在了多个搜寻对象外的位址,也可藉由使用确认存储垫(SRAM)进行正确的搜寻。本实施例中,虽使用SRAM来说明,但确认存储垫的内容,只要是按照位址将输入数据写入的装置即可,也可用暂存器等来实现。
若依本实施例,在记入关键数据的登录记入时若发生位址冲突重复,可藉由执行“无需顾虑(don’tcare)"处理,将会处于搜寻对象之外的搜寻对象外导入,使未写入区域増加。藉由利用该未写入区域,即可扩张登录位址。
此外,若依本实施例,在关键数据的登录记入时,在搜寻存储垫102的全部分割存储单元(SRAM)成为搜寻对象外的情况下,虽无法进行关键数据的登录记入,但这种状态表示构成CAM的SRAM的区域有超限的情形。在对策上,可准备多个搜寻存储垫,倘若发生这种状态,藉由切换即可解决。
【实施例3】
接着,在实施例3中,就实施例1及实施例2说明的半导体装置,更进一步进行功能扩张的步骤加以说明。
实施例1或实施例2中,为了防止误动作,将登录位址的写入处理限制于不会因分割存储单元的位址冲突重复而误动作的区域。除此之外,也可藉由増加可输入的登录位址数,进一步防止误动作。
例如,如图14所示,也可将登录位址(EA)从2位元(图14(a))增加到3位元(图14(b))。藉此方式,即可增加确认存储垫104的登录位址数。如图14所示,将登录位址设为3位元时,只要设定扩张旗标(FRG),就可识别一般的登录位址(一般位址)与经扩张的登录位址(扩张位址)。例如,在图14的例子中,登录位址的第3位元为“0”时,表示为一般位址,登录位址的第3位元为“1”时,表示为扩张位址。
图15及图16显示登录位址(EA)设为3位元时,进行数据写入处理的例子及数据搜寻处理的例子。
图15显示写入动作的例子。如图15所示,利用以3位元表现登录位址(EA),登录位址(EA)的数目即为8个。例如,图15的例子中,在图8所示的4个关键数据“2699”“3779”“1859”“1440”之外,按照实施例1所说明的第1操作步骤,将第5个关键数据“408”写入到各搜寻存储垫1002与确认存储垫1004。
由于关键数据“408”的二进制数据为“000110011000”,故将这些数据作为位址写入到搜寻存储垫1002中。于是,对于最初的分割关键数据“00”,将3位元的登录位址“001”写入存储单元位址“00”。图15中,虽记载为“00”,实际是写入“001”。
藉由将登录位址(EA)从2位元设为3位元,例如,増加的1位元为“0”时,进行相同于登录位址为2位元时的处理,増加的1位元为“1”时,则使用于扩张位址的识别。具体上,若以关键数据“408”的第2个分割关键数据“01”作为位址,由于在业已写入的“1440”间会产生位址冲突重复(参照图8(d)),故进行“无需顾虑(don’tcare)"的处理。以关键数据“408”的第3个分割关键数据“10”作为位址时,由于在该位址“1440”的写入处理时业已进行“无需顾虑(don’tcare)"处理,故不再进行写入就结束处理。同样地,第4个分割关键数据“01”中,将“001”写入存储单元位址。图15中,虽记载为“00”,实际上是写入“001”。第5、6个分割关键数据“10”“00”中,亦在各个存储单元位址进行“无需顾虑(don’tcare)"处理。
对于搜寻存储垫1002,藉由用登录位址3位元中的上位2位元进行写入动作,即可和实施例1同样的进行写入动作。
另一方面,对于确认存储垫1004,由于藉由3位元使登录数增加为2倍,故3位元中的下位1位元如图15所示地増加。即,将输入数据“000110011000”写入到登录位址“001”。
接着,图16中,显示用图15写入的经扩张的登录位址进行搜寻的例子。
如图16(a)所示,输入关键数据“2699”作为搜寻数据的情形中,从经分割的搜寻存储垫1004的最初分割存储单元(SRAM)读取“000”。对于与第2个至第6个分割关键数据对应的存储单元位址,因已进行“无需顾虑(don’tcare)"处理,故所读取的数据即成为搜寻对象外。然后,以“000”作为位址而存取于确认存储垫1004时,“101010001011”即被读取。依此方式,可知搜寻存储垫102的确认结果与输入数据“2699”一致。
然后,如图16(b)所示,输入关键数据“408”作为搜寻数据的情况中,从已分割的搜寻存储垫1002的第1个及第4个读取“001”的登录位址。至于其余的搜寻存储垫1002,则由于所存取的数据皆已进行“无需顾虑(don’tcare)"处理,故读取的数据成为搜寻对象外。以读取的登录位址“001”来存取于确认存储垫1004时,可知“000110011000”与输入数据“408”一致。
其次,使用图17就作为关键字搜寻的基础的遮蔽操作方法加以说明。图17(a)显示以关键数据“1440”将已分割的搜寻存储垫1002的第4个至第6个遮蔽并进行搜寻的情况。在此情形中,图17(a)的状态中,从搜寻存储垫1002输出“11”,并以存储位址“11”存取确认存储垫1004时,可知从搜寻存储垫1002的输出与作为输入数据的关键数据一致。
另一方面,图17(b)显示对于输入数据“1440”将第2个、第4个、及第6个存储垫遮蔽并进行搜寻的例子。在此情形中,因为第1个、第3个、及第5个登录当作“无需顾虑(don’tcare)",而第2个、第4个、及第6个已被遮蔽,故致搜寻存储垫1002的输出消失。即,在此情况中,判断为无搜寻数据。
接着,就本发明实施例中的多发命中的定义及对搜寻引擎的扩张加以说明。
与实施例1或实施例2同样的,将作为第1控制位元的第1旗标F1的位元、及表示作为第2、第3、第4---旗标位元的相关位址RF的树状结构位元追加到标头,并完成第1操作至第3操作。第1旗标F1的位元为非活性时,为与实施例1或实施例2同样地进行操作的单发命中模式。另一方面,第1旗标F1为有活性时,即设为对应多发命中,而如图18所示,以第3操作来处理要求取的关键数据,并于输出登录位址后,将其暂时储存于缓冲存储单元BSRAM。此时,就将第4操作中止,并在第2时钟里,以快捷存储垫找出藉由第3操作输出的登录位址相关位址树状结构的上位位址,并抽出数据,与其位址一起暂时储存。在下一个时钟里,以前述快捷存储垫将相关位址树状结构的位于第2个的位址及该第2数据找出,并将该位址及数据抽出。继续进行该程序,一直到相关旗标树状结构的优先顺位的下位。返回到第1相关位址时,进行旗标为非活性的操作。由于这是一种反馈环圈,所以在重复进行期间(旗标的活性期间),会将新的搜寻中止。以新的第4操作暂时储存,并将具有相关关系的多个位址输出,且依需要进行数据的附加。
藉此方式,搜寻引擎之做为重要作用的多个类似搜寻就能够执行。图6中,于旗标F1存在的情况下,虽刚才的输入登录数的1/2输入也需要旗标,但可进行位元数的追加,并追加旗标功能,而与数据相关联地准备旗标RF。该旗标分类成若干个,且成为可进行树状结构搜寻的旗标。由于该组资讯写入于近接快捷存储垫,故可开始子程序的操作,并输出多个搜寻位址及数据。
要将CAM设成可利用作多发命中时,有必要使多个关键数据与一个登录对应。在现况下,假设欲使多个关键数据对应1个登录位址,则搜寻存储垫102的输出会完全成为忽视搜寻状态,而成为不能进行确认存储垫104的读取。对于该问题,藉下述方法来解决。
要使多个关键数据对应1个登录位址的情况中,将旗标设定于“11”。旗标为“11”时,就不使用确认存储垫104,以去除忽视搜寻的部分。如果确认所读取的登录位址全部一致,就将该数据判定为登录位址。这意味着可将搜寻的动作利用以登录位址存取的快捷存储单元的数据中的一部分数据来控制。
说明这个意义的图示为图19。图19显示了本实施例的多发命中与一般CAM的多发命中的差异。在一般CAM的多发命中里,如图19(a)所示,对于一个关键数据,输出多个登录位址。另一方面,本实施例的SRAM-CAM的多发命中里,如图19(b)所示,对于多个关键数据的输入,输出一个登录位址。
本发明的SRAM-CAM中,达到与一般CAM类似的多发命中功能的方法,表述于图20。一般的CAM中,如图20(a)所示,对于一个关键数据“A”,可找到多个登录位址“m”“n”“p”。相对地,本实施例的SRAM-CAM中,如图20(b)所示,对于一个关键数据“A”,有登录位址“m”“n”“p”相对应。数据0的部分,作为旗标,多发命中on时使用0或1的数据;多发命中off时,则使用0或1的数据。在数据1的部分直到成为0切换旗标;而在成为0的时刻,将关键数据的停止输入解除。
透过这种方式,以登录位址存取的SRAM就可设置多个,而以数据0来控制多个SRAM。而且,透过使用多埠型SRAM,可使多发命中数据的输出高速化。
多发命中的时钟计时如图21所示。对于系统动作,SRAM的动作有余裕时,可使SRAM高速化以进行多埠式动作。该图21显示了4埠动作的例子。系统时钟、RAM0时钟、RAM1时钟、RAM2时钟、RAM3时钟可藉由4倍速时钟用计数器与简单逻辑电路轻易产生。此外,以RAM3时钟的反转信号来闩锁系统输出时,就成为与系统输出相同的定时。此外,一般的动作用系统时钟与RAM0时钟使其动作。多发命中时,以RAM0至RAM3的OR信号(4倍速时钟)使登录目标的SRAM动作,用RAM3时钟的反转信号将SRAM的闩锁输出加以闩锁时,可获得与系统输出同一定时的4个并列输出。
以上就可使用于开关路由器的CAM动作及实现搜寻引擎的方式加以陈述,这个构成也可扩张为以查找表LUT(LookUpTable)为基础的功能。为达成此目的,只要在搜寻存储垫的垫上下附设小规模的开关等控制电路即可。
在登录位址往存储单元的输入中,把重迭当作“无需顾虑(don’tcare)"来处理的实施例1、2所记载的方法的界限,为在存储单元列完全重迭前。这种问题容易发生在比随机数据更具数据差异性时。此时的对策对附带于登录位址的旗标进行改读。
写入数据时若选择了已完成写入的位址时,则不将旗标当作“10”来进行写入,而在搜寻时忽视“10”的旗标的输入数据资讯。但,由于数据的差异性,而有搜寻时整个存储垫的旗标都变成“10”,导致陷入无法搜寻的情形。为了避免这种情形,搜寻时即使整个输入数据的旗标都是“10”,也只限于SRAM的读取资讯完全一致的情况,才将该数据作为搜寻数据的关键数据来处理。
使用逻辑电路的方法由均质电路群单位(Unifiedclustercircuit)的概念所形成,使应用范围得以大幅扩大。搜寻存储垫中附加有LUT控制电路(LUTC)的状态揭示于图22。即,图22显示在图6的搜寻存储垫102的输入部及逻辑输出部中附加开关电路网的结构。
在该图22中,CTS表示控制信号,LO表示逻辑输出。搜寻存储垫102则当作LUT(LookUpTable)102’来利用。若将作为四则运算及数据位移源的加法器的例子加以显示,则会形成图23所示的构成。四则运算所需要的运算步骤系以开关电路构成。即,图23显示具有多个LUT的情况,其中显示了选择16位元加法器时的例子。SW为切换2个输入的开关电路,b_DV为位元分配电路,C为连接器,可设定为开/关,且在关时强制设为0的电路。此外,透过使LUT的周边电路对应于多个LUT,其功能即可动态地改变。而且,透过与多个电路区块进行协调,可以提升处理效率,并缩小系统的面积。又,连接器C的输出设定在0时,就成为8位元加法器×2。接着,将显示位元数的整体构成例揭示于图24。依此方式,搜寻存储垫就成为可藉由附加开关电路(LUT控制电路)进行逻辑动作的区块。
图24中,将256登录×32键的CAM阵列的单元部分构成加以显示时,即成为下述的形态。即,(1)CAM本体实现至具多发命中功能为止的CAM功能的单元。(2)LUT成为(a)8个256字元×10位元的SRAM、(b)1个256字元×32位元的SRAM、(c)1个256字元×48位元的SRAM的构成。其中,(b)与(c)也可为9个256字元×10位元的SRAM。这种方式可使作为LUT的利用效率提高。此外,若设计成这种方式,即可实现面积效率优异的逻辑电路或可当作存储单元来使用的均质电路群单位。将图24所示的区块配置成阵列状时,就可作为可程式逻辑区块或存储区块来使用。概念上,可构成为CAM功能及可程式逻辑区块或与存储区块相等的形态。此外,MB表示多总线。
可用相同垫来构成这种存储单元与逻辑的均质区块排列,由于可将必须处理的区块邻接配置,故可解除总线缩颈(busneck)的情形,确保以低消耗电力高速动作。而且,藉由这种均质区块排列,所有数据处理皆属可能。
图25中,图25(a)说明开关或搜寻的动作,图25(b)则说明逻辑运算的步骤(图25(b))。图25中,显示透过来自控制系统整体的电路的指示进行切换,可执行所有的处理的构成。此外,图25(b)中,CB表示近接连接总线,LI表示逻辑输入,LO表示逻辑输出。又,以一点链线圈起来的部分表示子程序,其为1环圈/时钟。
本实施例中,由于将必要数据群邻接配置,故可用邻接及1时钟进行并列运算。图25中,将其以所谓第1时钟的定时来显示。藉此方式,就可在可能范围内以邻接状态来构成。图25(a)显示开关或搜寻的情况,图25(b)则显示逻辑运算的情况。即,若将其再扩张,亦可作为区块单位,而在系统上产生动态重组(Dynamicreconfiguration)的概念(图26)。即,以4×4区块排列的例来显示时,就成为图26的形态,很容易判知所有构成皆可瞬时切换。只有这样才是大脑型电脑的开端。
图26为加上逻辑运算功能的SRAM_CAM阵列构成的图示。图26所示的例子为动态重组(Dynamicreconfiguration)存储区块作4×4的16个排列时的构成例。图26所示的例子中,全部都是以SRAM构成的区块,而且透过内建功能切换暂存器使任何形态皆可瞬时切换。区域总线(LB)在图25中记载为邻接总线(CB),藉此方式,相邻接间的资讯或处理的共有化可在1个时钟内完成,可达成高速化及低电力消耗。全局总线(GB)主要是使用在动态重组时的区块转换,区块数据群的丛发传送为其主要任务。
图26显示SRAM-CAM阵列,GB为全局总线,LB为区域总线。区块A、D、E、H、I、L、M、P为CAM功能区块,其他为LUT功能区块。各区块以程式设定功能指定。藉此方式,即可以CAM功能区块进行搜寻,以LUT功能区块执行各种运算处理。以虚线围绕2个区块的部分,意指以2个区块构成处理单元区块。此外,全局总线(GB)的1组数据宽度设为n字节时,在本例子中,就可进行16n字节的处理。而且,本实施例的LUT方式,如图27所示,四则运算处理可在1个时钟内完成具极大优点(图27)。即,一般的运算方式的移位、加算及暂存器闩锁过程的4位元乘算中,需要6个步骤。但本实施例的LUT方式中,因为只要拉出以x、y位址输入即可存取的回应答复就可完成,用1个步骤即可完成。此外,图27(a)为2进4位元乘法器,H为半加法器,F为全加法器、图中以○标示者为触发器电路(F/F)。同时,行波进位加法器的加算段数为6段,潜在数为2。而且,其与图27(b)所示的LUT方式乘法器属相同功能。
而且,图28显示登录数大于256时的思考概念。登录数大于256,例如4k的情况中,可从256×16=4k确保16个面的区域“0000”至“1111”。透过将该16个面的区域分配到存储单元区域、LUT、运算器、及比较器等,并动态地切换,就可谋求功能的提升。登录位址设为12位元时,可将其中的4位元设为区域指定,8位元设为区域内位址。
【实施例4】
图29显示将输入数据的关键数据与作为搜寻数据的关键数据施以编码处理的实施例。该[实施例4]为与图2所示的步骤S2、及图4所示的步骤S7相关的例子。即,实施例4所涉及的半导体装置透过将输入数据及作为搜寻数据的关键数据进行编码,以解除输入于控制电路的多个关键数据的偏倚为其目的。藉由将多个关键数据的偏倚解除,可减少写入搜寻存储垫时的冲突重复频度,同时,纵使发生冲突重复,也可适切地进行搜寻处理。特别是,图29显示了SRAM-CAM存储单元电路构成的一个例子。
所谓的关键数据偏倚,发生在例如具有几乎相同的二进制数据的多个关键数据相连续写入到搜寻存储垫的情况。例如,假设在“000110011000”的关键数据输入其后,接着输入“000110011001”的关键数据的情况中,2个关键数据中,只有最后1位元不同。本发明的半导体装置中,为了减少发生位址“冲突重复”的机率,较佳为使多个关键数据作某种程度的随机化,再行输入。然而,如上述例子所示,几乎相同的关键数据持续输入时,会频繁发生位址的“冲突重复”。因此,本实施例将所输入的关键数据予以编码,并以人为方式使多个关键数据的二进制数据随机化。
在此,所称“编码"包含按照预定的规则(计算法)进行关键数据的分散化。而且,“编码"不仅包含利用数式(计算法)的编码,也包含将表示关键数据的数据位元次序改变排列的作法。
如图29所示,半导体装置包含:近接快捷存储垫101、编码电路106、控制电路105、搜寻存储垫102、比较及闩锁电路103、以及确认用存储单元104。近接快捷存储垫101在不需要时,不必设置。
图29所示的SRAM-CAM中,首先使原资讯的关键数据(KD)最先输入编码电路106。然后,原资讯的关键数据再藉由编码电路106按照预定的计算法予以编码。编码电路106会按照预定的计算法将所输入的关键数据进行编码,并输出编码后的关键数据。藉编码电路106所编码的关键数据系输入到控制电路105。控制电路105则将经编码的关键数据使用作为用以对搜寻存储垫102进行搜寻的位址,或作为新写入搜寻存储垫102所需的位址来使用。
即,控制电路105可将编码后的关键数据以完全相同于[实施例1]所说明的关键数据的方式来处理。即,控制电路105会将编码后的关键数据分割成多个,并以分割的关键数据作为位址而存取于搜寻存储垫102。接着,控制电路105将登录位址写入于所存取的搜寻存储垫102,并将写入所存取的搜寻存储垫102的登录位址读取。这些写入处理及读取处理与[实施例1]等所说明的处理相同。该写入处理及读取处理,对所有的经分割的搜寻存储垫102全部进行。
首先,控制电路105将用以储存登录位址(EA)的位置(位址)分配于搜寻存储垫102的y轴,将编码后的经分割关键数据(KD)分配于x轴。
搜寻存储垫102分割为与分配于x轴的编码后关键数据对应的适当大小位元数的基本单元(分割数:N)。在此,N为2以上的自然数。图29的例子中,N为8。另一方面,位元数对各基本单元的分配为任意。同时,控制电路105分别将登录位址分配于确认存储垫104的y轴,与登录位址对应的关键数据分配于x轴。因此,确认存储垫104中按照登录位址写入有关的关键数据。另外,储存于确认存储垫104的关键数据并非对应于经上述编码电路106编码后的输入数据,而是对应于输入编码电路106前作为原资讯的关键数据。
即,输入于搜寻存储垫102的关键数据为写入时或搜寻时所输入的作为原资讯的关键数据经施以编码的编码后关键数据。相对于此,储存于确认存储垫104的关键数据为编码前的数据,换言之,为写入时或搜寻时所输入的作为原资讯的关键数据本身。即,对于确认存储垫104的参阅处理系对输入于编码电路106的编码前作为原资讯的关键数据进行。
图35以将图29所示的半导体装置动作定时与第1时钟及第2时钟的连结来显示。首先,在第1时钟里,关键数据输入至编码电路106,使作为原资讯的关键数据进行编码,再使编码后的关键数据向控制电路105输出。此外,在第1时钟里,编码后的关键数据输入到控制电路105,并进行对搜寻存储垫102的写入处理或读取处理,使登录位址闩锁到闩锁电路103a。在此前的处理在第1时钟执行。接着,在第2时钟里,来自闩锁电路103a的数据藉比较器103b加以比较,其比较结果则往确认存储垫104输入。而且,在第2时钟里,亦就确认存储垫104的数据与编码前的输入数据的一致性进行确认,最后,将自确认存储垫104所读取的数据输出。
以下,就本实施例的编码电路106的动作及电路构成加以说明。编码电路106将数据的写入时或读取时所输入的作为原资讯的关键数据进行编码。而且,编码电路106具有透过适当设定编码条件以除去关键数据的偏倚或变更位元长度的功能。如后所述,该编码处理藉由将数据混合、扩散、或附加冗长性来进行。。例如,编码位元使用生成多项式从原资讯产生,冗长位元的长度则按照生成符码时指定的参数而变化。以将经编码的数据输入到搜寻存储垫102(SRAM-CAM)的方法而言,可举出(1)以原资讯及编码位元的形式来使用的方法、或(2)仅使用编码位元的方法。本实施例中,最初先说明上述的方法(1),然后就上述的方法(2)加以说明。另外,方法(2)由于是使原资讯扩散到编码位元中的广大范围来构成,故对位元偏倚的除去更为有效。
图30为用以说明编码位元与数据的散乱程度的图示。图30中,显示28位元的关键数据输入于编码电路的情形。图30所示的符码生成参数作为表示输入数据或作为关键数据的原资讯的散乱程度指标。例如,对28位元的原资讯施以编码处理,而获得6位元的编码位元的情况中,输入于控制电路105的编码后输入数据为总位元数34位元。在此情形中,表示散乱程度的符码生成参数为1位元。此外,对于28位元的原资讯施以编码处理,而获得27位元的编码位元的情况中,输入于控制电路105的编码后输入数据为总位元数55位元。在此情形中,表示散乱程度的符码生成参数为5位元。又,对28位元的原资讯施以编码处理,而获得70位元的编码位元的情况中,输入于控制电路105的编码后输入数据为总位元数98位元。在此情形中,表示散乱程度的符码生成参数为11位元。
从而,可知为了提高散乱程度以使符码生成参数的位元数増大,只要増大编码位元数即可。但,编码位元数増大时,构成搜寻存储垫102的SRAM数也要増加。相对于此,仅使用上述(2)编码位元的方法中,总位元数会依原资讯的位元数份程度减少,故可节约构成搜寻存储垫102的SRAM数。而且,由于所生成的编码位元具有冗长性,所以没有将所生成的编码位元全部使用的必要,可删除一部分。依此方式,藉由删除编码位元的一部分,则不仅可节约构成搜寻存储垫102的SRAM数,关键数据的位元长度也可适当调整为合于SRAM构成的形态。
在此,就作为原资讯的关键数据设为7位元,编码位元设为8位元的情况加以说明。图31为显示本发明一实施例的图示,其中显示了编码电路106输出的原资讯与编码位元。本实施例中,利用波斯·乔德林·霍坤镌码(BCH码,BoseChaudhurinHocquenghem码)作为使用于编码处理的一个符码例。BCH码的特征:BCH码为经参数化的错误订正符码的一种,可以以称为伴随式解码的简洁式代数学手法来解码方面。BCH码可用低电力以小型机器来编码及解码。在本发明中,仅使用编码功能,不使用解码功能。BCH码由多个位元的原数据的XOR(以加法+来表示)组成的值所构成。从编码的观点来看,BCH码即使只用不含原数据部分的编码位元进行编码也可进行搜寻。另外,编码除了BCH编码以外,还有低密度奇偶校验码(LDPC,Low-densityparity-checkcode)、四元变轨码(QSBC,QuadrupleSwing-ByCode,注:亦为(株)东芝的登录商标)等。本发明中,可使用这些LDPC或QSBC来代替BCH码。
如图31所示,藉由将7位元的作为原资讯的关键数据“a6a5a4a3a2a1a0”进行编码处理,会产生8位元编码位元(15、7)符号。编码位元的各位元为“a6+a2+a0”、“a6+a5+a2+a1+a0”、“a6+a5+a4+a2+a1”、“a5+a4+a3+a1+a0”、“a6+a4+a3”、“a5+a3+a2”、“a4+a2+a1”、“a3+a1+a0”。依此方式,所产生的编码位元的各位元中,作为原资讯的关键数据的各位元的值会被混合及扩散,使冗长性得以确保。
兹就以编码电路106执行的BCH编码处理说明其详细内容。
假设k位元的原资讯的资讯位元为“ak-1、ak-2、---a1、a0”,m位元的编码位元为“cm-1、cm-2、---c1、c0”,n位元的BCH码则以“ak-1、ak-2、---a1、a0、cm-1、cm-2、---c1、c0”的方式来表示。BCH码的生成即为求得m位元的编码位元的情形。
表现该向量的多项式为数式(1)。
【数式1】
F(x)=ak-1xn-1+ak-2xn-2+···+a1xm+1+a0xm+cm-1xm-1+cm-2xm-2+···+c1x+c0···(1)
再者,资讯位元部分设为P(x),符码位元设为R(x)时,即可表现如数式(2)。
【数式2】
F(x)=xmP(x)+R(x)···(2)
而且,将称为生成多项式的m次多项式G(x)导入,而只将可用G(x)除得尽者作为符码语时,F(x)与G(x)间,就成立下列数式(3)。另外,下列数式(3)中,以数式来表现以G(x)除尽F(x)的情况,故以F(x)除以G(x)时的商数设为“Q(x)”。
【数式3】
F(x)=Q(x)G(x)···(3)
从数式(2)及数式(3)可得下式(4)。
【数式4】
xmP(x)=Q(x)G(x)+R(x)···(4)
BCH码的生成即是从该式求得xmP(x)除以G(x)的余数R(x)的情况。
计算K-1次的多项式,数式(5)
【数式5】
P(x)=ak-1xk-1+ak-2xk-2+ak-3xk-3+···+a1x+a0···(5)
除以m次的多项式,式(6)
【数式6】
G(x)=gmxm+gm-1xm-1+···+g1x+g0···(6)
时的商数与余数的电路,一般如图33所示。
而且,将图33所示的电路变形为xmP(x)除以G(x)的电路时,即成为图34所示的构成。图34显示实际上用于生成BCH码的电路。余数R(x)可在输入ak-1、ak-2、---a1、a0后,藉由移位操作将储存于移位暂存器的资讯输出而获得。透过以该图34所示的编码电路进行运算,可生成图31所示的(15,7)符码。本发明的编码电路106并不使用图34的电路,而是使用表示图31的运算结果的式子来构成。藉由使用该式子,即如图34的电路那样,编码并不须好几个循环,就可进行编码。(15、7)符码生成参数为2(t=2)的情况,为在上述图31所示的原资讯附加有编码位元的15位元符码。然后,该符码即为编码后的输入数据。即,经由控制电路105,就可生成要输入搜寻存储垫102的关键数据。t=4的情况中,即如图32所示,散乱度更为増加。图32显示在本发明的其他例子中,8位元的原资讯及由此生成的20位元的编码位元的图示。
图32中,藉由对8位元的作为原资讯的关键数据“a7a6a5a4a3a2a1a0”进行编码处理,而生成了20位元的编码位元。编码位元的各位元,为“a1+a2+a3”、“a0+a1+a2”、“a0+a2+a3+a6+a7”、“a3+a5”、“a2+a4+a7”、“a1+a3+a6+a7”、“a0+a2+a5+a6”、“a2+a3+a4+a5+a6”、“a1+a2+a3+a4+a5+a7”、“a0+a1+a2+a3+a4+a6+a7”、“a0+a5”、“a1+a2+a3+a4+a6+a7”、“a0+a1+a2+a3+a5+a6”、“a0+a3+a4+a5+a6”、“a1+a4+a5+a6”、“a0+a3+a4+a5+a6”、“a1+a4+a6+a7”、“a0+a3+a5+a6+a7”、“a1+a3+a4+a5”、“a0+a2+a3+a4+a7”。依此方式,所生成的编码位元的各位元中,即得以使作为原资讯的关键数据的各位元值经混合、扩散而确保冗长性。而且,与图31的情况相比,散乱度明显増大。由该原资讯所生成的20位元的编码位元,以原资讯的XOR逻辑式来表示,可直接变换为原资讯的XOR逻辑电路。
以对上述编码电路106的要求条件而言,在数据写入时及搜寻时,编码电路106的输出要一致。即,编码电路106在数据的写入时及搜寻时执行相同的编码。依此方式,编码电路106只要能保证在数据写入时及搜寻时不会生成不同的编码位元即可。透过采用这种方式,构成搜寻存储垫102的各SRAM的对应关系就可维持。
兹使用图36说明往本发明的搜寻存储垫102的写入动作。图36中,为了容易了解说明内容,与4个登录位址对应的作为输入数据的关键数据“167”、“235”、“116”、“90”表示在括号()内。即,表示在括号()内的关键数据为编码前的数据。而且,这些数据藉编码电路106施以编码,变换成关键数据“2699”、“3779”、“1859”、“1440”。
图36的例子中,搜寻存储垫102分割成6个分割存储单元(分割数N=6)。而且,假想为控制电路105对编码后关键数据的各个“2699”“3779”“1859”“1440”分配登录位址“00”“01”“10”“11”的情况。
即,作为应写入登录位址“00”的数据而输入的关键数据“167”藉编码电路106而变换成“2699”。此外,编码后的关键数据“2699”若以二进制数据来表示,则为“101010001011”。编码后的关键数据输入于控制电路105时,该控制电路105会将该编码后关键数据分割成多个。图36所示的例子中,编码后的关键数据分割成6个。将该分割后的各个关键数据写入经6等份分割的搜寻存储垫102中。此时,写入于搜寻存储垫102的数据为与编码后关键数据“2699”对应的登录位址“00”。
如图36(a)所示,经编码的关键数据“2699”藉控制电路105作6等份分割,并表现作“10”“10”“10”“00”“10”“11”。控制电路105以最初的分割关键数据“10”作为位址,将登录位址“00”写入到最初的分割存储单元102a。接着,控制电路105以第2个分割关键数据“10”作为位址,将登录位址“00”写入到第2个分割存储单元102b。再来,控制电路105以第3个分割关键数据“10”作为位址,将登录位址“00”写入到第3个分割存储单元102c。而且,控制电路105继针对第4个至第6个分割关键数据“00”“10”“11”,同样将登录位址“00”写入到第4个至第6个各分割存储单元102d、102e、102f。
藉此方式,即可使登录位址“00”写入到以编码后关键数据“2699”指定的搜寻存储垫102。
接着,作为应写入登录位址“01”的数据而输入的关键数据“235”,藉编码电路106变换为“3779”。编码后的关键数据“3779”若以二进制数据来表现,则成为“111011000011”。在此,控制电路105将与该编码后关键数据“3779”对应的登录位址“01”写入到经6等份分割的搜寻存储垫102。
如图36(b)所示,编码后关键数据“3779”藉控制电路105作6等份分割,并表现作“11”“10”“11”“00”“00”“11”。控制电路105以该等分割关键数据作为位址,将登录位址“01”写入到搜寻存储垫102。即,控制电路105会以最初的分割关键数据“11”作为位址,将登录位址“01”写入到最初的分割存储单元102a。然后,控制电路105会以第2个分割关键数据“10”作为位址,将登录位址“01”写入到第2个分割存储单元102b。此时,由于编码后的关键数据“2699”业已写入,第2个分割存储单元102b的位址已写入有登录位址“00”。因此,控制电路105会在有位址冲突重复的位置写入冲突重复旗标,而在后续的读取处理中,当作"无需顾虑(don’tcare)"者来处理。又,如图36(b)所示,接下来,控制电路105会以第3个分割关键数据“11”作为位址,将登录位址“01”写入到第3个分割存储单元102c中。同样的,控制电路105亦以第4个至第6个关键数据“00”“00”“11”作为位址,将登录位址“01”写入到第4个至第6个分割存储单元102d、102e、102f。但,由于第4个及第6个分割存储单元102d、102f的位址上业已写入有编码后关键数据“2699”的登录位址,故控制电路105会在该位址设定冲突重复旗标,并在后来进行的搜寻处理中,当作“无需顾虑(don’tcare)"者来处理。
藉此方式,以编码后的关键数据“3799”所指定的搜寻存储垫102就可写入登录位址“01”。同样的,以编码电路将原资讯的关键数据“116”“90”变换为“1859”“1440”,再以这些编码后的关键数据“1859”“1440”作为位址,将登录位址“10”“11”写入到搜寻存储垫102。另外,如图36(c)所示,在编码后关键数据“1859”的写入处理中,会在第5个分割存储单元102e中新产生位址冲突重复。而且,如图36(d)所示,编码后关键数据“1440”的写入处理中,会在第1个及第3个分割存储单元102a、102c新产生位址冲突重复。
图36(e)上段显示了确认存储垫(SRAM)104的写入状态的例子。
如图36(e)上段所示,在确认存储垫104中,登录位址“00”中写入了关键数据“167”的二进制数据“10101000”,登录位址“01”中写入了关键数据“235”的二进制数据“11101100”,登录位址“10”中写入了关键数据“116”的二进制数据“01110100”,登录位址”11”中写入了关键数据“90”的二进制数据“01011010”。
此外,如图36(e)下段所示,也可在确认存储垫104的登录位址“00”“01”“10”“11”写入编码后的关键数据“2699”、“3779”、“1859”、“1440”。
图37为显示本发明半导体装置(SRAM-CAM)的搜寻动作的图示。图37(a)显示了输入“167”作为原资讯的关键数据,并变换为藉编码电路106编码后的关键数据“2699”时的搜寻动作。编码后的关键数据“2699”,以二进制数据来说,是表现作“101010001011”。该二进制数据在控制电路105中分割为6个。经分割的关键数据分别作为用以存取于分配到经6等份分割的搜寻存储垫102的y轴的"登录位址记入位置"的位址来使用。以最初的分割关键数据“10”作为位址,从最初的分割存储单元102a读取数据时,会读取登录位址“00”。再以第2个分割关键数据“10”作为位址,从第2个分割存储单元102b读取数据。但,由于该数据已在输入图36(b)所示的编码后关键数据“3799”时产生位址冲突重复,故进行“无需顾虑(don’tcare)"处理。即,来自第2个分割存储单元102b的读取数据会成为搜寻对象外。
此外,以各个第3个分割关键数据“10”、第4个分割关键数据“00”、及第6个分割关键数据“11”作为位址的搜寻处理,也是由于同样产生了位址的冲突重复,故会因“无需顾虑(don’tcare)"处理,而将读取的数据作为搜寻对象外。又,有关于第5个分割关键数据“10”,以其为位址而存取于第5个分割存储单元102e时,可将登录位址“00”读取。
如图37(a)所示,根据编码后的关键数据“2699”,从搜寻存储垫102读取的数据中,最初的分割存储单元102a的数据及第5个分割存储单元102e的数据都是“00”,具有一致性。藉此方式,与编码后关键数据“2699”对应的登录位址,可推测为“00”。
因此,使用确认存储垫104来读取藉登录位址“00”存取的关键数据值时,为“10101000”,可知其与编码前输入数据的关键数据“10101000”一致。以此方式,控制电路105就会将来自确认存储垫104的输出数据的关键数据与作为编码前搜寻数据的关键数据加以比较,确认两者的一致性,并输出登录位址。
图37(b)显示了编码后的关键数据“3779”作为搜寻对象而予以输入的情形。关键数据“3779”以“111011000011”的二进制数据来表现,并藉控制电路105作6等份分割。经分割的关键数据分别用作存取于分配在经6等份分割的搜寻存储垫102的y轴的“登录位址记入位置"所需的位址。以最初的分割关键数据“11”作为位址,从最初的分割存储单元102a读取数据时,可读取登录位址“01”。虽以第2个分割关键数据“10”作为位址,从第2个分割存储单元102b读取数据,但在该数据已产生位址冲突重复,故当作“无需顾虑(don’tcare)"者来处理。藉此方式,第2个分割关键数据“10”即被认作为搜寻对象外。
以第3个分割关键数据“11”作为位址,从第3个分割存储单元102c读取数据时,可读取登录位址“01”。另一方面,以各第4个分割关键数据“00”、第5个分割关键数据“00”、及第6个分割关键数据“11”作为位址而往第3至第6个分割存储单元102d、102e、102f的存取,即藉“无需顾虑(don’tcare)"的处理而成为搜寻对象外。
如图37(b)所示,藉编码后关键数据“3779”从搜寻存储垫102读取的值,为第1个及第3个分割存储单元102a、102c的登录位址“01”。
因此,使用确认存储垫104,读取藉登录位址“01”存取关键数据的值时,为“11101100”,与编码前的关键数据“11101100”一致。即,控制电路105会将来自确认存储垫104的作为输出数据的关键数据、与作为编码前搜寻数据的关键数据加以比较,经确认其一致性后,输出登录位址。
接着,图37(c)显示了对未写入搜寻存储垫102的关键数据“94”施以编码,将编码后的关键数据“1504”作为搜寻对象予以输入的情形。
如图37所示,编码电路106会将关键数据“94”进行编码,变换为“1504”。编码后的关键数据“1504”以二进制数据数据“010111100000”来表现。编码后的关键数据藉控制电路105作6等份分割。经分割的关键数据分别用作存取分配到经6等份分割的搜寻存储垫102的y轴的"登录位址记入位置"所需的位址。以最初的关键数据“01”作为位址,从最初的分割存储单元102a读取数据时,由于发生位址冲突重复,故施行“无需顾虑(don’tcare)"处理。其次,以第2个分割关键数据“01”作为位址,读取第2个分割存储单元102b的数据时,会输出登录位址“11”。
此外,如图37(c)所示,根据编码后的输入数据“1504”从搜寻存储垫102读取的数据分别作为第2个分割存储单元102b的输出的登录位址“11”、作为第3个分割存储单元102c的输出的登录位址“01”、作为第4个分割存储单元102d的输出的登录位址“11”、及作为第6个分割存储单元102f的输出的登录位址“11”。另外,对以第5个分割关键数据“00”作为位址的分割存储单元102e的存取,藉“无需顾虑(don’tcare)"处理而设为搜寻对象外。在此情形中,从搜寻存储垫102所读取的登录位址存在有多种。即,登录位址发生了不一致。因此,控制电路105即使不用确认存储垫104,也可以在该阶段判定为与作为搜寻数据的关键数据一致的数据不存在于搜寻存储垫102内。
其次,参照图38至图41,就仅用编码位元进行编码时的实施例加以说明。为了使说明简单化,将要输入SRAM-CAM的关键数据的位元长度设为24位元,藉编码所生成的编码后关键数据的位元长度也设为24位元。而且,构成为将编码后的关键数据与前述说明同样作6等份分割,以经分割的关键数据来搜寻经6等份分割的搜寻存储垫102。由此前提可知,SRAM-CAM的搜寻存储垫102由6个16字元×4位元的SRAM所构成。因此,SRAM-CAM的登录数为16。
由24位元的原资讯生成24位元的编码位元的方法有各色各样的方法。在此使用图38来说明编码位元的一个生成方法例。图38显示可从8位元的原资讯生成10位元的编码位元的例子。但,在编码位元的10位元中,由于原资讯系经扩散,所以除了c0与c1外,使用c2至c9的位元。如此一来,就可从8位元的原资讯生成8位元的编码位元。但,在此状态下,对于24位元的关键数据,只能以8位元单位进行编码。若以8位元单位进行24位元的编码,则在关键数据有偏倚时,会发生无法处理的问题。因此,将24位元的关键数据分为每组4位元的6个群组,并以群组单位按照预定的计算法,进行群组排列的调换操作。然后,从调换后群组的左端以每2群组8位元单位进行编码。该方法显示于图39。
图39显示了输入于SRAM-CAM的原资讯的关键数据(图39(a))、按每4位元一组划分群组并进行群组的排列变更后的关键数据(图39(b))、及以8位元单位进行编码后的关键数据(图39(c))等3种数据的变化。圆圈内的数字(1)至(6)为了进行群组区别而加注者。
图39(a)、(b)、(c)的3种数据中,SRAM-CAM的登录数为16,由于搜寻存储垫102可写入16种数据,所以依登录编号顺序记述了16个。此外,为了观察偏倚的影响,而假设在原资讯的6个群组中,3个群组((1)至(3))的数据为完全相同值的情形。图39的登录位址及(1)至(6)所示位置的数字为将以4位元表现的2进数以10进制来标记者。在作为原资讯的关键数据的登录位址“0”中,(1)至(6)的6个数字“4”、“1”、“13”、“14”、“11”、“5”表示将24位元的原资讯按每组4位元划分时的(1)至(6)的各群组值。从而,若实施该群组的排列变更,则如图39(b)所示,(1)、(2)、(3)、(4)、(5)、(6)的原资讯会依(2)、(5)、(6)、(3)、(1)、(4)的顺序调换排列。而且,调换排列后的登录位址“0”,其24位元的二进制数据为“1”、“11”、“5”、“13”、“4”、“14”。将该数据以8位元单位的编码看作(2)(5)、(6)(3)、(1)(4)的8位元数据,并依照图38所示的编码位元的XOR逻辑式,以XOR组合逻辑电路进行变换。实施该8位元单位的编码的结果,如图39(c)所示。即,如图39(c)所示,实施编码时,在登录位址“0”处,为以“1”、“7”、“1”、“10”、“6”、“12”表现的24位元数据。
图40(a)显示了作为原资讯的关键数据不进行编码就写入SRAM-CAM的搜寻存储垫102,并将写入于搜寻存储垫102的数据读取的情形。图40(a)中,由左侧依序显示了作为原资讯的关键数据、搜寻存储垫102的内容、及搜寻存储垫102的读取结果。图40(b)显示了实施前述8位元单位的编码后,写入于搜寻存储垫102,并读取该数据的情形。即,图40(b)显示了由于搜寻存储垫102的登录数为16,故写入16种关键数据,并从搜寻存储垫102读取的情形。图40(b)中,由左侧依序显示了实施8位元单位编码的数据、搜寻存储垫102的内容、及搜寻存储垫102的读取结果。
如图40(a)所示,若不进行编码,则在(1)、(2)、(3)的分割存储单元的偏倚会变大,产生只能写入1种数据的状态。而且,如图40(a)所示,依登录位址的顺序往搜寻存储垫102进行写入时,(1)、(2)、(3)的存储垫中,以10进制写入登录位址“0”,而在其后的写入操作中,变成位址冲突重复的状态。图40中,以涂黑状态写入的资讯为“0”。又,(4)、(5)、(6)的数据,由于假设为随机状态,所以在搜寻存储垫102上看来,可知其位址冲突重复发生了随机的情形。图40中,位址冲突重复以涂黑状态来表示。若读取写入于该搜寻存储垫102的内容时,(1)、(2)、(3)为完全的冲突重复状态,可知发挥SRAM-CAM的功能者,实质上只有(4)、(5)、(6)等3个存储垫。依此方式,由于发生了多起位址冲突重复,6个分割存储单元中,只有3个产生功能,16个登录中,在5个登录的读取,即在登录位址“1”、“6”、“7”、“10”、“11”的读取中,(1)至(6)为全部冲突重复状态。然而,未发生(1)至(6)的全部冲突重复处,写入于搜寻存储垫102的登录位址与分割后的关键数据登录位址为一致,可说是可进行正确搜寻。
图40(b)为实施8位元单位的编码处理时的例子。如图40(b)所示,藉由进行编码处理,图40(a)所示的在(1)、(2)、(3)发生的那种极端冲突重复情况不会发生。但,搜寻存储垫102的读取结果,在经编码处理的情况与未编码处理的情形上,属相同的结果。这是由于像图39的实施8位元单位编码前的群组排列变更实施后的数据所示那样,作为编码对象的2个数据中的1个成为完全没变化的固定数据的缘故。因此,以8位元单位的编码实施后数据作为原资讯,再一次进行群组排列变更与8位元单位的编码,将该结果实施第2次8位元单位的编码,并使用该数据实施对搜寻存储垫102的写入、读取。
图41(a)显示作为原资讯的关键数据不进行编码,即对SRAM-CAM的搜寻存储垫进行写入、读取时的结果,图41(b)则显示了进行第2次8位元单位的编码,并使用该数据对搜寻存储垫进行写入与读取时的结果。如图41(b)所示,以第2次进行8位元单位的编码的数据,写入于搜寻存储垫102,并读取所写入的数据时,就没有6个分割存储单元形成全部位址冲突重复的状态。而且,如图41(b)所示,从分割存储单元读取的全部登录位址与关键数据的登录位址为一致,可知16个全部登录数据皆可正确进行搜寻。
从该结果可知,即使为数据偏倚较大的情况,藉由进行多次编码处理,可以更有效的除去数据的偏倚。本实施例中,虽以8位元单位进行编码,但编码不必为8位元,也可选择各色各样的组合。即,本发明可透过选择符码生成参数或原资讯的位元数,生成各色各样的编码位元。例如,即使为搜寻存储垫102的构成不改变的情况,也可将原资讯设为12位元或16位元,而生成10位元的编码位元,其中,也可如本实施例那样使用8位元,也可将原资讯设为24位元,编码位元设为24位元。原资讯设为16位元的情况,在所获得的编码位元设为8位元时,如以不发生重迭的方式从6个4位元群组(1)至(6)中选择4个群组,即可生成24位元的编码位元。
【实施例5】
图42为用以说明即使在搜寻时所输入的整行关键数据都发生冲突重复状态的情况下,仍可输出搜寻结果的SRAM-CAM写入动作的图示。
本实施例中,有关半导体存储单元电路的构成、及SRAM-CAM的开关或搜寻的动作,因与实施例1同样,故省略其说明。
参照图42说明本实施例中对搜寻存储垫102的写入动作。另外,本实施例,假定为登录位址为2位元4字元,作为输入数据的关键数据长度为12位元的情况。图42的例子中,搜寻存储垫102经6等份分割。
此外,在本实施例中,假定将关键数据“2699”“2691”“1859”“1440”写入到各登录位址“00”“01”“10”“11”的情况。
作为应写入登录位址“00”的数据而输入的关键数据“2699”,以二进制数据表现时,为“101010001011”。以该值作为经6等份分割的分割存储单元102a至102f的y轴的位址,将数据写入搜寻存储垫102。此时,所写入的数据为例如关键数据“2699”的登录位址“00”。
如图42(a)所示,使关键数据“2699”作6等份分割,并表现为“10”“10”“10”“00”“10”“11”,以这些值作为位址,使登录位址”00”写入到分割存储单元102a至102f。即,控制电路105以最初的分割关键数据“10”作为位址,将登录位址“00”写入到最初的分割存储单元102a。接着,控制电路105以第2个分割关键数据“10”作为位址,将登录位址“00”写入到第2个分割存储单元102b。而且,控制电路105以第3个分割关键数据“10”作为位址,将登录位址“00”写入到第3个分割存储单元102c。然后,控制电路105以第4个至第6个分割关键数据“00”“10”“11”作为位址,将登录位址“00”写入到第4个至第6个分割存储单元102d、102e、102f。
藉此方式,登录位址“00”就写入到以关键数据“2699”所指定的搜寻存储垫102中。
以同样方式,作为应写入于登录位址“01”的数据而输入的关键数据“2691”,若以二进制来表现时,为“101010000011”。将该值作为存取分配到经6等份分割的搜寻存储垫的y轴的"登录位址记入位置"的位址,将数据写入到搜寻存储垫102。此时,要写入的数据即为作为登录位址而输入的“01”。
如图42(b)所示,使关键数据“2691”作6等份分割,并表现作“10”“10”“10”“00”“00”“11”,以这些值作为位址,使登录位址“01”写入到搜寻存储垫102。即,控制电路105以最初的分割关键数据“10”作为位址,将登录位址“01”写入到最初的分割存储单元102a。此时,由于在关键数据“2699”的写入处理中,最初的分割存储单元102a的位址业已写入有登录位址“00”,所以会产生位址的冲突重复。图42(b)中,产生了位址冲突重复的部分以涂黑来表示。产生该位址冲突重复的部分,在后续的读取处理中,当作"无需顾虑(don’tcare)"来处理。
如图42(b)所示,控制电路105又以第2个分割关键数据“10”作为位址,将登录位址“01”写入到第2个分割存储单元102b。接着,控制电路105以第3个至第6个分割关键数据“10”“00”“00”“11”作为位址,将登录位址“01”分别写入到第3个至第6个分割存储单元102c、102d、102e、102f。但,由于第2个至第4个及第6个位址中,均业已写入了关键数据“2699”的登录位址,所以,控制电路105会设定冲突重复旗标,而在后续的读取处理中,当作“无需顾虑(don’tcare)"者来处理。
藉此方式,登录位址“01”就写入了以关键数据“2691”指定的搜寻存储垫102。
同样地,控制电路105会以关键数据“1859”“1440”作为位址,将登录位址“10”“11”写入到SRAM-CAM的搜寻存储垫102。如图42(c)所示,在关键数据“1859”的写入处理中,第4个至第6个分割存储单元102d、102e、102f会产生位址冲突重复。而且,如图42(d)所示,以关键数据“1440”而言,在第1、3、5个分割存储单元102a、102c、102e产生了位址冲突重复。
图42(e)显示了确认存储垫(SRAM)104的写入状态。
图42(a)中,关键数据”2699”的二进制数据写入到登录位址“00”,关键数据“2691”的二进制数据写入到登录位址“01”,关键数据“1859”的二进制数据写入到登录位址“10”,关键数据“1440”的二进制数据写入到登录位址“11”。
图43为显示本发明[实施例5]所涉及的SRAM-CAM的搜寻动作的图示。
图43显示图42所示的位址重迭部分,即,将加了浓色网底的登录位址当作“无需顾虑(don’tcare)"时,是否正确搜寻输入数据的情形。
在图43(a)中,显示输入有作为搜寻数据的关键数据“2699”的情况。作为搜寻数据的关键数据“2699”,以“101010001011”的二进制来表现,并藉控制电路105以每组2位元作6等份分割。经分割的关键数据,分别用作存取于分配到经6等份分割的搜寻存储垫102的y轴的"登录位址记入位置"所需的位址。首先,控制电路105将最初的分割关键数据作为位址,从最初的分割存储单元102a读取登录位址“00”时,由于该数据产生了位址冲突重复,所以当作“无需顾虑(don’tcare)"者来处理。因而,控制电路105会将来自最初分割存储单元102a的读取数据设为搜寻对象外。接着,控制电路105又以各第2个分割关键数据“10”、第3个分割关键数据“10”、第4个分割关键数据“00”、及第6个分割关键数据“11”作为位址,而存取于各分割存储单元102b、102c、102d、102f。但,针对这些分割存储单元的存取,由于已产生位址的冲突重复,所以控制电路105会藉由“无需顾虑(don’tcare)"处理,将已读取数据当作搜寻对象外。另一方面,控制电路105可将第5个分割数据“10”作为位址,从第5个分割存储单元102e读取登录位址“00”。
如图43(a)所示,藉由作为搜寻数据的关键数据“2699”而从搜寻存储垫102读取的数据中,实际使用于搜寻的数据为从第5个分割存储单元102e读取的登录位址“00”。
因此,控制电路105使用确认存储垫104读取藉登录位址“00”存取的关键数据的值时,即为“101010001011”,可知此与作为输入数据的关键数据一致。即,控制电路105会将来自确认存储垫104的作为关键数据的输出数据与输入数据比较,经确认为正确后,将登录位址输出。
图43(b)显示输入有作为搜寻数据的关键数据“1859”的情形。作为搜寻数据的关键数据“1859”以“011101000011”来表现,藉控制电路105以每组2位元作6等份分割。分割关键数据分别用于作为存取于分配到经6等份分割的搜寻存储垫102的y轴的"登录位址记入位置"所需的位址。控制电路105以最初的分割关键数据“01”作为位址,读取最初的分割存储单元102a的数据,而该数据由于已产生位址冲突重复,故决定进行“无需顾虑(don’tcare)"处理。接着,控制电路105以第2个分割关键数据“11”作为位址,从第2个分割存储单元102b读取数据时,可读取登录位址“10”。然后,控制电路105以第3个分割关键数据“01”作为位址,从第3个分割存储单元102c读取数据时,可获得登录位址“10”。
此外,以各第4个分割关键数据“00”、第5个分割关键数据“00”、及第6个分割关键数据“11”作为位址对分割存储单元102d、102e、102f的存取,藉“无需顾虑(don’tcare)"处理而变为搜寻对象外。
如图43(b)所示,藉由作为搜寻数据的关键数据“1859”而从搜寻存储垫102读取的值,为来自第2个分割存储单元102b的输出的登录位址“10”及来自第3个分割存储单元102c的输出的登录位址“10”。
使用确认存储垫104读取以登录位址“10”作为位址而存取的关键数据的值时,为“011101000011”,可知该值与作为搜寻数据的关键数据一致。即,控制电路105会将来自确认存储垫104的作为关键数据的输出数据与搜寻数据进行比较,经确认为正确后,将登录位址输出。
图43(c)显示以关键数据当作搜寻数据,并输入“2691”作为关键数据的情况。作为搜寻数据的关键数据“2691”以“101010000011”的二进制来表现。控制电路105会将关键数据“2691”的二进制数据以每组2位元作6等份分割。分割关键数据分别使用于存取于分配到经6等份分割的搜寻存储垫102的y轴的"登录位址记入位置"的位址。以最初的分割关键数据“10”作为位址,读取最初的分割存储单元102a的数据时,执行"无需顾虑(don’tcare)"处理。而且,以第2个分割关键数据“10”、第3个分割关键数据“10”、第4个分割关键数据“00”、第5个分割关键数据“00”、第6个分割关键数据“11”作为位址,读取各分割存储单元102b、102c、102d、102e、102f的数据时,则执行“无需顾虑(don’tcare)"处理,而成为搜寻对象外。即,在图43(c)所示的例子中,将关键数据施以分割的全部分割位数上,形成了产生位址冲突重复的状态。
在此情形中,控制电路105首先从设为“无需顾虑(don’tcare)"的各分割存储单元102a至102f的位址中,将写入到各该位址的登录位址读取。即,即使在各分割存储单元102a至102f中产生了冲突重复的情况下,也与冲突重复旗标一起写入有一个登录位址。控制电路105会预先从各分割存储单元102a至102f将与该冲突重复旗标一起写入的登录位址读取。接着,控制电路105会使用与冲突重复旗标一起写入的登录位址,依序参阅图43(e)所示的确认存储垫104。该图43(e)所示的例子中,冲突重复状态的登录位址为“00”及“01”。最初,控制电路105从确认存储垫104读取与登录位址“00”对应的关键数据值时,可知其为“101010001011”。该关键数据“101010001011”与作为搜寻对象数据而输入的关键数据并不一致。故而,控制电路105会判断“00”非为所要求取的登录位址。接着,控制电路105从确认存储垫104中读取与登录位址“01”对应的关键数据值时,可知为“101010000011”。该关键数据“101010000011”则与作为搜寻对象数据而输入的关键数据一致。故而,控制电路105可判断“01”为所要求得的登录位址。然后,控制电路105将该登录位址“01”输出作为搜寻结果。依此方式,即使已分割的全部搜寻数据皆处于冲突重复状态,透过以冲突重复状态的登录位址依序参阅确认存储垫104,就可将与关键数据一致的关键数据抽出。
即,本发明的实施例中,登录位址的写入处理时若发生位址的冲突重复,就执行“无需顾虑(don’tcare)"处理。在该“无需顾虑(don’tcare)"处理中,执行(1)停止登录位址的写入动作、或(2)在已写入的登录位址上写入其他登录位址的任一种处理。因此,搜寻存储垫102中,在前者(1)的情况中,为写入有最初写入的登录位址的状态;在后者(2)的情况中,则为写入有最后写入的登录位址的状态。因此,即使为发生位址冲突重复的状态,该位址中仍有可能包含成为搜寻对象的登录位址。所以,在本发明的实施例中,乃着眼于这种可能性,透过将发生冲突重复的位址中所包含的登录位址抽出,而提高可找出搜寻对象的可能性。藉此方式,在本发明的实施例中,即使在搜寻时所输入的搜寻数据的全行发生冲突重复的状态,只要其中含有可成为搜寻对象的登录位址,即可输出搜寻结果。
【实施例6】
首先,如先前所述,要分割搜寻存储垫102时,前提上,必须有最低限度以下的个数。
(式)N=L/Log2·M
L:关键数据长度
M:总登录数
N:搜寻存储垫的分割数(分割存储单元的最小个数)
例如,关键数据长度为32位元,搜寻存储垫的总登录数为8位元256字元时,分割存储单元的最低必要限度为4个。再者,关键数据长度为相同时,搜寻存储垫的总登录数若増加,最低必要限度的分割数会减少。但,若分割存储单元的个数减少时,资讯的分散会缩小,而有冲突重复机率升高的倾向。因此,本实施例中,如以下所说明,将分割存储单元数増加来使冲突重复频度减少。另外,例如数据长度为12位元时,一般从第1位元至第12位元来特定各位元,但下文中,为方便说明以称作第0位元至第11位元来说明。
图44显示本发明第6实施例的搜寻存储垫的写入动作的图示。兹参照图44说明对本发明的搜寻存储垫102的写入动作。此外,本实施例中,假想登录位址为2位元4字元,关键数据长度为12位元的情形。在此情形中,藉由上述式子的计算,最低必要限度的分割存储单元个数为6个。图44中显示搜寻存储垫102经分割为分割存储单元102a至102f等6个,再加上追加用分割存储单元102g至102l等6个,共为12个分割存储单元时的例子。即,本实施例中,与[实施例1]相比较,将搜寻存储垫102的分割数设成了2倍。而且,本实施例中,假想“2699”“2691”“1859”“1440”作为关键数据而写入于登录位址“00”“01”“10”“11”的情形。
此外,在说明数据写入于搜寻存储垫102时的具体动作前,先就写入于追加用分割存储单元102g至102l的数据加以说明。
图44(a)中,搜寻存储垫102的下部所显示的例如[1:0]等数字意指"关键数据选择位元"。此处所称"关键数据选择位元",为用以按多个分割存储单元102a至102f的每一个而选择储存于各分割存储单元的关键数据的位元编号的资讯。例如,图44(a)所示的例子中,在所输入的12位元关键数据的二进制数据中,“关键数据选择位元"显示其第0位元及第1位元储存于第6个分割存储单元102f,第2位元及第3位元储存于第5个分割存储单元102e,第4位元及第5位元则储存于第4个分割存储单元102d,第6位元及第7位元为储存于第3个分割存储单元102c,第8位元及第9位元储存于第2个分割存储单元102b,第10位元及第11位元储存于第1个分割存储单元102a。
而且,如图44(a)所示,12位元的关键数据中,以第4位元及第6位元储存于第12个分割存储单元102l,第5位元及第7位元储存于第11个分割存储单元102k,第0位元及第8位元储存于第10个分割存储单元102j,第1位元及第9位元储存于第9个分割存储单元102i,第2位元及第10位元储存于第8个分割存储单元102h,第3位元及第11位元储存于第7个分割存储单元102g的方式,设定有“关键数据选择位元"。
依此方式,在本实施例中,所输入的12位元关键数据扩张为24位元,并分散储存于包含追加分割存储单元的合计12个分割存储单元中。因此,可使储存于6个分割存储单元的位元数据重复储存于6个追加分割存储单元中。此外,该位元数据的重复可设定为期望值,追加用SRAM的个数亦可藉此任意设定。
其次,具体说明对搜寻存储垫102的写入动作。
作为应写入于登录位址“00”的数据而输入的关键数据“2699”,若以二进制数据来表现,为“101010001011”。而且,依上述方式,按照"关键数据选择位元"将应储存于追加分割存储单元的位元数据重复追加于所输入的关键数据。即,将12位元的数据作为下位位元追加到12位元的关键数据。藉此方式,追加后的关键数据即成为“101010001011110011011000”(24位元)。以该值作为经12等份分割的搜寻存储垫102的y轴位址,将数据写入搜寻存储垫102。此时,写入于搜寻存储垫的数据为作为关键数据“2699”的登录位址而输入的“00”。
如图44(a)所示,使依据关键数据选择位元的12位元追加到12位元的关键数据“2699”的下位。藉此方式,关键数据“2699”即得以24位元来表现。然后,该数据作12等份分割,并表现作“10”“10”“10”“00”“10”“11”“11”“00”“11”“01”“10”“00”。控制电路105以这些12个分割关键数据作为位址,将登录位址“00”写入于12个分割垫102a至102l。即,以最初的分割关键数据“10”作为位址,使登录位址“00”写入最初的分割存储单元102a。接着,以第2个分割关键数据“10”作为位址,使登录位址“00”写入于第2个分割存储单元102b。再以第3个分割关键数据“10”作为位址,使登录位址“00”写入于第3个分割存储单元102c。同样的,第4个至第6个分割关键数据“00”“10”“11”作为位址,使登录位址“00”写入于第4个至第6个分割存储单元102d至102f。而且,同样的,以第7个至第12个分割关键数据“11”“00”“11”“01”“10”“00”作为位址,使登录位址“00”也写入到第7个至第12个分割存储单元102g至存储单元102l的6个追加分割存储单元。
藉此方式,登录位址“00”就可写入到以关键数据“2699”所指定的搜寻存储垫102。
以同样方式,作为应写入于登录位址“01”的数据而输入的关键数据“2691”,若以二进制来表现,则为“101010000011”。然后,如上述方式,依据关键数据选择位元,将应储存于追加分割存储单元的位元数据重复追加到所输入的关键数据。即,将12位元的数据作为下位位元追加到12位元的关键数据。追加后的关键数据为“101010000011100011011000”(24位元)。将该24位元的关键数据分割为12个分割关键数据。然后,使该分割关键数据作为用以存取于经12等份分割的搜寻存储垫102的y轴的位址,将数据写入于搜寻存储垫102。此时,写入于搜寻存储垫102的数据为作为登录位址而输入的“01”。
在图44(b)中,于关键数据“2691”,按上述方式依据关键数据选择位元使12位元追加于下位,其后作12等份分割,并表现作“10”“10”“10”“00”“00”“11”“10”“00”“11”“01”“10”“00”。以这些分割关键数据作为位址,将登录位址“01”写入到经分割的搜寻存储垫102。即,以最初的分割关键数据“10”作为位址,使登录位址“01”写入于最初的分割存储单元102a。此时,业均已因关键数据“2699”的写入而在分割存储单元102a的位址上写入有登录位址“00”,产生了位址的冲突重复。在图44(b)中,以涂黑表示的部分即为产生了冲突重复的部分。而在产生该冲突重复的部分,分割关键数据当作“无需顾虑(don’tcare)"来处理。图44(b)中,又以第2个分割关键数据“10”作为位址,将登录位址“01”写入到第2个分割存储单元102b。再将第3个至第6个分割关键数据“10”“00”“00”“11”作为位址,分别在第3个至第6个分割存储单元102c、102d、102e、102f写入登录位址“01”。但,第2个至第4个及第6个位址业均已因关键数据“2699”的写入而在使用中,故以"无需顾虑(don’tcare)"来处理。接着,将第7个至第12个分割关键数据“10”“00”“11”“01”“10”“00”作为位址,分别在7第个至第12个等6个追加分割存储单元102g至102l的6个写入登录位址“01”。但,8第个至第12个位址也均因分割关键数据“2699”的写入而在使用中,故以“无需顾虑(don’tcare)"来处理。
藉此方式,登录位址“01”就被写入以关键数据“2691”指定的分割存储单元中。依同样方式,以关键数据“1859”“1440”作为位址,将登录位址“10”“11”写入到搜寻存储垫102。如图44(c)所示,由于关键数据“1859”的写入,在第4个至第6个、第9个分割存储单元产生了位址的冲突重复。而且,如图44(d)所示,以关键数据“1440”而言,第1、3、5、7、8、12个分割存储单元产生了位址的冲突重复。
图44(e)显示确认存储垫(SRAM)104的写入状态。
如图44(e)所示,确认存储垫中,关键数据“2699”的二进制数据写入于登录位址“00”,关键数据“2691”的二进制数据写入于登录位址“01”,关键数据“1859”的二进制数据写入于登录位址“10”,关键数据“1440”的二进制数据写入于登录位址”11”。
图45显示了本发明[实施例6]中的搜寻存储垫102的搜寻动作。图45表现了将图44所示的位址重迭部分,即,加了浓色网底的登录位址当作“无需顾虑(don’tcare)"时,输入数据是否被正确搜寻。
图45(a)中,显示输入关键数据“2699”作为搜寻数据的情形。关键数据“2699”以二进制数据“101010001011”来表现。然后,如图44所说明者,依据关键数据选择位元,将12位元的数据作为下位位元追加在12位元的关键数据。追加后的关键数据为“101010001011110011011000”(24位元)。该分割关键数据分别使用作为存取于分配到经12等份分割的搜寻存储垫102的y轴的“登录位址记入位置"所需的位址。以最初的分割关键数据“10”作为位址,将最初的分割存储单元102a的数据的登录位址读取时,由于产生了位址冲突重复,故施行“无需顾虑(don’tcare)"处理。于是,来自分割存储垫102a的读取数据就被当作搜寻对象外。对于第2个以后的分割关键数据,也是同样以这些分割关键数据作为位址,从搜寻存储垫102读取登录位址。在此,以第5个分割关键数据“10”作为位址,从第5个分割存储单元102e读取数据时,可读取登录位址“00”。此外,以第7个分割关键数据“11”作为位址,读取第7个分割存储垫102g时,可获得登录位址“00”。有关其他的分割关键数据,则藉“无需顾虑(don’tcare)"处理而设为搜寻对象外。
如图45(a)所示,藉由作为搜寻数据的关键数据“2699”而从搜寻存储垫102读取的数据中,使用于搜寻的数据即为第5个分割存储单元102e及第7个分割存储单元102g的输出的登录位址“00”。
使用确认存储垫104,读取以登录位址“00”作为位址所存取的关键数据值时,为“101010001011”,可知与作为搜寻数据的关键数据一致。即,控制电路105会在将来自确认存储垫104的输出数据的关键数据与搜寻数据相比较,并确认一致性后,再输出登录位址。
图45(b)显示了作为搜寻数据而输入关键数据“1859”的情形。关键数据“1859”以“011101000011”来表现。而且,如在图44所说明的方式,依据关键数据选择位元,将12位元的数据作为下位位元而追加到12位元的关键数据。追加后的关键数据为“011101000011001011110010”(24位元)。这些分割关键数据分别用作存取分配到经12等份分割的搜寻存储垫102的y轴的"登录位址记入位置"所需的位址。虽以最初的分割关键数据“01”作为位址,读取最初分割存储单元102a的数据,但由于产生了位址冲突重复,故设成执行“无需顾虑(don’tcare)"处理的方式。于是,最初的分割关键数据即成为搜寻对象外。以第2个分割关键数据“11”作为位址,从第2个分割存储单元102b读取数据时,可读取登录位址“10”。以第3个分割关键数据”01”作为位址,从第3个分割存储单元102c读取数据时,可获得登录位址“10”。
分别以第4个“00”、第5个“00”、第6个“11”、第7个“00”、第8个“10”、第9个“11”作为位址而对分割存储单元的存取,因为“无需顾虑(don’tcare)"的处理而成为搜寻对象外。此外,以第10个分割关键数据“11”作为位址而从第10个分割存储单元102j读取数据时,可读取登录位址“10”。以第11个分割关键数据“00”作为位址,而从第11个分割存储单元102k读取数据时,可读取登录位址“10”。再者,以第12个分割关键数据“10”作为位址,从第12个分割存储单元102l读取数据时,可获得登录位址“10”。
如图45(b)所示,借着作为搜寻数据的关键数据“1859”而从搜寻存储垫102读取的值,为经分割的第2个分割存储单元102b、第3个分割存储单元102c、第10个分割存储单元102j、第11个分割存储单元102k、及第12个分割存储单元102l的输出的登录位址“10”。
使用确认存储垫104来读取藉登录位址“10”存取的关键数据的值时,为“011101000011”,可知其与作为搜寻数据的关键数据一致。即,控制电路105将来自确认存储垫104的输出数据的关键数据与搜寻数据相比较并确认一致性后,输出登录位址。
图45(c)显示了将关键数据作为搜寻数据且使“2691”输入作为关键数据的情形。作为搜寻数据的关键数据“2691”以二进制数据“101010000011”来表现。接着,如图44所说明的方式,依据关键数据选择位元,将12位元的数据作为下位位元而追加到12位元的关键数据。追加后的关键数据为“101010000011100011011000”(24位元)。分割关键数据分别用作存取分配到经12等份分割的搜寻存储垫102’的y轴的"登录位址记入位置"所需的位址。以最初的分割关键数据“10”作为位址,读取最初的分割存储单元102a的数据时,由于位址冲突重复,故执行“无需顾虑(don’tcare)"处理。第2个“10”、第3个“10”、第4个“00”、第5个“00”、第6个“11”作为位址,读取各分割存储单元102b、102c、102d、102e、102f的数据时,由于位址冲突重复,故执行“无需顾虑(don’tcare)"处理。
接着,以第7个分割关键数据“10”作为位址,从第7个分割存储单元102g读取数据时,可读取登录位址“01”。另一方面,以第8个“00”、第9个“11”、第10个“01”、第11个“10”、第12个“00”作为位址来读取各分割存储单元的数据时,由于有位址冲突重复,故执行“无需顾虑(don’tcare)"处理,并当作搜寻对象外。
如图45(c)所示,藉由作为搜寻数据的关键数据“2691”从搜寻存储垫102读取的值,为第7个分割存储单元102g输出的登录位址“01”。
使用确认存储垫104,将藉登录位址“01”存取的关键数据的值读取时,为“101010000011”,可知其与作为搜寻数据的关键数据一致。即,控制电路105会将来自确认存储垫104的输出数据的关键数据与搜寻数据进行比较,确认一致性后,输出登录位址。
在此,使用图45(c),思考假设将搜寻存储垫102分割成分割存储单元102a至102f等6个的情形。在此情形中,作为搜寻数据的关键数据“2691”输入时,该“2691”以二进制数据“101010000011”来表现。分割关键数据分别用作存取分配到经6等份分割的搜寻存储垫的y轴的"登录位址记入位置"所需的位址。以第1个“10”、第2个“10”、第3个“10”、第4个“00”、第5个“00”、第6个“11”作为位址来读取各分割存储单元的数据时,任一位址都有冲突重复,故进行“无需顾虑(don’tcare)"处理。因此,在该条件上,只将搜寻存储垫102分割为分割存储单元102a至102f等6个,并不充分,不能从搜寻存储垫输出搜寻结果。
从而,若依本实施例,可依上述方式透过増加分割存储单元的数目,以减少冲突重复频度。而且,若依本实施例,可提高得输出搜寻结果的可能性。
以上虽沿实施例依序说明本发明,但本发明并非限定于上述实施例,而是包含了各色各样的变化例。即,上述实施例是为了容易了解本发明而将本发明的内容作详细说明者。因而,本发明不应限定于具备上述说明的全部构成。
例如,在上述说明中,本发明的半导体装置藉SRAM所构成的例子来说明,本发明也同样可用其他存储单元电路来实现。特别是,以本发明而言,适于使用高速非挥发性存储单元,例如MRAM。
附图标记说明
101近接快捷存储垫
102、1002搜寻存储垫
102a、102b、102c、…、102l分割存储单元
103比较及闩锁电路
104、1004确认用存储单元
105控制电路
1051输入部
1052分割部
1053写入部
1054冲突重复资讯存储部
1055读取部
1056确认部
1057输出部
106编码电路

Claims (9)

1.一种半导体装置,具备:
搜寻存储垫(102),具有朝y轴方向分配登录位址记入用位置,朝x轴方向分配关键数据的结构;以及
控制电路(105),连接于前述搜寻存储垫,
其特征在于:
前述搜寻存储垫(102)藉由将分配前述关键数据的区域沿y轴方向分割成多个,而形成有多个分割存储单元(102a、102b…);
前述控制电路(105)具有:
输入部(1051),关键数据输入于其中;
分割部(1052),将输入于前述输入部的关键数据分割成多个;以及
写入部(1053),前述分割部所分割的各个关键数据,以该经分割的关键数据作为位址分配到前述分割存储单元,将与该经分割的各个关键数据对应的登录位址写入到该分割存储单元。
2.如权利要求1所述的半导体装置,其特征在于,前述控制电路(105)再具有冲突重复资讯存储部(1054),其在藉前述写入部将多个登录位址写入到分割存储单元的同一位址时,将表示登录位址的冲突重复的资讯写入于该分割存储单元。
3.如权利要求2所述的半导体装置,其特征在于,前述控制电路(105)再具有读取部(1055),其在使作为搜寻对象数据的关键数据输入于前述输入部,而前述分割部将作为该搜寻对象数据的关键数据分割成多个的情况中,以前述分割部所分割的各个关键数据作为位址而存取于前述分割存储单元,并将与该经分割的各个关键数据对应的登录位址从该分割存储单元读取。
4.如权利要求3所述的半导体装置,其特征在于,前述读取部(1055)在以前述分割部所分割的关键数据作为位址而存取于前述分割存储单元时,在该分割存储单元写入有表示前述冲突重复的资讯的情况中,针对该经分割关键数据,不读取对应的登录位址,而当作无需顾虑者来处理。
5.如权利要求4所述的半导体装置,其特征在于,前述半导体装置再具备使各登录位址与各关键数据形成对应关系并加以存储的确认存储垫(104),
前述控制电路(105)则再具有确认部(1056),其从前述确认存储垫读取与前述读取部(1055)所读取的登录位址对应的关键数据,并确认该关键数据与输入于前述输入部的作为前述搜寻对象数据的关键数据是否一致。
6.如权利要求1所述的半导体装置,其特征在于,前述半导体装置再具备编码电路(106),其将关键数据藉由预定的处理施以编码,并将该经编码的关键数据往前述控制电路的输入部进行输出。
7.如权利要求4所述的半导体装置,其特征在于,
前述读取部(1055)以前述分割部所分割的各个关键数据作为位址而进出前述分割存储单元时,在全部的分割存储单元写入有表示前述冲突重复的资讯的情况中,将业已均写入该全部分割存储单元的登录位址读取,
前述确认部(1056)以前述读取部所读取的登录位址依序参阅前述确认存储垫,并从该确认存储垫抽出与作为前述搜寻对象数据的关键数据一致的关键位址后,将与该抽出的关键数据对应的登录位址进行输出。
8.一种写入/读取登录位址于半导体装置中的方法,该方法为将与关键数据对应的登录位址写入到该半导体装置的方法,该半导体装置具备有搜寻存储垫(102),该搜寻存储垫则具有朝y轴方向分配有登录位址记入用的位置且朝x轴方向分配关键数据的结构,其特征在于,
前述搜寻存储垫(102)藉由将分配前述关键数据的区域沿y轴方向分割成多个,形成有多个分割存储单元(102a、102b…);
前述方法包含:
使关键数据输入到前述半导体装置的控制电路(105)的程序;
前述控制电路将前述所输入的关键数据分割成多个的程序;以及
前述控制电路将前述经分割的各个关键数据以该经分割的关键数据作为位址而分配到前述分割存储单元,与该经分割的各个关键数据对应的登录位址写入到该分割存储单元的程序。
9.一种写入/读取登录位址于半导体装置中的方法,为藉由权利要求第8项所述的方法将写入到前述半导体装置的前述登录位址读取的方法,其特征在于,包含:
使作为搜寻对象数据的关键数据输入到前述控制电路的程序;
前述控制电路将前述所输入的作为搜寻对象数据的关键数据分割成多个的程序;以及
前述控制电路以前述经分割的各个关键数据当作位址而存取于前述分割存储单元,将与该经分割的各个关键数据对应的登录位址从该分割存储单元读取的程序。
CN201380074530.4A 2013-03-13 2013-12-26 半导体装置及写入/读取登录位址于半导体装置中的方法 Active CN105190762B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013051050 2013-03-13
JP2013-051050 2013-03-13
PCT/JP2013/084908 WO2014141566A1 (ja) 2013-03-13 2013-12-26 半導体装置及び半導体装置に対するエントリアドレス書き込み/読み出し方法

Publications (2)

Publication Number Publication Date
CN105190762A true CN105190762A (zh) 2015-12-23
CN105190762B CN105190762B (zh) 2018-06-12

Family

ID=51536251

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380074530.4A Active CN105190762B (zh) 2013-03-13 2013-12-26 半导体装置及写入/读取登录位址于半导体装置中的方法

Country Status (5)

Country Link
US (1) US9240237B2 (zh)
JP (2) JP5575997B1 (zh)
CN (1) CN105190762B (zh)
TW (1) TWI540578B (zh)
WO (1) WO2014141566A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9225275B2 (en) 2010-04-07 2015-12-29 Black & Decker Inc. Power tool with light unit
US9722334B2 (en) 2010-04-07 2017-08-01 Black & Decker Inc. Power tool with light unit
JP6166306B2 (ja) * 2015-05-18 2017-07-19 長瀬産業株式会社 半導体装置,情報処理システム,及び情報書込/読出方法
JP6205386B2 (ja) * 2015-05-18 2017-09-27 長瀬産業株式会社 半導体装置及び情報書込/読出方法
WO2016193947A1 (en) * 2015-06-05 2016-12-08 King Abdullah University Of Science And Technology Resistive content addressable memory based in-memory computation architecture
US10684961B1 (en) * 2015-10-02 2020-06-16 Amazon Technologies, Inc. External memory protection for content addressable memory
US9923579B2 (en) * 2016-03-08 2018-03-20 International Business Machines Corporation Clock path technique for using on-chip circuitry to generate a correct encode pattern to test the on-chip circuitry
US10254782B2 (en) * 2016-08-30 2019-04-09 Micron Technology, Inc. Apparatuses for reducing clock path power consumption in low power dynamic random access memory
US11334284B2 (en) * 2018-09-24 2022-05-17 Samsung Electronics Co., Ltd. Database offloading engine
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
TWI789836B (zh) * 2021-07-20 2023-01-11 旺宏電子股份有限公司 用於資料搜尋之記憶體裝置及資料搜尋方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5468124A (en) * 1977-11-10 1979-06-01 Nec Corp Converting unit
JPH03105444A (ja) * 1989-09-19 1991-05-02 Fujitsu Ltd メモリアドレス制御回路
JPH11353322A (ja) * 1998-06-09 1999-12-24 Chokosoku Network Computer Gijutsu Kenkyusho:Kk 検索回路
CN1381797A (zh) * 2001-04-13 2002-11-27 日本电气株式会社 高速信息检索系统
US20090006782A1 (en) * 2007-06-29 2009-01-01 Peter Buchmann Apparatus and method for accessing a memory device

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5847798B2 (ja) * 1978-03-09 1983-10-25 富士通株式会社 記憶装置
JPS5847798A (ja) 1981-09-09 1983-03-19 象印チエンブロツク株式会社 電動チエンブロック
JPH0358743U (zh) * 1989-06-09 1991-06-07
JPH0358743A (ja) 1989-07-27 1991-03-13 Takeda Miso Jozo Kk 乾燥おからを用いた水吸収材
JP3662618B2 (ja) 1995-02-01 2005-06-22 川崎マイクロエレクトロニクス株式会社 マルチプロトコルアドレス検索用連想メモリおよびその検索方法
JPH10187550A (ja) * 1996-12-26 1998-07-21 Rohm Co Ltd Icカード
JP3524707B2 (ja) 1996-12-28 2004-05-10 株式会社堀場製作所 マイクロフローセンサ素子
JP3938124B2 (ja) 2002-11-20 2007-06-27 ソニー株式会社 データ検索装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5468124A (en) * 1977-11-10 1979-06-01 Nec Corp Converting unit
JPH03105444A (ja) * 1989-09-19 1991-05-02 Fujitsu Ltd メモリアドレス制御回路
JPH11353322A (ja) * 1998-06-09 1999-12-24 Chokosoku Network Computer Gijutsu Kenkyusho:Kk 検索回路
CN1381797A (zh) * 2001-04-13 2002-11-27 日本电气株式会社 高速信息检索系统
US20090006782A1 (en) * 2007-06-29 2009-01-01 Peter Buchmann Apparatus and method for accessing a memory device

Also Published As

Publication number Publication date
JPWO2014141566A1 (ja) 2017-02-16
JP2014199710A (ja) 2014-10-23
US9240237B2 (en) 2016-01-19
TWI540578B (zh) 2016-07-01
WO2014141566A1 (ja) 2014-09-18
CN105190762B (zh) 2018-06-12
TW201445567A (zh) 2014-12-01
US20150070957A1 (en) 2015-03-12
JP5575997B1 (ja) 2014-08-20

Similar Documents

Publication Publication Date Title
CN105190762A (zh) 半导体装置及写入/读取登录位址于半导体装置中的方法
US7577819B2 (en) Vector indexed memory unit and method
CN110825375A (zh) 一种量子程序的转化方法、装置、存储介质和电子装置
CN102197436A (zh) 用于多电平单元存储器的数据路径,用于存储的方法及用于利用存储器阵列的方法
CN104395876B (zh) 没有算术和逻辑单元的计算机处理器和系统
CN108491269A (zh) 一种工作量证明运算芯片优化的方法和电路
CN100504758C (zh) 多字乘法-累加电路和蒙哥马利模乘法-累加电路
CN101093474B (zh) 利用矢量处理器实现矩阵转置的方法和处理系统
CN102508803A (zh) 一种矩阵转置存储控制器
WO2018027706A1 (zh) Fft处理器及运算方法
CN106844288A (zh) 一种随机字符串生成方法及装置
CN104238995A (zh) 一种非线性反馈移位寄存器
CN105553646B (zh) 面向分组密码算法并行计算的可重构s盒电路结构
US6694407B1 (en) Cache memory with data transfer control and method of operating same
US20080301400A1 (en) Method and Arrangement for Efficiently Accessing Matrix Elements in a Memory
CN116561819A (zh) 一种基于Toom-Cook环上多项式乘法的加解密方法及环上多项式乘法器
US3527930A (en) High speed division system
CN113448624B (zh) 数据存取方法及装置、系统、ai加速器
CN1987824A (zh) 存储器控制电路及存储器控制方法
CN103546232A (zh) 数据的处理方法及装置
TWI776543B (zh) 計算晶片、算力板和數據處理設備
CN105608056A (zh) 一种基于Flink的大规模矩阵并行化的计算方法
CN103853694A (zh) 一种可重构状态机的实现方法
CN104504126A (zh) 一种并行向量查表方法及装置
US20140310461A1 (en) Optimized and parallel processing methods with application to query evaluation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant