티스토리 뷰
학교에서 Computer Architeture 수업을 듣는데..
MIPS Architecture로 수업을 했다. (ARM이었으면 더 좋았을텐데..)
참 웃긴게, 나는 수업 듣는 내내 뭔 내용인지 이해를 하지 못했었다..
Booth 알고리즘은 뭐고.. ALU는 뭐고..
무엇보다 내가 왜 저런걸 해야하는건지?? 그냥 XML에 레이아웃 쫙~ 그려서 JAVA로 안드로이드 뙇! 하면 프로그램 하나가 만들어 질텐데..
재미도 없고 지루하기만 하고..
나는 좀 '동기'가 있어야 움직이는 사람인데.. 학교 수업 당시에는 그러한 '동기'가 없었다. 고로 나는 움직이지 않았고.. 수업을 열심히 듣지 않았다.
시간은 흘러..
현업에서 Firmware를 주업으로 하게 되면서, 하드웨어 flow를 이해하는 것이 얼마나 중요한 것인지 깨닫게 되었다.
특히나, '찰나'의 순간도 중요한 '상품화'를 위한 로직을 설계 하게 되면, 최적화는 필수 불가결한 요소이다.
예를 들어, 카메라로 눈을 깜빡이는 순간을 인식하는 하드웨어를 설계한다고 쳐보자. 내가 눈을 깜빡이는데 0.001초가 걸리는데, 이 때 프로세스가 잠시 딴짓을 하느라 처리를 못했다면, 혹은 0.01초 단위밖에 인지를 하지 못한다면 해당 장치는 필요가 없는 것이 된다. 이런 마이크로 이하 단위의 시간을 컨트롤 하는데 최적화는 말하지 않아도 중요하단 것을 알 수 있다.
어떤 페리퍼럴 장치가, 어떤 버스에 연결되고, 어떠한 데이터를 캐쉬에 넣을 것이며(캐쉬 적중률은 어떻게 높일 것이며), Floating 연산을 쓸 것인지, 작은 칩을 써야하는지, Mux를 쓸것인지 시분할을 할것인지 등등
결정할 수 있는 사항은 너무나 많고, 리소스는 한정적이고.. 시간 역시 한정 적이다.
우선 경험이 제일 중요하고, 그 경험을 뒷받침해줄 이론 또한 중요하다.
그래서 내가 아는 ARM 지식을 정리해보고자, 여기에 글을 쓰기로 결심했다.
적고 나니 뭔말을 하는건지 모르겠다.. 일단 걍.. 시작하겠다.
아직 ARM에 대해 잘 모르면 도대체 이게 뭐야? 이럴텐데..
이 강좌를 다 보고 나면 위 그림을 보고 어느 정도 이해할 수 있는 수준이면 좋겠다.
2000년도 초중반쯤에 삼성에서 나온 S3C2440A의 블록다이어그램. 이게 뭔 그림인지 이해한다면, 본 강의를 볼 필요도 없다.
'Development > Firmware & HW' 카테고리의 다른 글
Raspberry PI, USB로 PC와 연결해서 사용하기 (2) | 2021.04.06 |
---|---|
[ARM] CPU, Processor, MCU, Core, SoC (1) | 2015.10.05 |
- Total
- Today
- Yesterday
- jni
- Troubleshooting
- android
- C
- it
- Python
- 음악
- C++
- Visual C++
- AWS
- MFC
- API
- 프로그래밍
- gcc
- jni강좌
- Cloud
- 리눅스
- winapi
- database
- java
- kering
- 안드로이드
- driver
- source
- linux
- NDK
- algorithm
- Quiz
- db
- 드라이버
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |