《数字逻辑设计与计算机组成》一 第1章 1.1 简介

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 1个月
简介: 本节书摘来自华章出版社《数字逻辑设计与计算机组成》一 书中的第1章,第1.1节,作者:[美]尼克罗斯·法拉菲,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

第1章

Digital Logic Design and Computer Organization with Computer Architecture for Security
导  论

1.1 简介

计算机、iPad、手机等设备已经引起了一场改变我们生活方方面面的数字革命。所有的数据形式,从数字和文本到音频、图像和视频,都能被表示为由一系列0和1组成的序列。数字系统已经改变了我们的沟通、工作、娱乐乃至购物的方式,并被大量应用于我们所见和所用的一事一物之上。它们也存在于汽车、杂货店结账设备、电表、机顶盒、应急设备、医用设备、工厂控制设备等系统中。随着使用数字系统的人越来越多,越来越多的数据也被创建、处理、存储、传输和访问。随之而来的是对更强大的计算机的需求,无论是个人计算机,还是用于电子商务、银行、搜索引擎和科学研究等诸多领域的大型系统。
尽管如此,计算技术的更新换代却是逐步向前推进的,其发展依赖于诸多因素,诸如集成芯片(IC)技术,以及包括操作系统在内的软件开发技术。IC技术的发展持续推动着单个芯片中集成的晶体管数量达到数十亿个。特征尺寸,即决定作为电子开关的晶体管尺寸的IC元素的尺寸,多年来已变得越来越小。特征尺寸的不断缩小和裸片(die,矩形的半导体材料)尺寸的不断增长使得晶体管的密度每年大致提高35%。这一现象又反过来促使单一芯片上的晶体管数量每18~24个月提高40%~55%(见文献[1])。这一晶体管数量提升的速率就是通常所说的摩尔定律。
近年来,微处理器设计师一直利用摩尔定律来指导未来的处理器设计。他们利用不断提升的有效晶体管数量设计出高性能的处理器,使得个人计算机发生了创造性的变革。
应用开发领域的创新也已经革新了数字系统的设计方式。当今,用于IC设计的计算机辅助设计(CAD)工具的发展使得芯片设计师能使用硬件描述语言(HDL)来描述数字电路的行为。这些描述可以被进一步仿真、调试、评估,甚至被自动映射到硬件上构成电路。用于电路设计的CAD工具已普遍应用在工业和教育领域中。
在数字领域中,也存在着对数据和信息非法访问的可能性。个人信息和众多组织的知识产权相关信息可能会被盗取、修改甚至删除。恶意软件可能会侵入私人的计算机系统或者破坏计算机操作。然而,数字系统是由硬件和软件共同构成的,并且硬件的安全性要高于软件,因此硬件对保证数字信息的安全尤为重要。
这一章简单地介绍和总结了后续章节的主要内容。本书将讨论数字系统的硬件部分,从基本电路到执行计算操作的电路模块,再到处理元素的设计——通常被称为处理核心或中央处理器(CPU)。我们也将讨论存储器、存储器系统设计,以及包含多个核心的计算机系统,即多核处理器或多处理器系统。本书也将对计算机体系结构安全做简要介绍。

1.1.1 数据表示

