RUNONMIPS 发表于 2010-01-19 17:00

在mips cpu中,有一条指令是控制cache操作的,但那是特权指令。软件一般都是用一些算法来模拟cache机制而已

怪怪虎 发表于 2010-01-19 20:41

回复 #5 snail_314 的帖子

我认为cpu中的cache是根据LRU算法实现的一种硬件. 即它是硬件,但是按照LRU算法实现的

怪怪虎 发表于 2010-01-19 20:46

回复 #9 cjaizss 的帖子

一个慢速设备,一个快速设备,那么就可能可以设计一个算法
>>>这种情况是buffer机制吧,^_^

怪怪虎 发表于 2010-01-19 20:49

接着此帖在问下MMU是用硬件实现的吗?

xyfree 发表于 2010-01-20 11:28

原帖由 怪怪虎 于 2010-1-19 20:46 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
一个慢速设备,一个快速设备,那么就可能可以设计一个算法
>>>这种情况是buffer机制吧,^_^

Cache 的意思是“高速缓存”,除了存放数据,还有一套数据查找机制,也就是查找算法,譬如LRU。

Buffer 的意思是“缓冲”,仅仅是把慢速设备的资料一次大量读入,在读入期间需要数据的高速部件可以做其他事情。不包含查找算法。

beepbug 发表于 2010-01-20 18:09

有软件实现的CPU,有实用价值。

yumanifold 发表于 2010-01-20 18:37

hash

memcache

只是lz没说清楚是哪种cache。。。。

怪怪虎 发表于 2010-01-20 20:44

回复 #17 yumanifold 的帖子

我想问的是常说的cpu中的L1 cache.

怪怪虎 发表于 2010-01-20 22:39

刚刚看了下接口的书,对自己的这个疑问的一点小总结^_^
首先cache(cpu中的L1 cache)肯定是有一个实实在在的硬件芯片.但是这个芯片在生产出来时,已经被interl 或者AMD 做了一些工作,即已经实现了LRU算法, 这个地方厂商一定是用自己的语言(代码逻辑)完成了这个过程. 对于安腾结构的cpu,这部分叫做系统固件,并被映射到fffffff~ff000000之间.看了书上对这部分共享的代码,大部分是对寄存器的操作. 这部分是不是也可以认为是驱动程序啊? 值得注意的是操作系统基本上不会设计这部分的code,只会调用固件程序提供的服务.
{感觉类似先用VHDL语言实现某个功能,然后根据这个功能生产芯片电路,在为这个芯片写一个固件程序}

所以MMU和L1 cache都有自己的固件程序,以MMU为例,给一个虚拟地址,它(MMU芯片)会自己转换成物理地址,在这个转化的过程中没有操作系统的参与. 如果需要的话,可以通过某个寄存器来改变这些芯片的行为.前提是看人家芯片愿不愿意暴露这个寄存器.

看完书后的理解. 不对之处请大家指教.

cjaizss 发表于 2010-01-21 00:00

原帖由 怪怪虎 于 2010-1-20 20:44 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
我想问的是常说的cpu中的L1 cache.
这些是硬件基础里提供的,没有这些,软件跑个啥?软件的功能只是使得系统更加灵活,可是它并不是硬件,软件再强也没法闭门造车.
我的感觉是,你可能还未完全明白CPU里的cache是个什么东西.

[ 本帖最后由 cjaizss 于 2010-1-21 00:05 编辑 ]
页: 1 [2] 3
查看完整版本: 有没有软件实现的cache