전체 글 181

2026년 여름, 25살 군인이 그려보는 AI 시대와 미래의 노동

안녕하세요, 한정연입니다.이 글은 2026년 7월 17일 밤, 군 복무 중 개인적인 단상을 녹음한 음성 기록에서 출발했습니다. 2003년생인 저는 현재 한국 나이로 25살, 만으로는 24살의 군인이며 오는 2027년 2월 전역을 앞두고 있습니다.제가 밤 산책을 하며 굳이 이 기록을 남기는 이유는 간단합니다. 우리가 앞으로 살아갈 시대는 과거와 전혀 다른 차원의 변화를 맞이할 것이라 확신하기 때문입니다. 소프트웨어 영역을 넘어 실제 물리적 세계를 움직이는 AI 하드웨어의 출현까지, 거대한 대체가 시작되고 있습니다.사실 대학 2학년을 마치고 군대에 온 준(準) 취업 준비생 입장에서, 이런 거대한 담론을 깊게 파고드는 것이 때로는 미래에 대한 불안감이나 '딴생각'처럼 느껴져 지양하려고도 했습니다. 하지만 세상..

카테고리 없음 2026.07.17

HAQ: Hardware-Aware Automated Quantization with Mixed Precision

https://openaccess.thecvf.com/content_CVPR_2019/papers/Wang_HAQ_Hardware-Aware_Automated_Quantization_With_Mixed_Precision_CVPR_2019_paper.pdf SW적으로 AI 모델의 레이어별 특성을 판단할 때, 타깃 하드웨어(NPU, CPU 등)의 물리적 특성(SRAM Buffer 크기 등)을 반영하여 양자화하는 '소프트웨어 프레임워크(알고리즘)' 연구 배경지식1. 가중치 양자화가 필요한 이유양자화란 -1.5부터 2.3까지 소수점으로 복잡하게 널뛰는 가중치들을, 특정 상수(Scale)로 나누고 반올림해서 -128부터 127 사이의 정수로 맵핑하는 것. 32비트 쓰던 걸 8비트로 줄이니, 가중치 저장 용량이 4..

논문리딩 2026.07.05

[ARM 어셈블리] fp와 sp에 대하여

시스템 개발이나 디버깅을 하다 보면 어셈블리 코드 덤프에서 가장 많이 마주치는 두 레지스터가 있다. 바로 sp (Stack Pointer)와 fp (Frame Pointer)다. 특히 함수가 시작될 때 나오는 아래의 세 줄은 나를 포함한 초보 엔지니어들을 혼란에 빠뜨린다.push {fp, lr}add fp, sp, #4sub sp, sp, #32 "함수가 시작됐는데 왜 fp 주소를 sp에서 4만큼 더했다가 다음에는 다시 sp에서 32를 빼는 걸까? 주소가 커지면 스택을 적게 쓰는 것 아닌가? 왜 더하는 것인가? fp와 sp는 무슨 관계일까?" 이 질문에 답하기 위해, 먼저 sp와 fp가 정확히 무엇을 하는 녀석들인지 개념부터 확실하게 짚고 시작해야 한다. 1. sp와 fp는 무엇인가?(1) sp (Sta..

ARM 2026.06.29

NVMe Overview

https://nvmexpress.org/wp-content/uploads/NVMe_Overview.pdf 1. 들어가며NVM Express®(NVMe™)는 PCI Express® 기반 SSD(Solid-State Device)를 사용하는 엔터프라이즈 및 클라이언트 시스템의 요구사항을 충족하기 위해 설계된 최적화된 고성능 확장형 호스트 컨트롤러 인터페이스이다. 하드디스크 드라이브(HDD) 기술의 한계를 벗어나기 위해 설계된 NVMe는 처음부터 비휘발성 메모리(NVM) 기술을 위해 구축되었다. 이는 오늘날의 NAND 플래시 기술부터 향후 등장할 더 높은 성능의 지속성 메모리(Persistent Memory) 기술에 이르기까지, 비휘발성 메모리로 구축된 저장장치에 효율적으로 접근할 수 있도록 설계되었다. N..

논문리딩 2026.04.27

NVM Express Explained

https://nvmexpress.org/wp-content/uploads/2013/04/NVM_whitepaper.pdf NVMe는 SSD를 위한 전용 고속도로와 같다. 차선(큐)을 수만 개로 늘리고 신호등(절차)을 최소화하여, 데이터가 막힘없이 가장 빠른 속도로 CPU에 도달하게 해주는 기술이다.1. 왜 NVM Express가 필요한가?메인메모리인 DRAM과 하드 드라이브의 가격 대비 성능의 격차가 점차 커지는 상황에서, SSD인 Non-Valotile Memory는 이러한 격차를 메워주는 역할을 하고 있다. 여러 플랫폼에서 PCI Express(PCIe) 연결성의 비중은 지속적으로 증가하는 추세이다. 일례로, Intel® 5000 칩셋은 24개의 PCIe 1세대(Gen1) 레인을 탑재했으나, 이..

논문리딩 2026.04.20

Armv8-A Architecture Overview

