IBM 5100


최초로 '시장에 출시된' 휴대용 컴퓨터.
파일:1280px-IBM 5100 - MfK Bern.jpg
독일향 제품으로 앰블렘이 없고 Portable Computer 프린팅이 탈락된, BASIC 모델의 모습이다. Communications Adapter가 달려 있다.


당시 IBM에서 뿌린 광고


개요

IBM 51001975년 9월 IBM에서 세상에 내놓은 휴대용 컴퓨터이다. 역사상 최초로 '시장에 출시된' 휴대용 컴퓨터라는 타이틀을 갖고 있다. 현재 스미소니언 박물관에 전시되어 있는, 1973년에 IBM 팔로 알토 연구소에서 공개한 프로토타입인 SCAMP(Special Computer APL Machine Portable)의 발전 버전이다.[1]

출시 가격은 12개의 사양 중에서 선택 가능했으며, 은 16KB부터 64KB까지, 언어는 BASIC, APL 또는 양쪽 모두를 탑재할 수 있었다. APL+16KB는 $8,975, BASIC+16KB는 $9,975, 양쪽 모두+16KB는 $10,975였으며, 16KB 램 모듈 하나당 $3,000로 추가할 수 있었다. 옵션으로는 내부의 Expansion Feature 슬롯에 끼울 수 있는 Communications Adapter[2]와 Serial I/O Adapter[3]가 있었다.

프로세서는 IBM PALM(Put All Logic in Microcode)이며, 클럭은 1.9MHz. 램은 16KB부터 단계적으로 16KB씩, 최대 64KB까지 확장이 가능하였다. 롬은 PALM에 18KB, APL 96KB, BASIC 32KB이였다. 디스플레이에는 NEC와 미확인된 회사의 5인치 CRT모니터가 사용되었다. 이것은 디스플레이 카드가 컨트롤하며, 가로 64문자*세로 16줄의 문자를 출력이 가능했고, 콘트라스트 조절과 화면 반전 기능을 제공했다. 외부 출력은 BNC케이블을 통하여 NTSC로 송신되며, TV를 사용하여 화면에 표시되는 내용과 같은 정보를 이렇게 볼 수 있다.[4]저장소로는 QIC(Quarter-inch Cartridge)규격의 204KB까지 저장 가능한 DC300 자기 테이프 드라이브를 장착하였다.[5]

당시 기준으로는 혁신적인 컴퓨터였다. 프로그램을 배우지 않아도 사용 가능하도록 Problem-Solver Libraries라고 일컬어지는 것이 동봉되었는데, BASIC에는 Statistics, Business, Mathematics의 3개로 분류된 애플리케이션들이 포함되어 있었고, APL또한 비슷한 것이 기본적으로 포함되어 있었다. 이것들은 대화형 루틴으로, 프로그램과의 문답을 통해 초보자도 쉽게 컴퓨터를 다룰 수 있는 이점을 가지고 있었다.

하지만, 내장 배터리가 없어서 아웃렛 없이는 쓸 수가 없었다. BASIC상에서 기본 어플리케이션은 16KB로도 실행이 가능했지만[6], 프로그램과 그것이 다루는 데이터를 모두 램에 올려놓고 사용하기 때문에 데이터가 많아지면 램이 부족해졌으며, 동봉된 APL 기본 어플리케이션은 심지어 최저 32KB부터 요구하기도 했다. 램을 업그레이드할 수 있었으나, 1975년 기준으로 $3000씩이나 주고 16KB를 추가할 수 있는 사람은 많지 않았기 때문에 시장에는 나왔지만 실패하고 말았다. (하지만 이 행보는 후속 기종인 5110과 5120, 그리고 IBM PC로 이어진다)

여기서 (광고이긴 하지만) IBM 5100이 실제로 어떻게 쓰였는지에 대해 볼 수 있다.

2014년 8월 5일, 국내에 실제로 샀다고 인증한 사람이 나타났다.사용 가능한 상태로 고쳤다고 한다.

TV 방송에도 나왔다.그리고 그 사람은 답답한 나머지 이 문서를 만들고 있다

외형

  • IBM 5100의 하우징은 굉장히 다양하다.
