日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

講講線程、進(jìn)程和CPU中的超線程

冬至配餃子 ? 來(lái)源:天奇工作室 ? 作者:LRC ? 2022-08-05 16:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

我們先來(lái)回顧一下之前的內(nèi)容。CPU其實(shí)就是執(zhí)行指令的器件,指令從哪讀取要看PC寄存器,取得的指令需要翻譯成電路的控制信號(hào),最后輸出一條指令的結(jié)果,這個(gè)結(jié)果可能會(huì)對(duì)下一條指令產(chǎn)生影響,也可能會(huì)對(duì)內(nèi)存或地址空間中的某個(gè)值產(chǎn)生影響。

今天我們來(lái)講講線程、進(jìn)程和CPU中的超線程。

我們通過(guò)不計(jì)其數(shù)的指令的組合,可以形成一個(gè)完整的線程。線程之間通過(guò)少量的必要的溝通組合形成一個(gè)進(jìn)程,也就是我們通常意義上的應(yīng)用程序。比如說(shuō)音樂(lè)播放器中,音樂(lè)的播放是一個(gè)線程,用戶的操作界面是另外一個(gè)線程,兩個(gè)線程合起來(lái)構(gòu)成了音樂(lè)播放器。當(dāng)然,一個(gè)應(yīng)用程序(進(jìn)程)也可以只有一個(gè)線程。

早期的計(jì)算機(jī)不像現(xiàn)在如此發(fā)達(dá),一般一臺(tái)計(jì)算機(jī)一段時(shí)間內(nèi)只運(yùn)行一個(gè)線程,比如說(shuō)計(jì)算導(dǎo)彈軌跡什么的,在計(jì)算完成后輸出結(jié)果,線程結(jié)束。然而時(shí)代在改變,在寫這段文字的時(shí)候,我的平板一邊打開(kāi)著wps,一邊播放著音樂(lè)。這兩個(gè)進(jìn)程的運(yùn)行是連續(xù)的、同時(shí)的。

為什么會(huì)連續(xù)、同時(shí)呢?

首先,當(dāng)今的CPU的核心數(shù)早已不是單核心,一個(gè)非超線程(一會(huì)會(huì)講)的核心可以運(yùn)行一個(gè)線程,現(xiàn)在的八核CPU就可以同時(shí)運(yùn)行八個(gè)線程。但是這樣夠嗎?我們現(xiàn)在的電腦同一時(shí)刻需要運(yùn)行的線程可遠(yuǎn)不止八個(gè)。那看來(lái)光有核心數(shù)還不夠,我們還需要?jiǎng)e的辦法。

第二個(gè)辦法便是分時(shí)間片。CPU運(yùn)算速度極快,我們能不能讓CPU在這一些線程上反復(fù)橫跳,快速切換并輪流執(zhí)行這些個(gè)線程,營(yíng)造出一種這些線程是同時(shí)進(jìn)行的錯(cuò)覺(jué)。具體怎么操作呢?可以設(shè)置一個(gè)“鬧鐘”,當(dāng)?shù)褂?jì)時(shí)結(jié)束的時(shí)候強(qiáng)行停止CPU當(dāng)前的線程(中斷),PC寄存器跳轉(zhuǎn)到相應(yīng)的地址,將當(dāng)前未處理完的線程的PC值、寄存器組數(shù)據(jù)等信息用一種數(shù)據(jù)類型保存到內(nèi)存中,CPU將根據(jù)操作系統(tǒng)給出的決定切換到接下來(lái)要運(yùn)行的下一個(gè)線程。CPU此時(shí)要將接下來(lái)要運(yùn)行的線程從內(nèi)存中讀取,恢復(fù)該線程到CPU內(nèi)核心中,就像它之前被切換出去時(shí)的樣子,然后開(kāi)始執(zhí)行這個(gè)線程。(暫不細(xì)講)

第三個(gè)方法則是今天的主角--超線程技術(shù)。這個(gè)技術(shù)我沒(méi)記錯(cuò)的話是Intel率先提出來(lái)的,他們聲稱增加5%的晶體管數(shù)量可以提升20%的性能。

具體怎么操作呢?首先我們先要考慮一下為什么一個(gè)核心只能同時(shí)運(yùn)行一個(gè)線程。

1.只有一個(gè)PC寄存器,只能指示一個(gè)線程目前運(yùn)行到哪了。

2.無(wú)法區(qū)分對(duì)寄存器組的操作。比如線程A要把第一個(gè)寄存器的值寫成0,B要讀出第一個(gè)寄存器的值,現(xiàn)在也就是0。但這個(gè)0是B想要的嗎?肯定不是。

