青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 71,  comments - 41,  trackbacks - 0
? 2003 by Charles C. Lin. All rights reserved.

Register File, Part 1

Consider a typical R-type instruction.
   add $r10, $r3, $r4   # R[10] = R[3] + R[4]
The first step to executing this instruction is fetching the operands. In this case, we need to get the values of $r3 and $r4.

Recall that the CPU processes a 32-bit machine code instruction that's translated from the assembly code above, and encoded in that instruction are the 3 registers. In particular, each of the register is encoded using 5 bit UB.

For example, register 3 is encoded as 00011 and register 4 is encoded as 00100.

We're going to create a circuit called a register file. This circuit contains all 32 user-visible integer registers. We could create one for floating point, but that's not absolutely necessary. You'll still understand how a CPU works if we leave out floating point registers (they work pretty much like the integer registers).

We want the ability to access both registers (in this case, $r3 and $r4) at the same time. That way, we can save time. If we have to access one register at a time, it would slow down the execution of the instruction.

So, we have two sets of inputs to our register file, which specify which two registers we want. They can even be the same register.

Here's how our initial register file looks:

We've labelled the inputs as SRC 1 Index and SRC 2 Index, which are 5 bits each. We can think of registers 3 and 4 and source registers, and their result is stored in the destination register (in our example, it's $r10).

Register File, Part 2

However, we need the register file to have outputs. These outputs are going to be 32 bits each since each register in MIPS32 has 32 bits. The outputs are the contents of the registers specified by SRC 1 Index and SRC 2 Index. Thus SRC 1 Data is the contents of the register specified by SRC 1 Index, and SRC 2 Data is the contents of the register specified by SRC 2 Index.

Register File, Part 3

At this point, the two 32-bit outputs are sent to the ALU (we'll discuss the ALU in more detail soon). The ALU does computations on these and produces a 32-bit result. This result is saved back into the destination register. The register file needs 32-bit data as input as a 5-bit index. We'll call these DST Index and DST Data for short.

The DST Index comes from the instruction itself, just as SRC 1 Index and SRC 2 Index did. In our example, that's the encoding of $r10 (which is 01010).

It turns out we need one more input, in addition to DST Index and DST Data. Even though this particular instruction updates a destination register, not every instruction does so. We want to control when a register value is updated in the register file.

This control signal is called RegWrite and it's only 1 bit. If RegWrite = 1, then a write is performed on the register specified by DST Index, using the 32-bit data given by DST Data. If RegWrite = 0, then no write is performed. Both DST Index and DST Data are ignored.

Which reminds me, we have to talk about a clock. The register file also has a clock. The diagram below is now complete.

Why no RegRead?

You may wonder why there's no RegRead to control when the register file outputs SRC 1 Data and SRC 2 Data.

The reason is simple. SRC 1 Data and SRC 2 Data are sent to the outside world (i.e., to other parts of the CPU). Those parts can simply choose to ignore the data, if they don't need it.

However, when you are performing a write on a register using DST Index and DST Data, you are updating the register file. The register file can't very well ignore that. To give it the option to ignore it, we must include RegWrite.

Clocks

The register file should be thought of as partly using the clock and partly not.

SRC 1 Data and SRC 2 Data are output with a small delay given a change in SRC 1 Index and SRC 2 Index. If you're curious about the implementation (or, more precisely, if you're curious about an implementation), look at the MAR from the previous set of notes.

You can see that it's hooked up to tri-state buffers. Once the tri-state buffers are enabled (which doesn't require a clock), the output is sent to the address bus.

Similarly, SRC 1 Index and SRC 2 Index enable two 32-bit tri-state buffers. In particular, they enable the tri-state buffers to the registers specified by SRC 1 Index and SRC 2 Index.

Again, this part does not need a clock. If SRC 1 Index and SRC 2 Index both change, then the tri-state buffers associated with the new registers are enabled (while the previous ones are disabled), and they are output after a small delay.

Writing Requires a Clock

