操作系统原理番外篇 - 硬件架构

标签: 操作系统
2042人阅读 评论(0) 收藏 举报
分类:

From: ongoingcre

不知道谁说过,回忆是一座桥 - 佚名

依稀记得那是一个记得那是2011年的夏天,都已经到了穿凉拖的地步了。那个时候的自己感觉很阳光,哈哈!总是那么的无畏,那么的潇洒! 就这样子,我接触到了我们所谓的计算机原理课,那个时候感觉很是高大上,所以就一直尝试着努力的去听。。 可是貌似事与愿违,课程开始了好几个礼拜,基本处于云里雾里的感觉!

1、图说计算机原理

Computer
图中名词解释:
CPU:
中央处理单元,简称处理器,是解释(或执行)存储在主存中指令的引擎。处理器的核心是一个字长的存储设备(或寄存器),称为程序计数器(PC)。在任何时刻,PC都指向主存中的某条机器语言指令(即含有该条指令的地址)。从系统通电开始,直到系统断电,处理器一直在不断地执行程序计数器指向的指令,再更新程序计数器,使其指向下一条指令。处理器看上去是按照一个非常简单的指令执行模型来操作的,这个模型是由指令集结构决定的。在这个模型中,指令按照严格的顺序执行,而执行一条指令包含执行一系列的步骤。处理器从程序计数器(PC)指向的存储器处读取指令,解释指令中的位,执行该指令指示的简单操作,然后更新PC,使其指向下一条指令,而这条指令并不一定与存储器中刚刚执行的指令相邻。
这样的简单操作并不多,而且操作是围绕着主存、寄存器文件(register file)和算术/逻辑单元(ALU)进行的。寄存器文件是一个小的存储设备,由一些1字长的寄存器组成,每个寄存器都有唯一的名字。ALU计算新的数据和地址值。
CPU在指令的要求下可能会执行以下操作:
加载:把一个字节或者一个字从主存复制到寄存器,以覆盖寄存器原来的内容。
存储:把一个字节或者一个字从寄存器复制到主存的某个位置,以覆盖这个位置上原来的内容。
操作:把两个寄存器的内容复制到ALU,ALU对这两个字做算术操作,并将结果存放到一个寄存器中,以覆盖该寄存器中原来的内容。
跳转:从指令本身中抽取一个字,并将这个字复制到程序计数器(PC)中,以覆盖PC中原来的值!
System Bus or Memory Bus or I/O Bus/总线
贯穿整个系统的是一组电子管道:称做为总线,它携带信息字节并负责在各个部件间传递。通常总线被设计成传送定长的字节块,也就是字(word)。字中的字节数(即字长)是一个基本的系统参数,在各个系统中的情况都不尽相同。现在的大多数机器字长有的是4个字节(32位),有的是8个字节(64位)。为了讨论的方便,假设字长为4个字节,并且总线每次只传送1个字。
Main Memory/主存
主存是一个临时存储设备,在处理器执行程序时,用来存放程序和程序处理的数据。从物理上来说,主存是由一组动态随机存取存储器(DRAM)芯片组成的。从逻辑上来说,存储器是一个线性的字节数组,每个字节都有其唯一的地址(即数组索引),这些地址是从零开始的。一般来说,组成程序的每条机器指令都由不同数量的字节构成。与C程序变量相对应的数据项的大小是根据类型变化的。例如,在运行Linux的IA32机器上,short类型的数据需要2个字节,int、float和long类型需要4个字节,而double类型需要8个字节。
Cache Memories/高速缓存
高速缓冲存储器是存在于主存与CPU之间的一级存储器, 由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多, 接近于CPU的速度。
一睹高速缓冲的速度与造价
Cache_Keven
当然上述我们都是基于x86系统架构来说明这一个非常复杂的事情!
下面将会以MIPS架构来进行相关说明!

By: Keven - 点滴积累

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    Smart L 开源项目分享群
    Smart L
    个人资料
    • 访问:138516次
    • 积分:1645
    • 等级:
    • 排名:千里之外
    • 原创:48篇
    • 转载:4篇
    • 译文:1篇
    • 评论:4条
    最新评论