
1) 【一句话结论】
1T1C通过单晶体管+单电容存储数据,虽密度高、功耗低但需周期性刷新对抗电容漏电;1T2C增加辅助晶体管和电容提升读取精度,但存储密度降低、功耗增加,适用于对数据稳定性要求高的场景。
2) 【原理/概念讲解】
老师口吻解释:DRAM存储单元的核心是“电容存储电荷”的原理。
3) 【对比与适用场景】
| 特性 | 1T1C结构 | 1T2C结构 |
|---|---|---|
| 定义 | 单晶体管+单电容存储单元 | 双晶体管+双电容存储单元 |
| 存储密度 | 高(每个单元面积小,约1T1C的1/1.2-1/1.5) | 低(面积增加约20%-25%,密度降低15%-25%) |
| 功耗 | 动态功耗低(读时仅电容放电,放大器功耗);静态功耗低 | 动态功耗稍高(辅助晶体管开关损耗+辅助电容充放电);静态功耗略高 |
| 读取精度 | 较低(电容放电导致电压衰减,需放大器补偿) | 高(辅助电容/晶体管减少放电,读取电压更稳定) |
| 适用场景 | 对密度和功耗敏感的存储(如移动设备、主流服务器内存) | 对数据稳定性要求高、读取精度关键的场景(如金融交易、实时系统、特殊HBM应用) |
| 刷新需求 | 需要(周期性行刷新,对抗漏电) | 同样需要,1T2C因结构复杂,刷新周期可能略有不同 |
4) 【示例】
1T1C写操作伪代码:
// 写入数据1(高电平)
select_bitline = 1; // 选择位线
select_wordline = 1; // 选择字线
write_data = 1; // 外部数据为1
// 模拟写操作:通过晶体管将位线电压充入电容
capacitor_charge(write_data); // 充电到高电平
// 读操作伪代码
select_bitline = 1;
select_wordline = 1;
// 读取电容电压,通过比较器判断
read_voltage = read_capacitor_voltage(); // 读取电压
if (read_voltage > threshold) {
data = 1;
} else {
data = 0;
}
1T2C读操作(辅助晶体管控制):
// 读操作(1T2C)
select_bitline = 1;
select_wordline = 1;
// 辅助晶体管导通,提供稳定电流,保持主电容电压
aux_capacitor_supply_current();
// 读取主电容电压
read_voltage = read_main_capacitor_voltage();
// 比较器判断
if (read_voltage > threshold) {
data = 1;
} else {
data = 0;
}
5) 【面试口播版答案】
“面试官您好,关于长鑫存储的DRAM存储单元结构,1T1C和1T2C的核心区别在于单元的晶体管和电容数量。1T1C是单晶体管+单电容,每个单元由一个MOS管和一个电容组成,电容存储电荷代表数据(0/1)。写操作时,通过控制晶体管导通,给电容充放电;读操作时,读取电容电压,但由于电容会漏电(随时间放电),电压会衰减,需要放大器放大后比较,存在读取误差。1T1C需要周期性刷新,因为漏电会导致数据丢失,通过行刷新周期重写数据,这会增加动态功耗。而1T2C是双晶体管+双电容,增加了一个辅助晶体管和电容,读操作时辅助晶体管控制,避免主电容放电,从而提高读取精度。从存储密度看,1T1C密度更高,因为每个单元结构更简单;功耗方面,1T1C动态功耗更低(读时仅电容放电),1T2C因多一个晶体管和电容的开关损耗,功耗稍高。总结来说,1T1C适合对密度和功耗敏感的场景,1T2C适合对数据稳定性要求高的场景。”
6) 【追问清单】
7) 【常见坑/雷区】