0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

計算機通電之后CPU都在干什么?

FPGA之家 ? 來源:編程技術(shù)宇宙 ? 作者:軒轅之風(fēng)O ? 2021-05-03 09:28 ? 次閱讀

來到我所在的工作車間,提取指令的小A、分析指令的小胖和負(fù)責(zé)結(jié)果回寫的老K都已經(jīng)到了,就差執(zhí)行指令的我了。

我們幾個各就各位,做起了準(zhǔn)備工作。

“小A,報告一下各個寄存器的值”,我囑咐小A,這是我們每天開始工作前必做的檢查項。

每次一通電,咱們的電路就會啟動自檢工作,把所有的寄存器全部重置,如果哪里有異常的話,就會把錯誤記錄到EAX寄存器中,如果發(fā)現(xiàn)EAX的值不是0,那可就大事不好了。

“報告,寄存器已確認(rèn):”

EAX,EBX, ECX, ESI, EDI, EBP, ESP: 0x00000000

EFLAGS: 0x00000002

CS: 0xF000

EIP: 0xFFF0

······

看起來沒什么問題,尤其是CS和IP這兩個寄存器,決定著一會兒該從哪里開始執(zhí)行代碼呢。

我們是一個64位的CPU,平時都是工作在保護(hù)模式下,使用虛擬地址來訪問內(nèi)存,由廠里的內(nèi)存管理單元MMU負(fù)責(zé)給轉(zhuǎn)換成真實的物理地址。

不過在剛剛開機的這會兒功夫,虛擬地址翻譯所需要的頁目錄、頁表這些信息都還沒準(zhǔn)備好,MMU還沒法工作,這時候我們只能使用16位的寄存器,工作在實地址模式下,使用段+基址的方式來跟內(nèi)存打交道,最多只能使用1MB的內(nèi)存空間,實在是有點局促。

開始執(zhí)行“大家都準(zhǔn)備好了嗎,打起精神來,要準(zhǔn)備開始今天的工作了哦!”

“Q哥,這剛剛通電,內(nèi)存條那家伙應(yīng)該還是一片空白吧,咱們要去執(zhí)行哪里的指令?。俊?,小A問到。

“這你不用擔(dān)心,在主板上,咱們CPU隔壁不遠(yuǎn)處有個叫BIOS的伙計,是一個ROM芯片,咱們已經(jīng)跟他約定好了,一通電他就映射到地址空間中,你盡管按照CS:IP(0xF000:0xFFF0)指向的地方開始取指令就對了,他會安排好的”

“原來是這樣”,小A點了點頭,似懂非懂的樣子。

正式開始干活了,小A熟練的從F000:FFF0處,也就是0xFFFF0處取到了第一條指令:jmp xxxx

好家伙,上來就是一個大跳轉(zhuǎn),我們一下來到了BIOS那家伙地盤的中央,開始執(zhí)行他準(zhǔn)備的程序了。

接下來執(zhí)行的這一堆指令我已經(jīng)做過無數(shù)次了,對主板上各單位進(jìn)行檢測,看看有沒有異常情況,還有初始化我們工作需要的中斷向量表等等,我早已經(jīng)輕車熟路了。

“哥幾個忙著吶”,我們正忙的熱火朝天,發(fā)現(xiàn)有人在門口圍觀,回頭看去,原來是隔壁二號車間、五號車間、八號車間的幾個家伙。

“你們幾個這么閑,要不來幫我們干會兒活?”

“哎,你想得美,你們一號核是引導(dǎo)處理器(BSP),待遇比我們好,這開機啟動的活兒我們怎么能搶呢?”,二號車間的虎子陰陽怪氣的說到。

真是羨慕他們,比我們1號車間上班時間晚,每次都可以多睡會兒。

MBR我繼續(xù)執(zhí)行BIOS中的代碼,一切檢查完畢,沒什么異常,要準(zhǔn)備啟動操作系統(tǒng)大佬了。

接下來,我檢查了BIOS中配置的啟動順序,排在第一位的是硬盤兄弟。

于是我把硬盤老哥第0盤第0道第1扇區(qū)的內(nèi)容讀取到了內(nèi)存中的0x7C00位置,他們把這玩意叫做主引導(dǎo)記錄MBR,一共512個字節(jié)。

聽硬盤那哥們說,這是操作系統(tǒng)老大在安裝的時候,寫到他那里的。

