DDR的Controller、Channel、Chip、Rank、Bank、Row、Column、Sided、Dimm

2024-09-05 20:08

本文主要是介绍DDR的Controller、Channel、Chip、Rank、Bank、Row、Column、Sided、Dimm,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

概览


1.概览   

         先从半导体生产开始,生产出来还没切割的叫晶圆(wafer)。切割出来还没封装的叫裸die(bare die)。封装好的叫颗粒(component)。做成内存条后叫模组(module)。下文我们也会按这样的称呼去区分。

2.Controller(内存控制器)

        一开始内存控制器在主板上有独立的芯片;在英特尔微处理器的传统电脑上,其功能被集成在主板北桥上;但i7、i5等中央处理器上集成了内存控制器,以减少内存延迟。上面我们都是说cpu,当然也可以是fpga或者asic芯片。内存控制器可以通过phy与ddr相连,当然这些都有标准,可以看下面。关键是一个内存控制器也可以支持多个通道(所谓通道,其实是是正对cpu数据位宽而言的,你的cpu是64位数据线,那我这个ddr颗粒或者内存条也是64位,那就是单通道,如果,cpu是64位数据线,但是ddr颗粒或者内存条可以支持128位,那就是双通道。这里要注意俩个点:1.单个颗粒往往做不到64位那么大,所以需要内存条上多个颗粒,2.cpu总线就现在而言也没有128位那么多。)。

  • 控制器和 PHY 通过称为 DFI 接口的标准接口相互通信。您可以从这里下载 DFI 规范。
  • 然后 PHY 执行所有较低级别的信令并驱动到 DRAM 的物理接口。
  • JEDEC 标准JESD79-49B 规范中规定了 PHY 和存储器之间的这种接口

3.Channel  (通道)

       通道的概念主要是针对单次传输数据量而言的,其实上面也提到,现在的cpu一般也就64位,那么双通道的内存条(128位)有什么价值,其实主要是通道间的interleave(乒乓效果、减少等待,一次还是传输64位,但是在传输第一个64位后,第二个64位已经可以准备好)。

4.Chip (ddr芯片、ddr颗粒)

5.Rank(Dual Rank vs Single Rank

        Rank也叫物理bank。Rank表达的是级联的概念,特别需要强调,rank这个概念在网上好多是错误和不准确的,由于半导体技术发展,可以在一个芯片里面就实现多个rank,所以区分rank不要以内存芯片的数量来区分rank。换句话说,如果一个内存条在PCB的两面都有芯片(双面贴片)他就一定是双rank吗,它仍然可以是单级、双级或四级的,这取决于这些芯片是如何设计的,下面是一个内存手册截图,他可以再一个内存芯片(chip)里面实现双rank,什么rank层级大于chip(Rank > Chip ),其实这种排序是不准确的,理解片面了。

       当然站在内存条角度,也可以把凑成64位数据线所需要的内存颗粒叫做一个rank,如果一个内存条可以支持128位数据线带宽,那就叫

      根据各种测试,我们发现单列内存和双列内存没有明显的区别。关键是与双列内存相比,单列内存配置上的 CPU 使用率总是更高 (10-25%)。如果使用较少的 CPU,那是因为 CPU 在等待 RAM 上浪费了一些时间。由于双列存储器需要两个地址周期来读取整个模块,因此它本质上较慢。 

6.Bank

Bank

7.SidedDual Sided vs Single Sided

双面”和“单面”有什么区别,纯粹的物理结构就是颗粒贴到几个面

8.Dimm(双列直插内存模块)

       DIMM是Dual In-Line Memory Module的缩写。意思是内存条印刷电路板正反面均有金手指与主板上的内存条槽接触,这种结构被称为DIMM。于是内存条也有人叫DIMM条,主板上的内存槽也有人称为DIMM槽。

这篇关于DDR的Controller、Channel、Chip、Rank、Bank、Row、Column、Sided、Dimm的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1139940

相关文章

Spring Boot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)

《SpringBoot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)》本文将以一个实际案例(用户管理系统)为例,详细解析SpringBoot中Co... 目录引言:为什么学习Spring Boot分层架构?第一部分:Spring Boot的整体架构1.1

Kotlin 协程之Channel的概念和基本使用详解

《Kotlin协程之Channel的概念和基本使用详解》文章介绍协程在复杂场景中使用Channel进行数据传递与控制,涵盖创建参数、缓冲策略、操作方式及异常处理,适用于持续数据流、多协程协作等,需注... 目录前言launch / async 适合的场景Channel 的概念和基本使用概念Channel 的

Go语言使用select监听多个channel的示例详解

《Go语言使用select监听多个channel的示例详解》本文将聚焦Go并发中的一个强力工具,select,这篇文章将通过实际案例学习如何优雅地监听多个Channel,实现多任务处理、超时控制和非阻... 目录一、前言:为什么要使用select二、实战目标三、案例代码:监听两个任务结果和超时四、运行示例五

PostgreSQL中rank()窗口函数实用指南与示例

《PostgreSQL中rank()窗口函数实用指南与示例》在数据分析和数据库管理中,经常需要对数据进行排名操作,PostgreSQL提供了强大的窗口函数rank(),可以方便地对结果集中的行进行排名... 目录一、rank()函数简介二、基础示例:部门内员工薪资排名示例数据排名查询三、高级应用示例1. 每

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

MySQL 中 ROW_NUMBER() 函数最佳实践

《MySQL中ROW_NUMBER()函数最佳实践》MySQL中ROW_NUMBER()函数,作为窗口函数为每行分配唯一连续序号,区别于RANK()和DENSE_RANK(),特别适合分页、去重... 目录mysql 中 ROW_NUMBER() 函数详解一、基础语法二、核心特点三、典型应用场景1. 数据分

Spring Boot Controller处理HTTP请求体的方法

《SpringBootController处理HTTP请求体的方法》SpringBoot提供了强大的机制来处理不同Content-Type​的HTTP请求体,这主要依赖于HttpMessageCo... 目录一、核心机制:HttpMessageConverter​二、按Content-Type​处理详解1.

Java controller接口出入参时间序列化转换操作方法(两种)

《Javacontroller接口出入参时间序列化转换操作方法(两种)》:本文主要介绍Javacontroller接口出入参时间序列化转换操作方法,本文给大家列举两种简单方法,感兴趣的朋友一起看... 目录方式一、使用注解方式二、统一配置场景:在controller编写的接口,在前后端交互过程中一般都会涉及

如何解决mysql出现Incorrect string value for column ‘表项‘ at row 1错误问题

《如何解决mysql出现Incorrectstringvalueforcolumn‘表项‘atrow1错误问题》:本文主要介绍如何解决mysql出现Incorrectstringv... 目录mysql出现Incorrect string value for column ‘表项‘ at row 1错误报错

Spring中@RestController和@Controller的使用及区别

《Spring中@RestController和@Controller的使用及区别》:本文主要介绍Spring中@RestController和@Controller的使用及区别,具有很好的参考价... 目录Spring中@RestController和@Controller使用及区别1. 基本定义2. 使