存储单元

2.1-设计自己的计算机

风格不统一 提交于 2019-12-03 11:35:25
  什么是指令系统体系结构呢? 要回答这个问题,其实非常的简单。但是想解释清楚, 也没有那么容易。我们还是从一个小故事开始吧。   有一天两个小伙伴碰了面,发现对方都很愁苦,一个就问另一个"嘿你在愁苦什么呀?" 这个说"唉呀,最近遇到了很多运算上的问题。" "运算量好大呀。"对方说,"可不是吗,我也遇到了类似的问题。" "咱们怎么解决呢?" "不如咱们一起设计一个计算机吧!" 就说好啊,两人就一拍即和。 "我们设计计算机怎么分工呢?"一个说,"我显然是软件程序员,我来编写如何运算的软件指令。" 另一个说"那正好,我是硬件工程师,我来设计计算机的硬件,主要是CPU,那咱们就分头工作吧!" "这事估计得花一年时间才能把CPU设计出来,也才能把软件 写好。真的就可以这么开始了吗?一年之后我们在碰面,怎么保证你写的软件就能在我做的CPU上运行起来呢?" "所以还不能着急,咱们得商量商量,得把咱们的共同规则订 好,然后呢才能分头去设计软件和硬件,这样保证之后我们在碰面的时候软件和硬件能顺利的结合在一起。" 那好,这两个小伙伴就开始商量了,他们要商量的是什么呢? 就是我们要谈的指令系统体系结构。   他们要面临的计算任务并不复杂,所以只要一个很简单的计算机指令系统就可以了。 我们要设计多少指令、要设计哪些指令,首先要根据需求来确定。 那看上去我们只需要一些简单的加法。所以首先

数据总线,地址总线,存储容量计算题理解

匿名 (未验证) 提交于 2019-12-03 00:30:01
1. 地址总线:一个cpu的N根地址总线,则可以说这个CPU的地址总线宽度为N。这样cpu最多可以寻址2的N次方个内存单元。 2. 8根数据总线传送一个8位二进制,数据线数量相当于每单元的位数 3. 存储容量=单元数*每单元的位数,一般每单元位数都是8 例1.若256KB的SRAM具有8条数据线,则他具有多少条地址线 例2.写出下列的RAM芯片片内的地址线和数据线的条数:(1)4K*8位;(2)512K*4位;(3)1M*1位;(4)2K*8位 例3.设有一个具有20位地址和32位字长的存储器,问: 1.该存储器能储存多少个字节信息 32÷8×(2^20) B = 4×2^20 B = 4^20 B = 4 MB 2.如果存储器由512K*8位SRAM芯片组成,需要多少片 3.需要多少地址线做芯片选择 文章来源: 数据总线,地址总线,存储容量计算题理解

C/C++中extern关键字详解

僤鯓⒐⒋嵵緔 提交于 2019-12-02 23:51:35
转自 https://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777431.html 1 基本解释 :extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而不是C++的,C++的规则在翻译这个函数名时会把fun这个名字变得面目全非,可能是fun@aBc_int_int#%$也可能是别的,这要看编译器的"脾气"了(不同的编译器采用的方法不一样),为什么这么做呢,因为C++支持函数的重载啊,在这里不去过多的论述这个问题,如果你有兴趣可以去网上搜索,相信你可以得到满意的解释! 第二,当extern不与"C"在一起修饰变量或函数时,如在头文件中: extern int g_Int; 它的作用就是声明函数或全局变量的作用范围的关键字,其声明的函数和变量可以在本模块活其他模块中使用,记住它是一个声明不是定义!也就是说B模块(编译单元)要是引用模块(编译单元)A中定义的全局变量或函数时,它只要包含A模块的头文件即可,在编译阶段

计算机存储单元

匿名 (未验证) 提交于 2019-12-02 23:49:02
大家有没有写了很久代码,还不知道这个Int8,Int16, Int32, Int64有什么区别呢?或者是为什么后面的数字不一样呢? 初步了解了一下,才清楚这个东西。 先来扫盲一下计算机存储单元,   在计算机内部,信息都是采用二进制的形式进行存储、运算、处理和传输的。信息存储单位有位、字节和字等几种。各种存储设备存储容量单位有KB、MB、GB和TB等几种 计算机的基本的存储单元有: UTF-8编码:1个英文字符 = 1个字节 Unicode编码:1个英文字符 = 2个字节 扩展的存储单位有: 计算机存储容量大小以字节数来度量,1024进位制:    而Int8,Int16,Int32,nt64,后面的数字就代表这个数据类型占据的空间。   另外, 还有一个Byte, 它等于byte, 0 - 255.    

