일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- RV32I
- instrction
- SQL #RDBMS #테이블 #table #row #column #문자형 데이터 #숫자형 데이터 #날짜형 데이터 #관계형 데이터베이스 #DB #데이터베이스 #database #MYSQL #MYSQL 설치 #MYSQL 접속
- 무조건 분기
- 명령어
- git bash
- shift연산
- 비교연산
- 네트워크 #network #운영체제 #OS #면접대비 #대학원 #
- pseudo
- 프로세스 #스레드 #컨텍스트스위칭 #프로그램기초 #IT
- 컴퓨터구조
- 조건부 분기
- 산술연산
- 프로그래머스 #
- programmers #프로그래머스 #C언어
- 메모리접근
- Computer Architecture
- SQL 문법 #SQL #테이블 #스키마 #스키마스 #데이테베이스 #공부
- SQL #MySQL #데이터베이스 #database #프로그래밍 #DDL #DML #TCL #DB #DBMS #RDBMS
- 자동차 대여 기록에서 장기/단기 대여 구분하기 #프로그래머스 #DB #SQL #Mysql #DATE_ADD #TIMESTAMPDIFF
- Git 초보
- 분기 명령어
- J-type
- git error 해결
- 조건에 부합하는 중고거래 댓글 조회하기 #SQL #Mysql
- programmers
- instruction
- RISC-V
- 특정 옵션이 포함된 자동차 리스트 구하기 #programmers #프로그래머스 #SQL #Mysql
- Today
- Total
목록RV32I (5)
juniverse

pseudo 명령어는 CPU가 모르는 쉽게 말하면 '가짜 명령어'이다. 이는 컴파일러가 컴파일 과정에서 실제 명령어로 바꿔준다. 기능 Pseudo 명령어 실제 명령어 Load abdolute address la rd, symbol auipc rd, ... addi rd, rd, ... Load immediate li rd, immediate lui rd, ... addi rd, ... No operation nop addi x0, x0, 0 Copy register mv rd, rs addi rd, rs, 0 One's complement not rd, rs xori rd, rs, -1 Two's complement neg rd, rs sub rd, x0, rs Branch if >, signed bgt..

분기 명령어에는 조건에 따른 분기 conditional branch 명령어와 무조건 분기 unconditional branch 명령어 두 종류가 있다. branch 명령어의 실행 결과를 말할 때 taken 또는 not-taken과 같은 용어를 자주 사용하는데, 'beq x3, x4, L1'의 예에서 x3 == x4이면 branch가 taken 됐다고 말하고, 그렇지 않으면 not-taken 됐다고 말한다. # conditional branch / B-type - beq rs1, rs2, imm[12:1] beq x10, x11, L1 // if (x10 == x11) PC → L1; // else PC → PC + 4; - bne rs1, rs2, imm[12:1] bne x10, x11, L1 // i..

RISC-V에서 데이터처리 명령어는 source 레지스터를 읽어 연산을 하고, 그 결과를 destination 레지스터에 저장한다. 그런데 컴퓨터를 켜면 CPU 레지스터 파일에는 아무런 데이터도 없는 상태이다. 그래서 메모리에서 데이터를 가져와야 하고 후속 연산을 위해 연산 후 레지스터에 저장된 값을 메모리로 저장하기도 해야 한다. 이렇게 메모리에 있는 데이터를 CPU 레지스터로 읽어오고, CPU 레지스터에 있는 데이터를 메모리로 저장하기 위해 CPU는 메모리접근 명령어를 제공한다. 메모리접근 명령어는 I-type과 S-type 형태로 구성되어 있다. 메모리를 읽을 때, load 명령어를 사용해야 하고 이때 I-type 형태를 사용하고 메모리를 쓸 때는 store 명령어를 사용해야 하고 이때 S-type..

명령어는 데이터처리 명령어, 메모리접근 명령어, 분기 명령어 이렇게 최소한 3가지 종류의 명령어를 반드시 제공한다. - 데이터처리 명령어는 산술연산, 논리연산 등을 하기 위한 명령어이다. - 메모리접근 명령어는 CPU가 데이터를 메모리에서 레지스터로 가져오는 명령어, 레지스터 값을 메모리로 쓰기 위한 명령어이다. - 분기 명령어는 branch라고 하면 이해가 쉬운데, 'if, for, while'과 같은 조건문이나 함수 호출을 위한 명령어이다. 이번 글에서는 데이터처리 명령어. 즉, 연산을 위한 명령어를 다루도록 하겠다. RV32I에서 데이터처리 명령어는 R-type, I-type 형식을 사용해 정의하고 연산은 크게 산술 연산, 논리 연산, shift 연산, 비교 연산 등이 있다. # 산술 명령어 1) ..

RV32I 명령어는 R-type, I-type, S-type, B-type, U-type, J-type 6가지 형태로 만들 수 있다. 이 명령어는 4가지(R-type, I-type, S-tupe, U-type) 기본 형태와 2가지(B-type, J-type) 파생된 형태로 만들어진다. 명령어의 길이는 모두 32-bit이다. (RISC는 명령어 길이 고정) #1 R-type funct7 rs2 rs1 funct3 rd opcode #2 I-type imm[11:0] rs1 funct3 rd opcode #3 S-type imm[11:5] rs2 rs1 funct3 imm[4:0] opcode #4 B-type imm[12] imm[10:5] rs2 rs1 funct3 imm[4:1] imm[11] opco..