CAM是一种特殊的存储器。所谓CAM,即内容寻址存储器。CAM存储器在其每个存储单元都包含了一个内嵌的比较逻辑,写入CAM的数据会和其内部存储的每一个数据进行比较,并返回与端口数据相同的所有内部数据的地址。概括地讲,RAM是一个根据地址读、写数据的存储单元,而CAM和RAM恰恰相反,它返回的是与端口数据内容相匹配的地址。CAM的应用也比较广泛,比如在路由器中的地址交换表,CPU的Cache控制器(Tag阵列)等。

CAM工作原理:

一次典型的CAM查找操作过程为:首先,CAM接收外部的查找命令并把查找数据存储到比较寄存器中,比较寄存器和掩码寄存器的内容来共同组成系统的一个查找字(search word),这些查找字广播到每一组相关联字中,每一组相关联字都有一个匹配链(matchline),匹配链指示查找字与存储字是否一致(匹配或不匹配),匹配链把结果反馈到优先译码器中,优先译码器产生一个二进制的匹配位置定位和一个匹配命中信号。
由于在CAM存储器中可能存在多个字的同时匹配,因而使用了一个优先译码器而不是简单的译码器。当有多个字同时匹配时,优先译码器选择最高优先权的匹配地址映射到匹配结果,在CAM中低地址字具有高优先权。

匹配炼工作原理:

Ø  The search-data word is loaded into the search-data register.

Ø  All match-lines are pre-charged to high (temporary match state).

Ø  Search line drivers broadcast the search word onto the differential
search lines.

Ø  Each CAM core compares its stored bit against the bit on the
corresponding search-lines.

Ø  Match words that have at least one missing bit, discharge to
ground.

CAM在Cache控制其中的应用

CAM在Cache控制其中的应用

CPU对Cache的搜索叫做Tag
search,即通过Cache中的CAM(Content Addressed Memory)对希望得到的Tag数据进行搜索。CAM是一种存储芯器,延迟很低。

CPU与Cache之间交换数据是以字为单位的,而Cache与内存之间交换数据是以块为单位的,并且在Cache中,是以若干字组成的块为基本单位的。一般情况下,CPU需要某个数据的时候,它会把所需数据的地址通过地址总线发出,一份发到与内存中,一份发到与Cache匹配的相联存储器(CAM)中,CAM通过分析对比地址,来确定所要的数据是否在Cache中,如果在,则以字为单位把CPU所需要的数据传送给CPU,如果不在,则 CPU在内存中寻找到该数据,然后通过数据总线传送给CPU,并且把该数据所在的块传送到Cache中。

CAM使用一组比较器,以比较输入的标签地址和存储在每一个有效cache行中的cache-tag。访问地址的tag部分被作为CAM的输入,输入标签同时与所有cache标签相比较。如果有一个匹配,那么数据就由cache存储器提供;如果没有匹配,存储器控制器就会产生一个失效(miss)信号。

来源: http://blog.sina.com.cn/s/blog_541cfd6601010j7b.html