2019-2020-1学期 20192426 《网络空间安全导论》第三周学习总结

早过忘川 提交于 2019-12-01 23:25:07
第六章 低级程序设计语言与伪代码 6.1计算机操作 1.计算机:能够存储、检索和处理数据的可编程电子设备。 存储、检索和处理 是计算机能够对数据执行的操作。也就是说,控制单元执行的指令能够把数据存储到机器的内存中,在机器内存中检索数据,在算术逻辑单元中以某种方式处理数据。 6.2机器语言 1.机器语言(machine language):由计算机直接使用的二进制编码指令构成的语言。 每种处理器都有自己专用的机器指令集合。 这些指令是机器唯一真正能够执行的指令。 2.Pep/8:一台虚拟机 虚拟机(virtual computer (machine)) :为了模拟真实机器的重要特征而设计的假象机器。 Pep/8有39个机器语言指令。 Pep/8反映的重要特性 Pep/8的字长是2字节,或者16比特。这样向算术/逻辑单元(ALU)流入的数据或从算术/逻辑单元流出的数据在长度上就是16比特。 Pep/8有七个寄存器,我们重点研究:程序计数器(PC)、指令寄存器(IR)、累加器. 累加器是用来保存操作的数据和结果。 可用的比特数决定了我们可以使用的内存大小。 指令格式 在Pep/8中,一条指令由两部分组成,即 8位的指令说明符和(可选的)16位的操作数说明符。 指令说明符(指令的第一个字节) :说明了要执行什么操作和如何解释操作数的位置。 操作数说明符(指令的第二和第三个字节)

2019-2020-1学期 20192426 《网络空间安全导论》第三周学习总结

空扰寡人 提交于 2019-12-01 23:06:32
第六章 低级程序设计语言与伪代码 1.计算机操作 计算机是能够 存储、检索和处理数据的可编程电子设备。 2.机器语言 计算机语言(machine language):由计算机直接使用的二进制编码指令构成的语言。 Pep/8:一台虚拟机 虚拟机(virtual computer(machine)):为了模拟真实机器的重要特征而设计的假想机器。 Pep/8有39个机器语言指令。 Pep/8反映的重要特性。 Pep/8的内存单元由65536字节的存储空间构成。这些字节从0到65536(十进制)进行编号。 寄存器: 程序计数器(PC),其中包含下一条即将被执行的指令的地址。 指令寄存器(IR),其中包含正在被执行指令的一个副本。 累加器(是一个寄存器)。 累加器是用来保存操作的数据和结果。 指令格式 一条指令由两部分组成,即8位的指令说明符和(可选的)16位的操作数说明符。说明指令符(指令的第一个字节)说明了要执行什么操作(如把一个数加到一个已经存储在寄存器中的值上)和如何解释操作数的位置。操作数说明符(指令的第二和第三字节)存放的是操作数本身或者操作数的地址。有些指令没有操作数说明符。 指令说明符的格式根据表示一个具体操作所用的比特数的不同而不同。在Pep/8中,操作代码(称为操作码)的长度从4比特到8比特不等。我们在这里所用的操作码长度是4比特或5比特

2019-2020-1学期 20192409 《网络空间安全专业导论》第三周学习总结

坚强是说给别人听的谎言 提交于 2019-12-01 23:01:18
第六章 低级程序设计语言与伪代码 1.计算机操作 计算机是能够 存储、检索和处理数据的可编程电子设备。 2.机器语言 计算机语言(machine language):由计算机直接使用的二进制编码指令构成的语言。 Pep/8:一台虚拟机 虚拟机(virtual computer(machine)):为了模拟真实机器的重要特征而设计的假想机器。 Pep/8有39个机器语言指令。 Pep/8反映的重要特性。 Pep/8的内存单元由65536字节的存储空间构成。这些字节从0到65536(十进制)进行编号。 寄存器: 程序计数器(PC),其中包含下一条即将被执行的指令的地址。 指令寄存器(IR),其中包含正在被执行指令的一个副本。 累加器(是一个寄存器)。 累加器是用来保存操作的数据和结果。 指令格式 一条指令由两部分组成,即8位的指令说明符和(可选的)16位的操作数说明符。说明指令符(指令的第一个字节)说明了要执行什么操作(如把一个数加到一个已经存储在寄存器中的值上)和如何解释操作数的位置。操作数说明符(指令的第二和第三字节)存放的是操作数本身或者操作数的地址。有些指令没有操作数说明符。 指令说明符的格式根据表示一个具体操作所用的比特数的不同而不同。在Pep/8中,操作代码(称为操作码)的长度从4比特到8比特不等。我们在这里所用的操作码长度是4比特或5比特

