色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          "); //-->

          博客專欄

          EEPW首頁 > 博客 > X86,你了解多少?

          X86,你了解多少?

          發(fā)布人:電巢 時間:2022-12-05 來源:工程師 發(fā)布文章
          image.png


          8008功能列表中最突出的新增功能之一是提供了具有直接尋址存儲器位置的間接尋址,到一條指令,然后在該指令中獲取該地址的數據內容間接尋址該引用存儲器的內容的位置,location實際上是指向數據實際所在的另一個位置的指針。

          在直接尋址中允許使用一些強大的軟件技術說我們在內存中存儲了五個句子,代表該句子中的每個字符一個字節(jié)并以句點終止,我們的程序會將句點視為句子的結尾,這就是我們的程序工作要到的數據字符串。隨機選擇五個句子中的一個,并傳遞第一個的地址所選句子在程序另一部分的特征,我們知道有五個句子,所以我們的程序首先選擇一個隨機一到五之間的數字,但是我們如何轉換之間的這個隨機數。如果我們創(chuàng)建一個列表,則為列表中句子的地址的一到五包含五行的表格,并在每一行中填入每個句子的地址,我們分別創(chuàng)建了一個所謂的向量表,該向量表現在可以通過指向句子地址來映射一到五之間的數字如果我們的程序隨機選擇了三個,則存儲在表格規(guī)則中存儲在表中第三行的地址,該地址指向我們的程序現在將在向量表上傳遞的第三句話很常見,但在8008軟件中強大地使用間接尋址還實現了一種稱為中斷的機制,允許硬件中斷信號和內部CPU事件以暫停程序執(zhí)行并跳到很小的位置。

          中斷事件的代碼示例的高優(yōu)先級區(qū)域可能是實時時鐘信號觸發(fā)外部硬件,例如鍵盤或CPU內部狀態(tài)的更改,甚至程序代碼也可以。在執(zhí)行中斷服務代碼后觸發(fā)一個中斷,原始程序將恢復中斷以允許快速響應并降低開銷。例如在鼠標移動時要在主程序之外執(zhí)行的代碼,硬件發(fā)出信號通知CPU暫停其當前代碼執(zhí)行并跳轉至專門用于處理鼠標事件的代碼,此代碼的位置是通常由中斷向量表指向,該代碼可能會執(zhí)行一些數學運算以更新當前的鼠標光標位置并單擊狀態(tài),然后觸發(fā)對光標位置的更新屏幕最終將CPU傳回觸發(fā)中斷之前運行的代碼。


          機制是將外部硬件連接到CPU的關鍵部分,并且在我們今天所謂的設備驅動程序中大量使用的另一個副作用是能夠暫停程序并控制CPU的能力是中斷代碼可以將對CPU的控制權返回到完全不同的狀態(tài)。

          8008為現代臺式機奠定了基礎在當今的處理器中可以找到其DNA的CPU,這是CPU的快速步伐。1974年,隨著第一個真人版的推出,進化達到了另一個里程碑現代臺式機CPU的前身Intel 8080。8080以n大規(guī)模半導體技術為基礎而制造最高可達三分之一兆赫茲,比硅片有顯著改善以前的CPU的門技術可以處理16位內存,允許使用多達64 KB。盡管它是8位處理器,但它也可以執(zhí)行有限的16位。8080的運作是英特爾產品線中第一個利用外部總線控制器,該支持芯片負責接口通過RAM和其他系統(tǒng)硬件組件,這些通信是通常稱為輸入/輸出或IO,它允許CPU進行接口具有較慢的內存和IO,且它們以較慢的系統(tǒng)時鐘速度運行

          比CPU的時鐘速度還增強了整體電氣噪聲抗干擾8080被許多人認為是第一個真正可用的微處理器。然而,競爭的處理器架構在此期間不斷涌現。


          未來幾年,桌面計算的興起將由具有競爭性的zilog z80 CPU,具有諷刺意味的是,它是Intel自己增強的擴展,8080是由前英特爾工程師federico fuji intel設計的。這是一個非常先進的32位CPU,稱為8800,該項目被證明是雄心勃勃,最終在商業(yè)上失敗了在ia px 432于80年代初發(fā)布時,需要對z80威脅日益嚴重,這導致了始于1976年的更現實的項目。三個月之內,只剩下四名工程師,并且沒有CAD工具,他們的回應的第一次修訂是在兩年之內創(chuàng)建的,將設計精煉成最終產品,以保持與以下代碼的代碼兼容性:流行的基于8080的產品線是CPU演進的下一個重要里程碑。

          1978年6月8日,著名的英特爾8086的發(fā)布確保了其在x86即時可識別的綽號,計算歷史。8086架構造就了Intel最成功的產品線,處理器采用ae86提供的更多以軟件為中心的方法,旗艦處理器系列中前所未有的功能設計為全16位CPU,它提供了8個通用16位具有四個流寄存器的寄存器,能夠用作雙精度寄存器,在n Mo技術中實現的8位寄存器通過冒險遷移實現到英特爾的H mas工藝,它的時鐘頻率最高可達到10兆赫茲與這項新性能相結合,可以更好地管理內存,添加了8086托管內存也是其最著名的方式之一,具有20位地址容量的特性利用完整的兆字節(jié)內存來利用更大的地址空間,在16位系統(tǒng)中使用,直到在將哪些存儲位置分配給了一個存儲段地址,以及相對于網段本身的地址,可以認為是為系統(tǒng)內存的一部分分配一個16位查看窗口。

          8086的管理機制允許四個同時段專門為可執(zhí)行代碼1分配的定義1為數據1的定義一個額外的多用途段中的堆棧被認為是麻煩的。一些程序員編寫的系統(tǒng),但對于當時的普通用戶來說也是一種方便較小的程序,因為它提供了一個16位內存片的偽沙箱,如果您曾經在80年代或90年代末運行過dos comp程序文件,其中的該文件是設計使然的內存段的實際二進制轉儲,由處理器執(zhí)行,并與以軟件為中心的精神保持一致,通過增加對高級編程語言的支持,軟件設計中常用的更強大的堆棧指令集,代碼被組織成稱為子例程的塊,有時也可以稱為功能過程或子程序。

          image.png


          為了說明這一點,假設我們制作了一個程序,該程序可以找到成千上萬的數字對有效執(zhí)行此操作,我們編寫了一段代碼取兩個數字即可計算出它們的平均值,然后將其返回給我們的程序現在遍歷調用子例程以執(zhí)行的數字對列表計算并在以下情況下將結果返回到主程序序列,程序跳轉到需要存儲其當前內存的子例程位置,以便它可以在子例程后返回到主程序完成它還需要一個地方來存儲要發(fā)送到子例程的數據,這可以通過一種稱為堆棧的內存機制來解決,該機制用于存儲內存臨時信息,內存堆棧直接從自助餐廳取名彈簧式托盤分配器,當您將新托盤推入堆棧時當下一個人從堆疊頂部彈出托盤時,他們得到了頂部最后一個被推入的正是存儲器堆棧操作數據的方式被推入,然后彈出處理堆棧的CPU指令操作實際上稱為push和pop數據的某些變體,可以是反復推送,但是當彈出時,您總是會獲得最新的數據將這種行為推入堆棧時,這種行為稱為“先進先出”程序調用子程序的數據并將返回地址壓入堆棧,子例程然后將數據從堆棧中復制出來而不彈出它,這是稱為堆棧偷看,然后執(zhí)行其工作,結果通常是完成后寫入寄存器,然后彈出并返回地址,將發(fā)送的數據從堆棧中移出并返回到主程序,當調用子例程時,必須明確定義其數據要求,以便如果存在錯誤,則可以將正確數量的數據推入堆棧,該代碼可以將不正確的數據量壓入堆棧將在子例程調用中彈出,這可能導致堆棧改變,大小意外地轉移到其分配的內存之外或循環(huán)本身就稱為堆棧溢出,可能會導致程序,崩潰基于堆棧的崩潰的其他來源正在彈出錯誤的數據作為,返回地址并使子例程返回到內存中的隨機位置。


          CPU跳到意外地址并開始執(zhí)行時發(fā)生崩潰,不是程序代碼的數據,因為它可以有效地以編程方式執(zhí)行機器變得毫無用處,使機器變得毫無反應。8086及其成功鞏固了英特爾對密鑰的承諾,結構體系或復雜指令集計算機的特征,盡管8080使用了輔助架構,并且其模型得到了增強。

          80-85的繼任者8086標志著英特爾向全面發(fā)展的過渡,采用Sisk體系結構,其健壯的指令集僅包含一個少數使用sisk架構的cpus是一個相對罕見的設計與主要風險或減少指令集的計算機相比時的選擇。即使在今天,x86 cpus體系結構仍然是唯一的主線處理器。使用輔助指令設置RISC CPU和Sisk之間的差異,CPU位于各自的指令集中以及它們的執(zhí)行方式,在RISC CPU中,指令盡可能保持簡單和原始。

          整個指令集通常很小,結構緊湊解碼非常簡單,執(zhí)行迅速,一般來說,指令每個時鐘周期處理一次。但是,在RISC中,復雜性的負擔由軟件承擔必須以編程方式綜合復雜的操作,這是一個很好的例子。實際上,許多早期的RISC處理器缺乏以下能力:將數字相乘就需要幾條指令來執(zhí)行簡單的操作軟件中的乘法運算,因為RISC使用密集的程序代碼執(zhí)行復雜的操作基于風險的程序需要更多的內存,早期的計算內存非常昂貴,價格超過50,000美元每兆字節(jié)此外,每次獲取新內存時訪問內存的速度都很慢,指令附帶了內存訪問瓶頸的性能損失

          。Sisk體系結構是Sisk設計中針對這些問題的解決方案,指令集功能強大,并支持以下硬件的許多復雜功能:使用更少的指令和更少的操作,可以使cpu復雜程序更容易,使用內存我們的風險乘法代碼需要幾條指令,現在可以用一條乘法指令代替執(zhí)行,因為軟件需要較少的指令來執(zhí)行任務,因此減少了訪問內存減輕了一些內存裝瓶壓力。Sisk設計的優(yōu)勢在于它使用了正交指令集,當指令集可以在所有指令中運行時,該指令集被認為是正交的。

          CPU支持的尋址形式,例如指令是否可以在內存中的任何寄存器以及任何直接或間接地址正交,它的操作數沒有限制。通過消除執(zhí)行改組數據的需求來降低代碼復雜度在程序中權衡Sisk體系結構是因為指令的復雜性使得指令執(zhí)行的整體性能較低,它們需要幾個時鐘周期才能解碼和執(zhí)行。娘娘腔的P中的指令您設計起來非常復雜且棘手進一步優(yōu)化RISC吞吐量的技術處理器很難轉換為Sisk處理器,因為我們將隨著時間的推移探索該系列的后續(xù)部分,內存成本最終下降和Sisk提供的優(yōu)勢在今天迅速減少,并且Sisk設計唯一真正支持的是當代,8086的后繼產品主要是因為它需要向后兼容過去這種痕跡的支持僅是外觀深厚的現代CPU的模糊界限通過在其核心處使用RISC設計并包裝,在風險和風險之間進行區(qū)分使用兩種體系結構中的技術將它們放在Sisk外層中,除了采用Sisk架構之外,它的性能也會降低自從執(zhí)行以來,在8086中還以新的方式對訪問內存進行了打擊。一條指令,通常很慢,需要更多的時鐘周期才能達到完成空閑時間的時間是在CPU的提取區(qū)域(稱為pre)中進行的。提取下一條指令,內存將被加載到CPU中,而最后一條指令仍在執(zhí)行此改進的處理吞吐量特別是對于不需要記憶的指令訪問,因為它減少了CPU處理預取的瓶頸稱為流水線技術的簡單形式流水線是安排處理周期中的哪些步驟以減少處理。


          隨著進一步發(fā)展,瓶頸和增加吞吐量將探索流水線,8086的性能得到了進一步的提高,使用8087的專用協(xié)處理器的能力,浮點運算傳統(tǒng)的沃德二進制數據表示整數值。CPU輕松處理它們并通過其算術邏輯執(zhí)行算術單位,但是它的局限性在于執(zhí)行包含小數點浮點數的更高級的數學通過在單詞的位之間編碼十進制數來解決此問題,因為浮點數從根本上與CPU算法不兼容在它們上執(zhí)行數學運算的硬件必須在軟件中以低效率完成專為浮點數設計的代碼,突破了技術的局限性。創(chuàng)建8087浮點協(xié)處理器之前的時間,浮點處理進入硬件室,8087設計用于與8086直接截取指令,從總線上為其本身進行處理并對其進行處理獨立于cpu在需要時自行獲取內存執(zhí)行基于浮點的加法減法的能力,乘法除法和平方根也可以計算出先驗指數對數或觸發(fā)指標等功能,計算8087可以執(zhí)行50,000個浮點運算,其次,由于它獨立于CPU運行,因此可以進行設置,在CPU執(zhí)行時同時執(zhí)行數學運算,其他程序指令可協(xié)同使用8086處理器的成功

          與1970年代后期在計算歷史上的另一次大獲成功有關新的個人計算機行業(yè)被Commodore之類的公司所主導Atari Apple和Tandy公司的年度預計增長超過在80年代初期,有40%的個人計算機市場引起了人們的關注大型機巨頭IBM的謠言開始傳播IBM進入市場。在1981年8月12日僅12個月的快速發(fā)展階段之后個人計算機或PC首次由8086的變體提供支持。

          8088立刻獲得了成功,PC體積小巧輕便且易于使用被定位為個人計算機,任何人都不得宣布超過40,000個單位的大型公司后,第一年就賣出了十萬輛,它很快超過了Apple 2,成為最暢銷的個人計算機。在這段時間里,來自truffaut數據的兩位年輕企業(yè)家沒有合作微軟獲得了為IBM開發(fā)操作系統(tǒng)的合同PC被稱為PC DOS,他們的第一個主要產品鞏固了Microsoft的統(tǒng)治地位,在行業(yè)中,并直接導致它成為最大的公司之一。PC的成功成就了使IBM創(chuàng)建兼容IBM的公司機器的硬件和軟件包開始大量涌入市場,以支持這個新平臺使PC迅速成為個人計算機的標準,它已經超越了最初的IBM根基而發(fā)展了幾十年,但仍然保持著,如今在個人計算機市場上的主導地位使這種流行成為可能當今個人計算機和服務器中PC架構的持久性8086的遺產。


          *博客內容為網友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



          關鍵詞: x86

          相關推薦

          技術專區(qū)

          關閉