KR20030097587A - 디스크드라이브장치 및 컴퓨터장치 - Google Patents
디스크드라이브장치 및 컴퓨터장치 Download PDFInfo
- Publication number
- KR20030097587A KR20030097587A KR1020027004482A KR20027004482A KR20030097587A KR 20030097587 A KR20030097587 A KR 20030097587A KR 1020027004482 A KR1020027004482 A KR 1020027004482A KR 20027004482 A KR20027004482 A KR 20027004482A KR 20030097587 A KR20030097587 A KR 20030097587A
- Authority
- KR
- South Korea
- Prior art keywords
- program
- application program
- rom drive
- drive device
- rewrite
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0677—Optical disk device, e.g. CD-ROM, DVD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
디스크 드라이브장치(2)의 제어에 전기적인 소거 및 라이트가능한 불휘발성 메모리(56)과 중앙처리장치(51)을 포함해서 집적회로화된 마이크로컴퓨터(5)를 채용하고, 불휘발성 메모리는 기록정보재생 제어프로그램 등의 응용프로그램을 응용프로그램영역(561)에 보유하고, 그 응용프로그램을 갱신하는데 이용되는 리부팅프로그램을 리부팅프로그램영역(560)에 보유하고, 중앙처리장치는 외부에서 공급되는 응용프로그램의 리라이트커맨드에 응답해서 리부팅프로그램을 실행하고 응용프로그램의 전부 또는 일부의 리라이트를 실행한다.
이것에 의해, 디스크드라이브장치에 마이크로컴퓨터가 실장된 후에도 불휘발성 메모리내의 응용프로그램의 전부 또는 일부를 리라이트할 수 있고, 이 때 리부팅프로그램영역은 리라이트대상이 아니므로 불휘발성 메모리의 리라이트 도중에 이상이 있더라도 재차 리부팅프로그램을 실행하면 즉시 응용프로그램영역에 대한 리라이트동작으로 이행할 수 있다.
Description
본 발명은 CD-ROM(Compact Disk-Read Only Memory), DVD(Digital Versatile Disk, Digital Video Disk), DVD-ROM, DVD-RAM, CDI(Compact Disk-Interactive), DVI(Digital Video Interactive) 또는 MOD(Magneto Optical Disk) 등을 매체로서 사용하는 기록정보 재생장치, 이 기록정보 재생장치를 포함하는 정보기록 재생장치, 그리고 그들을 총칭하는 디스크 드라이브장치, 더 나아가서는 디스크 드라이브장치를 탑재한 컴퓨터장치에 관한 것으로서, 예를 들면 퍼스널컴퓨터에 표준 탑재된 CD-ROM 드라이브장치의 기록정보 재생동작 등을 제어하는 프로그램의 리라이트를 용이하게 함과 동시에 리라이트의 신뢰성을 향상시키는데 적용해서 유효한 기술에 관한 것이다.
CD-ROM 드라이브장치 등의 디스크 드라이브장치는 퍼스널컴퓨터나 게임기 등과 인터페이스되는 기록정보 재생장치로서 급속히 보급되어 왔다. 이 CD-ROM 드라이브장치 등은 오디오용 CD플레이어의 규격을 기본으로 하고 있으므로, 오디오용에 비해 데이터 전송속도나 데이터 액세스속도를 향상시키는 것이 요구된다. 또, 데이터의 에러정정이 불가능한 경우에 데이터보간이나 이전값 유지 등의 처리가 가능한 오디오용도에 대해서 퍼스널컴퓨터의 데이터에는 그러한 처리가 무의미하기 때문에 데이터의 에러정정 능력의 강화도 필요하게 된다.
그래서, 데이터 액세스속도를 고속화하기 위해 CD-ROM드라이브장치 등에서 디스크에서 리드한 정보를 증폭하는 프리앰프의 주파수대역을 올리고 픽업 서보회로의 강화를 실행하고 디지탈신호 처리회로의 동작속도를 향상시키는 것 등에 의해, CD-ROM디스크를 통상 속도의 2배 또는 4배 등의 속도로 회전시키면서 기록정보를 리드해서 재생하는 기술을 채용하고 있다. 또, 2중 에러정정 부호(code)에 대해 4중 에러정정 부호를 부가해서 에러정정 능력을 향상시키는 것도 실행되고 있다.
그러나, 현재 CD-ROM 드라이브장치에 대표되도록 기록정보 재생속도는 단기간에 고속화로 전환되고 있는 것이 실상이다. 과거에 있어서는 2년 이상의 주기로 표준속(오디오용의 CD재생시의 디스크의 선속도)에서 배속, 배속에서 4배속으로 전환되어 온 재생속도는 현재에는 6배속에서 8배속, 8배속 이상으로 수개월 단위의 주기로 급격히 전환되고 있다.
이와 같은 상황에 있어서는 재생속도의 고속화에 맞춰 프리앰프의 주파수대역이나 이득(gain)의 변경, 픽업서보회로의 강화, 디지탈신호 처리회로의 동작속도의 향상, 에러정정처리의 최적화 등을 위해 회로의 제어형태 또는 회로정수 등의 변경을 그 때마다 단기간에 실행하지 않으면 안된다.
CD-ROM 드라이브장치 등에 있어서의 기록정보 재생제어에 마이크로컴퓨터를 이용하는 경우에는 그 기록정보재생 제어프로그램(정수 테이블 등도 포함한다)을 변경해야 한다. 그들 프로그램을 마스크ROM으로 제공하는 경우에는 상기 매우 짧은 재생속도 전환사이클 즉 제품사이클에서는 마스크패턴의 변경을 제시간에 할 수 없게 된다.
일본국 특허공개공보 평성 6-187141호에는 광자기 디스크장치에 있어서 디스크의 기록정보를 재생하거나 디스크에 정보를 기록하기 위한 처리프로그램에 대한 버그(bug)의 수정이나 버전업을 용이하게 하기 위해 리라이트가능한 ROM에 그의 처리프로그램을 저장하는 구성이 개시되어 있다.
즉, 광자기 디스크장치는 호스트장치에 접속되는 SCSI(Small Computer System Interface) 컨트롤러와 이 컨트롤러에 접속된 드라이버를 갖고, 상기 컨트롤러의 펌웨어(처리프로그램)는 리라이트가능한 ROM에 저장되고, 드라이버의 펌웨어는 EEPROM(Electrically Erasable and Programmable ROM)에 저장되어 있다. 컨트롤러의 펌웨어를 리라이트하는 경우에는 호스트장치가 컨트롤러내의 버퍼메모리로 컨트롤러용 펌웨어를 전송함과 동시에 컨트롤러내의 상기 ROM에 저장된 리라이트프로그램을 컨트롤러내의 RAM으로 전송하고, 다음에 컨트롤러에 커맨드를 발행한다. 컨트롤러는 그의 커맨드를 수취하면 상기 RAM에 유지되어 있는 리라이트프로그램에 따라서 상기 ROM을 버퍼메모리내의 컨트롤러용 펌웨어로 리라이트한다. 이 리라이트시에 지금까지 상기 ROM에 저장되어 있던 리라이트프로그램도 동시에 갱신한다. 드라이버의 펌웨어를 리라이트하는 경우에는 호스트장치가 드라이버에 대한 리라이트프로그램을 버퍼메모리를 거쳐서 컨트롤러의 RAM으로 전송하고, 또 드라이버의 펌웨어를 컨트롤러의 버퍼메모리로 전송한다. 그리고, 컨트롤러의 CPU에 대해서 상기 RAM에 저장된 리라이트프로그램을 실행시킨다. 컨트롤러의 CPU는 리라이트프로그램에 따라서 드라이버의 펌웨어나 어드레스를 드라이버의 RAM에 설정한 후, 드라이버의 CPU로 커맨드를 발행한다. 드라이버는 통신 및 기본적인 커맨드를 서포트하는 마스크ROM을 갖고, 상기 커맨드를 수취한 드라이버내의 CPU는 그 마스크ROM의 프로그램을 실행하고 EEPROM을 RAM내의 드라이버용 펌웨어로 리라이트한다.
그러나, 상기 컨트롤러용 펌웨어의 리라이트와 같이 ROM에 저장된 리라이트프로그램도 컨트롤러용 펌웨어와 함께 갱신하는 구성에서는 ROM을 리라이트하고 있는 도중에 이상이 있었던 경우에 RAM내의 리라이트프로그램이 파괴되어 버리면, 그 이후에 컨트롤러를 정상상태로 복구시키는데 시간이 걸리는 것이 예상된다.
또, 드라이버의 펌웨어를 보유하는 EEPROM과는 다른 마스크ROM에 EEPROM의 리라이트 제어프로그램이나 리라이트를 위한 인터페이스용 프로그램을 저장하는 구성에서는 EEPROM 이외에도 마스크ROM이 필요하게 되어 시스템의 물리적인 규모를 증대시켜 버린다. 또, 마스크ROM은 반도체 집적회로화된 마이크로컴퓨터 또는 마이크로프로세서에 외부부착되게 되겠지만, 그 경우에는 외부부착 메모리에 대한 칩선택 제어 등을 위한 논리가 증가하고, 이 점에 있어서도 디스크 드라이브장치의 물리적인 규모가 증대할 것으로 예상된다.
상기 종래기술에서는 드라이버와 컨트롤러의 펌웨어를 별개의 리라이트가능한 ROM과 EEPROM에 저장하고 있다. 드라이버용 펌웨어는 드라이버에 포함되는 서보제어회로 등의 특성에 따른 제어프로그램으로 된다. 컨트롤러용 펌웨어는 호스트장치에 대응하는 인터페이스사양을 실현하기 위한 제어프로그램으로 된다. 그와 같이 광자기 디스크장치의 처리프로그램을 리라이트가능한 ROM과 EEPROM으로 분할하는 것은 광자기 디스크장치의 제조단계에서는 컨트롤러의 제어프로그램을 드라이버의 조정작업에 편리한 인터페이스사양과 일치시켜 실행할 수 있도록 하고 드라이버의 제어프로그램을 설정한 후, 마지막으로 목적으로 하는 호스트장치와의 인터페이스사양에 따라서 컨트롤러의 제어프로그램을 리라이트할 수 있도록 하기 위해서이다. 이것은 광자기 디스크장치의 조정작업이나 제품관리 등을 간략화할 수 있도록 고려하고 있기 때문이다. 그러나, 컨트롤러와 드라이버의 제어프로그램을 ROM과 EEPROM으로 나누어 저장하는 구성에서는 제어프로그램의 리라이트수순이 복잡하고 리라이트에도 시간을 필요로 하는 것이 본 발명자에 의해서 명확하게 되었다.
또, 컨트롤러의 ROM에 대한 리라이트프로그램은 상기 ROM이 보유하고, 드라이버의 EEPROM에 대한 리라이트프로그램은 마스크ROM이 보유하고 있다. 이 때문에 광자기 디스크장치의 동작중에 CPU가 폭주하면 상기 디스크장치 그 자체에 저장되어 있는 리라이트프로그램이 바람직하지 않게 실행되어 ROM이나 EEPROM의 내용이 파괴될 우려도 있다.
본 발명자는 디스크 드라이브장치의 처리프로그램 등의 변경을 용이하게 하기 위해 디스크 드라이브장치 그 자체에 관한 관점과 호스트장치와의 인터페이스의관점에서 더욱 검토를 실행하였다.
우선, 첫 번째로는 디스크 드라이브장치의 제어에 전기적으로 소거 및 라이트가능한 불휘발성 메모리를 내장한 마이크로컴퓨터를 채용하고, 그 불휘발성 메모리에 디스크 드라이브장치를 위한 응용프로그램과 함께 다운로드된 응용프로그램을 페치하고 제어하는 입력 제어프로그램을 저장하고, 또 필요한 경우에는 리라이트 제어프로그램도 저장하는 것에 대해서 검토하였다. 여기에서, 상기 응용프로그램은 디스크액세스를 위한 처리프로그램(액세스 제어프로그램)과 디스크 드라이브장치를 위한 외부인터페이스 처리프로그램(인터페이스 처리프로그램)을 포함하는 프로그램이다.
그 경우, 또 해결하지 않으면 안되는 몇가지 과제가 있는 것이 본 발명자에 의해서 명확하게 되었다.
그 첫번째는 리라이트 제어프로그램 및 입력 제어프로그램을 디스크 드라이브장치 그 자체가 보유하는 경우에 응용프로그램의 라이트시에 리라이트 제어프로그램 및 입력 제어프로그램이 복구 불가능한 상태로 파괴 또는 소실되는 경우가 있어서는 안된다는 것이다. 리라이트 제어프로그램 또는 입력 제어프로그램이 파괴 또는 소실되면 그 후에 응용프로그램의 리라이트를 실행하는 것이 곤란하게 된다.
또, 마이크로컴퓨터의 불휘발성 메모리 그 자체가 보유하고 있는 리라이트 제어프로그램 및 입력 제어프로그램은 신뢰성이 높지 않으면 안된다는 것이다.
두 번째로는 디스크 드라이브장치가 퍼스널컴퓨터 등의 컴퓨터장치에 표준탑재되는 상황을 고려하고, 상기 응용프로그램 등을 용이하게 변경할 수 있도록 하는 것에 대해서 검토하였다.
현재, 퍼스널컴퓨터(간단히, PC라고도 표시한다) 등의 컴퓨터장치에 있어서의 하드디스크 인터페이스의 대부분은 IDE(Integrated Device Electronics)에 준거하고, PC(Personal Computer)보드상에 여러개의 IDE인터페이스포트(예를 들면 4개)를 갖고 있다. IDE에 대해서는 닛케이 일렉트로닉스(닛케이 BP사 1994년 6월 6일 발행) 제67페이지∼제96페이지에 기재가 있다. 이 명세서에서는 FAST ATA, Enhanced IDE, Extended IDE 등의 호칭이 있는 소위 확장IDE의 개념 등도 IDE에 포함하는 것으로 해서 사용한다. IDE인터페이스사양에서는 인터페이스 케이블의 길이가 극단으로 제한되어 있고, 통상은 PC의 케이스내부에 탑재한 주변기기와의 인터페이스에 이용할 수 있는 정도이다. 현재에는 PC의 확장슬롯 또는 드라이브베이(drive bays)에 CD-ROM드라이브장치가 표준탑재되어 있는 것이 대부분이지만, 그 이전에는 옵션으로서 외부부착되는 것이 일반적이고, 이 때문에 그 인터페이스사양은 당초 SCSI 또는 SCSI2에 준거되어 발전해 왔다.
그러나, SCSI인터페이스는 옵션으로서의 성격이 강하고, SCSI인터페이스에 의한 CD-ROM드라이브장치의 접속에는 SCSI인터페이스보드 또는 SCSI인터페이스PC카드 등이 특별이 필요하게 되어 전체적으로 비용의 상승을 초래해 버린다. 일반적으로 IDE컨트롤러LSI(Large Scale Integrated circuits)는 SCSI컨트롤러LSI에 비해 저렴하다.
그래서 등장하는 것이 ATAPI(ATA Packet Interface) 인터페이스이고, PC보드와의 인터페이스사양은 IDE준거이고, 커맨드는 SCSI 또는 SCSI2준거로 된다. 이것에 의해, PC에 CD-ROM드라이브장치를 탑재하는데 그 전용의 특별한 인터페이스회로를 필요로 하지 않고, 또 SCSI인터페이스 시대에 표준적으로 사용되어 온 SCSI준거의 커맨드를 그대로 유용할 수 있다. 즉, CD-ROM드라이브장치에 관한 과거의 소프트웨어 자산을 승계하면서 확산IDE와 같은 새로운 인터페이스로 이행할 수 있고, 또 비용의 저감을 도모할 수 있게 된다. 이것에 의해, PC에 표준 탑재되는 CD-ROM드라이브장치의 인터페이스사양의 거의 모두가 ATAPI인터페이스사양(IDE의 확장사양)을 채용하기에 이르렀다.
대부분의 PC제조업체가 상술한 바와 같이 ATAPI인터페이스를 이용해서 CD-ROM드라이브장치를 PC에 표준 탑재하는 경우, CD-ROM 재생속도의 전환사이클이 매우 짧은 상황에서는 CD-ROM드라이브장치의 평가기간이 길어지면 PC제조업체로서는 재생속도가 빠른 CD-ROM드라이브장치를 탑재한 PC를 효율적으로 시장에 투입할 수 없게 된다.
PC제조업체에 있어서의 CD-ROM드라이브장치의 평가기간이 길어질 것으로 예상되는 원인은 몇가지 있다.
첫 번째로, ATAPI대응 CD-ROM드라이브장치는 PC에 표준탑재되므로 CD-ROM드라이브장치를 떼어내기 위해서는 PC의 케이스를 분해하는 것이 필요하게 되기 때문이다.
두 번째로, 매우 짧은 재생속도 전환사이클 때문에 드라이브제조업체로서도 CD-ROM드라이브장치의 처리프로그램에 대한 개발기간이 짧아지고 버그의 수정이 거듭되는 경우도 많아지는 것이 예상되기 때문이다.
세 번째로, 매우 짧은 재생속도 전환사이클 때문에 드라이브제조업체는 상기 응용프로그램의 성능향상이 적시에 이루어지지 않으므로 하드웨어만 선행시켜 PC제조업체로 보내고, 후에 응용프로그램을 단계적으로 PC제조업체로 보내어 드라이브를 완성시키는 것이 필요하게 되기 때문이다. 예를 들면, 24배 속의 CD-ROM드라이브의 경우, 드라이브제조업체는 동일한 하드웨어로 20배속 재생까지의 응용프로그램을 PC제조업체로 보내고, 다음에 24배속으로 액세스속도가 빠른 응용프로그램을 보내고, 마지막으로 그 응용프로그램의 논리적으로 불충분한 점을 개선 또는 튜닝한 높은 성능의 응용프로그램을 보내는 단계적인 처리가 실시된다. 또는, 24배속 CD-ROM드라이브를 상정하면 최저 1배속과 최고 24배속 재생을 위한 응용프로그램을 보내고, 그들에 대한 중간 배속에 관해서는 단계적으로 응용프로그램을 완성시켜 PC제조업체에 제공하는 등의 것이 실행된다.
네 번째로, ATAPI인터페이스를 채용한 CD-ROM드라이브장치가 PC에 표준탑재되면 그 CD-ROM드라이브장치는 특정의 PC에 전용화되므로, 상기 CD-ROM드라이브장치의 상기 응용프로그램의 내용이 PC의 기종 또는 PC제조업체마다 개별화되는 경향이 강해지기 때문이다. 예를 들면, 드라이브제조업체는 표준사용의 CD-ROM드라이브장치를 PC제조업체에 샘플로서 출하해 오는 경우가 많지만, PC제조업체의 드라이브사양이 제조업체마다 다른 경우에는 드라이브의 사양 추가가 필요하게 된다.PC제조업체마다 다른 사양의 1예로서, 편심이나 면흔들림 등을 발생시키고 있는 디스크에 대한 재생제어방법이 있다. 편심이나 면흔들림을 발생시키고 있는 디스크에 대해서 통상 CD-ROM드라이브장치는 디스크를 리드할 수 있는 정도까지 자동적으로 재생속도를 떨어뜨린다. 그러나, 이 후 언제 재생속도를 높일지는 PC제조업체의 사양에 따라서 다르고, 다음의 리드커맨드를 수신한 시점에서 재생속도를 원상태로 복원하는 경우도 있고 또는 그 디스크에 대해서는 재생속도를 높이지 않는 경우도 있다. 또, 벤더유니크커맨드(vendor unique command)를 이용해서 재생속도를 원상태로 복원하는 경우도 있다. 또는, 디스크에 대한 선속도 일정과 각속도 일정을 혼재시켜 재생제어하는 것도 실행되고 있고, 각속도 일정과 선속도 일정의 제어를 전환하는 형태도 각기 다르게 되어 있다.
또, ATAPI대응 CD-ROM 드라이브장치를 표준탑재한 PC가 최종수요자(end user)에게 전달된 후 재생속도의 향상 및 CD-R(Compact disc-Recordable) 디스크의 보급 등에 의해 모든 디스크를 재생할 수 있다고는 할 수 없는 상황도 발생하게 된다. 이러한 경우에도 최종수요자측에서 상기 응용프로그램을 효율적으로 갱신할 수 있는 것이 바람직하다.
이와 같이, CD-ROM드라이브장치에 있어서의 재생속도의 전환사이클이 매우 짧아지고, 또 CD-ROM드라이브장치가 PC에 표준탑재되는 상황하에 있어서 드라이브제조업체는 PC제조업체마다 서로 다른 사양의 상기 응용프로그램을 단기간에 작성하지 않으면 안된다. PC제조업체로서는 CD-ROM드라이브장치의 평가를 단기간에 끝내지 않으면 안되고, 평가기간을 통해서 드라이브제조업체로부터 응용프로그램의버그의 수정을 받으면서 PC상에서 CD-ROM드라이브장치의 평가를 효율적으로 실행하는 것이 절대적으로 필요하게 된다. 따라서, CD-ROM드라이브장치의 응용프로그램의 수정을 효율적으로 실행할 수 있도록 한다는 요청은 매우 높아지고 있다.
본 발명의 목적은 디스크 드라이브장치의 디스크액세스 및 인터페이스 제어용 처리프로그램을 포함하는 응용프로그램의 전부 또는 일부를 효율적으로 수정할 수 있도록 하는 것이다.
본 발명의 다른 목적은 디스크 드라이브장치의 물리적인 규모를 증대시키지 않고 상기 응용프로그램의 전부 또는 일부를 용이하게 리라이트할 수 있는 디스크 드라이브장치를 제공하는 것이다.
본 발명의 또 다른 목적은 상기 응용프로그램의 리라이트의 신뢰성을 향상시킬 수 있는 디스크 드라이브장치를 제공하는 것이다.
본 발명의 또 다른 목적은 기록정보 재생장치나 디스크 드라이브장치의 하드웨어의 양산을 선행시켜 출하직전까지 상기 응용프로그램의 전부 또는 일부를 수정할 수 있고 개발기간을 단축할 수 있는 디스크 드라이브장치를 제공하는 것이다.
본 발명의 또 다른 목적은 동일한 하드웨어에 의해서 타품종 전개가 용이한 디스크 드라이브장치를 제공하는 것이다.
본 발명의 또 다른 목적은 디스크 드라이브장치가 조립된 상태에서도(상기 장치를 떼어내지 않고) 기록정보 재생장치나 디스크 드라이브장치의 상기 응용프로그램의 전부 또는 일부를 변경할 수 있는 퍼스널컴퓨터 등의 컴퓨터장치를 제공하는 것이다.
본 발명의 또 다른 목적은 재생속도의 전환사이클이 매우 짧은 상황하에서도 재생속도가 빠른 디스크 드라이브장치를 표준탑재한 컴퓨터장치를 효율적으로 시장에 투입할 수 있도록 하는 것이다.
도 1은 본 발명의 1예에 관한 CD-ROM드라이브장치를 도시한 블럭도,
도 2는 플래시메모리의 기억영역을 도시한 설명도,
도 3은 리세트처리의 1예를 도시한 흐름도,
도 4는 ATAPI인터럽트처리의 1예를 도시한 흐름도,
도 5는 플래시메모리의 일괄 소거 단위블럭과 리부팅프로그램영역의 관계를 도시한 설명도,
도 6은 플래시메모리 내장 마이크로컴퓨터의 제조공정을 개략적으로 도시한 흐름도,
도 7은 리부팅프로그램영역에 대한 바람직하지 않은 소거를 저지하기 위한 하드웨어 프로텍트의 1예를 도시한 블럭도,
도 8은 리부팅프로그램영역에 대한 바람직하지 않은 소거를 저지하기 위한 하드웨어 프로텍트의 다른 예를 도시한 블럭도,
도 9는 CD-ROM드라이브장치를 내장하는 퍼스널컴퓨터의 1예를 도시한 블럭도,
도 10은 퍼스널컴퓨터에 CD-ROM드라이브장치가 탑재된 상태에서 상기 드라이브장치에 응용프로그램을 라이트하는 동작의 초기상태를 도시한 설명도,
도 11은 퍼스널컴퓨터에 CD-ROM드라이브장치가 탑재된 상태에서 상기 드라이브장치에 응용프로그램을 라이트하는 동작에 있어서의 동작개시시의 상태를 도시한 설명도,
도 12는 도 11의 상태에 이어지는 응용프로그램의 전송상태를 도시한 설명도,
도 13은 도 12의 상태에 이어지는 소거/라이트 제어프로그램 기동상태를 도시한 설명도,
도 14는 도 13의 상태에 이어지는 소거/라이트 제어프로그램에 의한 플래시메모리의 소거동작상태를 도시한 설명도,
도 15는 도 14의 상태에 이어지는 소거/라이트 제어프로그램에 의한 플래시메모리의 라이트동작상태를 도시한 설명도,
도 16은 도 10∼도 15에서 설명한 라이트처리의 전체적인 흐름도,
도 17은 도 10에 대해서 소거/라이트 제어프로그램을 CD-ROM드라이브장치의 외부에서 수취해서 상기 드라이브장치에 응용프로그램을 라이트하는 동작의 초기상태를 도시한 설명도,
도 18은 도 10에 대해서 소거/라이트 제어프로그램을 CD-ROM드라이브장치의 외부에서 수취해서 상기 드라이브장치에 응용프로그램을 라이트하는 동작에 있어서의 동작개시시의 상태를 도시한 설명도,
도 19는 도 18의 상태에 이어지는 응용프로그램의 전송상태를 도시한 설명도,
도 20은 도 19의 상태에 이어지는 소거/라이트 제어프로그램 기동상태를 도시한 설명도,
도 21은 도 20의 상태에 이어지는 소거/라이트 제어프로그램에 의한 플래시메모리의 소거동작상태를 도시한 설명도,
도 22는 도 21의 상태에 이어지는 소거/라이트 제어프로그램에 의한 플래시메모리의 라이트동작상태를 도시한 설명도,
도 23은 총합값 저장영역이 할당된 플래시메모리의 기억영역의 설명도,
도 24는 리세트시에 총합값을 고려해서 사용자프로그램영역을 리라이트가능하게 할 때의 동작흐름도,
도 25는 벡터테이블을 마이크로컴퓨터의 워크RAM에 배치한 상태를 도시한 설명도,
도 26은 플래시메모리의 어드레스맵의 다른 예를 도시한 설명도,
도 27은 CD-ROM드라이브 제조업체에 의한 CD-ROM드라이브장치의 제조수순의 1예를 도시한 흐름도,
도 28은 CD-ROM드라이브 제조업체에서 출하된 CD-ROM드라이브장치를 사용한 PC제조업체에 의한 퍼스널컴퓨터의 평가수순의 1예를 도시한 흐름도,
도 29는 도 27에 대해서 리부팅프로그램영역과 사용자프로그램영역에 처리프로그램을 함께 라이트하는 경우의 1예를 도시한 흐름도,
도 30은 CD-ROM드라이브장치가 직렬포트를 갖는 경우에 상기 포트를 거쳐서처리프로그램을 마이크로컴퓨터에 라이트할 때의 상태를 도시한 CD-ROM드라이브장치의 블럭도,
도 31은 EPROM라이터를 사용해서 마이크로컴퓨터의 처리프로그램을 라이트할 때의 상태를 도시한 마이크로컴퓨터의 블럭도.
본 발명의 상기 및 그밖의 목적과 신규한 특징은 본 명세서의 이하의 기술로부터 명확하게 될 것이다.
즉, 디스크 드라이브장치의 제어에 전기적인 소거 및 라이트가능한 불휘발성 메모리를 내장한 마이크로컴퓨터를 채용하고, 그 불휘발성 메모리가 응요프로그램 영역에 디스크액세스 및 인터페이스제어용 처리프로그램을 포함하는 응용프로그램을 보유하고, 또 그 응용프로그램의 전부 또는 일부를 갱신하는데 이용되는 리부팅프로그램을 리부팅프로그램영역에 보유한다.
더욱 상세하게는 디스크 드라이브장치는 회전구동되는 디스크를 액세스하는 액세스수단, 상기 액세스수단에 접속되고 외부와 인터페이스되는 인터페이스회로 및 상기 액세스수단의 동작을 제어함과 동시에 상기 인터페이스회로에 결합된 마이크로컴퓨터를 포함한다. 상기 마이크로컴퓨터는 전기적으로 리라이트가능한 불휘발성 메모리와 이 불휘발성 메모리를 액세스하는 중앙처리장치를 포함한다. 상기 불휘발성 메모리는 그의 기억영역에 리부팅프로그램영역과 응용프로그램영역을 갖는다. 상기 응용프로그램영역은 상기 액세스수단 및 상기 인터페이스회로를 제어하기 위해 상기 중앙처리장치에 의해서 실행되는 응용프로그램의 저장영역을 갖는다. 상기 리부팅프로그램영역은 상기 중앙처리장치에 상기 응용프로그램영역을 리라이트하기 위한 처리를 실행시키는 리부팅프로그램이 저장되는 영역을 갖는다. 상기 중앙처리장치는 외부에서 상기 인터페이스회로에 공급되는 응용프로그램영역의 리라이트커맨드에 응답해서 상기 리부팅프로그램을 실행하고 응용프로그램영역의 전부 또는 일부의 리라이트를 실행하고, 또 외부에서 상기 인터페이스회로에 공급되는 디스크 액세스 커맨드에 응답해서 상기 응용프로그램영역중의 상기 응용프로그램을 실행하고 상기 액세스수단 및 인터페이스회로를 제어한다.
상기 응용프로그램이라는 것은 기록정보재생 제어프로그램 등의 액세스 제어프로그램과 디스크 드라이브장치의 외부 인터페이스제어용 인터페이스 제어프로그램을 포함하는 동작프로그램을 의미한다. 액세스 제어프로그램은 디스크의 속도제어나 기록정보의 재생속도에 따른 신호처리 등을 제어한다. 인터페이스 제어프로그램은 디스크 액세스를 위한 외부 인터페이스제어를 실행한다. 상기 응용프로그램영역의 리라이트는 응용프로그램의 일부(액세스 제어프로그램 또는 인터페이스 제어프로그램중의 어느 한쪽)를 대상으로 해도 전부(액세스 제어프로그램 및 인터페이스 제어프로그램의 쌍방)를 대상으로 해도 좋다. 또, 응용프로그램이 여러개의 프로그램 모듈(예를 들면, 여러개의 서브루틴)을 포함하는 경우에 일부의 프로그램 모듈을 리라이트의 대상으로 하는 것도 가능하다. 예를 들면, 응용프로그램을 리라이트(갱신)할 때 상기 액세스 제어프로그램 또는 인터페이스 제어프로그램에 있어서 수정이 실시된 한쪽의 프로그램만을 리라이트하도록 해도 좋다.
상기한 것에 의해, 디스크 드라이브장치에 마이크로컴퓨터가 실장된 후에도 상기 마이크로컴퓨터 내장의 상기 불휘발성 메모리에 응용프로그램을 라이트하거나 또는 응용프로그램의 일부 또는 전부를 리라이트할 수 있다. 이것에 의해, 금후 매우 짧은 사이클로 발생할 재생속도 전환시간 등에 따라서 재생속도의 향상에 따라 필요한 수정을 가한 응용프로그램의 전부 또는 일부를 리라이트하는 것만으로 디스크 드라이브장치에 있어서의 재생속도의 전환에 즉시 또는 적시에 대응할 수 있다.
상기 불휘발성 메모리의 리라이트 대상은 응용프로그램영역으로 된다. 리부팅프로그램영역은 리라이트대상이 아니므로 불휘발성 메모리의 리라이트동작 도중에 이상이 있었던 경우에도 재차 리부팅프로그램을 실행하면 곧 응용프로그램영역에 대한 리라이트동작으로 이행할 수 있고, 리라이트 도중에 있어서의 이상상태로부터의 복구에 시간이 걸리는 일은 없다. 디스크 드라이브장치에 있어서의 처리프로그램의 리라이트대상은 상기 불휘발성 메모리 뿐이므로 리라이트의 제어수순을 간소화할 수 있고, 또 리라이트시간도 단축할 수 있다. 또, 반도체 집적회로화된 마이크로컴퓨터에 디스크 드라이브장치의 처리프로그램을 보유하는 상기 불휘발성 메모리가 내장되어 있는 경우, 디스크 드라이브장치의 물리적인 규모가 증대하는 것을 억제하여 상기 작용을 얻을 수 있다.
상기 리부팅프로그램은 입력제어프로그램, 리라이트 제어프로그램 및 전송 제어프로그램을 포함할 수 있다. 이 때, 상기 리라이트 커맨드에 응답하는 상기 중앙처리장치는 상기 입력제어프로그램을 실행하는 것에 의해 외부에서 상기 인터페이스회로로 공급되는 전부 또는 일부의 응용프로그램을 버퍼RAM 등에 페치하고, 상기 전송 제어프로그램을 실행하는 것에 의해 상기 리라이트 제어프로그램을 상기 리부팅프로그램 저장영역에서 상기 마이크로컴퓨터의 내장RAM으로 전송한다. 중앙처리장치는 상기 내장RAM으로 전송된 리라이트 제어프로그램을 실행하는 것에 의해 상기 페치된 전부 또는 일부의 응용프로그램을 상기 응용프로그램영역에 라이트제어한다. 이것에 의하면, 응용프로그램영역의 갱신시에 호스트장치는 상기 불휘발성 메모리에 대한 라이트커맨드에 이어서 응용프로그램영역에 라이트할 전부 또는 일부의 응용프로그램을 디스크 드라이브장치로 전송하면 좋고 리라이트 제어프로그램을 전송할 필요는 없으므로, 응용프로그램영역을 갱신하는 처리시간을 더욱 단축할 수 있다.
상기 리부팅프로그램은 입력제어프로그램 및 전송제어프로그램을 포함할 수 있다. 이 때, 상기 리라이트커맨드에 응답하는 상기 중앙처리장치는 상기 입력제어프로그램을 실행하는 것에 의해 외부에서 상기 인터페이스회로로 공급되는 상기 응용프로그램 및 리라이트 제어프로그램을 페치하고, 상기 전송 제어프로그램을 실행하는 것에 의해 상기 페치된 리라이트 제어프로그램을 마이크로컴퓨터의 내장RAM으로 전송한다. 상기 중앙처리장치는 상기 내장RAM으로 전송된 리라이트 제어프로그램을 실행하는 것에 의해 상기 페치된 전부 또는 일부의 응용프로그램을 상기 응용프로그램영역에 라이트제어한다. 이것에 의하면, 불휘발성 메모리는 그 리라이트 제어프로그램을 보유하지 않으므로, 중앙처리장치가 폭주해서 불휘발성 메모리에 저장되어 있는 프로그램을 바람직하지 않게 실행하는 경우가 있더라도상기 불휘발성 기억장치가 잘못해서 리라이트될 우려는 전혀 없다.
상기 리부팅프로그램영역은 벡터테이블과 리세트처리 프로그램의 저장영역을 더 가질 수 있다. 이 때, 상기 중앙처리장치는 리세트의 지시에 응답해서 상기 벡터테이블을 참조하는 것에 의해 상기 리세트처리 프로그램의 실행으로 이행하고, 리세트처리 프로그램의 실행 도중에는 상기 리라이트 커맨드에 응답할 수 있는 강제 리부팅상태인지의 여부를 판정한다. 강제 리부팅상태시 중앙처리장치는 상기 리라이트 커맨드의 입력을 대기하고 상기 리부팅프로그램의 실행으로 천이한다. 강제 리부팅상태가 아닐 때 중앙처리장치는 상기 응용프로그램영역의 프로그램을 실행가능한 상태로 천이한다. 이것에 의하면, 불휘발성 메모리의 리라이트시에 이상이 발생해도 리세트를 실시해서 강제 리부팅상태의 지시를 실행하면, 그 이상으로부터 용이하게 복구해서 불휘발성 메모리를 리라이트하는 처리로 되돌아갈 수 있다. 이 점에 있어서도 응용프로그램영역을 갱신하는 처리시간의 단축에 기여할 수 있다.
상기 응용프로그램영역은 그 일부의 기억영역에 그밖의 기억영역이 보유하는 정보의 총합값을 저장하는 총합값 저장영역을 가질 수 있고, 상기 리부팅프로그램영역은 벡터테이블과 리세트처리 프로그램의 저장영역을 더 가질 수 있다. 이 때, 상기 중앙처리장치는 리세트의 지시에 응답해서 상기 벡터테이블을 참조하는 것에 의해 상기 리세트처리 프로그램의 실행으로 이행하고, 리세트처리 프로그램의 실행도중에는 상기 리라이트 커맨드에 응답할 수 있는 강제 리부팅상태인지의 여부를 판정한다. 강제 리부팅상태시 중앙처리장치는 상기 리라이트 커맨드의 입력을 대기하고 상기 리부팅프로그램의 실행으로 천이한다. 강제 리부팅상태가 아닐 때에 중앙처리장치는 상기 총합값 저장영역에 저장되어 있는 총합값이 상기 그밖의 기억영역이 보유하는 정보의 총합값과 일치하는지를 판정한다. 중앙처리장치는 판정결과가 일치하지 않는 경우에는 상기 리라이트 커맨드의 입력을 대기하고 상기 리부팅프로그램의 실행으로 천이하고, 상기 판정결과가 일치한 경우에는 상기 응용프로그램영역의 프로그램을 실행가능한 상태로 천이한다. 이것에 의하면, 호스트장치나 디스크 드라이브장치의 이상에 의해서 상기 응용프로그램영역의 프로그램이 바람직하지 않게 리라이트되었을 때, 강제 리부팅상태가 지시되지 않아도 리세트되는 것만으로 자기진단적으로 중앙처리장치의 동작을 응용프로그램영역에 대한 리라이트가능한 상태로 천이시킬 수 있고 디스크 드라이브장치의 오동작을 미연에 방지할 수 있다.
상기 불휘발성 메모리로서 일괄 소거 단위로 되는 여러개의 메모리블럭을 갖는 플래시메모리를 채용할 수 있다. 이 때, 상기 리부팅프로그램영역과 상기 응용프로그램영역을 서로 다른 메모리블럭에 할당하는 것에 의해 응용프로그램영역에 대한 소거동작을 효율화할 수 있다.
상기 리부팅프로그램영역에 대한 프로그램의 초기적인 라이트동작의 신뢰성은 그 프로그램의 성질상 양호한 것이 바람직하고, 그것을 보증하기 위해서는 상기 마이크로컴퓨터의 제조공정에서 리부팅프로그램영역에 프로그램을 라이트할 수 있다. 리부팅프로그램의 바람직하지 않은 소실방지에 만전을 기하기 위해서는 상기 리부팅프로그램영역의 리라이트를 금지하는 수단을 마련하면 좋다.
상기 인터페이스회로에 ATAPI인터페이스사양을 채용할 수 있다. 이것에 의하면, SCSI인터페이스사양 등의 디스크 드라이브장치에 관해서 축적된 과거의 소프트웨어 자산을 승계하면서 확장IDE와 같은 새로운 인터페이스로 용이하게 이행할 수 있고, 또 비용의 저감을 도모할 수 있다.
그와 같은 디스크 드라이브장치를 구비한 컴퓨터장치는 버스에 접속된 마이크로프로세서와 주변 인터페이스 컨트롤러를 포함하는 메인보드를 갖고, 상기 인터페이스 컨트롤러에 디스크 드라이브장치의 인터페이스회로가 접속되어 있다. 상기 버스에 예를 들면 PCI버스를 채용하고, 상기 인터페이스 컨트롤러에 IDE인터페이스 컨트롤러를 포함하는 퍼스널컴퓨터와 같은 컴퓨터장치에 디스크 드라이브장치를 표준탑재하는 경우, 디스크 드라이브장치의 인터페이스회로에 상기 ATAPI인터페이스회로를 채용할 수 있다. 컴퓨터장치에 디스크 드라이브장치가 표준탑재되는 경우, 메인보드와 디스크 드라이브장치는 대부분의 경우 1개의 케이스에 조립된다.
디스크 드라이브장치의 응용프로그램영역의 리라이트에 있어서는 컴퓨터장치의 메인보드를 호스트장치로 하고, 이 호스트장치를 거쳐서 디스크 드라이브장치의 응용프로그램을 전부 또는 일부만 리라이트할 수 있다. 따라서, 디스크 드라이브장치를 컴퓨터장치에서 떼어내지 않고 상기 마이크로프로세서를 이용해서 디스크 드라이브장치의 응용프로그램을 변경할 수 있다.
따라서, 디스크 드라이브장치에 있어서의 재생속도의 전환사이클이 매우 짧아지고 디스크 드라이브장치가 컴퓨터장치에 표준탑재되고, 이것에 의해서 드라이브 제조업체는 컴퓨터장치 제조업체마다 서로 다른 사양으로 디스크 드라이브장치의 디스크 액세스 및 인터페이스제어용 응용프로그램을 작성하지 않으면 안되는 상황하에 있어서, 컴퓨터장치 제조업체는 디스크 드라이브장치의 평가기간을 통해서 드라이브제조업체로부터 응용프로그램에 관한 버그의 수정이나 추가기능을 받으면서 컴퓨터장치에 조립된 채의 상태로 디스크 드라이브장치의 평가를 실행할 수 있다. 상술한 디스크 드라이브장치는 응용프로그램영역에 대한 리라이트처리의 능률화, 리라이트처리중에 있어서의 이상상태에서 신속하게 복구해서 리라이트처리로 되돌아갈 수 있는 등의 수단이 강구되어 있으므로, 디스크 드라이브장치의 평가기간을 통해서 마이크로컴퓨터에 내장된 불휘발성 메모리에 수정된 응용프로그램을 효율적으로 재설치(리인스톨)할 수 있다. 따라서, 컴퓨터장치 제조업체는 디스크 드라이브장치의 평가기간을 단축할 수 있다.
이것에 의해, 디스크 드라이브장치에 있어서의 재생속도의 전환사이클이 매우 짧아진 상황하에 있어서, 컴퓨터장치 제조업체는 보다 재생속도가 빠른 디스크 드라이브장치를 표준탑재한 컴퓨터장치를 효율적으로 시장에 투입할 수 있게 된다.
또, 기록정보재생 제어프로그램과 같은 액세스 제어프로그램이나 인터페이스 제어프로그램을 포함하는 응용프로그램은 인터넷 등의 통신수단에 의해 디스크 드라이브장치의 제조나 그 판매회사에서 컴퓨터장치 제조업체나 그 판매회사로 또는 컴퓨터장치 제조업체나 그 판매회사에서 컴퓨터장치의 사용자에게 공급하는 것도 가능하다. 이것에 의하면, 컴퓨터장치 제조업체나 그 판매회사 또는 컴퓨터장치의 사용자에게 순식간에 상기 응용프로그램을 전송할 수 있다. 이 때, 상기디스크 드라이브장치나 이것을 탑재한 컴퓨터장치를 사용하면 그 사용자측에서 그들 장치의 기록정보 재생속도 등의 기능을 즉시 버전업할 수 있다. 즉, 사용자측에서의 제품의 기능변경이 용이하게 된다.
[실시예]
(발명을 실시하기 위한 최량의 형태)
《CD-ROM드라이브장치》
도 1에는 본 발명의 1예에 관한 CD-ROM드라이브장치가 호스트장치와 함께 도시되어 있다. 도 1에 있어서, (1)로 표시되는 것은 CD-ROM디스크(간단히, 디스크라고도 한다)이고, 기록밀도를 높이기 위해 신호의 기록속도가 디스크의 내주, 외주의 위치에 관계없이 일정한 CLV(Constant liner Velocity)방식에 의해서 정보가 기록되어 있다. 이 디스크(1)은 특히 제한되지 않지만, 1심볼(1심볼 = 1바이트)의 서브코드정보, 24심볼의 데이터 및 8심볼의 패리티를 1프레임으로 하고, 이 프레임마다 동기신호가 부가되어 구성되어 있다. 그와 같은 프레임의 정보는 특히 제한되지 않지만, EFM(Eight to Fourteen Modulation) 변조되어 있다. EFM변조는 1심볼 8비트의 데이터를 14비트로 변환하는 처리이다. 또, 변환후의 직류성분을 제거하기 위해 3비트의 마진비트가 부가되어 NRZI변조가 실행되고 있다. 또, 프레임은 인터리브되고 있다.
도 1에 도시되는 CD-ROM드라이브장치(2)는 호스트장치(3)으로부터의 액세스 또는 데이터전송요구를 ATAPI인터페이스회로(4)에서 수신하면, 마이크로컴퓨터(5)가 그 요구에 응답하기 위한 제어를 실행한다. 마이크로컴퓨터(5)에 의해서 제어되는 CD-ROM드라이브장치(2)의 동작의 개략은 다음과 같이 된다. 즉, 디스크(1)에서 광학적으로 정보가 리드되고, 리드된 정보는 디지탈신호 처리회로(7)에서 복호 및 에러정정 등이 실행되고, 복호 및 에러정정된 정보는 CD-ROM이나 CD-I 등의 소정의 포맷에 따라서 디지탈신호 처리회로(7)에서 버스(8)을 거쳐서 CD-ROM디코더(9)에 인가된다. CD-ROM디코더(9)는 이것에 인가된 정보에 대해서 동기신호검출, 디인터리브, 부가ECC에러정정 등의 처리를 실시하고, 호스트장치가 요구하는 데이터를 ATAPI인터페이스회로(4)를 거쳐서 호스트장치(3)으로 출력한다.
다음에, CD-ROM드라이브장치(2)의 각 부에 대해서 상세하게 설명한다.
상기 디스크(1)은 디스크모터(10)에 의해서 회전구동된다. 픽업(11)은 회전구동되는 디스크(1)에 레이저광을 조사하고, 그 반사광을 포토다이오드로 이루어지는 수광부에서 수광해서 광전변환하고, 이것에 의해서 디스크(1)에 기록되어 있는 정보를 리드한다. 나사모터(thread motor)(12)는 픽업(11)을 디스크(1)의 반경방향으로 이동시킨다. 로딩모터(13)은 디스크(1)이 탑재되는 도시하지 않은 트레이를 이동시킨다.
상기 디지탈신호 처리회로(7)은 그 동작프로그램에 따라서 디지탈필터, EFM복조, C1, C2에러정정, 디지탈서보, 속도제어 등의 기능을 실현한다. 디지탈서보의 기능은 나사모터(12)를 제어해서 픽업(11)의 위치를 제어한다. 속도제어의 기능은 디스크모터(10)의 회전속도를 제어한다. C1, C2에러정정 기능은 C1, C2의 2계열의 리드솔로몬 부호를 조합한 CIRC(Cross Interleaved Read-SolomonCode) 등의 에러정정부호를 사용해서 실행하는 에러정정이고, 그 에러정정부호는 상기 프레임의 패리티에 대응된다.
픽업(11)에서 리드된 신호(고주파신호)는 프리앰프(14)에 의해 증폭되고, 디지탈신호 처리회로(7)로 공급된다. 이 리드신호는 디지탈신호 처리회로(7)에 의해서 실현되는 디지탈필터에 의해서 2진화되어 디지탈신호로 된다. 이 디지탈화된 리드신호는 속도제어 및 EFM복조기능에 의해서 순차 처리된다. 속도제어기능은 디스크(1)의 회전속도를 검출하고, 소정의 속도로 디스크(1)을 회전시키도록 디스크모터(10)을 제어하는 것이다. 또, 속도제어의 기능은 리드신호에서 동기신호를 검출하는 기능을 포함한다. EFM복조기능은 속도제어기능에 의해 검출된 동기신호에 따라 EFM변조되어 있는 리드신호를 복조하는 것이다. 또, 복조된 리드신호의 각 프레임에 포함되는 서브코드는 신호(700)에 의해서 마이크로컴퓨터(5)의 SCI(직렬 통신 인터페이스)회로(50)에 인가된다. 마이크로컴퓨터(5)는 입력된 서브코드에 대해서 그 동작프로그램에 의해 서브코드 신호처리를 실행한다. 즉, 인가된 서브코드를 예를 들면 98프레임분을 1단위로서 조립하고, 그것에 포함되는 시간정보나 인덱스정보 등을 인식하고, 디스크모터(10)이나 나사모터(12) 등을 제어하기 위한 제어정보를 디지탈신호 처리회로(7)에 인가한다.
디지탈신호 처리회로(7)에 의해 복조되고 또한 C1, C2정정이 실행된 기록정보는 버스(8)을 거쳐서 CD-ROM디코더(9)에 인가된다. CD-ROM디코더에 인가되는 데이터는 예를 들면 2336바이트마다의 물리섹터에 의해 구획된 물리포맷이 규격화되어 있다. 예를 들면, CD-ROM규격에서는 각 섹터는 동기신호 12바이트, 헤더 4바이트 및 사용자데이터로 이루어진다. 사용자데이터의 영역에 대해서는 C1, C2에러정정에 의해서도 정정할 수 없는 에러를 정정가능하게 하기 위한 ECC와 같은 부가에러정정부호를 갖는 규격이 있다. CD-ROM디코더(9)는 RAM컨트롤러(90), 에러정정회로(91) 및 동기신호검출 디인터리브회로(92)를 구비하고, 버퍼RAM(16)에 접속되어 있다. RAM컨트롤러(90)은 버퍼RAM(16)에 대한 메모리컨트롤러이다. 동기신호검출 디인터리브회로(92)는 버스(8)에서 순차 공급되는 섹터마다의 데이터에서 동기신호를 검출해서 디인터리브처리를 실행한다. 에러정정회로(90)은 C1, C2정정에 의해서도 완전히 정정할 수 없는 에러가 있는 데이터에 대해서 부가에러정정부호에 의해 에러정정을 실행한다. 디인터리브되고 또 에러정정된 데이터는 RAM컨트롤러(90)의 제어에 의해서 순차 버퍼RAM(16)에 유지된다. 버퍼RAM(16)에 유지된 리드데이터는 단수 또는 복수 섹터단위로 ATAPI인터페이스회로(4)에서 호스트장치(3)으로 인가된다.
ATAPI인터페이스회로(4)는 커맨드버퍼(40) 및 프로토콜시퀀스 제어회로(41)을 구비한다. 프로토콜시퀀스 제어회로(41)은 ATAPI인터페이스의 규격에 준거한 인터페이스제어를 실행한다. ATAPI인터페이스는 퍼스널컴퓨터의 주체를 이루는 마이크로프로세서에 하드디스크장치 등을 인터페이스하는데 사용되고 있는 기존의 IDE인터페이스 컨트롤러를 거쳐서 CD-ROM드라이브장치를 제어할 수 있게 하기 위한 인터페이스사양이다. 이 ATAPI인터페이스에 있어서는 SCSI2의 사양에 준거한 커맨드가 패킷으로서 CD-ROM드라이브장치에 인가되고, 이것에 의해서 CD-ROM드라이브장치가 제어된다. 이와 같은 ATAPI인터페이스의 사양에 대한 상세한것은 미국의 외부기억장치의 업계단체SSF(Small Form Factor) Committee의 소속회사에 의해서 책정된 「ATA Packet Interface of CD-ROM Revision 1. 2」등이 있다. 상기 커맨드버퍼(40)은 호스트장치(3)에서 전송되어 오는 커맨드를 유지한다.
《마이크로컴퓨터》
상기 마이크로컴퓨터(5)는 중앙처리장치(CPU)(51), 8비트타이머(52), (53), 16비트타이머(54), A/D변환기(55), SCI회로(50), 플래시메모리(56), RAM(57) 및 입출력포트(59)를 단결정 실리콘과 같은 1개의 반도체기판에 구비하고, 특히 제한되지 않지만 그들 회로모듈이 내부버스(58)을 공유해서 이루어진다. 전기적 소거 및 라이트가능한 불휘발성 반도체메모리로서의 상기 플래시메모리(56)은 상기 CPU(51)의 동작프로그램이나 정수데이터를 저장하기 위한 메모리로 되고, CPU(51)은 그 동작프로그램에 따라서 상기 프리앰프(14), 디지탈신호 처리회로(7), CD-ROM디코더(9) 및 ATAPI인터페이스회로(4) 등을 제어한다. RAM(57)은 CPU(51)의 워크영역 등에 이용되는 워크RAM으로 된다.
플래시메모리(56)은 그의 기억영역이 소정 블럭(메모리블럭) 단위로 일괄 소거가능하게 되고, 블럭단위로 데이터를 리라이트할 수 있는 구성을 갖는다. 그러한 플래시메모리는 공지이므로 상세한 설명은 생략하지만, 그 메모리셀 트랜지스터는 부유게이트와 제어게이트를 갖는 2층 게이트구조의 절연게이트형 전계효과 트랜지스터에 의해 구성된다. 메모리셀 트랜지스터로의 정보의 라이트동작은 예를 들면 제어게이트 및 드레인에 고압전압을 인가하고 애벌랜치(avalanche)주입에 의해 드레인측에서 부유게이트로 전자를 주입하는 것에 의해 실현할 수 있고, 이라이트동작에 의해 메모리셀 트랜지스터는 그 제어게이트에서 본 임계값 전압이 라이트동작을 실행하지 않은 소거상태의 메모리셀 트랜지스터에 비해 높게 된다. 한편, 소거동작은 예를 들면 소스에 고압전압을 인가하고 터널현상에 의해 부유게이트에서 소스측으로 전자를 빼내는 것에 의해서 실현되고, 그것에 의해서 메모리셀 트랜지스터는 그 제어게이트에서 본 임계값전압이 낮게 된다. 라이트 및 소거상태의 어느것에 있어서도 메모리셀 트랜지스터의 임계값전압은 정의 전압레벨로 된다. 즉, 워드선에서 제어게이트에 인가되는 워드선 선택레벨에 대해서 라이트상태의 임계값전압은 높게 되고, 소거상태의 임계값전압은 낮게 된다. 쌍방의 임계값전압과 워드선 선택레벨이 그와 같은 관계를 갖는 것에 의해서 선택트랜지스터를 채용하지 않고 1개의 트랜지스터에 의해 메모리셀을 구성할 수 있다. 메모리셀 트랜지스터에 대한 소거동작 및 라이트동작을 위한 제어방법은 현재 다양한 형태가 실현되고 있고, 소스가 공통 접속된 메모리셀 트랜지스터에 대해서 일괄 소거를 실행하는 것이나 또는 제어게이트가 공통 접속된 메모리셀 트랜지스터에 대해서 일괄 소거를 실행하는 것이 있다. 그와 같은 형태에 따라서 블럭단위에서의 일괄 소거가 가능하게 되고 있다. 소거블럭의 지정은 소거블럭 지정레지스터에 대한 제어데이터의 설정에 의해 지시할 수 있다. 또, 플래시메모리에 대한 동작 즉 소거, 소거검증, 라이트, 라이트검증, 리드 등의 동작은 플래시메모리의 모드레지스터에 대한 제어정보의 설정에 의해 지시된다. 그들 설정은 중앙처리장치(51)이 그의 동작프로그램에 따라서 실행한다.
상기 내부버스(58)은 어드레스, 데이터 및 제어신호를 위한 버스를 총칭한다. 내부버스(8)에 포함되는 데이터버스나 어드레스버스는 상기 CD-ROM디코더(9) 및 ATAPI인터페이스회로(4)에 접속된다. 또, CPU(51)이 상기 CD-ROM디코더(9) 및 ATAPI인터페이스회로(4)를 액세스하기 위한 액세스 제어신호(510)은 특히 제한되지 않지만 중앙처리장치(51)에서 직접 출력되도록 도시되어 있고, 그와 같은 액세스 제어신호(510)은 리드신호, 라이트신호, 칩인에이블신호 등으로 된다. 이것에 의해서 CPU(51)은 커맨드버퍼(40)을 액세스하고, 또 RAM컨트롤러(90)에 제어정보를 설정하고, 또 RAM컨트롤러(90)을 거쳐서 또는 직접 버퍼RAM(16)을 액세스할 수 있다.
상기 16비트타이머(54)는 디스크(1)에 대한 픽업(11)의 선속도를 학습하기 위한 정보를 얻는다.
도 1에 있어서, (93)으로 표시되는 것은 CD-ROM디코더(9)에서 CPU(51)로 인가되는 인터럽트신호이고, 예를 들면 상기 부가에러정정코드에 의해서도 정정이 불가능한 에러를 발생한 것을 통지하는 인터럽트신호 등으로 된다. (42)로 표시되는 것은 ATAPI인터페이스회로(4)에서 CPU(51)로 인가되는 인터럽트신호이고, 예를 들면 호스트장치(3)에서 커맨드버퍼(40)에 커맨드가 공급된 것을 통지하는 인터럽트신호이다. 신호(501)로 표시되는 것은 프리앰프(14)의 특성을 제어하기 위한 제어정보이고, (502)로 표시되는 것은 디지탈신호 처리회로(7)에 있어서의 디지탈필터, C1, C2에러정정, 디지탈서보 및 속도제어의 각 기능을 제어하기 위한 제어정보이다. 그들 정보는 입출력포트(59)에서 출력된다.
《재생속도의 전환에 따른 회로특성의 변경》
CD-ROM드라이브장치(2)에 있어서 기록정보 재생속도(즉, 디스크(1)로부터의 기록정보의 리드속도)의 고속화는 CD-ROM드라이브장치(2)의 내부회로의 특성변경을 수반한다. 즉, 첫 번째로, 디스크모터(10)이나 나사모터(12)의 회전속도 등을 고속화해야 한다. 두 번째로, 그것에 따라서 디지탈서보나 디지탈필터의 계수를 변경해야 한다. 세 번째로, 리드속도의 고속화에 의해서 C1, C2에러정정에 소비되는 시간이 짧아지므로 C1, C2에러정정능력을 변경(저하)한 프로그램을 채용해야 한다. 예를 들면, 4배속시 최대 6심볼정정까지 가능할 때, 6배속에서는 그것을 최대 4심볼정정까지 정정능력을 저하하도록 한다. 네 번째로, 리드속도의 고속화에 의해서 리드신호 주파수가 높아지므로 프리앰프(14)의 이득이나 주파수대역 등의 특성을 변경해야 한다. 제1∼제3의 변경점에 대해서는 당연히 디지탈신호 처리회로(7)의 동작주파수도 고속화해야 한다. 제1∼제3의 수정점에 대한 처리는 하드웨어의 변경에 관계없이 CPU(51)의 동작프로그램의 변경에 의해서 용이하게 대처할 수 있다. 제4의 수정점에 대해서는 프리앰프(14)가 갖는 도시하지 않은 가산 및 파형등화기의 주파수특성을 4배속, 6배속, 8배속 그리고 그 이상으로 최적하게 대응할 수 있도록 전환하는 회로를 미리 갖는 것에 의해, 그 특성을 CPU(51)의 동작프로그램에 의해서 전환해서 대처할 수 있다. 이러한 주파수특성의 전환은 가산 및 파형등화된 신호의 2진화 정밀도를 향상시키기 위해 필요로 된다. 예를 들면, OP앰프를 주체로 하는 가산회로의 귀환계에 배치한 파형등화필터의 저항 및 용량의 값을 스위치를 거쳐서 선택하는 구성에 의해서 주파수 특성을 최적하게 전환할 수 있다
CD-ROM드라이브장치(2)에 있어서의 기록정보 재생동작 및 외부인터페이스동작은 CPU(51)이 응용프로그램에 포함되는 기록정보재생 제어프로그램 및 인터페이스 제어프로그램을 실행해서 제어한다. 예를 들면, 기록정보 재생속도를 4배속으로 하는 경우에는 4배속용 기록정보재생 제어프로그램을 채용하고, 기록정보 재생속도를 8배속으로 하는 경우에는 8배속용 기록정보재생 제어프로그램을 채용한다. 이 설명에 있어서, 기록정보재생 제어프로그램이라는 것은 디스크모터 등에 대한 서보제어, 디지탈신호 처리회로(7)에 대한 동작제어, CD-ROM디코더(9) 등을 위한 동작프로그램을 총칭한다. 상기 인터페이스 제어프로그램이라는 것은 ATAPI인터페이스회로(4)에 대한 커맨드나 데이터의 인터페이스제어 등을 실현하는 처리프로그램을 총칭한다. 따라서, CD-ROM드라이브장치(2)에 있어서 응용프로그램은 디스크에 기록된 정보를 재생해서 호스트장치(3)에 재생정보를 인가하기 위한 처리프로그램을 총칭한다.
《사용자프로그램영역의 리라이트에 의한 재생속도전환에 대한 대처》
도 2에 예시된 바와 같이, 상기 플래시메모리(56)은 그의 기억영역에 리부팅프로그램영역(560)과 응용프로그램영역(이하, 사용자프로그램영역이라고도 한다)(561)을 갖는다. 사용자프로그램영역(561)은 응용프로그램M2를 저장하기 위한 영역으로 된다. 상기 리부팅프로그램영역(560)은 입력제어프로그램M1, 소거/라이트 제어프로그램M3, 전송제어프로그램M4 등을 저장하는 영역으로 된다.
입력제어프로그램M1은 외부에서 ATAPI인터페이스회로(4)에 공급된 라이트 또는 리라이트대상으로 되는 전부 또는 일부의 응용프로그램을 예를 들면버퍼RAM(16)에 페치하기 위해 상기 CPU(51)이 실행하는 인터페이스용 프로그램으로 된다. 소거/라이트 제어프로그램M3은 버퍼RAM(16)에 페치된 상기 전부 또는 일부의 응용프로그램을 상기 사용자프로그램영역(561)에 라이트제어하기 위해 CPU(51)이 실행하는 리라이트 제어프로그램으로 된다. 전송제어프로그램은 리부팅프로그램영역(560)에 저장되어 있는 소거/라이트 제어프로그램M3을 CPU가 워크RAM(57)로 전송제어하는 프로그램으로 된다. CPU(51)은 워크RAM(57)로 전송된 소거/라이트 제어프로그램M3을 실행하고 사용자프로그램영역(561)에 버퍼RAM(16)내의 전부 또는 일부의 응용프로그램M2를 라이트하게 된다.
상기 리부팅프로그램영역(560)은 또 벡터어드레스가 저장되는 벡터테이블(560A)와 그 벡터테이블(560A)의 벡터어드레스에 의해서 참조되는 소정의 프로그램의 저장영역(560B)를 포함한다. 상기 벡터테이블(560A)는 리세트벡터BCT1 및 ATAPI인터럽트벡터BCT2 등을 포함한다. 프로그램의 저장영역(560B)는 리세트 처리프로그램PRG1 및 ATAPI인터럽트 처리프로그램PRG2 등을 포함한다.
상기 리세트 처리프로그램PRG1은 상기 리세트벡터BCT1에 의해서 참조된다. 즉, 파워온 리세트 또는 하드웨어 또는 소프트웨어 리세트의 지시가 있으면 CPU(51)은 상기 리세트벡터BCT1을 리드하고, 그것에 의해서 지시되는 상기 리세트 처리프로그램PRG1의 선두어드레스로 그의 처리를 분기시킨다.
도 3에는 리세트처리의 흐름도가 도시된다. 리세트처리에서는 우선 내부의 초기화 또는 내부회로의 초기설정이 실행된다(S1). 특히, 마이크로컴퓨터(5)는 그 후 응용프로그램의 온보드 라이트 또는 리라이트를 실행할지의 여부, 즉 사용자 리부팅모드인지의 여부를 판정한다(S2). 이 예에서는 사용자 리부팅모드의 기동조건은 특히 제한되지 않지만 CD-ROM드라이브장치(2)의 전원투입시에 소정의 스위치 예를 들면 디스크의 이젝트 스위치를 누르는 것으로 된다. 이젝트 스위치 등을 조작해서 지시되는 사용자 리부팅모드를 특히 강제 리부팅모드라고도 한다. 상기 강제 리부팅모드가 아니면 상기 응용프로그램M2의 실행으로 이행한다(S3). 상기 사용자리부팅모드인 경우에는 리부팅플래그가 세트상태로 되고(S4), 그 후 ATAPI인터럽트를 대기하게 된다(S5). 리부팅플래그는 예를 들면 CPU(51)에 포함되는 도시를 생략하는 플래그 또는 제어레지스터의 소정의 1비트가 할당된다.
상기 ATAPI인터럽트 처리프로그램PRG2는 상기 ATAPI인터럽트벡터BCT2에 의해서 참조된다. 즉, ATAPI프로토콜에 있어서 ATAPI인터페이스회로(4)에 공급되는 일련의 정보의 선두에는 커맨드가 배치되어 있다. 커맨드는 커맨드버퍼(40)에 페치된다. 커맨드가 커맨드버퍼(40)에 페치되면 ATAPI인터페이스회로(4)는 인터럽트신호(42)에 의해서 그 취지를 CPU(51)에 통지한다. CPU(51)은 ATAPI인터럽트를 수취하면 ATAPI인터럽트벡터BCT2를 참조해서 ATAPI인터럽트 처리프로그램PRG2로 그의 처리를 분기시킨다.
도 4에는 ATAPI인터럽트 처리프로그램의 흐름도가 도시된다. CPU(51)은 ATAPI인터럽트가 있으면 커맨드버퍼(40)에서 커맨드를 리드하고, 그것을 해독한다(S10). 그리고, 상기 리부팅플래그를 검사한다. 리부팅플래그가 세트상태가 아닌 경우에는 그 커맨드의 해독결과에 따라서 응용프로그램M2에 포함되는 소정의 처리루틴을 실행하고, 예를 들면 디스크(1)에서 기록정보를 리드하기 위한 기록정보 재생제어를 개시한다(S12). 상기 리부팅플래그가 세트상태인 경우에 그 커맨드가 소정의 커맨드(벤더유니크커맨드)인 경우에는 기록정보재생 제어프로그램을 온보드라이트하기 위한 리부팅프로그램이 실행된다.
이 예에 있어서, 상기 리부팅프로그램의 실행이라는 것은 상기 CPU(51)이 상기 입력제어프로그램M1을 실행하고 호스트장치(3)에서 ATAPI인터페이스회로(4)에 공급된 기록정보재생 제어프로그램을 버퍼RAM(16)에 저장함과 동시에 상기 전송 제어프로그램M4를 실행하고 소거/라이트 제어프로그램M3을 상기 워크RAM(57)로 전송한 후, 워크RAM(57)이 보유하는 소거/라이트 제어프로그램M3을 실행하고 버퍼RAM(16)내의 전부 또는 일부의 응용프로그램을 사용자프로그램영역(561)에 라이트 제어하는 것이다. 또한, 상기 벤더유니크커맨드는 특히 제한되지 않지만 ATAPI인터페이스사양에 있어서 규격화되어 있지 않은(또는 미사용의) 코드정보로 된다.
도 2에 있어서, 사용자프로그램영역(561)에 저장되는 응용프로그램M2는 메인프로그램과 서브루틴으로 나뉘어진 처리프로그램 및 분기지 서브루틴의 프로그램어드레스를 부여하는 2차 벡터테이블 등에 의해서 구성되어 있다. 도 3의 S2에 있어서 사용자리부팅모드가 아니라는 것이 판정된 후, CPU(51)의 도시하지 않은 프로그램카운터는 응용프로그램M2에 있어서의 처리프로그램의 선두어드레스에 강제되고(강제로 설정되고), 이것에 의해 그 프로그램어드레스를 기점으로 응용프로그램을 실행한다.
상기 플래시메모리(56)은 도 5에 예시된 바와 같이 일괄 소거 단위로 되는 여러개의 메모리블럭(BLK0∼BLKn)을 갖는다. 이 때, 상기 리부팅프로그램영역(560) 및 사용자프로그램영역(561)을 서로 다른 메모리블럭에 할당한다. 예를 들면, 메모리블럭BLK0이 리부팅프로그램영역(560)에 할당되어 있다.
소거/라이트 제어프로그램M3은 사용자프로그램영역(561)만을 라이트대상으로 한다. 즉, 도 5에 따르면, 소거/라이트 제어프로그램M3은 그 제어동작상 소거/라이트 블럭지정 레지스터에 대해서 메모리블럭BLK0을 소거, 라이트대상으로 하는 경우는 없다. 즉, 소거/라이트 제어프로그램M3은 리부팅프로그램영역(560)을 라이트대상으로는 하지 않는다. 이러한 의미에 있어서 리부팅프로그램영역(560)의 리라이트가 저지되고 있다.
상기 리부팅프로그램영역(560)이 보유하고 있는 프로그램은 ATAPI인터페이스회로(4)를 거쳐서 리라이트할 수 없으므로 초기적인 라이트의 신뢰성이 높아야 한다. 그것을 보증하기 위해서는 특히 제한되지 않지만 마이크로컴퓨터의 제조공정에서 그들 프로그램을 라이트하는 것이 바람직하다.
도 6에는 마이크로컴퓨터의 제조공정이 개략적으로 도시된다. 예를 들면, 다수의 마스크패턴을 이용해서 단결정 실리콘 웨이퍼상에 마이크로컴퓨터를 구성하는 회로를 집적한 웨이퍼를 제작한다(스텝P1). 제작된 웨이퍼에 대해서 웨이퍼검사가 실행되고(스텝P2), 그리고 웨이퍼상의 회로기능에 대한 프로브검사가 실행되고, 웨이퍼상의 마이크로 컴퓨터칩에 대한 양부(양호 및 불량)가 판정된다(스텝P3). 프로브검사후에 다이싱에 의해서 웨이퍼에서 여러개의 마이크로 컴퓨터칩이 잘라내어지고, 양품칩이 본딩이나 패키징(포장)공정을 거쳐서 조립된다(스텝P4). 조립후에 분위기온도나 동작전압을 허용한도의 상한으로 해서 마이크로컴퓨터를 동작시키고, 가까운 장래에 발생할 불량을 미리 현재화(顯在化)시키기 위한 에이징을 실행한다(스텝P5). 에이징후에 테스터를 사용해서 마이크로컴퓨터LSI의 선별을 실행한다(스텝P6). 이 선별공정에는 내장플래시메모리(56)에 대한 소거, 라이트테스트가 포함된다. 이 공정을 이용해서 리부팅프로그램영역에 상기 소거/라이트 제어프로그램 등의 리부팅프로그램의 라이트를 실행한다. 라이트된 리부팅프로그램에 대해서는 그 동작테스트를 함께 실행하는 것도 용이하다. 선별공정을 거친 후 마이크로컴퓨터LSI는 스톡(stock)되고, 출하전에 출하검사가 실행되고(스텝P7), 검사에서 이상이 없는 것이 출하된다(스텝P8).
상술한 바와 같이, 소거/라이트 제어프로그램M3은 리부팅프로그램영역(560)을 소거/라이트대상으로는 하지 않는다. 이것은 소위 소프트웨어 프로텍트이다. CPU가 폭주하거나 또는 사용자프로그램의 불비에 의해서 리부팅프로그램영역(560)이 바람직하지 않게 소거, 라이트되지 않도록 하기 위해 하드웨어 프로텍트의 수단을 구비할 수 있다.
도 7에는 하드웨어 프로텍트를 위한 1예가 도시된다. 도 7에 있어서 (562)는 일괄 소거 대상으로 하는 메모리블럭을 지정하는 소거블럭 지정레지스터이다. 예를 들면, 도 5에 대응시키면, 소거블럭 지정레지스터(562)는 메모리블럭BLK0∼BLKn에 1대 1 대응되는 제어비트ES0∼ESn을 갖고, 제어비트ES0∼ESn은 논리값1에 의해서 대응메모리블럭의 소거를 플래시메모리(56)에 지시한다. (563)은 소거블럭 지정레지스터(562)에 의한 소거지시에 관계없이 소거를 금지하는 메모리블럭을 지정하기 위한 소거금지블럭 지정레지스터이다. 예를 들면, 도 5에 대응시키면, 소거금지블럭 지정레지스터(563)은 메모리블럭BLK0∼BLKn에 1대 1 대응되는 제어비트IH0∼IHn을 갖고, 제어비트IH0∼IHn은 논리값0에 의해서 대응메모리블럭의 소거를 금지한다. 소거블럭 지정레지스터(562)와 소거금지블럭 지정레지스터(563)의 대응비트는 각각 2입력 앤드게이트AND0∼ANDn에 공급되고, 앤드게이트AND0∼ANDn의 출력이 플래시메모리(56)에 대한 소거블럭 지시정보로서 공급된다. 소거블럭 지정레지스터(562) 및 소거금지블럭 지정레지스터(563)의 쌍방에 대한 데이터설정은 CPU(51)이 실행한다. 특히, 소거금지블럭 지정레지스터(563)에 대한 데이터설정은 초기화(이니셜라이즈) 리세트로 실행할 수 있다. 예를 들면, IH0을 논리값0으로 설정한다. 이 구성에 의하면, 소거/라이트 제어프로그램M3의 실행중에 CPU(51)이 폭주했을 때, 레지스터(563)의 값이 바람직하지 않게 리라이트되지 않는 한, 레지스터(562)의 값이 변화되어도 리부팅프로그램영역(560)은 소거되지 않는다.
도 8에는 하드웨어 프로텍트를 실현하기 위한 다른 예가 도시되어 있다. 도 8에 있어서 (562)는 도 7과 동일한 소거블럭 지정레지스터이다. (564)는 마이크로컴퓨터(5)의 외부단자T0∼Ti에서 공급되는 데이터를 디코드하고 메모리블럭단위의 소거금지신호를 출력한다. 상기 소거블럭 지정레지스터(562)는 내부버스(58)을 거쳐서 CPU(51)에 의해서 데이터 설정된다. 내부버스(58)과 소거블럭 지정레지스터(562)의 입력 사이에는 2입력 앤드게이트AND0∼ANDn이 배치되어 있다. 앤드게이트AND0∼ANDn의 한쪽의 입력에는 내부버스(58)의 신호선이 비트마다 공급되고, 다른쪽의 입력에는 상기 소거금지신호가 비트마다 공급된다. 따라서, 논리값0의 소거금지신호가 공급되는 앤드게이트의 출력은 상기 논리값0으로 되므로 그 앤드게이트의 출력에 대응되는 소거블럭 지정레지스터의 제어비트는 논리값1(소거지시레벨)로 되는 일은 없다. 예를 들면, 메모리블럭BLK0이 리부팅프로그램영역에 할당될 때, 앤드게이트AND0의 출력이 항상 논리값0으로 되도록 외부단자T0∼Ti를 풀업 또는 풀다운해 두면 CPU(51)이 폭주한 경우에도 리부팅프로그램영역(560)이 리라이트될 우려는 전혀 없다.
이상 설명한 바와 같이, 상기 마이크로컴퓨터(5)가 ATAPI인터페이스회로(4)나 CD-ROM디코더(9) 등과 함께 배선기판(보드)에 실장되어 구성된 CD-ROM드라이브장치(2)에 있어서 리세트시에 상기 강제 리부팅모드를 설정하는 것에 의해 상기 마이크로컴퓨터(5)의 CPU(51)은 내장플래시메모리(56)의 리부팅프로그램을 실행해서 사용자프로그램영역(561)의 응용프로그램M2의 전부 또는 일부를 호스트장치(3)에서 ATAPI인터페이스회로(4)에 공급되는 새로운 프로그램으로 갱신할 수 있다. 이것에 의해, 금후 매우 짧은 사이클로 발생할 재생속도 전환기간에 재생속도의 향상에 따라서 필요한 수정을 가한 응용프로그램M2의 전부 또는 일부를 리라이트하는 것만으로 CD-ROM드라이브장치(2)에 있어서의 그와 같은 재생속도의 전환에 즉시 또는 적시에 대응할 수 있게 된다. 응용프로그램의 리라이트 또는 갱신은 응용프로그램의 전부인 것에 한정되지 않고 그의 일부라도 좋다. 응용프로그램에 포함되는 재생 제어프로그램만 리라이트 대상으로 해도 좋다. 요컨대, 필요한 수정이 응용프로그램의 전체에 가해지면 그의 전체를, 또 필요한 수정이 응용프로그램의 일부에만 가해지면 상기 일부를 리라이트하면 좋다.
이 때, 상기 플래시메모리(56)의 리라이트대상은 사용자프로그램영역(561)로 된다. 리부팅프로그램영역(560)은 리라이트대상이 아니므로 플래시메모리(56)의 리라이트동작 도중에 이상이 있었던 경우에도 재차 리부팅프로그램을 실행하면 즉시 사용자프로그램영역(561)에 대한 리라이트동작으로 이행할 수 있고, 리라이트 도중에 있어서의 이상 상태로부터의 복구에 시간이 걸리는 일은 없다.
CD-ROM드라이브장치(2)에 있어서 응용프로그램M2를 저장하고 있는 것은 상기 플래시메모리(56) 뿐이므로 리라이트의 제어수순을 간소화할 수 있고, 또 리라이트시간도 단축할 수 있다. 또, 응용프로그램과 리부팅프로그램은 함께 플래시메모리(56)에 저장되므로 각각의 프로그램이 별개의 메모리에 저장되는 경우에 비해 CD-ROM드라이브장치(2)의 물리적인 규모의 증대를 극력 억제해서 상기 효과를 얻을 수 있다.
상기한 예에서는 리부팅프로그램은 입력제어프로그램, 리라이트 제어프로그램 및 전송제어프로그램을 포함하고 있다. 따라서, 사용자프로그램영역(561)의 갱신시에 호스트장치(3)은 상기 플래시메모리(56)에 대한 라이트커맨드에 이어서 사용자프로그램영역(561)에 라이트할 응용프로그램을 CD-ROM드라이브장치(2)로 전송하면 좋고 리라이트 제어프로그램을 전송할 필요는 없으므로, 사용자프로그램영역(561)을 갱신하는 처리시간을 더욱 단축할 수 있다.
상기 리부팅프로그램영역(560)은 리세트벡터BCT1과 리세트처리 프로그램PRG1의 저장영역을 갖고 있다. 이 때, 상기 CPU(51)은 리세트의 지시에 응답해서 상기 리세트벡터BCT1을 참조하는 것에 의해 상기 리세트처리 프로그램PRG1의 실행으로 이행한다. 리세트처리 프로그램PGR1의 실행도중에는 이젝트 스위치가 눌려졌는지의 여부에 따라서 호스트장치(3)으로부터의 리라이트 커맨드에 응답할 수 있는 강제 리부팅모드인지의 여부를 판정한다. 강제 리부팅모드일 때에는 상기 리라이트커맨드의 입력을 대기하고 상기 리부팅프로그램의 실행으로 천이하고, 강제 리부팅상태가 아닐 때에는 상기 사용자프로그램영역의 응용프로그램을 실행가능한 상태로 천이한다. 따라서, 플래시메모리(56)의 리라이트시에 이상이 발생해도 리세트를 실행하여 강제 리부팅모드의 지시를 실행하면, 그 이상(異常)에서 용이하게 복구되어 플래시메모리(56)을 리라이트하는 처리로 되돌아갈 수 있다. 이 점에 있어서도 사용자프로그램영역을 갱신하는 처리시간을 단축할 수 있다.
상기 플래시메모리(56)은 일괄 소거 단위로 되는 여러개의 메모리블럭BLK0∼BLKn을 갖고 있다. 이 때, 상기 리부팅프로그램영역과 상기 사용자프로그램영역을 서로 다른 메모리블럭에 할당하고 있으므로 사용자프로그램영역(561)에 대한 소거동작을 효율화할 수 있다. 즉, 사용자프로그램영역(561)에 리라이트할 때 상기 영역의 소거동작을 함께 실행할 수 있다.
호스트장치(3)과의 인터페이스에 ATAPI인터페이스회로(4)를 채용하므로, CD-ROM드라이브장치(2)는 SCSI인터페이스사양 등의 디스크 드라이브장치에 관해서 축적된 과거의 소프트웨어 자산을 계승하면서 확장 IDE와 같은 새로운 인터페이스를 채용할 수 있고, 또 비용의 저감을 도모할 수 있다. 상기 ATAPI인터페이스사양은 퍼스널컴퓨터 등의 분야에서 널리 보급되고 있는 IDE인터페이스에 준거하고 있으므로 사용자프로그램영역(561)의 리라이트시에 CD-ROM드라이브장치 제조업체는 그 생산라인상의 호스트시스템을 이용할 수 있다. 또, 퍼스널컴퓨터의 세트제조업체는 CD-ROM드라이브장치를 퍼스널컴퓨터에 조립한 채의 상태로 상기 퍼스널컴퓨터를 이용해서 재생제어프로그램의 리라이트를 실행할 수 있다.
《퍼스널컴퓨터》
도 9에는 상기 CD-ROM드라이브장치(2)를 내장한 퍼스널컴퓨터(30)의 1예가 도시되어 있다. 이 퍼스널컴퓨터(30)에 있어서 마이크로프로세서(31)은 특히 제한되지 않지만 PCI(Peripheral Component Interconnect)버스컨트롤러(32)를 거쳐서 PCI버스의 규격에 준거한 내부버스(PCI버스)(33)에 접속되어 있다. 상기 내부버스(33)에는 주변컨트롤러로서 대표적으로 도시된 IDE인터페이스 컨트롤러(34)가 결합되고, 상기 CD-ROM드라이브장치(2)는 인터페이스 케이블로서의 ATAPI버스(35)를 거쳐서 상기 IDE인터페이스 컨트롤러(34)에 결합되어 있다. 상기 IDE인터페이스 컨트롤러(34)는 하드디스크장치(36)과 내부버스(33)의 인터페이스제어도 실행한다. 상기 마이크로프로세서(31), PCI버스컨트롤러(32), 내부버스(33) 및 IDE인터페이스 컨트롤러(34)는 PC보드(메인보드)(37)을 구성한다. 상기 PC보드(37), CD-ROM드라이브장치(2) 및 하드디스크장치(36)은 공통 케이스에내장되어 있다. 또한, 도시는 생략하고 있지만, 상기 PC보드상에 그밖의 주변컨트롤러로서 그래픽 액셀러레이터, 프린터 등과의 병렬 인터페이스를 실행하는 센트로닉스(Centronics) 인터페이스 컨트롤러 및 플로피디스크 드라이브장치와의 인터페이스제어를 실행하는 플로피디스크 컨트롤러 등이 내부버스(33)에 접속되어 실장되어 있다. 도 9를 도 1에 대응시키면, 도 1의 호스트장치(3)은 도 9의 퍼스널컴퓨터(30)에 있어서 CD-ROM드라이브장치(2)를 제거한 부분으로 된다.
상기 퍼스널컴퓨터(30)에 있어서는 CD-ROM드라이브장치(2)와 IDE인터페이스 컨트롤러(34)의 접속상태를 변경하지 않거나 또는 CD-ROM드라이브장치(2)를 퍼스널컴퓨터(30)의 케이스에서 떼어내지 않고 상기 마이크로프로세서(31)에 유틸리티 프로그램을 실행시켜 CD-ROM드라이브장치(2)로 리라이트커맨드나 새로운 응용프로그램을 전송해 주면, 상기와 마찬가지로 CD-ROM드라이브장치(2)의 재생제어프로그램을 간단히 갱신할 수 있다.
《사용자프로그램영역의 리라이트동작》
도 10∼도 15에는 도 9에 도시한 퍼스널컴퓨터(30)에 탑재된 상태에서 CD-ROM드라이브장치(2)의 응용프로그램을 리라이트하는 동작을 순서를 따라 도시하고 있다. 도 10∼도 15에 있어서 CD-ROM드라이브장치(2)는 퍼스널컴퓨터(30)의 케이스(38) 외부에 확대해서 도시되어 있다.
도 10은 초기상태를 도시한 도면으로서, CD-ROM드라이브장치(2)는 ATAPI버스(35)를 거쳐서 상기 IDE인터페이스 컨트롤러(34)에 접속되어 있다. 상기 입력제어프로그램M1, 소거/라이트 제어프로그램M3, 전송제어프로그램M4가 저장되어 있는 리부팅프로그램영역(560)은 응용프로그램M2가 저장되는 사용자프로그램영역(561)과는 서로 다른 메모리블럭에 할당되어 있다.
도 11에 도시한 바와 같이, 응용프로그램을 리라이트할 때에는 예를 들면 CD-ROM드라이브장치(2)를 리세트함과 동시에 디스크의 이젝트 스위치를 누르고 CD-ROM드라이브장치(2)에 상기 강제 리부팅모드를 설정한다. 예를 들면, 플로피디스크FD에는 버그가 수정된 또는 버전업된 응용프로그램과 그 응용프로그램을 CD-ROM드라이브장치(2)에 라이트하기 위한 유틸리티 프로그램이 저장되어 있다. 이 유틸리티 프로그램은 응용프로그램을 CD-ROM드라이브장치(2)로 전송하기 위한 전송소프트웨어이다. 상기 플로피디스크FD를 퍼스널컴퓨터(30)의 플로피디스크 드라이브에 삽입해서 기동시킨다. 유틸리티 프로그램은 하드디스크장치(36)에 저장되어 있어도 좋다.
기동된 전송소프트웨어의 지시에 따라서 퍼스널컴퓨터측에서 키조작 등이 실행되면, 퍼스널컴퓨터(30)의 마이크로프로세서(31)은 플래시메모리(56)에 대한 라이트커맨드(상기 벤더유니크커맨드)를 IDE인터페이스 컨트롤러(34)를 거쳐서 출력한다. ATAPI인터페이스회로(4)는 상기 라이트커맨드를 인식하면 ATAPI인터럽트신호(42)를 CPU(51)에 인가한다. 이것에 의해서, CPU(51)은 입력제어프로그램M1을 실행하고 우선 최초로 버퍼RAM(16)의 내용을 클리어한다.
도 12에 도시된 바와 같이, 퍼스널컴퓨터(30)의 마이크로프로세서(31)은 상기 라이트커맨드에 이어서 새로운 응용프로그램(신응용프로그램)을 IDE인터페이스 컨트롤러(34)를 거쳐서 출력한다. CPU(51)은 입력제어프로그램M1을 실행한다.이것에 의해, CPU(51)은 ATAPI인터페이스회로(4)에 공급된 응용프로그램을 버퍼RAM(16)에 순차 저장해 간다. ATAPI인터페이스회로(4)로 순차 공급되어 오는 정보에 패리티가 부가되어 있는 경우에는 패리티체크를 실행하고 에러가 있는 데이터블럭에 대해서 재송(再送)이 요구된다.
도 13에 도시된 바와 같이, 신응용프로그램이 버퍼RAM(16)에 저장된 후, CPU(51)은 전송제어프로그램M4의 실행으로 이행한다. 이것에 의해서, CPU(51)은 소거/라이트 제어프로그램M3을 마이크로컴퓨터(5)의 워크RAM(57)로 전송제어한다.
도 14에 도시된 바와 같이, 소거/라이트 제어프로그램M3이 워크RAM(57)로 전송완료된 후, CPU(51)은 그 워크RAM(57)에 저장된 소거/라이트 제어프로그램M3의 실행으로 이행한다. 이 때의 소거블럭의 지정은 소거/라이트 제어프로그램M3에 따라서 실행된다. 또, 마이크로컴퓨터(5)에는 라이트 및 소거용 고전압이 공급되어 있다. 소거/라이트 제어프로그램이 실행되는 것에 의해, 우선 플래시메모리(56)의 사용자프로그램영역(561)이 소거 및 소거검증된다. 다음에, 도 15에 도시된 바와 같이 CPU(51)은 버퍼RAM(16)에 저장되어 있는 새로운 재생제어프로그램으로서의 신응용프로그램을 순차 플래시메모리(56)의 사용자프로그램영역(561)에 라이트동작 및 라이트검증동작을 실행해 간다. 특히 제한되지 않지만, 라이트어드레스 등은 소거/라이트 프로그램에 의해서 규정되어 있다.
라이트동작 종료후, CD-ROM드라이브장치(2)가 리세트되는 것에 의해, CD-ROM드라이브장치(2)는 갱신된 응용프로그램에 따라서 CD-ROM의 재생제어를 실행할 수있다.
도 16에는 상기 사용자프로그램영역을 리라이트하는 동작의 흐름도가 개략적으로 도시되어 있다. 상기 전송소프트웨어가 기동되면, CPU(51)은 마이크로프로세서(31)에서 ATAPI인터페이스회로(4)를 거쳐서 공급되는 상기 신응용프로그램을 버퍼RAM(16)으로 전송함과 동시에 소거/라이트 제어프로그램을 워크RAM(57)로 전송한다(S20). 전송시에는 패리티체크 또는 총합체크를 실행하고, 전송이상이 있는지를 감시한다(S21). 전송이상이 있는 경우에는 그 응용프로그램을 재송한다. 버퍼RAM(16) 및 워크RAM(57)로의 전송이 완료되면, 플래시메모리(56)의 사용자프로그램영역(561)이 소거되고(S22), 다음에 버퍼RAM(16)으로 전송된 신응용프로그램이 플래시메모리(56)의 사용자프로그램영역(561)에 라이트된다(S23). 라이트데이터에 대해서는 라이트검증이 실행된다(S24).
상술한 바와 같은 사용자프로그램영역(561)의 리라이트처리는 CD-ROM드라이브 제조업체가 호스트장치(3)을 사용해서 실시할 수 있는 것은 물론이지만, 도 10∼도 16에 도시한 처리는 예를 들면 CD-ROM드라이브장치(2)가 퍼스널컴퓨터(30)에 표준 탑재될 때, 퍼스널컴퓨터 제조업체가 퍼스널컴퓨터(30)상에서 CD-ROM드라이브장치(2)를 평가하는 기간에 버그가 수정된 응용프로그램을 사용자프로그램영역(561)에 재설치하는 방법으로서 위치결정할 수 있다.
도 10∼도 16에 따라서 설명한 바와 같이, CD-ROM드라이브장치(2)의 사용자프로그램영역(561)의 리라이트에서는 퍼스널컴퓨터(30)의 PC보드(37)을 호스트장치로 하고, 이 PC보드(37)을 거쳐서 CD-ROM드라이브장치(2)의 응용프로그램을 리라이트할 수 있다. 따라서, CD-ROM드라이브장치(2)를 퍼스널컴퓨터(30)에서 떼어내지 않고 상기 마이크로프로세서(31)을 이용해서 CD-ROM드라이브장치(2)의 재생제어프로그램 및 인터페이스 제어프로그램 등의 응용프로그램의 전부 또는 일부를 변경할 수 있다.
따라서, CD-ROM드라이브장치(2)에 있어서의 재생속도의 전환사이클이 매우 짧아지고 CD-ROM드라이브장치(2)가 퍼스널컴퓨터(30)에 표준 탑재되고, 그것에 의해서 CD-ROM드라이브 제조업체는 퍼스널컴퓨터 제조업체마다 서로 다른 사양으로 CD-ROM드라이브장치(2)의 응용프로그램을 작성해야 하는 상황하에 있어서, 퍼스널컴퓨터 제조업체는 CD-ROM드라이브장치(2)의 평가기간을 통해서 드라이브 제조업체에서 응용프로그램에 관한 버그의 수정이나 추가기능을 받으면서 퍼스널컴퓨터(30)에 조립된 채의 상태로 CD-ROM드라이브장치(2)의 평가를 실행할 수 있다. 상술한 바와 같이, CD-ROM드라이브장치(2)는 사용자프로그램영역(561)에 대한 리라이트처리의 능률화, 리라이트 처리중에 있어서의 이상상태에서 신속하게 복구해서 리라이트 처리로 되돌아갈 수 있는 등의 수단이 강구되어 있으므로, CD-ROM드라이브장치(2)의 평가기간을 통해서 마이크로컴퓨터(5)에 내장된 플래시메모리(56)을 수정된 응용프로그램으로 효율적으로 리라이트할 수 있다. 따라서, 퍼스널컴퓨터 제조업체는 디스크 드라이브장치의 평가기간을 단축할 수 있다.
이것에 의해, CD-ROM드라이브장치(2)에 있어서의 재생속도의 전환사이클이 매우 짧아져 있는 상황하에 있어서, 퍼스널컴퓨터 제조업체는 보다 재생속도가 빠른 CD-ROM드라이브장치(2)를 표준 탑재한 퍼스널컴퓨터(30)을 효율적으로 시장에투입할 수 있게 된다.
또, 퍼스널컴퓨터의 OS(Operating System)가 변경(버전업)되는 경우에 변경된 OS에 대응되는 커맨드를 처리하는 인터페이스기능을 응용프로그램의 인터페이스 제어프로그램에 반영하는 수정에도 즉시 대응할 수 있다.
상기 응용프로그램은 인터넷 등의 통신수단에 의해 CD-ROM드라이브장치(2)의 제조나 판매회사에서 퍼스널컴퓨터 제조업체나 그 판매회사로 또는 퍼스널컴퓨터 제조업체나 그 판매회사에서 퍼스널컴퓨터의 최종수요자에게 공급하는 것도 가능하다. 이것에 의하면, 퍼스널컴퓨터 제조업체나 그 판매회사 또는 퍼스널컴퓨터의 최종수요자에게 순식간에 상기 응용프로그램을 전송할 수 있다. 따라서, 상기 퍼스널컴퓨터(30)이 인터넷으로 액세스하는 하드웨어 및 소프트웨어를 구비한 것이면 버전업 또는 버그가 수정된 재생제어 프로그램을 사용자프로그램영역(561)에 간단히 재설치할 수 있고, 퍼스널컴퓨터 제조업체에 의한 CD-ROM드라이브장치의 평가기간의 단축은 물론 최종수요자에 대해서도 CD-ROM드라이브장치의 기능변경을 용이하게 할 수 있다.
《소거/라이트 제어프로그램의 다운로드화》
상기 구성에서는 플래시메모리(56)의 리부팅프로그램영역(561)에 소거/라이트 제어프로그램M3을 배치하고, 그곳에서 워크RAM(57)로 내부전송해서 상기 프로그램을 CPU(51)이 실행하도록 하였다. 이에 대해, 소거/라이트 제어프로그램M3을 플래시메모리(56)에는 저장하지 않고 사용자프로그램영역(561)을 리라이트할 때마다 상기 호스트장치(3) 또는 PC보드(37)을 거쳐서 워크RAM(57)에 다운로드하도록할 수 있다. 이것에 의하면, 플래시메모리(56)은 그 소거/라이트 제어프로그램을 보유하지 않으므로, CPU(51)이 폭주해서 플래시메모리(56)에 저장되어 있는 프로그램을 바람직하지 않게 실행하는 경우가 있어도 상기 플래시메모리(56)이 잘못해서 리라이트될 우려는 완전히 해소된다.
도 17∼도 22에는 플래시메모리(56)이 그 소거/라이트 제어프로그램M3을 보유하지 않은 경우에 있어서 퍼스널컴퓨터(30)에 탑재된 상태로 CD-ROM드라이브장치(2)의 응용프로그램을 리라이트하는 동작을 순서에 따라서 도시하고 있다. 도 17∼도 22에 있어서 CD-ROM드라이브장치(2)는 퍼스널컴퓨터(30)의 케이스(38)의 외부에 확대해서 도시하고 있다.
도 17은 초기상태를 도시한 도면으로서, CD-ROM드라이브장치(2)는 ATAPI버스(35)를 거쳐서 상기 IDE인터페이스 컨트롤러(34)에 접속되어 있다. 리부팅프로그램영역(560)에는 상기 소거/라이트 제어프로그램M3은 저장되어 있지 않다.
도 18에 도시된 바와 같이, 응용프로그램을 리라이트할 때에는 예를 들면 CD-ROM드라이브장치(2)를 리세트함과 동시에 디스크의 이젝트 스위치를 누르고 CD-ROM드라이브장치(2)에 상기 강제 리부팅모드를 설정한다. 예를 들면, 플로피디스크FD에는 버그가 수정된 또는 버전업된 응용프로그램, CPU(51)이 실행하고 그 응용프로그램을 사용자프로그램영역(561)에 라이트하기 위한 소거/라이트 제어프로그램 및 상기 마이크로프로세서(31)이 실행하고 CPU(51)에 사용자프로그램영역(561)의 리라이트처리를 실행시키기 위한 유틸리티 프로그램이저장되어 있다. 이 유틸리티 프로그램은 응용프로그램 및 소거/라이트 제어프로그램을 CD-ROM드라이브장치(2)로 전송하기 위한 전송소프트웨어로 할 수 있다. 상기 플로피디스크FD를 퍼스널컴퓨터(30)의 플로피디스크 드라이브에 삽입해서 유틸리티 프로그램을 기동시킨다. 유틸리티 프로그램은 하드디스크장치(36)에 저장되어 있어도 좋다.
기동된 전송소프트웨어의 지시에 따라서 퍼스널컴퓨터측에서 키조작 등이 실행되면, 퍼스널컴퓨터(30)의 마이크로프로세서(31)은 플래시메모리(56)에 대한 라이트 커맨드(상기 벤더유니크커맨드)를 IDE인터페이스 컨트롤러(34)를 거쳐서 출력한다. ATAPI인터페이스회로(4)는 상기 라이트커맨드를 인식하면, ATAPI인터럽트신호(42)를 CPU(51)에 인가한다. 이것에 의해서 CPU(51)은 입력제어프로그램M1을 실행하고, 우선 최초로 버퍼RAM(16)의 내용을 클리어한다.
도 19에 도시된 바와 같이, 퍼스널컴퓨터(30)의 마이크로프로세서(31)은 상기 라이트커맨드에 이어서 새로운 응용프로그램(신응용프로그램) 및 소거/라이트 제어프로그램을 IDE인터페이스 컨트롤러(34)를 거쳐서 출력한다. CPU(51)은 입력제어프로그램M1을 실행한다. 이것에 의해 CPU(51)은 ATAPI인터페이스회로(4)에 공급된 응용프로그램 및 소거/라이트 제어프로그램을 버퍼RAM(16)에 순차 저장해 간다.
도 20에 도시된 바와 같이, 신응용프로그램 및 소거/라이트 제어프로그램이 버퍼RAM(16)에 저장된 후, CPU(51)은 전송제어프로그램M4의 실행으로 이행한다. 이것에 의해서, CPU(51)은 소거/라이트 제어프로그램M3을 버퍼RAM(16)에서 마이크로컴퓨터(5)의 워크RAM(57)로 내부전송한다.
그리고, 도 21에 도시된 바와 같이, CPU(51)은 그 워크RAM(57)에 저장된 소거/라이트 제어프로그램M3의 실행으로 이행한다. 이 때의 소거블럭의 지정은 소거/라이트 제어프로그램M3에 따라서 실행된다. 또, 마이크로컴퓨터(5)에는 라이트 및 소거용 고전압이 공급되고 있다. 소거/라이트 제어프로그램이 실행되는 것에 의해, 우선 플래시메모리(56)의 사용자프로그램영역(561)이 소거 및 소거검증된다. 다음에, 도 22에 도시된 바와 같이, CPU(51)은 버퍼RAM(16)에 저장되어 있는 신응용프로그램을 순차 플래시메모리(56)의 사용자프로그램영역(561)에 라이트하는 동작 및 라이트검증동작을 실행해 간다. 라이트동작 종료후, CD-ROM드라이브장치(2)가 리세트되는 것에 의해 CD-ROM드라이브장치(2)는 갱신된 응용프로그램에 따라서 CD-ROM의 재생제어를 실행할 수 있다.
《사용자 프로그램영역에 대한 체크총합》
상기 설명한 강제 리부팅모드의 설정은 이젝트 스위치를 조작하는 것이 조건으로 된다. 여기에서는 상기 강제 리부팅모드 이외에 사용자프로그램영역(561)을 리라이트할 수 있는 동작모드를 설정가능하게 한 CD-ROM드라이브장치(2)를 설명한다.
도 23에 도시한 바와 같이, 상기 사용자프로그램영역(561)은 그의 일부의 기억영역에 그밖의 기억영역이 보유하는 정보의 총합값을 저장하는 총합값 저장영역M21을 갖는 점이 도 2와 상이하다. 상기 총합값 저장영역M21에 대한 총합값의 라이트는 사용자프로그램영역(561)에 대한 라이트동작마다 실행하게 된다. 상기 리부팅프로그램영역(560)은 도 2에 따라서 설명한 것과 마찬가지로 리세트벡터BCT1 및 리세트처리프로그램PRG1 등의 저장영역을 갖는다.
도 24에는 리세트시에 상기 총합값을 고려해서 사용자 프로그램영역(561)을 리라이트가능하게 할 때의 동작흐름도가 도시된다.
리세트 인터럽트가 있으면 상기 CPU(51)은 리세트의 지시에 응답해서 상기 리세트벡터BCT1을 참조하는 것에 의해 리세트처리프로그램PRG1의 실행으로 이행하고(S30), 마이크로컴퓨터(5)의 내부나 그의 주변회로를 초기화한다(S31).
그리고, 상기 리라이트커맨드에 응답할 수 있는 강제 리부팅모드인지의 여부를 판정한다(S32). 즉, 이젝트 스위치가 눌려져 있으면 강제 리부팅모드라고 판정된다. 강제 리부팅모드일 때에는 상기 도 2 및 도 3에서 설명한 바와 같이 상기 리라이트커맨드의 입력을 대기하고 상기 리부팅프로그램의 실행으로 천이한다. 즉, 리부팅플래그를 세트하고(S33), 상기 리라이트커맨드의 입력을 대기하고 상기 리부팅프로그램을 기동시키고(S34), 지금까지 설명한 바와 같이 사용자프로그램영역(561)에 새로운 응용프로그램을 라이트한다(S35). 이 처리의 최후에는 사용자프로그램영역의 데이터의 총합값을 연산하고, 이 값을 상기 총합값 저장영역M21에 보존해 둔다.
스텝S32의 판단에 의해 강제 리부팅모드가 아닐 때, CPU(51)은 사용자프로그램영역(561)의 총합값을 연산하고(S36), 연산한 값이 상기 총합값 저장영역M21에 저장되어 있는 총합값과 일치하는지를 판정한다(S37).
스텝S37의 판정결과가 일치하지 않는 경우에는 상기 리라이트커맨드의 입력을 대기하고 상기 리부팅프로그램의 실행으로 천이한다. 스텝37의 판정결과가 일치한 경우에는 2차 벡터테이블을 참조해서(S38), 상기 응용프로그램영역(561)의 프로그램을 실행가능한 상태로 천이한다(S39).
이와 같이, 호스트장치(3)이나 CD-ROM드라이브장치(2) 등의 이상에 의해서 상기 응용프로그램영역(561)의 프로그램이 바람직하지 않게 리라이트되었을 때에는 강제 리부팅모드가 지시되지 않아도 리세트되는 것만으로 자기진단적으로 CPU(51)의 동작을 응용프로그램영역(561)에 대한 리라이트가능한 상태로 천이시킬 수 있어 CD-ROM드라이브장치(2)의 오동작을 미연에 방지할 수 있다.
《프로그램배치의 그밖의 예》
이상의 설명에서는 응용프로그램은 플래시메모리(56)의 사용자프로그램영역(561)에 배치하였다. 또, 리부팅프로그램은 리부팅프로그램영역(560)에 배치하였다. CD-ROM드라이브장치(2)에 있어서의 프로그램배치는 다음과 같이 변경할 수 있다. 예를 들면, 도 25에 도시된 바와 같이 벡터테이블을 워크RAM(57)에 배치해도 좋다. 벡터테이블을 RAM화하면 CPU(51)의 동작모드 등에 따라서 벡터테이블의 내용을 동적으로 변경하는 것이 용이하게 된다.
도 26에는 상기 플래시메모리(56)의 어드레스맵의 다른 예가 도시되어 있다. 도 26의 예에 있어서 리세트처리프로그램PRG1은 총합(SUM)값 체크와 강제 리부팅모드SW(이젝트 스위치)의 조작을 검출하는 처리 등을 규정한다. 응용프로그램영역(561)에 포함되는 부팅처리프로그램M23은 리부팅프로그램영역(560)의 PRG2, M1, M3, M4의 각 프로그램과 동일한 처리를 규정하는 것이다. 즉, 사용자프로그램영역(561)의 응용프로그램을 실행할 수 있는 상태에 있어서도 리라이트커맨드를 수취하고 사용자프로그램영역(561)의 리라이트를 실행할 수 있다. 이 경우에는 이젝트 스위치의 조작이나 총합값의 체크는 불필요한 것으로 된다.
《플래시메모리에 대한 라이트형태》
이상 설명한 플래시메모리의 리부팅프로그램영역(560) 및 사용자프로그램영역(561)에 대한 라이트동작을 CD-ROM드라이브 제조업체(드라이브 제조업체) 및 PC제조업체(퍼스널컴퓨터 제조업체)의 처리에 대응시켜 설명한다.
도 27은 CD-ROM드라이브 제조업체에 의한 CD-ROM드라이브장치(2)의 제조수순을 도시한 흐름도이다.
CD-ROM드라이브 제조업체는 마이크로컴퓨터(5)를 LSI제조업체에서 구입해서 CD-ROM드라이브장치(2)를 조립한다. 특히, 그 회로부분은 배선기판(PCB)상에 구성한다(S40). 이 때, 마이크로컴퓨터(5)에 내장된 플래시메모리(56)의 리부팅프로그램영역(560)에 대한 프로그램의 라이트형태로는 CD-ROM드라이브 제조업체가 EPROM라이터에 의해서 실행하는 경우(S41), 반도체 제조업체에 의한 마이크로컴퓨터(5)의 제조공정에서 실행하는 경우(S42) 또는 상기 배선기판에 마이크로컴퓨터(5)를 실장(S43)한 후에 상기 마이크로컴퓨터(5)에 부팅모드를 설정해서 실행하는 경우(S46)가 있다.
EPROM라이터에 의해 라이트를 실행하는 경우에는 도 31에 예시하는 바와 같이 마이크로컴퓨터(5)의 내부버스(58)을 외부와 인터페이스시키는 포트(581)(도 1에는 도시를 생략하고 있다)을 EPROM라이터(582)에 접속해서 실행한다. PROM라이터(582)는 라이트 고전압을 마이크로컴퓨터(5)에 인가하고 프로그램모드를 마이크로컴퓨터(5)에 설정한다. 프로그램모드가 설정된 마이크로컴퓨터(5)는 EPROM라이터(582)에 있어서 플래시메모리 단체LSI와 마찬가지로 간주되고, EPROM라이터(582)는 마이크로컴퓨터(5)의 내장 플래시메모리(56)을 외부에서 리라이트할 수 있게 된다. 이 상태에서 EPROM라이터(582)에 의해서 플래시메모리(56)의 리부팅프로그램영역(560)에 상기 리부팅프로그램 등을 초기적으로 라이트한다(S41). 마이크로컴퓨터의 리부팅프로그램영역(560)에 대한 라이트후, 상기 마이크로컴퓨터(5)는 상기 CD-ROM드라이브장치(2)의 배선기판에 실장된다(S44). 또한, 도 31에 있어서 도 1과 동일한 회로블럭에는 동일 참조부호를 붙이고 있다.
마이크로컴퓨터(5)의 리부팅프로그램영역(560)에 대한 라이트가 LSI제조업체에 의해서 이미 완료되어 있는 경우에는(S42) 상기 마이크로컴퓨터(5)가 CD-ROM드라이브장치(2)의 상기 배선기판에 실장된다(S45).
프린트배선기판에 마이크로컴퓨터(5)를 실장한 후 마이크로컴퓨터(5)에 부팅모드를 설정하고 리부팅프로그램영역(560)에 프로그램을 라이트하는(S46) 경우에는 예를 들면 도 30에 예시된 바와 같이 RS23C와 같은 직렬포트(583)을 거쳐서 결합된 호스트장치(584)에 의해 제어한다. 도 30에 예시되는 마이크로컴퓨터(5)는 도 1의 마이크로컴퓨터(5)에 대해서 SCI회로(585), 부팅ROM(586) 및 포트(587)이 추가되어 있다. 호스트장치(585)에서 라이트용 고전압(588)과 부팅모드신호(589)가 포트(587)을 거쳐서 마이크로컴퓨터(5)로 공급되면, CPU(51)은 부팅ROM(586)의부팅프로그램을 실행한다. CPU(51)은 부팅프로그램을 실행하는 것에 의해 플래시메모리(56)을 전면 소거하고, SCI회로(585)를 초기 설정하고, 직렬포트(583)을 거쳐서 호스트장치(584)와 인터페이스가능하게 한다. CPU(51)은 호스트장치(584)에서 공급되는 프로그램을 플래시메모리(56)의 리부팅프로그램영역(560)에 라이트제어한다. 이것에 의해, 플래시메모리(56)의 리부팅프로그램영역(560)에 도 2에서 설명한 바와 같은 리부팅프로그램 등이 라이트된다. 또한, 직렬포트(583)을 이용해서 라이트하는 동작속도는 그 성질상 일반적으로 느리다. 그 경우에는 CD-ROM드라이브장치(2)의 회로보드에는 디스크 액세스동작에는 직접 사용되지 않는 직렬포트(583)을 특별히 배치하지 않으면 안되고, 그것에 의해서 CD-ROM드라이브장치의 회로보드의 물리적인 규모가 커지는 것에 주의해야 한다. CD-ROM드라이브장치의 물리적인 규모를 작게하는 것을 우선시키면 그와 같은 직렬포트(583)을 거치는 프로그램라이트를 위한 구성을 마련하지 않는 것이 바람직하다.
상기 스텝S44, S45 또는 S46에 의해서 플래시메모리(56)의 리부팅프로그램영역(560)이 초기 설정된 후 마이크로컴퓨터(5)가 리세트되고, 사용자프로그램영역(561)에 라이트를 실행하기 위해 상기 강제 리부팅프로그램모드가 설정된다(S47). 그리고, 상기 호스트장치(3)에서 라이트커맨드를 발행하는 것에 의해 리부팅프로그램을 기동시키고, 사용자프로그램영역(561)에 응용프로그램 등의 응용프로그램을 라이트한다(S48). 정상적으로 라이트할 수 있었는지 판정되고(S49), 이상이 있었던 경우에는 재차 리부팅프로그램이 기동된다(S50).정상적으로 라이트된 경우에는 상기 라이트된 응용프로그램을 마이크로컴퓨터(5)에 실행시켜 CD-ROM드라이브장치(2)의 동작테스트를 실행한다(S51). 동작테스트시에 이상이 발견되지 않은 CD-ROM드라이브장치(2)가 PC제조업체로 출하된다(S52).
또한, 플래시메모리(56)의 리부팅프로그램영역(560)과 사용자프로그램영역(561)에 대한 라이트를 따로따로 실행하지 않고 도 29에 예시되는 바와 같이 함께 실행해도 좋다. 즉, 도 29에 도시된 스텝S41A에서는 EPROM라이트를 사용해서 플래시메모리(56)의 리부팅프로그램영역(560) 및 사용자프로그램영역(561)에 모든 프로그램을 라이트한다. 스텝S42A에서는 마이크로컴퓨터(5)를 제조하는 LSI제조업체가 상기 모든 프로그램을 라이트한다. 스텝S43A에서는 CD-ROM드라이브 제조업체가 마이크로컴퓨터(5)의 상기 부팅모드를 이용해서 상기 모든 프로그램을 라이트한다.
도 28은 CD-ROM드라이브 제조업체에서 출하된 CD-ROM드라이브장치(2)를 사용한 PC제조업체에 의한 퍼스널컴퓨터의 평가수순의 1예를 도시한 흐름도이다.
PC제조업체는 CD-ROM 드라이브 제조업체에서 출하된 CD-ROM드라이브장치(2)를 대응하는 퍼스널컴퓨터(30)에 조립한다(S53). 이 때, CD-ROM드라이브장치(2)는 ATAPI인터페이스회로(4)를 거쳐서 PC보드(37)의 IDE인터페이스 컨트롤러(34)에 접속된다. 이 상태에서 PC제조업체는 퍼스널컴퓨터(30)의 마이크로컴퓨터(31)에 필요한 테스트프로그램이나 임의의 응용프로그램 등을 실행시키면서 CD-ROM드라이브장치(2)를 액세스해서 상기 CD-ROM드라이브장치(2)의 평가를 실행한다. 이 평가시에 CD-ROM드라이브장치(2)의 응용프로그램에 버그가있는지를 조사하고(S54), 또 응용프로그램에 대해서 PC제조업체 측에서 사양을 변경할 개소가 있는지를 조사한다(S55). 버그도 사양변경도 없으면 그 기종의 퍼스널컴퓨터는 CD-ROM드라이브장치(2)에 관하여 아무런 지장이 없는 것으로서 평가를 마치고, 상기 기종의 퍼스널컴퓨터는 CD-ROM드라이브장치(2)를 탑재해서 최종수요자에게 출하되게 된다(S61).
한편, 상기 스텝S54에서 버그의 발생이 명확하게 되고 또 스텝S55에서 사용변경이 명확하게 되었을 때, 상기 버그의 정보나 사양변경에 관한 정보가 CD-ROM드라이브 제조업체로 전달된다. 이 때, CD-ROM드라이브장치(2) 그 자체를 퍼스널컴퓨터(30)에서 떼어내어 CD-ROM 드라이브 제조업체로 반송하는 것을 필요로 하지 않는다.
CD-ROM드라이브 제조업체는 그에 따라서 응용프로그램을 수정한다(S56). 수정된 응용프로그램은 예를 들면 인터넷 등을 거쳐서 PC제조업체로 송신된다(S57). 송신된 수정프로그램은 실제의 평가에 사용하고 있는 퍼스널컴퓨터에 의해 수신할 수 있다. 그리고, 수신한 수정완료된 응용프로그램을 CD-ROM드라이브장치(2)의 플래시메모리(56)에 라이트한다(S58). 라이트동작에 대한 상세한 것은 상술한 바와 같이 마이크로컴퓨터(5)에 강제 리부팅모드를 설정해서 퍼스널컴퓨터(30) 그 자체에서 즉시 실행할 수 있다. 정상적으로 라이트할 수 있었는지 판정되고(S59), 이상이 있었던 경우에는 재차 리부팅프로그램이 기동된다(S60). 정상적으로 라이트된 경우에는 그 기종의 퍼스널컴퓨터의 평가가 종료한다. 이와 같이, 응용프로그램에 버그가 있어도 또는 PC제조업체측에서응용프로그램의 사양변경을 실행하는 경우에도 수정된 응용프로그램을 CD-ROM드라이브장치(2)에 간단히 재설치할 수 있으므로 퍼스널컴퓨터(30)에 조립한 상태로 CD-ROM드라이브장치(2)를 단기간에 평가하는 것이 가능하게 된다.
퍼스널컴퓨터의 출하시에 PC제조업체측에서 CD-ROM드라이브장치에 상기 수정된 응용프로그램을 재설치해야 하는 것에 대해서는 그것을 실행하고, 또 PC제조업체 자체의 정보(CD-ROM드라이브의 ID(identification)정보)를 PC제조업체 자신이 플래시메모리(56)에 라이트하는 경우에는 그것을 실행한다. 그리고, 상기 기종의 퍼스널컴퓨터는 최종수요자에게 출하되게 된다(S61).
이상 본 발명자에 의해서 이루어진 발명을 실시예에 따라서 구체적으로 설명했지만, 본 발명은 그것에 한정되는 것은 아니고 그 요지를 이탈하지 않는 범위에 있어서 여러 가지로 변경가능한 것은 물론이다.
예를 들면, 리부팅모드의 설정은 상기 예에 한정되지 않고, 벤더유니크커맨드만으로 설정하는 것도 가능하다. 그 경우에는 벤더유니크커맨드의 해독결과를 사용해서 CPU의 처리를 사용자 리부팅용 프로그램으로 이행시킬 수 있다. 또, 기억정보 재생장치의 양산라인상에서 처음에 응용프로그램을 불휘발성 메모리에 라이트하는 경우에는 응용프로그램의 선두에 있는 2차 벡터테이블에 아무것도 기억되어 있지 않은 상태(예를 들면, 전체 비트 논리값 0 또는 1)를 소프트웨어에 의해 검출하고, 사용자 리부팅모드로 이행하도록 해도 좋다. 또, 플래시메모리의 소정의 블럭을 2뱅크구성으로 하고, 한쪽의 뱅크를 리라이트 금지영역으로서 사용하는 것이 가능하다. 이 때의 뱅크 전환은 사용자 리부팅모드의 설정에 연동되고, 사용자 리부팅모드에 있어서는 리라이트 금지측의 블럭이 사용된다. 또, 상기 총합값을 구하는 연산은 사용자프로그램영역의 데이터를 단지 가산하는 것 뿐만 아니라 적당한 논리를 통해서 가산하는 것도 가능하다.
또한, 리부팅프로그램은 상기 응용프로그램을 라이트 또는 리라이트하기 위한 초기(이니셜) 프로그램을 의미하고 있다. 따라서, 상기 리부팅프로그램영역에는 상기 초기 프로그램이 기억되어 있다고 이해할 수도 있다.
이상과 같이, 본 발명에 관한 디스크 드라이브장치는 CD-ROM 드라이브장치는 물론 그 밖의 기록정보 재생장치나 정보기록 재생장치 등에 널리 적용할 수 있다. 또, 디스크 드라이브장치를 탑재한 컴퓨터장치는 퍼스널컴퓨터 뿐만 아니라 워크스테이션, 오피스컴퓨터 등 그 명칭에 관계없이 각종 컴퓨터장치에 적용할 수 있다.
Claims (7)
- 회전구동되는 디스크를 액세스하는 액세스수단;상기 액세스수단과 호스트에 접속되는 인터페이스회로 및;상기 인터페이스회로에 결합되고 상기 액세스수단의 동작을 제어하는 마이크로컴퓨터를 포함하고,상기 마이크로컴퓨터는 전기적으로 리라이트가능한 불휘발성 메모리와 이 불휘발성 메모리를 액세스하는 중앙처리장치를 1개의 반도체기판에 구비하고,상기 디스크로부터 리드된 정보에 처리를 실시하여 생성된 데이터는 상기 인터페이스회로를 거쳐서 상기 호스트로 출력되고,상기 불휘발성 메모리는 상기 액세스수단을 제어하기 위해 상기 중앙처리장치에 의해서 실행되는 액세스제어 프로그램을 저장하고,상기 액세스제어 프로그램은 상기 인터페이스회로를 거쳐서 공급되는 데이터에 의해서 리라이트되는 것이 가능하게 되어 있는 것을 특징으로 하는 디스크드라이브장치.
- 제1항에 있어서,상기 중앙처리장치는 상기 호스트로부터 상기 인터페이스회로로 공급되는 데이터를 페치하기 위한 제1 프로그램과 페치된 데이터에 따라서 상기 불휘발성 메모리에 라이트를 실행하기 위한 제2 프로그램을 응용프로그램으로서 실행가능하게 되어 있는 것을 특징으로 하는 디스크드라이브장치.
- 제1항 또는 제2항에 있어서,상기 인터페이스회로는 ATAPI 인터페이스사양을 갖는 것을 특징으로 하는 디스크드라이브장치.
- 제1항 내지 제3항 중의 어느 한항에 있어서,버퍼메모리를 더 갖고,상기 페치된 데이터는 상기 버퍼메모리에 저장되는 것을 특징으로 하는 디스크드라이브장치.
- 제1항 내지 제4항 중의 어느 한항에 있어서,상기 디스크는 CD-ROM, DVD, DVD-RAM, DVD-ROM, CDI, DVI 또는 MOD인 것을 특징으로 하는 디스크드라이브장치.
- 제1항 내지 제5항 중의 어느 한항에 있어서,상기 응용프로그램은 상기 불휘발성 메모리에 저장되어 있는 것을 특징으로 하는 디스크드라이브장치.
- 제1항 내지 제6항 중의 어느 한항에 있어서,상기 불휘발성 메모리는 플래시메모리인 것을 특징으로 하는 디스크드라이브장치.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP-P-1996-00089613 | 1996-04-11 | ||
JP8961396 | 1996-04-11 | ||
JPJP-P-1996-00240401 | 1996-09-11 | ||
JP24040196 | 1996-09-11 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019980708019A Division KR100573639B1 (ko) | 1996-04-11 | 1997-04-09 | 디스크드라이브장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20030097587A true KR20030097587A (ko) | 2003-12-31 |
KR100568642B1 KR100568642B1 (ko) | 2006-04-07 |
Family
ID=26431029
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020027004482A KR100568642B1 (ko) | 1996-04-11 | 1997-04-09 | Atapi 디스크 드라이브 장치 |
KR1020027004481A KR100568641B1 (ko) | 1996-04-11 | 1997-04-09 | 디스크 드라이브 장치 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020027004481A KR100568641B1 (ko) | 1996-04-11 | 1997-04-09 | 디스크 드라이브 장치 |
Country Status (7)
Country | Link |
---|---|
US (3) | US6393561B1 (ko) |
EP (1) | EP1008928A4 (ko) |
KR (2) | KR100568642B1 (ko) |
CN (2) | CN1178129C (ko) |
AU (1) | AU2521297A (ko) |
TW (1) | TW409240B (ko) |
WO (1) | WO1997038367A1 (ko) |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9713094D0 (en) * | 1997-06-21 | 1997-08-27 | Philips Electronics Nv | Optical disc drive |
US6854000B2 (en) * | 1997-12-27 | 2005-02-08 | Canon Kabushiki Kaisha | Image forming apparatus and control method for the same |
SE520101C2 (sv) | 1998-05-13 | 2003-05-27 | Axis Ab | Integrerad krets och metod för att förmå en intgrerad krets att exekvera instruktioner |
US6321335B1 (en) | 1998-10-30 | 2001-11-20 | Acqis Technology, Inc. | Password protected modular computer method and device |
JP2000242440A (ja) * | 1999-02-25 | 2000-09-08 | Alps Electric Co Ltd | ディスク装置 |
US6636922B1 (en) * | 1999-03-17 | 2003-10-21 | Adaptec, Inc. | Methods and apparatus for implementing a host side advanced serial protocol |
US6718415B1 (en) * | 1999-05-14 | 2004-04-06 | Acqis Technology, Inc. | Computer system and method including console housing multiple computer modules having independent processing units, mass storage devices, and graphics controllers |
US6643777B1 (en) * | 1999-05-14 | 2003-11-04 | Acquis Technology, Inc. | Data security method and device for computer modules |
US6557058B1 (en) * | 1999-12-01 | 2003-04-29 | Iomega Corporation | Method and apparatus of sustained sequential data transfer in a media drive |
KR100367295B1 (ko) * | 2000-03-13 | 2003-01-09 | 엘지전자 주식회사 | 광디스크 구동장치의 지역정보 기록장치 및 기록방법 |
JP2001357023A (ja) * | 2000-06-14 | 2001-12-26 | Seiko Epson Corp | 半導体集積回路及びそれに内蔵された不揮発性メモリへの書き込み方法 |
DE10196539T1 (de) * | 2000-08-23 | 2003-08-21 | Seagate Technology Llc | Intelligente Datenspeichervorrichtung |
JP2002073425A (ja) | 2000-08-31 | 2002-03-12 | Hitachi Ltd | 媒体再生装置 |
JP2002182941A (ja) * | 2000-12-18 | 2002-06-28 | Hitachi Ltd | 情報記録再生装置及びコンピュータ読取り可能な記録媒体 |
US20020114457A1 (en) * | 2001-01-26 | 2002-08-22 | Takahiro Sato | LSI having interpreter function and information recording/reproducing apparatus using the same |
JP2002278906A (ja) * | 2001-03-21 | 2002-09-27 | Nec Corp | アップデート管理システム、アップデート・クライアント装置、アップデート・サーバ装置及びプログラム |
WO2002084484A2 (en) * | 2001-04-18 | 2002-10-24 | Domosys Corporation | Method of remotely upgrading firmware in field-deployed devices |
JP3719966B2 (ja) * | 2001-09-14 | 2005-11-24 | 松下電器産業株式会社 | 光ディスク記録再生方法および記録再生装置 |
US20030063896A1 (en) * | 2001-09-28 | 2003-04-03 | Gonzalez Tovar Victor Manuel | System utility interface for software upgrades and system diagnostics in automotive or portable DVD players |
US7320126B2 (en) * | 2001-11-06 | 2008-01-15 | Sandisk Corporation | Implementation of in system programming to update firmware on memory cards |
CN1288658C (zh) * | 2002-04-25 | 2006-12-06 | 三洋电机株式会社 | 数据处理装置 |
EP1372068A3 (en) | 2002-06-11 | 2006-02-08 | Seiko Epson Corporation | System, method and program for rewriting a flash memory |
JP3708914B2 (ja) * | 2002-07-30 | 2005-10-19 | 株式会社東芝 | ディスク記憶装置において実行されるプログラムを書き換えるための方法及び装置 |
US7039746B2 (en) * | 2002-12-03 | 2006-05-02 | Matsushita Electric Industrial Co., Ltd. | Interface circuit, disc controller, disc drive apparatus and interface control method |
JP2004272393A (ja) * | 2003-03-05 | 2004-09-30 | Matsushita Electric Ind Co Ltd | Cpu内蔵型lsiおよびこれを用いた光ディスク装置並びにlsi装置 |
JP4193585B2 (ja) * | 2003-05-26 | 2008-12-10 | ティアック株式会社 | 光ディスク装置を備えた処理システム |
US7065605B2 (en) * | 2003-07-28 | 2006-06-20 | Seagate Technology Llc | Dynamic mask-ROM register patching |
US7424603B2 (en) * | 2003-12-18 | 2008-09-09 | Intel Corporation | Method and apparatus to store initialization and configuration information |
JP4479324B2 (ja) * | 2004-04-19 | 2010-06-09 | コニカミノルタビジネステクノロジーズ株式会社 | 情報処理装置 |
JP4720140B2 (ja) * | 2004-10-01 | 2011-07-13 | 船井電機株式会社 | 情報処理装置 |
JP4759983B2 (ja) * | 2004-11-04 | 2011-08-31 | 船井電機株式会社 | ディスク装置のファームウェア書き換え方法、及びファームウェア書き換えプログラム |
KR100652386B1 (ko) * | 2004-11-16 | 2006-12-06 | 삼성전자주식회사 | 호스트와 하드디스크 드라이브 사이의 어플리케이션공유에 의한 작업 효율 증대방법 및 장치 |
KR100622892B1 (ko) * | 2004-12-09 | 2006-09-19 | 엘지전자 주식회사 | 저 전력소비형 이동통신 단말기 |
TW200634532A (en) * | 2005-03-23 | 2006-10-01 | Realtek Semiconductor Corp | Apparatus and method of utilizing interface to load program code |
US7543287B2 (en) * | 2005-06-30 | 2009-06-02 | Intel Corporation | Using a block device interface to invoke device controller functionality |
US7739487B2 (en) * | 2006-01-17 | 2010-06-15 | Nokia Corporation | Method for booting a host device from an MMC/SD device, a host device bootable from an MMC/SD device and an MMC/SD device method a host device may booted from |
JP2007219571A (ja) * | 2006-02-14 | 2007-08-30 | Hitachi Ltd | 記憶制御装置及びストレージシステム |
WO2008041337A1 (fr) * | 2006-10-04 | 2008-04-10 | Pioneer Corporation | Dispositif, procédé et programme de traitement d'informations et support d'enregistrement lisible par ordinateur |
US7990724B2 (en) | 2006-12-19 | 2011-08-02 | Juhasz Paul R | Mobile motherboard |
KR100866962B1 (ko) * | 2007-03-08 | 2008-11-05 | 삼성전자주식회사 | Hdd를 하이브리드 hdd에서 노멀 hdd로 전환시키는방법 |
JP2009076172A (ja) * | 2007-09-25 | 2009-04-09 | Hitachi Ltd | データ伝送方法、光ディスク記録方法及び光ディスク記録装置 |
JPWO2009087976A1 (ja) * | 2008-01-11 | 2011-05-26 | パナソニック株式会社 | 光ディスク制御装置 |
JP2012068814A (ja) * | 2010-09-22 | 2012-04-05 | Toshiba Corp | 半導体記憶装置およびメモリ制御装置 |
JP5825887B2 (ja) * | 2011-07-05 | 2015-12-02 | キヤノン株式会社 | 画像形成装置、画像形成装置の制御方法、及びプログラム |
CN103679064A (zh) * | 2012-08-31 | 2014-03-26 | 联想(北京)有限公司 | 设置装置及方法、非易失性存储器和电子设备 |
JP6478486B2 (ja) | 2013-11-20 | 2019-03-06 | キヤノン株式会社 | 情報処理装置、その制御方法及びプログラム |
JP6255282B2 (ja) * | 2014-02-28 | 2017-12-27 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US9372635B2 (en) * | 2014-06-03 | 2016-06-21 | Ati Technologies Ulc | Methods and apparatus for dividing secondary storage |
US10198332B2 (en) | 2016-10-07 | 2019-02-05 | Infineon Technologies Ag | System on chip integrity verification method and system |
EP3701440A1 (en) * | 2017-10-25 | 2020-09-02 | Telefonaktiebolaget LM Ericsson (PUBL) | Operation of an electronic device during maintenance |
US10824376B2 (en) | 2017-12-08 | 2020-11-03 | Sandisk Technologies Llc | Microcontroller architecture for non-volatile memory |
US10622075B2 (en) | 2017-12-12 | 2020-04-14 | Sandisk Technologies Llc | Hybrid microcontroller architecture for non-volatile memory |
US10908826B2 (en) * | 2018-09-24 | 2021-02-02 | Salesforce.Com, Inc. | Controlling access to memory cells |
US10777240B1 (en) | 2019-03-07 | 2020-09-15 | Sandisk Technologies Llc | Efficient control of memory core circuits |
US10971199B2 (en) | 2019-06-20 | 2021-04-06 | Sandisk Technologies Llc | Microcontroller for non-volatile memory with combinational logic |
TWI715433B (zh) * | 2020-02-06 | 2021-01-01 | 瑞昱半導體股份有限公司 | 啟動電路、啟動方法以及啟動系統 |
US11507498B2 (en) | 2020-03-05 | 2022-11-22 | Sandisk Technologies Llc | Pre-computation of memory core control signals |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4979055A (en) | 1987-06-02 | 1990-12-18 | Conner Peripherals, Inc. | Disk drive system controller architecture utilizing embedded real-time diagnostic monitor |
JPH0281130A (ja) | 1988-09-19 | 1990-03-22 | Hitachi Ltd | マイクロプログラム更新方式 |
DE69021732T2 (de) * | 1990-12-04 | 1996-01-18 | Hewlett Packard Ltd | Wiederprogrammierbare Datenspeicherungsanlage. |
EP0489227B1 (en) * | 1990-12-06 | 1998-12-23 | Tandberg Data Asa | Data storage system having removable media and equipped to download a control program from the removable media |
IT1254937B (it) | 1991-05-06 | 1995-10-11 | Aggiornamento dinamico di memoria non volatile in un sistema informatico | |
US5388267A (en) | 1991-05-29 | 1995-02-07 | Dell Usa, L.P. | Method and apparatus for updating and restoring system BIOS functions while maintaining BIOS integrity |
TW231343B (ko) * | 1992-03-17 | 1994-10-01 | Hitachi Seisakusyo Kk | |
JPH06161929A (ja) | 1992-11-27 | 1994-06-10 | Seiko Epson Corp | コンピュータ |
JPH06187141A (ja) | 1992-12-17 | 1994-07-08 | Sony Corp | データ処理装置 |
US5481713A (en) | 1993-05-06 | 1996-01-02 | Apple Computer, Inc. | Method and apparatus for patching code residing on a read only memory device |
JPH0764795A (ja) | 1993-08-30 | 1995-03-10 | Toshiba Corp | コンピュータシステム |
US5522076A (en) | 1993-05-13 | 1996-05-28 | Kabushiki Kaisha Toshiba | Computer system having BIOS (basic input/output system)-ROM (Read Only Memory) writing function |
JPH06324857A (ja) | 1993-05-13 | 1994-11-25 | Toshiba Corp | コンピュータシステム |
JPH0830450A (ja) | 1994-07-13 | 1996-02-02 | Sharp Corp | 情報処理装置 |
US5737748A (en) | 1995-03-15 | 1998-04-07 | Texas Instruments Incorporated | Microprocessor unit having a first level write-through cache memory and a smaller second-level write-back cache memory |
-
1997
- 1997-04-09 KR KR1020027004482A patent/KR100568642B1/ko not_active IP Right Cessation
- 1997-04-09 WO PCT/JP1997/001204 patent/WO1997038367A1/ja not_active Application Discontinuation
- 1997-04-09 US US09/171,002 patent/US6393561B1/en not_active Expired - Fee Related
- 1997-04-09 AU AU25212/97A patent/AU2521297A/en not_active Abandoned
- 1997-04-09 TW TW086104531A patent/TW409240B/zh not_active IP Right Cessation
- 1997-04-09 EP EP97916631A patent/EP1008928A4/en not_active Withdrawn
- 1997-04-09 CN CNB971945861A patent/CN1178129C/zh not_active Expired - Fee Related
- 1997-04-09 KR KR1020027004481A patent/KR100568641B1/ko not_active IP Right Cessation
- 1997-04-09 CN CNB2003101138612A patent/CN100543667C/zh not_active Expired - Fee Related
-
2001
- 2001-12-21 US US10/023,660 patent/US20020059515A1/en not_active Abandoned
-
2004
- 2004-01-28 US US10/765,170 patent/US7076649B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN100543667C (zh) | 2009-09-23 |
KR20030097586A (ko) | 2003-12-31 |
CN1549111A (zh) | 2004-11-24 |
KR100568642B1 (ko) | 2006-04-07 |
EP1008928A1 (en) | 2000-06-14 |
US6393561B1 (en) | 2002-05-21 |
EP1008928A4 (en) | 2007-08-08 |
US20020059515A1 (en) | 2002-05-16 |
WO1997038367A1 (fr) | 1997-10-16 |
CN1218562A (zh) | 1999-06-02 |
US7076649B2 (en) | 2006-07-11 |
US20040186952A1 (en) | 2004-09-23 |
TW409240B (en) | 2000-10-21 |
CN1178129C (zh) | 2004-12-01 |
AU2521297A (en) | 1997-10-29 |
KR100568641B1 (ko) | 2006-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100568642B1 (ko) | Atapi 디스크 드라이브 장치 | |
US7376943B2 (en) | Safe method for upgrading firmware of optical disk product | |
US20060282558A1 (en) | Control chip for optical disk drive and method for updating firmware in the control chip | |
JPH11120113A (ja) | 光ディスクドライブにおけるファームウエア コードをアップグレードする方法 | |
KR20020018115A (ko) | 매체 재생장치 | |
US20010029568A1 (en) | Apparatus and method for preserving a region code for an optical disk drive | |
US7694071B1 (en) | Disk drives and methods allowing configurable zoning | |
KR100573639B1 (ko) | 디스크드라이브장치 | |
JP3643367B2 (ja) | ディスクドライブ装置 | |
JP3930344B2 (ja) | ディスクドライブ装置 | |
KR100359200B1 (ko) | 펌웨어 운용방법 | |
US20050027966A1 (en) | Device and method for digital signal processor code downloading | |
JPH03273424A (ja) | 可換記憶媒体の記録再生装置 | |
JP2006244517A (ja) | ディスクドライブ装置 | |
US6785762B2 (en) | Recording/reproducing device having plural disk units which access an information recording medium including a computer readable recording medium | |
KR100280972B1 (ko) | Ata/ide인터페이스를 통한 광학디스크드라이브용펌웨어 코드의 업그래이드 방법 및 장치 | |
JP3393512B2 (ja) | データ処理装置 | |
JP2005085039A (ja) | 記録再生装置と記録再生装置のファームウェア書き換え方法とプログラムとコンピュータ読み取り可能な記録媒体 | |
JP2004030742A (ja) | ファームウェアに関するデータを記憶する光ディスク記憶媒体、光ディスク情報記録再生装置、及び、ファームウェア更新プログラムを記憶する記憶媒体 | |
JP2001229028A (ja) | ディスク再生装置 | |
JP3257024B2 (ja) | 光ディスク装置 | |
JP2002149350A (ja) | ディスクドライブ装置 | |
JP2003157660A (ja) | Dvd再生装置及びファームウェアの変更方法 | |
JPH09106391A (ja) | 制御装置 | |
JPH07200284A (ja) | ディスク装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20120302 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20130304 Year of fee payment: 8 |
|
LAPS | Lapse due to unpaid annual fee |