Nameless Site

But one day, you will stand before its decrepit gate,without really knowing why.

0%

一些讨论

计算机系统的性能能被准确测量吗?

不能,计算机的性能与很多因素有关,比如指令集、程序自身等,是一个综合的考量。所以是没法用一个统一的指标来描述计算机系统的性能,这是不够全面不够客观的。且各种测量的标准,比如MIPS、MFLOPS等等,都是针对某一个或者某一类测试程序而言,但实际上,每一个计算机系统进行的工作都不一样,很难出现像测试程序中设想的样子,所以测试的结果并不能准确衡量一个实际应用中的计算机系统的性能。


浮点数零与浮点数溢出之间的关系

浮点数零是阶位E为0且小数位M为0的情况。浮点数溢出有两种情况:上溢和下溢。上溢是指数据绝对值太大,机器无法表示;下溢是指数据绝对值太小,机器无法表示。如果运算结果落在上溢区,则产生溢出错误,机器停止运算;如果运算结果落在下溢区,由于数据绝对值很小,常作零处理。


什么条件下对CRC检测出的错误可以按照CRC的纠错原理进行纠错

如果没有总校验位的,CRC至多能检测出一位错,并可以进行纠正。如果增设总校验位,可以判断出一位错和两位错,对于判断出两位错的情况,选择丢弃当前数据,发送送重传信号给传输方。


如何检测程序运行中的数据溢出错误

无符号数根据最高进位是否溢出进行判断,具体说来,加法看进位是为1,减法看是否为0
有符号数有三种方法:
1.两个操作数的符号位相同时判断结果的符号是否与操作数相同
2.次高位和最高位进位异或
3.利用双符号运算,10负溢出,01正溢出


为什么计算机采用二进制?

1.对于计算机而言,数据表示方便使用高低电平表示1,0
2.运算规则简单
3.利于数据纠错,只需要找出是哪一位错了就能纠错
4.可以使用逻辑门进行算数运算


数据存放的大、小端方式对程序设计有何影响?

数据存放的大小端方式对程序员透明。一般来说,在同一机器,程序员不用考虑这一问题(因为在统一要么大端要么小端)。而且原则上,不同机器在传输过程中一定会考虑大小端问题(网络的表示层进行转化),但是也有可能会在传输过程中有的机器做的不够好,产生高低字节反转或者未识别大小端的情况。


为什么动态存储器比精态存储器慢

DRAM读之前需要预充电
DRAM需要每隔一段时间进行刷新
DRAM存储体的行列地址线复用,导致每次需要分时传送


为什么计算机需要使用多种数据寻址方式

从数据的存放特点上看,计算机需要处理的数据的存储方式是多种多样的,可以是存储在寄存器中的一些中间结果,可以是调入到内存中的一些变量,也可以是存放在主存设备中的数据,要将这些不同存储方式的数据调入CPU内进行运算,仅采用单一的寻址方式是很难实现的;
从程序设计的角度上看,多种的数据寻址方式能为程序设计很高的灵活性,例如对数组或结构成员的访问,可采用基址寻址,对指针对象进行访问可以用寄存器间接寻址,等等;
从执行的效率角度上看,寄存器寻址速度很快,但不能访问主存,寄存器间接寻址速度较慢,但可以访问主存,立即寻址较快,但寻址范围受限,为了使程序能够获得较高的性能但又不失方便性,多种的数据寻址方式能够均衡这两个矛盾。


系统总线能否用作存储总线

原理上可以,但会降低系统并行性,增加复杂度


总线性能分析 试从总线的性能指标分析,为什么目前串行总线比较流行。

串行传输所需要的传输线少,成本低,适合远距离传输。缺点:每次只能传输一位数据,所以传输速度很慢。并行传输的需要的传输线与信息位有关,所有位同时传输,传输速度非常快,但是要求的线路多,成本很高,适用于短距离传输。实际使用过程中,使用串行传输,用户基本感觉不到太大的延迟,所以串行传输在成本上比较占据优势。


单级总线结构 为什么嵌入式处理器系统通常采用单级总线结构?

程序和数据共同使用一个存储空间,程序指令存储器地址和数据存储地址指向同一个存储器的不同物理位置。该结构的程序指令宽度相同,采用单一的地址及数据总线,比较典型的例子就是MIPS


总线仲裁 试分析什么情况下需要进行总线仲裁。

系统中多个设备或模块可能同时申请对总线的使用权,为避免产生总线冲突,需由总线仲裁机构合理地控制和管理系统中需要占用总线的申请者,在多个申请者同时提出总线请求时,以一定的优先算法仲裁哪个应获得对总线的使用权。


总线标准 能否预测一下,下一代总线标准会是怎样的。

