This post is mainly talking about volatile vs non-volatile memory, so if you are interested in the difference between them, read this post carefully.
Spitfire: A Three-Tier Buffer Manager for Volatile and Non-Volatile Memory 最近几年,新硬件(GPU,FPGA,NVM)的出现影响着数据库的发展。在SIGMOD和VLDB上有很多关于NVM的论文,比如最新的VLDB2021上的Zen,Viper。随着intel主推的DCPMM(persistent memory)的流行,越来越多的数据库(HANA,Oracle,SQL server)都开始引...
挥发性存储器(Volatile Memory)是指当电源关闭后,所存储的数据会丢失的存储器。这种存储器的特点是读写速度快,通常可以达到100纳秒以下,但其数据要加电的情况下才能保持。最常见的两种挥发性存储器是静态随机存储器(SRAM)和动态随机存储器(DRAM)。静态随机存储器(SRAM)不需要周期性的时钟信号脉冲触发来存储...
非易失性存储器(NVM)是一种特殊的存储技术,主要应用于智能卡中,常见的类型有EEPROM和Flash。它的主要功能是持久地保存程序和数据,智能卡上的应用程序、数据以及文件通常被存放在这种类型的存储器内,以保证数据的持久性和可靠性。NVM的一大优点是其便捷的读写操作。对于读取操作,NVM中的数据可以直接...
nonvolatile memory 英 美 [nɑnˈvɑlətəl ˈmeməri]网络 非易失性存储器; 非易失性内存; 非易失存储器; 不挥发存储器; 非挥发性存储器
volatile的含义就是明确告诉编译器,这个变量在每次访问时,都走内存,而不要用寄存器来缓存。这样在抢占...
一文真正掌握内存屏障memory_barrier及其用途,在linux源码中经常遇到__asm__函数。它其实是函数asm的宏定义#define__asm__asm,asm函数让系统执行汇编语句。__asm__常常与__volatile__
一个 Memory barrier 之前的内存访问操作必定先于其之后的完成。Memory barrier 包括两类: 编译器 barrier CPU Memory barrier 很多时候,编译器和 CPU 引起内存乱序访问不会带来什么问题,但一些特殊情况下,程序逻辑的正确性依赖于内存访问顺序,这时候内存乱序访问会带来逻辑上的错误,例如:...
NVMe的全称是“Non-Volatile Memory Express”,即非易失性存储器快速通道。它是一种用于连接计算机系统与闪存存储设备(如固态硬盘)之间的通信协议和接口标准。NVMe旨在提供高性能、低延迟和高并发性能,以优化闪存存储器的使用。相比于传统的SATA接口,NVMe能够更好地发挥固态硬盘的潜力,并提供更快的数据传输速度和更低...
volatile 变量的内存可见性是基于内存屏障(Memory Barrier)实现: 内存屏障,又称内存栅栏,是一个 CPU 指令。 在程序运行时,为了提高执行性能,编译器和处理器会对指令进行重排序,JMM 为了保证在不同的编译器和 CPU 上有相同的结果,通过插入特定类型的内存屏障来禁止+ 特定类型的编译器重排序和处理器重排序,插入一条...