초기.JPG 후기.jpg
대표적으로 왼쪽 사진과 같이 통기구가 없는 초기형이 있으며, 다음과 같이 통기구가 있는, IBM 5110이 발매된 이후 같은 금형으로 하우징을 찍어냈던 후기형이 있다.
엠블렘 유.jpg 엠블렘 무.JPG
메탈 엠블렘이 있는 것과, 메탈 엠블렘이 없는 것이 있다. 있는 게 간지난다
  • 아래 사진과 같이 IBM 5100의 하우징에 IBM 5110을 구겨 넣은 것이 존재한다. 이때문에 유지보수하기가 혼란스럽다.
5110.jpg 키보드가 IBM 5110의 배색과 같으며, 에러 코드 또한 5110과 같다.
  • 겉의 단축키 일람표와 키보드로 Communications Adapter의 장착 여부를 확인 가능하다. 키보드의 경우 키캡 밑에 영문이 각인된 경우는 BASIC, 키캡 위에 수학 기호가 있는 경우는 APL이라고 볼 수 있다. 그리고 겉의 스위치가 일렬로 4개인 경우 양쪽 언어를 지원한다고 보면 된다.
BASIC-APL.jpg 사진처럼 일람표에 APL, BASIC이 같이 표기되어 있으면 둘 다 지원한다.
BASIC.JPG BASIC이나 APL만 지원될 경우 해당 언어가 적힌 한 줄이 있다.
COMM.jpg 또 이것과 같이 Comm.이 적힌 경우는 Communications Adapter가 장착된 여부이다.

하드웨어 특성

로직 구성

IBM 5100의 로직 대부분은 'Dutchess'라고 불리는 TTL 호환의 '134-gate bipolar gate array' 를 사용한다. 각각의 칩은 3-input이 있는 NAND gate 60개와, 40개의 4-input NAND gate, 그리고 2-input의 NOR off-chip driver 34개가 있다. Propogation delay는 10ns이고, IBM 커스텀의 정사각형 금속 외피로 덮여 있다.

돈을 아낌없이 들여 전해 캐패시터,[7]는 전원부와 AC 박스에만 있는 것으로 확인되며, 로직의 대부분은 마이카, 필름, 탄탈 캐패시터따위의 솔리드 캐패시터로 구성되어 있다. 이외에도 길쭉한 껌 모양의 부품들이 있으나 정확한 것은 불명. 트랜지스터는 게르마늄으로 추정되지만, 부품 전부가 IBM 내부 번호(in-house number)로 이루어져 있어 정확한 것은 애석하게도 알기 어렵다. 하지만 일부 부품 번호들은 이곳이곳에서 확인이 가능하다.

Languages

C옵션을 가진 5100에 한하여, 프론트 패널에 달린 스위치로 ROS의 접근 영역을 달리하여 BASIC과 APL을 둘 다 사용할 수 있었다. 이때, 언어 스위치를 조작 후 리부팅을 필히 해야 했다.

5100의 PALM프로세서는 기존의 CPU와는 조금 달라, 프로세서에 자체 명령어를 내장시키는 대신, 정교한 '가상 머신'을 위한 lauguage interpreter가 내장되어 있었다. 이 조치는 자체 명령어를 내장시키기 위한 ROS공간 절약과 속도를 올리기 위해서였다. APL microcode는 System/360을 에뮬레이트하는 한편, BASIC microcode는 System/3을 에뮬레이트한다.

APL interpreter는 APLSV로부터 파생되었다.

PALM Processor

IBM 5100은 마이크로코드를 에뮬레이트하는 board-level microprocessor인 PALM를 사용하며, IBM의 문서에서는 'controller'라고 표현되었다. 이 보드는 13개의 정사각형 metal-can칩, 5개의 DIP칩과 한 개의 둥근 metal-can칩을 포함한다.

PALM은 16비트 vertical microinstruction을 사용하며, 각 microinstruction의 실행 속도는 평균 약 1.75μs 였다.