1、面向存储器的双总线结构信息传送效率较高,这是它的主要优点。但CPU与I/O接口都要访问存储器时,仍会产生冲突。所以下一步是解决或减少这样的冲突。
2、CPU与高速的局部存储器和局部I/O接口通过高传输速率的局部总线连接,速度较慢的全局存储器和全局I/O接口与较慢的全局总线连接,从而兼顾了高速设备和慢速设备,使它们之间不互相牵扯。
3、简化了硬件的设计。便于采用模块化结构设计方法,面向总线的微型计算机设计只要按照这些规定制作cpu插件、存储器插件以及I/O插件等,将它们连入总线就可工作,而不必考虑总线的详细操作。
4、简化了系统结构。整个系统结构清晰。连线少,底板连线可以印制化。
5、系统扩充性好。一是规模扩充,规模扩充仅仅需要多插一些同类型的插件。二是功能扩充,功能扩充仅仅需要按照总线标准设计新插件,插件插入机器的位置往往没有严格的限制。
6、系统更新性能好。因为cpu、存储器、I/O接口等都是按总线规约挂到总线上的,因而只要总线设计恰当,可以随时随着处理器的芯片以及其他有关芯片的进展设计新的插件,新的插件插到底板上对系统进行更新,其他插件和底板连线一般不需要改。
7、便于故障诊断和维修。用主板测试卡可以很方便找到出现故障的部位,以及总线类型。


存储IO和通信IO 举例分析存储IO和通信IO的异同。

存储IO是在缓存与磁盘阵列之间进行数据交换的过程,涉及IO接口和读写性能,存储IO的速度取决于磁盘的速度。
通信IO是通过网络进行数据交换,比如socket,执行阻塞IO,通过应用层,运输层,网络层,数据链路层,物理层的五级网络架构进行数据的封装和交换。


中断IO方式 为什么中断IO方式的应用最广泛。

可以让CPU避免忙于查询各个外部设备的状态,提高CPU利用率;
中断除了传输数据还可以处理异常;
软硬件结合的方式也让使用成本变得不是那么高。
因而应用广泛。

由于CPU和内存的速度远远高于外设的速度,所以,在IO编程中,就存在速度严重不匹配的问题。 同步IO模式,程序暂停执行后续代码,等待数据写入磁盘,再接着往下执行; 异步IO模式,CPU不等待,只是告诉磁盘继续读写,后续代码可以立刻接着执行。 当有新的IO请求时,设备发出中断请求,CPU收到请求后,进行IO请求中断响应,完成响应后恢复现场,回到原来的地方继续执行。 当IO完成时,设备发出完成IO的中断信号,CPU进入中断处理读写完成的数据和缓存。 采用中断IO的方式,大大提高了有IO需求时,CPU的工作效率


中断优先级 中断优先级低的中断请求能否优先处理完成,为什么?

在中断处理程序中设置新的中断屏蔽字。为了能根据需要,改变实际的中断处理次序,很多机器都设置了中断屏蔽寄存器硬件,以决定是否让某级中断请求进入中断优先权电路进行优先权比较。级别高的中断请求优先得到响应。只要将每一类中断处理程序的各级中断屏蔽位设置成不同的状态,就可以得到所希望的中断处理次序。因此,可以通过设置中断屏蔽字实现低优先级的中断先处理,实际上,可以任意改变处理次序,这为中断处理带来了灵活性。


DMA传输模式 你觉得DMA传输模式的控制可由什么部件来实现的。

当外围设备要求传送一批数据时,由DMA控制器发一个停止信号给CPU,要求CPU放弃对地址总线、数据总线和有关控制总线的使用权。DMA控制器获得总线控制权以后,开始进行数据传送。在一批数据传送完毕后,DMA控制器通知CPU可以使用内存,并把总线控制权交还给CPU在这种DMA传送过程中,CPU基本处于不工作状态或者说保持状态。DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为RAM与I/O设备开辟一条直接传送数据的通路,使CPU的效率大为提高。


实验中的所选用的生成多项式对编码求余数的循环周期是多少?为什么?

CRC-5,余数为5位,只有全为0时表示正确,剩余31种状态表示错误,也就是出错的状态有31种。


Logisim中的毛刺如何消除?

增加冗余项、增加惯性延时环节(logisim中可以增加缓冲器),选通法


逻辑门组件最多可以有32个输入,实际电路中有这样的逻辑门吗?

理论上有,但是实际实验时输入太多会使逻辑变得非常复杂,而且输入增多, 门电路里的晶体管也会增多, 本身即会增大门电路时延, 同时多晶体管也不利于电平的稳定控制,需要更大的电压。


如果合并LW,SW指令第三个状态,微程序控制器需要如何修改?
本次实验中,LW指令,SW指令的第三个时钟周期的状态进行了分离,简化了设计,如果不进行状态分离,微程序控制器需要做什么修改?给出你的方案。

增加一个判断位,假设判断位不为00时使用下址字段给出的地址,判断位为其他值时使用地址转移逻辑给出的地址(判断位为01表示计算地址状态),更改地址转移逻辑,增加判断位为地址转移逻辑输入,当判断位为01时,地址转移逻辑根据指令的不同给出不同的下址


硬件cache机制设计实验研讨
1)如果采用软件程序来实现cache,哪种映射方法更有效?
2)如果采用软件程序实现cache,LRU算法采用什么数据结构实现更加方便?
3)软件实现中不可能实现全相联查找的并发查找机制,如何提升查找速度?

我个人回答:全相连,哈希链表,哈希


MIPS 寄存器文件设计实验研讨 零号寄存器的值为什么要恒零,这样做有什么好处?

汇编代码中有大量赋值为0或者与0比较的指令,设置一个恒0的寄存器可以避免这类指令中装载立即数0的过程,可以提高效率