KR100327991B1 - 전자디바이스에데이터를다운로드하기위한장치및방법 - Google Patents

전자디바이스에데이터를다운로드하기위한장치및방법 Download PDF

Info

Publication number
KR100327991B1
KR100327991B1 KR1019970005840A KR19970005840A KR100327991B1 KR 100327991 B1 KR100327991 B1 KR 100327991B1 KR 1019970005840 A KR1019970005840 A KR 1019970005840A KR 19970005840 A KR19970005840 A KR 19970005840A KR 100327991 B1 KR100327991 B1 KR 100327991B1
Authority
KR
South Korea
Prior art keywords
data
download
electronic device
disk drive
entity
Prior art date
Application number
KR1019970005840A
Other languages
English (en)
Other versions
KR970071273A (ko
Inventor
제프리 제이. 도벡
Original Assignee
포만 제프리 엘
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 포만 제프리 엘, 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 포만 제프리 엘
Publication of KR970071273A publication Critical patent/KR970071273A/ko
Application granted granted Critical
Publication of KR100327991B1 publication Critical patent/KR100327991B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • G06F9/44542Retargetable
    • G06F9/44547Fat binaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

전자 디바이스에 의해 이용되는 디바이스 타입에 일반적인 "다운로드 엔티티" (또는 데이터 객체)의 형태로 데이터를 다운로드하는 장치 및 방법이 제공된다. 전자 디바이스의 디바이스 타입이 판단되고 판단된 디바이스 타입과 무관한 다운로드 엔티티 내의 데이터는 버려짐으로써 판단된 디바이스 타입과 관련된 데이터만이 전자 디바이스에 의해 보유된다. 인스톨 코드도 다운로드 엔티티에 통합되는데, 이 인스톨 코드는 일단 다운로드 되면 전자 디바이스에 의해 실행되어 다운로드 엔티티로부터 디바이스 타입과 관련된 데이터를 "풀어" 저장해 준다.

Description

전자 디바이스에 데이터를 다운로드하기 위한 장치 및 방법
본 발명은 일반적으로 파라미터 및/또는 프로그램 코드와 같은 데이터를 전자 디바이스에 다운로드하는 것에 관한 것으로, 특히, 디스크 드라이브와 같은 전자 디바이스에 의해 이용되는 일반적인 "다운로드 엔티티"(download entity) (또는 데이터 객체(data object))를 제공하는 것에 관한 것으로서, 여기서는 다운로드 엔티티로부터의 데이터 중에서 상기 전자 디바이스의 것이라고 판단된 그 디바이스 타입과 관련된 데이터만이 상기 전자 디바이스에 의해 보유된다.
광범위하고 다양한 스팩, 용량 및 특성들을 가진 제품들이 제공됨에 따라, 이러한 제품들을 개발, 생산, 유지 및 지원하는 일이 점차 어려워지고 비용이 많이들게 되었다. 예를 들면, 다양한 용량, 데이터 전송 속도, 통신 인터페이스(가령, IDE 또는 SCSI) 등을 가진 디스크 드라이브들이 설계될 수 있다. 소정의 제품 라인내에서, 드라이브 기계 및 하드웨어 부품들의 상당한 부분은 상이한 모델들에 의해 공유될 수 있지만, 이들 모델 사이에는 이를테면 디스크의 개수/사이즈가 상이하다거나 헤드 개수가 상이한 것과 같이 설계 상에 상당한 차이가 있을 수 있다. 이와 유사하게, 일련의 디스크 드라이브들에 있어서 프로그램 코드(명령, 파라미터, 및기타 데이터를 포함할 수 있음)의 기본적인 함수 및 연산들이 유사할 수는 있지만, 모델들 간의 차이에 따라 각 모델을 위한 프로그램 코드에 있어서도 차이가 있게 된다.
다수의 모델 또는 디자인이라는 프로그램 코드에 대한 요건을 지원하기 위한 한 가지 방법으로서, 프로그램 코드가 인스톨되는 특정 디바이스의 "디바이스 타입"에 따라 서로 다른 루틴들을 실행하고/실행하거나 서로 다른 파라미터들을 이용하는 단일의 프로그램 코드를 구현함으로써 특정 디바이스를 위한 프로그램 코드를 사실상 커스터마이즈(customize)하는 방법이 있다. 그러나, 다수의 디바이스 타입을 지원하기 위해서는 루틴 및 파라미터 테이블들을 중복하여 유지해야 하므로 필요한 공간을 크게 증가시킨다. 더욱이, 실행시에 다수의 디바이스 타입을 지원하기 위해 필요한 부가적인 프로세싱은 드라이브 성능에 나쁜 영향을 미친다.
다수의 디바이스 타입을 지원하기 위한 다른 방법으로서는 서로 다른 디바이스 타입들에 대하여 프로그램 코드를 별도의 "버전"으로 생성한 다음, 특정 디바이스에 하나의 버전만을 로드하는 방법이 있다. 그러나, 이 방법은 다운로드하는 측에서(조작자 또는 다운로드하는 컴퓨터 측에서) 로드될 디바이스의 디바이스 타입을 알아야 한다는 조건이 전제된다.
이 조건은 다수의 디스크 드라이브가 함께 링크되어 하나의 어레이 제어기에 의해 제어되는 이를테면 디스크 드라이브 어레이와 같은 여러 응용 예에서는 결점이 있는데, 이는 서로 다른 타입의 드라이브들이 함께 사용될 수 있기 때문이다. (가령, 프로그램 코드를 업데이트하기 위해) 어레이 내의 서로 다른 드라이브들로다운로드하는 것은 부담되고 시간이 많이 드는 일일 것이며, 한 제조 업체가 다수의 디바이스 타입을 지원하는 것도 어려운 일일 것이다. 더욱이, 어레이 제어기가 각 디바이스의 디바이스 타입을 검출하기 힘들다면, 자동적인 다운로딩은 더욱 어려울 것이다.
따라서, 전자 디바이스에 동작 명령, 파라미터 등과 같은 데이터를 다운로드하는 방법으로서 필요한 공간은 최소로 하되, 다운로드하는 시스템이 디바이스 타입을 알지 않고서 다수의 디바이스 타입을 지원하는 방법이 실질적으로 필요하게 되었다.
상기한 선행 기술의 한계 및 본 명세서를 이해하는 과정에서 명백히 알게 될 그 밖의 다른 한계들을 극복하기 위하여, 본 발명은 디바이스 타입에 일반적인 "다운로드 엔티티" (또는 데이터 객체)의 형태로 데이터를 전자 디바이스에 다운로드하기 위한 장치 및 방법을 개시하고 있다. 전자 디바이스의 디바이스 타입을 판단하고 다운로드 엔티티 내에서 상기 판단된 디바이스 타입과 무관한 데이터는 버림 (discard)으로써, 상기 판단된 디바이스 타입과 관련된 데이터만이 전자 디바이스에 의해 보유된다. 다운로드 엔티티 내의 데이터는 전자 디바이스 상에서 실행하기 위한 프로그램 코드 및/또는 디바이스 파라미터 및 전자 디바이스에 의해 이용되는 그 밖의 정보를 포함할 수 있다.
본 발명의 바람직한 실시예들은 다운로드 엔티티에 인스톨 코드를 통합할 수도 있는데, 이것은 일단 다운로드되면, 다운로드 엔티티로부터 상기 디바이스 타입과 관련된 데이터를 "풀어서"(unpack) 저장하도록 실행된다. 다운로드 엔티티 내의 독립된 인스톨 코드를 이용함으로써, 디바이스 내의 런타임 코드(runtime code)로 부터 인스톨 함수들을 생략할 수 있으며, 그에 따라 디바이스 내에 상주해야 하는 무관한 코드(extraneous code)(즉, 인스톨시에만 사용되고 런타임 동안에는 사용되지 않는 코드)의 양이 최소화된다.
따라서, 본 발명에 따르면, 복수의 디바이스 타입들 중의 어느 한 디바이스 타입을 가진 전자 디바이스에 데이터를 다운로드하는 방법이 제공된다. 이 방법은 각 디바이스 타입과 관련된 데이터를 포함하는 다운로드 엔티티를 전자 디바이스 내에 수신하는 단계, 전자 디바이스의 디바이스 타입을 판단하는 단계, 및 상기 다운로드 엔티티 내에서 상기 판단된 디바이스 타입과 무관한 데이터를 버림으로써 상기 판단된 디바이스 타입과 관련된 데이터만이 전자 디바이스에 의해 보유되도록 하는 단계를 포함한다.
본 발명의 다른 국면에 따르면, 복수의 디바이스 타입들 중의 어느 한 디바이스 타입을 가진 전자 디바이스가 제공된다. 이 디바이스는, 전자 디바이스의 동작 중에 이용되는 동작 관련 데이터(operational data)를 저장하기 위한 메모리 수단, 상기 전자 디바이스의 외부로부터 복수의 디바이스 타입들과 관련된 데이터를 포함하는 데이터 객체를 수신하기 위한 수신기 수단, 및 상기 데이터 객체로부터 상기 전자 디바이스의 디바이스 타입과 관련된 데이터만을 상기 메모리 수단 내에 인스톨하기 위한 인스톨 수단을 포함한다.
본 발명의 또 다른 국면에 따르면, 디스크 드라이브가 제공되는데, 이 디스크 드라이브는 복수의 디스크 드라이브 타입들과 관련된 데이터를 포함하는 다운로드 엔티티를 수신하기 위한 통신 인터페이스, 상기 디스크 드라이브와 관련된 동작관련 데이터를 저장하기 위한 메모리, 및 상기 통신 링크에 결합된 제어기를 포함하되, 상기 제어기는 (1) 상기 디스크 드라이브의 타입을 판단하고, (2) 상기 다운로드 엔티티로부터 상기 디스크 드라이브의 상기 판단된 타입과 관련된 데이터만을 불러오고(retrieve), (3) 상기 디스크 드라이브의 상기 판단된 타입과 관련된 데이터를 상기 메모리에 저장하고, (4) 상기 다운로드 엔티티 내에서 상기 디스크 드라이브의 상기 판단된 타입과 무관한 데이터는 버린다.
본 발명의 부가적인 국면에 따르면, 제각기 디바이스 타입 및 각자의 동작 중에 이용되는 동작 관련 데이터를 저장하기 위한 메모리를 가진 직접 액세스 기억 디바이스들(direct access storage devices)의 어레이, 및 상기 직접 액세스 기억 디바이스들의 어레이를 제어하는 어레이 제어기 또는 기타 제어 수단(가령, 필드 테스트에 사용되는 프로세서)을 포함하되, 상기 어레이 제어기는 복수의 디바이스 타입들과 관련된 동작 관련 데이터를 포함하는 일반적인 다운로드 엔티티를 복수의 상기 직접 액세스 기억 디바이스들에 제공하여 그들의 메모리를 업데이트시키며, 여기서 상기 복수의 직접 기억 디바이스들 각각은 상기 다운로드 엔티티로부터 각자의 디바이스 타입과 관련된 동작 관련 데이터만을 각자의 메모리에 저장하고 각자의 디바이스 타입과 무관한 동작 관련 데이터는 버리는 장치가 제공된다.
본 발명의 다른 국면에 따르면, 복수의 디바이스 타입들 중의 어느 한 디바이스 타입을 가진 전자 디바이스에 다운로드하기 위한 다운로드 엔티티가 제공된다. 이 다운로드 엔티티는, 상기 복수의 디바이스 타입들 각각과 관련된 부분들을 가진 데이터 블록, 및 상기 전자 디바이스에 의해 실행 가능하며, 상기 다운로드 엔티티 내에서 상기 전자 디바이스의 디바이스 타입과 관련된 데이터 부분만을 불러오기 위한 설치 루틴(installation routine)을 포함한다.
본 발명의 특징을 이루는 이들 장점 및 그 밖의 여러 장점들과 신규한 특징들은 본 명세서에 첨부되어 본 명세서의 일부를 이루는 특허 청구의 범위 내에 상세히 지적되어 있다. 그러나, 본 발명과 그 장점들, 및 본 발명의 이용에 의해 달성하고자 하는 목적들에 대해 보다 확실히 이해하기 위해서는, 본 발명에 따른 장치의 특정한 예들이 예시되고 묘사되어 있으며 본 명세서의 또 다른 일부를 이루는 도면들, 및 그에 수반하는 설명문을 참조해야 한다.
도면들 중의 동일 참조 번호는 대응 요소들을 나타낸다.
도 1은 본 발명의 원리에 따른 디스크 드라이브 어레이를 구비한 바람직한 장치의 기능 블록도.
도 2는 도 1의 디스크 드라이브 어레이 중의 어느 한 디스크 드라이브 내의 기계 부품들(mechanical components)에 대한 분해 사시도.
도 3은 도 1의 디스크 드라이브 어레이 중의 어느 한 디스크 드라이브 내의 제어기 구성 요소들에 대한 기능 블록도로서, 데이터 다운로드 및 인스톨시의 구성요소들 간의 정보 흐름을 예시하고 있다.
도 4는 다운로드 엔티티의 다운로드시 도 3의 디스크 드라이브 내의 프로그램 흐름을 예시하는 흐름도.
도 5는 도 3에 예시된 다운로드 엔티티와 함께 다운로드되는 설치 루틴의 프로그램 흐름을 예시하는 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
1 : 드라이브 어레이 장치
2 : 어레이 제어기
3, 5 : 버스
4 : 서버 컴퓨터 시스템
6, 8, 9, 10 : 디스크 드라이브
12 : 하우징
14 : 하우징 커버
16 : 프레임
22 : 스핀들 축
24 : 자기 기억 디스크
26 : 슬라이더
28 : 서스펜션 또는 로드 스프링
30 : 아암
32 : E 자형 블록 또는 코움
36 : 액츄에이터 아암 어셈블리
38 : 구동축
40 : 버스 인터페이스
42 : 데이터 버퍼
50 : 인터페이스 제어기
52, 62 : 랜덤 액세스 메모리(RAM)
54 : 플래시 메모리
60 : 서보 제어기
70 : 다운로드 엔티티
72 : 인스톨 코드
74 : 타입 테이블
76 : 플래시 이미지
78 : 파라미터/코드 (또는 데이터) 블록
이하 예시적인 실시예의 설명에 있어서는, 본 명세서의 일부를 구성하며 본 발명이 실시될 수 있는 특정한 실시예가 예시적으로 도시되어 있는 첨부 도면들이 참조된다. 본 발명의 범주를 벗어나지 않고서 구조적인 변경이 행해질 수 있기 때문에 다른 실시예들이 이용될 수도 있다는 것을 알아야 한다.
도 1은 본 발명의 하나의 바람직한 응용 예를 보여주는 모범적인 디스크 드라이브 어레이 장치(1)를 예시하고 있다. 장치(1)는 바람직하게는 버스(3)를 통하여 어레이 제어기(2)에 상호 접속된 복수의 디스크 드라이브들, 예를 들면, 디스크 드라이브들(8, 9, 10)을 포함한다. 바람직한 실시예의 어레이 제어기(2)는 호스트컴퓨터로서 동작하여 장치(1) 내의 디스크 드라이브들에 다운로드 엔티티를 공급한다.
어레이 제어기(2)는 바람직하게는 인터내셔널 비지네스 머신즈 코퍼레이션 (IBM 사)에서 입수할 수 있는 RAMAC 어레이 제어기이지만, 그 밖의 다른 공지의 어레이 제어기들이 대신에 사용될 수 있다. 도 1에 도시된 바와 같이, 어레이 제어기 (2)는 다른 디스크 드라이브 어레이, 예를 들면, 버스(5)를 통하여 결합된 디스크 드라이브(6)를 제어할 수도 있다. 더욱이, 디스크 드라이브 어레이 내의 드라이브들은 어레이 제어기 대신에 이를테면 서버 컴퓨터 시스템(4)과 같은 다른 호스트 컴퓨터에 접속되어 제어될 수도 있다. 또한, 제조시에 호스트 컴퓨터를 이용하여 하나 이상의 드라이브들에 초기 데이터 및 코드를 제공할 수도 있다.
일반적으로, 바람직한 전자 디바이스는 디스크 드라이브이지만, 본 발명의 원리를 응용하여 사실상 어떠한 전자 디바이스에도 데이터를 다운로드할 수 있다. 더욱이, 바람직한 실시예의 다운로드되는 데이터의 소스는 어레이 제어기 또는 서버이지만, 다운로드되는 데이터의 소스는 컴퓨터이든 전자 디바이스이든 아니면 프로그램 기억 매체이든 간에 전자 디바이스에 접속되어 다운로드 데이터를 제공할 수 있는 임의의 데이터 소스일 수 있다. 따라서, 여기에 도시된 바람직한 응용 예는 성질상 단지 예시일 뿐이다.
디스크 드라이브들(8, 9, 10)은 바람직하게는 18 헤드 7200 RPM 디스크 드라이브(가령, IBM 사에서 입수할 수 있는 스콜피온(Scorpion) 디스크 드라이브)이다. 도 2에는 디스크 드라이브 또는 자기 기억 시스템(magnetic storage system, 10)의기계 부품들이 보다 상세히 도시되어 있다. 상기 디스크 드라이브는 하우징(12)과 하우징 커버(14)를 포함하며, 이들은 조립 후에 프레임(16) 내부에 장착된다. 상기 하우징 내부에는 스핀들 축(spindle shaft, 22)이 장착된다. 다수의 자기 기억 디스크들(24)이 상기 스핀들 축(22)에 회전할 수 있게 부착된다. 도 2에는, 아홉 개의 디스크들(24)이 소정의 간격으로 상기 스핀들 축(22)에 부착되어 있다. 디스크들(24)은 모터(도시되지 않음)에 의해 전력을 공급받는 스핀들 축(22)을 중심으로 회전한다. 슬라이더들(sliders, 26)에 의해 지지되는 헤드 또는 자기 트랜스듀서들 (magnetic transducer, 도시되지 않음)에 의해 상기 디스크들(24) 상에 정보가 기록되거나 또는 읽혀진다. 슬라이더들(26)은 서스펜션 또는 로드 스프링들 (suspensions or load springs, 28)에 결합된다. 로드 스프링들(28)은 E 자형 블록 또는 코움(E block or comb, 32) 상의 독립된 아암들(separate arms, 30)에 부착된다. E 자형 블록 또는 코움(32)은 액츄에이터 아암 어셈블리(36)의 일단에 부착된다. 액츄에이터 아암 어셈블리(36)는 하우징(12) 내부에 구동축(actuator shaft, 38)에 회전할 수 있게 부착된다. 회전 액츄에이터 어셈블리(rotary actuator assembly, 36)는 일체화된 트랜스듀서/서스펜션 어셈블리를 기억 디스크(storage disk, 24)의 표면을 가로질러 아치형 경로로 이동시킨다. 그러나, 본 발명은 여기에 기술된 특정 디스크 드라이브에 한정되도록 의도된 것이 아니며, 어떠한 구성의 디스크 드라이브 또는 직접 액세스 기억 디바이스(DASD : direct access storage device)든지 본 발명과 부합되게 사용될 수 있다.
다시 도 1을 보면, 디스크 드라이브(10)의 제어기 또는 기능적 구성 요소들(functional components)이 보다 상세히 예시되어 있다. 주요한 디스크 드라이브의 제어 동작들은 한 쌍의 제어기, 인터페이스 제어기(50)와 서보 제어기(60)에 의해 공유된다. 제어기들(50, 60)은 독립된 프로세서들에 의해 구현되는 것이 바람직하지만, 각각의 기능들은 서로 다른 작업으로서 하나의 프로세서에 의해 처리될 수도있다.
인터페이스 제어기(50)는 디스크 드라이브(10)로 들어오고 나가는 데이터의 전송을 조정한다. 인터페이스 제어기를 위한 프로그램 코드는 바람직하게는 불휘발성 메모리, 예를 들어, 플래시 메모리(54) 내에, 또는 디스크 자체의 예비 영역 (reserved area) 상에 저장되며, 제어기를 위한 작업 공간(work space)은 랜덤 액세스 메모리(RAM, 52) 내에 제공된다. 디스크 드라이브(10)로 들어오고 나가는 데이터는 데이터 버퍼(42)에 임시 저장되며, 통신 인터페이스, 가령, 버스 인터페이스(40)는 버스(3)를 통하여 어레이 제어기(2)와 통신하기 위해 데이터를 포맷한다.
서보 제어기(60)는 자기 기억 디스크 상에 데이터를 기록하고 데이터를 취득하기 위해 일체화된 트랜스듀서/서스펜션 어셈블리의 움직임을 조정한다. RAM(62)은 서버 제어기의 동작을 위한 작업 공간을 제공하며, 그를 위한 프로그램 코드는 RAM(62) 또는 불휘발성 메모리(도시되지 않음) 내에 저장된다.
여기에 예시된 디스크 드라이브(10)의 기능적 구성 요소들은 여러 디스크 드라이브들의 표준적인 동작 기능들을 대표한다. 더욱이, 이들 구성 요소의 하드웨어 구현 역시 표준적인 디스크 드라이브 디자인을 대표한다. 따라서, 본 발명은 어떤 특정한 하드웨어 구성에 한정되는 것은 아니다.
본 발명의 바람직한 실시예들은 도 3에 참조 번호 70으로 기능적으로 표시된 다운로드 엔티티 또는 데이터 객체를 통하여 디스크 드라이브(10)로 동작 관련 데이터("데이터")를 다운로드한다. 디스크 드라이브(10)로 다운로드되는 데이터는, 가령, 인터페이스 제어기(50) 및/또는 서보 제어기(60)에 의해 실행될 프로그램 코드를 포함하고/포함하거나 디스크 드라이브(10)에 따른 특별한 오퍼레이션 파라미터와 같은 다른 데이터를 포함할 수 있다. 디스크 드라이브(10)에 의해 이용될 수 있는 파라미터의 종류에는, 특히, 수치 파라미터(가령, 헤드 수, 1 회전당 서보 셀의 수 등), 물리적 파라미터(가령, 아암 길이, 아암의 관성 모멘트, 스트로크 길이 (stroke length), 가능 힘 계수(capable force factors), 회전 속도 등), 전기적 파라미터, (서보 알고리즘에 이용되는) 서보 시스템 상수, 필터 계수, 및 (가령, 기능들을 인에이블/디스에이블하기 위한) 시스템 플래그들이 포함된다.
디스크 드라이브(10)로의 데이터의 다운로드는 예를 들면 제조시에 일어날 수 있으며, 또는 프로그램 코드 및/또는 오퍼레이션 파라미터들을 업데이트하여, 새로운 기능을 제공하거나 프로그램 코드 내의 "버그"를 정정하거나 그렇지 않으면 디스크 드라이브(10)의 동작을 수정하기 위해 일어날 수 있다.
다운로드 엔티티(70)는 바람직하게는 디스크 드라이브(10)의 다수의 디바이스 타입 또는 모델들을 수용하기 위한 모든 프로그램 코드 및/또는 파라미터 데이터를 포함하는 데이터 블록을 포함한다. 이 모든 정보는 바람직하게는 타입 테이블 (74)에 저장된다. 또한, 디스크 드라이브(10)의 특정 디바이스 타입에 기초하여 디스크 드라이브(10) 안에 적당한 구성 요소들을 인스톨하기 위한 인스톨 코드(72)가다운로드 엔티티 내에 포함된다.
본 발명에 따르면, 인스톨 코드는 타입 테이블을 이용하여 디바이스 드라이브(10)의 특정 디바이스 타입과 관련된 프로그램 코드 및/또는 파라미터 데이터만을 다운로드 엔티티로부터 불러온다. 타입 테이블로부터 불려진 관련 데이터는 바람직하게는 궁극적으로 플래시 메모리(54) 내에 저장된다. 바람직한 실시예의 엔티티 내에는 플래시 메모리(54)에 저장될 관련 데이터를 구축하기 위한 플래시 (또는 데이터) 이미지 블록(76)이 마련된다. 이미지 블록(76)은 처음부터 디폴트 값 및 루틴들을 포함할 수 있는데, 이 경우 디바이스 타입에 따른 특별한 변형(device type specific modifications)만이 다운로드 엔티티로부터 불려질 필요가 있게 된다. 또한, 후술하겠지만, 플래시 메모리의 현재 내용이 또한 이미지 블록으로 복사되어, 다운로드 엔티티의 데이터에 의해 플래시 메모리를 업데이트하기 위한 기초를 제공해 줄 수 있다.
본 발명의 바람직한 실시예들의 동작을 설명하기 위해, 도 3 내지 도 5를 참조하여 드라이브(10)를 위한 서보 파라미터들의 업데이트를 설명한다. 도 3에 도시된 바와 같이, 서보 파라미터들은 플래시 메모리(54) 내의 파라미터/코드 (또는 데이터) 블록(78) 내에 보유된다. 블록(78)의 복사본은 인터페이스 제어기(50)가 서보 제어기(60) 내의 조정 루틴(calibration routines)을 모니터할 수 있도록 제어기(50) 내의 RAM(52)에 보유되는 것은 물론이고, 서버 제어기(60)에 의해 사용될 수 있도록 RAM(62)에도 보유된다.
도 4는 장치(1) 내의 어레이 제어기(2) 또는 다른 호스트 컴퓨터에 의해 버스(3)을 통해 전송된 다운로드 명령 데이터블록(CDB)에 응답하여 인터페이스 제어기(50)에 의해 실행되는 다운로드 루틴(100)을 예시하고 있다.
다운로드 명령은 처음에는 버스(3)을 통하여 디스크 드라이브(10)에 의해 수신되는 다른 입력 데이터블록과 같은 방법으로, 해당 기술 분야에 일반적으로 알려져 있는 방식에 의해 처리된다. 그러나, 일단 다운로드 명령이 수신되면, 플래시 메모리 내에 처음부터 상주하는 짧은 부트스트랩 루틴(100)이 실행되어 다운로드 엔티티의 처리를 개시한다. 그러나, 다운로드 엔티티 인스톨의 주요한 처리는 바람직하게는 다운로드된 엔티티 내의 인스톨 코드에 의해 수행된다.
다수의 인스톨 코드들을 다운로드 엔티티 내에 포함시킴으로써, 플래시 메모리(54) 내의 상주 코드 중에서 다운로드 처리에 할당되는 코드의 양이 최소화된다. 플래시 메모리는 비교적 비싸기 때문에, 무관한 코드의 최소화가 때때로 바람직하다는 것을 알게 될 것이다. 더욱이, 다운로드 엔티티에 인스톨 코드를 포함시킴으로써, 다운로드를 처리하기 위한 개별화된 인스톨 코드(customized installation code)가 개발되어 디바이스 타입에 따라 선택될 수 있다. 그러나, 달리 모든 인스톨 코드가 플래시 메모리(54) 내에 영구히 유지되어 다운로드 엔티티로부터 제외될 수도 있다는 것을 알아야 한다.
도 4를 보면, 루틴(100)의 실행이 개시되어 블록(102)에서 버스(3)로부터 데이터 버퍼(42)로 다운로드 엔티티(70)를 수신한다. 상기한 바와 같이, 다운로드 엔티티는 인스톨 코드(72), 타입 테이블(74), 및 플래시 이미지(76)를 포함한다.
그 후, 블록(104)에서, 인터페이스 제어기(50)의 RAM(52)으로 인스톨 코드(72)가 복사된다. 그 후, 블록(106)에서, 인스톨 코드(72)에 의해 이용될 수 있는 플래시 메모리(54) 내의 임의의 상주 유틸리티 루틴들에 대한 포인터들이 RAM(52)내에 있는 인스톨 코드의 복사본에 제공된다. 이 공유 루틴들의 이용에 따라, 플래시 메모리(54) 내에 상주하는 함수들 및 툴들(functions and tools)은 인스톨 코드 (72) 내에 복사될 필요가 없기 때문에 인스톨 코드(72)의 사이즈가 축소될 수 있다. 또한 블록(106)에서, 디바이스 타입 표시자(device type indication)를 인스톨 코드에 제공하여 인스톨 코드가 디스크 드라이브의 디바이스 타입을 인지하도록 하는 것이 바람직하며, 그 용도에 대해서는 후에 보다 상세히 설명하겠다.
블록들(104, 106)은 인터페이스 제어기(50)에 의해 실행될 인스톨 코드를 준비한다. 따라서, 이들 블록을 실행함과 동시에, 블록(108)에서 인스톨 코드가 호출되어 다운로드 엔티티(70)로부터 데이터를 불러오기 위한 새로운 코드로 제어가 넘겨진다.
도 5에는 바람직한 인스톨 코드 또는 루틴(110)이 예시되어 있다. 루틴(110)의 실행은 블록(111)에서 시작되고, 여기서 플래시 메모리의 현재 내용이 버퍼 플래시 이미지(76)에 복사되어 플래시 메모리의 업데이트가 이루어질 수 있는 기초를 제공한다. 플래시 메모리의 일부분에 대해서만 업데이트가 필요한 경우도 있음을 알아야 하며, 따라서 플래시 메모리 전체를 처음부터 구축할 필요 없이 다운로드 엔티티 내의 업데이트된 데이터만을 제공하는 것이 바람직할 것이다. 한편, 플래시 메모리 전체에 다운로드 엔티티가 제공되는 경우에는, 블록(111)이 필요치 않을 것이다.
그 후, 블록(112)에서 디바이스 타입 테이블(74)을 액세스하여 다운로드 엔티티(70)로부터 어떤 성분을 불러올 것인지를 판단한다. 그런 다음, 블록(114)에서, 다운로드 엔티티로부터 필요한 성분을 불러와서 플래시 이미지의 관련 부분들을 업데이트함으로써 블록(76) 내에 데이터의 이미지가 구축된다. 일단 새로운 이미지가 구축되면, 블록(116)은 플래시 메모리(54) 내에 상기 이미지를 기록한다.
본 명세서에 개시되어 있듯이, 플래시 메모리에 이미지를 복사하기 전에 데이터 버퍼 내에 플래시의 완전한 이미지를 구축하지 않아도 됨을 알아야 한다. 오히려, 플래시 메모리에 직접 기록함으로써 업데이트할 수도 있다. 그러나, 어떤 플래시 메모리는 메모리 공간 전체가 클리어되어야 하고, 재기록도 전체적으로 이루어져야 하므로, 여기서는 우선 데이터 버퍼 내에 플래시 이미지를 구축한 다음 업 데이트된 이미지를 플래시 메모리에 기록하는 것이 바람직하다.
디스크 드라이브(10)의 "디바이스 타입"은 바람직하게는 특정의 모델 또는 디자인 표시자(specific model or design indicator)를 나타낸다. 디스크 드라이브 분야에서, 디바이스 타입은 특히 메모리 용량, 데이터 전송 속도, 인터페이스 타입 (가령, IDE, SCSI 등), 디스크와 헤드의 개수, 및 디스크 사이즈에 기초하여 구별되는 모델들을 나타낼 것이다. 기타의 전자 디바이스에 있어서는, 전술한 디바이스 타입 이외의 것들이 정의될 수 있으며, 그것은 디바이스에 따라 다양할 것이다. 일례로서, 기본 모델 및 개량 모델들을 구별하여 승인된 기능 및 특징들만이 디바이스에 저장되도록 할 수 있다. 이에 따라 제어 소프트웨어를 특정 디바이스 타입에 대하여 맞춤으로써, 다수의 모델, 다수의 제품 라인, 심지어는 서로 다른 제품들모두(총칭하여 "전자 제품")에 대해서 동일한 하드웨어 플랫폼을 사용할 수 있게 된다. 다른 예로서, 개인 정보 이동 단말기(personal digital assistant, PDA)의 경우에는, 사용자의 언어에 기초하여 다른 디바이스 타입들이 구별될 수 있으며, 따라서 PDA에 의해 디스플레이되는 메시지는 사용자의 모국어로 되어 있을 것이다. 본 발명의 범주 내에서 무수히 많은 다른 변형 예들이 있을 수 있다.
바람직한 실시예들에서, 바람직하게는 플래시 메모리에 유지되거나, 다른 불휘발성 디바이스(가령, DIP 스위치)에 저장되거나, 또는 디스크 자체에 저장된 디바이스 타입으로부터 인스톨 코드로 인터페이스 제어기(50)가 제공하는 디바이스 타입 표시자를 통하여 디바이스 타입 테이블은 액세스된다. 더욱이, 이 디바이스 타입은 필요하다면 다운로드 처리 중에 인스톨 코드에 의해 플래시 메모리에 재기록될 수 있다. 특정 디바이스 타입 표시자를 사용함으로써 인스톨 코드의 복잡성은 최소화된다. 그러나, 인스톨 코드는 다른 방법으로, 가령, 디바이스 타입들 사이의 차이에 따라 변하는 것으로 알려져 있는 하나 이상의 디바이스 특성을 테스트함으로써 디바이스 타입을 결정할 수도 있다. 예를 들면, 각 디바이스 타입의 헤드 수는 변할 수 있으므로, 인스톨 코드는 모든 헤드들에 전압을 가하여 그에 응답하는 헤드들의 수를 검출함으로써 그 디바이스 타입을 검출할 수 있다. 대안으로, 디스크 드라이브 내부의 디바이스 타입을 검출하는 다른 방법들이 이용될 수도 있다.
또한 바람직한 실시예에서, 디바이스 타입 테이블(74)은 각 파라미터에 대해 (디바이스 타입에 따라 인덱스된) 인덱스 테이블 또는 맵-상기 인덱스 테이블 또는 맵은 인덱스 또는 포인터들을 생성하여 블록(114)이 그 파라미터 테이블들로부터파라미터 값들을 발취하여 플래시 이미지 블록(76)을 구축하도록 함-을 갖는 별도의 테이블들을 제공한다. 달리, 테이블(74)은 디바이스 타입에 따라 인덱스된 완전한 파라미터 세트를 제공할 수 있으며, 이 경우 블록(114)의 동작은 주로 완전한 파라미터 세트를 블록(76)에 복사하는 것이다. 타입 테이블(74) 내의 데이터를 압축 및/또는 부호화한 다음 인스톨 코드에 의해 풀 수도 있다. 달리, 인스톨 코드에 의한 후속되는 불러오기를 위해 다운로드 엔티티 내에 데이터를 저장하는 그 밖의 다른 방법들이 이용될 수도 있다.
게다가, 타입 테이블(74)로부터의 데이터 불러오기는 디바이스 타입은 물론 다른 요소들에도 좌우될 수 있다. 예를 들면, 드라이브의 이전 상태 또는 이력은 타입 테이블(74)로부터의 데이터 선택에 이용되는 하나의 요소가 될 수 있다.
다시 도 5를 참조하여, 일단 플래시 이미지가 플래시 메모리(54)에 복사되면, 블록(118)을 실행하여 드라이브에 대해 파워 업 리셋을 개시한다. 파워 업 리셋을 개시함으로써, 드라이브는 정상 동작 상태로 리셋된다. 데이터 버퍼(42)와 RAM들(52, 62)이 클리어되고, 그에 따라 다운로드 엔티티와 그 안에 있는 데이터 중 디스크 드라이브(10)의 디바이스 타입과 무관한 데이터는 버려진다. 바람직하게는 이 과정에서 인스톨 코드도 버려진다.
블록(118)은 바람직하게는 RAM들(52, 62) 중 하나에 또는 데이터 버퍼(42) 또는 레지스터 내에, 파워 업 리셋이 다운로드의 결과임을 표시하는 "키" 또는 다른 표시자를 저장하는 단계를 포함할 수도 있다. 이때 파워 업 루틴은 파워 업 중에 그리고 시스템 내의 메모리와 레지스터들을 클리어시키기 전에 상기 키에 대한적절한 위치를 체크해야 한다. 따라서, 드라이브(10)의 파워 업 루틴은 다운로드를 개시한 호스트 컴퓨터에게 종료 응답을 보내는 단계(120)를 포함할 수 있다. 블록 (118)에서 드라이브 상태 정보를 저장하여, 파워 업과 동시에 현재 드라이브 상태 (또는 "드라이브 상태"), 가령, 스핀 업 상태(spin up status) 등이 복구되도록 할수도 있다.
바람직한 실시예들은 종래의 다운로드 방법보다 나은 실질적인 장점을 제공한다. 특히, 비록 단일의 다운로드 엔티티에 의해 다수의 디바이스 타입이 지원되지만, 미사용 데이터는 버려지고, 그에 따라 다운로드되는 데이터의 크기가 축소된다. 더욱이, 다수의 디바이스 타입들을 처리하기 위한 특별한 런타임 프로세싱이 제거된다. 불휘발성(플래시) 메모리들의 비용이 정해진 경우에는, 필요한 메모리 공간을 축소하는 방법이 특히 유익하다.
더욱이, 디스크 드라이브 어레이와 같은 응용 예에 있어서, 바람직한 실시예들은 다수의 디스크 드라이브들을 사실상 단순하고 보다 신속하게 자동 업데이트하는 장점을 더 제공한다. 특히, 단일의 다운로드 엔티티가 어레이 제어기 또는 다른 호스트 컴퓨터에 의해 다수의 디스크 드라이브들로 다운로드될 수 있으며, 선택적으로 브로드캐스트형 명령(broadcast-type command)에 의해 동시에 다운로드될 수 있다. 각 디스크 드라이브는, 각자 인식된 디바이스 타입에 기초하여, 다운로드 엔티티로부터 각자의 디바이스 타입과 관련된 정보만을 발취하고 나머지 정보는 버린다. 부가적인 장점으로서, 부호화된 인스톨 정보를 자체 내에 가지는 하나의 다운로드 엔티티만을 지원하면 된다. 그에 따라, 조작자나 호스트 컴퓨터가 디바이스타입을 알 필요가 없다. 해당 기술 분야의 통상의 지식을 가진 자라면 그 밖의 장점들을 명백히 알 것이다.
다운로드 엔티티 내의 여러 가지 데이터, 프로그램 코드, 파라미터 등은 서로 다른 시간에 하나 이상의 "프로그램 기억 디바이스"(program storage devices)상에 존재한다는 것을 알 수 있을 것이다. 총칭하여, "프로그램 기억 디바이스"라는 용어는, RAM, ROM, EPOM, 프로세서 및 캐시 메모리, 플래시 메모리 등과 같은 메모리 디바이스는 물론 자기 디스크(고정식 또는 가동식), CD-ROM, 자기 테입과 같은 고정식(fixed) 또는 가동식(removable) 대용량 기억 매체를 포함하여, 휘발성 또는 불휘발성 방식으로 데이터 또는 프로그램 코드와 같은 정보를 저장할 수 있는 임의의 디바이스 또는 장치를 포함할 수 있다.
본 발명의 예시적인 실시예에 대한 전술한 설명은 예시와 설명을 목적으로 제시되었다. 본 설명은 모든 것을 포괄하려고 하거나 또는 개시된 그대로의 형태로 발명을 한정하려고 한 것이 아니다. 상기 시사 내용에 따른 많은 수정과 변형이 있을 수 있다. 본 발명의 범위는 이 상세한 설명에 의해서가 아니라, 여기에 첨부된 특허 청구의 범위에 의해서 한정된다.

Claims (25)

  1. 복수의 디바이스 타입들 중의 어느 한 디바이스 타입을 가진 전자 디바이스에 의해 수행되는 데이터 다운로드 방법에 있어서,
    (a) 각 디바이스 타입과 관련된 디바이스 타입 테이블 내의 데이터를 포함하는 다운로드 엔티티를 상기 전자 디바이스의 데이터 버퍼내에 수신하는 단계와,
    (b) 상기 다운로드 엔티티에 상기 전자 디바이스와 관련된 최소한 하나의 디바이스 타입에 대한 표시(indication)를 제공하는 단계와,
    (c) 상기 디바이스 타입 테이블에서 추출된 데이터로부터 상기 다운로드 엔티티의 데이터 이미지 블록에 데이터 이미지를 구축하는 단계와,
    (d) 상기 전자 디바이스에 관련된 상기 표시된 디바이스 타입에 관련된 데이터만을 제공하기 위하여 상기 데이터 버퍼로부터 상기 전자 디바이스로 상기 데이터 이미지 블록을 기록하는 단계와,
    (e) 상기 데이터 버퍼를 클리어(clear)하기 위해 리셋을 실시하는 단계를 포함하고,
    상기 데이터 이미지 블록 기록 단계(d)는
    (d1) 상기 다운로드 엔티티로부터 설치 루틴- 상기 설치 루틴에는 상기 전자 디바이스에 상주하는 유틸리티에 대한 포인터가 제공됨 -을 추출하는 단계와,
    (d2) 상기 표시된 디바이스 타입과 관련된 데이터만을 상기 전자 디바이스의 불활성 메모리에 저장하기 위해 상기 전자 디바이스에 의해 설치 루틴을 실행하는단계를 포함하고,
    상기 설치 루틴 추출 단계(d1) 및 설치 루틴 실행 단계(d2) 단계의 적어도 일부분은 상기 전자 디바이스 내에 상주하는 다운로드 처리 루틴에 의해 수행되는 것인 다운로드 방법.
  2. 제1항에 있어서, 상기 다운로드 엔티티 내의 데이터는 상기 전자 디바이스에 의해 실행되는 프로그램 코드를 포함하는 것인 다운로드 방법.
  3. 제1항에 있어서, 상기 다운로드 엔티티 내의 데이터는 상기 전자 디바이스를 특징짓는 디바이스 파라미터들을 포함하는 것인 다운로드 방법.
  4. 제1항에 있어서, 상기 다운로드 처리 루틴은 호스트 컴퓨터로부터 전송되는 다운로드 명령에 응답하여 호출되는 것인 다운로드 방법.
  5. 제1항에 있어서, 상기 디바이스 타입 테이블은 디바이스 타입에 따라 인덱스되는 것인 다운로드 방법.
  6. 제1항에 있어서, 상기 데이터 이미지 블록 내에 상기 데이터 이미지를 구축하는 단계(c) 전에, 상기 전자 디바이스 내의 상기 불휘발성 기억 장치의 현재 내용을 상기 데이터 이미지 블록에 복사하는 단계를 더 포함하는 것인 다운로드 방법.
  7. 제1항에 있어서, 상기 표시 제공 단계(b)는 상기 전자 디바이스의 하나 이상의 동작 특성을 테스트하는 단계를 포함하되, 상기 테스트되는 동작 특성은 디바이스 타입들 간의 차이에 따라 변하는 것인 다운로드 방법.
  8. 제1항에 있어서, 상기 전자 디바이스는 상기 다운로드 엔티티를 수신하기 위한 데이터 버퍼, 및 상기 데이터 버퍼에 결합되어 상기 표시된 디바이스 타입과 관련된 데이터를 이용하는 제1 제어기를 포함하는 디스크 드라이브인 것인 다운로드 방법.
  9. 제8항에 있어서, 상기 디스크 드라이브는 상기 제1 제어기에 결합되어 상기 표시된 디바이스 타입과 관련된 데이터를 저장하기 위한 불휘발성 메모리를 더 포함하는 것인 다운로드 방법.
  10. 제8항에 있어서, 상기 다운로드 엔티티 내의 데이터는 상기 디스크 드라이브를 특징짓는 서보 파라미터들을 포함하며, 상기 디스크 드라이브는 상기 제1 제어기에 결합된 제2 제어기를 더 포함하되, 상기 제2 제어기는 상기 표시된 디바이스 타입과 관련된 상기 서보 파라미터들을 저장하기 위한 랜덤 액세스 메모리(RAM)를 구비하는 다운로드 방법.
  11. 제10항에 있어서, 상기 제1 및 제2 제어기는 동일한 프로세서를 포함하는 것인 다운로드 방법.
  12. 제8항에 있어서, 상기 디스크 드라이브는 어레이 제어기에 의해 제어되는 디스크 드라이브들의 어레이 중 하나이며, 상기 다운로드 방법은 상기 다운로드 엔티티를 상기 어레이 내의 복수의 디스크 드라이브로 전송하는 단계를 더 포함하고, 그에 따라 상기 복수의 디스크 드라이브들 각각은 상기 다운로드 엔티티 내에서 각자의 판단된 디바이스 타입과 관련된 데이터만을 보유하는 것인 다운로드 방법.
  13. 복수의 디바이스 타입들 중의 어느 한 디바이스 타입을 가진 전자 디바이스에 있어서,
    (a) 상기 전자 디바이스의 동작 중에 이용되는 동작 관련 데이터 (operational data)를 저장하기 위한 불활성 메모리 수단과,
    (b) 복수의 디바이스 타입과 관련된 데이터를 포함하는 데이터 객체(data object)를 상기 전자 디바이스의 외부로부터 수신하기 위한 수신 수단과,
    (c) 수신된 상기 데이터 객체로부터 상기 전자 디바이스의 디바이스 타입과 관련된 데이터만을 상기 불활성 메모리 수단 내에 설치하고 상기 데이터 객체로부터 설치 루틴- 상기 설치 루틴에는 상기 루틴의 실행을 위해 상기 전자 디바이스에 상주하는 유틸리티에 대한 포인터가 제공됨-을 추출하는 설치 수단과,
    (d) 다운로드 처리 루틴을 구비하는 다운로드 처리 수단을 포함하고,
    상기 다운로드 처리 수단은 상기 설치 루틴을 실행하여, 상기 전자 디바이스의 불휘발성 메모리에 표시된 디바이스 타입과 연관된 데이터만을 저장하는 것인 전자 디바이스.
  14. 제13항에 있어서, 상기 데이터 객체 내의 데이터는 프로그램 코드, 디바이스 파라미터 및 그들의 조합으로 이루어진 그룹으로부터 선택되는 것인 전자 디바이스.
  15. 제13항에 있어서, 상기 복수의 디바이스 타입들은 상이한 기능을 갖지만 동일한 하드웨어 플랫폼을 공유하는 상이한 전자 제품들을 나타내는 것인 전자 디바이스.
  16. 제13항에 있어서, 상기 전자 디바이스는 상기 데이터 객체를 임시 저장하기 위한 데이터 버퍼를 포함하는 디스크 드라이브이며, 상기 설치 수단은 제어기를 포함하는 것인 전자 디바이스.
  17. 디스크 드라이브에 있어서,
    (a) 복수의 디스크 드라이브 타입들 각각의 디바이스 타입과 관련된 데이터를 포함하는 다운로드 엔티티를 수신하기 위한 데이터 버퍼와,
    (b) 상기 디스크 드라이브와 관련된 동작 관련 데이터를 저장하기 위한 불활성 메모리와,
    (c) 상기 데이터 버퍼에 결합된 제1 제어기를 포함하고,
    상기 제어기는
    (c1) 상기 디스크 드라이브의 타입을 결정하고,
    (c2) 상기 다운로드 엔티티로부터 상기 디스크 드라이브에 대해 결정된 타입과 관련된 데이터만을 추출하고,
    (c3) 상기 디스크 드라이브에 결정된 타입과 관련된 데이터를 상기 불휘발성 메모리내에 저장하고,
    (c4) 상기 데이터 버퍼를 리셋하여 상기 데이터 버퍼를 클리어하며,
    상기 데이터의 추출(c2)은
    (c21) 상기 다운로드 엔티티로부터 설치 루틴 -상기 설치 루틴의 실행을 위해 상기 디스크 드라이브에 상주하는 유틸리티에 대한 포인터가 상기 설치루틴에 제공됨- 을 추출하고,
    (c22) 상기 다운로드 엔티티의 데이터 이미지 블록에 상기 디스크 드라이브에 대해 결정된 타입과 관련된 디바이스 타입내의 데이터로부터 데이터 이미지를 구축하고 상기 디스크 드라이브의 불휘발성 메모리에 표시된 디바이스 타입과 연관된 데이터만을 저장하기 위하여 상기 디스크 드라이브에 의해 상기 설치 루틴을 실행하며,
    상기 설치 루틴의 추출(c21) 및 실행(c22)의 적어도 일부는 상기 디스크 드라이브에 상주하는 다운로드 처리 루틴에 의해 실행되는 것인 디스크 드라이브.
  18. 제17항에 있어서, 상기 다운로드 엔티티 내의 데이터는 프로그램 코드, 디바이스 파라미터 및 그들의 조합으로 이루어진 그룹으로부터 선택되는 것인 디스크 드라이브.
  19. 제17항에 있어서, 상기 디스크 드라이브는 상기 제1 제어기에 결합된 제2 제어기를 더 포함하되, 상기 제2 제어기는 상기 다운로드 엔티티로부터 상기 디스크 드라이브를 특징짓는 서보 파라미터들을 저장하기 위한 랜덤 액세스 메모리를 구비하는 것인 디스크 드라이브.
  20. 장치에 있어서, (a) 데이터 버퍼, 디바이스 타입 및 동작에 사용되는 동작 관련 데이터를 저장하기 위한 불활성 메모리를 각각 가지는 직접 액세스 저장 디바이스들의 어레이- 복수의 상기 직접 액세스 저장 디바이스들 각각은 디바이스 제어기를 가지며, 상기 디바이스 제어기는 상기 다운로드 엔티티로부터 상기 직접 액세스 저장 디바이스의 개별 디바이스 타입과 관련된 동작 관련 데이터만을 자신의 불활성 메모리에 저장하고 개별 디바이스 타입과 관련되지 않은 동작관련 데이터는 버림-와,
    (b) 상기 직접 액세스 저장 디바이스들의 어레이를 제어하는 어레이 제어기-상기 어레이 제어기는 복수의 디바이스 타입과 관련된 동작관련 데이터를 포함하는일반적 다운로드 엔티티(generic download entity)를 복수의 상기 직접 액세스 저장 디바이스들에 제공하여 상기 불활성 메모리를 갱신함 -를 포함하고,
    상기 디바이스 제어기는 상기 다운로드 엔티티로부터 직접 액세스 저장 디바이스의 개별 디바이스 타입과 관련된 동작 관련 데이터만을 저장하고, 상기 일반적 다운로드 엔티티로부터 설치 루틴 -상기 설치 루틴을 실행하기 위하여 상기 직접 액세스 저장 디바이스에 상주하는 유틸리티에 대한 포인터가 상기 설치 루틴에 제공됨- 을 추출하고, 상기 직접 액세스 저장 디바이스에 대해 결정된 디바이스 타입에 관련된 상기 디바이스 타입 테이블 내의 데이터로부터 상기 다운로드 엔티티의 데이터 이미지 블록에 데이터 이미지를 구축하고, 상기 직접 액세스 저장 디바이스의 불휘발성 메모리에 상기 직접 액세스 저장 디바이스의 디바이스 타입과 연관된 데이터만을 저장하기 위해 상기 설치루틴을 실행하며,
    상기 설치 루틴의 추출 및 실행은 최소한 부분적으로는 상기 직접 액세스 저장 디바이스에 상주하는 다운로드 처리 루틴에 의해 수행되며, 상기 데이터 버퍼를 클러어하기 위해 상기 디바이스 제어기가 상기 데이터 버퍼를 리셋하는 것인 장치.
  21. 제20항에 있어서, 상기 다운로드 엔티티 내의 동작 관련 데이터는 프로그램 코드, 디바이스 파라미터 및 그들의 조합으로 이루어진 그룹으로부터 선택되는 것인 장치.
  22. 복수의 디바이스 타입들 중의 어느 한 디바이스 타입을 가진 전자 디바이스의 다운로드하기 위한 다운로드 엔티티에 있어서,
    (a) 디바이스 타입 테이블내에 상기 복수의 디바이스 타입들 각각과 관련된 부분들을 가진 데이터 블록과,
    (b) 상기 전자 디바이스에 의해 실행되는 설치 루틴- 상기 설치 루틴은 상기 다운로드 엔티티의 데이터 중 상기 전자 디바이스의 디바이스 타입과 관련된 데이터 부분만을 추출하고, 상기 전자 디바이스의 디바이스 타입과 관련없는 다운로드 엔티티내의 데이터는 버림 -을 포함하고,
    상기 설치 루틴에는 상기 설치 루틴을 실행하기 위하여 상기 전자 디바이스상에 상주하는 유틸리티 루틴들에 대한 포인터들이 제공되고,
    상기 데이터의 추출 및 상기 설치 루틴의 실행의 적어도 일부가 상기 전자 디바이스에 상주하는 다운로드 처리 루틴- 상기 다운로드 처리 루틴은 상기 설치 루틴을 실행하여 상기 디바이스 타입 테이블내의 데이터로부터 상기 전자 디바이스에 대해 결정된 타입과 관련된 데이터 이미지를 구축하고, 표시된 디바이스 타입과 관련된 데이터만을 상기 전자 디바이스의 불활성 메모리에 저장하는 것인 다운로드 엔티티.
  23. 전자 디바이스에 의해 판독 가능한 프로그램 저장 디바이스에 있어서,
    제38항의 상기 다운로드 엔티티를 실체적으로 구현하는 프로그램 저장 디바이스.
  24. 제1항에 있어서, 상기 표시된 데이터 타입과 관련된 상기 데이터는 상기 전자 디바이스내의 불활성 메모리에 저장되는 것인 데이터 다운로드 방법.
  25. 제20항에 있어서, 상기 다운로드 엔티티는 설치 루틴을 포함하고, 상기 복수의 직접 액세스 저장 디바이스 각각은 상기 설치 루틴을 실행하여 상기 불활성 메모리내에 상기 데이터 버퍼내의 데이터중 개별 디바이스 타입과 관련된 데이터만을 저장하는 것인 장치.
KR1019970005840A 1996-04-09 1997-02-25 전자디바이스에데이터를다운로드하기위한장치및방법 KR100327991B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/631,650 1996-04-09
US08/631,650 US6308325B1 (en) 1996-04-09 1996-04-09 Apparatus and method for downloading data to electronic device

Publications (2)

Publication Number Publication Date
KR970071273A KR970071273A (ko) 1997-11-07
KR100327991B1 true KR100327991B1 (ko) 2002-06-29

Family

ID=24532138

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970005840A KR100327991B1 (ko) 1996-04-09 1997-02-25 전자디바이스에데이터를다운로드하기위한장치및방법

Country Status (3)

Country Link
US (2) US6308325B1 (ko)
JP (2) JP3688094B2 (ko)
KR (1) KR100327991B1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6308325B1 (en) * 1996-04-09 2001-10-23 International Business Machines Corporation Apparatus and method for downloading data to electronic device
US6480891B1 (en) * 1999-01-04 2002-11-12 3Com Corporation Embedded code memory size reduction in asynchronous mode transfer devices
US6397385B1 (en) * 1999-07-16 2002-05-28 Excel Switching Corporation Method and apparatus for in service software upgrade for expandable telecommunications system
US7412462B2 (en) 2000-02-18 2008-08-12 Burnside Acquisition, Llc Data repository and method for promoting network storage of data
JP2001306543A (ja) * 2000-04-19 2001-11-02 Nec Corp マイクロコンピュータ及びフラッシュメモリのデータ書換え方法
US6553468B1 (en) * 2000-06-26 2003-04-22 International Buisness Machines Corporation Storage method for personal digital devices
US7313609B1 (en) * 2000-08-09 2007-12-25 Schneider Automation Inc. Method and apparatus for programming an automation device
US7051326B2 (en) * 2000-12-13 2006-05-23 International Business Machines Corporation Code image distribution in a multi-node network of processors
US20020114457A1 (en) * 2001-01-26 2002-08-22 Takahiro Sato LSI having interpreter function and information recording/reproducing apparatus using the same
KR100371189B1 (ko) * 2001-02-20 2003-02-06 엘지전자 주식회사 이동통신 단말기의 멀티-다운로드 구조 및 방법
US8458689B2 (en) * 2001-03-30 2013-06-04 Roderick A. Barman Method and apparatus for reprogramming engine controllers
US20020188938A1 (en) * 2001-06-11 2002-12-12 Dong Mimi Chu System and method for providing application software for a peripheral device
US20030204711A1 (en) * 2002-04-29 2003-10-30 Guess Alan J. Method and system for restoring custom user configuration settings across a host application download
US20040122989A1 (en) * 2002-12-20 2004-06-24 Lyman Hall Method of determining code to download for runtime configuration
US7533374B2 (en) * 2003-06-12 2009-05-12 Intel Corporation Adaptively storing system code in non-volatile storage
US7177782B2 (en) * 2004-06-18 2007-02-13 Lenovo (Singapore) Pte. Ltd. Methods and arrangements for capturing runtime information
WO2006046506A1 (ja) * 2004-10-27 2006-05-04 Matsushita Electric Industrial Co., Ltd. 受信機器
KR100644689B1 (ko) * 2005-03-24 2006-11-10 삼성전자주식회사 광대역 네트워크 내의 서버를 이용한 콘텐츠 데이터 공유시스템 및 방법
US7573713B2 (en) 2005-09-13 2009-08-11 Pacific Star Communications High velocity air cooling for electronic equipment
US7535861B2 (en) * 2005-10-07 2009-05-19 Pacific Star Communications Inc. Self-contained portable broadband communication system
US20080005380A1 (en) * 2006-02-21 2008-01-03 Pacific Star Communications, Inc. Integrated configuration and management of hardware devices
US7817589B2 (en) * 2006-02-21 2010-10-19 Pacific Star Communications, Inc. Self-contained portable broadband communications system
WO2007131190A2 (en) 2006-05-05 2007-11-15 Hybir Inc. Group based complete and incremental computer file backup system, process and apparatus
DE102009050646A1 (de) * 2009-10-26 2011-04-28 Kuka Roboter Gmbh Verfahren und Vorrichtung zum Steuern einer Mehrmaschinenanordnung
JP5619999B2 (ja) 2010-07-23 2014-11-05 フジツウ テクノロジー ソリューションズインタレクチュアル プロパティ ゲーエムベーハー ユーティリティプログラムを実行する方法、コンピュータシステム及びコンピュータプログラムプロダクト
KR20130009911A (ko) * 2011-07-15 2013-01-24 전자부품연구원 스케일러블 어플리케이션 서비스를 위한 장치 및 방법
CN105278866B (zh) * 2014-07-18 2018-03-27 光宝科技股份有限公司 固态储存装置及其错误更正控制方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0448363A (ja) * 1990-06-18 1992-02-18 Fujitsu Ltd ダウンロード制御方式

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5674728A (en) 1979-11-22 1981-06-20 Fujitsu Ltd Program load system
US4870571A (en) * 1983-05-04 1989-09-26 The Johns Hopkins University Intercomputer communications based on message broadcasting with receiver selection
JPH0630078B2 (ja) 1984-08-03 1994-04-20 富士通株式会社 端末装置初期ロ−ド制御方式
JPS61188653A (ja) 1985-02-15 1986-08-22 Fujitsu Ltd ダウンロ−ド制御方式
US4974151A (en) * 1985-02-21 1990-11-27 International Business Machines Corporation Configuration capability for devices in an open system having the capability of adding or changing devices by user commands
JPS62126451A (ja) 1985-11-27 1987-06-08 Mitsubishi Electric Corp 分散処理装置のイニシヤルプログラムロ−ド方式
US4897813A (en) 1988-02-19 1990-01-30 Unisys Corporation Partially programmable read-only memory system
US5249279A (en) * 1989-11-03 1993-09-28 Compaq Computer Corporation Method for controlling disk array operations by receiving logical disk requests and translating the requests to multiple physical disk specific commands
WO1991019244A1 (en) * 1990-06-04 1991-12-12 3Com Corporation Method for optimizing software for any one of a plurality of variant architectures
JPH0792744B2 (ja) 1990-08-20 1995-10-09 インターナショナル・ビジネス・マシーンズ・コーポレイション 多重レベル適用業務ソフトウェアをデータ処理装置にインストールする方法。
JP3361107B2 (ja) 1991-04-19 2003-01-07 株式会社デジタル ダウンロード方法
JPH0644158A (ja) 1991-06-27 1994-02-18 Intaakomu:Kk リモートインストール方法
US5291585A (en) 1991-07-29 1994-03-01 Dell Usa, L.P. Computer system having system feature extension software containing a self-describing feature table for accessing I/O devices according to machine-independent format
JPH05150993A (ja) 1991-11-28 1993-06-18 Fujitsu Ltd デイスク装置のプログラムロード方法
JPH05158680A (ja) 1991-12-06 1993-06-25 Nec Niigata Ltd Rom書替え処理方式
US5481709A (en) 1992-06-22 1996-01-02 International Business Machines Corporation Method and apparatus for providing a modular ABIOS device support layer in a computer system
US5313592A (en) * 1992-07-22 1994-05-17 International Business Machines Corporation Method and system for supporting multiple adapters in a personal computer data processing system
JPH0799512B2 (ja) 1992-11-18 1995-10-25 インターナショナル・ビジネス・マシーンズ・コーポレイション プログラム可能な外部記憶制御装置
US5499295A (en) 1993-08-31 1996-03-12 Ericsson Inc. Method and apparatus for feature authorization and software copy protection in RF communications devices
JP3310060B2 (ja) 1993-09-13 2002-07-29 株式会社東芝 記憶装置および同装置の制御プログラム書換え方法
JPH0793145A (ja) 1993-09-27 1995-04-07 Hitachi Denshi Ltd プログラムの遠隔変更方式
US5659800A (en) * 1993-10-06 1997-08-19 International Technologies & Systems Corporation (Its) System for directly sending undecoded raw signals from reader device via external slave interface to personal computer through communication port without first decoding the signals
JP2871433B2 (ja) 1993-11-30 1999-03-17 日本電気株式会社 パッチ方式
US5442789A (en) 1994-03-31 1995-08-15 International Business Machines Corporation System and method for efficiently loading and removing selected functions on digital signal processors without interrupting execution of other functions on the digital signal processors
JPH07287652A (ja) 1994-04-18 1995-10-31 Nec Corp Db抽出処理プログラム自動生成方式
US5524204A (en) * 1994-11-03 1996-06-04 International Business Machines Corporation Method and apparatus for dynamically expanding a redundant array of disk drives
US6308325B1 (en) * 1996-04-09 2001-10-23 International Business Machines Corporation Apparatus and method for downloading data to electronic device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0448363A (ja) * 1990-06-18 1992-02-18 Fujitsu Ltd ダウンロード制御方式

Also Published As

Publication number Publication date
US6308325B1 (en) 2001-10-23
JP3896321B2 (ja) 2007-03-22
JP2003196103A (ja) 2003-07-11
KR970071273A (ko) 1997-11-07
US6990661B2 (en) 2006-01-24
JPH10124321A (ja) 1998-05-15
US20020023177A1 (en) 2002-02-21
JP3688094B2 (ja) 2005-08-24

Similar Documents

Publication Publication Date Title
KR100327991B1 (ko) 전자디바이스에데이터를다운로드하기위한장치및방법
KR100968318B1 (ko) 데이터 저장 디바이스 및 이로부터의 정보 획득 방법 및 시스템과 컴퓨터 판독가능 저장 매체
US5327549A (en) Data storage system including a BIOS extension memory on an adapter between a host computer and disk drive
US20090132621A1 (en) Selecting storage location for file storage based on storage longevity and speed
US5430845A (en) Peripheral device interface for dynamically selecting boot disk device driver
JP4354023B2 (ja) 記憶サブシステム内でのドライブ移動及び記憶サブシステムへのボリューム追加のための装置及び方法
CN104412218B (zh) 存储控制程序的存储介质、控制信息处理设备的方法、信息处理系统,以及信息处理设备
US5159597A (en) Generic error recovery
US5890208A (en) Command executing method for CD-ROM disk drive
US5668970A (en) Method and apparatus for generating a file allocation table for a storage medium with no file allocation table using file storage information
EP1271332A2 (en) A multifunction semiconductor storage device and a method for booting-up computer host
US5062042A (en) System for managing data which is accessible by file address or disk address via a disk track map
EP0597654A1 (en) System and method for multi-format data storage backup of a computer system
US20080072224A1 (en) Enhanced store facility list system and operation
US6883066B2 (en) Method and system for cache management algorithm selection
EP1637987A2 (en) Operation environment associating data migration method
US20050262296A1 (en) Selective dual copy control of data storage and copying in a peer-to-peer virtual tape server system
US5951687A (en) Storage disc with self diagnostics and configuration
JP2737562B2 (ja) 高密度磁気ディスク装置のパトロールシーク方式
US8359439B2 (en) Backup apparatus, backup method, and file reading apparatus
US5548784A (en) Automatic disk change detection without causing head movement by step pulses
EP0240616B1 (en) Method to test and set data in a record on disk in one atomic input/output operation
US7734836B2 (en) Method and apparatus for dynamically qualifying mass storage devices
KR100466142B1 (ko) 디스크 드라이브 어레이의 디스크 어레이 제어기 및 제어기 펌웨어의 업데이트 방법과 디스크 어레이의 제어기에 진단 정보 및 펌웨어 업데이트를 전달하는 디스크 드라이브
JPH05265739A (ja) 磁気テープ装置のプログラム変更方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110110

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee