第6章详细的讲关于输入/输出设备像磁盘的工作. 在第10章, 你将要学习怎样使用Unix的输入/输出接口从应用程序连接设备. 我们关注一类(class of)特别有趣的设备(devices),即网络, 但是这个技术可以很好的概括其他种类的设备.
主存
主存是一个暂时的存储设备,当处理器执行程序时保存程序和数据. 根本上,主存由一组(a collection of)动态随机存取存储器(DRAM)芯片(chips)组成. 逻辑上, 内存被组织成一个字节的线性数组(linear array), 每一个字节的唯一地址(address)(数组索引)从0开始. 通常,构成程序的每一条机器指令都可以由可变字节数(variable number of bytes)组成.数据项目长度和C程序通过内心的变化相一致.对应于C程序变量(variable)的数据项(data items)的大小随类型(type)的不同而变化. 例如, 在运行Linux的IA32计算机上, short类型的数据需要(requires)两个字节,int类,float类和4字节的lon类 和8字节的double类型.
第6章更详细讲了像DRAM芯片等内存技术的工作以及它们如何组合以形成主存储器。
处理器(processor)
中央处理器(central processing unit,CPU),或简单的处理器, 是解释(interprets)(或执行 excutes)存储在主存当中的指令的引擎. CPU的核心是被称为程序计数器(program counter,PC)的字长存储设备. 在任何时候(at any point in time), PC都指向(包含的地址)在主存当中的一些机器语言指令.
从系统通电开始直到系统断电,处理器反复(repeatedly )执行(executes )程序计数器指向的指令并更新程序计数器指向下一条指令. 处理器重复执行程序计数器指向的指令,并更新程序计数器以指向下一条指令。处理器显示操作通过非常简单的指令执行模型,处理器似乎是根据其指令集体系结构(instruction set architecture)定义(defined)的非常简单的指令执行模型进行操作的.在这个模型中, 指令执行(execute)是一个很严格的序列(sequence), 执行一个单独的指令包含了运行一系列的步骤. 处理器读取程序计数器指向存储器(memory)当中的指令,解释(ibterprets)指令中的位,执行(performs)一些指令指示当中的简单操作,然后更新程序计数器,指向下一条指令, 它在内存(memory)中可能与刚刚执行的指令相邻(contiguous),也可能不相邻。
这里仅仅只有一些简单的操作,他们围绕着主存,注册文件(register file), 和算术/逻辑单元(ALU). 注册文件是一个小的储存设备,由一组字大小的寄存器组成,它们每一个都有一个独特的(unique)名字. ALU计算新的数据和地址内容. 这里有一些简单操作的例子,CPU可以根据指令的请求执行这些操作:
网友评论