《計算機組成原理》課程設計報告.doc
計算機組成原理課程設計報告專業(yè)計算機科學與技術學生姓名秦霞班級B計073學號0710604317指導教師張靜林完成日期2010年9月鹽城工學院信息學院目 錄一、課程設計的目的2二、課程設計的內(nèi)容21題目:22功能:23實現(xiàn)步驟:2三、主要技術指標及特點2四、設計小結(jié)2五、參考文獻2一、課程設計的目的本課程設計是在學完本課程教學大綱規(guī)定的全部內(nèi)容、完成所有實踐環(huán)節(jié)的基礎上,旨在深化學生學習的計算機組成原理課程基本知識,進一步領會計算機組成原理的一些算法,并進行具體實現(xiàn),提高分析問題、解決問題的綜合應用能力。二、課程設計的內(nèi)容1題目:計算機組成原理算法實現(xiàn)(三)2功能:課題能夠?qū)崿F(xiàn)邏輯運算(邏輯非、邏輯加、邏輯乘、邏輯異)、定點整數(shù)的單符號位補碼加減運算、定點整數(shù)的原碼一位乘法運算和浮點數(shù)的加減運算。3實現(xiàn)步驟:(1)系統(tǒng)進入(主)窗體的設計:菜單需要在輸入口令正確后方可激活使用??诹钶斎脲e誤時要給出重新輸入口令的提示,三次口令輸入錯誤應該禁止使用。(2)選擇主窗體中“邏輯運算”時進入下圖所示的窗體:在上面的窗體中按“輸入”按扭時,將輸入焦點設置為最上面的一個文本框上。依次輸入兩個(或一個)二進制數(shù)(如11001100或00111010)后,按“邏輯非”、“邏輯加”、“邏輯乘”或“邏輯異”按扭中的任一個后,將在第三個文本框中顯示對應操作的結(jié)果。選擇“返回”按扭時回到主窗體。(3)進行定點整數(shù)單符號位補碼加減法的實現(xiàn)時都是在主窗體選擇對應的菜單項后進入對應窗體再進行具體操作。操作時首先選擇“輸入”按扭輸入?yún)⑴c運算的數(shù)據(jù),然后再選操作按扭。各自窗體的參考圖如下所示:在第一個數(shù)中輸入+11001100在第二個數(shù)中輸入-01011100點擊加法按鈕和減法按鈕可得加法結(jié)果和減法結(jié)果進行定點整數(shù)定點整數(shù)原碼乘法的實現(xiàn)時都是在主窗體選擇對應的菜單項后進入對應窗體再進行具體操作。操作時首先選擇“輸入”按扭輸入?yún)⑴c運算的數(shù)據(jù),然后再選操作按扭。各自窗體的參考圖如下所示:進行定點整數(shù)單符號位補碼加減法、定點整數(shù)原碼乘法、浮點加減法的實現(xiàn)時都是在主窗體選擇對應的菜單項后進入對應窗體再進行具體操作。操作時首先選擇“輸入”按扭輸入?yún)⑴c運算的數(shù)據(jù),然后再選操作按扭。各自窗體的參考圖如下所示:如需幫助,可按幫助按鈕,得到以下窗口:三、主要技術指標及特點數(shù)據(jù)表示方法: 計算機中常用的數(shù)據(jù)表示格式有兩種,一是定點格式,二是浮點格式。(1)定點表示:約定機器中所有數(shù)據(jù)的小數(shù)點位置是固定的。由于約定在固定的位置,所以小數(shù)點就不再使用記號“.”來表示。 (2)浮點表示:定點數(shù)表示的數(shù)的范圍有限,為了擴展數(shù)的表示范圍,按照科學記數(shù)法表示數(shù)據(jù)的方式,任何一個二進制數(shù)N都可以表示成如下的格式:NM*2eM :尾數(shù),是一個純小數(shù),決定數(shù)據(jù)的表示精度 e :指數(shù),又稱為階碼,是一個整數(shù),決定數(shù)據(jù)的表示范圍數(shù)的機器碼表示: 一般書寫所表示的數(shù)據(jù)稱為真值,在計算機中為了表示符號位,通常把符號位和數(shù)字位一起編碼來表示相應的數(shù),形成了各種數(shù)據(jù)的存儲和表示方法,這些編碼稱為機器碼。常用的機器碼有原碼、反碼、補碼和移碼。(1)原碼:原碼的數(shù)值部分是該數(shù)的絕對值,最高位表示符號位,最高位為0是正數(shù),最高位為1是負數(shù)。(2)反碼:正數(shù)的反碼等于原碼,負數(shù)的反碼等于除符號位外其余二進制數(shù)碼0變成1,1變成0。 正數(shù): x反 = x原 = x 負數(shù): 符號位不變,其余變反(3)補碼:正數(shù)的補碼等于原碼,負數(shù)的補碼等于反碼加1。 正數(shù): x補= x原 負數(shù): x補= x反 +1定點加、減法運算:結(jié)論:任何兩數(shù)的補碼只和等于兩數(shù)只和的補碼v 補碼加法 基本公式: x補 + y補 = x+y補 v 補碼減法 基本公式: x補 - y補x補 + -y補 當負數(shù)用補碼表示后,符號位作為數(shù)據(jù)的一部分一起參加運算,運算器不用考慮參加加法運算的操作數(shù)的正負以及結(jié)果的正負,任意數(shù)的加法就可以化作正數(shù)加法來作。v 溢出:在定點數(shù)機器中,數(shù)的大小超出了定點數(shù)能表示的范圍,叫溢出。(1)在定點小數(shù)機中數(shù)的表示范圍是-1<x<1,如果運算過程中出現(xiàn)了大于1或者小于1的情況。(2)在定點整數(shù)機(8位)中數(shù)的表示范圍是-128<x<127,如果運算過程中出現(xiàn)了大于127或者小于128的情況。雙符號位法:將符號位擴展為2位,具體說就是對于正數(shù)兩個符號位是“00”,對于負數(shù)兩個符號位是“11”。兩個符號位都看作數(shù)碼一樣參加運算。兩個數(shù)相加后,其結(jié)果的符號位出現(xiàn)“01”或“10”兩種組合時,表示發(fā)生溢出。 符號位“01”,上溢出 符號位“10”,下溢出 符號位“00”或者“11”,未溢出 從補求補的法則是: 對補“包括符號位求反且最末位加1”,即可得到補定點乘法運算 :在定點計算機中,兩個原碼表示的數(shù)相乘的運算規(guī)則是:乘積的符號位由兩數(shù)的符號位按異或運算得到,而乘積的數(shù)值部分則是兩個正數(shù)相乘之積。設n位被乘數(shù)和乘數(shù)用定點小數(shù)表示(定點整數(shù)也同樣適用)被乘數(shù) 原f .n110 乘數(shù) 原f .n110 則乘積 原(ff)(0.n110)(0.n110) 式中,f為被乘數(shù)符號,f為乘數(shù)符號。 機器算法: 機器中一種方法是多次采用”加法移位“的方法來完成,稱為串行乘法器,它的硬件結(jié)構(gòu)簡單,但是速度慢,目前廣泛使用的是流水式陣列乘法器,稱為并行乘法器。無符號數(shù)m乘以n會產(chǎn)生m*n個位積,出現(xiàn)m+n個列和,并行乘法器的關鍵是快速產(chǎn)生m*n個位積,對位積進行相加運算產(chǎn)生m+n個列和。第一步:位積的產(chǎn)生觀察乘法運算:0*00,0*10,1*00,1*11 相當于:ab所以m*n個位積可以由m*n個與門并行產(chǎn)生。第二步:列和的產(chǎn)生:利用全加器浮點數(shù)的加減法運算: 浮點數(shù)的加減法運算分為六個步驟:(1)0操作數(shù)檢查 浮點加減運算過程比定點運算過程復雜。如果判知兩個操作數(shù)或中有一個數(shù)為0,即可得知運算結(jié)果而沒有必要再進行后續(xù)的一系列操作以節(jié)省運算時間。0操作數(shù)檢查步驟則用來完成這一功能。 參加加法運算的數(shù)據(jù)都是非零,進入下一步。(2)比較價碼大小并完成對階 為了便于直觀理解,假設兩數(shù)均以補碼表示,階碼采用雙符號位,尾數(shù)采用單符號位。 兩浮點數(shù)進行加減,首先要看兩數(shù)的階碼是否相同,若二數(shù)階碼不同,表示小數(shù)點位置沒有對齊,此時必須使二數(shù)階碼相同,這個過程叫作對階。對階操作規(guī)定使尾數(shù)右移,尾數(shù)右移后階碼作相應增加,因此對階時,總是使小階向大階看齊。(3)尾數(shù)進行加減運算 對階結(jié)束后,即可進行尾數(shù)的求和運算。不論加法運算還是減法運算,都按加法進行操作(減法利用補碼減法轉(zhuǎn)換成補碼的加法來做),其方法與定點加減法運算完全一樣。 (4)結(jié)果規(guī)格化 a. 采用雙符號位表示尾數(shù)時,如果兩符號位為01或10時,應將結(jié)果尾數(shù)右移一位,階碼加1(叫“右規(guī)”)。 b. 如果尾數(shù)最高數(shù)值位與符號位相同,應將尾數(shù)左移,階碼減,直至數(shù)值位最高位與符號位相反(叫“左規(guī)”)。(5)舍入運算 在對階向右規(guī)格化,尾數(shù)向右移位,這樣被右移的尾數(shù)的低位部分會被丟掉,從而造成一定誤差,要進行舍入處理。簡單的舍入方法有兩種:一種是“0舍1入”法,即如果右移時被丟掉數(shù)位的最高位為0則舍去,為1則將尾數(shù)的末位做加加1運算。另一種是“恒置1”法,即只要數(shù)位被移掉,就在尾數(shù)的末尾恒置1。(6)判斷結(jié)果是否溢出 階碼為00 011,階碼的符號位為00,根據(jù)補碼的雙符號檢測溢出的方法確定階碼不溢出。登陸窗口流程圖邏輯運算流程圖定點整數(shù)單符號位補碼加減法流程圖定點整數(shù)的原碼乘法窗體流程圖四、設計小結(jié)通過為期一周的計算機組成原理課程設計,我真的很珍惜這次機會,這可能是我們大學生涯的最后一次了,現(xiàn)在的我們面臨就業(yè)的危機,這一次的練習可以算是我們步入社會的一次練筆,也希望好好利用這次機會。通過一周的課程設計對計算機組成原理中的知識有了全新的認識。以前只是一味的學習課本只是,基本上都沒有什么時間,好好的鍛煉一下學過的知識點,沒有將知識充分的利用到實踐生活中,而這次課程設計充分的給了我這個機會,所以我一定會好好利用這次機會,充分的鍛煉自己,為以后步入工作打下堅實的基礎。本次課程設計我使用的是NetBeans用JAVA語言編寫,通過對這些工具的使用,我深深體會到計算機組成原理并不只是書本上的一些知識,上機實踐對于這門科目來說真的很重要。平常簡簡單單的一個運算,也許自己通過加加減減就能得出結(jié)果,通過實踐發(fā)現(xiàn)其中集合了很多我們平時忽略的知識,讓我再一次好好的復習了一下書本知識點,對于自己不會的知識點,我也充分的利用了網(wǎng)絡的方便快捷,也為這次課程設計節(jié)省下了許多寶貴的時間。所以,通過這次實踐,把書中很多知識鞏固了下,加深印象!,通過這次課程設計,我確實收益頗多!總之,這次課程設計使我在動手能力上有了很大的提高,也許這是畢業(yè)設計之前最好的一次鍛煉動手能力的機會,也可能是最后一次。我認為這次課程設計是畢業(yè)設計的前奏,不過我想我已經(jīng)成功的抓住了這次機會并很好的把握住了這個前奏。通過這次設計,我也了解到了集體的力量,大家一起討論的情景,讓我很是感動。體會到了大家一起學習的熱情,還有謝謝老師的耐心指導。在以后的學習過程中,要相互學習,努力上進,爭取得到更大的進步。當然以后也要好好抓住這種可以好好鍛煉的機會,好好磨練自己,從實踐中得到知識,升華自己!五、參考文獻1 王愛英.計算機組成原理與系統(tǒng)結(jié)構(gòu). 北京:清華大學出版社,20012 啟東計算機公司.CCT-IV計算機組成原理,3 白中英,計算機組成原理,科學技術出版社蔣本珊,計算機組成原理與系統(tǒng)結(jié)構(gòu),北京航空航天大學出版社