计算机是如何按照时钟来顺序工作的
之前一直有個疑問,cpu按照取指周期和執行周期來循環工作,而取指周期和執行周期是根據脈沖信號來判斷的,那么它是如何判斷一個脈沖過來后是它是取指周期還是執行周期呢?
實際上很簡單:
如上圖所示:啟停控制邏輯實際上有六條引腳,而脈沖不止根據一條線來發出,第一次它從T1發出,然后T1上的電路接收到脈沖信號后就進行相應操作(取指),下一次的脈沖將會從T2發出,然后T2上的電路收到脈沖信號后也進行相應操作。以此類推,就可以做到時序控制了。
我一開始就以為脈沖只沿著一條線發出,然后百思不得其解它是如何做到順序控制的。
這是一個很sb的問題,虧我還查了好久。以下是我之前的sb推理過程。。。
注:只考慮有取指和執行兩個操作
假設計算機一啟動,第一個脈沖過來,就開始進入取指周期,那么下一個脈沖過來就是執行周期,然后下一個脈沖就又是取指周期,以此繼續。
這樣想好像沒什么問題,但是cpu又不是智能的,它怎么知道發過來的脈沖是不是開機后的第一個脈沖,它怎么知道前一個脈沖是取指周期還是執行周期,取指完畢后,下一個脈沖就是執行,所以取指不能有動作,于是就得忽略這個脈沖等下一個脈沖,問題是他要等多久才,如何判斷是下下個脈沖而不是下下下個脈沖。一種辦法是通過對脈沖進行計數,奇數個就是取指,偶數個就是執行。但是這樣顯然太麻煩,還得進行計數和判斷奇偶。
我想過的一個可能的方案是有一個開關,開機前它是開的,它開著就是取指,當第一個脈沖過來后,它就關了,于是是執行,再來一個脈沖后,它又開了,就這樣一直運行便不會錯了。
總結
以上是生活随笔為你收集整理的计算机是如何按照时钟来顺序工作的的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于linux驱动程序的学习
- 下一篇: 计算机与USB沟通方式