有没有一本适合这一切的书……可悲的是,我可以就所有这些事情进行肤浅的对话。我去了大学,在所有这些科目中都获得了 A,但我他妈的不明白堆栈或内存到底是什么样子的。
我不“明白”一个线程到底是什么。CPU 缓存线如何工作,以及它如何因读/写障碍而失效。TLB之类的东西。
任何一本书或一小部分可供阅读的书籍都会有帮助。
有没有一本适合这一切的书……可悲的是,我可以就所有这些事情进行肤浅的对话。我去了大学,在所有这些科目中都获得了 A,但我他妈的不明白堆栈或内存到底是什么样子的。
我不“明白”一个线程到底是什么。CPU 缓存线如何工作,以及它如何因读/写障碍而失效。TLB之类的东西。
任何一本书或一小部分可供阅读的书籍都会有帮助。
我假设您已阅读 Hennessy & Patterson 的“计算机体系结构”。但这可能无法回答您的问题。就个人而言,虽然我是计算机体系结构方面的专家,但我并不是从任何地方学到的。事实上,我从阅读 Ars Technica 和 Phoronix 关于过去十年左右出现的每一个新架构的文章中学到了很多东西。
至于它们真正的样子,你需要学习芯片设计。您需要探索两种观点。一种是类似于 CAD 的透视图,您可以在其中进行示意图捕获。您将逻辑块布局并连接在一起以形成数字电路。您制作的物理布局将大致对应于您在硬件中获得的布局。另一个角度是学习用像 Verilog 这样的硬件描述语言进行编码,尽管这相当抽象,并且需要对硬件有很多直觉才能将你正在编码的内容与它将如何变成硬件联系起来。
我在 Google 上搜索“静态 ram 结构”的图片,发现很多有趣的页面展示了记忆是如何工作的。例如,“http://www.iis.ee.ethz.ch/~kgf/aries/5.html”这里有一些不错的图片。您可以稍后进入动态 RAM。静态 RAM 是 6 个晶体管块的矩形阵列。请参阅“http://lwn.net/Articles/250967/”,特别是“http://lwn.net/images/cpumemory/cpumemory.7.png”。此外,“http://www.freepatentsonline.com/7095663-0-large.jpg”。其中四个晶体管形成两个背靠背反相器,保持一个位值。两个允许访问逆变器之间的信号线,允许您强制它们进入不同的状态。这些 6T 细胞排列成大的矩形阵列。要读取一行,解码器电路将地址转换为单个信号并断言该行的字线,该字线激活存取晶体管,将该行中的每个单元连接到其位线。每列的两条位线保持相反的值,由差分读出放大器解释,并且读出一行。要写入,您可以执行相同的操作,但将位线强制设置为正确的值。
堆栈只是以特定方式寻址的内存。即使在芯片中专门的堆栈结构中,它们也只是内存块,以及一个适当增加和减少地址的逻辑块。
缓存是另一种通用内存数组,与标签数组相关联,标签数组是一种特定类型的内容可寻址内存。TLB 是一种特殊的缓存。花一些时间谷歌搜索,你可以了解所有这些东西。您必须克服的障碍是知道要使用哪些搜索词。我很乐意为此提供帮助。
我喜欢这本书。现代处理器设计:超标量处理器的基础 http://books.google.com/books/about/Modern_processor_design.html?id=Nibfj2aXwLYC
我不确定它是否能回答你所有的问题,但试一试。你可以在网上找到幻灯片。只需将您的搜索限制在 .edu 网站上,您就可以轻松找到它的幻灯片。 http://ece552.ece.wisc.edu/#lecture http://ece752.ece.wisc.edu/
Hennessy & Patterson 的《计算机体系结构》也是一本好书。另外,在这种情况下不要忘记维基百科。我认为您可以通过查找维基百科轻松找到答案。