【大学院入試用コンピュータ構成の原理】IOシステムとデータ運用の強化

記事ディレクトリ:

1つ:IOシステムの大きな問題

1.ハードウェア構造

2.各CPU介入のアクション

3.データ損失の問題

2:ビッグデータ操作

1.よくある質問

2.記数法とコーディング

3.固定小数点数の表現と操作

4.浮動小数点数の表現と操作

5.算術論理演算装置ALU


1つ:IOシステムの大きな問題

1.ハードウェア構造

CPU:程序查询、中断、DMA

接口
    按字传输型:每次传输一个字
    DMA型:每次传输一整块

传输总线
    并行
        多位一起传
    串行
        一位一位传
        可能会有附加的校验位、起始位、结束位

设备
    霸道总裁型
        IO设备会按自己的节奏往IO缓冲区冲入数据
        如果CPU不及时取走数据,就可能导致数据丢失
    乖乖听话型
        IO设备会根据CPU的指挥,往IO缓冲区冲入数据
        CPU从缓冲区中取走一个字的数据后,会指挥I0设备输入下一个字的数据,不会有数据丢失的问题

2.各CPU介入のアクション

程序查询方式
    每次检查IO接口数据是否准备完毕
    —次程序查询的时间开销:需要执行多少条指令/需要多少个时钟周期?
    CPU介入的频率——取决于查询程序上CPU的时间频率


中断控制方式
    中断响应(隐指令)——时间开销——通常以时钟数作为条件
    中断服务程序——时间开销
        时钟数
        指令总数、结合CPI
    CPU介入的频率——取决于IO接口发来中断的频率


DMA控制方式
    预处理:让DMA接口输入一块数据
    后处理:一整块数据传输完成后,DMA接口给CPU中断,CPU处理中断
    CPU介入的频率:每传一块介入一次

3.データ損失の問題

程序查询方式
    当IO接口缓冲区大小有限时,每一次数据冲入后,CPU都需要及时的把数据取走,防止丢失
    若CPU每次查询的时间开销太久,跟不上数据冲入的速度,则可能数据丢失


中断控制方式
    判断是否会数据丢失:中断处理的时间,总共花了多少?是否大于IO接口冲入—次数据的时间
    若中断处理时间太久,可能导致IO接口数据覆盖


DMA控制方式
    不会数据丢失,DMA型的设备,都是乖乖听话型

2:ビッグデータ操作

1.よくある質問

无符号数的加法、减法怎么算?
    在硬件看来,对无符号数的加减法、对有符号补码的加减法都是一样的计算方法
    加法:直接N bit二进制按位相加
    减法:计算“A-B”,可转化为等价的加法——将B的N bit全部按位取反末位+1,然后与A相加


遇到乘法怎么算?
    通常可带入十进制手算
    408大纲不要求掌握浮点数乘法


遇到除法怎么算?
    通常可带入十进制手算
    408大纲不要求掌握浮点数除法


溢出怎么判断?
    加法/减法
        手算判溢出
            带入十进制计算结果,判断该结果是否超出了n位所能表示的范围,若超出,则溢出
        机器判溢出
            无符号数加/减:运算后若CF=1,则溢出;若CF=0,则不溢出
            有符号数补码加/减︰运算后若OF=1,则溢出;若OF=0,则不溢出
    乘法
        n位乘n位,若用2n位保存乘积,则不会溢出
        n位乘n位,用2n位保存中间结果,最后截取未尾n位作为最终的乘积,可能会溢出
            手算判溢出
                带入十进制计算乘法结果,判断该结果是否超出了n位所能表示的范围,若超出,则溢出
            机器判溢出
                两个有符号补码乘法:n位乘n位,用2n位保存中间结果。仅当前n+1位全1或全0时,不溢出
    除法
        可能溢出,但是,整数的除法不可能溢出,只有小数的除法可能溢出,而408不要求掌握浮点数除法,因此不需太关注除法的溢出问题



