Computer Science
탄탄한 기반 실력을 위한
전공과 이론 지식 모음
Today I Learned!
배웠으면 기록을 해야지
TIL 사진
Flutter 사진
Flutter로 모바일까지
거꾸로캠퍼스 코딩랩 Flutter 앱개발 강사
스파르타코딩클럽 즉문즉답 튜터
카카오테크캠퍼스 3기 학습코치
프로필 사진
박성민
임베디드 세계에
발을 들인 박치기 공룡
임베디드 사진
EMBEDDED SYSTEM
임베디드 SW와 HW, 이론부터 실전까지
ALGORITHM
알고리즘 해결 전략 기록
🎓
중앙대학교 소프트웨어학부
텔레칩스 차량용 임베디드 스쿨 3기
애플 개발자 아카데미 1기
깃허브 사진
GitHub
프로젝트 모아보기
Instagram
인스타그램 사진

TIL

[251021] Day 71 - 겨울이 온 것 같아요

sm_amoled 2025. 10. 22. 00:01

들어가며

날이 너무 춥다. 장판 틀었다. 이게 옥탑방의 추위인가 싶기도 하다. 방한이 안되어서 그런건진 몰라도 벌써부터 바닥이 챱챱한게 얼어죽겠네. 센터에 최대한 오래 남아있어야겠다.

 

오늘의 키워드

ARM Processor Architecture Introduction

월요일부터 ARM Processor 아키텍처에 대해서 공부하고 있다. 그리고 이왕 적는거 시리즈로 한 번 남겨보려고 한다. 거의 5-6년 전에 공부했던 내용들이라 가물가물하긴 한데, 내 기본기로 한 번 부딪혀보면서 해내봐야지.

[ARM] ARM Processor Architcture - 0 : Introduction

 

[ARM] ARM Processor Architcture - 0 : Introduction

개인적으로 C언어를 작성하고 컴퓨터에 대한 로우레벨을 이해하려고 할 때 가장 크게 도움이 되었던 이론이 컴퓨터구조 였다고 생각된다. 수업을 들으면서 내 머릿속에서는 ‘아, C언어에서 함

etst.tistory.com

 

이걸 다시 펼치니깐 생각보다 수업에서 나온 키워드가 눈에 자주 보이는 것 같아서 신기하다. 정말 여기에 ARM의 정수가 담겨있는게 아닌가 하는 생각이 든다. 빠르게 마무리해두고 본격적으로 진행해봐야지. 아래는 위 게시글에서 다룬 키워드들에 대한 짧은 코멘트이다.

RISC 와 CISC

RISC가 단순한 명령어 / CISC가 복잡한 명령어로 구성된 아키텍처라고만 알고있었다. 그런데 막상 공부해보니 인텔의 CPU가 CISC이긴 하지만 내부적으로는 RISC 처럼 동작한다고 한다. 조금 더 팩트체크를 해봐야 하긴 하지만, 파이프라이닝과 HW 설계 등을 고려하면 RISC 방식이 더 우수한가봐. 하위호환성 문제 때문에 CISC를 포기하지 못하고 있다고 하는데, 그만큼 RISC가 더 효율적인 방식인가보다.

Memory Mapped I/O

나는 메모리 Mapped I/O가 메인 메모리의 특정 주소를 I/O 장치가 할당받아 점유하고 있고, CPU가 해당 메모리 주소에 값을 쓰면 메인 메모리에서 값을 읽어서 처리하는 방식이라고 지금까지 알고있었다. 그런데 그게 아니라 가상주소를 사용하는 거였고, 해당 주소로 값을 쓰거나 읽는 동작을 하면 Address Decoder가 이걸 I/O 장치로 바꿔서 전달해주고, I/O 장치가 가진 레지스터에 값을 읽거나 쓰는 동작을 수행하는 방식이였다. 나는 진짜로 몰랐다.

I/O Mapped I/O 방식도 있고, 이게 여전히 Intel 에서는 사용하는 방식이라는 것도 놀라웠다.

Bridge와 AMBA BUS

STMCubeIDE에서 설정을 건드리다보면 APB, AHB 같은 키워드들을 자주 볼 수 있었는데 지금까지는 그냥 키워드가 보여도 크게 관심을 가지지 않았었다. 근데 이제는 해당 키워드들이 데이터 버스를 의미한다는 걸 알게됐다. 이론을 공부했는데 그게 바로바로 눈에 들어오기 시작하니깐 참 좋은 것 같다. ㅋㅋㅋ 약간 공부한 보람을 바로 느낌.

SRAM과 DRAM IN MCU

내가 사용하는 보드에서 아무리 찾아봐도 메인 메모리를 찾을 수 없었는데, 당연한거였음. STM32F429 칩 내에 메인메모리가 포함되어있다. 그런데 이게 DRAM이 아니라 SRAM이다. (나는 메인메모리는 무조건 DRAM인 줄 알았다. 안그럴수도 있구나…) 이 점이 약간 충격적이라 위 게시글에 함께 정리해뒀다.

PCI, PCIe

라는게 이런 의미라는걸 이번에 처음 알았다. 그냥 SATA 연결하는 포트 이름 정도로만 알고 있었는데 주변장치를 빠르게 동작하도록 연결하는 express line 일 줄이야. 개발 보드에는 이게 포함되어 있지 않아서 아쉽긴 한데, 그만큼 고성능의 I/O 장비가 없기도 하니깐 ㅋㅋㅎ

320x100