《数据密集型计算和模型》第三章的有关内容。主要有内存计算的概念、内存计算的硬件结构、内存计算的系统软件、内存数据库等相关内容。
一、内存计算的概念
1. 为什么需要内存计算?
- 因为计算机在处理数据时,CPU首先从其cache中寻找数据,cache中找不到,再从内存中找;如果内存中找不到,再从磁盘上读取。
- 如果将海量数据迁移到内存中,让计算、查询、分析在读写速度快很多倍的内存中直接进行,而不用访问物理磁盘,将会大大降低磁盘对整个计算系统性能的影响,显著提升计算机处理性能。
2. 内存计算的概念
内存计算可为两个层次的概念。
- 一个是将海量数据从磁盘迁移到内存当中进行查询、分析。这类内存计算非常适合处理海量数据。(移到内存)
- 一个是不仅可以完成传统的数据存储功能,还可以独立地对存储在自身上的数据直接进行计算。(独立计算)
二、内存计算的硬件结构
1. 内存需要具有的三个特征
为了将磁盘中的海量数据迁移到内存中,需要内存具有以下三个重要的特征;
- 需要有很高的容量-价格比
- 具有磁盘一样的非易失性
- 具有较高的访问速度和总线带宽
2. 为了更快速处理内存中的数据采用的两种方式
- 将传统的计算机体系结构进行改造,以支持更大的内存容量和更高的数据带宽
- 为内存计算设计全新的体系结构,这种体系结构赋予内存以计算能力,尽可能地将内存数据在原地进行计算,达到减少数据流动和I/O 访问的目的。
3. 用于内存计算的专业内存
- BBSRAM:带电池静态随机存储器
- NVRAM:非易失性静态随机存储器
- FRAM:铁电存储器
- MRAM:磁阻内存
- STTRAM:自旋转移力矩随机存取存储器
- RRAM:阻变随机存储器
- PCM:相变存储器
- 赛道内存
- HMC:混合内存立方
4. 用于内存计算的计算机体系结构
主要分为两大类:基于传统X86的体系结构 和 基于计算型内存的体系结构。
(1)基于传统X86的体系结构
这个就是将海量数据迁到内存中。
新要求:
更强的计算能力
:CPU应该具有更多内核和更高的扩展性,进一步提高对海量数据的计算能力。更大的内存容量支持
:系统应该能支持TB甚至PB级容量的内存,存储海量数据。更高的可用性
:体系应该具有更高的可用性和鲁棒性,保证内存中的海量数据不会丢失。
(2)基于计算型内存的体系结构
这个就是讲计算单元嵌入内存中,直接在内存中进行海量数据的运算。
优点:
- 访问速度更快
- 系统功耗降低
- 带宽更高
- 使用更灵活
- 计算并行
计算内存
计算内存
:这种将计算单元与内存单元集成的内存称为计算内存。- 分为两大类:
岛式计算内存结构
:CPU和内存相互独立,CPU具有较为完整的结果和功能,内存和CPU通过总线连接。全集成计算内存结构
:将简单的逻辑运算单元在生产过程中就与内存单元集成到一起。
代表性的计算型内存
他们的设计思想都是将内存和计算单元集成到一起而达到提高计算性能的目的。
- FlexRAM
- CIMM
- IRAM
- Activepages
- DIVA
三、内存计算的系统软件
内存计算常使用
非易失性内存(NVM)
。断电时不丢失数据使得操作系统可以花费更少的精力在把内存的数据转化到外存中。
1. 内存文件系统
- 元数据是描述数据的数据。
- 在文件系统领域每一个文件对应一个元数据结构体。
- 文件系统使用文件的元数据来描述文件