硬件小问题“答疑”

我有在学习操作系统原理。这几天应试赶着把机组也大致过了一遍。试着回答吧。

> 还有几个硬件小问题:

> 1、对内存编址的时候,是每一个位都编号还是仅仅对每一个字节编号?若是后者。那意味着每一个字节是被当做总体使用的。即字节就是最小存储单位不可再分。若是前者,那么会出现这么一种情况,一个字节的前四位存储一些信息,后四位存储其它信息而互不相关,能够分别调用。

主存各存储单元的空间位置是由单元地址号来表示的,而地址总线是用来指出存储单元地址号的,依据该地址可读出或写入一个存储字。

计算机系统既可按字寻址。也可按字节寻址。

> 3、内存怎样寻址,或者(CPU)怎样在内存条中找到须要的地址?

当要读取内存中的信息字时,CPU先将地址送至内存,内存再把该地址单元的信息读出。

具体例如以下:

CPU先将该信息字的地址送至MAR(放地址信息的 存储器地址寄存器Memory address register,在cpu上),MAR通过地址总线把地址送至内存。发出读命令。

内存接收到读命令,便将单元信息读出至MDR(放数据的存储器数据寄存器Memory Data register。在cpu上)

以上就是我学习唐溯飞《计算机组成原理》还有找了几本外国教材參考后所得出的回答。

可是我认为还是没有回答到点子上。由于“通过地址总线把地址送至内存”,这里还是没有说明究竟怎样找到内存的这个地址。然后我深入找了地址总线的资料,发现几本书籍都基本上仅仅是说“地址总线主要用来指出数据总线上的源数据或目的数据在主存单元的地址或I/O设备的地址。

(ps:大家有什么好的计算机组成原理教材推荐吗?我找过几本书,可是都不够国人的那本教材具体)

接着去网上搜集了一些资料。基本上都是仅仅有粗略的说法。在wiki上

”When a processor or DMA-enabled device needs to read or write to a memory location, it specifies that memory location on the address bus (the value to be read or written is sent on the data bus). The width of the address bus determines the amount of memory
a system can address. “

和实现

”Early processors used a wire for each bit of the address width. For example, a 16-bit address bus had 16 physical wires making up the bus. As the buses became wider, this approach became expensive in terms of the number of chip pins and board traces. Beginning
with the Mostek 4096 DRAM, address multiplexing implemented with multiplexers became common. In a multiplexed address scheme, the address is sent in two equal parts on alternate bus cycles. This halves the number of address bus signals required to connect
to the memory. For example, a 32-bit address bus can be implemented by using 16 lines and sending the first half of the memory address, immediately followed by the second half.“

開始我以为这样能够解答,可是感觉还是差点。再去看看《编码》,我发现,事实上仅仅要知道地址总线传输过去的二进制地址,就能够通过类似这种选择电路把内存(或里面锁存器【事实上就是存放一位信息的触发器】)的信息读出。

补充下:由于有採用虚拟内存。CPU还要将一个虚拟内存空间中的地址转换为物理地址再送至内存。

以上就是我的理解。

若有错漏,还望各位不吝不吝赐教。

> 2、内存的地址信息存放在哪里?就像对硬盘编址一样,总要腾出一部分空间专门记录硬盘的地址管理信息,即元数据。

參见问题3。假设确实像我理解的那样子,内存中没有专门存放全部地址的地方,每次要訪问哪个地址,由地址线来二进制地址通过电路选择器来确定。

硬盘要腾出一部分空间专门记录硬盘的地址管理信息。是由于硬盘寻址的原理与RAM不一样。RAM直接就能够这样通过电路选择读出内容,而硬盘须要磁头定位。磁盘调度还有好多算法。

今天学习时,发现了能解决上次一个疑问的知识点。

实际上,依据MAR中的地址訪问某个存储单元时。还需经过地址译码、驱动等电路。才干找到所需訪问的单元,读出时,需经过读出放大器,才干将被选中单元的存储字送到MDR中。

