盘算机构成原理与嵌入式系统(1)盘算机系统的根本结构构成与冯·诺依曼架 ...

金歌  论坛元老 | 2024-10-11 10:59:34 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1058|帖子 1058|积分 3174

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
目次

前言
盘算机系统的结构构成与工作原理
根本构成与构成
呆板语言指令
微程序
硬连逻辑
CISC与RISC思想
课程研究目的
盘算机系统的工作原理——冯·诺依曼架构
基于总线的冯·诺依曼架构模型机
总线
存储器子系统
输入/输出子系统
CPU子系统
运算器
控制器
寄存器阵列
缓冲器

前言

        新学期开始总是以为自己学习敷衍了事的,为了更好的掌握专业课知识,打算对学过的内容整理复盘,盼望能找出遗漏的知识点,有所收获。
盘算机系统的结构构成与工作原理

根本构成与构成

        为了简化对盘算机系统的理解,人们把盘算机分为了若干个条理,这同时也方便了人们研究。在这里我们只研究如下的盘算机条理结构:(课本内容对这一部分写的十分宽泛,我对这里的理解也是有很多疑惑,大概经过后续的学习,这一部分内容会理解地更加透彻)

         举个例子简单地概括这个条理图,比方我们要实现卷积的算法,那么起首要设盘算法(系统分析层),之后利用比方C语言进行编程(用户程序层),再然后C语言被编译器编译为二进制文件(语言处理层),之后二进制文件基于操作系统(操作系统层),传输到指令系统层,成为呆板语言指令,最后在硬核级完成运算。硬核级大概是基于微程序的微体系结构,也大概是直接硬连逻辑的数字逻辑层。
对于一个没有学过这门课的人来说,这张图上仍有很多让人感到很疑惑的点:
1. 什么是呆板语言指令? 2. 什么是微程序? 3. 什么是硬连逻辑?
局限于现在的知识,我们对这些问题做出简单解答。
呆板语言指令

        经过查阅,呆板语言指令是指示盘算机操作的命令,是盘算机运行的最小单位,一台盘算机所有指令的集合,我们称其为指令集。这并不难理解,我们可以把呆板语言指令当作是盘算机可以直接识别的语言,而比方C语言之类的编程语言需要编译息争读之后盘算机才华理解。
微程序

        微程序用于实现指令集架构到硬件的具体执行细节。在微程序设计方法中,盘算机的重要操作不是由硬连线逻辑直接控制,而是由一系列预先存储在只读存储器中的微指令来控制。这些微指令序列被称为微程序。也就是说呆板语言指令在微体系结构层会被再次分解为若干个预先设置好的微指令,每一条微指令都包含了一系列控制信号,用于激活或控制CPU内部的各种功能部件。
硬连逻辑

        硬连线逻辑是在盘算机的中央处理单位(CPU)中,用来实现控制单位的一种方式。硬连线逻辑直接使用逻辑门电路和其他组合逻辑组件来构建控制器。这实在就是我们在数字电路中学习的组合逻辑电路,直接一步到位完成操作。与微程序相比,硬连线逻辑通常没有存储的微程序,而是通过电路直接天生控制信号。微程序和硬连逻辑具有不同的特点和应用场景,是两种不同的盘算机硬核设计思路。
CISC与RISC思想

        基于呆板指令集,目前盘算机系统设计衍生出两个思想:CISC和RISC。
        CISC思想,即复杂指令集盘算机思想。其寻求在指令集中加入一些常用的高级指令,其设计思路在于通过设计微指令,将复杂指令功能实现,加入高级复杂指令,让单条指令完成尽大概多的操作,这也就为硬件带来了很大负担(微指令的实现是基于硬件的,以是微程序的增多就会导致硬件设计的复杂度)。同时复杂指令操作繁杂,执行速率慢,这并不难理解,假如单条指令对应的微指令过多,执行时间会变长。别的不定长和复杂数据类型的指令译码会导致硬件设计变得更复杂,很轻易堕落。CISC思想的汗青背景在于当时的存储器代价高,且读取速率慢,因此人们需要研究设计绕过存储器读写的微指令来实现对盘算机系统的高速控制。(这段话不知道对不对,课本上只说了存储器代价高和读取慢引起的,但是却没有直接到问题上)
        RISC思想,即精简指令集盘算机。随着存储器代价的下降与CPU制造技能的提高,RISC思想目前成为主流。这也是由于一些简单的指令便可实现对盘算机系统的控制,更复杂的系统只需要由这些简单指令组合即可。
课程研究目的

        研究指令集中是否存在某个指令是盘算机体系结构问题,乘法指令由什么样的器件(加法器或专门乘法器?)实现是盘算机构成的研究问题,底层物理器件接纳何种工艺实现是盘算机实现的内容,本课程的重要研究目的是盘算机体系结构与构成。
盘算机系统的工作原理——冯·诺依曼架构

        下面我们学习第一个学习的盘算机架构——冯·诺依曼架构,基于此架构学习盘算机系统的工作原理。下图为工作结构图:
        