他還告訴我,這個位置很重要,曾經(jīng)就有病毒占據(jù)了這個位置,最后沒辦法只好重裝系統(tǒng)。

2ed64e1e-a2d1-11eb-aece-12bb97331649.png

MBR

讀取到了MBR后,還得檢查最后兩個字節(jié)必須是0x55和0xAA,看起來沒什么問題,是一個合法的MBR,我們又跳到了0x7C00的位置開始執(zhí)行。

操作系統(tǒng)終于來到操作系統(tǒng)的地盤兒了,在操作系統(tǒng)的指示下,我們切換了工作模式,開始在保護(hù)模式下工作了!

剛剛切換到保護(hù)模式下,MMU仍然沒法做地址翻譯工作,我們還是只有直接使用物理地址跟內(nèi)存聯(lián)系,所以得趕緊把頁目錄和頁表準(zhǔn)備妥當(dāng)才行。

忙活了一陣子之后,總算把需要的東西都弄好了,我激動的打開了內(nèi)存分頁的開關(guān),通知MMU部門開始工作,現(xiàn)在我們可以使用虛擬地址訪問內(nèi)存了,這感覺棒多了!

2ee10b6a-a2d1-11eb-aece-12bb97331649.png

這時,一旁圍觀的二號車間、五號車間、八號車間那幾個家伙見狀趕緊遛了回去,因為他們知道,馬上就該他們工作了。

我們繼續(xù)執(zhí)行操作系統(tǒng)的代碼,給咱們CPU其他所有核都準(zhǔn)備好了數(shù)據(jù)和指令,創(chuàng)建了多個線程出來,把他們也叫起來一起工作,咱們這個八核CPU終于全面開動起來,一下子熱鬧了不少。

再后來,不知執(zhí)行了多少指令,創(chuàng)建了多少線程,才把操作系統(tǒng)老大完整的運行了起來,成功完成了這一次的啟動。

這就是通電后,我們CPU開始工作的日常,我已經(jīng)記不清這是第多少次啟動了,也不知道,我們還能啟動多少次···

原文標(biāo)題:按下電源后的幾秒鐘,CPU在干嘛?

文章出處:【微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 電路
    +關(guān)注

    關(guān)注

    172

    文章

    5954

    瀏覽量

    172634
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10892

    瀏覽量

    212478

