首页 > 其他分享 >软考笔记(9)--计算机组成原理4--总线系统

软考笔记(9)--计算机组成原理4--总线系统

时间:2023-04-09 22:57:46浏览次数:47  
标签:部件 -- 软考 总线 传输 地址 CPU 外设

前言

总线是多个系统部件之间进行数据传输的公共通路。所谓总线就是指能为多个功能部件服务的一组公用信息线,并且能够分时地发送和接收信息。通过总线连接,计算机可在各系统部件之间实现传输地址、数据和控制信息等操作。

计算机系统中存储器、CPU等功能部件之间必须互联才能组成计算机系统。部件之间可以通过单读的连线互联,这种方式是分散连接,缺点是当部件较多时,连线会错综复杂,并且难以支撑新增部件的场景。还有一种就是总线连接的方式,将各个部件连接到一组公用信息传输线上,优点是可以灵活的新加部件可以使用相同的总线的计算机系统之间互换,现代计算机普遍使用的都是总线互联结构。

一、总线的概念

1.1、总线的结构

总线(Bus)是计算机用于传输信息的公用通道,为多个部件服务的组信息传输连接线。任意时刻在总线上只能传输一种信息,也就是只能有一个部件在发送信息、但可以有多个部件同时接收信息。

按传输信息的属性分类主要有以下三种信号线

1、数据总线(Data Bus,DB)

数据总线用于在各部件之间传输数据信息,数据总线条数(总线宽度)一般就是计算机字长。计算机字长是指一台计算机CPU中的运算器、寄存器和指令集等采用的信息单位。常见字长有8位、16位、32位和64位等。

2、地址总线(Address Bus,AB)

地址总线用于传输各部件相互访问用的地址信息,地址总线宽度就是能传输的地址码位数,决定了CPU能够直接读写主存储器的范围大小

3、控制总线(Control Bus,CB)

控制总线用于传输控制各部件操作的控制信息,如CPU对存储器的读写命令、CPU对外设的启动和停止命令等。

 

按信息传输的方向区分可以将总线分为单向总线和双向总线

例如运算器与存储器之间的数据信号线是双向的;读写主存的控制线一般是由CPU把读写命令控制信号送至存储器,是单向总线

 

按连接部件的不同,总线分为内部总线、系统总线和通信总线(I/O总线)

内部总线:芯片内部连接各元件的总线

系统总线:连接CPU、存储器和I/O模块等主要部件等总线,通常是主板式或底板式总线

I/O总线:用于主机和I/O设备之间或计算机系统之间的通信

 

1.2、总线的组成

一个系统总线通常由一组控制线、一组数据线和一组地址线构成,也可以没有单独的地址线,采用数据线和地址线复用的方式。

数据线用来承载在源部件和目的部件之间传输的信息,信息可能是数据、命令、地址。

数据线的条数称为数据总线的宽度,决定了每次能同时传输的信息的位数,因为数据总线的宽度是决定系统总体性能的关键因素。

地址线用来给源数据或目的数据所在的主存单元或I/O端口的地址,例如要从主存单元读一个数据,CPU必须将主存单元的地址送到地址线上。若要输出一个数据到外设,那么CPU页必须把该外设的地址送到地址线上。地址线是单向的,它的位数决定了可寻址的地址空间的大小。

控制线用来控制对数据线和地址线的访问和使用,因为数据线和地址线是被连接在其上的所有设备共享的,如何使各个部件在需要时使用总线,需要靠控制线来协调,控制线用来传输定时信号和命令信息。

 

1.3、总线的连接方式

由于外设种类比较多且速度不同,不能简单将外设和速度很快的CPU连接起来,所以需要由适配器部件来完成,通过适配器可以实现高速CPU和低速外设之间在工作速度上的匹配和同步,并完成计算机和外设之间的所有数据传输和控制,适配器通常叫做接口。

1.3.1、单总线结构

 

单总线结构中CPU、主存和I/O设备使用一条单一的系统总线连接,各部件之间可以直接互联进行通信。在单总线结构中要求连接到总线上的部件必须高速运行,以便其他部件需要使用总线时可以很快得到总线控制权,避免导致时间延迟。