However, when you want to write to a register, you are performing a parallel load on that register. This operation relies on a clock. We're going to assume that the register file, like MAR and MDR, is loaded on negative edges. This allows computations to be performed by the rest of the CPU before registers are loaded.

Summary

A register file is a black box that contains 32 32-bit registers. At any one time, you can specify up to two registers to "read" and one register to write, with the option to decide whether you want to write or not.

Reading a value from the register file does not require a clock. Once you specify the registers you want to read (i.e., SRC 1 Index and SRC 2 Index), then there's only a small delay before the data comes out of the register file via SRC 1 Data and SRC 2 Data.

Writing a value to the register file does require a clock. You can specify which register you want to write to (using DST Index), the data you want to write (using DST Data) and whether you really want to write to the register file or not (using RegWrite). This action takes place on the negative edge of the clocks. (Positive edges are used to transition in the finite state machine and set up control signals for ALU, MUX, tri-state buffers, etc).

posted on 2007-01-24 09:25 Charles 閱讀(892) 評論(0)  編輯 收藏 引用 所屬分類: 拿來主義
<2008年8月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

決定開始寫工作日記,記錄一下自己的軌跡...

常用鏈接

留言簿(4)

隨筆分類(70)

隨筆檔案(71)

charles推薦訪問

搜索

  •  

