
CPU
AresDing
怪我咯。。。。
展开
-
ARM平台下独占访问指令LDREX和STREX的原理与使用详解(转载)
为了实现线程间同步,一般都要在执行关键代码段之前加互斥(Mutex)锁,且在执行完关键代码段之后解锁。为了实现所谓的互斥锁的概念,一般都需要所在平台提供支持。本文主要用来说明ARM平台上特有的独占访问指令LDREX和STREX的工作原理,以及如何使用。而它们也是ARM平台上,实现互斥锁等线程同步工具的基础。我们先来看看LDREX和STREX两条指令的语义。其实LDREX和STREX指令,是将单纯的更新内存的原子操作分成了两个独立的步骤。1)LDREX用来读取内存中的值,并标记对该段内存的独占访问转载 2020-05-25 15:29:52 · 1301 阅读 · 0 评论 -
缓存一致性协议(MESI协议)研究
int m_g_i = 0; // 定义全局变量 供多个线程操作void Thread_Proc_0(void* arg){ m_g_i = m_g_i + 1; // 线程0 对m_g_i进行+1操作 return ;}void Thread_Proc_1(void* arg){ m_g_i = m_g_i + 1; ...原创 2019-01-27 11:43:02 · 310 阅读 · 0 评论 -
程序优化
CPU在寻址方面的能力要比其计算能力强上好几倍.或者说让CPU做他们能明确知道结果的事情,效果更好, 对于人也是一样;原创 2019-01-27 13:31:58 · 224 阅读 · 1 评论 -
从cpu和内存来理解为什么数组比链表查询快
// 该文章转载自:https://blog.youkuaiyun.com/islandww/article/details/72511737一个常见的编程问题: 遍历同样大小的数组和链表, 哪个比较快? 如果按照大学教科书上的算法分析方法,你会得出结论,这2者一样快, 因为时间复杂度都是 O(n)。 但是在实践中, 这2者却有极大的差异。 通过下面的分析你会发现, 其实数组比链表要快很多。首先介绍一个概...转载 2018-06-21 22:23:42 · 252 阅读 · 0 评论