精度丢失怎么判断?
        整数转浮点数︰数值部分精度更高的类型,转为数值部分精度更低的类型,就有可能发生精度丢失
        浮点数转整数︰如果有浮点数有小数部分,则可能丢失精度
    浮点数的精度:看尾数的位数
        单精度浮点型float:尾数位数为23+1 bit。因此数值部分可以表示24bit的精度
        双精度浮点型double:尾数位数为52+1 bit。因此数值部分可表示53bit的精度
        临时浮点数long double:尾数位数为64+1bit。因此数值部分可表示65bit的精度
        注:IEEE 754标准中,尾数是规格化的,隐含了一个最高位的1
    定点整数的精度︰看数值位的位数
        16位short型:数值部分的精度为15 bit
        32位int型:数值部分的精度为31 bit
        32位unsigned int 型:数值部分的精度为32bit
        64位long型:数值部分的精度为63 bit
    

CF、ZF、OF、SF傻傻分不清楚?
    CF
        含义:进位/借位标志,表示无符号数的加减法是否发生了进位或借位。
             当CF=1时,说明无符号数的加减运算发生了进位或借位,也即发生了溢出
        硬件的计算方法:CF=最高位产生的进位+sub
            sub=1表示减法
            sub=0表示加法
        注意:CF位对有符号数的加减法无意义
    ZF
        含义︰表示运算结果是否为0。ZF=1表示运算结果为0,ZF=O表示运算结果非O
        硬件的计算方法:两个数的运算结果为n bit,只有n bit全为0时,ZF=1
    OF
        含义:有符号数的加减运算是否发生了溢出。OF=1时,说明发生了溢出
        硬件的计算方法:OF=最高位产生的进位次高位产生的进位
        注意:OF位对无符号数的加减法无意义
    SF
        含义:有符号数加减运算结果的正负性,SF=0表示运算结果为正数,SF=1表示运算结果为负数
        硬件的计算方法:SF=最高位的本位和
        注意:SF位对无符号数的加减法无意义

2.記数法とコーディング

进位计数制及其相互转换(2 8 10 16)
    二、八、十六之间的转换很简单
    二转十——根据每位权值展开即可
    十转二
        好拼凑的——拼凑法(熟悉每个二进制位的权重)
        不好拼凑的
            整数部分:除2留余数,先留是低位后留是高位
            小数部分:乘2取整,先取是高位后取是低位


真值和机器数——机器数对应的真值是什么?——三要素
    进位级数制:二进制、BCD
    定点or浮点
    编码规则:原、反、补、移(需要注意偏移量多少)


字符与字符串

3.固定小数点数の表現と操作

定点数的表示
    无符号数的表示:重点关注无符号数的“减法”如何实现,以及无符号数加法/减法的溢出判断
    带符号整数的表示:原、反、补、移(把符号位和数值位一起编码的方法)


定点数的运算
    定点数的位移运算
    原码定点数的加/减运算
    补码定点数的加/减运算
    定点数的乘/除运算
        定点小数的乘除法——用于浮点数乘除法的实现
        定点整数的乘除法——重点掌握定点整数补码乘除法
    溢出概念和判别方法

4.浮動小数点数の表現と操作

浮点数的表示:IEEE754标准——结构︰符号位+阶码+尾数
    float:1+8+23
    double:1+11+52
    long double: 1+15+64


浮点数的加/减运算
    对阶︰小阶向大阶对齐
    尾数加减:原码定点数的加减法
    规格化:尾数规格化为1.XXXXX的形式
        尾数每左规一位,阶码-1
        尾数每右规一位,阶码+1
    舍入:尾数右规时,可能导致精度丢失,需考虑舍入问题
    判溢出
        尾数右规时,阶码超出可表示的最大值,上溢一发生溢出异常
        尾数左规时,阶码低于可表示的最小值,下溢—一当做机器0处理

5.算術論理演算装置ALU

串形加法器和并行加法器

算术逻辑单元ALU的功能与结构

注:追求120以上高分的同学,请结合强化课P3理解王道书2.4.2的硬件图原理

おすすめ

転載: blog.csdn.net/liu17234050/article/details/124200506
おすすめ