首頁 資料庫 mysql教程 自己动手写CPU之第九阶段(2)加载存储指令说明2(lwl、lwr

自己动手写CPU之第九阶段(2)加载存储指令说明2(lwl、lwr

Jun 07, 2016 pm 03:20 PM
cpu 載入 儲存 手寫 指令 自己 說明 階段

将陆续上传新书《 自己动手写CPU 》,今天是第38篇,我尽量每周四篇,但是最近已经很久没有实现这个目标了,一直都有事,不好意思哈。 开展晒书评送书活动,在 亚马逊 、京东、当当三大图书网站上,发表《 自己动手写CPU 》书评的前十名读者,均可获赠《步步

将陆续上传新书《自己动手写CPU》,今天是第38篇,我尽量每周四篇,但是最近已经很久没有实现这个目标了,一直都有事,不好意思哈。

开展晒书评送书活动,在亚马逊、京东、当当三大图书网站上,发表《自己动手写CPU》书评的前十名读者,均可获赠《步步惊芯——软核处理器内部设计分析》一书,大家踊跃参与吧!活动时间:2014-9-11至2014-10-20


今天继续对MIPS32中加载存储指令进行说明(主要是lwl、lwr),上次已经介绍一些其他的加载存储指令,大家可以回顾。


9.1.4 加载指令lwllwr说明

      加载指令lwllwr的格式如图9-6所示。

自己动手写CPU之第九阶段(2)加载存储指令说明2(lwl、lwr
  •  当指令中的指令码为6'b100010时,是lwl指令,非对齐加载指令,向左加载

      指令用法为:lwl rt, offset(base)

      指令作用为:从内存中指定的加载地址处,加载一个字的最高有效部分。lwl指令对加载地址没有要求,从而允许地址非对齐加载,这是与前面介绍的lhlhulw指令的不同之处。在大端模式、小端模式下,lwl指令的效果不同,因为OpenMIPS是大端模式,所以此处只介绍在大端模式下lwl指令的效果。假设计算出来的加载地址是loadaddrloadaddr的最低两位的值为n,将loadaddr最低两位设为0后的值称为loadaddr_align,如下。

加载地址loadaddr = signed_extended(offset) + GPR[base]

n = loadaddr[1:0]

loadaddr_align = loadaddr – n

      例如:假设计算出来的加载地址是5lwl指令要从地址5加载数据,那么loadaddr就等于5n等于1loadaddr_align等于4

      lwl指令的作用是从地址为loadaddr_align处加载一个字,也就是4个字节,然后将这个字的最低4-n个字节保存到地址为rt的通用寄存器的高位,并且保持低位不变。

      继续上例,此时loadaddr_align4,所以从地址4处加载一个字,对应的是地址为4567的字节,因为n等于1,所以将加载到的字的最低3个字节保存到地址rt的通用寄存器的高3个字节。如图9-7所示。一个更加通用的描述如图9-8所示。

自己动手写CPU之第九阶段(2)加载存储指令说明2(lwl、lwr
  •  当指令中的指令码为6'b100110时,是lwr指令,非对齐加载指令,向右加载

      指令用法为:lwr rt, offset(base)

      指令作用为:从内存中指定的加载地址处,加载一个字的最低有效部分。还是假设计算出来的加载地址是loadaddrloadaddr的最低两位的值为n,将loadaddr最低两位设为0后的值称为loadaddr_align,如下。

加载地址loadaddr = signed_extended(offset) + GPR[base]

n = loadaddr[1:0]

loadaddr_align = loadaddr – n

      例如:假设计算出来的加载地址是9lwr指令要从地址9加载数据,那么loadaddr就等于9n等于1loadaddr_align等于8

      lwr指令的作用是从地址为loadaddr_align处加载一个字,也就是4个字节,然后将这个字的最高n+1个字节保存到地址为rt的通用寄存器的低位,并且保持高位不变。

      继续上例,此时loadaddr_align8,所以从地址8处加载一个字,对应的是地址为891011的字节,因为n等于1,所以将加载到的字的最高2个字节保存到地址rt的通用寄存器的低2个字节。如图9-9所示。一个更加通用的描述如图9-10所示。

自己动手写CPU之第九阶段(2)加载存储指令说明2(lwl、lwr

      lwllwr指令配合可以实现从一个非对齐地址加载一个字,而且只需要使用2条指令,提高了效率。例如:使用一般指令从地址7处加载一个字,那么可以使用以下代码实现,共5条指令。

1

2

3

4

5

lw  $1, 4($0)          # 取得地址0x4处的字,保存在$1

lw  $2, 8($0)          # 取得地址0x8处的字,保存在$2

sll $1, $1, 24         # $1左移24位

slr $2, $2, 8          # $2右移8位

or  $1, $1, $2         # $1$2进行逻辑“或”运算,得到最终结果

登入後複製

      而有了lwllwr指令后,只需要2条指令即可。如下,图9-11是对这个过程的描述。

1

2

lwl $1, 7($0)

lwr $1,10($0)

登入後複製
自己动手写CPU之第九阶段(2)加载存储指令说明2(lwl、lwr


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

泰拉瑞亞怎麼用指示取得物品? -泰拉瑞亞怎麼收藏物品? 泰拉瑞亞怎麼用指示取得物品? -泰拉瑞亞怎麼收藏物品? Mar 19, 2024 am 08:13 AM

泰拉瑞亞怎麼用指示取得物品?一、什麼是泰拉瑞亞給予物品指令在泰拉瑞亞遊戲中,給予物品指令是一項非常實用的功能。透過這個指令,玩家可以直接取得需要的物品,而不必費力地去打怪或傳送到某個地點。這樣可以大大節省時間,提高遊戲的效率,讓玩家更專注於探索和建立世界。總的來說,這個功能讓遊戲體驗變得更加流暢和愉快。二、如何使用泰拉瑞亞給予物品指令1.打開遊戲並進入遊戲介面。 2.按下鍵盤上的「Enter」鍵,開啟聊天視窗。 3.在聊天視窗中輸入指令的格式:「/give[玩家名稱][物品ID][物品數量]」。

WIN10服務主機太佔cpu的處理操作過程 WIN10服務主機太佔cpu的處理操作過程 Mar 27, 2024 pm 02:41 PM

1.首先我們右鍵點選任務列空白處,選擇【任務管理器】選項,或右鍵開始徽標,然後再選擇【任務管理器】選項。 2.在開啟的任務管理器介面,我們點選最右邊的【服務】選項卡。 3.在開啟的【服務】選項卡,點選下方的【開啟服務】選項。 4.在開啟的【服務】窗口,右鍵點選【InternetConnectionSharing(ICS)】服務,然後選擇【屬性】選項。 5.在開啟的屬性窗口,將【開啟方式】修改為【禁用】,點選【應用程式】後點選【確定】。 6.點選開始徽標,然後點選關機按鈕,選擇【重啟】,完成電腦重啟就行了。

144 核心,3D 堆疊 SRAM:富士通詳細介紹下一代資料中心處理器 MONAKA 144 核心,3D 堆疊 SRAM:富士通詳細介紹下一代資料中心處理器 MONAKA Jul 29, 2024 am 11:40 AM

本站7月28日消息,根據外媒TechRader報道,富士通詳細介紹了計劃於2027年出貨的FUJITSU-MONAKA(以下簡稱MONAKA)處理器。 MONAKACPU基於「雲端原生3D眾核」架構,採用Arm指令集,面向資料中心、邊緣與電信領域,適用於AI運算,能實現大型主機層級的RAS1。富士通表示,MONAKA將在能源效率和性能方面實現飛躍:得益於超低電壓(ULV)製程等技術,該CPU可實現2027年競品2倍的能效,冷卻無需水冷;此外該處理器的應用性能也可達對手2倍。在指令方面,MONAKA配備的向量

洩漏揭示了英特爾 Arrow Lake-U、-H、-HX 和 -S 的關鍵規格 洩漏揭示了英特爾 Arrow Lake-U、-H、-HX 和 -S 的關鍵規格 Jun 15, 2024 pm 09:49 PM

英特爾ArrowLake預計將基於與LunarLake相同的處理器架構,這意味著英特爾全新的LionCove效能核心將與經濟體的Skymont效率核心結合。

AM4 拒絕死亡,消息稱 AMD 將推出 Ryzen 9 5900XT /7 5800XT:主頻最高 4.8GHz AM4 拒絕死亡,消息稱 AMD 將推出 Ryzen 9 5900XT /7 5800XT:主頻最高 4.8GHz Jun 05, 2024 pm 09:43 PM

本站6月1日消息,消息源@CodeCommando今天發布推文,分享了AMD即將在Computex2024活動中的部分演示文檔截圖,推文內容為“AM4永不消亡”,配圖展示了兩款新的Ryzen5000XT系列處理器。根據截圖內容顯示以下兩款產品:Ryzen95900XTRyzen95900XT定位相對高端,這是一款全新的16核心AM4處理器,其時脈速度略低於A​​MD的Ryzen95950X。 Ryzen75800XT它是AMD現有Ryzen75800X處理器的更快變體,這兩款處理器的主頻最高可達4.8G

華為明年將推創新 MED 儲存產品:機架容量超過 10 PB,功耗低於 2 kW 華為明年將推創新 MED 儲存產品:機架容量超過 10 PB,功耗低於 2 kW Mar 07, 2024 pm 10:43 PM

本站3月7日訊息,華為資料儲存產品線總裁週躍峰博士日前出席MWC2024大會,專門展示了為溫資料(WarmData)和冷資料(ColdData)設計的新一代OceanStorArctic磁電儲存解決方案。華為資料儲存產品線總裁週躍峰發布系列創新解決方案圖來源:華為本站附上華為官方新聞稿內容如下:該方案的成本比磁帶低20%,功耗比硬碟低90%。根據國外科技媒體blocksandfiles報道,華為發言人也透露了關於該磁電儲存解決方案的資訊:華為的磁電磁碟(MED)是對磁性儲存媒體的重大創新。第一代ME

Stremio字幕不工作;載入字幕時出錯 Stremio字幕不工作;載入字幕時出錯 Feb 24, 2024 am 09:50 AM

字幕在你的WindowsPC上不能在Stremio上運行嗎?一些Stremio用戶報告說,影片中沒有顯示字幕。許多用戶報告說他們遇到了一條錯誤訊息,上面寫著「載入字幕時出錯」。以下是與此錯誤一起顯示的完整錯誤訊息:載入字幕時出錯載入字幕失敗:這可能是您正在使用的插件或您的網路有問題。正如錯誤訊息所說,可能是您的網路連線導致了錯誤。因此,請檢查您的網路連接,並確保您的網路運作正常。除此之外,這個錯誤的背後可能還有其他原因,包括字幕加載項衝突、特定影片內容不支援字幕以及Stremio應用程式過時。如

完美解決Chrome瀏覽器CPU佔用過高問題的方法 完美解決Chrome瀏覽器CPU佔用過高問題的方法 Mar 14, 2024 pm 12:25 PM

  有用戶在電腦運作過程中,發現任務管理器裡谷歌瀏覽器佔用了極高的CPU,如果不及時處理的話,電腦就變得越來越卡,甚至出現死機。那麼Chrome瀏覽器CPU佔用過高要如何處理呢?下面就來一起看看這個問題。谷歌瀏覽器的高CPU佔用問題通常是由於「SoftwareReporterTool」在工作管理員中異常運作。這個工具實際上是Chrome瀏覽器的清理工具,用於清理掉不必要或有害的擴充功能、應用程式或首頁劫持等。當安裝Chrome時,Software_reporter_tool.exe也會被下載到SwR

See all articles