所有的数字系统都包括表示真或假的输入和输出逻辑的电路。逻辑值用一个电压范围表示。例如,使用5V电源,任何在2.4~5V之间的电压值表示真,任何在0~0.8V之间的电压值表示假。使用电池供电的手持数字设备通常使用更低的电源以便节电。真和假的逻辑值用1和0的序列表示,构成二进制数。
二进制数用于表示文本中的字符、图像中的像素、数字音频和视频中的数据和计算过程中用到的整数和实数。字符通常用8位美国信息交换标准码(ASCII)或者16位统一字符标准码(Unicode)表示。由于ASCII编码只能表示256 (28)个不同字符(字母、十进制数字和符号),而与之相比,统一字符标准编码可以表示超过65?000 (216)个不同字符,因此统一字符标准编码更适于表示由字组成的语言,例如亚洲语言。
图像由显示屏上看到的数千甚至数百万个像素点构成。每一像素在彩色监视器中都由三个点值组成(红,绿,蓝),一组点值用不同的颜色或灰度组成了屏幕上的单一色点。例如,支持真彩色的彩色监视器使用8位二进制数分别表示红、蓝、绿三种颜色,那么每一种颜色就有24位表示,一共可以表示超过1600万(224)种颜色。此外,还有用30位或更多位表示超过十亿种颜色的色深编码方式。
数字音频和视频数据是由被数字化(转换)成一连串数字的模拟连续的电信号组成的。例如,麦克风将在空气中传输的连续的声波转换成模拟电信号。然后数字转换器按固定间隔时间对该模拟电信号进行采样并生成一连串表示声音的整数值。采样间隔时间是由采样率决定的。例如,44.1千赫(kHz)的采样率意味着在一秒钟内抽取44?100个样本,产生光盘(CD)音质的声音数据[2]。
采样率越高,采样的数据就越接近原始声音。每一采样值代表采样时间点的信号强度。如果用8位二进制数表示每一个采样值,则信号强度被分为256 (28)级,0为最低级而255为最高级。如果用16位二进制数表示,则信号强度就可以分为65?536 (216)级。由此看出,用来表示信号强度的数据位数越多,表示声波的数据就更精确,但也需要存储更多的数据。立体声音系统由两个独立的音频声道组成。每个声道的声音都被单独采样,这样它们所生成的声音文件大小就是单声道(mono)声音的两倍。尽管如此,立体声和单声道哪个更好,还是要取决于采样率和表示每个采样值的二进制位数的多少。
1.整数的表示
二进制数字分为有符号和无符号两种。3位无符号二进制数的表示范围是0~7,即二进制数(000)2到(111)2,此处下标2表示用二进制表示。在计算机算术运算中,有符号数通常被表示成2的补码。一个负的二进制数通常被各位取反(反转)末位加1,从而转换成与其等价的2的补码形式。例如,用4位2的补码来表示二进制数- 3 = - (11)2:
1)将- (11)2写成4位二进制数,即- (0011)2。
2)将每一位数取反,得1100。
3)对取反后的数末位加1,即得到4位- 3的2的补码,即(1101)2s,其中下标2s表示用2的补码表示。
在计算机中存储的所有2的补码形式的数码中,一半是正数,另一半是负数。正数的2的补码形式的值与其二进制值相同。用4位2的补码形式表示+ 3 = (11)2为(0011)2s。2的补码值的最高有效位(MSB)表示的是该数的符号:如果最高有效位是1则该数为负数,为0则为正数。将负数的2的补码转换成与其等价的二进制表示形式的过程与此相似,例如将(1101)2s转换为- (0011)2的过程描述如下:
1)将(1101)2s的2的补码表示形式各位取反,得0010。
2)取反后的结果加1,获得4位二进制补码取值(0011)2。
3)加上符号位,得:- (0011)2,即- (11)2 = - 3(十进制的- 3)。
负数也可以用原码(符号-数值,sm)表示。例如,(0011)sm = + 3,而(1011)sm = - 3,此处下标sm表示用原码表示的二进制数。在这个例子中,最高有效位表示数的负(MSB = 1)或正(MSB = 0),其他位数表示数值的大小,例如(011)2 = 3。
表1-1列出了与3位无符号数、2的补码数和原码表示的二进制数对应的十进制数。在算术运算中,例如加法,可以对2的补码数进行运算,原码形式仅用于来表示实数,而不会直接使用原码形式的数进行算术运算。计算机算术运算将在第3章中讨论,乘法运算会在第6章中讨论。
image