比如当CPU取一条指令时,首先把程序计数器PC中的地址同控制信息一起发送到总线上,该地址会传输至总线上所有部件,包括存储器和外设,只有与总线上的地址匹配的设备才能执行数据传输操作,所以取指令的响应部件是存储器,存储器将指令的信息在传输给CPU,其他部件不响应。相同的逻辑当CPU需要从外设中取数据时,只有外设会响应,其他部件不会响应。

单总线结构简单,增减设备方便,但是因为所有部件都连在单总线上,不允许两个设备同时使用总线发送信息,所以会产生总线的争用而影响性能。

1.3.2、双总线结构

单总线只能分时工作,同一时间只允许一对部件之间传输数据,信息传输的吞吐量会有所限制,而双总线结构中存在两种总线,分别是存储总线和I/O总线。

存储总线:用于CPU和存储器之间的信息传输

I/O总线:用于CPU和外设之间的信息传输

存储器和I/O设备之间想要信息传输时必须要通过CPU,一切信息传输全由CPU直接控制。当前也可以由存储器作为中心部件的双总线结构,CPU和外设分别和存储器连接,CPU和外设之间信息传输需要通过存储器来实现。

1.3.3、多总线结构

 

在双总线结构的基础上,为了使高速外设能够高速的与主存储器进行数据交换,在高速外设与主存储器之间可以增设直接存储器访问(Direct Memory Access,DMA)方式的高速总线(DMA总线),从而形成多总线结构。

在DMA方式中,外设和存储器之间数据交换不需要经过CPU,从而减轻了CPU对数据输入输出的控制,减轻了CPU的负担,从而提升了整个系统的效率,但是会增加更多的硬件代价。

  早期的总线实际上是处理器引脚的延伸,是处理器和I/O设备适配器的通道。这种简单的总线一般也由50~100条线组成,这些线按其功能可分为三类:地址线、数据线和控制线。 地址线是单向的,用来传送主存与设备的地址;数据线是双向的,用来传送数据;控制线对每一根线来讲是单向的,要么是CPU发向接口要么是接口发向CPU,用来指明数据传送的方向,中断控制和定时控制等。 早期总线结构等缺点是CPU是总线上唯一的主控者,即时有了不需要CPU等DMA,仍然不能满足多CPU环境多要求。另外总线信号是CPU引脚信号的延伸,总线结构紧密与CPU相关,通用性比较差。 在当代总线结构中,CPU和它私有的Cache作为一个模块与总线连线,系统中允许有多个这样的处理器模块。总线控制器完成几个总线请求者之间的协调与仲裁,整个总线系统分成以下4个模块: 1、数据传送总线:由地址线、数据线和控制线组成 2、仲裁总线:包括总线请求线和总线授权线 3、中断和同步总线:用于处理带优先级的中断操作,包括中断请求线和中断认可线 4、公用线:包括时钟信号线、电源线、地线、系统复位线以及加电活断电的时序信号线等    

 二、总线的控制和数据传输

总线的控制的一个重要问题是进行通信的设备如何获取总线的使用权,因为总线是被多个连接在其上的所有设备共享的,所以需要一个协议来表明哪个设备可以使用总线,如果没有任何控制,当多个设备需要进行通信时,每个设备都试图为各自的传输而将信号送到总线上,就会产生混乱。决定哪个总线主设备在下次得到总线使用权的过程称为总线裁决,主要的裁决方式由集中式裁决和分布式裁决两种。集中式裁决将控制逻辑坐在一个专门的总线控制器或总线裁决器中,通过将所有的总线请求集中起来利用一个特定的裁决算法进行裁决;分布式裁决中没有专门的总线控制器,其控制逻辑分散在各个部件或设备中。

2.1、集中式裁决方式

常有的集中式裁决方式有以下三种:

1、菊花链查询方式

2、计数器定时查询方式

3、独立请求方式

2.2、分布式裁决方式

常有的分布式裁决方式有以下两种:

1、自举分布式裁决

2、冲突检测分布式裁决

 

总线的数据传输方式有串行传输和并行传输两种

串行传输

串行总线的数据在数据线上按位进行传输,因此只需要一根数据线,线路成本低,在进行传输时按顺序传输一个数据的所有二进制的脉冲信号,每次一位,被传输的数据在发送部件中必须进行并行数据到串行数据的转换,这个过程称为拆卸;接收部件中则需要将串行数据转换成并行数据,这个过程称为装配。