指针与引用的

不打扰是莪最后的温柔 提交于 2019-12-01 17:03:04
1、区别 1) 引用一旦被初始化,就不能改变引用关系 (指针可以随时改变所指向的对象):也就是引用初始化后,此引用不能与别的存储单元关联,也就不能指向别的存储单元,当然也不能改变别的存储单元内容,改变的 2)引用被创建的同时必须被初始化(指针可以在任何时候被初始化) 3)不能有NULL引用,引用必须与合法的存储单元关联(指针可以是NULL) 2、引用的优点 指针可以毫无约束地操作内存中的任何东西,功能强大,但是非常危险;而通过对象的“别名”-引用,更加安全; 来源: https://www.cnblogs.com/wllwqdeai/p/11694911.html

2019-2020-1学期 20192404 《网络空间安全导论》第二周学习总结

ⅰ亾dé卋堺 提交于 2019-12-01 07:21:17
第二周学习总结 本周我们自学了计算机概论的四、五章的内容,四、五章向我们介绍了有关计算机硬件层的知识,通过这两章的学习我了解到了一些关于 门和电路 以及 计算部件的知识。 /第四章门和电路/ 电路:电路是由相互关联的门的组合,用于实现特定的逻辑函数。 关于门和电路我同时也学到了三种不同的表示方法: 1.布尔代数:它是由英国数学家布尔发明的一种代数运算,它的表达式是演示电路活动的极好方式。 2.逻辑框图:它是电路的图形化表示。每种类型的门都由一个特定的图形符号来表示。 3.真值表:它列出了一种门可能遇到的所有的输入组合和相应的输出,从而全面而具体的定义了这种门的功能。 门: 1.非门:非门又叫逆变器,它会对输入的值求逆。 2.与门:输入两个信号若同为1则输出为1,否则输出为0。 3.或门:若两个输入值都为0那么输出值为0,否则为1。 4.异或门:若两个输入相同,则输出为0,否则输出为1。 5.与非门和或非门:与非门和或非门分别是与门和或门的对立门。 门的处理回顾: 如果两个输入值都是1,与门将生成1。 如果一个输入值是1,或者两个输入值都是1,或门将生成1。 如果只有一个输入值是1,而不是两个,异或门将生成1。 与非门生成的结果和与门生成的结果相反。 或非门生成的结果和或门生成的结果相反 如何构造门:? 晶体管:作为导线或电阻器的设备,由输入信号的电平决定它的作用

2019-2020-1学期 20192426 《网络空间安全导论》第二周学习总结

允我心安 提交于 2019-12-01 07:13:48
第四章 门和电路 4.1计算机和电学 任何电信号都有电平。 一般来说,0~2伏的电压是低电平,由二进制数字0表示,2 ~ 5伏范围内的电压是高电平,由二进制数字1表示。计算机中的信号被限制在这两个范围之内。 门 是对电信号执行基本运算的设备。一个门接受一个或多个输入信号,生成一个输出信号。门的类型很多,每种类型的门执行一个特定的逻辑函数。 电路 是由门组合而成的,可以执行更加复杂的任务。例如,电路可以用来执行算术运算和存储值。在电路中,一个门的输出值通常会作为另一个门或多个门的输入值。电路中的电流由经过精心设计的相互关联的门逻辑控制。 描述门和电路的表示法有三种: 布尔表达式 逻辑框图 真值表 门(gate):对电信号执行基本运算的设备,接受一个或多个输入信号,生成一个输出信号。 电路(circuit):相互关联的门的组合,用于实现特定的逻辑函数。 英国数学家George Boole发明了一种代数运算,其中变量和函数的值只是0或1。这种代数为 布尔(Boolean)代数 ,它的表达式是演示电路活动的极好方式。布尔代数特有的运算和属性使我们能够用数学符号定义和操作电路逻辑。 逻辑框图 是电路的图形化表示。每种类型的门由一个特定的图形符号表示。通过用不同方法把这些门连接在一起,就可以真实地表示出整个电路逻辑。 真值表 列出了一种门可能遇到的所有输入组合和相应的输出