어제 술을 꽤 많이 마신데다가 아침에 일이 있어서 잠을 좀 못잤더니 머리가 아프다.
데스크탑은 여전히 화면이 나오질 않고, A/S 를 받기 위해선 메인보드를 들어내야 할 것 같은데 너무나도 귀찮다. 내가 왜 이런 짓을 해야하는 생각이 들었고, 데스크탑 관련된 것들을 전부 팔아버리고 15인치급 x86 노트북을 사서 쓸까 하는 생각까지 들고 있다. 연구실 형 한 명이 맥북 프로를 사신 관계로 요새 간간히 맥북 프로를 구경해보고 있는데 역시나 매력적이다.
문제는 그걸 지를만한 여유자금이 있지는 않다는 거…
동기들 중에 벌써 컨퍼런스에 낼 논문을 쓰고 있는 사람들이 나오기 시작했다. 난 아직 실험도 채 다 못했는데… 정확하겐 아이디어 검증조차 –;;
왠지 뒤쳐지고 있는 것 같아서 조급해진다.
HCI 수업에서 벌써 과제가 하나 나왔다. 이미지를 읽어서 특정 각도만큼 돌리는 프로그램을 작성하는 것등 3D rotation 과 관련된 것들인데, 오랫만에 코드를 짜보니 재밌다. 물론 짜야했던 코드 양이 많지 않았고 (7줄 남짓; ) 에러 없이 한 번에 구현을 성공해서 더 재밌었는지도 모르겠다. 한동안 프로그래밍과 멀어져 있었는데 아직 녹슬지는 않은 거 같아서 다행이다.
임베디드 소프트웨어 수업과 내장형 시스템 수업에서는 ARM 의 conditional execution[1] 과 관련된 내용을 들었는데, 참 흥미롭다. Computer Architecture 상에서 Conditional branch 가 일어나게 되면 pipeline hazard 가 발생하게 되고, 실제 성능에 큰 악영향을 끼치게 되는데 conditional execution 을 통해 분기를 줄이는 동시에 더 적은 양의 코드로 똑같은 동작을 수행할 수 있도록 만드는 기법이 참 재밌어 보인다.
그 외에도 Havard Architecure 와 폰노이만 아키텍쳐의 차이 등 어설프게 알고 있던 내용들이 좀 정리되는 것 같어서 나름 재밌다. 컴퓨터 아키텍쳐에 관한 내 짧은 지식을 가지고 상상해봤던 내용들이 실제 구현되어 있는 것들과 나름 비슷하다는 사실이 너무나도 신기하다. 이 쪽으로 전공을 했어도 재밌었을 거 같다는 생각이 들기 시작한다.
그나저나 내장형 시스템이랑 임베디드 소프트웨어 이 두 과목이 모두 ARM 수업이다 보니 내용이 많이 겹친다. 월요일에 듣고 수요일에 리뷰 받는 기분이랄까 -_-; 뭐 엄한 시간표를 짠 대신 약간의 보상이라고 생각해야겠다.
그냥 심심해서 잡담겸 포스트… 오늘의 수다 끝!!!
[1] Conditional execution 의 예를 들어보면 아래와 같음.
pseudo code:
if( R0 == 0 )
R1 = 1;
else
R2 = 2;
Re=3;
Without conditional execution
cmp r0, 0
jnz IDX_ELSE
mov r1, #1
jmp IDX_END
IDX_ELSE: mov r2, #2
IDX_END: mov r3, #3
With conditional execution
cmp r0,0
movz r1, #1
movnz r2, #2
mov r3, #3