烽火 2021 DSP工程師面試題

小編:管理員 2103閱讀 2021.09.29

第1題:

定點(diǎn)DSP芯片和浮點(diǎn)DSP芯片是什么?有什么優(yōu)缺點(diǎn)?



定點(diǎn)DSP和浮點(diǎn)DSP主要是按DSP工作時(shí)的數據格式來(lái)區分的。數據以定點(diǎn)格式工作的DSP是定點(diǎn)DSP,數據以浮點(diǎn)格式工作的DSP是浮點(diǎn)DSP。浮點(diǎn)DSP能進(jìn)行浮點(diǎn)運算,一次完成,由硬件實(shí)現。定點(diǎn)DSP無(wú)法直接進(jìn)行浮點(diǎn)運算,完成浮點(diǎn)運算需要借助程序來(lái)實(shí)現。

優(yōu)點(diǎn):浮點(diǎn)DSP比定點(diǎn)DSP 的運算范圍要大。浮點(diǎn)DSP 的尋址范圍也大些。浮點(diǎn)DSP的精度大些。浮點(diǎn)運算速度大。

缺點(diǎn):定點(diǎn)DSP需要時(shí)刻注意運算的溢出。精度不夠,定點(diǎn)DSP運算速度慢。



第2題:

DSP和通用CPU的最大區別是什么?有什么共同點(diǎn)?



(1)首先是體系結構:CPU是馮.諾伊曼結構的,而DSP有分開(kāi)的代碼和數據總線(xiàn)即“哈佛結構”。
(2) 標準化和通用性:CPU的標準化和通用性做得很好,支持操作系統,所以以CPU為核心的系統方便人機交互以及和標準接口設備通信,非常方便而且不需要硬件開(kāi)發(fā)了;但這也使得CPU外設接口電路比較復雜,DSP主要還是用來(lái)開(kāi)發(fā)嵌入式的信號處理系統了,不強調人機交互,一般不需要很多通信接口,因此結構也較為簡(jiǎn)單,便于開(kāi)發(fā)。如果只是著(zhù)眼于嵌入式應用的話(huà),嵌入式CPU和DSP的區別應該只在于一個(gè)偏重控制一個(gè)偏重運算了。
(3)流水線(xiàn)結構:大多數DSP都擁有流水結構,即每條指令都由片內多個(gè)功能單元分別完成取指、譯碼、取數、執行等步驟,這樣可以大大提高系統的執行效率。但流水線(xiàn)的采用也增加了軟件設計的難度,要求設計者在程序設計中考慮流水的需要。
? ??快速乘法器:信號處理算法往往大量用到乘加(multiply-accumulate,MAC)運算。DSP有專(zhuān)用的硬件乘法器,它可以在一個(gè)時(shí)鐘周期內完成MAC運算。硬件乘法器占用了DSP芯片面積的很大一部分。(與之相反,通用CPU采用一種較慢的、迭代的乘法技術(shù),它可以在多個(gè)時(shí)鐘周期內完成一次乘法運算,但是占用了較少了硅片資源)。
? ? 地址發(fā)生器:DSP有專(zhuān)用的硬件地址發(fā)生單元,這樣它可以支持許多信號處理算法所要求的特定數據地址模式。這包括前(后)增(減)、環(huán)狀數據緩沖的模地址以及FFT的比特倒置地址。地址發(fā)生器單元與主ALU和乘法器并行工作,這就進(jìn)一步增加了DSP可以在一個(gè)時(shí)鐘周期內可以完成的工作量。
? ?硬件輔助循環(huán):信號處理算法常常需要執行緊密的指令循環(huán)。對硬件輔助循環(huán)的支持,可以讓DSP高效的循環(huán)執行代碼塊而無(wú)需讓流水線(xiàn)停轉或者讓軟件來(lái)測試循環(huán)終止條件。



第3題:

占先式系統和非占先式系統有什么區別?DSP/BIOS 和ucOSⅡ是哪一種?



