(十七)建立資料通路 指令 運算

2022-06-30 22:45:18 字數 3159 閱讀 9371

一、指令週期

計算機每條執行過程分解如下:

不斷重複1~3的過程;

以上 1~3 的取指令、指令解碼、指令執行的一次迴圈稱為乙個指令週期;不同的過程由cpu中不同的元件執行:

三個週期極其關係:

二、建立資料通路

資料通路由兩類原件組成:

操作原件:就是alu,輸入不同電路訊號輸出特定結果;

儲存原件:通用暫存器和狀態暫存器;

通過資料匯流排將他們連線起來就構成了資料匯流排。

控制器:控制器的作用可以簡單看作不斷重複取指令然後指令解碼再把解碼結果交給alu去執行。但實際的控制器相當複雜,所有cpu支援的指令都在控制器裡面,現代inter cpu已經支援超過2000個指令。

三、cpu需要的硬體電路

至少需要以下四類電路:

四、時鐘訊號的硬體實現

之前說過cpu的時鐘訊號是由晶體**器實現的,我們也可以通過乙個反饋電路實現,所謂反饋器就是將電路的輸出訊號作為當前電路的輸入訊號。如下圖:

開始時,a開關斷開,b開關閉合,a開關開啟後電磁鐵使b開關斷開,斷開b開關後,電磁鐵失去磁性,b開關彈回重新又通電,這樣就能不但產生0、1訊號的輸出。這個反饋電路是實際乙個反相器,用這個符號表示:

五、通過d觸發器實現儲存功能

利用反饋電路可以構造出有記憶功能的電路。這種記憶功能的電路可以用來構造計算機中的儲存計算結果的暫存器以及儲存器。

rs觸發器:由兩個或非門構成,或非門即全0輸出1,其餘輸出0

一開始開關r和s都關閉也即是說輸入都為0,此時a輸出為1,b的輸入為1、0因此整個電路輸出為0;

當開關r合上時,a的輸入為1、0,a輸出為0,b的輸入為0、0,因此整個電路輸出為1;

此時再次斷開r,a的輸入為0、1,a輸出為0,b輸入為0、0,因此整個電路輸出為1,也就是說雖然開關狀態已經變成和第一步一樣,但是輸出仍然保持和第二步一樣;

這時再去開啟s,則b有乙個輸入必然為1,因此整個電路輸出必為0;

以上電路,接通r輸出為1,即使再次斷開r,輸出還是1,接通s,輸出為0,即使再次斷開,輸出仍為0,這就是說,整個電路具有了記憶功能。

在rs觸發器之上,在r和s之後增加兩個與門,同時給這兩個與門乙個時鐘訊號作為電路輸入,這是時鐘電路低電平時,兩個與門的輸出結果都為0,此時r和s對整個電路輸出結果沒有影響,當時鐘輸入高電平時,電路輸入的狀態完全取決於r和s的狀態,這樣就用時鐘訊號控制了電路何時可以寫入資料。

更進一步,我們將r和s使用乙個反相器連線起來,就可以使用乙個訊號控制r和s的輸入,這樣我們就實現了一位元資料的儲存,這就是d觸發器。並列n個d觸發器就可以得到乙個n位的d觸發器,使用乙個時鐘訊號控制n位的讀寫,cpu的暫存器可以直接通過d觸發器實現。

六、pc暫存器所需的計數器

pc暫存器還有乙個名稱叫做「程式計數器」,我們可以使用乙個加法器和乙個d觸發器實現它:

加法器的兩端,一端始終輸入1,另一端來自觸發器的輸出;

觸發器的輸入分別是加法器的輸出和時鐘訊號;

這樣當每個時鐘訊號來臨加法器就將觸發器原本儲存的值加一再寫入儲存器,這樣就實現了乙個隨著時鐘訊號固定自增1的pc暫存器

七、讀寫資料所需要的解碼器

如圖它由兩個與門和乙個或門以及乙個反相器組成,通過反相器的輸入就能夠決定最終輸出a端輸入還是輸出b端輸入。乙個反相器只有0/1兩種狀態,如果輸入訊號由三個不同的開關,就可以從2^3也就是8個位址中選乙個了,這就是3-8解碼器。64位cpu就意味著可以定址2^64空間。解碼器除了定址功能外,還可以使用更複雜的電路實現指令解碼操作,就是使用指令碼通過解碼器得到期望執行的指令。

八、資料通路建立:構造乙個cpu

由以上的過程,我們已經湊齊了組裝乙個cpu所需要的零件,現在看看怎麼樣將它們裝配起來:

首先,自動計數器隨著時鐘頻率不斷自增。作為pc暫存器;

自動計數器後面是連線著解碼器,解碼器連線著大量的d觸發器構成的記憶體;

自動計數器隨著時鐘頻率不斷自增,並從解碼器中找到對應記憶體位址,取出對應的cpu指令;

讀取出的指令會通過cpu時鐘控制寫入指令暫存器,它也由d觸發器組成;

指令暫存器後跟著另乙個解碼器,這個解碼器將指令轉換成opcode和運算元;

opcode和運算元對應輸出線路連線alu,進行何種算數和邏輯運算。並將結果寫回d觸發器構成的暫存器和記憶體中。

這樣就構成了乙個資料通路。

使用LocalConnection資料通訊

localconnection 可以在flash6 中使用,當安裝過flashcom之,localconnection 出現在動作面板的communication localconnection.localconnection的標識名稱是 lc如下圖所示 img files beyondpic 20...

使用dgram模組實現基於UDP的資料通訊

server.js檔案 var dgram require dgram createsocket引數用於指定進行udp通訊時使用的協議型別,可指定值為upd4或upd6 var server dgram.createsocket udp4 callback引數msg為乙個buffer物件,存放了接收...

Activity資料通訊

若要從子activity獲取返回資訊時,可呼叫以下activity方法 public void startactivityforresult intent intent,int requestcode 該方法的第乙個引數為intent,第二個引數是請求 請求碼是先傳送給子activity,然後再返回...