CPU 要实现对存储单元的访问,首先要选择存储芯片,即进行片选;然后再从选中的芯片中依地址码选择出相应的存储单元,以进行数据的存取,即字选。
字选通过CPU送出的N条低位地址线完成,直接接到所有存储芯片的地址输人端(N由片内存储容量 决定)。
片选通过高位地址线直接连接到存储芯片的片选端或通过地址译码器译码完成。
片选方法
线选法
高位地址线直接连接至各个存储芯片的片选段,当地址线传输0时,表示选中对应的存储芯片。
| 芯片 | 地址范围 | ||
|---|---|---|---|
| 0# | 1 1 1 0 | 000000000000 ~ 111111111111 | E000 ~ EFFFH |
| 1# | 1 1 0 1 | 000000000000 ~ 111111111111 | D000 ~ DFFFH |
| 2# | 1 0 1 1 | 000000000000 ~ 111111111111 | B000 ~ BFFFH |
| 3# | 0 1 1 1 | 000000000000 ~ 111111111111 | 7000 ~ 7FFFH |
| 优点:不需要地址译码器,线路简单,无须外加逻辑电路。 | |||
| 缺点:仅适用于连接存储芯片较少的场合,不能充分利用地址总线(4根线只能选4片芯片,译码法可以选=16片芯片);会产生地址重叠:如0 1 1 1和0 1 1 0都指向3#。 |
全译码法
高位地址线全部作为地址译码器的输入。
| 芯片 | 地址范围 | |||
|---|---|---|---|---|
| 0# | 0000000 | 0 0 | 00000000000 ~ 11111111111 | 00000 ~007FFH |
| 1# | 0000000 | 0 1 | 00000000000 ~ 11111111111 | 00800 ~ 00FFFH |
| 2# | 0000000 | 1 0 | 00000000000 ~ 11111111111 | 01000 ~ 017FFH |
| 3# | 0000000 | 1 1 | 00000000000 ~ 11111111111 | 01800 ~ 01FFFH |
| 优点:每一个芯片的地址范围唯一,能够充分利用存储空间。 | ||||
| 缺点:译码电路实现较为复杂。 |
部分译码法
部分译码法即只用高位地址线的一部分进行译码产生片选信号。
| 芯片 | 地址范围 | |||
|---|---|---|---|---|
| 0# | 0000000 ~ 1111111 | 0 0 | 00000000000 ~ 11111111111 | 00000 ~007FFH |
| 1# | 0000000 ~ 1111111 | 0 1 | 00000000000 ~ 11111111111 | 00800 ~ 00FFFH |
| 2# | 0000000 ~ 1111111 | 1 0 | 00000000000 ~ 11111111111 | 01000 ~ 017FFH |
| 3# | 0000000 ~ 1111111 | 1 1 | 00000000000 ~ 11111111111 | 01800 ~ 01FFFH |
| 优点:能构充分利用存储空间,实现相比全译码法较为简单。 | ||||
| 缺点:会产生地址重叠。 |