内存扩展技术通过增加计算机内存容量来提升系统性能,其原理主要包括以下几种:
内存映射:
将硬盘空间作为虚拟内存使用,通过虚拟地址与物理地址的映射关系实现内存扩展。
虚拟内存:
将内存看作是磁盘的缓存,将常用数据存储在内存中以提高数据访问速度。虚拟内存技术利用页表和缺页中断机制实现按需加载,结合页面置换算法如LRU(最近最少使用)和FIFO(先进先出)等,确保高效运行。
内存优化:
通过清理不必要的程序和数据释放内存空间,确保内存的高效利用。
覆盖技术:
将程序分为多个段,常用的段常驻内存,不常用的段在需要时调入内存。这种技术需要程序员声明覆盖结构,操作系统完成自动覆盖。
交换技术:
在内存空间紧张时,将内存中的进程换出到外存,腾出空间给其他进程。这种技术允许在内存与磁盘间动态调度进程。
虚拟存储器:
将所有应用占用的逻辑内存分块(分页)之后,根据需要读取到物理内存中,超出物理内存范围的放到硬盘交换区上。这种技术通过页面置换算法和调度算法(如FIFO, LRU, Clock等)来降低CPU缺页中断率。
CXL技术:
通过PCIe总线将外部内存添加到主机处理器,提升GPU内存的扩展能力。CXL技术具有极低的往返时间,比SMT和TPP方法快3倍以上。
内存融合:
将部分闪存扩展给内存使用,通过动态分组压缩、超级内存闪存融合等技术,将闪存中部分容量用作虚拟内存。
这些技术可以单独使用,也可以结合使用,以适应不同的应用场景和需求。例如,在智能手机中,内存扩展技术可能采用虚拟内存和闪存融合的方式,以在物理内存不足时提供额外的内存空间。在服务器和数据中心,则可能采用覆盖技术、交换技术和CXL技术等,以实现更高的内存扩展能力和系统性能。