表1-2列出了表示+ 5和- 5的4位和8位的无符号二进制数、2的补码形式和原码形式的表示。当n > m时,m位的2的补码数值可以转换成n位的2的补码数值,只需简单地将符号位重复n - m次。这一操作称为2的补码的符号扩展。
image

2.实数的表示
计算机也使用实数进行运算,如2.75。实数在计算机里的表示被称作浮点(FP)数,每一个浮点数都包含三个整数部分:符号位、偏置指数和无符号尾数。符号位和无符号尾数部分组合起来就是原码表示形式。浮点算术运算包含若干步骤,且需对指数和尾数值分别操作,二者皆为整型数值,本书将在第3章详尽讨论。
浮点数的指数是一个无符号数,表示偏置指数。一个被称作偏置常数的固定值用来将偏移指数转换成负指数或正指数。假设一种浮点表示法使用4位偏移指数表示指数且偏置常数为7。在此条件下,偏移指数值可以为0、15,或者1~14之间的数值表示不同的浮点数。公式(1-1)展示了指数和与之等价的偏置指数值的关系。

(1-1)

?例1-1? 将实数2.75表示成16位浮点数,采用4位偏置指数值且取偏置常数为7,用11位表示尾数。
2.75 = 2 + 0.5 + 0.25
 ? = 2 ++
 ? = (10)2 + (0.1)2 + (0.01)2
 ? = (10.11)2
 ? = (10.11)2×20;指数= 0
 ? = (1.011)2×21;指数= 1,小数点左移一位
 ? = (1.011)2×28;偏置指数= 8,偏置常数= 7
 ? = > (0, 1000, 01100000000)2;16位浮点数表示
 ? = 0x4300;“0x”表示十六进制数
16位浮点数表示2.75有一位符号位= 0(表示正),4位偏置指数= (1000)2和11位无符号尾数= (01100000000)2。隐含的小数点在无符号尾数的最左端。尽管在(1.011)2中小数点前的1是浮点数的一部分,但它并不包含在浮点数表示法所存储在存储器中的16位二进制数中。类似地,- 2.75的16位浮点数表示为(1, 1000, 01100000000)2,即0xC300,其中“0x”代表十六进制数。
假设用k位表示偏置指数,且偏置指数为0,如果尾数也是0,则该浮点数为0.0。如果偏置指数为0,但尾数不为0,则该数就表示一个非常小的实数,称为非规格化数。如果偏置指数的值在1和k - 2之间,则该浮点数表示的值介于非常小的实数和非常大的实数之间,称为规格化浮点数。如果偏置指数为k - 1,则当尾数为0时,该浮点数被看作无穷大(∞);而当尾数不为0时,该浮点数被看作无效数据,例如。
image

偏置常数决定了计算机中实数的表示范围。如表1-3所示,取4位偏置指数且当偏置常数= 7时,规格化浮点数的指数范围在- 6~+ 7之间;而当偏置常数= 8时,指数的范围在- 7~+ 6之间。这说明当偏置常数= 7时,16位浮点数格式能表示更多的大实数:最大指数= 7,而最小指数= - 6。而当偏置常数= 8时,浮点数格式能表示更多的小实数:最大指数= 6,最小指数= - 7。现代计算机采用32位和64位电气与电子工程师协会(IEEE)浮点数标准表示,这将在第3章中讨论。

1.1.2 数据通路

无论我们处理的数值是无符号整数、有符号整数还是浮点数,数字电路的输入和输出都是用二进制表示的。一个简单的数字电路完成一个简单函数运算并生成单比特输出。而一个复杂电路则生成多位的运算结果,完成一个或者多个函数运算。一个复杂的数字电路通常由数据通路和控制单元构成,如图1-1所示。图中有很多细节在这里并没有显示出来。不过,仍需注意的是数据可以通过多条通路传输。

image