積分與排名

  • 積分 - 51563
  • 排名 - 449

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国内成人自拍视频| 亚洲欧美日韩直播| 亚洲欧洲精品一区二区三区波多野1战4| 欧美gay视频| 欧美一区二区三区的| 国产精品你懂的在线欣赏| 亚洲精品一区二区网址| 老司机午夜精品| 欧美一区二区三区男人的天堂 | 韩日精品中文字幕| 欧美呦呦网站| 亚洲女爱视频在线| 国产精品影音先锋| 久久精品国产99国产精品| 亚洲一区二区视频在线| 国产精品久久777777毛茸茸| 亚洲网站在线| 亚洲色无码播放| 在线观看国产一区二区| 亚洲一区二区视频| 99综合精品| 国产精品丝袜91| 久久久精品欧美丰满| 久久久久免费| 亚洲精品中文字幕女同| 亚洲精品久久久久中文字幕欢迎你| 欧美v日韩v国产v| 亚洲欧美日韩成人高清在线一区| 国产亚洲精品成人av久久ww| 亚洲国产成人精品女人久久久 | 玖玖玖国产精品| 国产精品裸体一区二区三区| 免费亚洲婷婷| 亚洲欧洲日产国码二区| 亚洲经典三级| 欧美视频在线观看免费网址| 亚洲免费视频网站| 欧美伊人久久久久久午夜久久久久| 国产亚洲精品激情久久| 免费成人你懂的| 欧美日韩播放| 久久成人在线| 欧美a级片网| 亚洲性夜色噜噜噜7777| 亚洲欧美激情四射在线日 | 亚洲伊人观看| 亚洲综合色噜噜狠狠| 国语自产偷拍精品视频偷| 亚洲第一福利在线观看| 欧美午夜激情小视频| 久久久亚洲精品一区二区三区| 免费成人性网站| 欧美一级欧美一级在线播放| 欧美与欧洲交xxxx免费观看| 亚洲第一视频| 亚洲欧美一区二区三区久久 | 久久免费视频网| 欧美高清一区二区| 欧美综合77777色婷婷| 欧美岛国激情| 久久久久一区二区三区| 欧美色图天堂网| 欧美二区在线看| 国产日韩欧美一区二区三区四区| 亚洲国产高清自拍| 国产综合香蕉五月婷在线| 亚洲欧洲日韩女同| 激情综合网激情| 亚洲综合色自拍一区| 一本久久a久久免费精品不卡| 欧美在线观看www| 亚洲欧美日韩在线播放| 欧美久久视频| 欧美激情第8页| 狠狠做深爱婷婷久久综合一区 | 性色一区二区| 欧美韩国日本一区| 欧美丝袜一区二区| 亚洲欧美成人在线| 久久久精品2019中文字幕神马| 毛片av中文字幕一区二区| 亚洲女人天堂av| 欧美日韩国产在线看| 亚洲第一福利社区| 1000部精品久久久久久久久| 欧美一级淫片播放口| 午夜日本精品| 国产精品国产三级国产aⅴ入口| 欧美国产专区| 亚洲福利一区| 久久久精品日韩欧美| 欧美在线免费播放| 欧美日本国产视频| 亚洲美女视频| 亚洲一区二区精品在线| 欧美亚一区二区| 亚洲一区成人| 性色一区二区三区| 国产日韩一区欧美| 欧美一区=区| 久久天天躁狠狠躁夜夜av| 国产欧美 在线欧美| 亚洲资源在线观看| 久久av资源网站| 精品二区久久| 免费看亚洲片| 日韩午夜免费视频| 亚洲一区二区三区视频播放| 国产精品草草| 欧美一区二区三区在线观看视频| 久久精品在线| 亚洲欧洲精品一区二区三区| 欧美福利视频在线| 亚洲精品五月天| 亚洲欧美日韩综合国产aⅴ| 国产色综合久久| 久久婷婷影院| 毛片基地黄久久久久久天堂| 欧美激情亚洲另类| 中文亚洲视频在线| 国产免费成人在线视频| 久久久久国色av免费观看性色| 麻豆九一精品爱看视频在线观看免费| 一区二区视频免费在线观看| 欧美成人精品h版在线观看| 日韩亚洲一区二区| 久久久久国产成人精品亚洲午夜| 亚洲国产高清在线| 欧美视频网站| 久久精品国产亚洲一区二区三区| 欧美韩日一区二区| 亚洲一区综合| 亚洲国产欧美在线人成| 国产精品国产三级国产普通话99| 欧美一级视频一区二区| 亚洲美女av网站| 国产精品亚洲成人| 免费高清在线一区| 亚洲香蕉伊综合在人在线视看| 羞羞色国产精品| 亚洲欧洲在线观看| 国产精品无码专区在线观看| 久久精品亚洲国产奇米99| 亚洲激情六月丁香| 久久久91精品国产一区二区三区| 亚洲国产毛片完整版 | 亚洲成在线观看| 国产精品免费小视频| 久久亚洲影院| 欧美一区二区久久久| 亚洲美女av网站| 蜜臀久久99精品久久久久久9| 亚洲欧美日韩国产| 在线视频成人| 国产午夜精品久久久久久久| 欧美www视频| 久久久青草婷婷精品综合日韩| 亚洲一区二区三区影院| 美女网站在线免费欧美精品| 亚洲一区二区高清| 亚洲精品乱码久久久久久蜜桃麻豆| 国产欧美日韩视频| 欧美日韩久久久久久| 欧美国产精品va在线观看| 久久xxxx精品视频| 国产精品视频福利| 欧美久久影院| 欧美14一18处毛片| 久久夜精品va视频免费观看| 亚洲欧美色婷婷| 正在播放亚洲一区| 欧美好骚综合网| 久久五月天婷婷| 久久国产成人| 欧美与黑人午夜性猛交久久久| 99天天综合性| 日韩一级裸体免费视频| 亚洲人体大胆视频| 亚洲无玛一区| 91久久国产精品91久久性色| 亚洲国产成人av| 欧美成人午夜免费视在线看片| 亚洲国产精品久久人人爱蜜臀 | 国产伦精品一区| 欧美激情一区二区三区全黄| 欧美国产精品v| 免费观看一级特黄欧美大片| 亚洲欧美日韩国产综合| 亚洲人永久免费| 欧美中文字幕第一页| 最新国产乱人伦偷精品免费网站| 亚洲大片免费看| 9色国产精品| 欧美视频在线观看免费网址| 午夜日韩在线观看| 欧美肥婆bbw| 噜噜噜91成人网| 亚洲成人自拍视频| 欧美专区在线播放| 亚洲国产精品电影在线观看|