小编Pau*_*ton的帖子

内存段和物理RAM

进程的内存映射似乎被分段为段(堆栈,堆,bss,数据和文本),

  • 我想知道这些段只是为了方便过程的抽象而物理RAM只是一个线性的地址数组,还是物理RAM也分成了这些段?
  • 此外,如果RAM没有碎片并且只是一个线性阵列,那么操作系统如何为这些过程提供这些段的抽象?
  • 如果进程的内存映射只是一个线性数组而不是分成段(MMU将虚拟地址转换为物理地址),那么编程会如何改变?

memory operating-system memory-management cpu-architecture

6
推荐指数
1
解决办法
1931
查看次数

相关负载在CPU中重新排序

我一直在阅读内存障碍:软件黑客的硬件视图,这是Paul E. McKenney的一篇非常受欢迎的文章.

本文强调的一点是,像Alpha这样非常微弱有序的处理器可以重新排序依赖负载,这似乎是分区缓存的副作用

论文摘录:

1 struct el *insert(long key, long data)
2 {
3     struct el *p;
4     p = kmalloc(sizeof(*p), GPF_ATOMIC);
5     spin_lock(&mutex);
6     p->next = head.next;
7     p->key = key;
8     p->data = data; 
9     smp_wmb();
10    head.next = p;
11    spin_unlock(&mutex);
12 }
13
14 struct el *search(long key)
15 {
16     struct el *p;
17     p = head.next;
18     while (p != &head) {
19         /* BUG ON ALPHA!!! */
20         if (p->key …
Run Code Online (Sandbox Code Playgroud)

synchronization locking cpu-architecture lock-free memory-barriers

6
推荐指数
1
解决办法
909
查看次数

MIPS流水线时序图

我想确认以下时序图是否适用于MIPS 5阶段管道(*=停顿):

               |  1 |  2 |  3 |  4 |  5 |  6 |  7 |  8 |  9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
LW R1, 0(R4)   | IF | ID | EX |  M |  W |    |    |    |    |    |    |    |    |    |    |    |
LW R2, 400(R4) |    | IF | ID | EX |  M |  W |    |    |    |    |    | …
Run Code Online (Sandbox Code Playgroud)

pipeline mips computer-architecture

3
推荐指数
1
解决办法
3801
查看次数