90년대 컴퓨터 공학 이야기 (18) — 비트와 버스
쥐어 짜던 기억들
요새 LLM inference 관련해서 다양한 quantization 이야기들을 공부하다 보니… 실수와 정수, fixed point vs floating point 도 거대한 주제 중 하나이겠지만, 거기에 관련해서는 구현하고 손으로 계산하느라 고생했던 기억들만 있고, 조각조각난 몇몇 기억들 중에서 비트와 버스에 대한 이야기들을 모아 본다.
VLB ( Vesa Local Bus ) / ISA
부모님 지원으로 입학 후 구입한 컴퓨터는 486, 베사로칼 이라는 키워드를 가지고 팔리던 물건이었다. 펜티엄, 586 이라는 게 나오기 직전이었고, 빅타워라 꽤 묵직한 것을 학부 졸업할 때까지 썼던 기억이다. 바퀴도 달려서 하숙집을 여럿 옮겨 다니는 동안 그래도 꾸준히 잘 따라와 주었고, MS-DOS 부터 Windows95 까지 여러 게임들과 각종 과제들을 같이 했던 기억이 있다.
부품을 사서 넣을 거 아니면 얼마나 들여다 볼 일이 있었겠냐마는, 과제 중 하나가 ISA bus 에서 I/O control 을 해서 신호등을 만들어 붙이는 과제였고, address, data bus 를 한땀한땀 들여다 본 경험을 하게 된다. 남땜 혹은 wiring 되어 있는 것들을 카드에 붙여서 address map 되어 있는 곳에 이것저것 해서 불을 껐다 켰다 하는 것을 하게 되고, 거의 반 공개 자취방에 있던, 게다가 커서 공간이 넉넉했던 내 컴퓨터는 여러 사람들의 과제에 희생되었다. 합선이 되는 경우는 빵판에서의 경쾌한 부저음 대신 살짝 타는 냄새들이 났더랬다.
Bitfield , Union / bit vs byte
https://en.wikipedia.org/wiki/Bit_field
Embedded 쪽을 주력으로 쥐어 짜던(?) 이 시기에 C 언어로는 char / int / long 등을 가지고 고민을 많이 했더랬다. footprint size가 민감했었고 한 푼이라도 아끼자 싶어서 unsigned / signed 가지고도 꽤나 신경 썼었다. 이후에는 Graphics 과목에서 RGB/YGrGb 등으로 찐하게 다룬 것이 과제의 마지막으로 기억되고 있다. 이후 조교 시절, 프로젝트를 진행하던 후배 녀석이 아마도 PDA 에서 돌아가는 지하철 역 안내를 해 주는 서비스를 만들었는데, “형 지하철 역이 256개가 넘어서 8bit 에 안 심어져요 어떻게 할까요?” 라며 투덜거리던 기억이 난다. short int 로 풀었는지, 몇몇 역을 소리소문없이 뺐는지 그 이후의 기억이 없다… — a
이후 20+년간 서비스들을 만지면서는 어지간해서는 쓸 일이 없었더랬다. 다른 언어들도 지원하는지 아닌지 관심도 적고, Unicode 라는 게 나오면서부터는 문자당 두어바이트가 뭐 어때서… 였다. 한편으로는 다 부질 없더라 라고 생각하던 무렵, 구글에서 인프라쪽에 과제를 하면서는 ‘이미 잘’ 최선을 다해서 나눠 쓰고 있더라는 것을 보고 신기해 했던 기억이다. 했던 과제 한두개도 비트 수 모아서 packing 해서 한 바이트씩 아끼는 것들이었는데, 이게 구글 스케일에서는 무시무시한 숫자들이 되었더랬다. 요새 AI / LLM 시대에는 비슷한 문제를 꽤 여러 군데에서 이 기법들이 고민되고 있는 듯한데… quantization / 손실 압축은 quality 가 챙겨져야 하는 거니까 다른 데에서 이야기하도록 하자..
Bus width
스마트폰을 만지던 시절, schema 를 보면서 혹은 회로도에서 언제나 신경이 쓰이는 건 평행으로 펼쳐져 있던 bus 였다. 일단 보기 복잡하게 되어 있을 수밖에 없고, 같은 고민들이 칩 안에서도 여러 개를 쌓을 때 있었을 것이다. 특히 LCD 로 펼쳐지는 버스 필름은 언제나 최우선 보호 대상이었다. 세월이 흘러 가며 DB-25 / RS-232 시리얼은 USB 1.0, 2.0 으로 대체되었는데, 아직도 쉽게 이해가 안 가는 것이 선 두어개로 bandwidth 높아지고 양방향에 충전까지라니…
게임 회사에서 전용 단말기를 만들겠다고 하던 선배랑 이런 저런 이야기 때 video 끌어 오려면 1024-bit width data 버스가 필요하다고 했었고, 그게 물리적으로 가당키나 한 거냐, 셋톱박스 정도의 폼팩터면 괜찮다. 등등… 이후 비슷한 이야기는 datacenter 에서 시리얼을 극대화 시키는 CXL 과 실제 1024-bit width를 구현한 HBM 으로 다시 만나게 되는 것으로 보면.. 지금 생각해 보면 꽤나 건전하고 생산적인 대화였던 뒤늦은 기억이다. 거의 30년이 지났지만 여전히 32bit 가 주력인 걸 보면 신기하기도 하다.
ps. 다음 중 서울대학교 컴퓨터공학과/부 마스코트는 ?
바쿠스 — X
구글 검색 실패
2. “알고” — ?
3. 없다. — X
4. 영일이 — O
https://www.seoul.co.kr/news/newsView.php?id=19990224022002
석사 졸업하던 즈음에 학과에서 마스코트를 만든다고 해서 잠깐 본 기억이 있는데…. 찾을 수가 없다… 마스코트 혹은 당시 사이버캐릭터라 불렸던 거 같고. 흑백의 격자 무늬 유니폼에 엄지척 기억인데… 조금 부끄러웠던 거 같은데… 다른 과 선후배들도 그럴까..? ㅎㅎ
댓글을 작성해보세요.