近些年,我在阅读一些和处理器相关的论文与书籍,有很多些体会,留下了若干文字。其中还是有一片领域,我一直不愿意书写,这片领域是处理器系统中的Cache Memory。我最后决定能够写下一段文字,不仅是为了这片领域,是我们这些人在受历史车轮的牵引,走向一个未知领域,所产生的一些质朴的想法。

待到动笔,总被德薄而位尊,知小而谋大,力少而任重,鲜不及矣打断。多次反复后,我几乎丢失了书写的兴趣。几个朋友间或劝说,不如将读过的经典文章列出来,有兴趣的可以去翻阅,没有兴趣的即便是写成中文也于事无补。我没有采纳这些建议,很多事情可以很多人去做,有些事情必须是有些人做。

这段文字起始于上半年,准备的时间更加久远些,收集翻译先驱的工作后,加入少许理解后逐步成文。这些文字是留给自己的一片回忆。倘若有人从这片回忆中收益,是我意料之外的,我为这些意外为我的付出所欣慰。Cache Memory很难用几十页字完成哪怕是一个简单的Survey,我愿意去尝试却没有足够的能力。知其不可为而为之使得这篇文章有许多未知的结论,也缺乏必要的支撑数据。

在书写中,我不苛求近些年出现的话题,这些话题即便是提出者可能也只是抛砖引玉,最后的结果未知。很多内容需要经过较长时间的检验。即便是这些验证过的内容,我依然没有把握将其清晰地描述。这些不影响这段文字的完成。知识的积累是一个漫长的过程,是微小尘埃累积而得的汗牛充栋。再小的尘埃也不能轻易拂去。

这些想法鼓励我能够继续写下去。

熙和禺皓的加入使本篇提前完成。每次书写时我总会邀些人参与,之前出版的书籍也是如此,只是最后坚持下来只有自己。熙和禺皓的年纪并不大,却有着超越他们年纪的一颗坚持的心。与他们商讨问题时,总拿他们与多年前的自己对照,感叹着时代的进步。他们比当年的我强出很多。我希望看到这些。

个体是很难超越所处的时代,所以需要更多的人能够去做一些力所能及的,也许会对他人有益的事情。聚沙成塔后的合力如上善之水。因为这个原因,我们希望能有更多的人能够加入到Contributors List,完善这篇与Cache Memory相关的文章。

Cache Memory也被称为Cache,是存储器子系统的组成部分,存放着程序经常使用的指令和数据,这只是Cache的传统定义。从广义的角度上看,Cache是缓解访问延时的Buffer,这些Buffer无处不在,只要存在着访问延时的系统,这些广义Cache就可以在掩盖访问延时的同时,尽可能地提高数据带宽。

在处理器系统设计中,广义Cache的身影随处可见。在一个系统设计中,快和慢是一个相对概念。与微架构(Microarchitecture)中的L1/L2/L3 Cache相比,DDR是一个慢速设备,在磁盘I/O系统中却是快速设备。在磁盘I/O系统中,仍在使用DDR内存作为磁介质的Cache。在一个微架构中,除了有L1/L2/L3 Cache之外,用于虚实地址转换的各级TLB,在指令流水线中的ROBRegister FileBTBReservation Station也是一种Cache。我们准备书写的Cache,是狭义Cache,是大家所熟悉的,围绕着处理器流水线和主存储器的L1/L2/L3 Cache。这些Cache组成的层次结构,是微架构的设计核心。

广义Cache的设计可以在狭义的实现中获得帮助,却不是书中重点。在网络与存储这两个热点话题中,算法层面之外的重中之重是广义Cache的管理问题。与云相关的各类概念中,亟需解决的事情依然是算法与广义Cache管理。算法层面的实现需要考虑广义Cache的管理策略,反之亦然。广义Cache与狭义Cache系统没有质的区别。这些Cache系统都是由数据缓冲,连接缓冲的数据通路和控制逻辑这三个部分组成。

从算法角度上看,广义Cache的设计与实现比狭义Cache相比也许略微复杂一些;用实现的角度上看,狭义Cache的设计复杂度远远超过大多数广义Cache。读者也许终其一生没有机会去体验狭义Cache系统的设计,依然可以从这些设计思想中受益。这些思想,可以应用于复杂的处理器系统中,可以解决一些细致入微的性能问题。系统开发者在不断思考探索的过程中,在挑战极限的奋斗中,在身旁最后一把利器寸寸折断后,杀虎屠龙。

我未曾想过书写一篇学术意义上完美的文章。我更愿意用工程师的语言完成写作,这并不阻碍本篇内容的有理可依。所有这些想法使我不堪重负,在整个处理器系统的设计中,几乎没有什么部件比Cache Memory系统更为复杂。

本篇书写的Cache系统以AlphaPowerUltraSPARCx86处理器为主线,这四个处理器目前属于Tier 1。虽然Alpha处理器已退出历史舞台,但是并不影响其Tier 1的地位。我不会刻意去书写目前较为流行的嵌入式处理器,because yesterday’s high-performance technologies are today’s embedded technologies, but yesterday’s embedded-systems issues are today’s high-performance issues.

Tier 1处理器中,本篇偏重于Intelx86处理器实现,不管有多少资料引证PowerUltraSPARC处理器的诸多优点,x86处理器依然是使用最为广阔,影响最为深远的处理器。单纯从结构上看,Intelx86,即便是最新的Sandy Bridge EP处理器,也远未到达学术界意义上的完美。但是在Cache Memory层面,Intel的领先是事实。

我最初曾试使用英文书写这些文字,我已经记不清楚最后一次抱着学习的目的去读中文技术类书籍是曾几何时,中文科技类书籍不能如此发展下去。我远没有书写英文小说的能力,依然有使用英文写科普文章的胆子,不用翻译的书写更加惬意。最终放弃了这个选择,因为英文世界里有这样的文章,因为Cache Memory之外的内容,因为中文世界需要有人去贡献一些勇气与智慧。

待到完成,总留有遗憾。我习得从这些遗憾中偷得间隙,留一片空间给自己。书不尽言,言不尽意总是无可奈何。这些文字很难给予我任何成就感,细看先驱的诸多著作后,留下的是何足道后的反思。我安于反思后的平静。

在阅读这些文字前,希望您能够仔细阅读JohnDavid书写的“A Quantitative Approach”。我常备这本书,看了许多遍,字里行间内外的一些细节仍然不慎明了,写作时重温此书有了新的收获,借此重新审读了下列文字。

这篇文章最初的版本是0.01,书名叫浅谈Cache Memory

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值