[過去ログ]
Qiita 2 - キータぞ、来たぞ、キータだぞー (1002レス)
Qiita 2 - キータぞ、来たぞ、キータだぞー http://mevius.5ch.net/test/read.cgi/tech/1658762410/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
658: デフォルトの名無しさん [sage] 2023/01/29(日) 13:55:29.23 ID:V8aF3j6G 補足というか、このコードが何の処理をしている部分か説明 これはRISC-Vの機械語からどういう演算をすべきか決める回路のコード RISC-Vの命令フォーマットはR-type、I-type,S-type, U-typeの4種類で、S-typeとU-typeは 即値のフォーマットにより、それぞれS-formatとSB-format、U-formatとUJ-formatに分けられる 32bitの命令instのうち最下位7bit(inst[6:0])がopcode 7bitだと命令数が足らなくなるので、U-type以外中央の3bit(inst[14:12])が追加のopcode(Funct3) レジスタ間演算命令のR-typeでは最上位ビットから7bit分(inst[31:25])がさらに追加のopcode(Funct7) I-typeは基本的に最上位ビットから12bit分(inst[31:20])は即値だけど、シフト命令は32bitの場合 5bitでシフト量の指定ができるから、余ったbitのinst[30]をopcodeとして使う命令がある 実際にRV32Iの範囲でFunct7のinst[30]を利用する命令は、R-typeの加算命令ADD(Funct3=000)に 対する減算命令SUB命令、論理右シフトSRL(Funct3=101)に対する算術右シフトSRA、I-typeの 即値論理右シフトSRLI(Funct3=101)に対する算術右シフトSRAI このことを理解していれば、ALUに対して加算命令か減算命令かやシフト命令かそうでないかの 信号を送らないといけないわけで、alu_ctl[0]は加算か減算かの信号線で、alu_ctl[2]はシフト命令か どうかの信号線って推測できるから、どちらもinst[30]がないと区別できないことがわかるはず だとするとなんでinst[30]がいらないって発想になるんだろう?こちらがなんか勘違いしている? http://mevius.5ch.net/test/read.cgi/tech/1658762410/658
659: デフォルトの名無しさん [sage] 2023/01/29(日) 14:03:18.90 ID:V8aF3j6G >>658 一応補足 > だとするとなんでinst[30]がいらないって発想になるんだろう? inst[30]はf[3]ね alu_ctl[0]が加算化減算化を区別する信号線ならinst[30]=f[3]がないといけないのに >>656のコードはf[3]を取り除くコードにしていて、こんな書き換えようと思うこと自体 理解できないという意味 http://mevius.5ch.net/test/read.cgi/tech/1658762410/659
664: デフォルトの名無しさん [sage] 2023/01/30(月) 21:21:37.55 ID:r3bAOQsl で、ちゃんとパタヘネ読み直したけど、パタヘネはRISC-Vのサブセットであって RV32Iではないから独自仕様になっている部分があるのね なので>>658は忘れて パタヘネ4章4.4より、ALUはLD, SD, BEQ, ADD, SUB, AND, ORだけ処理でき、 alu_opは、LDとSDが00、BEQが01、ADDとSUBとANDとORが10で、 Operation(alu_ctl)は、論理積が0000、論理和が0001、加算が0010、減算が0110 論理積ANDのalu_ctlは0000 論理和ORのalu_ctlは0001 加算命令ADDだけでなく、メモリ読み書き命令LDとSDはアドレス計算に加算を 利用するから、ADDとLDとSDのalu_ctlは0010 減算命令のSUBだけでなく、値が同じ場合に分岐する条件分岐命令のBEQは 同じかどうかの判定にrs1-rs2を計算して0であるか判定するので減算が必要 だから、SUBとBEQのalu_ctlは0110 これらの処理をする回路の説明がFIGURE C.2.1の表で、1行目がLDとSD、 2行目がBEQ、3行目がADD、4行目がSUB、5行目がAND、6行目がOR FIGURE C.2.1に対応する回路図がFIGURE C.2.3 改めてチェックしてみたけど、この仕様のALUなら、FIGURE C.2.1と FIGURE C.2.3は何も間違っていないと思う http://mevius.5ch.net/test/read.cgi/tech/1658762410/664
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.030s