Microinstruction은 16비트 general-purpose register를 직접적으로 참조할 수 있었다. Register zero는 microinstruction pointer로서, program counter로 알려져 있다. 4-bank의 register가 있었고, 빠른 interrupt bank의 switching을 위하여 interrupt level당 bank 하나씩을 가졌다. 이 4-bank의 register는 RAM(Read/Write Storage)의 첫 128바이트를 addressing 할 수 있었다. (따라서 메모리의 첫 128바이트는 유저가 사용할 수 없었다)

Interrupt종류는 3개가 있었기 때문에, 0부터 3까지의 processor level이 있었고, 수준 0는 interrupt가 없을 때 실행되었다. 각각의 수준은 고유의 program counter을 갖추고 있어, interrupt vector의 개념은 존재하지 않았다. 프로세서는 주어진 수준이 활성화된 상태이고, 더 높은 수준이 활성화되지 않는 한 계속 그 수준으로 동작하였다.

Register가 16비트의 대역폭을 가지고 있었고, PALM이 약간의 16비트 산술과 논리 동작을 지원했음에도 불구하고, ALU는 8비트의 대역폭을 가지고 있었다.

프로세서는 16비트의 address bus를 가지고 있었고, 메모리는 최대 64KB의 용량을 direct-addressing하기 위해 byte-addressing이 가능했다. 메모리의 각각의 바이트는 parity bit를 가지고 있어, 메모리의 data bus는 18비트였다.

Read/Write Storage

RAM은 1쌍에서 4쌍까지의 보드를 장착할 수 있었으며, NMOS RAM과 separate bipolar driver와 sense amplifier을 사용하여 보드 하나당 8KB를 저장 가능했다. The Roberson의 아티클에서는 메모리가 1Kb MOSFET RAM칩을 사용했다고 보고했으나, 사실 2Kb칩을 사용한 것으로 보여진다. 각각의 보드는 4개의 칩을 포함하는 9개의 램 모듈로 이루어져 있었다. Access time은 대략 300ns정도였고, cycle time은 450ns 정도였다.

8KB카드는 'Snoopy', 16KB카드는 'Barton'이라 불렀고, 후속 기종인 IBM 5110은 다른 모듈들을 위해 한 보드 당 16KB를 저장 가능했다.

789.jpg

Read Only Storage

5100에는 세 가지 종류의 ROS가 있었다.

Control ROS는 PALM프로세서의 일부로, microinstruction을 디코딩하기 위해 사용되었다.

Executable ROS[8]는 프로세서에 의해 직접 address가 가능했으며, 바로 실행시킬 수 있는 microinstruction을 포함하고 있었다. 16K*18개의 진단과 부팅 시 시스템 체크를 위한 마이크로코드, BASIC을 위한 가상 머신 인터프리터 등이 있다. 또 다른 16K*18개의 공간은 APL을 위한 가상 머신 인터프리터가 있었다.

Exe.jpg


Non-executable ROS[9]는 프로세서가 I/O 디바이스로 간주하고 액세스했으며, BASIC과 APL interpreter을 내장하고 있었다. 48Kb(Kbits)를 각각 저장 가능한 n-channel MOSFET을 사용하고, 액세스 시간은 2μs정도였다.

Non-executable ROS는 다시 종류가 3가지로 나뉘는데,

 - Common ROS, ROS 컨트롤 모듈에 있으며, 18KB.
 - BASIC ROS, ROS 모듈로 따로 장착되어 있으며, 32KB.
 - APL ROS, ROS 모듈 2개+반 개로 장착되어 있으며, 96KB.
456.jpg

Display

IBM 5100은 가로 64 문자 16줄을 출력 가능한 5인치 CRT디스플레이를 갖추고 있었다. 문자가 상당히 작았고, 모여 있으면 빽빽했기 때문에, IBM은 화면의 반을 기준으로 왼쪽 32글자, 오른쪽 32글자, 그리고 모든 64글자를 선택할 수 있는 스위치를 두어 'L32-64-R32'라는 마킹을 해 놓았다. 32글자를 출력하면 글자 크기는 커지지 않으며, 1칸씩 총 32칸만큼의 공백이 32글자 사이사이에 생긴다.

