TW366455B

Coordination and synchronization of an asymmetric single-chip, dual multiprocessor and method for operating a multiprocessor a multiprocessor for coordination or synchronization of individual program instructions

Abstract

An integrated multiprocessor architecture simplifies synchronization of multiple processing units. The multiple processing units constitute a general-purpose processor and a vector processor which has a single-instruction-multiple-data (SIMD) architecture so that multiple parallel processing units in the vector processor all complete an instruction simultaneously and do not require software synchronization. The general-purpose processor controls the vector processor and creates a fork in a program flow by starting the vector processor. The two processors then execute separate program threads in parallel until the control processor stops the vector processor, an exception is encountered, or the vector processor completes its program thread and enters an idle state. A register coupled to and accessible by both processors stores a state bit indicating whether the vector processor is running or idle. The general processor can synchronize the separate program threads by executing a loop which polls the state bit. When the state bit indicates the vector processor is idle, the general-purpose processor can process results from the vector processor and restart the vector processor.

TW366455B, drawing sheet 1
Sheet 1 of 14

Term

No projected expiry on record.

  1. Priority
  2. Filed
  3. Granted
  4. Today

14 claims: 8 independent, 6 dependent

  1. 1
    一種整合的多元處理器,其包括:一個第一處理器;一個第二處理器,可操作於第一狀態中以執行一序列的程式指令,並且可操作於當該第二處理器係閒置的第二狀態中;以及一個被連接來致能該第一處理器與該第二處理器以存取該暫存器的暫存器,該儲存一數值之暫存器控制是否該第二處理器係處於該第一或第二狀態中。
  2. 2
    如申請專利範圍第1項的多元處理器,其中:該第一處理器包括一條准許具有位元寬度達到但不超過第一最大寬度之運算元的操作之第一執行資料路徑;以及該第二處理器包括一條准許具有位元寬度到達但不超過大於該第一最大寬度之第二最大寬度的運算元之操作的第二執行資料路徑。
  3. 3
    如申請專利範圍第2項的多元處理器,其中該第二處理器包括複數個能夠平行操作的處理單元。
  4. 4
    如申請專利範圍第3項的多元處理器,其中該第二處理器具有一單指令多重資料的結構。
  5. 5
    一種用以操作多元處理器的方法,該方法包括:執行第一程式線索於第一處理器之上;起動第二程式線索於第二處理器之上以回應由該第一處理器所執行的指令;執行在該第一程式線索中的一個迴路,其中在該迴路中,該第一處理器讀取一可被該第一處理器與該第二處理器存取的暫存器;寫入一數值到該暫存器中以表示該第二處理器已經完成至少該第二程式線索的第一部分;以及離開該迴路以回應該第一處理器讀取該數值以表示該第二處理器已經完成第二程式線索的該第一部分。
  6. 6
    如申請專利範圍第5項的方法,其中在離開該迴路之後,該方法更包括執行需要該第二程式線索之該第一部分先被完成之該第一程式線索的一部分。
  7. 7
    如申請專利範圍第5項的方法,其中該暫存器儲存一個表示是否該第二處理器正在運行或者係閒置的數值。
  8. 8
    如申請專利範圍第7項的方法,其中該第二處理器寫入該數值到該暫存器中當作執行一中止該第二程式線索的執行並且閒置該第二處理器之指令的部分。
  9. 9
    如申請專利範圍第5項的方法,其中該第二處理器在寫入該數值到該暫存器中之後繼續該第二程式線索的執行。
  10. 10
    如申請專利範圍第5項的方法,其中該第一處理器具有一窄於該第二處理器之資料路徑的資料路徑。
  11. 11
    如申請專利範圍第10項的方法,其中該第二處理器具有一單指令多重資料的結構。
  12. 12
    如申請專利範圍第11項的方法,其中該第一處理器具有一通用結構。
  13. 13
    如申請專利範圍第5項的方法,其中寫入該數值在執行該迴路之前。
  14. 14
    如申請專利範圍第5項的方法,其中執行該迴路在寫入該數值之前首先被完成並且被重複直到寫入該數值之後。
Independent claims14