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. day18:正则表达式和re模块

    1,复习递归:返回值,不要只看到return就认为已经返回了,要看返回操作是在递归的第几层发生的,然后返回给了谁,如果不是返回给最外层函数,调用者就接收不到,需要再分析,看如何把结果返回回来,超过最大 ...

  2. The missing package manager for macOS (or Linux)

    The missing package manager for macOS (or Linux) — Homebrew https://brew.sh/

  3. vs防止编译不能连接生成pdb文件

    问题的原因:debug和release版本生成的目标文件名称(Target Name)都一样,所以导致链接失败:

  4. Selenium 2(Webdriver)

    如何用webdriver打开一个浏览器,我们常用的浏览器有firefox和IE两种,firefox是selenium支持得比较成熟的浏览器,很多新的特性都会在firefox中体现.但是做页面的测试,启 ...

  5. 高性能Nginx服务器-负载均衡

    Location正则表达式 location的作用 location指令的作用是根据用户请求的URI来执行不同的应用,也就是根据用户请求的网站URL进行匹配,匹配成功即进行相关的操作. locatio ...

  6. 为什么python中没有switch case语句

    终于知道了python中映射的设计哲学. 我自己写的code : class order_status_switcher(object): def get_order_status(self,argu ...

  7. Parco_Love_gcd

    传送门 出题人说正解为RMQ,鄙人实在太蒟蒻了,不会呀只能暴力…… #include <bits/stdc++.h> using namespace std; #define ll lon ...

  8. Java中try、finally语句中有return时的执行情况 [转]

    原文:http://kingj.iteye.com/blog/1436761 在Java中当try.finally语句中包含return语句时,执行情况到底是怎样的,finally中的代码是否执行,大 ...

  9. 3D印表機 零件採購資訊

    3D印表機 零件採購資訊 採購資訊僅供參考,零件的品質由店家擔保! 壓克力 螺絲螺帽牙條 高來螺絲 滑套.軸承 五連軸承 掏寶-廣發軸承 光軸 掏寶-廣發軸承 彈簧 雅銅彈簧 鐵氟龍製品 馬達 電源供 ...

  10. Hadoop -- 概念

    hadoop 一个开源的,稳定的,可扩展的,分布式的计算框架 实现单一的服务器到成千上万机器之间共同处理数据的一个可扩展性框架 Hadoop 项目主要包含以下四个模块 Hadoop Common:为其 ...