计算机组成原理的总结

常见的特殊寄存器

1.状态寄存器:状态寄存器一般是包括各种状态位以及反映当前处理器的各个状态。

2.栈地址寄存器:此寄存器是指向内存中栈的地址,具备先入后出的特点。当使用压栈指令进行压栈操作的时候,栈地址寄存器的值会自动减少,当使用退栈指令从栈中取数据的时候,栈地址寄存器的值会自动增加。

3.程序计数器:程序计数器可用来保存下一条要执行的指令所在的地址,在处理器执行指令之前,会先从程序计数器所指示的内存地址处进行移植。

电脑启动过程

1.开机时加载硬盘,进行BIOS自检。

2.读取MBR,进行MBR引导。即硬盘的主引导记录,也就是系统引导。

3.进行Boot Loader。通过Boot Loader,我们可以初始化硬件设备、建立内存空间,从而将系统的软硬件环境处于一个合适的状态。

4.加载内核。

5.启动第一个进程Init。

6.启动内核中不同级别的程序。

7.进入系统登录界面。

系统总线

1.数据总线:在CPU与RAM之间来回传送需要处理、储存的数据。

2.地址总线:用来指定在RAM之中储存数据的地址。

3.控制总线:将处理器的信号传送到周边的设备,一般为USB Bus。

4.扩展总线:用于连接扩展槽和电脑。

5.局部总线:取代扩展总线的高速数据传输总线。

设备类型与简介

1.字符设备:常见的字符设备有鼠标、键盘、串口,它们是以一个字节一个字节进行读写的设备,每个字符设备在Linux系统中的dev目录下都对应一个设备文件。用户可通过这些设备文件中的驱动程序来控制字符设备。

2.块设备:与字符设备不同,块设备是以固定长度进行传输的,比如我们的硬盘、SD卡。虽然块设备在读取的时候只返回用户要求访问的内容,但是它还是会读取固定长度的内容。

3.网络设备:网络设备的特点是面向报文的,而非是面向流。它没有像字符设备和块设备一样具有设备号,它们只有唯一的名字,例如eth0,eth1。主要通过套接字进行操作。

分页分段

页是信息的物理单位,其大小较为固定,由系统所决定;而段是信息的逻辑单位,大小不固定。分页地址一般是一维的,分段地址是二维的。

大端与小端

在大端格式中,字数据的高字节存储在低地址中,低字节存储在高地址中;而小端格式则相反。

中断响应过程

系统的中断响应流程:CPU开始接受中断,保存上下文并跳转到中断处,执行中断上半部,执行中断下半部,恢复到中断前的地址。

为什么要区分上半部和下半部?

中断服务程序异步执行,可能会中断其他的重要代码,包括其他中断服务程序。因此,为了避免被中断的代码延迟太长的时间,中断服务程序需要尽快运行,而且执行的时间越短越好,所以中断程序只作必须的工作,其他工作推迟到以后处理。所以Linux把中断处理切为两个部分:上半部和下半部。上半部就是中断处理程序,它需要完成的工作越少越好,执行得越快越好,一旦接收到一个中断,它就立即开始执行。像对时间敏感、与硬件相关、要求保证不被其他中断打断的任务往往放在中断处理程序中执行;而剩下的与中断有相关性但是可以延后的任务,如对数据的操作处理,则推迟一点由下半部完成。下半部分延后执行且执行期间可以相应所有中断,这样可使系统处于中断屏蔽状态的时间尽可能的短,提高了系统的响应能力。实现了程序运行快同时完成的工作量多的目标。

Uboot

在Uboot时,要关闭Cache。因为CPU在刚初始化的时候并未设置栈,所以是先使用汇编代码,构建异常项链表。然后为了避免程序跑飞,设置CPU为特权模式。随后,进入板级初始化阶段。在这里,进行时钟、内存、串口的初始化,并且关闭看门狗。接下来就是设置栈,对代码进行重定位,搬到内存当中去。最后就再初始化其他设备,比如网卡、Flash。

端口映像

端口映像是把交换机中的一个或者多个端口中的数据映射到一个或者多个端口的方法。为了方便对网络接口的流量进行分析,可以通过设置交换机将一个或者多个端口的数据转发到其他特定端口实现对网络的监听。

链接

链接不仅解决了文件的共享使用,还带来了隐藏文件路径、增加权限以及节省存储的好处。链接分为软链接,硬链接。

硬链接是有着相同inode号以及数据块但文件名不同的文件。它们只能对已经存在的文件进行创建,不能对目录,也不能交叉文件系统进行创建。在删除一个硬链接文件后并不影响其他拥有相同inode号的文件。

而软件较为灵活,并没有类似硬链接的诸多限制。它不仅拥有自己的inode号和用户数据块,也有自己的文件属性和权限。软链接可以对不存在的文件以及目录进行创建,也可以交叉文件系统进行创建。虽然删除软链接并不影响被指向的文件,但是如果被指向的文件被删除了,那么相关联的软链接则变成死链接,直到被指向路径的文件被重新创建。

虚拟扩充

虚拟存储器目的在于解决内存小,作业多的问题,它并不是从物理上扩充内存空间,而是从逻辑上扩充。在执行的过程,会将当前需要的那部分程序以及数据装入内存,其余部分则放入磁盘中。这样,就会根据程序执行的要求和内存使用的情况,随机对每个程序进行换入、换出。

这样, 就给用户提供一个比正式的内存空间还要大的地址空间。所谓虚拟存储器是用户能将本不能编程的存储空间变成可编程的存储空间,在这种计算机系统中虚地址被映射成实地址。简单地说,虚拟存储器就是由操作系统提供的一个假想的特大存储器。实际上,虚拟存储器并不是实际的内存,它的大小比内存空间大的多。这是操作系统对物理内存的扩充,使用户感觉所能使用的内存非常大。

虽然虚拟存储器提供了特大的地址空间,用户在编程时一般不需要考虑可用空间有多大。但是其不是无限大的,第一机器指令表示地址的二进制数有限;第二,外存容量有限。

以上内容如有错误,欢迎指出。谢谢!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值