일반적으로, 디스플레이되는 정보는 메인 메모리의 0x0200부터 0x05ff까지의 주소를 이용한다. 그리고, 메모리의 첫 512바이트인 0x0000부터 0x01ff를 16진수로 출력할 수 있는 스위치가 프론트 패널에 있었으며, 이것은 주로 진단이나(메모리 크기 등) processor register을 확인하는 목적으로 쓰였다.

디스플레이 컨트롤러[10]는 직접적 메모리 접근(DMA, Direct Memory Access)을 사용하는 5100에서의 유일한 장비였다. IBM은 이것을 'Cycle-stealing'이라고 불렀다. 디스플레이에 표시되는 정보는 그대로 메모리에 있어서, microcode는 연산 중에 좀 더 많은 메모리 대역을 얻기 위하여 디스플레이를 끌 수 있었다.

I5disp.jpg
Display.jpg

Mass Storage

대용량 저장 장치는 QIC(Quarter-Inch Cartridge)규격을 사용한 DC300 데이터 테이프를 사용하였고, 최대 204KB를 저장할 수 있었다. BASIC 프로그램, APL 워크스페이스, 그리고 데이터를 저장할 수 있었다.

확장 장비 및 액세서리

확장 장비에는 132컬럼, 초당 80문자를 인쇄 가능한 IBM 5103 Dot matrix Printer와 IBM 5106 Auxiliary Tape Unit이 있었다. 또, 추가금을 내고 내부 A1보드의 Expansion Feature 슬롯에 Communications Adapter와 Serial I/O Adapter를 장착 가능하였다.

핸들 추가 와 휴대용 케이스를 옵션으로 추가 가능하였다.

IBM 5100에 관한 토막정보들

  • IBM 5100은 베일에 쌓인 것이 많은 존재이다. 대표적으로 IBM 독자 사양의 프로그래밍 언어가 수록되어 있음에도 불구하고 일반 사용자에겐 해당 사양이 알려져 있지 않다. 또한 서비스 센터에 보급되는 메인터넌스 매뉴얼에도 수록되지 않은 에러코드가 종종 있다.[11]IBM이 미친 거 같아요!
  • 어렵게 구한 IBM 5100이 소제되어있지 않다면, 원래 모듈을 받치는 폼(foam)이였을듯한 열화된 검은색 스펀지와 맞닥뜨리게 될 것이다. 끈끈하며 검은색 물질을 오만군데 묻히고 다니고, 비누로도 씻기 힘드므로[12] 물티슈를 많이 들여 닦아낸 후 다른 스펀지로 교체하도록 하자. 이 작업은 여기에서 확인 가능하다.
  • IBM 5106 Auxiliary Tape Drive의 경우 구입에 주의가 필요하다. 아래 사진과 같이 2개의 육면체 덩어리가 붙어있어야 한다. 한 개가 터미네이터인데, 없으면 인식을 못 한다.[13]
5106.JPG

트러블슈팅

  • 당신이 만약 IBM 5100을 소유하고 있다면, 메인터넌스 매뉴얼은 필수불가결한 존재이다. 하단에 bring up diagnostic시의 에러 코드에 대해 적어놓았다. 참고하자.
   A - Bus in bit test
   AB - Op code test
   ABC - Read/write storage-ROS switching test
   ABCD - Interrupt 1, 2, and 3 tests
   ABCDE - Device address test
   ABCDEF - Bus out test (all devices)
   ABCDEFG - Stuck key test
   ABCDEFGH - Storage test (0600 to end)
   ABCDEFGHI - ROS content and CRC test
   ABCDEFGHIJ - ROS address read back test
   ABCDEFGHIJK - Bring up complete
   LOAD 0 - BASIC is ready
   CLEAR WS - APL is ready
   *Appendix (ROS content w/ sequence number and ROS card)
   10~15 - BASIC ROS
   20~24 - APL ROS 1
   25~29 - APL ROS 2
   2A~2F - APL ROS 3
   16~18 - ROS Adapter
  • IBM SLT카드와 대부분의 부품은 내구성이 아주 뛰어난 반면 아이러니하게도 IBM 5100의 에러는 대부분 접촉 불량에서 기인한다. 먼저, Process Check LED에 불이 들어올 경우 모든 카드의 결합을 먼저 확인하자. BW-100 접점부활제가 발군의 성능을 보여주므로 추천한다.