译码驱动能那个把地址总线送来的地址信号翻译成相应存储单元的选择信号。

译码驱动方式有线选法和重合法两种。

——《计算机组成原理》唐朔飞

地址译码驱动电路

  译码器将地址总线输入的地址码转换成与其相应的译码输出线上的高电平或低电平信号。以表示选中了某一单元。并由驱动器提供驱动电流去驱动相应的读/写电路。完毕对被选中单元的读/写操作。该电路实际上包括译码器和驱动器两部分。

存储体是存储器的核心,是存储单元的集合体。

它由若干个存储单元组成。每一个存储单元又由若干个基本存储电路(或称存储元)组成,每一个存储单元可存放一位二进制数。通常,一个存储单元为一个字节。存放8位二进制数。即以字节形式来组织。为了区分不同的存储单元和便于读/写操作,每一个存储单元有一个地址(称为存储单元地址)。CPU訪问时按地址訪问。为了降低存储器芯片的封装引脚数和简化译码器结构,存储体总是依照二维矩阵的形式来排列存储单元电路

http://www.tyut.edu.cn/kecheng1/2008/site04/courseware/chapter5/5.4.htm

http://blog.csdn.net/csc2003/article/details/36378035  
我把我的“解答”写在blog上,有人对此作出了自己的解答。

大家能够看看~我是原帖作者,事实上原帖的问题是我们邮件列表中一个朋友提出的。

谢谢csc2003,我非常惊喜有人如此具体回复,受益良多。

“纵观全文,楼主偏向硬件方面。这些全属于厂家硬件商业机密,对外发布的也仅仅会是接口,内部详细实现肯定不会对外发布的,别瞎想了。

事实上我是CS的学生,稍稍涉猎下硬件方面玩玩而已。

由于看了《编码》这本书。心中已经根植了“给我一堆继电器,我能创造一台计算机!”这种念头。学习时不禁想深入究竟。

当然。现代计算机的细微构造是多年来各位大牛的结晶,与我所说的用继电器造成的计算机有着天渊地别(首先都已经用半导体不用继电器了好不好)。

时间: 2024-10-21 07:00:20

硬件小问题“答疑”的相关文章

硬件小知识

1.OPEN drain gate(OD门) 漏极开路(Open Drain)即高阻状态,适用于输入/输出,其可独立输入/输出低电平和高阻状态,若需要产生高电平,则需使用外部上拉电阻或使用如LCX245等电平转换芯片.同时具有很大的驱动能力,可以作为缓冲器使用.由此可知OD门可以独立的输入输出低电平,不能产生高电平,同时其驱动能力比较客观.

微信小程序全套使用指南

首先说一下,我对小程序的思考.我觉得小程序解决了以下的问题: 1.手机内存不足,但是又想装那些使用频次低的app. 2.公众号和服务号已经没法满足需求了. 3.创业团队开发原生app成本太高. 在如果小程序发展顺利,那么Android开发人员会受到一定的冲击,前端会进一步获得优势. 我个人觉得应该了解一下小程序的开发,在这之前我们要先熟悉小程序的使用. 如何获得小程序入口 1.小程序入口是自动出现在微信「底栏」的「发现」一栏的最下方 如果打开微信的你并没有发现多了这个功能入口,那么你可以先检查微

Android USB Host与HID通讯

