采用段式管理的大容量外部RAM扩展技术
1.3.2 逻辑段表设计与段的存取管理
为了便于对段的存取管理控制,设计一个逻辑段表,表的内容为逻辑段号。因为1个逻辑段为64KB,它与2个物理段(每段32KB)相对应,因而逻辑段表示的长度为实际物理段总数的一半。设有N个段,逻辑段表如图3所示。例如:有8个32KB的物理段,逻辑段表的长度为4B,逻辑段表的内容为:0,1,2, 3。实际的物理段号为:0,1,2,3,4,5,6,7。每个逻辑段号与2个物理段号相对应。
另外,为了便于存取控制,设计一个将逻辑地址自动转换成物理地址的子程序,子程序必须简单。经过分析,把每个32KB的物理段的起始地址都设为8000H,即每个32KB的物理段的段内地址都是从8000H~0FFFFH。根据逻辑地址与物理地址的对应关系,笔者设计了一个子程序,由于结构简单,只给出具体流程图,如图4所示。子程序的入口参数为逻辑段号与逻辑偏移地址,返回结果为物理段号与物理段内地址。这样,对段的存取访问可先查逻辑段表查出逻辑段号,再调用该子程序实现。
分析:由于地址空间为128KB,因此可以设置4个大小同为32KB的段,每段选用1个62256芯片。电路原理分析:8096的P3口输出直接作为数据总线使用,同时外接74LS373的输出,作为低地址总线A0~A7;P4口的P4.0~P4.6作为高地址总线A8~A14使用,P4.7经过一反相器连接74LS139(双2~4译码器)的1G(使能器);P1.1、P1.0分别与74LS139译码器的两个输入端1A1、1A0相接。P1.1、 P1.0、P4.7分别作为高地址总线A17、A16、A15使用。译码器的输出1Y3、1Y2、1Y1、1Y0分别与4个寄存器62256的片选信号 CS相接。这样可以得出:段0存储器的物理地址为08000H~0FFFFH,段1存储器的物理地址为18000H~1FFFFH,段2存储器的物理地址为28000H~2FFFFH,段3存储器的物理地址为38000H~3FFFFH;而逻辑地址为00000H~1FFFFH。逻辑段表的内容为0、1,具体电路如图5所示。
评论