Error 10 07
  • 오른쪽 사진과 같이휴대폰 케이스에 신경쓰면 지는 거다! '10 07'의 경우도 굉장히 빈번하게 나타나는 에러이다. 이것은 Non-executable ROS의 접촉 불량에서 기인하는 것으로 BASIC이나 APL인터프리터를 불러오지 못 했다는 뜻이다.[14] 의문인 것은 다른 모듈의 연결이 모두 정상이여도 유독 이 모듈의 접촉 불량만 고질적이라는 것이다. 접점 부활제를 골고루 흘러내리게 뿌린 후 몇 번 탈착해보자.
테이프 스토퍼
  • IBM 5100의 테이프 드라이브에는 테이브를 잡아주는 고무로 된 스토퍼가 있다. 하지만 이것이 시간이 지나며 열화되는 현상이 나타나므로, 아래 사진처럼 고무판을 오려 자작하거나, DANCO사의 00 Flat Washer 1/2인치를 사용하면 된다. (링크는 타사의 물건이다) 이것이 빠지면 이렇게 테이프를 손으로 잡고 써야 할 지도 모른다.
  • IBM 5100의 테이프 모터의 베어링이 열화되면서 굉음을 내는 현상이 발생한다. 베어링을[15] 교체해 주도록 하자. 오일링은 미싱 오일이 좋다.
  • 램 모듈이 너무 차가워질 경우 제대로 작동하지 못하는 현상이 있다. 실온에 잠시 두거나 본체를 가동시켜 가열되도록 하자버블 메모리인가

트리비아

존 티토와 IBM 5100

2000년 11월, 한 인터넷 게시판에 자신이 1998년 출생 미국 군인인 존 티토라고 밝힌 사람이 2036년의 미래에선 이미 로스트 테크놀로지가 된, 밝혀지지 않은 기능이 담긴 IBM 5100을 구하러 1975년으로 이동한 후, 1998년과 2000년에 차례로 들렀다고 주장한 바 있다.루리웹에 인증한 사람이 98년생이랬는데

당시 IBM 5100의 숨겨진 기능이 있다고 한 걸 사람들은 흘려넘겼으나, 나중에 당시 엔지니어가 사실이라고 답했던 적이 있다.[16]

서브컬쳐

PC와 모바일로 발매된 Steins;Gate시리즈에서는 모니터와 스위치 등의 레이아웃이 바뀐 채레이아웃이 바뀌면 공간이 안 나오는데 IBN 5100이 작품 전개의 주요 요소가 되기도 한다.

이후 제작된 총명예지의 코그니티브 컴퓨팅 에서는 IBM과 라이센스를 맺었는지 IBM 5100이 정상적으로 나온다. 여기서는 IBM 5100을 정식으로 소개하고 있는데, 이곳에 시쿠라 치요마루와 일본 IBM 이사 모리모토 노리시게와의 대담이 실려 있다. 다른 페이지인 여기의 IBM 5100은 일본의 한 사람이 개인적으로 구입한 것이다.[17]