并行传输

并行总线的数据在数据线上同时由多位一起传输,每一位要有一根数据线,因为需要多根数据线,并行传输比串行传输速度要快很多,但是需要更多的传输线。衡量并行总线速度的指标是最大数据传输率,即单位时间内在总线上传输的最大信息量。

一般用每秒多少兆字节(MB/s)来表示,比如总线的工作频率为33MHz,总线宽度为32位,那么最大数据传输率为:33 X 32 / 8 = 132MB/s

 

标签:部件,--,软考,总线,传输,地址,CPU,外设
From: https://www.cnblogs.com/jackion5/p/17301354.html

相关文章

  • java反射机制原理剖析
    当程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言。我们认为java并不是动态语言,但是java有一个非常突出的动态相关机制,俗称:反射。IT行业里这么说,没有反射也就没有框架,现有的框架都是以反射为基础。在实际项目开发中,用的最多的是框架,填的最多的是类,反射这一概念就是将......
  • Linux which命令
    Linuxwhich命令Linuxwhich命令用于查找文件。which指令会在环境变量$PATH设置的目录里查找符合条件的文件。语法which[文件...]参数:-n<文件名长度>指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。-p<文件名长度>与-n参数相同,但此处的<文件名长......
  • 几种SQL盲注的脚本
    BOOL型GET传参sql盲注点击查看代码importrequestschars=""foriinrange(32,127):chars+=chr(i)result=""url_template="http://yourip/sqllabs/Less-8/?id=2'andascii(substr(({0}),{1},1))>{2}%23"url_length="......
  • stable diffusion打造自己专属的LORA模型
    通过Lora小模型可以控制很多特定场景的内容生成。但是那些模型是别人训练好的,你肯定很好奇,我也想训练一个自己的专属模型(也叫炼丹~_~)。甚至可以训练一个专属家庭版的模型(familymodel),非常有意思。将自己的训练好的Lora模型放到stableDiffusionlora目录中,同时配上美丽的封面图。......
  • java并发编程(1):Java多线程-基本线程类-基础知识复习笔记
    复习资料:《同步与异步:并发/并行/进程/线程/多cpu/多核/超线程/管程 》基本线程类基本线程类基本线程类指的是Thread类,Runnable接口,Callable接口继承Thread创建线程继承java.lang.Thread类创建线程是最简单的一种方法,也最直接。publicclassMyThread1extendsThread{}种......
  • Linux cp 命令
    Linuxcp命令非常重要,运维必用命令Linuxcp(英文全拼:copyfile)命令主要用于复制文件或目录。语法cp[options]sourcedest或cp[options]source...directory参数说明:-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组......
  • Redis随笔
    Redis简介Redis是一个开源的key-value存储系统。存储在内存中。相比于Memcached,value类型相对更多,string、list、set、zset、hash。Redis操作都是原子性的,单线程多路IO复用Redis支持各种不同方式的排序。 keys*查看当前库所有keyexistskey判断某个key是否存在typek......
  • Semantic Kernel 入门系列:
    理解了LLM的作用之后,如何才能构造出与LLM相结合的应用程序呢?首先我们需要把LLMAI的能力和原生代码的能力区分开来,在SemanticKernel(以下简称SK),LLM的能力称为semanticfunction,代码的能力称为nativefunction,两者平等的称之为function(功能),一组功能构成一个技能(skill)。SK的基......
  • C/C++模拟校园卡消费记录查询系统[2023-04-09]
    C/C++模拟校园卡消费记录查询系统[2023-04-09]模拟校园卡1问题描述同学们都在机房做实验或自由上机,请根据自己实际使用情况编写一份模拟校园卡消费记录查询系统,实现登录,计费,挂失,统计等相关功能。2功能要求主要功能模块:(1)登录模块:同学根据自己设定的密码登录。三次错误则......
  • Lighting System Design uva11400
    设计一个照明系统,一共有n(n<=1000)种灯泡可供选择,不同种类的灯泡必须用不同的电源,同一种灯泡则可以用一个,输入为一个n,以下n行,每行四个数值,代表电压V,电源费用K,每个灯泡费用C,所需灯泡数量L。n=0为结束标志。为了省钱,你可以把一些灯泡换成电压更高的以节省电源的钱,但不能换成更低的,......