① 计算机的存储器主要功能是什么
计算机存储器的功能:
计算机存储器根据控制器指定的位置存入和取出信息。有了存储器,计算机才有记忆功能,才能保证正常工作。具体解释如下:
内储存器直接与CPU相连接,储存容量较小,但速度快,用来存放当前运行程序的指令和数据,并直接与CPU交换信息。
外储存器是内储存器的扩充。它储存容量大,价格低,但储存速度慢,一般用来存放大量暂时不用的程序,数据和中间结果,需要时,可成批的与内存进行信息交换。外存只能与内存交换信息,不能被计算机系统的其他部件直接访问。
(1)存储器的功能地址都相同扩展阅读
存储器分为内存储器与外存储器,简称内存与外存。内存储器又常称为主存储器(简称主存),属于主机的组成部分;外存储器又常称为辅助存储器(简称辅存),属于外部设备。CPU不能像访问内存那样,直接访问外存,外存要与CPU或I/O设备进行数据传输,必须通过内存进行。在80386以上的高档微机中,还配置了高速缓冲存储器(cache),这时内存包括主存与高速缓存两部分。对于低档微机,主存即为内存。
计算机中,存储器容量以字节(Byte,简写为B)为基本单位,一个字节由8个二进制位(bit)组成。存储容量的表示单位除了字节以外,还有KB、MB、GB、TB(可分别简称为K、M、G、T,例如,128MB可简称为128M)。其中:1KB=1024B,1MB=1024KB,1GB=1024MB,1TB=1024GB。
② 存储单元的存储单元
在计算机中最小的信息单位是bit,也就是一个二进制位,8个bit组成一个Byte,也就是字节。一个存储单元可以存储一个字节,也就是8个二进制位。计算机的存储器容量是以字节为最小单位来计算的,对于一个有128个存储单元的存储器,可以说它的容量为128字节。如果有一个1KB的存储器则它有1024个存储单元,它的编号为从0-1023。存储器被划分成了若干个存储单元,每个存储单元都是从0开始顺序编号,如一个存储器有128个存储单元,则它的编号就是从0-127。
存储地址一般用十六进制数表示,而每一个存储器地址中又存放着一组二进制(或十六进制)表示的数,通常称为该地址的内容。值得注意的是,存储单元的地址和地址中的内容两者是不一样的。前者是存储单元的编号,表示存储器总的一个位置,而后者表示这个位置里存放的数据。正如一个是房间号码,一个是房间里住的人一样。
存放一个机器字的存储单元,通常称为字存储单元,相应的单元地址叫字地址。而存放一个字节的单元,称为字节存储单元,相应的地址称为字节地址。如果计算机中可以编址的最小单元是字存储单元,则该计算机称为按字寻址的计算机。如果计算机中可编址的最小单位是字节,则该计算机称为按字节寻址的计算机。如果机器字长等于存储器单元的位数,一个机器字可以包含数个字节,所以一个存储单元也可以包含数个能够单独编址的字节地址。例如一个16位二进制的字存储单元可存放两个字节,可以按字地址寻址,也可以按字节地址寻址。当用字节地址寻址时,16位的存储单元占两个字节地址。
③ 存储器的原理是什么
存储器讲述工作原理及作用
介绍
存储器(Memory)是现代信息技术中用于保存信息的记忆设备。其概念很广,有很多层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。计算机中全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。有了存储器,计算机才有记忆功能,才能保证正常工作。计算机中的存储器按用途存储器可分为主存储器(内存)和辅助存储器(外存),也有分为外部存储器和内部存储器的分类方法。外存通常是磁性介质或光盘等,能长期保存信息。内存指主板上的存储部件,用来存放当前正在执行的数据和程序,但仅用于暂时存放程序和数据,关闭电源或断电,数据会丢失。
2.按存取方式分类
(1)随机存储器(RAM):如果存储器中任何存储单元的内容都能被随机存取,且存取时间与存储单元的物理位置无关,则这种存储器称为随机存储器(RAM)。RAM主要用来存放各种输入/输出的程序、数据、中间运算结果以及存放与外界交换的信息和做堆栈用。随机存储器主要充当高速缓冲存储器和主存储器。
(2)串行访问存储器(SAS):如果存储器只能按某种顺序来存取,也就是说,存取时间与存储单元的物理位置有关,则这种存储器称为串行访问存储器。串行存储器又可分为顺序存取存储器(SAM)和直接存取存储器(DAM)。顺序存取存储器是完全的串行访问存储器,如磁带,信息以顺序的方式从存储介质的始端开始写入(或读出);直接存取存储器是部分串行访问存储器,如磁盘存储器,它介于顺序存取和随机存取之间。
(3)只读存储器(ROM):只读存储器是一种对其内容只能读不能写入的存储器,即预先一次写入的存储器。通常用来存放固定不变的信息。如经常用作微程序控制存储器。目前已有可重写的只读存储器。常见的有掩模ROM(MROM),可擦除可编程ROM(EPROM),电可擦除可编程ROM(EEPROM).ROM的电路比RAM的简单、集成度高,成本低,且是一种非易失性存储器,计算机常把一些管理、监控程序、成熟的用户程序放在ROM中。
3.按信息的可保存性分类
非永久记忆的存储器:断电后信息就消失的存储器,如半导体读/写存储器RAM。
永久性记忆的存储器:断电后仍能保存信息的存储器,如磁性材料做成的存储器以及半导体ROM。
4.按在计算机系统中的作用分
根据存储器在计算机系统中所起的作用,可分为主存储器、辅助存储器、高速缓冲存储器、控制存储器等。为了解决对存储器要求容量大,速度快,成本低三者之间的矛盾,目前通常采用多级存储器体系结构,即使用高速缓冲存储器、主存储器和外存储器。
能力影响
从写命令转换到读命令,在某个时间访问某个地址,以及刷新数据等操作都要求数据总线在一定时间内保持休止状态,这样就不能充分利用存储器通道。此外,宽并行总线和DRAM内核预取都经常导致不必要的大数据量存取。在指定的时间段内,存储器控制器能存取的有用数据称为有效数据速率,这很大程度上取决于系统的特定应用。有效数据速率随着时间而变化,常低于峰值数据速率。在某些系统中,有效数据速率可下降到峰值速率的10%以下。
通常,这些系统受益于那些能产生更高有效数据速率的存储器技术的变化。在CPU方面存在类似的现象,最近几年诸如AMD和 TRANSMETA等公司已经指出,在测量基于CPU的系统的性能时,时钟频率不是唯一的要素。存储器技术已经很成熟,峰值速率和有效数据速率或许并不比以前匹配的更好。尽管峰值速率依然是存储器技术最重要的参数之一,但其他结构参数也可以极大地影响存储器系统的性能。
影响有效数据速率的参数
有几类影响有效数据速率的参数,其一是导致数据总线进入若干周期的停止状态。在这类参数中,总线转换、行周期时间、CAS延时以及RAS到CAS的延时(tRCD)引发系统结构中的大部分延迟问题。
总线转换本身会在数据通道上产生非常长的停止时间。以GDDR3系统为例,该系统对存储器的开放页不断写入数据。在这期间,存储器系统的有效数据速率与其峰值速率相当。不过,假设100个时钟周期中,存储器控制器从读转换到写。由于这个转换需要6个时钟周期,有效的数据速率下降到峰值速率的 94%。在这100个时钟周期中,如果存储器控制器将总线从写转换到读的话,将会丢失更多的时钟周期。这种存储器技术在从写转换到读时需要15个空闲周期,这会将有效数据速率进一步降低到峰值速率的79%。表1显示出针几种高性能存储器技术类似的计算结果。
显然,所有的存储器技术并不相同。需要很多总线转换的系统设计师可以选用诸如XDR、RDRAM或者DDR2这些更高效的技术来提升性能。另一方面,如果系统能将处理事务分组成非常长的读写序列,那么总线转换对有效带宽的影响最小。不过,其他的增加延迟现象,例如库(bank)冲突会降低有效带宽,对性能产生负面影响。
DRAM技术要求库的页或行在存取之前开放。一旦开放,在一个最小周期时间,即行周期时间(tRC)结束之前,同一个库中的不同页不能开放。对存储器开放库的不同页存取被称为分页遗漏,这会导致与任何tRC间隔未满足部分相关的延迟。对于还没有开放足够周期以满足tRC间隙的库而言,分页遗漏被称为库冲突。而tRC决定了库冲突延迟时间的长短,在给定的DRAM上可用的库数量直接影响库冲突产生的频率。
大多数存储器技术有4个或者8个库,在数十个时钟周期具有tRC值。在随机负载情况下,那些具有8个库的内核比具有4个库的内核所发生的库冲突更少。尽管tRC与库数量之间的相互影响很复杂,但是其累计影响可用多种方法量化。
存储器读事务处理
考虑三种简单的存储器读事务处理情况。第一种情况,存储器控制器发出每个事务处理,该事务处理与前一个事务处理产生一个库冲突。控制器必须在打开一个页和打开后续页之间等待一个tRC时间,这样增加了与页循环相关的最大延迟时间。在这种情况下的有效数据速率很大程度上决定于I/O,并主要受限于DRAM内核电路。最大的库冲突频率将有效带宽削减到当前最高端存储器技术峰值的20%到30%。
在第二种情况下,每个事务处理都以随机产生的地址为目标。此时,产生库冲突的机会取决于很多因素,包括tRC和存储器内核中库数量之间的相互作用。tRC值越小,开放页循环地越快,导致库冲突的损失越小。此外,存储器技术具有的库越多,随机地址存取库冲突的机率就越小。
第三种情况,每个事务处理就是一次页命中,在开放页中寻址不同的列地址。控制器不必访问关闭页,允许完全利用总线,这样就得到一种理想的情况,即有效数据速率等于峰值速率。
第一种和第三种情况都涉及到简单的计算,随机情况受其他的特性影响,这些特性没有包括在DRAM或者存储器接口中。存储器控制器仲裁和排队会极大地改善库冲突频率,因为更有可能出现不产生冲突的事务处理,而不是那些导致库冲突的事务处理。
然而,增加存储器队列深度未必增加不同存储器技术之间的相对有效数据速率。例如,即使增加存储器控制队列深度,XDR的有效数据速率也比 GDDR3高20%。存在这种增量主要是因为XDR具有更高的库数量以及更低的tRC值。一般而言,更短的tRC间隔、更多的库数量以及更大的控制器队列能产生更高的有效带宽。
实际上,很多效率限制现象是与行存取粒度相关的问题。tRC约束本质上要求存储器控制器从新开放的行中存取一定量的数据,以确保数据管线保持充满。事实上,为保持数据总线无中断地运行,在开放一个行之后,只须读取很少量的数据,即使不需要额外的数据。
另外一种减少存储器系统有效带宽的主要特性被归类到列存取粒度范畴,它规定了每次读写操作必须传输的数据量。与之相反,行存取粒度规定每个行激活(一般指每个RAS的CAS操作)需要多少单独的读写操作。列存取粒度对有效数据速率具有不易于量化的巨大影响。因为它规定一个读或写操作中需要传输的最小数据量,列存取粒度给那些一次只需要很少数据量的系统带来了问题。例如,一个需要来自两列各8字节的16字节存取粒度系统,必须读取总共32字节以存取两个位置。因为只需要32个字节中的16个字节,系统的有效数据速率降低到峰值速率的50%。总线带宽和脉冲时间长度这两个结构参数规定了存储器系统的存取粒度。
总线带宽是指连接存储器控制器和存储器件之间的数据线数量。它设定最小的存取粒度,因为对于一个指定的存储器事务处理,每条数据线必须至少传递一个数据位。而脉冲时间长度则规定对于指定的事务处理,每条数据线必须传递的位数量。每个事务处理中的每条数据线只传一个数据位的存储技术,其脉冲时间长度为1。总的列存取粒度很简单:列存取粒度=总线宽度×脉冲时间长度。
很多系统架构仅仅通过增加DRAM器件和存储总线带宽就能增加存储系统的可用带宽。毕竟,如果4个400MHz数据速率的连接可实现 1.6GHz的总峰值带宽,那么8个连接将得到3.2GHz。增加一个DRAM器件,电路板上的连线以及ASIC的管脚就会增多,总峰值带宽相应地倍增。
首要的是,架构师希望完全利用峰值带宽,这已经达到他们通过物理设计存储器总线所能达到的最大值。具有256位甚或512位存储总线的图形控制器已并不鲜见,这种控制器需要1,000个,甚至更多的管脚。封装设计师、ASIC底层规划工程师以及电路板设计工程师不能找到采用便宜的、商业上可行的方法来对这么多信号进行布线的硅片区域。仅仅增加总线宽度来获得更高的峰值数据速率,会导致因为列存取粒度限制而降低有效带宽。
假设某个特定存储技术的脉冲时间长度等于1,对于一个存储器处理,512位宽系统的存取粒度为512位(或者64字节)。如果控制器只需要一小段数据,那么剩下的数据就被浪费掉,这就降低了系统的有效数据速率。例如,只需要存储系统32字节数据的控制器将浪费剩余的32字节,进而导致有效的数据速率等于50%的峰值速率。这些计算都假定脉冲时间长度为1。随着存储器接口数据速率增加的趋势,大多数新技术的最低脉冲时间长度都大于1。
选择技巧
存储器的类型将决定整个嵌入式系统的操作和性能,因此存储器的选择是一个非常重要的决策。无论系统是采用电池供电还是由市电供电,应用需求将决定存储器的类型(易失性或非易失性)以及使用目的(存储代码、数据或者两者兼有)。另外,在选择过程中,存储器的尺寸和成本也是需要考虑的重要因素。对于较小的系统,微控制器自带的存储器就有可能满足系统要求,而较大的系统可能要求增加外部存储器。为嵌入式系统选择存储器类型时,需要考虑一些设计参数,包括微控制器的选择、电压范围、电池寿命、读写速度、存储器尺寸、存储器的特性、擦除/写入的耐久性以及系统总成本。
选择存储器时应遵循的基本原则
1、内部存储器与外部存储器
一般情况下,当确定了存储程序代码和数据所需要的存储空间之后,设计工程师将决定是采用内部存储器还是外部存储器。通常情况下,内部存储器的性价比最高但灵活性最低,因此设计工程师必须确定对存储的需求将来是否会增长,以及是否有某种途径可以升级到代码空间更大的微控制器。基于成本考虑,人们通常选择能满足应用要求的存储器容量最小的微控制器,因此在预测代码规模的时候要必须特别小心,因为代码规模增大可能要求更换微控制器。目前市场上存在各种规模的外部存储器器件,我们很容易通过增加存储器来适应代码规模的增加。有时这意味着以封装尺寸相同但容量更大的存储器替代现有的存储器,或者在总线上增加存储器。即使微控制器带有内部存储器,也可以通过增加外部串行EEPROM或闪存来满足系统对非易失性存储器的需求。
2、引导存储器
在较大的微控制器系统或基于处理器的系统中,设计工程师可以利用引导代码进行初始化。应用本身通常决定了是否需要引导代码,以及是否需要专门的引导存储器。例如,如果没有外部的寻址总线或串行引导接口,通常使用内部存储器,而不需要专门的引导器件。但在一些没有内部程序存储器的系统中,初始化是操作代码的一部分,因此所有代码都将驻留在同一个外部程序存储器中。某些微控制器既有内部存储器也有外部寻址总线,在这种情况下,引导代码将驻留在内部存储器中,而操作代码在外部存储器中。这很可能是最安全的方法,因为改变操作代码时不会出现意外地修改引导代码。在所有情况下,引导存储器都必须是非易失性存储器。
可以使用任何类型的存储器来满足嵌入式系统的要求,但终端应用和总成本要求通常是影响我们做出决策的主要因素。有时,把几个类型的存储器结合起来使用能更好地满足应用系统的要求。例如,一些PDA设计同时使用易失性存储器和非易失性存储器作为程序存储器和数据存储器。把永久的程序保存在非易失性ROM中,而把由用户下载的程序和数据存储在有电池支持的易失性DRAM中。不管选择哪种存储器类型,在确定将被用于最终应用系统的存储器之前,设计工程师必须仔细折中考虑各种设计因素。
④ 存储器扩展时,什么叫地址空间不连续和地址重叠现象
采用部分译码时,未用的地址线,可以随意取1、取0。
那么,对于某个存储单元来说,就可用多个地址号码来选中。
即:一个存储器芯片,占用了一个以上的地址空间。
这种现象,并不是【地址重叠】。Alfg5 的答案,是错误的。
另外,如果未用的地址线,是高位地址线,且都取0,
那么,由部分译码所形成的地址空间,也是连续的。
那么,什么是地址重叠呢?
不同的存储芯片,具有同一个地址空间,这才是【地址重叠】。
采用线选法扩展存储空间,才会有【地址重叠】的现象。
使用重叠的地址,就可令多块芯片,同时写入读出。
那么,重叠的地址,就是不可用的。
因此,可用的地址,就是不连续的。
在 51 单片机中,有许多地址重叠的现象,比如:
程序存储器、数据存储器的地址都是 0000~FFFFH。
特殊功能寄存器和高128B 的片内 RAM,地址,也重叠了。
位地址,也是重复使用了相同的地址号码。
还有,八个寄存器 R0~R7,却占用了 32 个存储单元。
就是说:
【地址重叠】是指:同一个地址空间,涉及到了不同的存储区域。
而不是Alfg5 所答的:不同的地址,选通同一存储单元。
搞清楚了基本概念,求可用的地址,以及,分析不可用的重叠地址,就不是难事了。
⑤ 单片机的程序存储器和数据存储器共处同一地址空间为什么不会发生总线冲突
组8个单元,复位后的寄存器是第0组。能被8整除的都可以进行位寻址。EA:片内外程序存储器片选端,ALE:地址锁存使用,PSEN:片外程序存储器读允许信号,1个机器周期是12个时钟周期,1个指令周期是1、2、4个机器周期。1/10US,P0-P3,口的不同之处在与:P0口没有上拉电阻,其余的都有上拉电阻,外电路不用加上拉电阻。在作为输入口时要向端口写1,防止读入的数据错误。
2、地址相同,但是,使用的指令不同,MOVC,MOVX。P3口的第二功能很丰富:串行口RX,TX、外部中断INT0,INT1、定时记数器T0,T1、读写WR,RD。一个是位地址,一个是字节地址,采用访问的指令不同,7C在位地址寻址区的2F中,PSW记录累加器A的状态,CY,AC,OV等,具体是第7位进位或者借位时,CY=1,反之为0,第3位进位或者借位时,AC=1反之为0,当运算结果不对时,OV=1。
3、那是程序的总入口地址,中断地址入口。说白了,就是即可以输入又可以输出的口叫双向口,P0-P3:复位时,为FFH。寻址方式:直接、间接、立即、寄存器、变址、位寻址。内部低128位寻址,和整个256字节寻址。
4、DA A的作用是紧跟着加法后面的指令,用与十进制调整。MOV A,80H,XCH A,90H,MOV 80H,A。算术运算利用CY,OV判断结果是否正确。如果CY=1,说明减数小,与此同时OV=1,说明正数减去负数得负数的情况。依次类推。
以上是部分内容回答。
由于时间关系先到此吧,后续再补上!
⑥ 存储器主要用来
存储器单元实际上是时序逻辑电路的一种。按存储器的使用类型可分为只读存储器(ROM)和随机存取存储器(RAM),两者的功能有较大的区别,因此在描述上也有所不同
存储器是许多存储单元的集合,按单元号顺序排列。每个单元由若干三进制位构成,以表示存储单元中存放的数值,这种结构和数组的结构非常相似,故在VHDL语言中,通常由数组描述存储器
存储器是用来存储程序和各种数据信息的记忆部件。存储器可分为主存储器(简称主存或内存)和辅助存储器(简称辅存或外存)两大类。和CPU直接交换信息的是主存。
主存的工作方式是按存储单元的地址存放或读取各类信息,统称访问存储器。主存中汇集存储单元的载体称为存储体,存储体中每个单元能够存放一串二进制码表示的信息,该信息的总位数称为一个存储单元的字长。存储单元的地址与存储在其中的信息是一一对应的,单元地址只有一个,固定不变,而存储在其中的信息是可以更换的。
指示每个单元的二进制编码称为地址码。寻找某个单元时,先要给出它的地址码。暂存这个地址码的寄存器叫存储器地址寄存器(MAR)。为可存放从主存的存储单元内取出的信息或准备存入某存储单元的信息,还要设置一个存储器数据寄存器(MDR)。
计算机的存储器可分成内存储器和外存储器。内存储器在程序执行期间被计算机频繁地使用,并且在一个指令周期期间是可直接访问的。外存储器要求计算机从一个外贮藏装置例如磁带或磁盘中读取信息。这与学生在课堂上做笔记相类似。如果学生没有看笔记就知道内容,信息就被存储在“内存储器”中。如果学生必须查阅笔记,那么信息就在“外存储器”中
⑦ 存储器和寄存器分别有哪些
寄存器和存储器的区别有以下几点:
1、存储器功能:存放指令和数据,并能由中央处理器(CPU)直接随机存取。
2、寄存器功能:可将寄存器内的数据执行算术及逻辑运算;存于寄存器内的地址可用来指向内存的某个位置,即寻址;可以用来读写数据到电脑的周边设备。
3、寄存器的速度比主存储器的速度要快很多,由于寄存器的容量有限,所以将不需要操作的数据存放在主存储器中,主存储器中的数据必须放入寄存器材能够进行操作。
4、简单地说:寄存器是操作数据的地方,存储器是存放数据的地方。
5、寄存器结构通常是指基本RS触发器派生D触发器,是由一些与非门的结构、总体集成在CPU、读写速度与CPU的速度运行基本匹配,但由于性能优越,所以贵,一般好的CPU只有几MB二级缓存,一级缓存。
6,CPU的内存,通常指的是硬盘,U盘和其他设备可以节省电源切断后,数据的能力是一般比较大,缺点是读写速度非常缓慢,普通机械硬盘读写速度通常是大约50mb/S。内存和寄存器是用于慢速内存读写的多层存储机制。
⑧ 寄存器和存储器的区别
1、存储器在CPU外,一般指硬盘,U盘等可以在切断电源后保存资料的设备,容量一般比较大,缺点是读写速度都很慢,普通的机械硬盘读写速度一般是50MB/S左右。
内存和寄存器就是为了解决存储器读写速度慢而产生的多级存储机制,从20世纪50年代开始,磁芯存储器曾一度成为主存的主要存储介质,但从20世纪70年代开始,逐步被半导体存储器所取代,目前的计算机都是用半导体存储器。现在的DDR2内存的读写速度一般为6~8GB/S,跟机器性能也有关系。
2、寄存器(又称缓存)一般是指由基本的RS触发器结构衍生出来的D触发,就是一些与非门构成的结构,一般整合在CPU内,其读写速度跟CPU的运行速度基本匹配,但因为性能优越,所以造价昂贵,一般好的CPU也就只有几MB的2级缓存,1级缓存更小。使用寄存器可以缩短至零长度、节省存储空间,提高指令的执行速度。
3、不同的寄存器有不同的作用,如:通用寄存器(GR)用以存放操作数、操作数的地址或中间结果;指令寄存器(IR)用以存放当前正在执行的指令,以便在指令执行的过程中,控制完成一条指令的全部功能。
CPU计算时,先预先把要用的数据从硬盘读到内存,然后再把即将要用的数据读到寄存器。最理想的情况就是CPU所有的数据都能从寄存器里读到,这样读写速度就快,如果寄存器里没有要用的数据,就要从内存甚至硬盘里面读,那样读写数据占的时间就比CPU运算的时间还多的多。
所以评价一款CPU的性能除了频率,缓存也是很重要的指标。
(8)存储器的功能地址都相同扩展阅读:
cpu的组成:
CPU的根本任务就是执行指令,对计算机来说最终都是一串由“0”和“1”组成的序列。CPU从逻辑上可以划分成3个模块,分别是控制单元、运算单元和存储单元,这三部分由CPU内部总线连接起来。
1、控制单元
控制单元是整个CPU的指挥控制中心,由指令寄存器IR(Instruction Register)、指令译码器ID(Instruction Decoder)和操作控制器OC(Operation Controller)等,对协调整个电脑有序工作极为重要。
它根据用户预先编好的程序,依次从存储器中取出各条指令,放在指令寄存器IR中,通过指令译码(分析)确定应该进行什么操作,然后通过操作控制器OC,按确定的时序,向相应的部件发出微操作控制信号。
操作控制器OC中主要包括节拍脉冲发生器、控制矩阵、时钟脉冲发生器、复位电路和启停电路等控制逻辑。
2、运算单元
是运算器的核心。可以执行算术运算(包括加减乘数等基本运算及其附加运算)和逻辑运算(包括移位、逻辑测试或两个值比较)。相对控制单元而言,运算器接受控制单元的命令而进行动作,即运算单元所进行的全部操作都是由控制单元发出的控制信号来指挥的,所以它是执行部件。
3、存储单元
包括CPU片内缓存和寄存器组,是CPU中暂时存放数据的地方,里面保存着那些等待处理的数据,或已经处理过的数据,CPU访问寄存器所用的时间要比访问内存的时间短。
采用寄存器,可以减少CPU访问内存的次数,从而提高了CPU的工作速度。
但因为受到芯片面积和集成度所限,寄存器组的容量不可能很大。寄存器组可分为专用寄存器和通用寄存器。专用寄存器的作用是固定的,分别寄存相应的数据。
而通用寄存器用途广泛并可由程序员规定其用途,通用寄存器的数目因微处理器而异。这个是我们以后要介绍这个重点,这里先提一下。
⑨ 定义数据段如下,画出数据存储示意图,并说明该数据段共有多少个字节单元。
所谓内部数据存储器就是集成在单片机内部的数据存储器,因为单片机的内部的数据总线是8位的,所以其寻址范围只有00H~FFH。而这段内存也分为两部分:00H~7FH:直接寻址区: 也叫DATA区。C语言中在定义变量的时候,加上data这个关键字修饰的话,那么这个变量就存在这个区域。这个区域可以进行直接寻址。例如 MOV A, 30H;把30H单元里面的内容复制到A中。 这段区域比较复杂,00H~1FH这段区域是通用寄存器(R0~R7)组所占的区域。你可能觉得很奇怪,R0~R7只有八个字节,而这段区域有32个字节。其实这个段区域是分为四组,每组8个字节。而程序在同一时刻所用到的R0~R7只是占这四组中的一组。其他的24个字节是当作普通内存在使用的。而使用那一组是由PSW寄存器中的RS0和RS1两位来决定的。 可能你会觉得设计这单片机的人不是找抽吗,没事搞的那么复杂干什么。其实设计者这样设计是有目的的。在中断的时候,这个设计就非常方便了。在进中断的时候,要做现场的保护,就是把一些在主程序中用到的寄存器同时又在中断中用到,这样的寄存器就必须保护,防止数据丢失。例如在主程序中用到了R0~R7,在中断中也用到了R0~R7,不这样设计的话就得一个一个寄存器去入栈,然后再一个一个的出栈。麻烦的很。而有这样的分组设计,只需在进中断的时候,把PSW入栈,再改变PSW的RS0和RS1两位的值,用不同的寄存器组。然后在中断结束的时候,把PSW出栈就可以了。这样就方便很多。 20H~2FH,叫位寻址区,这个区域的16个字节可以进行位寻址。C语言中定义的位变量就分配在这个区域。 30H~7FH:普通 的内存。80H~FFH:这段地址也纠结。如果单片机是51的话还好理解,因为51单片机内存只有128个字节,而这段地址是特殊功能寄存器的地址。如果是52单片机的话就纠结啦,52单片机内部数据存储器有256个字节,00H~7FH只有128个啊,而80H~FFH是特殊功能器的地址啊,那么还有128个字节的地址怎么编排呢?和特殊功能器共用地址?那会不会在访问内存的时候改变了特殊功能器的值啊,改变了的话程序会出问题的?这是每个初学者都有这样的疑问。其实特殊功能寄存器的确和后面128个字节的内存是共用相同的地址的。但是他们都有自己的物理地址,就像两个人同名样的,虽然名字相同,但不是同一个人。而区分的方法就是利用不同的寻址方式,特殊功能寄存器有直接寻址,内存用间接寻址。例如:MOV R0, 0E0H;直接寻址,把累加器A中的值复制到R0中。MOV R1,#0E0HMOV R0,@R1间接寻址,把地址为E0H的内存单元里面数复制到R0中。间接寻址只能用R0或R1作为地址指针。 外部数据存储器,也就是外部扩展的寄存器。以前的外部存储器都是挂在单片机外面的(现在的外部存储器都集成在单片机内部了,但是访问的方式还是没改变。只是不占用IO口了),用单片机的P0口和P2口来连接外部存储器。P0口作为访问外部存储器地址的低八位和数据口,P2口作为地址的高八位。程序访问外部数据存储器,必须用DPTR或者R0和R1做为地址指针,用MOVX指令。在外部存储器的地址小于100H的时候,可以用R0和R1作为地址指针来访问外部存储器。例如:MOV R0,#30HMOVX A,@R0这段程序就是把地址为30H 的外部存储器的数据复制到A中。 所以外部存储器的00H~FFH也叫pdata区。同样在C语言中,用pdata关键字修饰的变量存在该区域。外部存储器所有的区域都可以用DPTR作为指针来访问。例如:;地址小于8位MOV DPTR,#0030HMOVX A,@DPTR;地址大于8位MOV DPTR,#3000HMOVX A,@DPTR所以外部存储器所有区域叫xdata区,在C语言中,有xdata修饰的变量就存在该区域。内部数存和外部数存有些地址是重叠的,但是它们在空间上不重叠。也就是有自己独立的物理空间。利用不同的寻址方式从而来区分他们。程序存储器也就是只读存储器。在程序运行过程中只能对它进行读,但是不能写。对它的写只能利用一些特殊的方式,例如把你在电脑里面写好程序,通过下载器下载到单片机里面。而在程序中对它的读也得用DPTR做为指针来访问,并且用MOVC指令。由于老的51单片机内部集成的程序存储器空间比较小,所以有时候需要外扩程序存储器。但是内部程序存储器和外部程序存储器不能共存,只能用其中的一个。有单片机的EA管教来决定,EA为高时,内部。EA为低时,外部。
⑩ 特殊情况下 允许不同的存储单元具有相同的地址对吗
每一个存储单元都有一一对应的地址