此中虚线代表控制信息,实线代表数据信息。透过该图,我们能看出冯·诺依曼结构的重要特点:
        1. 以存储器为核心,由五大部分构成,存储器,运算器,控制器,输入设备,输出设备。具体地,运算器负责进行数据处理,存储器存放各种信息包含数据和程序,控制器对程序代码进行表明并产生各种控制信号,输入输出设备负责人机交互。
        2. 无论是控制信息还是数据信息均用二进制数进行标识,存放在同一个存储器中,不分别程序存储器和数据存储器
        3. 盘算机按照存储器的程序原理工作,其根本点在于指令驱动。程序和数据存储在存储器中,开始工作后,控制器主动从存储器中去除程序指令并执行。
        以上我们说的都是冯·诺伊曼架构的特点与广义架构思想,并不涉及实际的设计,下面我们学习基于总线的冯·诺依曼架构模型机。
基于总线的冯·诺依曼架构模型机

        模型机相比于架构图,更贴合实际盘算机设计,下图为一个基于总线的冯·诺依曼架构模型机大略图:

 下面我们针对图中每一个元素进行具体表明:
总线

        总线是毗连了不同子系统的公共通路,用于实现各个子系统或部件之间的数据传输和互换。根据传输信息不同,总线又分为数据总线(DB),地址总线(AB),控制总线(CB)
        特别的,AB,即地址总线只能由CPU发出,是一个单向通路(这是由于寻址是CPU独有的功能)。DB,数据总线是一个双向的数据互换总线。CB,控制总线包罗控制信号线和一些状态信号线,用于设备的监控。
存储器子系统

        存储器子系统被用来存放当前运行的程序和数据,对于冯·诺依曼架构来说,程序指令和数据被存放在同一个存储器中。这也埋下了一个缺点,那就是程序指令和数据不能同时被读取。下图呈现了存储器读写的流程:

        起首来自CPU的地址信号经地址总线,传输至存储器子系统。地址信号起首被存至地址寄存器中,之后地址信号经地址译码器解译为选通信号,之后再控制信号的作用下,对选定的存储单位进行读或写的操作,读出到与数据总线相连的数据缓冲器或将从数据总线传输至数据缓冲器的数据写入。
输入/输出子系统

        输入输出子系统完成的重要是盘算机与外部的信息缓缓,一般来说,盘算机与直接相连的外部设备(打印机,键盘等)进行数据互换的过程被称为输入/输出,而与远方设备进行数据互换的过程被称为数据通信。
        为了简化盘算机与外部设备的总线互连,同时也是由于外部设备结构的繁杂,我们在外部设备和盘算机总线之间设置了接口,接口一方面接收、转换、表明盘算机的命令,另一方面将总线从外部设备获取的数据传输给盘算机。接口的的组织与读/写方式与存储器类似。
CPU子系统

        CPU子系统的核心在于CPU。CPU,全称为中央处理单位,是一个集成了运算器、控制器、寄存器的超大规模集成电路芯片。对应于冯·诺依曼架构中的控制器和运算器,同时含有少部分的存储器。
        具体地,CPU与主存构成主机,其他输入/输出设备以及辅存被称为外部设备,简称外设。CPU主机构成了CPU子系统。主存可以被称为内存,辅存被称为外存。下图为一个一般的CPU内部结构:

下面我们以该图为例,具体学习一下CPU的工作原理。
运算器

        运算器的核心在于算术逻辑单位(ALU),其受控制信号进行加减乘除等根本运算操作。累加器(ACC)实际上是一个通用寄存器,其内部存放了两个被运算的操作数,同时算术逻辑单位盘算产生的结果也被短暂放入累加器中,方便下一步运算。在控制信号的控制下,累加锁存器被用来防治ACC对ALU下一步运算输入的影响。暂存器的作用在于保存操作数,但与累加器ACC不同的是,暂存器不被放入操作结果。操作结果的导出是经过ACC累加器的。标志寄存器是一个专用按位操作寄存器,寄存了ALU运算结果的特征,这些特征可以或许被CPU后续指令调用。
控制器

        控制器指挥控制了整个CPU的运转以及微处理器,其根据指令发出控制信号。控制器起首根据程序计数器指针(PC)中指定的地址,经过AB地址总线从存储子系统中取出地址地点处的指令,之后指令由DB数据总线传入指令寄存器(IR),指令之后经过指令译码器(ID)通过操作控制器确定时序,通过控制总线CB向部件发出控制信号。操作控制器(OC)中重要包罗脉冲发生器、控制矩阵等控制逻辑。
寄存器阵列

        寄存器阵列为CPU的临时存储单位,用到临时存放数据和地址,其访问速率高于存储器。某些需要被频仍使用的操作数与中间结果可以暂存于寄存器阵列,大大缩短了执行时间。
        具体地寄存器可以被分为通用寄存器和专用寄存器。专用寄存器的作用固定,比方堆栈指针(SP)程序计数器(PC),标志寄存器(FR)。
        PC中存放程序第一条指令地点存储单位的编号,次序执行情况下,每取出指令的1字节,PC内容主动加1,当从PC取完一条指令的所有字节之后,按照PC中存放的下一条指令的首地址,执行下一条指令,当遇到跳转指令时,程序指令运行次序将被改变,新的指令地址将被存入PC。
        堆栈是一组寄存器或存储器中开辟的一个特定区域。数据存入被称为‘压入’,数据被取出被称为‘弹出’。‘压入’与‘弹出’均发生在栈顶。因此堆栈指针就是被用来指示栈顶地址的寄存器。SP的初值由程序员设定,而后由CPU主动管理。
缓冲器

        地址和数据缓冲器是CPU地址与数据的出入口,被用来隔离CPU内部总线与盘算机外总线,提供附加驱动功能。

下一节我们学习的重心在于汇编语言与呆板语言指令作用下的模型机工作流程。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

金歌

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表