3. ARM 아키텍쳐 소개ARM-based Processor 를 잘 다룰 수 있도록 Interface를 설계했는데 이러한 설계를 ARM Architecture라고 한다.ARMv가 같으면 그 시리즈 내에서는 명령어 집합 수준에서 호환이 가능하다.4. ARMv8-A 아키텍처의 주요 기능과 ARMv8-A 기반 프로세서ARMv7-A 는 2004년에 출시되어 32비트 기반의 ARM 아키텍처이다.ARMv8-A 는 2011년에 출시되어 64비트 기반의 ARM 아키텍처이다.5. ARM 프로세서 Family 소개 - Cortex 시리즈ARM 아키텍처의 A시리즈는 고성능 컴퓨팅이 필요할 때, R시리즈는 실시간 처리가 필요할 때, M시리즈는 소형 컨트롤러를 사용할 때 사용된다.6. Register란직접 디버깅을 통해 레지스..

[수강후기] 신입 개발자를 위한 Armv8-A Architecture Overview (저자 직강) - 김동현 (Austin Kim)

전 글인 '시스템 소프트웨어 개발의 모든 것' 수강 후기에 이어 다음 Step의 강의에 대한 수가 후기를 남기려고 한다. 해당 강의는 다음과 같은 흐름으로 진행된다.ARMv8-A 아키텍처 소개Register 소개기본적인 어셈블리 명령어의 형식과 쓰임Exception LevelExceptionAAPCSEL3 : TrustZoneEL2 : Virtualization과 하이퍼바이저메모리 시스템 먼저, 컴퓨터 구조와 운영체제에 대한 기본 배경 지식이 있었기에 이를 기반으로 더욱 효과적으로 ARMv8-A 아키텍처에 대해 학습할 수 있었다. CPU, 캐시, 메인 메모리와 같은 기본적인 컴구 지식과 가상 메모리, 유저모드-커널모드와 같은 운영체제 지식을 모른다면 가볍게라도 먼저 공부하면 효과적인 강의 학습이 될 거 ..

[수강후기] 시스템 소프트웨어 개발의 모든 것 - 시스템 반도체와 전기 자동차 중심 - 김동현 (Austin Kim)

군대에서 열심히 리눅스 커널 분석과 알고리즘 문제 풀이를 지속하던 와중 훈련기간 이라는 이유로 공부를 잠시 멈추게 되면서 번아웃 아닌 번아웃이 온 것 같았다. 내 머릿속을 가득 채운 걱정들은 다음과 같았다. SoC SW 직무가 하는게 그래서 뭐야?지금 내가 리눅스 커널 분석하는게 도움이 되고 있는 거지?내가 이해하고 있는게 맞는 건가?IT 직무는 이미 취업루트 등 피곤할 정도로 정형화된 루트들이 많이 있었는데, 시스템 반도체 SW 는 정말 혼자 무언가를 해 나가는 거에 대한 막막함이 컸다. 물론 전자와 후자를 고르라면 난 후자를 고를 것이지만..! 지금 나에게는 의지할 수 있는 멘토가 필요했다. 리눅스 커널 분석을 열심히 하던 당시 문c블로그를 많이 참고하면서 자연스럽게 Austin Kim 김동현님 유튜..

NVMe.h 분석하기

리눅스 버전은 6.19.3을 사용한다.drivers/nvme/host/nvme.h에서 볼 수 있다. 1. nvme_nsNVMe 사양 (Spec) 을 다룰 때, 네임스페이스 (Namespace) 는 단순히 파이션같은 개념을 넘어 호스트가 독립적으로 명령을 내릴 수 있는 최소 단위의 논리적 블록 저장소이다. 아래에서 보게 될 nvme_ns 구조체는 이러한 네임스페이스를 OS 차원에서 관리하기 위한 모든 정보를 담고 있다. NVMe 네임스페이스 (Namespace) 란, 하나의 NVMe 컨트롤러 내부에 존재하는 논리적 영역이다. 각 네임스페이스는 고유한 NSID (Namespace Identifier) 를 가진다. 각 NS는 독립적인 용량, 블록크기 (512B, 4KB 등), 메타데이터 설정을 가질 수 있다...

OS/Linux Kernel 2026.03.04

NVMe 드라이버 소스 코드 분석 방법

NVMe 드라이버는 양 끝단을 먼저 잡고 가운데를 왕복하면서 좁혀 들어가는 방식으로 보면 훨씬 수월하다. 1. 소스 뷰어와 버전 고정하기먼저 버전 하나를 고정하고 소스뷰어를 고정한다. bootlin elixir linux 소스코드를 참고하여 예를 들어 v6.19 계열을 선택하고 drivers/nvme/host 를 보기로 결정할 수 있다. 2. 바깥 테두리부터 잡기module→PIC→probe 순으로 바깥 테두리부터 잡을 것이다.pci.c 파일 끝부분으로 가서 module_init(nvme_init) ;을 찾는다.nvme_init()이 pci_register_driver(&nvme_driver) 를 호출하는 흐름을 따라가서, static struct pci_driver nvme driver 구조체를 본다...

OS/Linux Kernel 2026.03.03