在英特尔处理器上,每个内核都有自己的L1和L2缓存。这在ARM双核处理器上是真的吗?如果是这样,我是否可以依赖两个内核之间的缓存一致性,这样在内核0上运行的线程将始终在其缓存中看到与内核1在其缓存中看到的相同的数据?
发布于 2012-01-11 10:28:56
是的,从Cortex-A9系列开始的ARM处理器通过硬件侦听提供高速缓存一致性。
作为一个开发人员,做多核要容易得多:)。
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0407e/CDDEHDDG.html
发布于 2012-01-11 10:38:15
你是说ARMv7吗?我不认为有ARM7双核,你可以在一个芯片上放两个,但它们是独立的(它们没有缓存,所以你必须实现自己的缓存)。
这是ARM的故事,除了英特尔是芯片业务,arm是IP业务,他们不制造芯片,这与英特尔没有什么不同。
开始在http://infocenter.arm.com创建一个免费帐户的一些文档,特别是ARMv7,你将需要登录。
有两种类型的ARM文档。有ARM ARM的ARM架构参考手册。以前是一个涵盖所有内核的大手册,现在它被分成几个核心系列,涵盖了一系列核心的总体相似性、指令集等。既然你问的是双核/多核,你可能会说的是Cortex-A ARMv7-A (不是ARMv7-M,它们是单核微控制器)。或者你可能指的是ARMv6核心,比如mpcore,它有一个到四个核心的变体。在infocenter站点左侧的contents下,您可以选择arm架构,然后首先选择参考手册。这就像是手臂医生的全科医生,家庭医生,而不是任何领域的专家,只是对一切都有所了解。
第二种类型的arm文档是TRM,技术参考手册,这是专家、脑外科医生或足科医生等。您可以找到芯片供应商正在使用的特定核心(根据芯片和供应商的不同,可以是简单的也可以是困难的),它将描述核心的边缘是什么样子,它将描述缓存在哪里,谁共享它们以及如何共享它们。请注意,L1高速缓存和内存管理单元通常在内核的TRM中,L2高速缓存是额外的成本项目,不一定由芯片供应商购买。L1缓存,或mmu,不一定位于amba,axi总线上,l2是amba/axi输入,amba/axi输出填充,修改或消费事务,当它们经过时,您仍然必须将您的内存系统放在amba/axi的外层上。
简短的答案是,您需要更具体地说明您正在谈论的是哪个arm核心,然后一旦您知道了这一点,就可以找到该核心的TRM,它将包含您问题的答案。
https://stackoverflow.com/questions/8813360
复制相似问题