2016-09-16 37 views
0

因此,處理器有一個開啓和關閉的時鐘,這是一個預定的指令。這些指令如何作爲指令加載到處理器中?我只是用CPU想象一塊乾淨的板岩,我們如何教導或告訴CPU如何做?指令是如何嵌入到處理器和計算機主板中的

此外,如果我們處於乾淨的狀態,我們如何將數據加載到計算機中以識別二進制文件?

對不起,如果這是問題的過載,我只是好奇超..

+0

你的問題太寬泛了。並且:您可以輕鬆地對此進行一些研究。並且提示:可以在硬件中執行**指令。當它們硬連線到CPU時,不需要**加載**指令。首先是許多鏈接之一:https://en.wikipedia.org/wiki/Booting – GhostCat

+0

我將檢查出來! – mrprogrammer231

回答

0

指令執行從稱爲復位向量的硬連線地址開始。指令在內存中編程;所採取的手段取決於所使用的存儲器技術和處理器的類型。

對於沒有片上存儲器的獨立的CPU,的初始代碼通常是在某種形式的外部只讀隨機存取存儲器(ROM)通常稱爲BOOTROM - 這例如是BIOS在PC主板上。在現代平臺上,這些ROM通常使用被稱爲NOR閃存的技術,通過將其加載到專用編程器或電路中(例如,PC可以重寫其自己的BIOS閃存),可以將其電擦除和重新編程。

對於微控制器(MCU)與片上存儲器,這些通常具有片上閃存ROM,也使用被稱爲JTAG接口片上的編程和調試接口(專有進行電編程通常接口也存在於某些設備上)。一些MCU包含掩碼ROM,這是不可擦寫的,其中包含一個簡單的(或主要的)引導加載程序。通常你可以選擇MCU的啓動方式。

引導加載程序的工作是將更復雜的代碼加載到內存(電可編程ROM或RAM)中並執行它。通常,掩模ROM中的主引導程序太簡單並且限制太多,並且會加載更完整的引導加載程序,然後加載操作系統。例如,一個常見的情況是處理器有一個主引導加載程序,用於從簡單的非隨機存取存儲器(如NAND閃存或SD卡)加載代碼;這可能會加載一個功能更強大的引導加載程序,例如通常用於加載Linux的UBOOT。這中學引導加載程序可以支持更復雜的設備啓動源,如硬盤,網絡,CD,USB。

0

通常CPU的使用可以讀取這兩種解決零或0xFFFF-(地址長度-1)(如果加上F公司的地址空間較大),並將其作爲引導加載程序的起始地址。

也有可能是CPU啓動時將一個微碼加載到CPU中,然後從預定地址啓動實際的彙編代碼。