롬
롬(ROM)이란 Read Only Memory의 약자로서, 데이터를 읽을 수는 있지만, 다시 기록할 수는 없는 저장장치이다. 고정기억장치(固定記憶裝置) 또는 읽기 전용 기억장치라고도 한다.
개요
롬은 컴퓨터를 구동하기 위한 기초적인 정보를 담고 있다. 롬은 기초적인 정보를 기억하고 있기 때문에 그 외에 다른 정보는 기억하지 않고, 보조기억장치의 일종으로서 전원이 끊어져도 미리 저장된 정보가 사라지지 않는 비휘발성 메모리이다. 하지만 최근에 어느 정도 읽고 쓰기가 가능한 플래시 메모리가 출현했다. 롬에 저장된 데이터는 반영구적 또는 영구적으로 보관되고, 전원이 꺼져도 데이터가 지워지지 않는다. 음악 시디롬(CD-ROM), 영화 디브이디롬(DVD-ROM) 등이 있다. 최초 1회 프로그램 저장이 가능한 피롬(PROM)과 최대 20회 정도 수정이 가능한 이피롬(EPROM) 등이 있다. 롬에 데이터를 저장하는 도구로 롬 라이터가 사용된다. 가장 단순한 형태의 솔리드 스테이트 롬은 반도체 기술만큼 오래되었다. 집적 회로가 발명되면서 마스크롬이 탄생되었다.[1]
역사
컴퓨터 메모리로 사용되는 반도체 소자를 이용한 롬(ROM)이 도입된 사례는 다음과 같다.
- 1965년 256비트 바이폴라 트랜지스터-트랜지스터 논리(Transistor-transistor Logic, TTL) 롬이 Sylvania에서 제작
- 1965년 말 제너럴 마이크로일렉트로닉스(General Microeletronics)에서 트랜지스터-트랜지스터 논리 롬보다 느리지만, 용량이 4배 큰, 금속 산화물 반도체형 1024비트 롬을 개발
- 1970년 페어차일드 반도체(Fairchild), 인텔(Intel), 모토로라(Motorola), 시그네틱스(Signetics), 텍사스 인스트루먼트(Texas Instrument, TI) 등의 업체에서 1021비트 트랜지스터-트랜지스터 논리 롬 제공
- 1970년 말 마스크 롬(Mask Rom)이 미국과 일본 업체에 의해서 공급
- 1971년 인텔(Intel) 엔지니어인 도프 프로만(Dov Frohman)이 유브이이피롬(UVEPROM) 발명
- 1983년 인텔(Intel) 조지 페레고스(Grorge Perlegos)이 이이피롬(EEPROM) 개발
- 1984년 도시바의 마스오카 후지오 박사가 플래시 메모리(flash memory) 발명
종류
마스크롬
마스크 롬(Mask ROM)은 가장 기본적인 롬으로, 제조사가 롬을 제조할 때 미리 저장해 놓은 메모리로, 저장된 메모리는 사용자가 수정할 수 없다. 과거 그래픽 카드에는 문자를 구현하기 위해 고정된 글꼴을 사용하였는데, 이 글꼴을 불러오는 방법 중, 소프트웨어적인 방법은 비디오 카드에 자체적으로 각 문자의 형태를 롬에 기록한 후 화면에 불러왔다. 폰트가 저장되는 롬을 폰트 롬이라고 했는데, 여기에 마스크 롬을 사용하곤 했다. 마스크 롬에 데이터를 집어넣기 위해서는 반드시 반도체 회사에 주문을 해서 만들어야 하는데, 마스크 롬의 제조공정은 메모리에 들어갈 내용을 포토마스크로 패턴화한 후 메모리에 써넣는 것이다. 사용하는 곳은 비디오 카드의 폰트 롬, 프린터의 폰트 롬, 컴퓨터 키보드 바이오스 등이다.[2] 마스크 롬은 일련의 워드 라인과 비트라인으로 구성되어 있으며, 선택적으로 트랜지스터 스위치와 함께 결합되며, 정규적인 물리 설계와 예측이 가능한 전달 지연이 있는 임의의 순람표를 표현할 수 있다. 마스크 롬은 데이터가 물리적으로 회로에 인코딩되기 때문에, 제조 시에만 프로그래밍이 가능하고, 사용자가 하나의 비트라도 바꾸고자 한다면, 다시 제작을 해야 했다. 이로 인하여 생기는 단점이 몇 가지 있다. 먼저 사용자들이 자신들의 설계대로, 위탁 업체와 계약해야 하기 때문에, 대량으로 마스크 롬을 구매해야 경제적이고, 같은 이유로 마스크 롬의 설계를 완성하고 완성된 제품을 받기까지 소요되는 시간이 길다. 또한 개발자들이 설계를 개선하기 위해 자주 메모리의 콘텐츠를 수정할 필요가 있기 때문에, 연구개발 작업에는 비현실적이고, 결함이 있거나, 수정해야 할 마스크 롬을 제품에 장착할 경우, 수정할 수 있는 유일한 방법은 제품 리콜을 통해 물리적으로 롬을 교체하는 것이다.[1]
피롬
피롬(PROM, Programmable ROM)은 1956년에 개발된, 저장된 데이터를 지우고 1회 수정할 수 있는 롬이다. 70년 후반에 텍사스 인스트루먼트에서 개발한 것으로, 아무 내용이 들어있지 않은 빈 상태로 제조하여 공급되고, 사용자가 피롬 라이터를 이용하여 내용을 써넣을 수 있다. 피롬 프로그래머라고 불리는 특별한 장치를 이용하여, 사용자가 마이크로 코드 프로그램을 맞추어 만들 수 있게 허용한 방법으로, 한 번 들어간 내용은 변경하거나 삭제할 수 없다. 모든 저장 공간에 퓨즈가 연결되어 있으며, 데이터를 기록할 경우 퓨즈가 끊어져 데이터 수정이 불가능해진다. 사용자들이 고전압 펄스를 응용하여 물리적으로 구조를 딱 한 번 변경함으로써 콘텐츠를 프로그래밍 할 수 있다. 마스크롬의 대량 구매를 해야만 경제적이라는 문제와 설계 완성과 제품을 받기까지 오랜 시간이 걸린다는 문제점이 조금이나마 해결되었다.[1]
- 오티피롬(OTPROM, One Time Programmable ROM): 단 한 번만 프로그래밍이 가능하며, 더 이상 내부의 내용을 변경하거나 다시 써넣을 수 없다. 따라서 내부의 내용이 잘못되었다면 칩을 버려야 한다. 만들고자 하는 롬의 개수가 수백 개 미만일 때 사용하면, 롬 라이터와 같은 간단한 장비를 사용해서 데이터를 써 놓을 수 있게 만들어졌다.
이피롬
이피롬(EPROM, Erasable PROM)은 메모리에 저장된 데이터를 지우고, 다시 저장할 수 있는 롬이다. 연구개발 작업에서 마스크 롬을 대신해서 사용할 수 있다. 내용을 바꾸기 위해서 롬 라이터를 사용하며, 롬에 새로운 내용을 쓸 때는 레이저를 사용해서 가공하기 때문에 열이 발생한다. 원래 비어있는 상태로 제조되어 공급되며 롬 위에는 동그란 유리창이 있다. 데이터를 집어넣는 방식은 피롬과 같지만, 자외선을 창에 쏘이면 내용이 지워지고 다시 써넣을 수 있다는 것이 다르다. 우리가 흔히 시모스(Complementary Metal Oxide Semiconductor, CMOS)라고 말하는 컴퓨터의 바이오스가 들어 있는 롬이 바로 이피롬이다. 자외선을 죄어서 데이터를 지우고, 하드웨어에 적절하게 쉽게 재프로그래밍이 가능하므로, 롬에서 마지막 버그를 수정하는데 특별히 유용하다. 피롬 라이터가 없으면 롬의 데이터를 바꿀 수 없다. 따라서 이피롬은 컴퓨터 관련 제품을 개발하는 개발회사나 바이오스와 같이 나중에 변경이 필요할지 모르는 곳에 사용하는 것이 보통이다. 그 내부에 기록되어 있는 내용을 어떻게 지우는지에 따라 유브이이피롬과 이이피롬으로 구분한다.
- 유브이이피롬(UVEPROM, Ultra-Violet EPROM) : 자외선을 사용하여 저장된 데이터를 지울 수 있는 이피롬(EPROM)이다. 강한 자외선에 노출시키면 프로그래밍 되지 않은 상태로 반복적으로 초기화가 가능하다. 가장 흔하게 볼 수 있는 형태의 롬으로, 칩 중앙부에 동그란 유리창이 놓여있고, 그 창 안을 들여다보면 은색 사각형 모양의 반도체 다이를 볼 수 있는데, 여기를 통해서 일정 시간 자외선을 쏘여주면 내부에 기록되어 있는 데이터가 지워지고 새로운 데이터를 기록할 수 있다. 오피티롬의 단점인 기록성이 한 번뿐이라는 점을 보완하기 위해 만들어진 롬으로, 일단 기록된 롬의 내용을 동그란 유리창에 자외선을 강하게 비춰 지우도록 되어있다. 따라서 평상시에 동그란 창은 빛을 투과하지 않는 레이블을 붙여두며, 이것은 태양 빛에 포함된 자외선으로부터 롬의 내용을 보호하기 위함이다. 여기에 기록된 내용을 지우기 위해서는 내부에 자외선을 방사하는 램프를 가지고 있는 롬이 레이저를 사용하며, 내용을 기록하기 위해서는 롬 라이터를 사용한다. 일반적으로 메인보드 바이오스로 많이 사용된다.
- 이이피롬(EEPROM, Electrically Erasable PROM)은 프로그래밍이 가능하며, 읽을 수만 있는 메모리로 각광받기 시작했다. 전기적인 기능을 통해 저장된 데이터를 지울 수 있는 피롬으로, 칩의 한 핀에 전기적 신호를 가해줌으로써 내부 데이터가 지워지게 되어 있는 롬이다. 유브이이피롬에 있는 동그란 유리창이 없고, 데이터를 새로 추가하고 지우기 위한 롬 라이터와 롬 이레이저가 필요하지 않다. 하나의 장비를 사용해서 쓰고 지우기가 가능하며, 내용을 지울 때도 OW를 지원해서 속도가 빠르고, 정격전압보다 높은 고전압을 통해 데이터를 지울 수 있다. 다만 1바이트씩 데이터를 지우기 때문에 속도가 굉장히 느린 편이다. 또한 가격이 월등히 비싸다는 단점이 있다. 이이피롬은 모뎀이나 비디오카드, 소형 시스템 컴퓨터 인터페이스(Small Computer System Interface, SCSI) 컨트롤러 등에서 사용되며, 쓰기와 지우기를 위해 별도의 점퍼를 필요로 하지 않는다. 모뎀의 경우에는 이이피롬이 상태를 저장해놓기 때문에 내부에 사용자가 AT(Attention) 명령을 통해서 설정한 상태가 전원을 다시 인가시킨 후에도 그래도 유지된다. 대부분의 비디오 카드, 소형 시스템 컴퓨터 인터페이스 컨트롤러 등에서 이이피롬을 사용해 점퍼 없이 설정 상태를 저장한다. 손상을 일으키지 않고, 수천 번이나 삭제와 재 프로그래밍을 가능하게 하였기 때문에, 불량 마스크 롬을 제품에 장착할 경우엔 제품 리콜을 해야 했다는 점을 해결하였다.
플래시 메모리
플래시 메모리(Flash Memory)는 전기적으로 데이터를 지우고 다시 기록할 수 있는 비휘발성 컴퓨터 기억 장치로, 이이피롬과는 다르게 여러 구역으로 구성된 블록 안에서 지우고 쓸 수 있다. 바이오스에서 주로 사용하기 때문에 플래시 바이오스라고도 부른다. 엄밀히 말하면 램(RAM)과 롬의 중간적인 위치에 있다. 평상시에는 롬의 역할을 하지만, 필요에 따라 내부 데이터를 다른 것으로 써 넣는 것이 가능하기 때문이다. 이러한 특성으로 플래시 메모리는 현재의 메인보드 상의 바이오스용으로 많이 사용된다. 이전의 롬 바이오스로 사용된 이이피롬의 내용을 바꾸기 위해서는 숙련된 기술자가 컴퓨터를 분해해서 이 바이오스를 빼고 새로운 것으로 교체해야 하기 때문에 시간과 비용 면에서 상당한 노력이 필요했지만, 플래시 메모리를 사용하면 사용자가 바이오스 코드가 들어 있는 디스켓을 드라이브에 넣고 명령을 실행시키는 것만으로 바이오스를 업데이트할 수 있다. 따라서 컴퓨터를 분해할 필요가 없다는 장점이 있어 메인보드 및 비디오 카드에 많이 쓰이고 있다. 플래시 메모리는 PC 카드로서 하드디스크 대용으로 사용되기도 한다. 플래시 메모리를 가지고 카드 크기의 보조기억장치를 만들어서 하드디스크 대신 사용하면 엑세스 속도도 하드디스크보다 훨씬 빠를 뿐 아니라 반도체 메모리이기 때문에 충격에 매우 강하다. 또한 기계적인 운동 부분이 없어 하드디스크에 비해 전력 소모도 매우 적기 때문에 노트북 컴퓨터에 많이 사용된다. 가격이 고가라는 단점이 있기는 하지만 점점 떨어지고 있는 추세다. 플래시 메모리는 읽고 쓰는 일을 할 수 있지만, 램 대용으로 사용할 수는 없다. 데이터를 읽는 과정 자체는 램과 비슷하게 설계할 수 있지만, 데이터를 써넣기 위해서는 시간이 상당히 오래 걸리며 램처럼 쉽게 설계할 수 없기 때문이다. 또 램은 데이터를 읽고 쓸 수 있는 횟수에 거의 제한이 없어서 칩의 수명이 다하는 동안은 읽고 쓸 수 있는 반면, 플래시 메모리는 십만에서 백만 번 이상의 쓰기를 한 후에는 데이터를 더 이상 쓸 수가 없다. 따라서 램과는 다른 형태로 구별된다.[2]
노어
노어 플래시(NOR Flash)는 각 셀이 병렬 형태로 이루어져 있어서 데이터를 읽을 때, 랜덤으로 접근할 수 있어 읽는 속도가 빠르다. 하지만 데이터를 덮어쓰거나 지우는 데는 랜덤으로 접근할 수 없기 때문에 속도가 느리다. 읽을 때는 페이지 단위로 읽어 들일 수 있지만, 해당 페이지를 덮어쓰거나 지우는 것은 모든 블록을 지워야 하기 때문에 그 속도가 느리다. 또한 각 셀이 병렬 형태로 이루어져 있기 때문에 각 셀을 개별적으로 접근하기 위한 전극이 필요하게 되고, 이 때문에 낸드 플래시 형태에 비해 필요한 면적이 넓어진다는 단점이 있다. 면접이 넓어지면 집적도가 낮아지기 때문에 대용량 메모리로는 다소 불리하다. 과거 모바일 장치에는 NOR 메모리를 많이 사용하여 예전 개인 정보 단말기(Personal Digital Assistant, PDA)들의 경우 노어 메모리를 많이 써서 데이터를 읽는 것만 빠르고 그 외의 작업은 모두 느렸다. 이후 낸드 메모리의 발달로 낸드 메모리를 사용하는 모바일 기기들이 점점 더 많아졌고, 현재는 대부분의 모바일 기기에서 낸드를 많이 사용한다.[3]
낸드
낸드 플래시(Nand Flash)는 반도체 셀이 직렬로 배열되어 있는 플래시 종류로, 쓰기 속도가 빠르다. 셀을 수직으로 배열하기 때문에 좁은 면적에 많은 셀을 만들 수 있어, 대용량화할 수 있다는 장점이 있다. 다만 메모리 중 가장 읽기 속도가 느리다는 단점이 있다. 컨트롤 게이트에 전압을 인가하면 소스에서 드레인으로 이동하던 전자가 터널링으로 플로팅 게이트에 들어가게 된다. 플로팅 게이트는 산화막에 의해 고립되어, 전원이 끊겨도 데이터가 플로팅 게이트에 남아있게 된다. 낸드 플래시에서 데이터를 쓸 때는 컨트롤 게이트와 드레인에 양의 전압을 인가하여 채널에서 이동하는 전자들을 플로팅 게이트로 끌어당겨 낸드 플래시 상에 쓴다. 낸드 플래시에서 데이터를 읽을 때는 다수의 셀이 직렬로 연결되어 있는 비트라인에 전압을 인가하여 직렬로 연결된 모든 셀에 전압을 인가하고, 컨트롤 게이트에 전압을 인가한 셀에서 채널을 형성한다. 이때 플로팅 게이트상에 전자가 있는 셀은 컨트롤 게이트와 플로팅 게이트간의 전자기장 간섭으로 인해 채널에 전자가 잘 흐르지 못해, 문턱전압이 상대적으로 높아진다. 반면 플로팅 게이트 상에 전자가 없는 셀은 전자기장 간섭이 일어나지 않아, 문턱 전압이 낮다. 따라서 읽고자 하는 셀에는 0볼트의 전압을 인가하고, 나머지 셀에는 6~6.5볼트의 전압을 인가한다. 만약 플로팅 게이트 상에 전자가 있다면 0볼트 전압을 인가하였으므로 나머지 셀은 채널이 형성되지만, 읽고자 하는 셀에서는 오픈 상태가 되기 때문에 전류가 잘 흐르지 않고, 0이라는 데이터로 인식된다. 반대로 플로팅 게이트 상에 전자가 없다면 0볼트의 전압을 인가하더라도 채널이 형성되어 전류가 잘 흐르게 되어 이를 1이라는 데이터로 인가한다. 낸드 플래시에서 데이터를 지우는 방식은 플로팅 게이트에 있는 전자를 밖으로 방출하기 위해 바디와 소스에 양의 전압을 역으로 인가하는 방식이다.[4]
롬 라이터
롬 프로그래머, 칩 프로그래머, 소자 프로그래머 등 다양하게 불린다. 롬 라이터란 말 그대로 롬에 데이터를 써넣는 기계다. 예를 들어 롬에 엔지니어가 프로그램한 언어를 저장한다고 하자. 엔지니어는 C, 어셈블러(Assembly) 등의 소스 파일을 작성하는데, 이 둘은 각각 고급언어와 저급언어에 해당한다. 이러한 언어들은 사람이 이해할 수는 있지만, 기계는 이해하지 못한다. 따라서 엔지니어가 작성한 소스 코드를 기계가 이해할 수 있는 언어로 바꿔주는 과정이 필요한데 이 과정을 컴파일링이라고 하며, 이때 사용하는 소프트웨어 툴을 컴파일러라고 한다. 엔지니어가 모든 디버깅 과정을 거치면서 최종적으로 완성된 소스 파일을 컴파일러나 어셈블러와 같은 툴을 사용하여 기계어 코드로 만들어 타깃이 동작되도록 만들어 주는데, 이 기계어 코드는 빈(BIN), 헥사 코드(HEX), 모토로라 S 등 다양한 포맷이 있다. 이제 이 데이터를 롬에 써야 하는데, 이때 사용하는 기계가 롬 라이터다. 롬 라이터에는 PC 기반형, 단독형 등 여러 가지 형태가 있지만, PC 기반형을 기초로 한다. 빈 파일을 롬에 굽는 과정은 다음과 같다. 롬 라이터는 어떤 칩을 작업할 것인가를 제일 먼저 결정해야 한다. 칩 선택을 하고 나면 롬 라이터 환경이 선택한 칩의 프로그램 알고리즘 환경으로 모두 바뀌게 된다. 그다음은 빈 파일을 불러오는 것이다. 불러온 데이터는 롬 라이터의 버퍼 영역에 로드하게 된다. 이 버퍼영역과 작업 롬과의 중간에 롬 라이터가 있다는 것을 이해하여야 한다. 또한 버퍼는 롬 라이터 기능 중 편집기로 볼 수도 있고, 편집을 할 수도 있다. 로드한 내용을 프로그램하면 롬 라이터가 버퍼로 불러들인 데이터를 롬에 저장하게 된다. 최종적으로 롬 라이터가 불러왔던 데이터의 체크섬과 롬에 써넣은 데이터의 체크섬을 서로 비교 검증하는 과정이 필요하다. 이 과정을 데이터 검증(Verify)이라고 하는데, 이 검증이 확인되면 프로그램은 완료되는 것이다. 롬에 이미 데이터가 저장되어 있다면, 이를 읽어서 파일로 저장할 수도 있다. 롬 라이터의 롬을 읽을 때, 롬의 데이터를 버퍼 영역으로 쓰게 되는데, 이 버퍼의 영역은 PC의 버퍼를 의미하므로, 이를 파일로 저장하기 하여 임의의 파일로 저장하면 된다. 이후 저장된 파일이 필요할 경우, 앞의 과정을 반복하면 된다. 결과적으로, 롬 라이터는 불러들인 데이터를 롬에 쓴 후 이것을 서로 비교검증까지만 한다.
롬 라이터의 종류에는 크게 범용 롬 라이터(Universal programmer), 전용 롬 라이터(Specialized programmer), 멀티 롬 라이터(Multi programmer), 단독형(Stand alone) 롬 라이터 3가지 정도로 구분되며, 이 외에도 자동화에 필요한 핸들러 등 산업응용 롬라이터도 있다. 범용 롬 라이터는 이피롬, 플래시 롬, 설계 가능 논리 소자(Programmable Logic Device, PLD), 주변 기기 인터페이스 제어(Peripheral Interface controller, PIC), MCS51, AVR, Tiny 등 다양한 칩들을 범용적으로 지원하는 롬 라이터를 의미하여, 40핀 소켓 이상의 모듈을 장착하고 있다. 범용 롬 라이터에는 비프로그+(BeeProg+), 스마트프로그2(Smartprog2) 등이 있다. 전용 롬 라이터는 범용적이지 않고, 한 가지 계열만을 지원하는데, 이피롬이나 플래시 계열만을 지원하는 등 특정 계열만을 지원한다. 따라서 범용적으로 사용할 수는 없지만, 특정 계열만을 사용하고자 하는 사용자에겐 보다 저렴한 가격의 선택지가 될 수도 있다. 전용 롬 라이터에는 PILprog2, T51 프로그2(prog2), 메모리프로그2(MEMprog2) 등이 있다. 멀티 롬 라이터는 하나의 롬 라이터에서 한 개의 싱글 소켓이 아니고, 8개의 소켓이 있는 양산성이 있는 롬 라이터를 말한다. 멀티 롬 라이터는 갱라이터라고 부르기도 한다. 양산성이 있어, 양산시 대량 생산에 유리한 롬 라이터다. 멀티 롬 라이터에는 비하이브8S(BeeHive8S), 비하이브4+(BeeHive4+) 등이 있다. 단독형 롬 라이터는 위의 PC 기반형 롬 라이터와는 달리, PC와 같은 호스트컴퓨터 없이 독자적으로 내부 배터리나 전원 등을 사용하여 구동되며, 내부에 버퍼용 메모리가 내장되어 있기 때문에 휴대용이나, 생산 현장에서 직접 응용할 수 있다는 장점이 있지만, 가격이 PC 기반형에 비해 비싼 편이고, 최신 디바이스의 업데이트가 펌웨어 적으로 이루어지기 때문에 비교적 쉽지 않다. 단독형 롬 라이터에는 비하이브8S 등이 있다.[5]
각주
- ↑ 1.0 1.1 1.2 〈고정 기억 장치〉, 《위키 백과》
- ↑ 2.0 2.1 원더풀원츄, 〈ROM(Read Only Memory)〉, 《네이버 블로그》, 2005-06-21
- ↑ 반도체 및 일상생활 맘여린v, 〈NAND, NOR flash Memory에 대해 알아보자〉, 《티스토리》, 2018-08-13
- ↑ 누들누들이, 〈낸드플래시(NAND Flash) 개념정리〉, 《티스토리》, 2019-08-20
- ↑ 〈롬라이터가 뭐예요?〉, 《㈜한국엘넥》
참고자료
- 〈고정 기억 장치〉, 《위키 백과》
- 원더풀원츄, 〈ROM(Read Only Memory)〉, 《네이버 블로그》, 2005-06-21
- 반도체 및 일상생활 맘여린v, 〈NAND, NOR flash Memory에 대해 알아보자〉, 《티스토리》, 2018-08-13
- 누들누들이, 〈낸드플래시(NAND Flash) 개념정리〉, 《티스토리》, 2019-08-20
- 〈롬라이터가 뭐예요?〉, 《㈜한국엘넥》
같이 보기