3.還有一些涉及到線程的棧指針和頁(yè)表基地址的寄存器,也只能支撐一個(gè)線程的運(yùn)行。

因此,超線程簡(jiǎn)單來(lái)講就是把這些不能公用的資源加倍。而那些流水線上的操作邏輯電路、ALU單元等則可以不用復(fù)制。以此實(shí)現(xiàn)多個(gè)線程同時(shí)在一個(gè)CPU的核心中進(jìn)行處理。注意,不一定一個(gè)核心只能虛擬出兩個(gè)線程,IBM的某款CPU甚至一個(gè)核心虛擬出了八個(gè)線程。

那為什么性能會(huì)提升呢?共用了這么多資源,性能應(yīng)該會(huì)有所下降才對(duì)。是的,有些時(shí)候性能確實(shí)會(huì)下滑,尤其是某個(gè)線程需要很大計(jì)算量的時(shí)候,因?yàn)楣灿?,可能?huì)導(dǎo)致該線程運(yùn)行速度減慢。那Intel是瞎吹他們的超線程技術(shù)嗎?并不是,往往CPU限制運(yùn)行速度的不是計(jì)算而是讀寫。讀寫要做的就是等待數(shù)據(jù)的傳輸,這個(gè)過(guò)程CPU沒(méi)事可做,只能空等。但有了超線程就不一樣了,CPU可以在本該空等的地方擇機(jī)執(zhí)行另外一個(gè)線程的指令,實(shí)現(xiàn)了時(shí)間管理,縮短了兩個(gè)程序執(zhí)行的總體時(shí)間。


