草庐IT

计算机组成原理(2.1)--系统总线

码银 2023-04-21 原文

目录

一、总线基本知识

1.总线

2.总线的信息传送

3.分散连接图 

4.注 

二、总线结构的计算机举例 

1.面向 CPU 的双总线结构框图

2.单总线结构框图

3.以存储器为中心的双总线结构框图

三、总线的分类 

1.片内总线

2.系统总线 (板级总线或板间总线)

2.1 数据总线

2.2 地址总线

2.3 控制总线

3.通信总线 

四、总线特性及性能指标

1.总线物理实现

2.总线特性

2.1机械特性

 2.2电气特性

2.3功能特性

 2.4时间特性

3.总线的性能指标

4.总线标准 


一、总线基本知识

1.总线

总线(分散连接):连接多个部件的信息传输线,是各部件共享的传输介质。

分散连接:各部件之间使用单独的连线

2.总线的信息传送

总线上信息的传送:串行和并行

串行
并行

3.分散连接图 

分散连接1

分散连接2

4.注 

(1)当两个或两个以上部件同时向总线发送信息, 将导致信号冲突,传输无效。 在某一时刻,只允许一个部件向总线发送信息。

(2)多个部件可以同时从总线上接收相同的信息。

(3)总线实际上是由许多传输线或通路组成。

二、总线结构的计算机举例 

1.面向 CPU 的双总线结构框图

面向 CPU 的双总线结构框图

2.单总线结构框图

单总线结构框图

3.以存储器为中心的双总线结构框图

以存储器为中心的双总线结构框图

三、总线的分类 

按数据传输方式:并行传输总线 、串行传输总线

按使用范围 计算机总线、测控总线、网络通信总线

按连接部件分类:片内总线、系统总线、通信总线

1.片内总线

片内总线是指芯片内部的总线,如在 CPU 芯片内部,寄存器与寄存器之间、寄存器与算逻单
元ALU 之间都由片内总线连接。

