Skip to content

Commit

Permalink
更新文章
Browse files Browse the repository at this point in the history
  • Loading branch information
ProphetHJK committed Sep 6, 2024
1 parent b09be9f commit c120269
Show file tree
Hide file tree
Showing 7 changed files with 114 additions and 5 deletions.
31 changes: 26 additions & 5 deletions _posts/2024-09-02-flash.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,14 +62,18 @@ flash 的最基本的单元就是一个`浮栅场效应管`(Floating Gate FET)

过程:

1. 反向电场:在擦除过程中,通常对源极/漏极/沟道施加较高的正电压,控制栅极施加负电压(称为 negative gate erasure,或不施加电压)。这形成了一个反向电场。
1. 反向电场:在擦除过程中,通常对源极漏极/沟道)施加较高的正电压,控制栅极施加负电压(称为 negative gate erasure,或不施加电压)。这形成了一个反向电场。
2. 电子移除:在电场的作用下,浮置栅极中的电子通过隧穿效应被拉回到源极或漏极,从而清空浮置栅极中的电荷。

> 为什么要按照 block 擦除,而不是 page 或字节:
>
> 擦除操作只要在源极或漏极或沟道上施加正向电压,这个过程如果以 block 为单位可以大大简化电路设计(可能的做法是直接为每个 block 内的 cell 共享的沟道施加较高的正电压)。
> 一种擦除电路的设计方式是在沟道上施加正向电压,这个过程如果以 block 为单位可以大大简化电路设计
>
> ![alt text](/assets/img/2024-09-02-flash/erase.png)
>
> 还有一种方式是 1988 年 Intel 提出的非对称源漏极设计,此时擦除是对源极施加正向电压,向控制栅极施加负电压,漏极悬空(只要将一个 block 的源极都连接到一个线路上即可,电路占用空间就能变小,这是提高 flash 容量的一种方式):
>
> ![alt text](/assets/img/2024-09-02-flash/cell.png)
#### 量子隧穿效应

Expand Down Expand Up @@ -199,11 +203,23 @@ NOR Flash(16MB) 和 NAND Flash(32MB) 占用 die 面积对比:

位交扰(bit disturb)问题是 NAND Flash 中的一种常见现象,指的是在写入、擦除或读取某些存储单元(通常称为“目标单元”)时,附近未被选择的存储单元的状态意外发生改变的现象。这种问题主要由于 NAND Flash 的存储单元排列紧密、工作电压高且存储单元之间的电气耦合效应而产生。