特别地,一个数据通路包含了多种电路模块,共同完成一个或者多个函数运算。而其中的模块可以是算术运算类模块,比如生成两数之和的加法器;也可以是在多个输入中择一输出的选择器;还可以是暂存数据的寄存器等。在图1-1中,数据通路中包含一个由多个寄存器组成的寄存器文件、一个加法器、一个乘法器和一个选择器。它可以将两个寄存器取值(图中标为Value1和Value2)的和或积作为结果输出,并将结果存储在一个寄存器中。
控制器(即控制单元)产生一组信号,每一个用1或者0表示,控制数据通路的功能。例如,在图1-1中,当控制信号为0时,选择器的输出是两数之和;而当控制信号为1时,选择器的输出是两数之积。寄存器控制信号决定了寄存器从其输入端加载有效数值的确切时
间。图中,寄存器的初始值是从存储器等外部模块中读取的,输出结果也可以存储在存储器中。

1.1.3 计算机系统

图1-2展示了被称为冯•诺依曼机的计算机系统方框图,这是迄今为止几乎所有计算机的基本架构。程序指令和数据存储在存储器中,CPU则负责存取存储器中的指令和数据并执行指令。
CPU是由与图1-1所示相似的数据通路和控制单元组成的数字电路,但是比图示要复杂得多,且包含执行三种主要操作的子数据通路:
取指数据通路:从存储器中加载指令。
译码数据通路:决定执行指令所需的控制信号。
执行数据通路:进行指令所要求的运算。
取指、译码和执行数据通路所完成的操作统称为指令执行。随着计算机技术的进步,CPU和存储器的性能近年来都不断提升,但CPU性能的提升速度远远高于存储器性能的提升速度。因此,冯•诺依曼体系结构在高速的CPU和低速的存储器之间存在通信瓶颈。

image

执行数据通路可以执行一系列的特定指令,包括可以在CPU寄存器和存储器或者输入/输出(I/O)设备之间传输数据的数据传输指令。这一系列指令还包括算术运算指令,以及实现for循环、while循环、子程序调用和返回等功能的指令。
编译器将高级程序语句翻译成等价的汇编指令。设有一高级程序语句“A = B + C;”,其中A、B和C都是变量,其值存储在存储器中。采用图1-1所示的数据通路,则编译器将该语句翻译成等价的汇编指令,可以用不严格的语法表示如下:
image

“Load”“Add”和“Store”都是操作码,每一个操作码都有与其对应的唯一二进制数。汇编码包含数据传送指令,即“Load R1,B”和“Load R2,C”,用于将B的值和C的值从存储器中加载到寄存器1和寄存器2中。汇编码也包括算术运算指令“Add R3,R1,R2”,其中寄存器1和寄存器2为输入而寄存器3为输出,以及数据传输指令“Store A,R3”,用于将寄存器3中的值传输至存储单元A中。
相应的汇编程序会把每一条汇编指令翻译成二进制代码,称为机器指令。通常,汇编程序(需要时)也会链接静态库函数,比如C语言中的“strcpy()”“sqrt()”等例程,然后生成一个可执行(二进制)文件(例如myprogram.exe)。程序开始执行时,首先把程序加载到存储器中,然后处理器会逐一从存储器中取出指令并译码该操作码,生成必要的控制信号执行相应指令。
被访问最频繁的指令和数据也会被存储在cache(高速缓存)中以提升性能。cache存储器将从低速存储器中存取指令和数据的次数降低到最少,从而减少了从存储器中读取指令和数据的平均处理器等待时间。
设备控制器接口(DCI)由I/O端口组成,用于处理器与键盘、光驱等外设的通信。DCI也可以包含其他模块,例如内部存储器,用于在数据传输到存储器之前暂存外设数据,或者在把数据传输至设备之前从存储器接收数据。最终,通过互联基础架构可以将处理器、存储器、各种设备控制器接口以及用于支持与存储器通信或提升系统整体性能的其他模块互联
起来。
计算机系统还可以包含特殊或专用的处理器,例如个人计算机中的图形处理单元(GPU)和用在许多嵌入式系统中的数字信号处理器(DSP)。图形处理单元和数字信号处理器都具备特殊的数据通路和控制器,分别用于计算机图形和游戏操作及高效处理数字音频和视频数据。

