《深入浅出计算机组成原理》笔记五

内存映射


内存被分成固定大小的页,需要通过虚拟内存地址到物理内存地址的地址转换,才能到达实际存放数据的物理内存位置,程序看到的内存地址,都是虚拟内存地址。

多级页表

一个进程会有一个 4 级页表。通过 4 级页表索引,找到 4 级页表里面对应的条目。这个条目里存放的是一张 3 级页表所在的位置。4 级页面里面的每一个条目,都对应着一张 3 级页表,找到对应这张 3 级页表之后,用 3 级索引去找到对应的 3 级索引的条目。3 级索引的条目再会指向一个 2 级页表。同样的,2 级页表里可以用 2 级索引指向一个 1 级页表。而最后一层的 1 级页表里面的条目,对应的数据内容就是物理页号。在拿到了物理页号之后,可以用“页号 + 偏移量”的方式,来获取最终的物理内存地址。

TLB(地址变换高速缓冲)

TLB中存放了之前已经进行过地址转换的查询结果。当同样的虚拟地址需要进行地址转换的时候,可以直接在 TLB 里面查询结果,而不需要多次访问内存来完成一次转换。

机械硬盘

SSD 硬盘


缺点:耐用性机械硬盘要远强于 SSD。

DMA

DMA 技术就是在主板上放一块独立的芯片。在进行内存和 I/O 设备的数据传输的时候,不再通过 CPU 来控制数据传输,而直接通过 DMA 控制器。比如说,用千兆网卡或者硬盘传输大量数据的时候,如果都用 CPU 来搬运的话,肯定忙不过来,所以可以选择 DMAC。而当数据传输很慢的时候,DMAC 可以等数据到齐了,再发送信号,给到 CPU 去处理,而不是让 CPU 在那里等待。

零拷贝

通过 DMA,从硬盘直接读到操作系统内核的读缓冲区里面。根据 Socket 的描述符信息,直接从读缓冲区里面,写入到网卡的缓冲区里面。不需要cpu将数据从硬盘上,读到操作系统内核的缓冲区,在复制到内存中。

你可能感兴趣的:(《深入浅出计算机组成原理》笔记五)