前端时间捣鼓一个HID的硬件, 需要和android通信, 网上搜索了一圈,收获不小. 比较好的文章是:      Android USB Host与HID通讯 Android Service创建USB HOST通信 其中代码之处有些地方需要注意的, 特此注明一下: /** * USB HOST 连接 HID * @author IVAN * */ public class MainActivity extends Activity { private static final String T

一个B端硬件产品经理的成长史

择业选择是一个非常重要的问题,有时候一个好的起点是决定很长一段时间内个人成长的速度.而往往初出茅庐的职场新人面对着纷杂选择和各类建议往往陷入抉择泥潭.尤其是刚刚步入职场社会,对各类企业能给自己带来怎样的收益并不太清楚.笔者在B端硬件领域工作多年,从业过程中观察过不少企业,也跟很多同行工程师有一些交流.将分享一下笔者在从业过程中看到的企业,讲述企业的业务方式.工作流程,也许对你的择业选择会带来一些新视角.笔者从B端硬件设计公司工程师到逻辑工程师,再到创业公司项目负责人,最后走上了B端产品经理的职业

微信小程序通过低功率蓝牙控制单片机上硬件设备

1.软件部分介绍 微信小程序是一种新的应用,用户不需要下载应用只用通过扫二维码或者打开链接就能使用,使用完后不需要卸载,直接关闭就行了.微信在2017年初推出微信小程序开发环境.任何企业,媒体,个人都可以注册开发.是一种全新的 开发模式.微信也因此受到许多程序员的一致好评,尤其是微信小程序的云开发,提供大量数据处理接口,让初学者也可以很快入手.不需要后端数据库的支持,自己一个人就可以开发前端和后台. 微信小程序为蓝牙模块提供了18个API.其中低功率蓝牙9个,传统蓝牙9个.本次设计使用了其中的9

开源项目之小玩具---各种机器人开源硬件

一些小玩具的网站 作者: doskey 日期: 2012 年 10 月 10 日1 条评论 TinkerForge - http://www.tinkerforge.com一个开源机器人的网站.Made In Germany.东西很好只是太贵. Arduino – http://www.arduino.cc著名的开源电路项目.价格不便宜.适合爱折腾的同学. Raspberry Pi – http://www.raspberrypi.org现在最火爆的开源电路板——树莓派.东西便宜,可玩性高,但是

跑分实测PK。硬件评测,方小盒M8!

不多说,先上方小盒M8 四核八显,智能高清播放器.,安兔兔跑分图.图片来自某东,不信可以去查证. 仔细看,这是安兔兔v4的跑分.注意CPU和图形部分.CPU整数:3253CPU浮点:23392D绘图你可能觉得这个分很吊,而且因为采用了cortex-A9 r4和28nm制程的缘故,它就应该这么吊.但是请注意,你需要认识到这么高的分数意味着什么. 下面是三*星S4的跑分图,CPU是Exynos5210(双四核(八核)A15+A7): CPU的两个分数是2837和2954,3D分数6649.京东的图可

利用Python的xlrd和xlwt功能,开发小程序用于实现硬件GPIO译码 工作日志

待完成: 增加CA的位置识别,完成WCDMA.CDMA.GSM 译码动作 02/12  完成输入表格建立,完成译码基本框架 输入逻辑说明: State 表示 天线的状态,取值0-30 Up/Down 表示 上下天线 取值 0-1 : 0表示上天线 1表示下天线 CA表示线控是GPIO 是单频段线控 还是 CA频段线控 取值 0-3  :0 单频段,3表示4CC Band 表示 同一个天线状态,最多可以同时支持的频段各数 GPIO表示当前的天线状态读输入GPIO 以LTE为例如下表所示: 实现效果

智能硬件+App移动新生态【11.01深圳】

活动概况 时间:2015年11月01日13:30-16:30 地点:深圳腾讯大厦(南山区科技园科技中一路)2楼多功能厅 主办:APICloud.庆科.信鸽 费用:免费 活动背景 智能电视.智能汽车.智能手环.智能手表.智能家居.智能硬件+结合移动App正在形成一个软硬结合的生态,智能硬件创业者在物联网时代正面对着不小的挑战,如何迎接智能硬件行业即将面对的井喷式爆发?如何占领移动互联网浪潮中的智能硬件新兴市场,本次活动中,APICloud带你走进智能硬件+APP移动生态新模式,拥抱物联网世界! 近