乘法器的實現及優化
實現乙個四位的乘法器,首先需要乙個暫存器儲存被乘數,被乘數暫存器是乙個八位的暫存器,而且帶有左移的功能,它有乙個左移的控制訊號輸入,當外部的控制邏輯將這個訊號置為有效時,在下乙個時鐘上公升沿到來的時候,被乘數暫存器當中的內容就會向左移動一位。第二個暫存器是乘積暫存器(存放所需的運算結果),這也是八位的暫存器,用來儲存運算的結果,被乘數暫存器當中的內容和乘積暫存器當中的內容需要進行加法運算,還需要乙個八位的加法器,它會將被乘數暫存器當中的內容和乘積暫存器當中的內容進行相加,並將結果送到乘積暫存器當中。還需要乙個四位暫存器來儲存乘數,乘數暫存器的最低位被連線到了控制邏輯,就是控制邏輯可以觀察當前乘數暫存器的最低位,並據此生成相關的控制訊號,這些控制訊號包括是否要讓加法器進行加法運算,以及是否要讓乘積暫存器儲存當前的運算結果。乘數暫存器需要有向右移位的功能,同樣也是由控制邏輯發出的訊號來進行控制的。
乘法器的工作過程,首先要初始化,先把被乘數放到被乘數暫存器當中(高四位置0),乘數放到乘數暫存器,乘積暫存器當前為0,初始化工作完成。運算過程,(1)首先檢查乘數暫存器的最低位,如果是1,就需要將被乘數暫存器當中的內容和當前乘積暫存器當中的內容進行相加,控制邏輯會控制加法器,將被乘數暫存器的內容和乘積暫存器當中的內容進行加法運算,然後將加法器的運算結果送入乘積暫存器,在下乙個時鐘上公升沿來臨的時候,因為乘積暫存器的寫入訊號是有效的,所以乘積暫存器就會取樣輸入端的資料,並儲存到乘積暫存器當中;如果是0,直接執行第二步。(2)然後控制邏輯會給出左移的訊號,在下乙個時鐘上公升沿來臨的時候,被乘數暫存器就會完成一次左移,最左端的0被丟棄了,在最右端補入乙個0。(3)控制邏輯給出右移的控制訊號,當下乙個時鐘上公升沿來臨的時候,乘數暫存器就會向右移動一位,這樣只是方便對乘數的對應位進行判斷。(4)由控制邏輯進行判斷,現在是否已經完成了運算。
對這個四位的乘法器來說,一共要產生四個中間結果並將它們進行相加,控制邏輯可以判斷出當前是否是第四次迴圈。
乘法器的優化
優化當第一步檢查「乘數暫存器」的最低位,如果最低位是1,則相加、左移、右移將同時進行,如果最低位是0,則同時執行左移和右移。
減少不必要的硬體資源,(1)「被乘數」暫存器縮減為4位,而且取消左移功能
(2)取消「乘數暫存器」,乘數初始置於「乘積暫存器」低4位
(3)「乘積暫存器」增加右移功能,乘積初始值置於其中高4位,隨著運算過程不斷右移
(4)「加法器」縮減為4位寬,「乘積暫存器」只有高4位參與運算
現在需要把乘積暫存器的最低位連線到控制邏輯,就是當前所需要觀察的乘數的對應位,如果為1,控制邏輯需要向加法器發出執行加法運算的控制訊號,並向乘積暫存器發出寫入的控制訊號,這個寫入只發生在乘積暫存器的高4位,每個週期發出右移的控制訊號,隨著乘積暫存器的右移,放在低四位的乘數就逐漸的被移出,而原先只在高4位的乘積則逐漸佔滿了乘積暫存器。
計算機組成的一些總結(2)計算機的輸入和輸出
輸入輸出與計算機的其他部分相連 cpu是通過控制匯流排 位址匯流排和資料匯流排與儲存器相連的,將控制匯流排分別連線到儲存器和輸入輸出晶元的控制邏輯,位址匯流排也分別連線這兩個部件,資料匯流排也是如此,然後我們將輸入輸出裝置中其中乙個單元連線到手動的開關,這個單元中有8個位元,每個位元連線乙個開關,當...
計算機組成原理基礎的一些概念
初次接觸硬體相關的知識,還作為一門核心專業課,畢竟以前接觸的大部分都是軟體相關的。所以還是有些迷惑的,在此記錄一下一些基本概念,一來方便複習,二來引起自己的重視 計算機的吞吐量 計算機系統的吞吐量是指流入,處理和流出系統的資訊的速率。它取決於資訊能夠多快地輸入記憶體,cpu能夠多快地取指令,資料能夠...
雜談 對計算機組成原理的一些思考
先來了解一下什麼是快閃儲存器 本質是區別就是 斷電後是否資料是否儲存。計算機組成原理的本質是做什麼?資料處理,計算機所有操作所有都是圍繞資料 或者可以理解為0,1 可以分為兩大個方面 1 資料儲存 資料儲存依賴於增刪改查操作得以實現,而儲存的物理介質依賴於磁介質 你也可以粗略理解為磁碟 2 資料傳輸...