審核編輯:劉清

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

    關(guān)注

    31

    文章

    5620

    瀏覽量

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

    關(guān)注

    68

    文章

    11332

    瀏覽量

    225994
  • ALU
    ALU
    +關(guān)注

    關(guān)注

    0

    文章

    34

    瀏覽量

    13559
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    摩爾線程斬獲6.6億元合同訂單

    3月30日晚間,摩爾線程(688795)智能科技(北京)股份有限公司(簡(jiǎn)稱“摩爾線程”)披露重大合同公告,公司于近日與某客戶簽訂了產(chǎn)品銷售協(xié)議(以下簡(jiǎn)稱“合同”),合同標(biāo)的為摩爾線程夸娥(KUAE
    發(fā)表于 03-31 07:42 ?1073次閱讀

    摩爾線程正式開(kāi)源TileLang-MUSA項(xiàng)目

    近日,摩爾線程正式開(kāi)源TileLang-MUSA項(xiàng)目,實(shí)現(xiàn)對(duì)TileLang編程語(yǔ)言的完整支持。該項(xiàng)目已成功在摩爾線程多代全功能GPU上完成功能驗(yàn)證與特性開(kāi)發(fā),旨在通過(guò)高層抽象與編譯器優(yōu)化,大幅降低開(kāi)發(fā)門檻,為國(guó)產(chǎn)算力平臺(tái)提供更高效的AI與高性能計(jì)算開(kāi)發(fā)體驗(yàn)。
    的頭像 發(fā)表于 02-11 16:57 ?1735次閱讀

    解析Linux的進(jìn)程線程和協(xié)程

    進(jìn)程間通信(IPC):Linux提供了多種IPC機(jī)制,如管道、信號(hào)、共享內(nèi)存和消息隊(duì)列,用于進(jìn)程之間的通信。 線程管理 在Linux,線程
    發(fā)表于 12-22 11:00

    線程的系統(tǒng)

    線程系統(tǒng)的事件響應(yīng)也是在中斷完成的,但事件的處理是在線程完成的。在多線程系統(tǒng),
    發(fā)表于 12-08 07:55

    Linux多線程對(duì)比單線程的優(yōu)勢(shì)

    在Linux系統(tǒng),線程是操作系統(tǒng)能夠進(jìn)行運(yùn)算調(diào)度的最小單位。線程被包含在進(jìn)程之中,是進(jìn)程的實(shí)
    發(fā)表于 12-01 06:11

    rt-thread studio 如何進(jìn)行多線程編譯?

    ,使用的是5800h+32g內(nèi)存+sn550 ssd,開(kāi)啟16線程編譯時(shí)cpu的占用率也只能到30%,編譯完整個(gè)工程需要3分鐘 感覺(jué)多線程編譯設(shè)置沒(méi)有生效,有辦法提高編譯速度嗎 rtthread studio版本是 2.2.9
    發(fā)表于 10-11 09:16

    rtt建兩個(gè)線程a和b,怎么確保線程a執(zhí)行完立刻切到線程b?

    怎么獲取從線程開(kāi)始切換到切換完成用的總的CPU時(shí)鐘節(jié)拍數(shù)量?
    發(fā)表于 10-10 06:37

    tcpip線程被mu0鎖住導(dǎo)致網(wǎng)絡(luò)線程無(wú)法使用怎么解決?

    各位好,我使用rtthread開(kāi)發(fā)STM32F407VGT6芯片,程序有多個(gè)線程,每個(gè)線程都會(huì)創(chuàng)建一個(gè)socket,建立tcp連接或者udp連接,現(xiàn)在出現(xiàn)一個(gè)問(wèn)題,程序長(zhǎng)時(shí)間運(yùn)行有概率死機(jī),但是沒(méi)有
    發(fā)表于 09-29 06:41

    線程刪除時(shí)遇到斷言,是什么原因?qū)е碌模?/a>

    在一個(gè)線程調(diào)用線程刪除函數(shù)刪除另外一個(gè)線程,這2個(gè)線程的優(yōu)先級(jí)是相等的,被刪除的線程也是動(dòng)態(tài)創(chuàng)
    發(fā)表于 09-12 06:08

    rtth studionano 如何創(chuàng)建動(dòng)態(tài)線程

    有沒(méi)有大佬,可以說(shuō)一下為什么靜態(tài)線程可以正常使用,動(dòng)態(tài)線程怎么也使用不了。 具體需要什么配置才能使用動(dòng)態(tài)線程創(chuàng)建。謝謝!
    發(fā)表于 09-11 06:01

    【HZ-T536開(kāi)發(fā)板免費(fèi)體驗(yàn)】—— linux創(chuàng)建線程

    線程進(jìn)程 一個(gè)進(jìn)程指的是一個(gè)正在執(zhí)行的應(yīng)用程序,而線程的功能是執(zhí)行應(yīng)用程序的某個(gè)具體任務(wù)。線程
    發(fā)表于 09-01 21:31

    rtt studionano 如何創(chuàng)建動(dòng)態(tài)線程?

    有沒(méi)有大佬,可以說(shuō)一下為什么靜態(tài)線程可以正常使用,動(dòng)態(tài)線程怎么也使用不了。 具體需要什么配置才能使用動(dòng)態(tài)線程創(chuàng)建。謝謝!
    發(fā)表于 08-22 06:19

    UVC+MSC實(shí)現(xiàn)MSC線程未運(yùn)行的原因?

    我正在嘗試使用 EZUSB 運(yùn)行 UVC + MSC。我有以下內(nèi)容。但看起來(lái)只有 UVC 線程在運(yùn)行,而 MSC 沒(méi)有運(yùn)行。fw 不響應(yīng) MSC 命令。我確保 LPM 已被禁用,只是為了檢查傳感器
    發(fā)表于 07-16 07:08

    深度剖析 RT-Thread 線程調(diào)度流程

    rt_system_scheduler_start:調(diào)度系統(tǒng)第一個(gè)線程rt_hw_context_switch_to:初始化上下文切換環(huán)境,觸發(fā)PendSV異常first_thread:系統(tǒng)優(yōu)先級(jí)最高
    的頭像 發(fā)表于 06-25 18:24 ?1976次閱讀
    深度剖析 RT-Thread <b class='flag-5'>線程</b>調(diào)度流程

    線程的安全注意事項(xiàng)

    線程安全是指多個(gè)線程同時(shí)訪問(wèn)或修改共享資源時(shí),能夠保證程序的正確性和可靠性。 開(kāi)發(fā)者選擇TaskPool或Worker進(jìn)行多線程開(kāi)發(fā)時(shí),在TaskPool和Worker的工作線程中導(dǎo)
    發(fā)表于 06-20 07:49
    珲春市| 澳门| 临洮县| 梅河口市| 平远县| 岑溪市| 广东省| 大冶市| 徐汇区| 山丹县| 沭阳县| 沛县| 彩票| 即墨市| 旌德县| 木兰县| 秭归县| 织金县| 昌邑市| 桐梓县| 定日县| 东明县| 赣州市| 宜君县| 专栏| 玛纳斯县| 兴和县| 井陉县| 鄯善县| 临夏市| 镇原县| 汉寿县| 古蔺县| 博客| 丹棱县| 北安市| 化德县| 柘城县| 和静县| 迁安市| 东宁县|