2.系统总线 (板级总线或板间总线

 按系统总线传输信息的不同,又可分为三类:数据总线、地址总线和控制总线

2.1 数据总线

数据总线用来传输各功能部件之间的数据信息,它是双向传输总线,其位数与机器字长、存
储字长有关,一般为 位、 16 位或 32 位。数据总线的位数称为数据总线宽度,它是衡量系统性能的一个重要参数。

如果数据总线的宽度为 8位,指令字长为 16 位,那么, CPU 在取指阶段必须两次访问主存。

2.2 地址总线

地址总线主要用来指出数据总线上的源数据或目的数据在主存单元的地址或 1/0 设备的地址。 

地址总线上的代码是用来指明 CPU 欲访问的存储单元或 1/0 端口的地址,由 CPU 输出,单向传输。

与存储地址、 I/O地址有关

地址线的位数与存储单元的个数有关,地址线为 20 根,则对应的存储单元个数为2^20

2.3 控制总线

由于数据总线、地址总线都是被挂在总线上的所有部件共享的,如何使各部件能在不同时刻
占有总线使用权,需依靠控制总线来完成,因此控制总线是用来发出各种控制信号的传输线。

控制信号既有输出,又有输入

出:存储器读、存储器写总线允许、中断确认

入:中断请求、总线请求

常见的控制信号如下:

   时钟
   复位
   总线请求
   总线允许
   中断请求
   中断响应
   存储器写
   存储器读
   I/O
   I/O

3.通信总线 

这类总线用千计算机系统之间或计算机系统与其他系统(如控制仪表、移动通信等)之间的
通信。

按传输方式可分为两种:串行通信和并行通信。

四、总线特性及性能指标

1.总线物理实现

2.总线特性

2.1机械特性

机械特性是指总线在机械连接方式上的一些性能,如插头与插座使用的标准,它们的几何
寸、形状、引脚的个数以及排列的顺序,接头处的可靠接触等。 

 2.2电气特性

电气特性是指总线的每一根传输线上信号的传递方向和有效的电平范围。通常规定由
CPU 发出的信号称为输出信号,送入 CPU 的信号称为输入信号。

2.3功能特性

功能特性是指总线中每根传输线的功能,例如,地址总线用来指出地址码;数据总线用来传
数据;控制总线发出控制信号,既有从 CPU 发出的,如存储器读/写、 1/0 设备读/写,也有 1/0设备向 CPU 发来的,如中断请求、 DMA 请求等。由此可见,各条线的功能不同。

 2.4时间特性

时间特性是指总线中的任一根线在什么时间内有效。每条总线上的各种信号互相存在一种
有效时序的关系,因此,时间特性一般可用信号时序图来描述。

3.总线的性能指标

①总线宽度:通常是指数据总线的根数,用 bit (位)表示,如 8位、 16 位、 32 位、 64 位(即8根、 16 根、 32 根、 64 根)。
②总线带宽:总线带宽可理解为总线的数据传输速率,即单位时间内总线上传输数据的位数,通常用每秒传输信息的字节数来衡量,单位可用 MBps (兆字节每秒)表示。例如,总线工作频率为 33 MHz ,总线宽度为 32 (4 B) ,则总线带宽为 33x(32+8)= 132 MBps
③时钟同步/异步:总线上的数据与时钟同步工作的总线称为同步总线,与时钟不同步工作
的总线称为异步总线
④总线复用:一条信号线上分时传送两种信号。例如,通常地址总线与数据总线在物理上
是分开的两种总线,地址总线传输地址码,数据总线传输数据信息。为了提高总线的利用率,优化设计,特将地址总线和数据总线共用一组物理线路,在这组物理线路上分时传输地址信号和数据信号,即为总线的多路复用。
⑤信号线数:地址总线、数据总线和控制总线三种总线数的总和。
⑥总线控制方式:包括突发工作、自动配置、仲裁方式、逻辑方式、计数方式等。
⑦其他指标:如负载能力、电源电压(是采用 5V 还是 3.3 V) 、总线宽度能否扩展等。

4.总线标准 

ISA

EISA

VESA(LV-BUS)

PCI

AGP

RS-232

USB

有关计算机组成原理(2.1)--系统总线的更多相关文章

  1. ruby-on-rails - 使用一系列等级计算字母等级 - 2

    这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,

  2. ruby-on-rails - 正确的 Rails 2.1 做事方式 - 2

    question的一些答案关于redirect_to让我想到了其他一些问题。基本上,我正在使用Rails2.1编写博客应用程序。我一直在尝试自己完成大部分工作(因为我对Rails有所了解),但在需要时会引用Internet上的教程和引用资料。我设法让一个简单的博客正常运行,然后我尝试添加评论。靠我自己,我设法让它进入了可以从script/console添加评论的阶段,但我无法让表单正常工作。我遵循的其中一个教程建议在帖子Controller中创建一个“评论”操作,以添加评论。我的问题是:这是“标准”方式吗?我的另一个问题的答案之一似乎暗示应该有一个CommentsController参

  3. 电脑0x0000001A蓝屏错误怎么U盘重装系统教学 - 2

      电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。  准备工作:  1、U盘一个(尽量使用8G以上的U盘)。  2、一台正常联网可使用的电脑。  3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。  4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。  U盘启动盘制作步骤:  注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注

  4. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  5. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  6. kvm虚拟机安装centos7基于ubuntu20.04系统 - 2

    需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc

  7. ruby - 如何计算 Liquid 中的变量 +1 - 2

    我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我

  8. ruby - 使用 Ruby,计算 n x m 数组的每一列中有多少个 true 的简单方法是什么? - 2

    给定一个nxmbool数组:[[true,true,false],[false,true,true],[false,true,true]]有什么简单的方法可以返回“该列中有多少个true?”结果应该是[1,3,2] 最佳答案 使用转置得到一个数组,其中每个子数组代表一列,然后将每一列映射到其中的true数:arr.transpose.map{|subarr|subarr.count(true)}这是一个带有inject的版本,应该在1.8.6上运行,没有任何依赖:arr.transpose.map{|subarr|subarr.in

  9. ruby - 在没有基准或时间的情况下用 Ruby 测量用户时间或系统时间 - 2

    因为我现在正在做一些时间测量,我想知道是否可以在不使用Benchmark类或命令行实用程序time的情况下测量用户时间或系统时间。使用Time类只显示挂钟时间,而不显示系统和用户时间,但是我正在寻找具有相同灵active的解决方案,例如time=TimeUtility.now#somecodeuser,system,real=TimeUtility.now-time原因是我有点不喜欢Benchmark,因为它不能只返回数字(编辑:我错了-它可以。请参阅下面的答案。)。当然,我可以解析输出,但感觉不对。*NIX系统的time实用程序也应该可以解决我的问题,但我想知道是否已经在Ruby中实

  10. arrays - 计算数组中的匹配元素 - 2

    给定两个大小相等的数组,如何找到不考虑位置的匹配元素的数量?例如:[0,0,5]和[0,5,5]将返回2的匹配项,因为有一个0和一个5共同;[1,0,0,3]和[0,0,1,4]将返回3的匹配项,因为0有两场,1有一场;[1,2,2,3]和[1,2,3,4]将返回3的匹配项。我尝试了很多想法,但它们都变得相当粗糙和令人费解。我猜想有一些不错的Ruby习惯用法,或者可能是一个正则表达式,可以很好地回答这个解决方案。 最佳答案 您可以使用count完成它:a.count{|e|index=b.index(e)andb.delete_at

随机推荐