CAM(Content Addressable Memory)介绍的更多相关文章

  1. Android应用程序组件Content Provider简要介绍和学习计划

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6946067 在Android系统中,Conte ...

  2. Android 内容提供器(Content Provider)介绍

    内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访问数据的安全性.目前,使用内容 ...

  3. Redis数据库?-Redis的Virtual Memory介绍(转)

    众所周知,Redis是一个内存数据库,和Memcached类似,所有数据存在内存中,当然,Redis有rdb和appendonlyfile两个落地文件,可以对断电停机等故障下的数据恢复做一些保证.但是 ...

  4. Content Security Policy介绍

    Content Security Policy https://content-security-policy.com/ The new Content-Security-Policy HTTP re ...

  5. 理解FPGA中的RAM、ROM和CAM;ROM、RAM、DRAM、SRAM、FLASH

    目前大多数FPGA都有内嵌的块RAM(Block RAM),可以将其灵活地配置成单端口RAM(DPRAM,Single Port RAM).双端口RAM(DPRAM,Double Ports RAM) ...

  6. [ZZ] Cache

    http://blog.sina.com.cn/s/blog_6472c4cc0102duzr.html 处理器微架构访问Cache的方法与访问主存储器有类似之处.主存储器使用地址编码方式,微架构可以 ...

  7. 二层安全之MAC Flooding解析与解决方法

    一.了解MAC Flooding原理 1.1 如图所示,网络中有3个PC和一个交换机,在正常情况下,如果PC A向PC B发送信息,PC C是不会知道的,过程都通过中间的交换机进行透明的处理,并且会记 ...

  8. Cache基本原理之:结构

    转载自:https://www.jianshu.com/p/2b51b981fcaf Cache entries 数据在主存和缓存之间以固定大小的”块(block)”为单位传递,也就是每次从main ...

  9. exchangeNetwork

    泛洪(Flooding) 转发(Forwarding) 丢弃(Discarding) 交换机中有一个MAC地址表,里面存放了MAC地址与交换机的映射关系.MAC地址表也称为CAM(Content Ad ...

随机推荐

  1. C0气体传感器分析

    1.外观.价格 2.工作原理 MQ-7 CO气体传感器使用的敏感元件为气敏材料(SnO2),该传感器对一氧化碳的灵敏度高. SnO2在洁净空气中电导率低,传感器的电导率随着空气中CO气体浓度增加而增大 ...

  2. C++11 std::ref使用场景

    C++本身有引用(&),为什么C++11又引入了std::ref(或者std::cref)? 主要是考虑函数式编程(如std::bind)在使用时,是对参数直接拷贝,而不是引用.如下例子: # ...

  3. Linux服务器上搭建web项目环境

    一.下载并安装jdk 去官网下载linux系统上jdk的安装包jdk-8u181-linux-x64.tar.gz,在Linux的/usr目录下新建文件夹java,可以使用命令:cd /usr    ...

  4. (转)git 忽略规则

    对于经常使用Git的朋友来说,.gitignore配置一定不会陌生.废话不说多了,接下来就来说说这个.gitignore的使用. 首先要强调一点,这个文件的完整文件名就是".gitignor ...

  5. python基础(10)-匿名函数&内置函数

    匿名函数 例子 返回两个数的和 def add(x, y): return x + y # 等价于 add = lambda x, y: x + y 返回字典中值最大的key dic = {'a': ...

  6. [js]nodejs初探http/url/fs模块

    难怪我没学会, 因为我的套路有问题. 错误点, 1,大而全 2,不注重思路 学习要领: 1, 小而精 2, 重思路(总结) nodejs特点: 1.node提供了js的运行环境, 一般将node运行在 ...

  7. iscroll4升级到iscroll5全攻略笔记

    前段时间在搞移动终端(移动web)的项目,其中需要用到滚动的功能(html的滚动效果不好,且在低版本上不支持).后面上网找了下资料,发现大部分人都在用iscroll4(下面简称v4),下载下来试了下确 ...

  8. 笔记-ASP.NET WebApi

    本文是针对ASP.NET WepApi 2 的笔记. Web API 可返回的结果: 1.void 2.HttpResponseMessage 3.IHttpActionResult 4.其他类型 返 ...

  9. 2015 北京网络赛 E Border Length hihoCoder 1231 树状数组 (2015-11-05 09:30)

    #1231 : Border Length 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 Garlic-Counting Chicken is a special spe ...

  10. smtplib.SMTPDataError: (554, b'DT:SPM 163……)

    1.报错535: 未将POP3/SMTP服务开启.通过在163邮箱内 设置 获取授权码  打开,通过授权码可以进行第三方登录.此处的Password填写授权码. 2.报错554: 第一种情况:缺失发件 ...