1.1.4 嵌入式系统

嵌入式系统是将硬件和软件均集成在单个或多个集成电路上的完整系统。一个简单的嵌入式系统通常被称作微控制器,用于设计诸如计算机键盘之类的简单设备。在单个芯片上设计的复杂嵌入式系统即片上系统(SoC)。像手机、数字便携摄像机之类的手持设备都是嵌入式系统。嵌入式系统也用于设计先进的设备控制器接口,比如可以和多种不同设备连接的通用串行总线(USB)主机控制器接口。
嵌入式系统除了可以包含一个或者多个处理单元外,还可根据应用的需要包含数字数据接收/发送模块和信号转换模块,例如模数(A/D)和数模(D/A)转换器。模数转换器可以将模拟信号(例如麦克风的输出信号)转换成数字信号以便于数字通信和存储。数模转换器则相反,比如可以将数字音频数据重新转换为模拟信号并送入扬声器。
嵌入式系统可以用定制的专用集成电路(ASIC)实现,有时为了快速生成原型系统,也采用现场可编程门阵列(FPGA)实现。FPGA芯片中包含功能未确定但可以配置的电路模块。现代FPGA芯片包含CPU、存储器和可配置电路模块,可用于创建片上系统而无需进行制造实验[3]。

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
数字逻辑电路设计课程设计(二)
数字逻辑电路设计课程设计
143 0
数字逻辑电路设计课程设计(二)
数字逻辑电路设计课程设计(一)
数字逻辑电路设计课程设计
180 0
数字逻辑电路设计课程设计(一)
|
算法
《数字逻辑设计与计算机组成》一 第3章 3.1 简介
本节书摘来自华章出版社《数字逻辑设计与计算机组成》一 书中的第3章,第3.1节,作者:[美]尼克罗斯·法拉菲,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1157 0
|
存储
《数字逻辑设计与计算机组成》一 第2章 2.1 简介
本节书摘来自华章出版社《数字逻辑设计与计算机组成》一 书中的第2章,第2.1节,作者:[美]尼克罗斯·法拉菲,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2146 0
《数字逻辑设计与计算机组成》一 2.8 设计实例
本节书摘来自华章出版社《数字逻辑设计与计算机组成》一 书中的第2章,第2.8节,作者:[美]尼克罗斯·法拉菲,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1720 0
|
算法
《数字逻辑设计与计算机组成》一3.7 设计实例
本节书摘来自华章出版社《数字逻辑设计与计算机组成》一 书中的第3章,第3.7节,作者:[美]尼克罗斯·法拉菲,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1634 0
《数字逻辑设计与计算机组成》一3.6 算术逻辑单元
本节书摘来自华章出版社《数字逻辑设计与计算机组成》一 书中的第3章,第3.6节,作者:[美]尼克罗斯·法拉菲,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2150 0
|
安全
《数字逻辑设计与计算机组成》一 导读
本书内容包括存储器组织、处理器核心和处理器组织结构,以及硬件支持的计算机安全等。由于技术的进步以及对高速和低功耗设计的需求改变了计算机组织结构的基础,因此本书尝试不仅提供简单的实例用于展示基本的设计概念,而且揭示对现代计算机设计目标的理解。
1504 0
|
算法 安全 测试技术
《数字逻辑设计与计算机组成》一练习
本节书摘来自华章出版社《数字逻辑设计与计算机组成》一 书中的第3章,练习章节,作者:[美]尼克罗斯·法拉菲,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1701 0
《数字逻辑设计与计算机组成》一3.2 算术函数
本节书摘来自华章出版社《数字逻辑设计与计算机组成》一 书中的第3章,第3.2节,作者:[美]尼克罗斯·法拉菲,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
944 0