原文標(biāo)題:按下電源后的幾秒鐘,CPU在干嘛?

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    量子計算機與普通計算機工作原理的區(qū)別

    ? 本文介紹了量子計算機與普通計算機工作原理的區(qū)別。 量子計算是一個新興的研究領(lǐng)域,科學(xué)家們利用量子力學(xué),制造出具有革命性能力的計算機。雖然現(xiàn)在的量子
    的頭像 發(fā)表于 11-24 11:00 ?400次閱讀
    量子<b class='flag-5'>計算機</b>與普通<b class='flag-5'>計算機</b>工作原理的區(qū)別

    計算機接口位于什么之間

    地傳輸。計算機接口可以分為內(nèi)部接口和外部接口兩大類。 內(nèi)部接口位于計算機內(nèi)部各個部件之間,如CPU、內(nèi)存、主板、硬盤、顯卡等。外部接口則位于計算機與外部設(shè)備之間,如鍵盤、鼠標(biāo)、顯示器、
    的頭像 發(fā)表于 10-14 14:02 ?495次閱讀

    晶體管計算機和電子管計算機有什么區(qū)別

    晶體管計算機和電子管計算機作為計算機發(fā)展史上的兩個重要階段,它們在多個方面存在顯著的區(qū)別。以下是對這兩類計算機在硬件、性能、應(yīng)用以及技術(shù)發(fā)展等方面區(qū)別的詳細(xì)闡述。
    的頭像 發(fā)表于 08-23 15:28 ?2021次閱讀

    簡述計算機的I/O控制方式

    計算機的I/O(輸入/輸出)控制方式是計算機系統(tǒng)中至關(guān)重要的部分,它決定了CPU與外設(shè)之間數(shù)據(jù)交換的方式和效率。隨著計算機技術(shù)的不斷發(fā)展,I/O控制方式也經(jīng)歷了從簡單到復(fù)雜、從低效到高
    的頭像 發(fā)表于 08-20 10:55 ?1357次閱讀

    LM318 COMP管腳是什么引腳,干什么用的?

    LM318 COMP 管腳是什么引腳,干什么用的,PSPICEFORTI 里面沒有318的COMP管腳在怎么應(yīng)用
    發(fā)表于 07-31 07:45

    ESP32-C3的USB在計算機上識別的COM口能夠干什么用?

    VSCODE+PLATFORMIO或ECLIPCE的調(diào)試配置過程出一個教程(采用ESP32-C3 USBJTAG) 2:ESP32-C3的USB在計算機上識別的COM口能夠干什么用?資料上介紹可下
    發(fā)表于 06-21 06:41

    工業(yè)控制計算機的體系結(jié)構(gòu)是什么

    。 硬件結(jié)構(gòu) 工業(yè)控制計算機的硬件結(jié)構(gòu)主要包括以下幾個部分: 1.1 中央處理單元(CPUCPU是工業(yè)控制計算機的核心部件,負(fù)責(zé)執(zhí)行程序指令和處理數(shù)據(jù)。工業(yè)控制
    的頭像 發(fā)表于 06-16 11:38 ?1085次閱讀

    工業(yè)控制計算機的硬件組成有哪些

    控制計算機發(fā)揮著重要的作用。本文將詳細(xì)介紹工業(yè)控制計算機的硬件組成。 一、概述 工業(yè)控制計算機的硬件組成主要包括以下幾個部分:主板、CPU、內(nèi)存、硬盤、電源、輸入/輸出設(shè)備、擴展卡、機
    的頭像 發(fā)表于 06-16 11:33 ?1796次閱讀

    工業(yè)計算機與普通計算機的區(qū)別

    在信息化和自動化日益發(fā)展的今天,計算機已經(jīng)成為了我們?nèi)粘I詈凸ぷ髦胁豢苫蛉钡墓ぞ摺H欢?,?b class='flag-5'>計算機領(lǐng)域中,工業(yè)計算機和普通計算機雖然都具備基本的計算
    的頭像 發(fā)表于 06-06 16:45 ?1529次閱讀

    美國云服務(wù)器是干什么

    美國云服務(wù)器主要用于提供計算資源、托管網(wǎng)站、應(yīng)用程序以及存儲數(shù)據(jù)等。很多用戶想要了解美國云服務(wù)器具體是干什么的,rak部落小編為您整理發(fā)布美國云服務(wù)器是干什么的。 美國云服務(wù)器是一種**基于云
    的頭像 發(fā)表于 04-10 10:16 ?458次閱讀

    【量子計算機重構(gòu)未來 | 閱讀體驗】+量子計算機的原理究竟是什么以及有哪些應(yīng)用

    來的,看了本書第一部分內(nèi)容,有了點認(rèn)識,但是感覺還是迷糊,還是沒有弄清楚什么是量子計算機,尤其是其原理。以下是個人讀完之后的一些理解。 書中1.4章節(jié),以解決交通擁堵問題為例進(jìn)行了距離,對比了傳統(tǒng)方法和量子
    發(fā)表于 03-11 12:50

    【量子計算機重構(gòu)未來 | 閱讀體驗】+ 初識量子計算機

    欣喜收到《量子計算機——重構(gòu)未來》一書,感謝電子發(fā)燒友論壇提供了一個讓我了解量子計算機的機會! 自己對電子計算機有點了解,但對量子計算機真是一無所知,只是聽說過量子糾纏、超快的運算速
    發(fā)表于 03-05 17:37

    美國云服務(wù)器是干什么

    對于美國服務(wù)器是干什么的,相信很多小白用戶不是非常了解,接下來小編就為您整理發(fā)布美國云服務(wù)器是干什么的相關(guān)資訊,希望對您有幫助。
    的頭像 發(fā)表于 02-19 09:53 ?466次閱讀

    云服務(wù)器是干什么

     云服務(wù)器是干什么的?很多小白用戶會有疑惑,今天小編為您整理云服務(wù)器是干什么的相關(guān)資料,希望對您了解云服務(wù)器是干什么的有幫助。
    的頭像 發(fā)表于 02-18 09:58 ?1522次閱讀

    計算機系統(tǒng)由什么兩部分組成 計算機系統(tǒng)的層次結(jié)構(gòu)

    計算機系統(tǒng)是由硬件和軟件兩部分組成的。 硬件部分包括計算機的實體組件,如中央處理器(CPU)、內(nèi)存、存儲設(shè)備、輸入輸出設(shè)備、顯示器等。CPU計算機
    的頭像 發(fā)表于 02-01 14:13 ?3863次閱讀