처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.08.16 32

RISC-V는 왜 욕을 먹나: 한 엔지니어의 조목조목 비판

Hacker News 원문 보기

RISC-V는 개방형 명령어 집합(ISA)이라는 점 때문에 학계와 산업계 양쪽에서 뜨거운 지지를 받아 왔다. 그러나 임베디드·저수준 소프트웨어로 유명한 엔지니어 Dmitry.GR은 오랫동안 되풀이해 온 자신의 반감을 한 편의 글로 정리했다. 그의 논지는 감정적 비난이 아니라, 마이크로컨트롤러부터 서버까지 하나의 ISA로 모두 석권하겠다는 RISC-V 진영의 서사에 대한 구조적 반박이다. 결론부터 말하면 그는 RISC-V가 결국 초저가 마이크로컨트롤러 시장은 차지하겠지만, 그것은 ISA가 뛰어나서가 아니라 8051이라는 낮디낮은 기준을 넘어서기 때문이라고 본다. 실무자 입장에서 이 글은 특정 제품 홍보가 아니라, ISA 설계 트레이드오프를 되짚어 보게 하는 참고 자료로 읽을 만하다.

하나의 ISA로 모든 영역을 잡을 수 없다

비판의 출발점은 단순하다. 고성능 CPU가 필요로 하는 것과 원가를 깎은 작은 코어가 필요로 하는 것은 정반대이며, 이 차이는 마이크로아키텍처를 넘어 아키텍처 자체에까지 영향을 준다는 것이다. 저가 마이크로컨트롤러는 MP3 플레이어나 SD 카드, USB 스틱처럼 실제 연산은 전용 IP가 처리하고 코어는 가끔 레지스터를 건드리는 역할만 한다. 여기서 중요한 것은 인터럽트 지연과 코어 면적, 그리고 코드 밀도다. ROM이나 SRAM에서 코드를 실행하므로 코드가 조금만 커져도 다이 면적 비용으로 직결된다. 반대로 하드웨어 나눗셈기나 곱셈기, 권한 분리는 이런 용도에서 불필요하다.

저자는 이 조건이 RV32IC나 RV32EC와 비슷해 보이지만, 실제로는 인터럽트를 규격에 맞게 처리하려면 Zicsr가 필요하다고 지적한다. MIPS가 $k0, $k1 레지스터를 예약해 둔 것과 달리 RISC-V는 mscratch·sscratch에 의존하는데, Zicsr가 없으면 레지스터를 잠시 보관할 자리조차 없어 편법에 기대야 한다. 그는 한 명령씩만 실행되는 작은 코어에서 C로 작성한 인터럽트 핸들러를 부르기 위해 ABI 레지스터를 저장하는 데만 최소 21사이클, 복원에 약 20사이클이 들고, 여기에 핸들러 호출과 복귀까지 더해진다고 계산한다.

압축 명령의 어설픈 설계

코드 밀도를 자랑하던 C 확장에 대해서도 그는 신랄하다. 16비트 명령으로 바이트를 저장할 때 인코딩할 수 있는 오프셋 범위가 0에서 3에 불과하고, 하프워드 저장은 0 또는 2뿐이다. 워드 저장만 0에서 124로 그나마 쓸 만한 범위를 준다. 게다가 바이트 저장 명령의 한 비트는 그냥 0으로 고정되어 있어 범위를 넓힐 여지조차 버려졌다. 반면 Cortex-M0은 바이트 0~31, 하프워드 0~62, 워드 0~124를 지원한다. 더구나 이 바이트·하프워드 저장 명령은 C 확장에 포함되지도 않았다. 밀도를 내세우던 확장이 정작 흔한 연산에서 밀도를 스스로 갉아먹는 셈이다.

서버 코어와 배열 접근이라는 약점

서버급 코어는 사정이 다르다. 실리콘 면적은 캐시에 비하면 사실상 공짜이고, 필요한 것은 순수 처리량이다. 최신 비순차 실행 코어는 한 사이클에 8~10개 명령을 디코딩하고 여러 포트로 발행하며, 한 사이클에 둘 이상의 분기를 처리하기도 한다. 이런 환경에서 가변 길이 압축 명령은 명령 경계를 빠르게 찾는 병렬 디코딩을 방해한다. 저자는 애플이 ARM과 aarch64를 설계할 때의 모델링에서 Thumb가 와트당·초당 명령 수 모두에서 손해였다는 점을 근거로, 고성능 영역에서 압축 명령은 설 자리가 없다고 본다.

가장 실무적으로 와닿는 대목은 배열 접근이다. x86의 [ebx + esi*4]나 ARM의 [R0, R1, LSL #2] 같은 주소 지정 방식이 없는 RISC-V에서는 시프트, 덧셈, 메모리 접근으로 명령 세 개가 필요하다. '명령 융합이 해결한다'는 반론에 대해 그는 연속한 세 명령을 융합하는 코어는 존재하지 않으며 조합 폭발 때문에 두 개가 한계라고 못 박는다. 몇 년 뒤에야 SHxADD를 제공하는 Zba 확장이 나와 두 명령으로 줄였지만, 여전히 전용 주소 지정 방식보다 못하고 그마저 선택 사항이다. 저자는 3/4에 달하는 압축 명령 인코딩 공간을 재활용하면 쉽게 개선할 수 있으며, 실제로 퀄컴이 제안하고 시제품까지 만들었으나 채택되지 않았다고 전한다.

'모든 것이 선택'이라는 근본 문제

그가 가장 강하게 지적하는 것은 선택성이다. 그는 RISC-V를 USB-C, RCS 표준에 빗대며, 무엇이든 선택 사항이면 규격을 준수한다는 말이 사실상 무의미해진다고 주장한다. 곱셈도, 나눗셈도, 유저 모드도, 슈퍼바이저 모드도, CSR도, 압축 명령도 모두 선택 사항이다. 옵션을 하나 만들 때마다 구현이 호환되지 않는 두 진영으로 갈라지고, 이를 반복하면 표준의 의미가 흐려진다. Zba·Zbb·Zbc·Zbs로 잘게 나뉜 비트 조작 확장은 그가 보기에 위원회식 설계의 전형이다.

다만 이 글은 어디까지나 한 엔지니어의 주관적 견해이며, 본인도 소속 기업의 입장이 아님을 명시한다. 임베디드와 저수준 관점에 무게가 실려 있어, 오픈 ISA가 열어 준 생태계·라이선스 자유나 커스텀 확장의 이점 같은 다른 축은 다루지 않는다. 그럼에도 실무자에게 주는 시사점은 분명하다. '개방형이라 좋다'는 서사와 '내 워크로드에 맞는 구현인가'는 별개의 질문이라는 점이다. 특정 RISC-V 코어를 검토할 때는 지원 확장의 조합, 인터럽트 처리 비용, 목표 코드 밀도를 개별 구현 단위로 따져 보는 편이 안전하다.

이 뉴스가 유용했나요?

TTJ 코딩클래스 정규반

월급 외 수입,
코딩으로 만들 수 있습니다

17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.

144+실전 강의
17개수익 모델
4.9수강생 평점
정규반 자세히 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.