각주

  1. 이 SCAMP 개발자에 대한 인터뷰 내용은 여기의 26쪽인 PC World 1983년 10월호에서 찾아볼 수 있으며, SCAMP에 관한 다른 정보도 같이 실려 있다. 일부 번역된 서문은 여기서 볼 수 있다.
  2. 동년 9월에 발표되었다. EBCDIC과 EBCD프로토콜을 사용하며, IBM 2741과 같은 터미널을 사용하는 메인프레임 장비의 자원을 사용할 수 있었다. 이 기능은 테이프 드라이브에서 프로그램을 불러와 사용 가능하였다.
  3. 일반적인 RS-232 통신을 지원하는 듯 하나 실제 장착된 사진이나 관련 자료가 부족하다
  4. 다만 내장 모니터에서 가능했던 화면 반전은 되지 않는다. 주의.
  5. 그러나 DC6150 테이프에서도 데이터를 정상적으로 읽고 쓸 수 있는 것으로 보아 규격만 같으면 되는 듯 하다. 저장 용량은 동일한 듯.
  6. BASIC의 경우, 일단 부팅 후엔 램디스크처럼 램에 프로그램 파일을 복사하는데, 이것이 4KB를 차지한다. 따라서 램이 16KB일 경우 유저가 순수하게 쓸 수 있는 공간은 12KB(정확히 12001Byte)에 불과했다.
  7. 그것도 심지어 스프라그-말로리 제품을 사용하였다! 덕분에 40년이 지난 지금도 12V에서 12.1V라는 아주 정확한 전압이 나오는 경이적인 모습을 보여준다. 국산 MSX나 IBM호환 PC들의 파워 전압이 많이 어긋나 있는 것을 보면 대단한 수준.
  8. 사진은 BASIC만의 Executable ROS이다. APL은 왼쪽에 반 장이 추가된다.
  9. 사진은 BASIC만의 Non-executable ROS이다. APL은 오른쪽 반 장과 추가 한 장으로 구성되어 있다.
  10. 이 컨트롤러에는 리비전이 두 개 있다. 하단 사진처럼 메탈 칩 몇 개가 TTL칩들로 변경된 것이 있다.
  11. 현재, IBM 5100 기준으로 수록되지 않은 에러 코드(사실, bring up diagnostic 도중의 체크포인트에 해당한다. 하지만 어디에 문제가 있는지에 대한 에러 코드 역할도 가능하다.)는 여기의 동영상과 여기의 페이지에서 확인 가능하다. 하지만, 후일 이 에러 코드는 기존에 구글에서 검색되지 않았던 IBM 5110의 메인터넌스 매뉴얼에서 확인이 가능했고, 같은 내부 구조를 가진 IBM 5120의 bring up diagnostic이 찍혀 있는 영상에서도 나타나는 것(다만 영상에서는 정상적으로 통과된다) 으로 보아 IBM 5100 메인터넌스 매뉴얼에 수록되지 않은 에러라는 것은 존재하지 않고, 다만 의문의 증상을 발생시킨 5100이 내부만 5110으로 교체된 것이라는 잠정적 결론이 내려졌다.
  12. 당시 인증한 사람이 분해했을 때 입고 있던 흰색 티셔츠에 폼이 묻었는데, 이것은 1년 넘게 지났는데도 묻어있다고 한다.
  13. 단, IBM 5103 Dot Matrix Printer의 경우 자체 내장되어있으므로 원래부터 없다.
  14. Bring up diagnostic시 IBM 5100은 Non-executable ROS의 구역을 순차적으로 체크하게 된다. 이때, 최초 구역인 10의 07에서 접촉 불량으로 단락되어 액세스가 되지 않는다면, 그 구역에서 멈춘다. 이것으로 해당 구역에 문제가 있다는 사실을 알 수 있으며, 경우에 따라서는 10 08, 10 09등의 메시지가 나타나는데, 이것 또한 해당 구역의 액세스가 되지 않는다는 얘기이다. IBM 5100의 부팅에 한 번이라도 성공한 이후 이 메시지가 나타나면 접촉 불량일 확률이 높다.(단, APL의 경우 메시지가 다르다)
  15. 큰 베어링은 R-4 ZZ(오지리널 파츠는 Koyo사의 EE11/2 ZZ 혹은 NSK사의 R4Z), 작은 베어링은 R-2 ZZ(오리지널 파츠는 NMB사의 R-2 ZZ)
  16. 현재 숨겨진 기능은 조사 중에 있다. IBM 독자 사양의 프로그램 언어라고는 하지만, PALM 프로세서의 Common ROS에만 담겨진 채 쓸데가 없었기 때문에 IBM에서 별 다른 언급이 없었던 것으로 추정된다. 메인프레임 언어라고 추측되며, APL에 관련된 기능일 수도 있다.
  17. 참고로 이 사람은 미국에서 구한 것 같으며, 여기저기 슈타게 관련 행사에 전시하고 있지만 정작 전원은 한 번도 안 켜본 듯 하다. 그리고 앰블렘이 떨어진 듯 하다. IBM 5100자체는 미국 내수용으로, 후기형 하우징의 메탈 엠블렘이 있고, 마킹이 없는 BASIC 버전이다. 기타 옵션은 안 달린 듯 하다.