CN102792263B - 用于内容可寻址存储器中的地址总和比较的方法和设备 - Google Patents
用于内容可寻址存储器中的地址总和比较的方法和设备 Download PDFInfo
- Publication number
- CN102792263B CN102792263B CN201180013881.5A CN201180013881A CN102792263B CN 102792263 B CN102792263 B CN 102792263B CN 201180013881 A CN201180013881 A CN 201180013881A CN 102792263 B CN102792263 B CN 102792263B
- Authority
- CN
- China
- Prior art keywords
- circuit
- event
- memory cell
- signal
- address
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
- G06F7/506—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
- G06F7/501—Half or full adders, i.e. basic adder cells for one denomination
- G06F7/5016—Half or full adders, i.e. basic adder cells for one denomination forming at least one of the output signals directly from the minterms of the input signals, i.e. with a minimum number of gate levels
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明描述一种用于(例如)翻译旁视缓冲器和内容可寻址存储器装置中的总和地址比较(A+B=K)操作的技术。将地址输入信号A和B作为输入供应到所述A+B=K操作,且K为存储于多个存储器单元中的先前值。在每一存储器单元中,响应于更新所述存储器单元而产生单一逻辑门电路输出及其反相,其中每一单一逻辑门电路将相关联的存储器单元输出和下一最低有效位邻近存储器单元输出作为输入。在所述存储器单元中的每一者中,在部分查找比较电路中产生所述A+B=K操作的与每一存储器单元相关联的一部分,其中在读取查找比较操作期间,对应的地址输入信号A和B与所述相关联的存储器单元输出和所述所产生的单一逻辑门电路输出及其反相进行组合。
Description
技术领域
本发明大体上涉及使用内容可寻址存储器将虚拟地址翻译为物理地址的领域,且更特定来说,涉及用于翻译旁视缓冲器(TLB)中的地址总和比较功能的实施。
背景技术
例如手机、膝上型计算机、个人数据助理(PDA)等许多便携式产品利用处理系统,所述处理系统执行程序,例如通信和多媒体程序。用于此些产品的处理系统可包含多个处理器、使用虚拟存储器硬件和用于存储程序和数据的技术的复杂存储器系统、控制器、外围装置(例如,通信接口),和配置于(例如)单一芯片上的固定功能逻辑块。同时,便携式产品具有呈电池形式的有限能量源,常要求所述电池支持来自处理系统的高性能操作。为了增加电池使用时间,需要尽可能有效地执行这些操作。还正以有效设计开发出许多个人计算机以减少总体能量消耗。
虚拟存储器是一种技术,其呈现出用于程序开发和使用的非常大的“虚拟”存储器空间,同时实现对具有较少物理容量的复杂存储器系统中的那个虚拟存储器空间的管理。复杂存储器系统常规上是基于高速缓冲存储器的容量和性能而以层级组织的,其中最高性能和最低容量的高速缓冲存储器最靠近处理器。举例来说,1级指令高速缓冲存储器和1级数据高速缓冲存储器通常将直接耦合到处理器。2级统一高速缓冲存储器又连接到1级(L1)指令和数据高速缓冲存储器。另外,系统存储器连接到2级(L2)统一高速缓冲存储器。1级指令高速缓冲存储器通常以处理器速度操作,且2级统一高速缓冲存储器以低于1级高速缓冲存储器的速度的速度操作,但具有比系统存储器的存取时间快的存取时间。另外,虚拟存储器高速缓冲存储器子系统可包含翻译旁视缓冲器(TLB)以针对指令TLB(ITLB)中的指令和数据TLB(DTLB)中的数据两者提供虚拟到物理存储器地址的快速翻译。高速缓冲存储器和TLB通常利用内容可寻址存储器(CAM)来存储(例如)将用于翻译过程中的地址或地址的一部分。对于TLB,CAM可存储先前翻译的虚拟页号。针对翻译而呈现的虚拟页号将导致与所有先前存储的地址标签并行的TLBCAM地址标签比较操作。当检测到匹配时,TLB的输出将为对应于所呈现的虚拟页号的物理页号。物理页号随后与页串联,所述页从待翻译以产生所翻译的物理地址的虚拟地址偏移,所述所翻译的物理地址可随后用于寻址存储器层级中的高速缓冲存储器。
举例来说,在TLB中,存取存储于TLB的CAM中的值通常需要例如通过基数加上偏移计算而产生的有效地址,其与存储于CAM中的地址标签进行比较。所述操作通常被描述为A+B=K操作,其中A+B是虚拟地址,且K是先前存储于地址标签中的虚拟地址或其部分。所述A+B=K操作可用于指令和数据高速缓冲存储器以及指令和数据TLB中。在一种方法中,利用加法器来产生A+B值,且随后在CAM中提供比较器来将A+B值与CAM条目中的每一者进行比较。然而,由于具有对加法器中的进位产生路径的依赖而使此方法变慢。
发明内容
在其若干方面中,本发明认识到提供用于和地址比较功能的更有效的方法和设备可改善性能并降低处理器系统中的功率要求。为此以及其它目的,本发明的一实施例提出一种用于和地址比较(A+B=K)操作的方法,其中A和B被供应地址输入信号,且K为存储于多个存储器单元中的先前值。在多个存储器单元中的每一存储器单元中,响应于更新存储器单元而产生单一逻辑门电路输出及其反相,其中每一单一逻辑门电路将相关联的存储器单元输出作为第一输入且将下一最低有效位邻近存储器单元输出作为第二输入。在存储器单元中的每一者中,在部分查找比较电路中产生A+B=K操作的与每一存储器单元相关联的一部分,其中在读取查找比较操作期间,对应的地址输入信号A和B与相关联的存储器单元输出和所产生的单一逻辑门电路输出及其反相进行组合。
另一实施例提出一种用于和地址比较(A+B=K)操作的设备,其中A和B被供应地址输入信号,且K是存储于存储器单元中的先前值。每一存储器单元包含单一逻辑门电路,所述单一逻辑门电路将相关联的存储器单元输出作为第一输入且将下一最低有效位邻近存储器单元输出作为第二输入,且响应于更新所述存储器单元而产生输出信号S及其逻辑非信号!S。在存储器单元中的每一者中,和地址比较电路产生A+B=K操作的与每一存储器单元相关联的一部分以用于查找比较操作,在所述查找比较操作期间,使得对应的地址输入信号A和B能够与相关联的存储器单元输出以及S信号和!S信号进行组合。
另一实施例提出一种用于和地址比较(A+B=K)操作的方法,其中A和B被供应地址输入信号,且K是存储于多个存储器单元中的先前值。将两个邻近的存储器位(Mi、Mi-1)进行组合以产生输出信号Si,以作为存储器位(Mi、Mi-1)与其逻辑非信号!Si的异或。将两个邻近位(Ai、Ai-1、Bi、Bi-1)与存储器位Mi和!Mi以及输出Si和!Si进行组合以用于查找比较操作,以检测误比较,其中!是逻辑非功能。
应理解,所属领域的技术人员从以下详细描述将容易明白本发明的其它实施例,其中借助于说明来展示和描述本发明的各种实施例。将认识到,本发明能够具有其它及不同实施例且其若干细节能够在各种其它方面中加以修改,以上所有均不脱离本发明的精神及范围。因此,附图和详细描述应被视为本质上是说明性的而不是限制性的。
附图说明
在附图中借助于实例且非限制地说明本发明的各个方面,其中:
图1说明无线通信系统;
图2展示具有高速缓冲存储器的示范性处理器系统,所述高速缓冲存储器配置有具有有效的A+B=K实施方案的内容可寻址存储器;
图3说明用于翻译旁视缓冲器(TLB)中的示范性A+B=K内容可寻址存储器(CAM)电路;
图4说明图3中所示的A+B=KCAM电路的示范性第j行标签存储器;
图5A到5D说明适合于用于图3中所示的A+B=KCAM电路中的和地址比较(SAC)信号逻辑电路;
图5E说明单一存储器单元;
图6A说明具有取决于存储器单元输入值的输出S和!S的S信号电路;
图6B说明用于与图4的存储器单元一起使用的新SAC电路;
图6C说明用于与图4的最低有效位(LSB)存储器单元一起使用的末尾SAC电路;以及
图7说明用以通过将A+B=K功能分离为取决于存储器单元位的第一组逻辑功能和取决于地址输入信号的第二组逻辑功能而产生具有低等待时间的A+B=K功能的比较过程。
具体实施方式
下文结合附图而陈述的详细描述希望作为对本发明的各种示范性实施例的描述,且不希望代表其中可实践本发明的仅有实施例。详细描述包含特定细节以用于提供对本发明的全面理解的目的。然而,所属领域的技术人员将明白,可在没有这些特定细节的情况下实践本发明。在一些情况下,为了避免混淆本发明的概念,以框图形式来展示众所周知的结构和组件。
图1说明其中可有利地采用本发明的实施例的示范性无线通信系统100。出于说明的目的,图1展示三个远程单元120、130和150以及两个基站140。将认识到,常见的无线通信系统可具有多得多的远程单元和基站。包含如分别由组件125A、125C、125B和125D代表的硬件组件、软件组件或两者的远程单元120、130、150和基站140已经调适以体现如下文进一步论述的本发明。图1展示从基站140到远程单元120、130和150的前向链路信号180,和从远程单元120、130和150到基站140的反向链路信号190。
在图1中,将远程单元120展示为移动电话,将远程单元130展示为便携式计算机,且将远程单元150展示为无线本地环路系统中的固定位置远程单元。举例来说,远程单元可替代地为手机、寻呼机、对讲机、手持式个人通信系统(PCS)单元、例如个人数据助理等便携式数据单元,或例如仪表读数装备等固定位置数据单元。尽管图1说明根据本发明的教示的远程单元,但本发明不限于这些示范性所说明单元。本发明的实施例可合适地用于对如本文提出的A+B=K计算具有需求的任何装置中,例如高速缓冲存储器、翻译旁视缓冲器(TLB)和固定功能装置。
图2展示具有高速缓冲存储器和TLB的示范性处理器系统200,所述高速缓冲存储器和TLB配置有使用有效的A+B=K实施方案的内容可寻址存储器(CAM),如下文更详细地描述,示范性处理器系统200可合适地用于图1的组件125A、125C、125B和125D中。处理器系统200包含处理器210,处理器210根据控制逻辑214执行指令执行管线212中的指令。管线212包含组织在管级中的各种寄存器或锁存器216,和一个或一个以上算术逻辑单元(ALU)218。通用寄存器(GPR)堆220提供所寄存的值以供指令执行管线212使用。管线212从指令高速缓冲存储器(Icache)222获取指令,其中由指令翻译旁视缓冲器(ITLB)224管理存储器寻址和许可。从数据高速缓冲存储器(Dcache)226存取数据,其中由数据翻译旁视缓冲器(DTLB)228管理存储器寻址和许可。Icache222和/或Dcache226中的未命中在存储器接口232的控制下导致对主存储器230的存取。处理器210还可包含输入/输出(I/O)接口234,其控制对各种外围装置236的存取,外围装置236例如为硬盘控制器、通用串行总线(USB)控制器、交互式显示器装置、将控制器耦合到发射器和接收器的无线电装置、存储器控制器、用于互连到另一总线互连装置的桥接装置,或类似物。所属领域的技术人员将认识到,处理器210的众多变化形式是可能的。举例来说,存储器230可由层级式存储器装置组成,例如2级高速缓冲存储器、3级高速缓冲存储器、大容量存储器、层级式TLB等。处理器系统200通常使用指令和数据翻译旁视缓冲器(ITLB224和DTLB228)来支持虚拟到物理地址的翻译。另外,一个或一个以上处理器(例如,处理器210)可包含于处理系统200中。依据处理要求和设计约束,特定应用所需的处理器、外围装置和存储器装置的实际数目可变化。可使用专用集成电路(ASIC)技术、现场可编程门阵列(FPGA)技术,或其它可编程逻辑、离散门或晶体管逻辑,或适合于既定应用的任何其它可用技术来实施处理器系统200。
处理器210(例如)可经配置以根据存储于计算机可读存储媒体上的程序来执行指令,所述计算机可读存储媒体直接与所述处理器在本地相关联(例如可通过指令高速缓冲存储器而可用),或可通过外围装置存储器接口进行存取。各种存储器可包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、快闪存储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、压缩光盘(CD)、数字视频盘(DVD)、其它类型的可装卸盘,或任何其它合适的存储媒体。
处理器210可利用虚拟寻址技术以用于从处理系统200中的各种存储器存取指令和数据。虚拟地址通常被分割为高部分和低部分。高部分代表将被翻译成物理页号的虚拟页号。低部分代表进入页中的偏移,且在虚拟地址与物理地址之间是相同的,以使得低部分不被翻译。应认识到,在不同系统中,页大小可变化,且具有拥有8K字节、4K字节或2K字节页的系统将是正常的。页大小的选择的一个作用是将被翻译的虚拟地址分区的高部分中的位的数目。举例来说,在拥有4K字节页的具有32位虚拟地址的系统中,虚拟地址将被分割为高20位部分,位[31:12],和低12位部分,位[11:0]。高20位部分代表将被翻译成物理页号的虚拟页号。低12位部分代表进入页中的4K字节偏移,且不被翻译。
可通过基地址加上偏移计算、编制索引,或需要加法或数学运算的其它地址产生功能来形成虚拟地址。不是通过首先将(例如)基地址加上偏移然后进行单独的CAM比较操作来形成虚拟地址,而是可将A+B=K功能组合于CAM中,也被称作总和地址比较(SAC)功能。使用此方法的途径描述于约迪·克塔迪拉(JordiCortadella)和何塞·M·拉比利亚(JoseM.Llaberia)的论文“在没有进位传播情况下对A+B=K条件的评估(EvaluationofA+B=KConditionWithoutCarryPropagation)”,IEEE计算机学报,41卷,11号,1992年11月中,所述论文在此以全文引用的方式并入本文。SAC功能(例如,上述SAC功能)的一般实施方案的问题是所述实施方案对用以产生所述功能的最差情况时序路径的影响。
如结合本发明的途径的一个方面所描述,与CAM存储的存储器值上的逻辑操作相关联的新SAC电路的一部分在CAM比较读取操作之前经评估,进而减少解析全SAC功能的等待时间。举例来说,此些逻辑操作可在CAM存储器单元更新期间经评估。新SAC电路在逻辑上组合加法和比较操作以减少执行A+B=K操作的资源和等待时间。用于以下论述中的逻辑操作是:加法的“+”、逻辑“与”功能的“&”、逻辑“非”功能的“!”,和逻辑“或”功能的“|”。新SAC电路在逻辑上组合了两个邻近位(Ai、Ai-1、Bi、Bi-1)与对应的存储器位(Mi、Mi-1)。检查输入位Ai和Bi的三种逻辑组合Pi、Gi和Zi,其中:
等式1
Pi=(Ai&!Bi)|(!Ai&Bi)其中当{Ai,Bi}={1,0}或{0,1}时,Pi=l
等式2
Gi=Ai&Bi其中当{Ai,Bi}={1,1}时,Gi=l
等式3
Zi=!Ai&!Bi其中当{Ai,Bi}={0,0}时,Zi=l
P、G和Z的两个邻近值{Pi、Gi、Zi}和{Pi-1、Gi-1、Zi-1}在组合时产生九种组合,其列举于下表中,可从所述表产生一组失配等式,如下文更详细地描述。
所述失配等式是基于两个邻近位与进位输入Ci-1的和,如等式4中所示:
等式4
AiAi-1+BiBi-1+Ci-1=RiRi-1
对于GiGi-1组合,其中Gi=1且Gi-1=1,可针对Ci-1的两个可能的状态{0,1}来评估等式4。由于Gi=1,所以{Ai,Bi}={1,1},且由于Gi-1=1,所以{Ai-1,Bi-1}={1,1}。对等式4的评估产生以下两种情形,其依据进位输入值而产生RiRi-1的两个结果:
在A+B=K的SAC等式中,将结果RiRi-1与存储器值MiMi-1进行比较。当针对第i位进行比较时,结果值Ri总是为“1”,与进位输入值无关。因此,对于GiGi-1组合,当Mi=0时,发生误比较。通过等式5给出GiGi-1组合的失配等式:
等式5
失配-GiGi-1=Gi&Gi-1&!Mi
下组表及其对应的失配等式列举如下:
等式6
失配-GiPi-1=(Gi&Pi-1&Mi&Mi-1)|(Gi&Pi-1&!Mi&!Mi-1)
等式7
失配-GiZi-1=Gi&Zi-1&Mi
等式8
失配-PiGi-1=Pi&Gi-1&Mi
等式9
失配-PiPi-1=(Pi&Pi-1&Mi&!Mi-1)|(Pi&Pi-1&!Mi&Mi-1)
等式10
失配-PiZi-1=Pi&Zi-1&!Mi
等式11
失配-ZiGi-1=Zi&Gi-1&!Mi
等式12
失配-ZiPi-1=(Zi&Pi-1&Mi&Mi-1)|(Zi&Pi-1&!Mi&!Mi-1)
等式13
失配-ZiZi-1=Zi&Zi-1&Mi
等式5到13的小项在下文列举如下:
等式 | 小项 | 参考字母 |
5 | Gi&Gi-1&!Mi | A |
6 | Gi&Pi-1&Mi&Mi-1 | B |
6 | Gi&Pi-1&!Mi&!Mi-1 | C |
7 | Gi&Zi-1&Mi | D |
8 | Pi&Gi-1&Mi | E |
9 | Pi&Pi-1&Mi&!Mi-1 | F |
9 | Pi&Pi-1&!Mi&Mi-1 | G |
10 | Pi&Zi-1&!Mi | H |
11 | Zi&Gi-1&!Mi | I |
12 | Zi&Pi-1&Mi&Mi-1 | J |
12 | Zi&Pi-1&!Mi&!Mi-1 | K |
13 | Zi&Zi-1&Mi | L |
恒等式Pi=!Gi&!Zi以及!Pi=Gi|Zi用于将来自上表的小项A和I、B和J、C和K以及D和L组合为以下列举的八个小项:
经组合的小项 | 参考字母 |
!Pi&Gi-1&!Mi | AA |
!Pi&Pi-1&Mi&Mi-1 | BB |
!Pi&Pi-1&!Mi&!Mi-1 | CC |
!Pi&Zi-1&Mi | DD |
Pi&Gi-1&Mi | EE |
Pi&Pi-1&Mi&!Mi-1 | FF |
Pi&Pi-1&!Mi&Mi-1 | GG |
Pi&Zi-1&!Mi | HH |
进一步的分析和模拟检验了以上这些经组合的小项和对进位输入的评估(如下文更详细地描述)可用于A+B=K操作。
定义以下变量Si和!Si,其仅取决于存储器值:
等式14
Si=(!Mi&!Mi-1)|(Mi&Mi-1)
等式15
!Si=(!Mi&Mi-1)|(Mi&!Mi-1)
通过使用等式14和15,小项BB和CC以及FF和GG经组合,从而将先前表的八个小项AA到HH减少到以下最终小项表中的六个小项608到610以及614到616,且下文结合图6B的描述更详细地描述。
最终小项表
针对Si的等式14和针对!Si的等式15仅取决于存储器值,其允许在CAM更新的写入循环中确定Si和!Si的电路输出值。因此,在产生Si和!Si中的延迟有利地不影响用于在读取操作期间确定误比较的等待时间。参考图6A,单一逻辑门电路(例如,异或门603)产生Si信号602输出且通过每一存储器单元中的反相器607而产生其反相!Si信号606,因此响应于存储器单元输出Mi和Mi-1。应注意,存储器单元输出Mi和M小i-1可能由于通常比读取查找比较操作的频率低的频率发生的存储器单元更新而改变。参考图6B,包含Si信号602输出及其反相!Si信号606的使用的六个小项618到620以及624到626用于新SAC电路610中,新SAC电路610包含于CAM标签阵列的存储器单元中,如下文更详细地描述。
从Pi、Gi、Zi和Cin的值确定用于最低有效位的末尾SAC电路,Pi、Gi、Zi和Cin当组合时产生三种组合,可从所述三种组合产生一组失配等式,如下文更详细地描述。举例来说,在最低有效位i=12的情况下,所述三种组合列举如下:
G12 | Cin |
P12 | Cin |
Z12 | Cin |
所述失配等式是基于两个邻近位与进位输入Cin的总和,如等式16中所示:
等式16
A12+B12+Cin=Ri
对于G12=1,可针对Cin的两个可能的状态{0,1}来评估等式16。由于G12=1,所以{A12,B12}={1,1}。对等式16的评估产生以下两种情形,其依据进位输入值而产生R12的两个结果:
通过等式17给出GiCin组合的失配等式:
等式17
失配-G12Cin=(G12&!Cin&M12)|(G12&Cin&!M12)
两个进一步的表及其对应的失配等式陈述如下:
等式18
失配-P12Cin=(P12&!Cin&!M12)|(P12&Cin&M12)
等式19
失配-Z12Cin=(Z12&!Cin&M12)|(Z12&Cin&!M12)
等式17到19的小项列举如下:
等式 | 小项 | 参考字母 |
17 | G12&!Cin&M12 | A |
17 | G12&Cin&!M12 | B |
18 | P12&!Cin&!M12 | C |
18 | P12&Cin&M12 | D |
19 | Z12&!Cin&M12 | E |
19 | Z12&Cin&!M12 | F |
恒等式!Pi=Gi|Zi用于将小项A和E以及B和F组合为最终LSB小项表中的以下列举的四个小项,其在下文结合图6C的论述更详细地描述。
最终LSB小项表
图3说明用于翻译旁视缓冲器(TLB)中的示范性A+B=KCAM电路300。A+B=KCAM电路300包含脉冲锁存接口304、总和地址比较(SAC)信号逻辑电路306、标签存储器与SAC阵列308,和新标签T'写入锁存和驱动器接口310。A+B=KCAM电路300用于(例如)拥有4K字节页的具有32位虚拟地址的系统中的虚拟翻译,例如,可用于图2的ITLB224和DTLB228中。虚拟地址将被分割为高20位部分,位[31:12],和低12位部分,位[11:0]。高20位部分代表将被翻译成物理页号的虚拟页号。低12位部分代表进入页中的4K字节页偏移,且不被翻译。
通过将例如基地址A[31:12]312与偏移值B[31:12]314相加而形成虚拟地址。随后将虚拟地址与标签存储器与SAC阵列308中的所存储的标签值进行比较以产生逐行命中指示316。如果在标签存储器与SAC阵列308中发现任何匹配,则还对逐行命中指示316进行组合以产生单一命中指示。标签存储器与SAC阵列308的每一行从SAC信号逻辑电路306接收SAC信号,例如用于上文所描述的最终小项表中的P、G和Z信号。
每当未找到地址时,TLB可将新标签T'[31:12]318写入到标签存储器与SAC阵列308中。新标签T'[31:12]318通过新标签T'写入锁存和驱动器接口310被锁存和驱动到标签存储器与SAC阵列308,且在行写入信号320的控制下被写入到存储器中。在图4中展示且在下文描述了标签存储器与SAC阵列308中的行的更详细的视图。
图4说明图3中所示的A+B=KCAM电路300的示范性第j行标签存储器400。第j行标签存储器400包含用于所存储的标签值的每一位的存储器单元M[31:12]40431-40412、与每一存储器单元位[31:13]相关联的新SAC电路40631-40613、与所存储的标签值的最低有效位相关联的末尾SAC电路408、用于位[31:13]的S和!S逻辑电路41031-41013,以及命中逻辑电路412。S[31:13]和!S[31:13]电路41031-41013分别根据等式14和15而实施。在对于查找比较操作适当的时序下,使用来自图3的SAC信号逻辑电路306的SAC信号Pi、Pi-1、Gi和Zi,根据以上最终小项表来实施新SAC[31:13]电路40631-40613。当新标签值将写入到第j行标签存储器400时,从图3的新标签T'写入锁存和驱动器接口310将新标签T'值提供到存储器单元M[31:12]。在写入行[j]信号414的控制下将新标签T'值写入到存储器单元。
在一个实施例中,每一新SAC电路的命中输出用将命中信号418拉低的任何位失配上的比较操作来指示未命中。出于信号加载原因,可将命中信号416连接到SAC命中输出的一部分。因此,利用命中电路412来产生代表整行上的匹配比较的命中信号输出418。
图5A到5D分别说明适合于用于图3中所示的A+B=KCAM电路300中的总和地址比较(SAC)信号逻辑电路500、510、520和530。对于每一标签位位置,产生图5A中的脉冲Pi信号502,图5B中的脉冲!Pi信号512,图5C中的脉冲Gi信号522,和图5D中的脉冲Zi信号532。在一个实施例中,n沟道金属氧化物半导体场效应晶体管(MOSFET)或NFET用于实施SAC信号逻辑电路500。从脉冲锁存接口304产生的脉冲地址信号Api、!Api、Bpi和!Bpi被Pi电路500、!Pi电路510、Gi电路520和Zi电路530用作输入。Pi电路500代表用于实施等式1的一个实施例。!Pi电路510代表用于实施等式1的逻辑补体的一个实施例。Gi电路520代表用于实施等式2的一个实施例。Zi电路530代表用于实施等式3的一个实施例。Pi电路500、!Pi电路510、Gi电路520和Zi电路530还分别使用保持器电路504、514、524和534。保持器电路504、514、524和534在未被有效驱动时“阻止”相应的输出信号浮动。时钟电路505、515、525和535以预充电和评估状态操作,其中预充电状态是在对于查找比较操作适当的时序的情况下在从脉冲锁存接口304产生的脉冲地址信号Api、!Api、Bpi和!Bpi的激活之前。
图5E说明示范性单一存储器单元550。通过一对交叉耦合的反相器552来代表存储器单元550,其中缓冲器反相器554产生存储器信号Mi555,且缓冲器反相器556产生经反相的存储器信号!Mi557。当将写入新标签值时,将新标签T'值提供到例如第i数据输入(Di)564和(!Di)565等存储器单元。在写入信号568(例如,图4的写入行[j]信号414)的控制下将新标签T'值写入到存储器单元。
图6A说明具有取决于存储器单元输入值的Si和!Si信号的S信号电路600。基于存储器单元信号Mi604和下一最低有效位邻近存储器单元信号Mi-1605,由异或门603根据等式14而产生Si信号602。由反相器607产生!Si信号606。
图6B说明用于与图4的存储器单元一起使用的新SAC电路610。新SAC电路610包括第一小项电路616、第二小项电路622、时钟电路628,和保持器电路630。在一个实施例中,NFET用于实施新SAC小项电路616和622。第一小项电路616根据以上最终小项表的经组合小项等式而操作。举例来说,Gi-1、!Mi电路618根据小项!Pi&Gi-1&!Mi而操作。而且,Pi-1、Si电路619根据小项!Pi&Pi-1&Si而操作。另外,Zi-1、Mi电路620根据小项!Pi&Zi-1&Mi而操作。第二小项电路622根据以上最终小项表的经组合小项等式而操作。举例来说,Gi-1、Mi电路624根据小项Pi&Gi-1&Mi而操作。而且,Pi-1、!Si电路625根据小项Pi&Pi-1&!Si而操作。此外,Zi-1、!Mi电路626根据小项Pi&Zi-1&!Mi而操作。时钟电路628根据电路的动态性质而操作,且其中根据由对应的小项操纵的“第i”和“第i-1”信号,用图5A中的脉冲Pi信号502、图5B中的脉冲!Pi信号512、图5C中的脉冲Gi信号522和图5D中的脉冲Zi信号532对评估相位进行计时。保持器电路630在未被有效驱动时“阻止”相应的Hi[j]信号632浮动。在动态结构中,新SAC电路610有利地实施于如图6B中所示的三个深NFET装置堆叠中,进而减少确定误比较的等待时间。
图6C说明用于与图4的最低有效位(LSB)存储器单元40412一起使用的末尾SAC电路650。末尾SAC电路650包括第一LSB小项电路656、第二LSB小项电路662、时钟电路668,和保持器电路670。在一个实施例中,NFET用于实施末尾SAC小项电路656和662。第一LSB小项电路656根据以上最终LSB小项表的经组合小项等式而操作。举例来说,!P12、!M12电路658根据小项Cin&!P12&!M12而操作。而且,P12、M12电路659根据小项Cin&P12&M12而操作。第二LSB小项电路662根据以上最终小项表的经组合小项等式而操作。举例来说,P12、!M12电路664根据小项!Cin&P12&!M12而操作。而且,!P12、M12电路665根据小项!Cin&!P12&M12而操作。时钟电路668根据电路的动态性质而操作,其中根据由对应的小项操纵的“第12”信号,用图5A中的脉冲Pi信号502、图5B中的脉冲!Pi信号512对评估相位进行计时。保持器电路670在未被有效驱动时“阻止”相应的H12[j]信号672浮动。在动态结构中,末尾SAC电路650有利地实施于如图6C中所示的三个深NFET装置堆叠中,进而减少确定误比较的等待时间。
图7说明用以通过将A+B=K功能分离为取决于存储器单元位的第一组逻辑功能和取决于地址输入信号的第二组逻辑功能而产生具有低等待时间的A+B=K功能的比较过程700。此过程700可合适地用于在处理器系统中使用,例如图2的处理器系统200。在方框702处,将地址信号供应到TLB以针对虚拟地址到物理地址的翻译而检查TLB。在方框704处,使用在存储器标签写入操作期间所产生的S和!S信号,在对于查找比较操作适当的时序下,将虚拟地址计算与比较操作组合为一个A+B=K功能以检查TAG存储器与SAC阵列中的标签。在决策方框706处,确定是否存在标签匹配。如果未检测到标签匹配,则比较过程700可前进到方框708。在方框708处,将新标签写入到TAG存储器与SAC阵列中。在方框710处,基于存储器单元Mi和Mi-1来确定Si和!Si信号。在方框712处,在TLB中的未命中之后,过程700继续操作。返回到决策方框706,如果检测到标签匹配,则比较过程700前进到方框714。在方框714处,从TLB读出经翻译的物理地址。在方框716处,在TLB中的命中之后,过程700继续操作。
以上描述和图中所描述的A+B=K过程已经模拟和检验以用于正确操作。还已使用电路模拟技术来检验图6B和6C中所示的三个深NFET堆叠在系统时序问题方面提供改善。
应注意,与查找读取比较操作相比,标签写入操作在TLB操作中不常发生。举例来说,在大量模拟中,每四个标签写入操作发生1,300个以上查找比较操作。因此,部分归因于可能仅在标签写入操作之后切换的Si和!Si电路,用于目前描述的TLB的切换功率较低。
结合本文中所揭示的实施例而描述的各种说明性逻辑块、模块、电路、元件或组件可与通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)一起使用,且可使用现场可编程门阵列(FPGA)或其它可编程逻辑组件、离散门或晶体管逻辑、离散硬件组件,或其经设计以执行本文所描述的功能的任何组合来实施。处理器可以是通用微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。还可将处理器实施为计算组件的组合,例如DSP与通用微处理器的组合、多个微处理器、一个或一个以上微处理器与DSP核心的联合,或适合于所要应用的任何其它此类配置。
结合本文中所揭示的实施例而描述的方法可直接以硬件体现、且受到由处理器执行的一个或一个以上软件模块支持,或以上两者的组合。软件模块可驻存在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可装卸盘、CD-ROM或此项技术中已知的任何其它形式的存储媒体中。存储媒体可耦合到处理器,使得处理器可从存储媒体读取信息和将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。
虽然在用于处理器系统中的说明性实施例的上下文中揭示了本发明,但将认识到,所属领域的技术人员可使用与以上论述和所附权利要求书一致的广泛多种实施方案。举例来说,固定功能实施方案也可利用本发明的各种实施例。
Claims (20)
1.一种用于总和地址比较操作的方法,其中所述总和地址比较操作表示为A+B=K,A和B被供应地址输入信号,且K是存储于多个存储器单元中的先前值,所述方法包括:
在所述多个存储器单元中的每一存储器单元中,响应于更新所述存储器单元而产生单一逻辑门电路输出及其反相,其中每一单一逻辑门电路具有相关联的存储器单元输出作为第一输入且具有下一最低有效位邻近存储器单元输出作为第二输入;以及
在所述存储器单元中的每一者中,在部分查找比较电路中产生所述A+B=K操作的与每一存储器单元相关联的一部分,其中在读取查找比较操作期间,将对应的地址输入信号A和B与所述相关联的存储器单元输出和所产生的所述单一逻辑门电路输出及其反相进行组合。
2.根据权利要求1所述的方法,其中在三个深晶体管堆叠中产生所述A+B=K操作的与每一存储器单元相关联的所述部分。
3.根据权利要求2所述的方法,其中所述晶体管是N沟道金属氧化物半导体场效应晶体管NMOSFET。
4.根据权利要求1所述的方法,其中将所述总和地址比较操作用于内容可寻址存储器CAM中。
5.根据权利要求4所述的方法,其中将所述CAM用于翻译旁视缓冲器TLB中。
6.根据权利要求1所述的方法,其中所述单一逻辑门电路包括:
异或电路,其具有Mi和Mi-1作为输入且产生输出信号Si=(!Mi&!Mi-1)|(Mi&Mi-1),其中Mi为第i存储器单元,Mi-1为第i-1存储器单元。
7.根据权利要求1所述的方法,其进一步包括:
在A+B等于所存储的K值中的一者后即刻在每一存储器单元中产生命中指示。
8.根据权利要求1所述的方法,其进一步包括:
在A+B不等于所存储的K值中的一者后即刻将A+B写入到内容可寻址存储器中的标签阵列。
9.根据权利要求1所述的方法,其中所述在所述存储器单元中的每一者中产生所述A+B=K操作的一部分包括:
在第一小项电路中计算A+B=K的第一部分,以在确定A+B不等于K后即刻产生未命中指示;以及
在第二小项电路中计算A+B=K的第二部分,以在确定A+B不等于K后即刻产生未命中指示,
其中所述第一小项电路和所述第二小项电路根据最终小项表的经组合小项等式而操作。
10.根据权利要求9所述的方法,其中所述第一小项电路的结果与所述第二小项的结果进行逻辑“或”构成全A+B=K操作。
11.一种用于总和地址比较操作的设备,其中所述总和地址比较操作表示为A+B=K,A和B被供应地址输入信号,且K是存储于存储器单元中的先前值,所述设备包括:
包含于每一存储器单元中的单一逻辑门电路,所述单一逻辑门电路具有相关联的存储器单元输出作为第一输入且具有下一最低有效位邻近存储器单元输出作为第二输入,且响应于更新所述存储器单元而产生输出信号S及其逻辑非信号!S;以及
总和地址比较电路,其在所述存储器单元中的每一者中产生所述A+B=K操作的与每一存储器单元相关联的一部分以用于查找比较操作,在所述查找比较操作期间,使得对应的地址输入信号A和B能够与所述相关联的存储器单元输出以及所述S信号和所述!S信号进行组合。
12.根据权利要求11所述的设备,其进一步包括:
Pi电路,其产生输出信号Pi=(Ai&!Bi)|(!Ai&Bi),其中Ai和Bi为输入位;
!Pi电路,其产生所述Pi输出信号的逻辑非;
Gi电路,其产生输出信号Gi=Ai&!Bi;以及
Zi电路,其产生输出信号Zi=!Ai&!Bi,其中&是逻辑“与”功能,|是逻辑“或”功能,且!是逻辑“非”功能。
13.根据权利要求12所述的设备,其进一步包括:
第一小项电路,其根据!Pi&[(Gi-1&!Mi)|(Pi-1&Si)|(Zi-1&Mi)]而操作,所述第一小项电路在确定A+B不等于K后即刻指示误比较,其中所述第一小项电路根据最终小项表的经组合小项等式而操作。
14.根据权利要求12所述的设备,其进一步包括:
第二小项电路,其根据Pi&[(Gi-1&Mi)|(Pi-1&!Si)|(Zi-1&!Mi)]而操作,所述第二小项电路在确定A+B不等于K后即刻指示误比较,其中所述第二小项电路根据最终小项表的经组合小项等式而操作。
15.根据权利要求12所述的设备,其进一步包括:
第一最低有效位LSB小项电路,其根据Cin&[(!PLSB&!MLSB)|(PLSB&MLSB)]而操作,所述第一最低有效位LSB小项电路在确定A+B不等于K后即刻指示误比较,其中所述第一最低有效位LSB小项电路根据最终LSB小项表的经组合小项等式而操作。
16.根据权利要求12所述的设备,其进一步包括:
第二最低有效位LSB小项电路,其根据!Cin&[(PLSB&!MLSB)|(!PLSB&MLSB)]而操作,所述第二最低有效位LSB小项电路在确定A+B不等于K后即刻指示误比较,其中所述第二最低有效位LSB小项电路根据最终小项表的经组合小项等式而操作。
17.一种用于总和地址比较操作的方法,其中所述总和地址比较操作表示为A+B=K,A和B被供应地址输入信号,且K是存储于多个存储器单元中的先前值,所述方法包括:
将两个邻近的存储器位Mi、Mi-1进行组合以产生作为存储器位Mi、Mi-1的异或的输出信号Si及其逻辑非信号!Si;以及
将两个邻近输入位Ai、Ai-1和Bi、Bi-1与存储器位Mi和!Mi以及输出Si和!Si进行组合以用于查找比较操作,以检测误比较,其中!是逻辑非功能。
18.根据权利要求17所述的方法,其进一步包括:
产生输出信号Pi=(Ai&!Bi)|(!Ai&Bi);
产生所述Pi输出信号的逻辑非;
产生输出信号Gi=Ai&Bi;以及
产生输出信号Zi=!Ai&!Bi,其中&是逻辑“与”功能,|是逻辑“或”功能,且!是逻辑“非”功能。
19.根据权利要求18所述的方法,其进一步包括:
根据!Pi&[(Gi-1&!Mi)|(Pi-1&Si)|(Zi-1&Mi)]而操作第一小项电路,所述第一小项电路在确定A+B不等于K后即刻指示误比较,其中所述第一小项电路根据最终小项表的经组合小项等式而操作。
20.根据权利要求18所述的方法,其进一步包括:
根据Pi&[(Gi-1&Mi)|(Pi-1&!Si)|(Zi-1&!Mi)]而操作第二小项电路,所述第二小项电路在确定A+B不等于K后即刻指示误比较,其中所述第二小项电路根据最终小项表的经组合小项等式而操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/727,623 US8369120B2 (en) | 2010-03-19 | 2010-03-19 | Methods and apparatus for sum of address compare write recode and compare reduction |
US12/727,623 | 2010-03-19 | ||
PCT/US2011/029052 WO2011116322A1 (en) | 2010-03-19 | 2011-03-18 | Methods and apparatus for sum of address compare in a content-addressable memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102792263A CN102792263A (zh) | 2012-11-21 |
CN102792263B true CN102792263B (zh) | 2016-06-01 |
Family
ID=44263175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180013881.5A Expired - Fee Related CN102792263B (zh) | 2010-03-19 | 2011-03-18 | 用于内容可寻址存储器中的地址总和比较的方法和设备 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8369120B2 (zh) |
EP (1) | EP2548111A1 (zh) |
JP (1) | JP5389280B2 (zh) |
KR (1) | KR101388168B1 (zh) |
CN (1) | CN102792263B (zh) |
WO (1) | WO2011116322A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9110778B2 (en) | 2012-11-08 | 2015-08-18 | International Business Machines Corporation | Address generation in an active memory device |
CN110580231B (zh) * | 2018-06-08 | 2022-03-25 | 龙芯中科技术股份有限公司 | 处理电路、缓冲器、存储器及处理器 |
CN110428359B (zh) * | 2019-08-09 | 2022-12-06 | 南京地平线机器人技术有限公司 | 用于处理感兴趣区域数据的装置和方法 |
US11200029B2 (en) * | 2020-04-16 | 2021-12-14 | Flashsilicon Incorporation | Extendable multiple-digit base-2n in-memory adder device |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6161164A (en) * | 1996-09-16 | 2000-12-12 | International Business Machines Corp. | Content addressable memory accessed by the sum of two operands |
CN1469392A (zh) * | 2002-06-28 | 2004-01-21 | ���ǵ�����ʽ���� | 三元内容可寻址存储器件 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6088763A (en) | 1998-03-16 | 2000-07-11 | International Business Machines Corporation | Method and apparatus for translating an effective address to a real address within a cache memory |
US6505270B1 (en) * | 1999-07-02 | 2003-01-07 | Lara Technology, Inc. | Content addressable memory having longest prefix matching function |
JP2001034537A (ja) * | 1999-07-23 | 2001-02-09 | Toshiba Corp | アドレス変換回路 |
US6373279B1 (en) * | 2000-05-05 | 2002-04-16 | Xilinx, Inc. | FPGA lookup table with dual ended writes for ram and shift register modes |
JP4033609B2 (ja) * | 2000-07-04 | 2008-01-16 | 株式会社ルネサステクノロジ | 半導体集積回路装置及びそれを用いた情報処理装置 |
US6384634B1 (en) * | 2001-02-21 | 2002-05-07 | Nortel Networks Limited | Elastic store: recovery and boundary verification |
US7035127B1 (en) * | 2004-10-21 | 2006-04-25 | International Business Machines Corporation | Method and sum addressed cell encoder for enhanced compare and search timing for CAM compare |
-
2010
- 2010-03-19 US US12/727,623 patent/US8369120B2/en active Active
-
2011
- 2011-03-18 CN CN201180013881.5A patent/CN102792263B/zh not_active Expired - Fee Related
- 2011-03-18 EP EP11711224A patent/EP2548111A1/en not_active Withdrawn
- 2011-03-18 WO PCT/US2011/029052 patent/WO2011116322A1/en active Application Filing
- 2011-03-18 KR KR1020127027012A patent/KR101388168B1/ko not_active IP Right Cessation
- 2011-03-18 JP JP2012557311A patent/JP5389280B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6161164A (en) * | 1996-09-16 | 2000-12-12 | International Business Machines Corp. | Content addressable memory accessed by the sum of two operands |
CN1469392A (zh) * | 2002-06-28 | 2004-01-21 | ���ǵ�����ʽ���� | 三元内容可寻址存储器件 |
Also Published As
Publication number | Publication date |
---|---|
WO2011116322A1 (en) | 2011-09-22 |
JP2013522807A (ja) | 2013-06-13 |
CN102792263A (zh) | 2012-11-21 |
KR20130005292A (ko) | 2013-01-15 |
US20110228580A1 (en) | 2011-09-22 |
US8369120B2 (en) | 2013-02-05 |
KR101388168B1 (ko) | 2014-04-22 |
EP2548111A1 (en) | 2013-01-23 |
JP5389280B2 (ja) | 2014-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI699651B (zh) | 記憶體裝置及其操作方法 | |
US9384134B2 (en) | Persistent memory for processor main memory | |
US20040225840A1 (en) | Apparatus and method to provide multithreaded computer processing | |
CN102792263B (zh) | 用于内容可寻址存储器中的地址总和比较的方法和设备 | |
EP4020285A1 (en) | Simulation state to detect transient execution attack | |
US5295253A (en) | Cache memory utilizing a two-phase synchronization signal for controlling saturation conditions of the cache | |
US20040078544A1 (en) | Memory address remapping method | |
US20190095442A1 (en) | Techniques to enable early detection of search misses to accelerate hash look-ups | |
EP3519973B1 (en) | Area efficient architecture for multi way read on highly associative content addressable memory (cam) arrays | |
US7859937B2 (en) | Apparatus and method for controlling write access to a group of storage elements | |
US20230317145A1 (en) | Method and apparatus to implement an integrated circuit to operate based on data access characteristics | |
US20230315331A1 (en) | Method and apparatus to implement an integrated circuit including both dynamic random-access memory (dram) and static random-access memory (sram) | |
US20220091992A1 (en) | Device, system and method to provide line level tagging of data at a processor cache | |
US20220405209A1 (en) | Multi-stage cache tag with first stage tag size reduction | |
US11360766B2 (en) | System and method for processing large datasets | |
EP4254479A1 (en) | Apparatus and method to implement homomorphic encyption and computation with dram | |
Paul et al. | Off-Chip MAHA Using NAND Flash Technology |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160601 |