|
发表于 2016-7-29 22:04:32
|
显示全部楼层
(3)算法描述:
Int LocateElement(linklist list,int k)
{ P1=list->link;
P=list;
i=1;
while(P1)
{ P1=P1->link;
i++;
if(i>k) p=p->next; //如果i>k,则p也往后移
}
if(p==list)return 0; //说明链表没有k个结点
else
{
printf(“%d\n“,p->data);
return 1;
}
}
43. (1)在中断方式下,每32位(4B)被中断一次,故每秒中断
0.5MB/4B=0.5×106/4=12.5×104次
要注意的是,这里是数据传输率,所以1MB=106B。因为中断服务程序包含18条指令,中断服务的
其他开销相当于2条指令的执行时间,且执行每条指令平均需5个时钟周期,所以,1秒内用于中断
的时钟周期数为
(18+2)×5×12.5×104=12.5×106
(2)在DMA方式下,每秒进行DMA操作
5MB/5000B=5×106/5000=1×103 次因为DMA预处理和后处理的总开销为500个时钟周期,所以1秒
钟之内用于DMA操作的时钟周期数为
500×1×103=5×105
故在DMA方式下,占整个CPU时间的百分比是
((5×105)/(500×106))×100%=0.1%
44.指令执行阶段每个节拍的功能和有效控制信号如下所示
时钟 功能 有效控制信号
C5 MAR←(R1) PCout,MARin
C6 MDR←M(MAR) MemR,MDRinE
C7 A←(R0) R0out,Ain
C8 AC←(MDR)+(A) MDRout,Addr,ACin
C9 MDR←(AC) ACout,MDRin
C10 M(MAR) ←MDR MDRoutE,MemW
|
|