占先式,當前任務(wù)運行中如果有優(yōu)先級更高的任務(wù)進(jìn)入就緒態(tài),當前任務(wù)立即將CPU交給優(yōu)先級更高的任務(wù)。
非占先式:等當前任務(wù)執行完后再交給優(yōu)先級更高的任務(wù)。
DSP/BIOS,ucOSII是占先式的操作系統。



第4題:

說(shuō)一下對DSP MAP的認識



MAP文件是CCS軟件編譯后產(chǎn)生的有關(guān)DSP用到所有程序、數據及IO空間的一種映射文件。
一、生成方法
? ? MAP文件主要有兩種生成方法,一種是由系統自動(dòng)生成,默認文件名為所建立的項目名(如XXX為項目名)加上.map后綴xxx.map,另一種在CMD文件中指定生成MAP文件,操作方法為在MEMORY指令前面加上“-m abc.map”,文件名可以任意。
二、文件格式
? ? MAP文件大概分為文件頭、內存配置、段映射、全局符號四部分。內存配置與CMD文件中的MEMORY指令關(guān)聯(lián),在CMD文件中定義的程序與數據區間定義,在該部分均可以找到對應,與CMD文件不同的時(shí),在MAP文件中加入了一個(gè)實(shí)際使用的區間,即在程序中實(shí)際用到的空間長(cháng)度。段映射部分與CMD文件中的SECTION指令關(guān)聯(lián),在該部分程序中所有的段實(shí)際映射的起始地址與實(shí)際長(cháng)度均有詳細說(shuō)明?梢跃唧w到程序中PROGMA指定的段和各個(gè)單獨文件產(chǎn)生的OBJ文件。全局符號可以是程序使用的每一個(gè)函數、程序中定義的全局變量均可以在此找到對應的起始地址。MAP文件中采用兩種方式列舉,一種為按相應地址排列,另一種按全局符號字母排列。



第5題:

?-7和10的16位二進(jìn)制補碼是什么? 寫(xiě)出Q15 0.25和Q15 0.5



⑴正數的補碼??與原碼相同。?
⑵負數的補碼??負數的補碼是對其原碼逐位取反,但符號位除外;然后整個(gè)數加1。?

-7轉換成二進(jìn)制原碼是1000000000000111,反碼是1111111111111000,補碼是反碼+1=1111111111111001
10的二進(jìn)制原碼是0000000000001010,是正數,補碼和原碼一樣

DSP芯片的數以2的補碼形式表示。每個(gè)16位數用一個(gè)符號位來(lái)表示數的正負,0表示數值為正,l則表示數值為負。其余15位表示數值的大小。
如,二進(jìn)制數0010000000000011b=8195
? ?? ?二進(jìn)制數1111111111111100b= -4

數的定標有Q表示法和S表示法兩種。
不同的Q所表示的數不僅范圍不同,而且精度也不相同。Q越大,數值范圍越小,但精度越高;
如,16進(jìn)制數2000H=8192,用Q0表示
? ?? ? 16進(jìn)制數2000H=0.25,用Q15表示



第6題:

說(shuō)一下DSP開(kāi)發(fā)的主要步驟



第7題:

寫(xiě)出strcpy的函數原型。
char* strcpy(char *strDest,const char * strSrc)
{

}



第8題:

寫(xiě)出創(chuàng )建單鏈表的函數。
struct stu_info{
int x;
struct stu_info *next;
};

void inputstuinfo(struct stu_info**head,int n)
{
}



第9題:

對一個(gè)字符串進(jìn)行重新排列,使字母在前,數字在后,并且字母和數字的相對位置不變。
include
include
include
函數名:fun
參數: char*s,int *m
函數返回值:chLetter(數組chLetter[N]的數組名)
局部變量:char chLetter[N]; char chNumber[N]; int i,j,k;
char *fun(char*s,int *m)
{

}


關(guān)聯(lián)標簽:
91久久香蕉国产线看观看软件|思思热在线视频精品996|精品无码一区二区三区水蜜桃|久久综合无码中文字幕无码|午夜亚洲AⅤ无码高潮片在线