**栅极干扰**(Gate-disturb)发生在未编程或已擦除单元(浮栅无电子)中,这些单元与正在编程的单元连接到同一字线(word line)。这些单元具有较低的单元阈值电压(cell threshold voltage)(之前《[读取](#读取)》一节提到,单元阈值电压可以抵消控制栅极施加的电压,这就是读取 cell 状态的原理)。在编程操作期间,公共字线连接到高电压。穿过隧道氧化物的电场变高,并且可能导致电子从衬底(substrate)穿透到浮置栅极。单元的阈值电压将会增加,并且在严重的情况下单元会被无意地编程(从 1 变 0)。
- **栅极干扰**(Gate-disturb):
指的是与正在编程的 cell 连接到同一字线(word line)的那些 cell 产生的非预期的操作。这种干扰在编程时才存在,所以也成为编程干扰 (Programming Disturbs),不过读取时也有可能发生,不过读取电压远小于编程电压,可以忽略不计。

- 发生在未编程或已擦除单元(浮栅无电子)中。这些单元具有较低的单元阈值电压(cell threshold voltage)(之前《[读取](#读取)》一节提到,单元阈值电压可以抵消控制栅极施加的电压,这就是读取 cell 状态的原理)。在编程操作期间,公共字线连接到高电压。穿过隧道氧化物的电场变高,并且可能导致电子从衬底(substrate)穿透到浮置栅极。单元的阈值电压将会增加,并且在严重的情况下单元会被无意地编程(从 1 变 0)。

![alt text](/assets/img/2024-09-02-flash/programmingdisturbs.jpg)

- 还有可能发生在已编程单元(浮栅有电子)上。这些电子可能从浮栅中逃逸,通过隧穿效应进入控制栅极。

**漏极干扰**(Drain-disturb)发生在已编程单元(浮栅有电子)中,这些已编程单元与正在编程的单元位于同一位线上(对于热电子注入方式来说,需要为位线(漏极)施加高电压),这些单元将在浮栅和漏极之间经历高电场。这可能导致电子从浮置栅极穿透到漏极(从 0 变 1),并导致单元阈值电压降低。
![alt text](/assets/img/2024-09-02-flash/programmingdisturbs1.jpg)

因为 NAND Flash 特有的“导通电压”的存在,未被操作的 cell 也会被附加一个电压,虽然正常情况下该电压不足以导致电子穿过绝缘层进入或离开浮栅,但当绝缘层因为多次擦除老化时该情况就很有可能发生。
- **漏极干扰**(Drain-disturb)发生在已编程单元(浮栅有电子)中,这些已编程单元与正在编程的单元位于同一位线上(对于热电子注入方式来说,编程时需要为位线(漏极)施加高电压),这些单元将在浮栅和漏极之间经历高电场。这可能导致电子从浮置栅极穿透到漏极(从 0 变 1),并导致单元阈值电压降低。
![alt text](/assets/img/2024-09-02-flash/draindisturbs.jpg)

这些电子的移动可能仅是微量的,不足以改变结果,不过随着操作次数的累积,量变也可能引起质变,发生位翻转的情况。氧化物的**缺陷**(老化、温度等因素)越大,每次移动的电子就会越多,就越有可能发生位翻转。

因为 NAND Flash 特有的串联位线连接方式,同一个 Page 中未被操作的 cell 也会被附加一个**导通电压**,虽然正常情况下该电压不足以导致电子穿过绝缘层进入或离开浮栅,但当绝缘层因为多次擦除老化时该情况就很有可能发生。

### 对比

Expand Down Expand Up @@ -254,6 +270,10 @@ Flash 一般都会提供一个表示寿命的指标:P/E cycle(program/erase cy

![alt text](/assets/img/2024-09-02-flash/hotfn.jpg)

Macronix 公司给出的实际电压值:

![alt text](/assets/img/2024-09-02-flash/voltage.jpg)

### 高压与速度

F-N 隧穿效应的速度与电压大小成正比,为了更快进行编程和擦除,一种简单的方法就是提高电压。但电场应力也与电压大小正相关,更高的电压会大大加快氧化层的损耗,这就是一个折中点。
Expand Down Expand Up @@ -289,3 +309,4 @@ F-N 隧穿效应的速度与电压大小成正比,为了更快进行编程和
- [Hot-carrier injection - wikipedia](https://en.wikipedia.org/wiki/Hot-carrier_injection)
- [Reliability Issues of Flash Memory Cells](https://www.slac.stanford.edu/exp/npa/misc/00220908.pdf)
- [Flash Memory Cells—An Overview](https://www.researchgate.net/publication/2985190_Flash_Memory_Cells-An_Overview)
- [Program/Erase Cycling Endurance and Data Retention in NOR Flash Memories](https://www.macronix.com/Lists/ApplicationNote/Attachments/1916/AN0291V2-ProgramErase%20Cycling%20Endurance%20and%20Data%20Retention%20in%20NOR%20Flash%20Memories.pdf)
88 changes: 88 additions & 0 deletions _posts/2024-09-03-cpu-fet.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
---
title: "处理器原理"
date: 2024-09-03 08:00:00 +0800
published: false
categories: [技术]
tags: [fet, mos]
---

处理器(如 CPU)利用场效应晶体管(FET)来实现其所有逻辑和存储功能。FET,特别是 MOSFET(Metal-Oxide-Semiconductor Field-Effect Transistor),是现代集成电路(IC)设计的基础元件。

### 逻辑门的实现

处理器的基本功能是执行逻辑操作,而逻辑门是实现这些操作的基础单元。FET,尤其是 MOSFET,用于构建逻辑门,如与门(AND)、或门(OR)、非门(NOT)等。

**CMOS 逻辑**

现代处理器大多采用 CMOS(互补金属氧化物半导体)技术来构建逻辑门。CMOS 技术使用 n 型 MOSFET(NMOS)和 p 型 MOSFET(PMOS)的组合来实现逻辑门。

- **例子:CMOS Inverter(反相器,非门)**

CMOS 反相器是最基本的逻辑门,由一个 NMOS 和一个 PMOS 组成。输入信号连接到两个晶体管的栅极,而输出信号从两者的连接点获得。当输入为高电平时,NMOS 导通,PMOS 关闭,输出为低电平。相反,当输入为低电平时,PMOS 导通,NMOS 关闭,输出为高电平。

![alt text](/assets/img/2024-09-03-cpu-fet/CMOSInverter.png)

**低功耗** :CMOS 逻辑门在静态时(即输入保持不变时)几乎不消耗功率,因为只有一个晶体管导通,另一个关断,这也是现代处理器低功耗的关键。

#### 组合逻辑和时序逻辑电路

逻辑门可以组合成更复杂的电路,如加法器、乘法器、移位器等,所有这些都可以用 FET 实现。

- **组合逻辑** :处理器中执行逻辑运算和数据处理的部分,如加法器和算术逻辑单元(ALU),是由多个逻辑门组合而成的。组合逻辑电路没有记忆功能,输出完全由输入决定。

- **例子:全加器**
一个全加器可以使用多个与门、或门、异或门(XOR 门)来实现,这些逻辑门都是通过 FET 构建的。全加器用于两个二进制位的加法,并输出:
- 和(Sum)
- 进位(Carry)

- **时序逻辑** :处理器中还包括时序逻辑电路,这些电路不仅依赖输入信号,还依赖时钟信号和之前的状态(记忆功能)。触发器和寄存器是时序逻辑电路的基本单元,它们由多个 FET 组成,用于存储数据。
- **例子:D 触发器**
D 触发器可以用 FET 来实现,用于存储一位二进制数据。它有一个输入端(D),一个时钟输入端(CLK),和一个输出端(Q)。每当时钟信号上升沿到来时,输入 D 的值被捕获并保存在触发器中,输出 Q 更新为 D 的值。

### 存储器电路

处理器需要存储数据和指令,存储器(如寄存器、缓存、RAM)就是使用 FET 实现的。

- **SRAM(静态随机存取存储器)**

SRAM 是处理器中缓存的典型类型,使用六个 FET 来存储一位数据。它的特点是数据保持时间长,且速度快,但占用的空间较大。

- **例子:SRAM 单元**
一个 SRAM 单元由两个交叉耦合的反相器(每个反相器由一个 PMOS 和一个 NMOS 组成)构成。这两个反相器形成一个稳定的反馈回路,可以稳定地保存一个二进制状态(0 或 1)。另外,还需要两个 NMOS 作为访问晶体管,控制数据的读取和写入。

- **DRAM(动态随机存取存储器)**

DRAM 主要用于主存储器。它使用一个 FET 和一个电容器来存储一位数据。由于电容器会漏电,因此需要周期性刷新数据。

- **例子:DRAM 单元**
DRAM 单元由一个 FET 和一个电容组成。FET 用来控制电容的充电和放电状态。充满电的电容表示“1”,而放电后的电容表示“0”。由于电容会漏电,存储器必须周期性地刷新,以维持数据的有效性。

### 控制电路

处理器中的控制单元使用 FET 来生成和管理时钟信号、控制信号、和状态信号。这些信号决定了处理器的操作顺序和执行逻辑。

- **时钟电路**

时钟电路生成处理器所需的时钟信号,协调各部分的操作时序。时钟电路通常基于振荡器,使用 FET 构建振荡器电路以生成稳定的时钟信号。

- **状态机**

处理器的控制单元通常实现为有限状态机(FSM),通过 FET 实现的逻辑门来管理状态转换和控制信号的生成。状态机用于控制指令的执行顺序、数据的读写、和处理器的整体操作流程。

### 总线和互连

处理器内部的数据总线和控制总线也由 FET 构建,用来在各个功能单元之间传输信号和数据。

- **总线控制**
FET 用于控制数据总线上的信号传输,通过开关 FET 控制数据流向不同的处理器模块。

### 输入/输出(I/O)电路

FET 也用于处理器的 I/O 接口电路,管理外部设备与处理器之间的数据传输。

- **驱动电路**
I/O 电路中使用 FET 来驱动和接收外部信号,管理处理器与外部设备之间的通信。FET 的开关速度和低功耗特点使其非常适合用于高速数据传输。

### 总结

处理器使用 FET 来实现所有的基本功能,从逻辑运算、数据存储到信号控制。FET 的低功耗、高密度、高开关速度、低输入功率需求、以及与现代 CMOS 工艺的兼容性,使得它成为集成电路中构建逻辑门、存储器单元、时序电路和控制电路的理想元件。这些 FET 的组合形成了现代处理器的核心,支持复杂的计算和数据处理操作。
Binary file added assets/img/2024-09-02-flash/draindisturbs.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/img/2024-09-02-flash/voltage.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/img/2024-09-03-cpu-fet/CMOSInverter.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit c120269

Please sign in to comment.