UNIX V6内核源码剖析——unix v6 全貌

1. UNIX V6 运行硬件环境——PDP-11/40

PDP-11/40指令和数据都是以16比特为单位。对它而言,一个字的宽度为16比特。

PDP-11/40以及周边设备的寄存器被映射到内存最高位的8K空间(内存映射IO)。

利用内存映射IO,可以通过操作内存来访问寄存器。如下:

 1 #define REG_ADDRESS 0170000
 2 
 3 struct {
 4     int integ;
 5 };
 6 
 7 main()
 8 {
 9     int a ;
10     a = REG_ADDRESS->integ;
11     REG_ADDRESS->integ = 0;
12 }
View Code


2. PSW(processor status word)

3. 通用寄存器

PDP-11/40具有r0-r7共8个通用寄存器。

其中r6为2个,分别对应用户模式和内核模式,在切换psw的当前模式时,r6在硬件上自动切换。

r5位帧指针或环境指针;

r6称为栈指针,它指向各进程所拥有的栈的顶端

r7称为程序计数器,处理器从r7指示的内存地址读取指令执行。

4. MMU

PDP-11/40以长度为8kb的段或页为单位,对进程所需的内存进行管理。

MMU通过称为APR(页寄存器)的寄存器对各段进行设定,并将虚拟地址转换为物理地址。

PDP-11/40的MMU具有2个状态寄存器,SR0和SR2。

SR0用于保存出错信息和内存管理的有效标志,SR2用于保存目标指令的16位虚拟地址,可用来确定引起错误的指令。

5. 内存

内存以8比特(1字节)为单位赋予地址。地址长度为18比特,因此内存容量为218=256KB。

PDP-11/40将周边设备的寄存器映射到内存高位地址的8kb空间。

转载于:https://www.cnblogs.com/licongyu/p/4952339.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值