<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 10.6 TLB測試 80386提供了一種機制來測試轉換后備緩沖區(TLB),該緩沖區用來把線性地址轉換成物理地址。盡管TLB硬件錯誤的機會非常小,但用戶可能在上電信心測試的時候把TLB信心測試包含進來。 注意: TLB測試機制是80386獨有的,可能不會在將來的處理器中包含它。使用這種機制的軟件可能會與將來的處理器不兼容。 當測試TLB的時候,建議您關閉頁(CR0中的PG=0)以避免在正在寫入TLB的數據引起沖突。 ### 10.6.1 TLB結構 TLB是一個4路關聯接收機。圖10-3說明了TLB的結構。它有4個裝置,每個包含8項。每項包含標簽和數據。標簽24位寬,它們包含高階20位線性地址,檢查位,以及3個屬性位。數據域包含高階20位物理地址。 ### 10.6.2 測試寄存器 兩個寄存器,如圖10-4,用來測試。TR6是測試命令寄存器,TR7是測試數據寄存器。這些寄存器可以用MOV命令來訪問。測試命令寄存器可以是源操作數,也可以是目的操作數。MOV在實地址模式和保護模式下都有定義。測試寄存器是特權資源;在保護模式下,只能在特權級0用MOV訪問它們。在其他特權級的訪問將導致通用保護異常。 測試命令寄存器(TR6)包含一個命令位和地址標簽: C 命令位。有兩個TLB測試命令:向TLB寫,和TLB檢查。為了向TLB寫數據,可以將雙字用MOV寫入TR6,并將該標志清零。為了TLB檢查,可以將雙字用MOV寫入TR6,并且置位該標志位。 Linear Address 當執行TLB寫后,一個TLB項被定位到這個線性地址;這個TLB項的其他部分由TR7和剛剛被寫入的TR6來決定。當執行TLB檢查時,通過這個值來審查TLB;如果有且僅有一項匹配,TR6和TR7的其他部分由該匹配項來設置。 V TLB項的檢查位。TLB用這項來檢查TLB項是否含有合法數據。沒有被分配數據的TLB項該標志位為零。所有的檢查位可以通過寫CR3來清除。 D, D# 臟標志(和它的補)來設置/讀取TLB項。 U, U# U/S標志(和它的補)來設置/讀取TLB項。 W, W# R/W標志(和它的補)來設置/讀取TLB項。 這些標志對的含義見表10-1,X代表D, U, 或者W。 測試寄存器(TR7)用保存從TLB讀取的數據,或要寫入TLB的數據。 physical Address TLB的數據域。當TLB寫后,被分配給TR6中線性地址的TLB項被設置成這個值。當執行TLB檢查時,如果設置了HT,TLB的數據域(物理地址)被讀到這里。如果沒有設置HT,該域未定義。 HT 對于TLB檢查,HT決定檢查被觸發(HT<-1)或忽略(HT<-0)。對于TLB寫,HT必須為1。 REP 對于TLB寫,選擇4個通道中的一個來寫入。對于TLB讀,如果設置了HT,REP報告出哪個通道找到了標簽;如果沒有設置HT,REP未定義。 Table 10-1. Meaning of D, U, and W Bit Pairs ``` X X# Effect during Value of bit X TLB Lookup after TLB Write 0 0 (undefined) (undefined) 0 1 Match if X=0 Bit X becomes 0 1 0 Match if X=1 Bit X becomes 1 1 1 (undefined) (undefined) ``` ![](https://box.kancloud.cn/2016-03-06_56dbfdb00abd7.png) ![](https://box.kancloud.cn/2016-03-06_56dbfdb021555.png) ### 10.6.3 測試操作 寫TLB項: 1,向TR7中寫入雙字,包含需要的物理地址,HT,和REP值。HT必須為1。REP必須指向要放置該項的通道。 2,向TR6寫入雙字,包含合適的線性地址,以及V, D, U和W值。確保C=0。 要當心,不要寫入重復的標簽;這樣做的結果未定義。 檢查(讀)TLB項: 1,向TR6寫入雙字,包含適當的線性地址和屬性。確保C=1。 2,保存TR7。如果設置了HT,則其他值表示讀到的TLB項的內容。如果沒有設置HT,則其他值無法確定。 對于測試而言,V標志的作用類似于地址標志位。通常在檢查的時候置位此標志位,使沒有初始化的標簽不參加匹配。如果不設置,則未初始化的標簽會導致不可預料的結果。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看