一種芯片啟動方法及多核處理器芯片的制作方法
【技術領域】
[0001]本發明涉及集成電路芯片設計技術,尤其涉及一種芯片啟動方法及多核處理器芯片。
【背景技術】
[0002]芯片的啟動設計一直是芯片設計的關鍵點之一。很多設備報廢失效,很大一部分原因是由于芯片無法啟動而導致芯片失效,最終致使整臺設備報廢。芯片啟動時,需要在芯片內部執行一些初始化操作和配置管理。當芯片規模比較小時,芯片的初始化和配置直接包括在芯片的時鐘復位設計中。芯片在上電時即完成時鐘復位操作的過程,也就完成芯片的啟動過程;時鐘復位完成后,芯片就可以正常工作。
[0003]后來,芯片的規模開始擴展如增加處理器等,芯片啟動的配置信息一般是存儲在片內的只讀存儲單元(ROM,Read Only Memory),啟動時調用ROM上的配置信息對芯片進行初始化配置。
[0004]隨著芯片規模的繼續擴大,芯片應用場景的不斷多元化,芯片需要初始化的內容也不斷增多,并且初始化內容也有更新升級的需求;因此后來很多芯片采用ROM+flash方式或直接flash方式存儲啟動程序。在這兩種方式中,flash內部存放可以升級的大容量初始化程序。
[0005]再后來,flash在升級時碰到一些困難,因此現有技術中提出一系列方案來增加初始化程序升級的健壯性及其便利性。當前芯片啟動的優化方案,主要還是集中在軟件的優化如跳轉、數據備份等;而對硬件的結構涉及不多,對于當前的多核多通道的芯片涉及的更少。針對目前廣泛應用的多核多通道的芯片,在啟動的過程中對通道質量要求非常嚴格,如果flash通道有問題,那么芯片的啟動就必將失敗,從而導致整個芯片失效。
【發明內容】
[0006]有鑒于此,本發明實施例為解決現有技術中存在的問題而提供一種芯片啟動方法及多核處理器芯片,能夠針對多核多通道芯片進行結構性優化,從而提高芯片的健壯性和性能。
[0007]本發明實施例的技術方案是這樣實現的:
[0008]一種芯片啟動方法,適用于多核處理器芯片,所述多核處理器芯片至少包括兩個以上的處理器和兩個以上的存儲單元,為所述兩個以上的處理器設置啟動的第一優先級,以及為各所述處理器分別設置啟用所述兩個以上的存儲單元中各存儲單元的第二優先級;所述方法還包括:
[0009]根據所述第一優先級確定待啟動的優先級最高的第一處理器;
[0010]所述第一處理器根據所述第一處理器對應的第二優先級依次從各所述存儲單元加載啟動程序,并執行啟動程序而進行初始化操作;
[0011]當從所述兩個以上的存儲單元中任意一個存儲單元加載啟動程序成功、或者從所述兩個以上的存儲單元的所有存儲單元程序加載啟動程序均失敗時,結束所述第一處理器的程序加載;
[0012]啟動第二處理器的程序加載,依次類推,直至完成所述兩個以上的處理器的程序加載。
[0013]優選地,所述多核處理器芯片還包括啟動監控器;所述方法還包括:
[0014]從所述兩個以上的存儲單元中任意一個存儲單元加載啟動程序成功時,所述第一處理器向所述啟動監控器上報啟動成功消息;
[0015]對應地,所述啟動第二處理器的程序加載,包括:
[0016]在接收到所述第一處理器上報的啟動成功消息或確定所述第一處理器從所述第一處理器對應的第二優先級中最后級別的存儲單元加載啟動程序失敗時,所述啟動監控器根據所述第一優先級確定待啟動的優先級次高的第二處理器。
[0017]優選地,所述多核處理器芯片還包括啟動監控器;
[0018]對應地,所述根據所述第一優先級確定待啟動的優先級最高的第一處理器,包括:
[0019]所述啟動監控器根據所述第一優先級確定第一處理器,并根據所述第一處理器對應的第二優先級為所述第一處理器確定啟動程序待加載的當前存儲單元;
[0020]對應地,所述第一處理器根據所述第一處理器對應的第二優先級依次從各所述存儲單元加載啟動程序,并執行啟動程序進行初始化操作,包括:
[0021]所述第一處理器從所述當前存儲單元加載啟動程序;
[0022]加載成功時,所述第一處理器執行所述啟動程序進行初始化操作;
[0023]加載失敗時,所述啟動監控器根據所述第一處理器對應的第二優先級為所述第一處理器確定下一存儲單元作為啟動程序待加載的當前存儲單元;
[0024]依次類推,直至所述第一處理器從所述第一處理器對應的第二優先級中最后級別的存儲單元加載啟動程序。
[0025]優選地,所述加載失敗,包括:
[0026]在從所述當前存儲單元加載啟動程序時,所述第一處理器向所述啟動監控器上報啟動開始消息;
[0027]所述啟動監控器在接收到所述啟動開始消息時開始計時,在超過計時閾值時還未接收到所述第一處理器發送的啟動成功消息時,確定所述第一處理器從當前存儲單元加載啟動程序失敗。
[0028]優選地,所述方法還包括:
[0029]將調整系統時鐘頻率的速度最快的處理器確定為優先級最高的第一處理器。
[0030]優選地,所述多核處理器芯片還包括直接內存存取器和片內存儲單元;所述方法還包括:
[0031]在所述第一處理器加載啟動程序成功,并執行啟動程序而進行初始化操作時,直接內存存取器根據所述第一優先級將優先級級別低于第一處理器的其他處理器的啟動程序搬移到片內存儲單元。
[0032]優選地,所述多核處理器芯片采用ROM的存儲單元和flash通道的存儲單元時,所述第一處理器的第一儲存單元包括ROM的存儲單元和flash通道的存儲單元;
[0033]所述執行啟動程序而進行初始化操作,包括:
[0034]所述第一處理器從所述ROM的存儲單元讀取并執行第一部分啟動程序,根據所述第一部分啟動程序末尾的跳轉指令從flash通道的存儲單元讀取并執行第二部分啟動程序。
[0035]優選地,所述多核處理器芯片包括微處理器MCU、通用處理器CPU和數據處理器DSP時,所述第一優先級的優先級順序為MCU、CPU和DSP。
[0036]一種多核處理器芯片,所述多核處理器芯片至少包括啟動監控器、兩個以上的處理器和兩個以上的存儲單元;其中:所述啟動監控器均與各處理器通訊連接;所述兩個以上的處理器按照設置的第一優先級的優先級順序依次連接;
[0037]所述啟動監控器,根據對所述兩個以上的處理器設置啟動的第一優先級確定當前處理器,并根據所述當前處理器對應的第二優先級為所述當前處理器確定待加載的當前存儲單元;
[0038]所述當前處理器,用于根據所述當前處理器對應的第二優先級從各所述當前存儲單元加載啟動程序,并執行啟動程序而進行初始化操作;當從所述兩個以上的存儲單元中任意一個存儲單元加載啟動程序成功、或者從所述兩個以上的存儲單元的所有存儲單元程序加載啟動程序均失敗時,退出啟動程序的加載。
[0039]優選地,所述多核處理器芯片還包括直接內存存取器;
[0040]所述直接內存存取器,用于在所述當前處理器加載啟動程序成功,并執行啟動程序進行初始化操作時,根據所述第一優先級將優先級處于當前處理器之后的其他處理器的啟動程序搬移到片內存儲單元。
[0041]在本發明實施例中,為所述兩個以上的處理器設置啟動的第一優先級,以及為各所述處理器分別設置啟用所述兩個以上的存儲單元中各存儲單元的第二優先級;根據所述第一優先級確定待啟動的優先級最高的第一處理器;所述第一處理器根據所述第一處理器對應的第二優先級依次從各所述存儲單元加載啟動程序,并執行啟動程序而進行初始化操作;當從所述兩個以上的存儲單元中任意一個存儲單元加載啟動程序成功、或者從所述兩個以上的存儲單元的所有存儲單元程序加載啟動程序均失敗時,結束所述第一處理器的程序加載;啟動第二處理器的程序加載,依次類推,直至完成所述兩個以上的處理器的程序加載;如此,能夠針對多核多通道芯片進行結構性優化,從而提高芯片的健壯性和性能。
【附圖說明】
[0042]圖1為本發明實施例芯片啟動方法的實現流程示意圖;
[0043]圖2為本發明實施例一中步驟101的實現流程示意圖;
[0044]圖3為本發明實施例四多核處理器芯片的組成結構示意圖;
[0045]圖4為本發明實施例多核處理器芯片的啟動流程示意圖;
[0046]圖5為本發明實施例同一通道中不同處理器的地址映射過程的示意圖。
【具體實施方式】
[0047]下面結合附圖