内存寻址的bwin必赢官网登录具体设计
发布时间:2023-12-16
 本文的目的不是介绍内存寻址的具体设计,其实很多细节我也不了解,而是想通过内存寻址的设计思想看看对  内存分页即将内存分割为以页(一般是4KB)为单元的块,然后内存的分配和使用都是以页为最小单元。假如一个进程只需要 2KB 的内存,仍然给其分配 4KB(一页)的空间。  关于内存分页的好处,我觉得知乎上一位知友的描述非常生动和形象。他将内存分页比喻为停车场划分停车位。停车位的划分使得停车人寻找停

  本文的目的不是介绍内存寻址的具体设计,其实很多细节我也不了解,而是想通过内存寻址的设计思想看看对

  内存分页即将内存分割为以页(一般是4KB)为单元的块,然后内存的分配和使用都是以页为最小单元。假如一个进程只需要 2KB 的内存,仍然给其分配 4KB(一页)的空间。

  关于内存分页的好处,我觉得知乎上一位知友的描述非常生动和形象。他将内存分页比喻为停车场划分停车位。停车位的划分使得停车人寻找停车位时变得简单,停车人不再需要自己判断位置空间是否够大能停下车,只需要看有没有空位即可。bwin必赢官网登录同时也使停车位的使用管理变得高效,停车场管理人员可以很容易判断并发布停车位的空位信息。当然,这可能只是内存分页的好处中的其中一个。

  那么当我们在 FPGA 设计中遇到这样类似的场景时,便可以借鉴内存分页的思想,将 memory 划分为不同的块,来提高 memory 的使用和管理效率。当然,对于 memory 块的划分可能导致 memory 的浪费,像前面举的例子,只需要 2KB 的内存,却分配了 4KB 的空间。如何正确的取舍,bwin必赢官网登录去做 tradeoff,这也是设计者需要考虑的。

  再往本质里看,这其实是硬件设计上的一个“规整”问题。就像CPU指令集的设计,因为不同指令对 bit 利用的规整,简化了CPU的设计。规整即简单。

  页表是用来将虚拟地址映射为物理地址的数据结构。对于 4KB 的页单元,需要 12-bit 来寻址。如果地址线-bit,那么我们需要 2^20 (32-12=20) 个页表,假如每个表项用 4 byte,那么页表总共要用到 4MB 的内存。这还只是一个进程用到的空间。

  页表分级减少了页表对内存的使用量。用过两级分页(第一级页目录+第二级页表),即先通过第一级页目录查找到页表,再通过第二级页表去查找页,只有当第一级的页目录项用到时才去分配第二级的页表。举个例子,假如页目录和页表分别占用10-bit。页目录有2^10个项 (一共占用 4KB 内存),假如页目录只有第一项被用到,那么我们只需要分配其对应的页表,这个页表也是有2^10个项 (一共占用 4KB 内存),那么此时只用到了 4KB+4KB = 8KB 内存,相比于 4MB 节省了很大部分。

  遇到类似的场景我们便可以考虑将地址分级,对 Users 动态分配 memory 空间,几个 Users 甚至可以复用一份 memory,达到节省 memory 使用的目的。这样做当然增加了 memory 控制和管理的复杂度,也是设计上的 tradeoff。

  再往本质里看,这个场景其实利用了事件发生的时间上的差异。是时间“换”空间的概念,地址分级只是实现这个概念的一个手段。

  本文思考了内存寻址的两个设计点对 FPGA 设计的借鉴意义。很多时候,设计的思想是相通的,尤其是像 CPU 或者Linux内核 这样的经典的,经久不衰的设计。

  文章出处:【微信号:FPGA研究院,微信公众号:FPGA研究院】欢迎添加关注!文章转载请注明出处。

  的内容为20H,则执行MOV R1,A指令后,内部RAM 09H单元的值就变为20H。2. 直接

  地址。例如:R2 = memw(##100000) // load R2 with word fr

  空间可能是4G大小,(当然一般程序肯定不会用这么大的空间的) 通过PCB(Processing Control Block)可以决定将进程内的虚拟地址映射到真实的硬件上的什么位置。(这个过程应该是有MMU(

  说到单片机,我的第一反应是这个:(是不是感觉很厉害/手动滑稽)然而,拿到手却发现是这样的:(以为自己拿到了一条蜈蚣/手动滑稽)但是,咱们的这个仅有八个脚,可

  方式可以分为以下几种。 ① 字及无符号字节的Load/Store指令的

  映射占据,它们的大小和布局由PCI规范所决定。640K~1M这段地址空间被BIOS和VGA适配器所占据。

  管理 /

  西门子S7-200编程语言的基本单位是语句,语句由指令组成。每条指令有两部分:一部分是操作码,另一部分是操作数。操作码指示该指令的功能是什么,操作数指示操作码所需的数据在哪里。

  指令转移示意图如下: 地址指针的字长是二进制的16位,说明可以表达的地址个数为2^16个。 2^16=(2^6)*(2^10)=64*1024=64KB,也就是它的可

  计算的详细说明 /

  不行吗? PLC,也称程序可编程控制器,是一种专门用于自动化控制的电子设备,广泛应用于各种工业领域中。在PLC编程中,常常用到

  368.367PyTorch(上),人工智能应用实战 万门 大学 #硬声创作季

  66.82线性代数—特征值与特征向量,人工智能应用实战 万门 大学 8 #硬声创作季

  126.124Python操作数据库、 Python爬虫,bwin必赢官网登录人工智能应用实战 万门 大学 8 #硬声创作季

  189.187让神经网络看懂图象,人工智能应用实战 万门 大学 10 #硬声创作季