정말 좋은 가이드였음
첫 번째 “My first RISC-V assembly program” 에뮬레이터 화면이 가이드의 맨 앞에 있었으면 좋겠음. 그렇지 않으면 독자들이 ‘interactive’라는 제목에도 불구하고 텍스트만 있는 소개라고 착각할 수도 있음
앞으로 며칠 더 시간을 들여볼 예정임. RISC-V에 꽤 관심이 많고, 밝은 미래가 있다고 생각함
혹시 AI 전문가가 이 글을 본다면 Replit이나 Lovable 같은 플랫폼으로 RISC-V 어셈블리로 Core War를 다시 만들어주면 정말 멋질 것 같음
왜 그냥 뇌로 직접 하지 않는 거지?
Patterson과 Hennessy의 Computer Organization And Design으로 어셈블리를 배웠는데, RISC-V가 MIPS에서 얼마나 많은 걸 가져왔는지 확실히 느껴짐
두 ISA 모두 같은 사람들이 관여했고, MIPS의 delay slot 같은 실수를 피했음. MIPS 경험이 있다면 RISC-V 어셈블리는 거의 비슷하게 느껴짐
요즘은 AArch64도 살펴보고 있는데, RISC-V보다 덜 깔끔하지만 실용적인 설계가 인상적임. 오히려 RISC-V가 너무 보수적으로 설계된 게 아닌가 하는 생각도 듦
Position Independence 섹션에 오류가 있는 것 같음
예제 코드에서 auipc 대신 lui를 사용해야 0x3004가 나오는 게 아닌지 궁금함
그렇지 않음. lui는 절대 주소를 생성하지만, auipc/addi 조합은 위치 독립적 주소를 만듦. auipc가 0번지에 있다면 결과는 동일하지만, 실제로는 현재 명령어 주소에 더해진 값이 됨
이 콘텐츠의 인터랙티브한 구성이 정말 훌륭함
C/C++ 개발자로서 어셈블리는 늘 어렵다고 생각했는데, 이 방식 덕분에 훨씬 명확하게 이해됨
RISC-V 어셈블리는 대체로 쉽지만 명령어 축약형이 너무 많아 불편함. lw 대신 load4, j 대신 jump처럼 좀 더 직관적인 이름을 쓸 수도 있을 텐데, 펀치카드 시대도 아닌데 왜 이렇게 짧게 쓰는지 모르겠음
이 글을 보고 다시 저수준 프로그래밍을 해보고 싶어졌음
대학에서 메카트로닉스를 전공하며 C와 어셈블리로 마이크로컨트롤러를 다뤘지만, 지금은 웹 개발 쪽으로 옮겼음
RISC-V 하드웨어를 배우기 위한 신뢰할 만한 자료가 있을까 궁금함. 가능하다면 Rust로 해보고 싶음
Rust로 직접 하드웨어를 다루는 건 아니지만, OS 기초를 다루는 좋은 튜토리얼이 있음: Operating System in 1000 Lines
또 Rust 기반 OS 튜토리얼도 있었는데 지금은 링크를 못 찾겠음
실제 하드웨어를 원한다면 neorv32를 추천함 — 문서가 잘 되어 있음: 공식 문서, GitHub 저장소. VHDL로 작성된 RISC-V 코어임
곧 VisionFive 2 Lite도 출시될 예정이라 기대 중임. 드라이버나 성능 면에서 약간 부족하지만 OS 개발용으로는 괜찮을 듯함 Kickstarter 페이지 참고
또 RISC-V와 FPGA를 함께 다루고 싶다면 PolarFireSoC도 있음. AMD/Xilinx보다 훨씬 저렴하고 쓸 만함. 개발 환경은 좀 올드하지만 빠름, 문서는 흩어져 있지만 대부분 어딘가엔 있음 개발 키트 링크
재밌는 점은 개발 보드가 칩보다 싸다는 것임
아마 ESP-32에서 시작하는 게 더 쉬울 수도 있음. 훨씬 널리 구할 수 있으니까
마침 이번 주에 C 강의에서 어셈블리 입문 단원에 들어갔는데, RISC-V로 배우면 CPU 차이 문제를 피할 수 있을 것 같았음
그런데 누군가 이미 그걸 완벽히 정리해둔 자료를 만들어줬음. 정말 감사함
“0에서 빼면 음수가 된다”는 예제에서, 0x123의 음수는 0xfffffedd임
에뮬레이터가 0xfffffccd를 보여준다고 했지만, 실제로는 0xfffffedd가 맞음. 직접 계산해봤고 에뮬레이터가 정확함
Hacker News 의견
정말 좋은 가이드였음
첫 번째 “My first RISC-V assembly program” 에뮬레이터 화면이 가이드의 맨 앞에 있었으면 좋겠음. 그렇지 않으면 독자들이 ‘interactive’라는 제목에도 불구하고 텍스트만 있는 소개라고 착각할 수도 있음
앞으로 며칠 더 시간을 들여볼 예정임. RISC-V에 꽤 관심이 많고, 밝은 미래가 있다고 생각함
혹시 AI 전문가가 이 글을 본다면 Replit이나 Lovable 같은 플랫폼으로 RISC-V 어셈블리로 Core War를 다시 만들어주면 정말 멋질 것 같음
Patterson과 Hennessy의 Computer Organization And Design으로 어셈블리를 배웠는데, RISC-V가 MIPS에서 얼마나 많은 걸 가져왔는지 확실히 느껴짐
두 ISA 모두 같은 사람들이 관여했고, MIPS의 delay slot 같은 실수를 피했음. MIPS 경험이 있다면 RISC-V 어셈블리는 거의 비슷하게 느껴짐
요즘은 AArch64도 살펴보고 있는데, RISC-V보다 덜 깔끔하지만 실용적인 설계가 인상적임. 오히려 RISC-V가 너무 보수적으로 설계된 게 아닌가 하는 생각도 듦
TCP Socket in RISC-V Assembly를 직접 작성했음
RV64I ISA를 사용했고, linker relaxation 개념을 이해해야 함. 참고 자료도 함께 첨부해둠
Position Independence 섹션에 오류가 있는 것 같음
예제 코드에서
auipc대신lui를 사용해야 0x3004가 나오는 게 아닌지 궁금함lui는 절대 주소를 생성하지만,auipc/addi조합은 위치 독립적 주소를 만듦.auipc가 0번지에 있다면 결과는 동일하지만, 실제로는 현재 명령어 주소에 더해진 값이 됨이 콘텐츠의 인터랙티브한 구성이 정말 훌륭함
C/C++ 개발자로서 어셈블리는 늘 어렵다고 생각했는데, 이 방식 덕분에 훨씬 명확하게 이해됨
lw대신load4,j대신jump처럼 좀 더 직관적인 이름을 쓸 수도 있을 텐데, 펀치카드 시대도 아닌데 왜 이렇게 짧게 쓰는지 모르겠음이 글을 보고 다시 저수준 프로그래밍을 해보고 싶어졌음
대학에서 메카트로닉스를 전공하며 C와 어셈블리로 마이크로컨트롤러를 다뤘지만, 지금은 웹 개발 쪽으로 옮겼음
RISC-V 하드웨어를 배우기 위한 신뢰할 만한 자료가 있을까 궁금함. 가능하다면 Rust로 해보고 싶음
또 Rust 기반 OS 튜토리얼도 있었는데 지금은 링크를 못 찾겠음
실제 하드웨어를 원한다면 neorv32를 추천함 — 문서가 잘 되어 있음: 공식 문서, GitHub 저장소. VHDL로 작성된 RISC-V 코어임
RISC-V 하드웨어는 쉽게 구할 수 있음
RISC-V on Raspberry Pi Pico 2 참고
Kickstarter 페이지 참고
또 RISC-V와 FPGA를 함께 다루고 싶다면 PolarFireSoC도 있음. AMD/Xilinx보다 훨씬 저렴하고 쓸 만함. 개발 환경은 좀 올드하지만 빠름, 문서는 흩어져 있지만 대부분 어딘가엔 있음
개발 키트 링크
재밌는 점은 개발 보드가 칩보다 싸다는 것임
마침 이번 주에 C 강의에서 어셈블리 입문 단원에 들어갔는데, RISC-V로 배우면 CPU 차이 문제를 피할 수 있을 것 같았음
그런데 누군가 이미 그걸 완벽히 정리해둔 자료를 만들어줬음. 정말 감사함
“0에서 빼면 음수가 된다”는 예제에서, 0x123의 음수는 0xfffffedd임
에뮬레이터가 0xfffffccd를 보여준다고 했지만, 실제로는 0xfffffedd가 맞음. 직접 계산해봤고 에뮬레이터가 정확함
좋은 RISC-V 에뮬레이터를 찾는다면 RARS를 추천함