KR101120956B1 - Portable multi-platform booting systems and architectures - Google Patents

Portable multi-platform booting systems and architectures Download PDF

Info

Publication number
KR101120956B1
KR101120956B1 KR1020097013739A KR20097013739A KR101120956B1 KR 101120956 B1 KR101120956 B1 KR 101120956B1 KR 1020097013739 A KR1020097013739 A KR 1020097013739A KR 20097013739 A KR20097013739 A KR 20097013739A KR 101120956 B1 KR101120956 B1 KR 101120956B1
Authority
KR
South Korea
Prior art keywords
computer system
memory
delete delete
removable storage
storage device
Prior art date
Application number
KR1020097013739A
Other languages
Korean (ko)
Other versions
KR20090097171A (en
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
Priority claimed from US11/618,872 external-priority patent/US7925875B2/en
Priority claimed from US11/618,870 external-priority patent/US20080162916A1/en
Application filed by 쌘디스크 코포레이션 filed Critical 쌘디스크 코포레이션
Publication of KR20090097171A publication Critical patent/KR20090097171A/en
Application granted granted Critical
Publication of KR101120956B1 publication Critical patent/KR101120956B1/en

Links

Images

Classifications

    • 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/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • 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/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은, 비휘발성 메모리를 가진 휴대용 모듈로부터 멀티플랫폼 부팅을 위한 방법, 시스템, 및 아키텍쳐에 관한 것이다. 바람직하게 휴대용 모듈은 전력 인가시 호스트가 적당한 이진수를 로딩하기 위하여 올바른 오프셋을 계산할 수 있는 테이블과 함께, 다중 시스템 아키텍쳐를 부팅하기 위한 올바른 이진수를 갖는다.The present invention relates to a method, system, and architecture for multiplatform booting from a portable module with nonvolatile memory. The portable module preferably has the correct binary number for booting the multi-system architecture, along with a table where the host can calculate the correct offset to load the proper binary number upon power up.

Description

휴대용 멀티-플랫폼 부팅시스템과 아키텍쳐{PORTABLE MULTI-PLATFORM BOOTING SYSTEMS AND ARCHITECTURES}PORTABLE MULTI-PLATFORM BOOTING SYSTEMS AND ARCHITECTURES

본 출원은, 일반적으로 컴퓨터 시스템들 분야에 관한 것이고, 보다 구체적으로는 탈착 가능한 저장 장치로부터 다중 아키텍쳐 부트스트랩핑(bootstrapping)을 위한 시스템과 방법에 관한 것이다.TECHNICAL FIELD This application generally relates to the field of computer systems, and more particularly, to systems and methods for multiple architecture bootstrapping from removable storage devices.

애플리케이션 프로그램들 및 근원적인 하드웨어 사이를 중재하기 위하여, 소프트웨어 및 펌웨어 구조의 몇몇 층들은 사용된다. 첫째 전력이 컴퓨터에 인가될 때, 다양한 하드웨어 엘리먼트들(칩들 및 서브시스템들)은 각각 안정되고 공지된 상태를 회복하기 위하여 내부 프로시저들(리셋 프로시저들)을 가질 것이다. 그러나 몇몇 포인트에서(만약 하드웨어가 인택트(intact)하면), 이들 리셋 프로시저들은 종료될 것이고, 이런 포인트에서 CPU는 다양한 중요한 오버헤드 임무들을 수행한다. 이들은 예를 들어 시스템 구성을 조사하고, 시스템 하드웨어 상에서 온전함 검사를 수행하고, 소프트웨어 제어 하에서 사용자가 NVRAM 구성 프로그램에 브랜치하게 하는 것을 포함한다. 이런 단계의 작동은 일반적으로 "POST"(전력-인가-자기-검사)라 불린다.In order to mediate between application programs and underlying hardware, several layers of software and firmware architecture are used. First, when power is applied to the computer, the various hardware elements (chips and subsystems) will each have internal procedures (reset procedures) to restore a stable and known state. However, at some point (if the hardware is intact), these reset procedures will terminate, at which point the CPU performs various important overhead tasks. These include, for example, examining system configuration, performing sanity checks on system hardware, and allowing users to branch to NVRAM configuration programs under software control. This stage of operation is commonly referred to as "POST" (power-up-self-check).

POST 이후, "부트스트랩(또는 "부트") 프로그램은 자동으로 시작되어, CPU가 다른 소프트웨어를 실행하게 한다. 부트 프로그램은 마스터 부트 레코드로부터의 데이터를 사용하고, PC 아키텍쳐에서 상기 데이터는 일반적으로 부트 파일들이 배치된 드라이브의 섹터 1(512-바이트 영역) 내에 저장된다. 실행 동안, 마스터 부트 레코드는 디스크로부터 메모리로 시작 시스템 파일을 로딩한다. 모든 작동 시스템 파일들이 로딩된 후, 부트스트랩 프로그램은 오퍼레이팅 시스템을 시작한다. 부트스트랩 프로그램은 주 오퍼레이팅 시스템 소프트웨어의 실행 시 CPU를 시작한다; 시스템이 어떻게 셋업되느냐에 따라, 부트 소프트웨어는 Vista, OS/X, Unix 또는 다른 오퍼레이팅 시스템에 프로그램 실행을 지시할 수 있다. 이것은 일반적으로 자동이고 미리 결정되지만, 몇몇 시스템들에서 수동으로 사용자 선택 가능하다. 이런 포인트에서 부트스트랩 프로그램의 임무는 종료한다. 그 다음 오퍼레이팅 시스템은 초기화 단계들이 무엇을 위해 구성되든, 그리고 궁극적으로 어느 애플리케이션을 목표하든 사용자가 시작하게 하기 위하여 컴퓨터가 이용될 수 있다. After POST, the "bootstrap" (or "boot") program starts up automatically, causing the CPU to run other software. The boot program uses data from the master boot record, and on PC architecture the data is typically booted. The files are stored in sector 1 (512-byte area) of the drive where they are placed .. During execution, the master boot record loads the starting system file from disk into memory.After all operating system files have been loaded, the bootstrap program is operated. The bootstrap program starts the CPU when the main operating system software runs; depending on how the system is set up, the boot software can direct Vista, OS / X, Unix, or other operating systems to run the program. This is usually automatic and predetermined, but some At this point, the bootstrap program's task is terminated, and the operating system is then configured to allow the user to start whatever the initialization phases are configured for and ultimately which application is targeted. A computer can be used.

상기 설명은 컴퓨터들의 세계에 관한 것이지만, 많은 저전력 휴대용 전자 시스템들이 유사한 문제들을 제공한다. 상기 시스템들이 보다 공통적이고 보다 다기능화될 때, 상기 시스템의 아키텍쳐는 보다 다양한 몇몇 경향을 갖는다. (매우 낮은 전력 소모 및 주문 제작된 I/O의 요구들은 다양성을 형성하는 경향이 있다). 많은 이들 장치들은 10년 전 또는 그 정도의 퍼스널 컴퓨터와 호환할 수 있는 처리기 및/또는 메모리 사양들을 가지며, 몇몇은 보다 많은 사양을 갖는다. 많은 이들 휴대용 전자제품 설계들은 다른 피쳐들이 부가된 채로 하나의 주 애플리케이션 주변에 설계된다. 예를 들어, PDA(퍼스널 디지털 어시스탄트) 전화 설계들은 제작사(또 는 회사)가 전화들을 바탕으로 하는지 PDA들을 바탕으로 하는지에 따라 설계면에서 몇몇 차이들을 나타낼 수 있다. 값비싼 컴퓨터 전력 및 배터리 에너지의 결합은 기능 수렴을 위한 강력한 힘이 있지만, 많은 휴대용 전자 제품 마켓 세그먼트들은 보다 특정한 기원들의 표시들을 나타낸다. 다양하고 복잡한 휴대용 전자제품 기능들은 게임 머신들, 전화들, 음악 및 영화 플레이어들, 카메라들 및 비디오 레코더들, PDA들, 위치 감지, 심장 모니터들, 이들의 혼합들, 및 이미지 이해 보안 모니터들, 얼굴 인식 소프트웨어, 및 충돌 회피 같은 보다 새로운 기능들을 포함한다. 따라서, 하드웨어의 극단의 다양성은 수렴 잠재력이 증가하는 동안에도, 적어도 근 미래 동안 계속될 것이다.Although the above description relates to the world of computers, many low power portable electronic systems present similar problems. As the systems become more common and more versatile, the architecture of the system has several more tendencies. (Very low power consumption and customized I / O demands tend to form diversity.) Many of these devices have processor and / or memory specifications that are compatible with personal computers 10 years ago or so, and some have more. Many of these portable electronic designs are designed around one main application with other features added. For example, PDA (Personal Digital Assistant) phone designs may exhibit some differences in design depending on whether the manufacturer (or company) is based on phones or PDAs. Combining expensive computer power and battery energy is a powerful force for function convergence, but many portable electronics market segments represent indications of more specific origins. Various and complex portable electronic functions include game machines, telephones, music and movie players, cameras and video recorders, PDAs, position sensing, heart monitors, mixtures thereof, and image understanding security monitors, Newer features such as face recognition software, and collision avoidance. Thus, the extreme variety of hardware will continue, at least for the near future, while the convergence potential increases.

휴대용 전자제품들의 많은 개발들은 콘텐트 소유권에 의해 의도되었다. 음악, 비디오들, 및 게임들은 빈번하게 표절되고, 양심적인 바이어들에 의해 지불된 단가 및 카피라이트 소유자들에 의해 수신된 평균 단가 사이의 갭은 개발상의 짐이다. 따라서, 파괴를 불가능하게 하는 비휘발성 메모리 모듈들을 개발하기 위한 극한 노력들이 이루어졌다. 샌디스크에 의해 판매되는 것과 같은 진보된 메모리 모듈들은 공통적으로 호스트 머신에 보여지지 않게 암호화 알고리듬들을 실행할 수 있는 처리기를 포함하여, 보호된 콘텐트는 직접적으로 액세스될 수 없다. Many developments of portable electronics have been intended by content ownership. Music, videos, and games are frequently plagiarized, and the gap between the unit price paid by conscientious buyers and the average unit price received by copyright owners is a development burden. Thus, extreme efforts have been made to develop nonvolatile memory modules that make it impossible to destroy. Advanced memory modules, such as those sold by SanDisk, commonly include a processor that can execute encryption algorithms invisible to the host machine, so protected content cannot be accessed directly.

심지어 보다 강력한 보안은 호스트의 제어된 소프트웨어 환경에 의해 제공될 수 있다. 이것은 비휘발성 메모리 모듈의 프로그램에 의해 쉽게 달성되는 것이 아니고, 시스템이 비휘발성 메모리 모듈로부터 부팅되는 경우에 달성될 수 있다. 이 경우 부트 프로그램은 비표준 오퍼레이팅 시스템 구성요소들의 로딩을 제한할 수 있고, 및/또는 그 외에 로드 모니터는 표준 오퍼레이팅 시스템 구성요소들을 처리한다.Even stronger security can be provided by the host's controlled software environment. This is not easily accomplished by the program of the nonvolatile memory module, but may be achieved when the system is booted from the nonvolatile memory module. In this case the boot program may restrict the loading of non-standard operating system components, and / or otherwise the load monitor handles the standard operating system components.

제 1 퍼스널 컴퓨터들은 탈착 가능한 디스크(플로피 디스크)로부터 부팅되지만, 또한 비휘발성 메모리 모듈로부터 부팅될 수도 있다. 여기에 참조로써 통합된 U.S. 애플리케이션 07/901,645를 참조하라.The first personal computers boot from removable disks (floppy disks), but may also boot from nonvolatile memory modules. U.S., incorporated herein by reference. See application 07 / 901,645.

멀티 플랫폼 부팅은 보다 어려운 문제이다. 부트스트랩 프로그램은 오퍼레이팅 시스템을 시작하기 전에 어떤 파일들이 메모리에 로딩되어야 하는지를 알아야 하고, 일반적으로 파일 시퀀싱 및 메모리 위치들의 제한들을 알아야 한다. 이것은 오퍼레이팅 시스템 및 하드웨어 환경에 따라 폭넓게 변화한다. 예를 들어, 2006년 대에, SD 카드는 다양한 시스템들에 삽입될 수 있지만, 이들 시스템들의 상당 부분은 IA32 명령들을 실행하지 못할 것이다. ARM 및 PowerPC 시스템들은 IA32가 호환할 수 없는 넓은 용도에서 단지 두 개의 대안적인 아키텍쳐들이 있다. 이들 시스템들 상에서 부트스트랩 타입 작용은 호환 가능한 이진 파일들이 이들 플랫폼들을 위하여 제공되지 않으면 달성될 수 없다.Multiplatform booting is a more difficult problem. The bootstrap program must know which files should be loaded into memory before starting the operating system, and generally must know the limitations of file sequencing and memory locations. This varies widely depending on the operating system and hardware environment. For example, in 2006, SD cards could be inserted into a variety of systems, but many of these systems would not be able to execute IA32 instructions. ARM and PowerPC systems have only two alternative architectures for a wide range of applications where the IA32 is incompatible. Bootstrap type behavior on these systems cannot be achieved unless compatible binary files are provided for these platforms.

여기에 참조로써 통합된 U.S. 특허 5,291,585는 BIOS 확장부들을 가진 퍼스널 컴퓨터를 기술한다. 이들 BIOS 확장부들은 BIOS 확장부에 저장된 자체 기술 피쳐 테이블에 의해 인덱스된다.U.S., incorporated herein by reference. Patent 5,291,585 describes a personal computer with BIOS extensions. These BIOS extensions are indexed by their description table stored in the BIOS extension.

본 출원은 휴대용 저장 모듈로부터 멀티 플랫폼 부팅하는 새로운 방법들을 개시한다. 휴대용 모듈은 부팅을 위한 적당한 이진 파일들에 액세스하기 위하여 휴대용 모듈 내 여러 위치들에 다양한 아키텍쳐들 및 오퍼레이팅 시스템들을 재지향시키는 테이블(또는 다른 데이터 구조)을 갖는다.The present application discloses new methods of multiplatform booting from a portable storage module. The portable module has a table (or other data structure) that redirects various architectures and operating systems to various locations within the portable module to access appropriate binary files for booting.

완전한 부팅 호환성을 위해, 시스템의 부트 코드는 바람직하게 적당하게 모듈의 테이블, 및 브랜치를 찾는 것을 이해한다. 그러나 비록 완전한 부팅 호환성이 모든 아키텍쳐들에서 달성되지 못하더라도, 개시된 실시예들은 부트 비호환성을 방지하고, 즉 올바르지 않은 부트 파일들로 인한 미결정 또는 다른 바람직하지 않은 결과들을 방지할 수 있다. For complete boot compatibility, the system's boot code preferably understands finding the table, and branch, of the module as appropriate. However, even if full boot compatibility is not achieved in all architectures, the disclosed embodiments can prevent boot incompatibility, that is, avoid indeterminate or other undesirable consequences of incorrect boot files.

다양한 실시예들에서 개시된 기술 혁신들은 하나 또는 그 이상의 적어도 다음 장점들을 제공한다:The technical innovations disclosed in various embodiments provide one or more of the following advantages:

보다 다양한 애플리케이션은 휴대용 데이터 모듈들에서 기초일 수 있다. 크로스 플랫폼 호환성의 장점은 사용자들에 의해 목표된 임의의 플랫폼에 목표된 기능들을 포팅하기 위한 많은 새로운 마켓들을 개방할 것이다.More diverse applications may be based on portable data modules. The advantage of cross platform compatibility will open up many new markets for porting targeted functions to any platform targeted by users.

보다 큰 보안성은 퍼스널 컴퓨터들로서 구성되지 않은 복합 전자 시스템들을 포함하는, 많은 플랫폼들과 호환할 수 있는 휴대용 데이터 모듈들을 위해 보장될 수 있다.Greater security can be ensured for portable data modules that are compatible with many platforms, including complex electronic systems not configured as personal computers.

SD 카드들을 사용하는 실시예들의 특정 장점은 SD 카드 사양이 디스크형 파일 구조로 정의되는 것이고 - 이에 따라 PC 부팅 가능 모듈은 MBR(마스터 부트 레코드)를 SD카드의 기존 구성에 부가함으로써 쉽게 달성될 수 있다.A particular advantage of embodiments using SD cards is that the SD card specification is defined as a disk-like file structure-thus a PC bootable module can be easily achieved by adding MBR (Master Boot Record) to the existing configuration of the SD card. have.

추가 장점은 새로운 아키텍쳐들에 많은 새로운 애플리케이션을 허용하면서, 기존 PC 아키텍쳐와 역 호환성이다. 이것은 특히 사용자들이 휴대용 장치 및 컴퓨터 사이에서 활동들을 왕복할 것이라 예상하는 애플리케이션들에 유용하다.An additional advantage is backward compatibility with existing PC architectures, while allowing many new applications for new architectures. This is particularly useful for applications where users expect to round trip activities between a portable device and a computer.

개시된 발명들의 다른 장점은 모바일 시스템들, 또는 실질적으로 영구적 저장소를 갖지 않는 장치(기구와 같은)에서 쉽고 안전한 펌웨어 업데이트이다.Another advantage of the disclosed inventions is easy and secure firmware update in mobile systems, or in a device (such as an appliance) that has substantially no permanent storage.

개시된 본 발명들은 본 발명의 중요한 샘플 실시예들을 나타내고 참조로써 명세서에 통합된 첨부 도면들을 참조하여 기술될 것이다.The disclosed inventions will be described with reference to the accompanying drawings, which show important sample embodiments of the invention and are incorporated herein by reference.

도 1은, 컴퓨터 시스템의 블록도.1 is a block diagram of a computer system.

도 2는, 다른 타입의 아키텍쳐를 위한 마스터 부트 레코드들의 메모리 위치를 식별하기 위한 테이블의 예를 도시하는 도면.FIG. 2 shows an example of a table for identifying memory locations of master boot records for another type of architecture.

도 3은, 다른 아키텍쳐를 가진 컴퓨터 시스템들을 부트스트램핑할 수 있는 탈착 가능한 장치로부터 컴퓨터 시스템을 부트스트랩핑하기 위한 처리를 도시하는 흐름도.FIG. 3 is a flow diagram illustrating a process for bootstrapping a computer system from a removable device capable of bootstrapping computer systems having a different architecture.

도 4는, 샘플 실시예를 포함하는 탈착 가능한 저장 장치의 일반적인 예시적 블록도를 도시하는 도면.4 illustrates a general exemplary block diagram of a removable storage device including a sample embodiment.

본 출원의 다수의 혁신적인 교시는 현재 바람직한 실시예들에 대한 특정 참조로 기술될 것이다(예를 통해서, 제한적이지 않음).Many of the innovative teachings of the present application will be described with specific reference to the presently preferred embodiments (by way of example, without limitation).

샘플 실시예에 따라, 탈착 가능한 비휘발성 메모리는 탈착 가능한 비휘발성 메모리의 미리 정의된 메모리 위치에 저장된 테이블을 포함하고, 상기 테이블은 비휘발성 메모리 내의 다수의 메모리 위치를 식별하고, 다수의 부트스트랩 코드들은 상기 테이블과 연관된 다수의 메모리 위치들에 저장된다.According to a sample embodiment, the removable nonvolatile memory includes a table stored at a predefined memory location of the removable nonvolatile memory, the table identifying a plurality of memory locations in the nonvolatile memory, the plurality of bootstrap codes Are stored in a number of memory locations associated with the table.

미리 정의된 메모리 위치는 탈착 가능한 비휘발성 메모리에 결합된 컴퓨터 시스템의 기본 입력/출력 시스템(BIOS)에 의해 공지되고 테이블은 다수의 컴퓨터 아키텍쳐들 및 연관된 다수의 메모리 위치들에 각각 유일한 다수의 식별자들을 포함한다. 식별자들은 인덱스할 수 있고 다수의 부트스트랩 코드는 둘 또는 그 이상의 다음 아키텍쳐 타입을 포함할 수 있다: IA32, Alpha, Arm, Cris, IA64, M64k, Mips, Mips64, Parisc, Ppc, Ppc64, S390, S390x, Sh, Sh64, Sparc, 및/또는 Sparc64를 포함할 수 있다. 미리 정의된 메모리 위치는 제 1 논리 블록 어드레스(LBA)일 수 있고 미리 정의된 메모리 위치는 마스터 부트 레코드가 탈착 가능한 비휘발성 메모리에 결합된 컴퓨터 시스템 아키텍쳐 타입에 따라 배치된다. 마스터 부트 레코드는 탈착 가능한 비휘발성 메모리 내 다수의 메모리 위치들 중 하나에 배치될 수 있다.The predefined memory location is known by the basic input / output system (BIOS) of the computer system coupled to the removable nonvolatile memory and the table assigns a number of unique identifiers to each of the plurality of computer architectures and the associated number of memory locations respectively. Include. Identifiers can be indexed and multiple bootstrap code can include two or more of the following architecture types: IA32, Alpha, Arm, Cris, IA64, M64k, Mips, Mips64, Parisc, Ppc, Ppc64, S390, S390x , Sh, Sh64, Sparc, and / or Sparc64. The predefined memory location may be a first logical block address (LBA) and the predefined memory location is located in accordance with the type of computer system architecture coupled to the nonvolatile memory in which the master boot record is removable. The master boot record may be located in one of a number of memory locations in removable nonvolatile memory.

다른 종류의 실시예들에 따라, 컴퓨터 시스템에서 실행되는 방법은 BIOS에 결합된 탈착 가능한 메모리에 미리 정의된 메모리 위치를 배치하기 위한 기본 입력/출력 시스템(BIOS)을 실행하는 것을 포함하고, 미리 정의된 메모리 위치는 다수의 컴퓨터 아키텍쳐를 위한 다수의 부트스트랩 코드가 저장되는 탈착 가능한 비휘발성 메모리 내의 다수의 메모리 위치를 식별하는 테이블을 갖는다. 컴퓨터 시스템의 아키텍쳐 타입과 연관된 식별자와 연관된 부트스트랩 코드의 위치를 테이블로부터 결정하기 위하여 BIOS를 실행하고, 컴퓨터 시스템에 부트스트랩 코드를 로딩하고 부트스트랩 코드를 실행하기 위해 BIOS를 실행.According to other kinds of embodiments, a method executed in a computer system includes executing a basic input / output system (BIOS) for placing a predefined memory location in removable memory coupled to the BIOS, and predefined The stored memory locations have a table that identifies a plurality of memory locations in removable non-volatile memory in which a plurality of bootstrap codes for a plurality of computer architectures are stored. Run the BIOS to determine from the table the location of the bootstrap code associated with the identifier associated with the architecture type of the computer system, and load the bootstrap code into the computer system and run the BIOS to execute the bootstrap code.

테이블은 바람직하게 다수의 컴퓨터 아키텍쳐들 및 연관된 다수의 메모리 위치들에 각각 유일한 다수의 식별자들을 포함하고 상기 식별자들은 인덱스할 수 있다. BIOS 코드는 컴퓨터 시스템에 테이블을 카피하고 테이블을 검색하기 위하여 실행될 수 있고, 탈착 가능한 비휘발성 메모리는 SD 메모리 카드, 컴팩트 플래시, 하드 드라이브, 또는 광학 디스크일 수 있다. 상기와 같이, 다수의 부트스트랩 코드는 둘 또는 그 이상의 다음 아키텍쳐 타입을 포함할 수 있다: IA32, Alpha, Arm, Cris, IA64, M64k, Mips, Mips64, Parisc, Ppc, Ppc64, S390, S390x, Sh, Sh64, Sparc, 및/또는 Sparc64. 미리 정의된 메모리 위치는 제 1 논리 블록 어드레스(LBA)일 수 있고 미리 정의된 메모리 위치는 마스터 부트 레코드가 컴퓨터 시스템의 아키텍쳐 타입에 따라 배치될 수 있는 장소일 수 있다. 마스터 부트 레코드는 탈착 가능한 비휘발성 메모리 내의 다수의 메모리 위치들 중 하나에 배치될 수 있다.The table preferably includes a plurality of identifiers each unique to a plurality of computer architectures and associated plurality of memory locations and the identifiers can be indexed. The BIOS code may be executed to copy the table to the computer system and retrieve the table, and the removable nonvolatile memory may be an SD memory card, a compact flash, a hard drive, or an optical disk. As noted above, multiple bootstrap code may include two or more of the following architecture types: IA32, Alpha, Arm, Cris, IA64, M64k, Mips, Mips64, Parisc, Ppc, Ppc64, S390, S390x, Sh , Sh64, Sparc, and / or Sparc64. The predefined memory location may be a first logical block address (LBA) and the predefined memory location may be a location where the master boot record may be located according to the architecture type of the computer system. The master boot record may be located in one of a number of memory locations in removable nonvolatile memory.

다른 실시예에 따라, 컴퓨터 시스템은 그 내부에 저장된 기본 입력/출력 시스템(BIOS) 코드를 가진 판독 전용 메모리(ROM)를 포함하고, 여기서 BIOS 코드는 컴퓨터 시스템의 아키텍쳐 타입과 연관된 식별자의 지식 및 다수의 컴퓨터 아키텍쳐를 위한 다수의 부트스트랩 코드가 저장된 탈착 가능한 저장 장치 내 다수의 메모리 위치를 식별하는 테이블을 가진 미리 정의된 메모리 위치의 지식을 갖는다. 인터페이스는 ROM에 결합되고 처리기는 상기 인터페이스에 결합되고, 처리기는 탈착 가능한 저장 장치를 검출하기 위하여 BIOS 코드를 실행하고 만약 검출되면 미리 정의된 메모리 위치를 배치하고, 식별자와 연관된 부트스트랩 코드의 위치를 테이 블로부터 결정하고, 컴퓨터 시스템에 부트스트랩 코드를 로딩하고 부트스트랩 코드를 실행한다.According to another embodiment, a computer system includes a read only memory (ROM) having a basic input / output system (BIOS) code stored therein, wherein the BIOS code includes a number and knowledge of identifiers associated with the architecture type of the computer system. Knowledge of a predefined memory location having a table identifying a plurality of memory locations in a removable storage device having stored therein a plurality of bootstrap code for a computer architecture. The interface is coupled to the ROM and the processor is coupled to the interface, the processor executes the BIOS code to detect the removable storage device and, if detected, locates a predefined memory location and locates the bootstrap code associated with the identifier. Determine from the table, load the bootstrap code into the computer system, and execute the bootstrap code.

테이블은 다수의 컴퓨터 아키텍쳐들 및 연관된 다수의 메모리 위치들에 각각 유일한 다수의 식별자들을 포함하고, 상기 식별자들은 인덱스할 수 있다. 처리기는 컴퓨터 시스템에 테이블을 카피하고 테이블을 검색하기 위하여 BIOS 코드를 실행할 수 있고 탈착 가능한 저장 장치는 상기와 같이 SD 메모리 카드, 컴팩트 플래시, 하드 드라이브, 또는 광학 디스크일 수 있다. 다수의 부트스트랩 코드는 둘 또는 그 이상의 다음 아키텍쳐 타입을 포함할 수 있다: IA32, Alpha, Arm, Cris, IA64, M64k, Mips, Mips64, Parisc, Ppc, Ppc64, S390, S390x, Sh, Sh64, Sparc, 및/또는 Sparc64. 미리 정의된 메모리 위치는 제 1 논리 블록 어드레스(LBA)일 수 있고 미리 결정된 메모리 위치는 마스터 부트 레코드가 컴퓨터 시스템의 아키텍쳐 타입에 따라 배치되는 장소일 수 있다. 마스터 부트 레코드는 탈착 가능한 저장 장치 내 다수의 메모리 위치들 중 하나에 배치될 수 있다.The table includes a plurality of identifiers, each unique to a number of computer architectures and a plurality of associated memory locations, which can be indexed. The processor may execute the BIOS code to copy the table to the computer system and retrieve the table and the removable storage device may be an SD memory card, a compact flash, a hard drive, or an optical disk as described above. Multiple bootstrap code may include two or more of the following architecture types: IA32, Alpha, Arm, Cris, IA64, M64k, Mips, Mips64, Parisc, Ppc, Ppc64, S390, S390x, Sh, Sh64, Sparc , And / or Sparc64. The predefined memory location may be a first logical block address (LBA) and the predetermined memory location may be where the master boot record is located according to the architecture type of the computer system. The master boot record can be located in one of a number of memory locations in the removable storage device.

다른 종류의 실시예들에서, 탈착 가능한 비휘발성 메모리는 탈착 가능한 비휘발성 메모리에서 미리 정의된 메모리 위치내에 저장된 테이블을 포함하고, 상기 테이블은 비휘발성 메모리 내 다수의 메모리 위치를 식별하고, 다수의 컴퓨터 아키텍쳐와 연관된 다수의 애플리케이션은 테이블과 연관된 다수의 메모리 위치들 내에 저장된다.In other kinds of embodiments, the removable nonvolatile memory includes a table stored in a predefined memory location in the removable nonvolatile memory, the table identifying a plurality of memory locations in the nonvolatile memory, the plurality of computers Multiple applications associated with the architecture are stored in multiple memory locations associated with the table.

미리 정의된 메모리 위치는 탈착 가능한 비휘발성 메모리에 결합된 컴퓨터 시스템에 의해 공지되고 테이블은 컴퓨터 아키텍쳐들의 타입과 연관된 다수의 애플 리케이션에 각각 유일한 다수의 식별자들을 포함한다. 식별자들은 인덱스할 수 있다. 상기와 같이, 다수의 애플리케이션은 둘 또는 그 이상의 다음 아키텍쳐 타입을 포함할 수 있다: IA32, Alpha, Arm, Cris, IA64, M64k, Mips, Mips64, Parisc, Ppc, Ppc64, S390, S390x, Sh, Sh64, Sparc, Sparc64, Palm, 윈도우즈 CE 및/또는 윈도우즈. 상기 애플리케이션은 여러 타입의 컴퓨터 아키텍쳐의 음악 애플리케이션을 재생할 수 있고, 상기 아키텍쳐 각각은 탈착 가능한 비휘발성 메모리상에 저장된 데이터 파일들, 예를 들어 음악 파일을 실행할 수 있다.The predefined memory location is known by a computer system coupled to removable nonvolatile memory and the table includes a plurality of identifiers, each unique to a number of applications associated with the type of computer architectures. Identifiers can be indexed. As noted above, multiple applications may include two or more of the following architecture types: IA32, Alpha, Arm, Cris, IA64, M64k, Mips, Mips64, Parisc, Ppc, Ppc64, S390, S390x, Sh, Sh64 , Sparc, Sparc64, Palm, Windows CE and / or Windows. The application can play music applications of various types of computer architectures, each of which can execute data files, such as music files, stored on removable non-volatile memory.

본 발명의 실시예에 따라, 시스템과 방법은, 탈착 가능한 저장 장치가 여러 타입의 아키텍쳐를 갖는 여러 컴퓨터 시스템을 부트스트랩하기 위해 적절하거나 호환 가능한 마스터 부트 레코드를 제공할 수 있도록 한다.In accordance with embodiments of the present invention, systems and methods allow removable storage devices to provide a suitable or compatible master boot record for bootstrapping multiple computer systems having different types of architectures.

도 1은 본 발명들의 실시예들이 실시될 수 있는 하드웨어 및 오퍼레이팅 환경의 도면이다. 도 1의 설명은 본 발명이 실행될 수 있는 적당한 컴퓨터 하드웨어 및 적당한 컴퓨팅 환경의 일반적인 설명을 제공하기 위한 것이다.1 is a diagram of a hardware and operating environment in which embodiments of the inventions may be practiced. The description in FIG. 1 is intended to provide a general description of suitable computer hardware and suitable computing environment in which the present invention may be practiced.

컴퓨터 시스템(10) 및 탈착 가능한 저장 장치(35)는 탈착 가능한 저장 장치(35)가 컴퓨터 시스템(10)(예를 들어, IA32, Intel?아키텍쳐) 및 약간을 명명하면 Arm?, Alpha? 및 Sparc? 같은 다양한 다른 타입의 컴퓨터 아키텍쳐들에 적당한 부트스트랩 코드를 제공하는 본 발명의 원리들을 구현한다. 본 발명의 원리들에 따라, 탈착 가능한 저장 장치(35)는 컴퓨터 시스템(10)으로부터 제거될 수 있고 다른 아키텍쳐를 가진 다른 시스템들에 작동 가능하게 결합되고, 여기서 탈착 가능한 저장 장치(35)는 호환 가능한 마스터 부트 레코드들 및 부트스트랩 프로그램들을 여러 타입의 컴퓨터 아키텍쳐들에 제공할 수 있다. 마스터 부트 레코드는 오퍼레이팅 시스템 커널(kernel)을 시작하는 부트 로더 또는 프로그램인 부트스트랩 코드를 포함한다. 양쪽은 처리기에 의해 실행될 때 시스템 메모리에 오퍼레이팅 시스템을 로딩하는 프로그램들이다. 예시적인 부트 로더들은 Grand Unified Boot Loader(GRUB) 또는 시스템 커맨더이다. 마스터 부트 레코드 및 부트스트랩 프로그램은 부트 코드로 고려된다.The computer system 10 and the removable storage device 35 may include the removable computer storage device 35 (eg, IA32, Intel® architecture) and some of the names Arm ?, Alpha? And Sparc. Implement the principles of the present invention to provide bootstrap code suitable for various other types of computer architectures, such as. In accordance with the principles of the present invention, the removable storage device 35 can be removed from the computer system 10 and operably coupled to other systems with other architectures, where the removable storage device 35 is compatible. Possible master boot records and bootstrap programs can be provided for various types of computer architectures. The master boot record contains bootstrap code, which is a boot loader or program that starts the operating system kernel. Both are programs that load the operating system into system memory when executed by a processor. Exemplary boot loaders are the Grand Unified Boot Loader (GRUB) or system commander. The master boot record and bootstrap program are considered boot code.

본 발명들을 실행하기 위한 도 1의 예시적인 하드웨어 및 오퍼레이팅 환경은 처리기(15), 시스템 메모리(25), 시스템 메모리(25)를 포함하는 다양한 시스템 구성요소들을 처리기(15)에 작동 가능하게 결합하는 시스템 버스(30) 형태의 프로그램 가능 장치를 포함한다. 단지 하나 또는 하나 이상의 처리기(15)가 있을 수 있어서, 컴퓨터 시스템(10)의 처리기는 일반적으로 병렬 처리 환경으로서 참조되는 단일 중앙 처리 유니트(CPU), 또는 다수의 처리 유니트들을 포함한다. 컴퓨터 시스템(10)은 통상적인 컴퓨터이거나, 임의의 다른 타입의 컴퓨터일 수 있다; 따라서 본 발명들은 제한되지 않는다.The exemplary hardware and operating environment of FIG. 1 for practicing the inventions is operatively coupled to processor 15 with various system components including processor 15, system memory 25, system memory 25. A programmable device in the form of a system bus 30. There may be only one or more processors 15, so that the processor of the computer system 10 includes a single central processing unit (CPU), or multiple processing units, generally referred to as a parallel processing environment. Computer system 10 may be a conventional computer or any other type of computer; Accordingly, the present inventions are not limited.

시스템 버스(30)는 메모리 버스 또는 메모리 제어기, 주변 버스, 및 임의의 다양한 버스 아키텍쳐를 사용하는 로컬 버스를 포함하는 몇몇 타입의 버스 구조들 중 임의의 것일 수 있다. 시스템 메모리(25)는 간단히 메모리라 하고, 판독 전용 메모리(ROM)(40) 및 랜덤 액세스 메모리(RAM)(45)를 포함한다. 기본 입력/출력 시스템(BIOS) 프로그램(50)은 ROM(40)에 저장되고 하기에 논의되는 시작 동안 같은 컴퓨터 시스템(10) 내의 엘리먼트들 사이에서 정보 전달을 돕는 기본 루틴들 또는 프로그램들을 포함하는 코드를 포함한다. 컴퓨터 시스템(10)은 하드 드라이브(55) 및 CD ROM 또는 다른 광학 매체 같은 광학 드라이브(65)를 더 포함한다.System bus 30 may be any of several types of bus structures, including a memory bus or a memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. System memory 25 is referred to simply as memory and includes read only memory (ROM) 40 and random access memory (RAM) 45. The basic input / output system (BIOS) program 50 is code that includes basic routines or programs that are stored in the ROM 40 and assist in transferring information between elements within the same computer system 10 during the startup discussed below. It includes. Computer system 10 further includes an optical drive 65, such as a hard drive 55 and a CD ROM or other optical medium.

하드 드라이브(55) 및 광학 드라이브(65)는 각각 하드 드라이브 인터페이스 및 광학 드라이브 인터페이스에 의해 시스템 버스(30)에 연결된다. 드라이브들 및 연관된 컴퓨터 판독 가능 매체는 컴퓨터 판독 가능 명령들, 데이터 구조들, 프로그램 모듈들 및 컴퓨터 시스템(10)을 위한 다른 데이터의 비휘발성 저장을 제공한다. 자기 카세트들, 플래시 메모리 카드들, 디지털 비디오 디스크들, 랜덤 액세스 메모리들(RAM), 판독 전용 메모리들(ROM), 및 등등 같은 컴퓨터에 의해 액세스 가능한 데이터를 저장할 수 있는 임의의 타입의 컴퓨터 판독 매체가 예시적인 오퍼레이팅 환경에서 사용될 수 있는 것이 구현되어야 한다. 다수의 프로그램 모듈들은 하드 드라이브(55), 광학 드라이브(65), ROM(40), 또는 RAM(45)상에 저장되고, 오퍼레이팅 시스템(70), 하나 또는 그 이상의 애플리케이션 프로그램들(75), 다른 프로그램 모듈들(80), 및 프로그램 데이터(85)를 포함한다.Hard drive 55 and optical drive 65 are connected to system bus 30 by a hard drive interface and an optical drive interface, respectively. The drives and associated computer readable media provide non-volatile storage of computer readable instructions, data structures, program modules, and other data for the computer system 10. Any type of computer readable medium that can store data accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, random access memories (RAM), read-only memories (ROM), and the like. Should be implemented that can be used in an exemplary operating environment. Multiple program modules are stored on hard drive 55, optical drive 65, ROM 40, or RAM 45, and operating system 70, one or more application programs 75, and others. Program modules 80, and program data 85.

본 발명의 예시적인 실시예에서, 탈착 가능한 저장 장치(35)는 PC 컴퓨터들을 위한 논리 블록 어드레싱(LBA) 분할 방법에 일치하는 하드 드라이브이다. 본 발명의 실시예에 따라, 탈착 가능한 저장 장치(35)의 오프셋(0x3E)의 섹터(1)에는 테이블(45)이 저장되고, 다른 블록 위치들에는 마스터 부트 레코드들(60-1 내지 60-y)이 포함되고, 여기서 y는 1보다 큰 수이다. 테이블(45)은 탈착 가능한 저장 장치(35) 내의 다양한 메모리 위치를 식별하고 여기서 여러 타입의 컴퓨터 아키텍쳐들(예를 들어 약간을 명명하면 IA32, Alpha?, Sparc?)과 호환할 수 있는 다양한 마스터 부트 레코드들(60-1 내지 60-y)은 배치된다. 상기된 바와 같이, 본 발명의 이런 특정 실시예에서, 컴퓨터 시스템(10)의 아키텍쳐 타입은 인텔? 플랫폼 - 윈도우즈? 오퍼레이팅 시스템이다. 따라서, 컴퓨터 시스템(10)이 탈착 가능한 저장 장치(35)에 의해 부트스트랩되도록 하기 위하여, 탈착 가능한 저장 장치(35) 내에 저장된 적어도 하나의 마스터 부트 레코드(60-1 내지 60-y)는 인텔? - 윈도우즈? 아키텍쳐와 호환할 수 있다. 나머지 마스터 부트 레코드들은 탈착 가능한 저장 장치(35)가 지원하기를 원하는 컴퓨터 아키텍쳐의 타입과 호환할 수 있다.In an exemplary embodiment of the present invention, removable storage device 35 is a hard drive that conforms to the logical block addressing (LBA) partitioning method for PC computers. According to an embodiment of the invention, a table 45 is stored in sector 1 of offset (0x3E) of removable storage device 35 and master boot records 60-1 through 60- in other block locations. y) is included, where y is a number greater than one. Table 45 identifies various memory locations within removable storage device 35 where various master boots compatible with different types of computer architectures (e.g. IA32, Alpha ?, Sparc ?, to name a few) are available. Records 60-1 through 60-y are placed. As noted above, in this particular embodiment of the present invention, the architecture type of computer system 10 is an Intel® Platform-Windows® operating system. Thus, in order for the computer system 10 to be bootstrapped by the removable storage device 35, the at least one master boot record 60-1 through 60-y stored in the removable storage device 35 is Intel? -Windows® architecture compatible. The remaining master boot records are compatible with the type of computer architecture that removable storage 35 wants to support.

도 2는 여러 타입의 컴퓨터 아키텍쳐와 호환할 수 있는 다양한 마스터 부트 레코드들이 배치되는 탈착 가능한 저장 장치(35) 내의 다양한 메모리 위치를 식별하는 예시적인 테이블(45)을 도시한다. 컴퓨터 시스템(10)의 ROM(40)에 저장된 BIOS 프로그램(50), 및 탈착 가능한 저장 장치(35)와 인터페이스하고자 하는 컴퓨터들에 저장된 모든 다른 BIOS 프로그램은 테이블(45)과 호환할 수 있다. 본 발명의 본 실시예에서, 예시적인 테이블(45)은 두 개의 컬럼들, 식별자 컬럼(205) 및 아키텍쳐 컬럼(210)을 갖는다. 식별자 컬럼(205)은 각각의 타입의 컴퓨터 시스템 아키텍쳐를 위한 각각의 식별자(205-1 내지 205-x로 표시됨)를 열거하고, 여기서 x는 1보다 큰 수이다. 이런 특정 실시예에서, x는 17인데, 그 이유는 탈착 가능한 저장 장치(35)가 지원할 수 있는 17개의 다른 아키텍쳐들이 있기 때문이다. 식별자들은 인덱스들로서 기능하고 식별자 컬럼(205)의 유일한 위치를 나타내는 유일한 8 바이트 엔트리들로 구성된다.2 illustrates an example table 45 that identifies various memory locations within removable storage device 35 in which various master boot records are located that are compatible with various types of computer architectures. The BIOS program 50 stored in the ROM 40 of the computer system 10 and all other BIOS programs stored in the computers that wish to interface with the removable storage 35 may be compatible with the table 45. In this embodiment of the present invention, the exemplary table 45 has two columns, an identifier column 205 and an architecture column 210. Identifier column 205 lists each identifier (denoted 205-1 through 205-x) for each type of computer system architecture, where x is a number greater than one. In this particular embodiment, x is 17 because there are 17 different architectures that removable storage 35 can support. The identifiers consist of unique eight byte entries that serve as indices and indicate a unique location of the identifier column 205.

각각의 타입의 컴퓨터 시스템 아키텍쳐는 컴퓨터 시스템 아키텍쳐 타입을 식 별하는 유일한 식별자가 할당된다. 이런 식별자는 본 발명에 따라 설계된 탈착 가능한 저장 장치와 인터페이스하고자 하는 각각의 컴퓨터 시스템의 ROM에 저장, 장착 또는 "버닝(burn)"된다. 식별자들은 잔류하는 컴퓨터 시스템의 BIOS 프로그램과 함께 작동할 수 있다. 또한 컴퓨터 시스템의 아키텍쳐 타입을 식별하기 위하여 사용된다. Each type of computer system architecture is assigned a unique identifier that identifies the type of computer system architecture. Such identifiers are stored, mounted or " burned " in the ROM of each computer system intended to interface with a removable storage device designed in accordance with the present invention. The identifiers can work with the BIOS program of the remaining computer system. It is also used to identify the architecture type of a computer system.

본 발명의 이런 실시예에서, 예시적인 식별자 "8686"은 인텔?-윈도우즈? 아키텍쳐에 할당된다. 식별자 "8686"은 ROM(40)으로 "버닝"되고, BIOS의 일부로 만들어진다. 인텔?-윈도우즈? 아키텍쳐를 갖는 다른 모든 컴퓨터 시스템은 ROM으로 "버닝된" 동일한 식별자 "8686"를 갖을 것이라는 것을 인지해야 한다. 물론, Alpha?와 같이 서로 다른 타입의 아키텍쳐를 갖는 컴퓨터 시스템은, 예를 들어 ROM으로 "버닝된" "2218"과 같은 다른 식별자를 가질 것이다. 상술한 바와 같이, 식별자는 특정 타입의 컴퓨터 아키텍쳐 또는 플랫폼을 나타낸다. 따라서, 컴퓨터 시스템의 아키텍쳐 타입은 식별자를 판독하여 결정될 수 있다. 각각의 식별자는 또한 테이블(45)의 아키텍쳐 컬럼(210) 내 대응 엔트리와 연관된다.In this embodiment of the invention, the exemplary identifier "8686" is assigned to the Intel®-Windows® architecture. The identifier "8686" is "burned" into the ROM 40 and made part of the BIOS. It should be noted that all other computer systems with the Intel®-Windows® architecture will have the same identifier "8686" "burned" into ROM. Of course, computer systems with different types of architectures, such as Alpha, will have different identifiers, such as "2218" "burned" to ROM, for example. As noted above, an identifier represents a particular type of computer architecture or platform. Thus, the architecture type of a computer system can be determined by reading the identifier. Each identifier is also associated with a corresponding entry in the architecture column 210 of the table 45.

테이블(45)은 탈착 가능한 저장 장치(35)가 지원하는 다양한 컴퓨터 아키텍쳐를 위한 마스터 부트 레코드를 위한 메모리 위치들(210-1 내지 210-x로 표시됨)을 열거하는 아키텍쳐 컬럼(210)을 포함한다. 상기된 바와 같이, x는 17이다. 비록 각각 17개의 다른 아키텍쳐를 위한 하나의 식별자가 있지만, 탈착 가능한 저장 장치(35)는 이용 가능하지 않은 17개의 마스터 부트 레코드를 저장하지 않는다. 따라서, 테이블(45)은 Arm? 아키텍쳐에 할당된 식별자 "7999"를 나타낼 수 있지만, 탈 착 가능한 저장 장치(35)가 예를 들어 추후에 보다 상세히 논의되는 메모리 공간을 절약하기 위하여 그 내부에 저장된 호환 가능한 마스터 부트 레코드를 갖지 않는 것은 바람직할 수 있다.The table 45 includes an architecture column 210 that lists memory locations (denoted 210-1 through 210-x) for the master boot record for the various computer architectures supported by the removable storage device 35. . As mentioned above, x is 17. Although there is one identifier for each of 17 different architectures, removable storage 35 does not store 17 master boot records that are not available. Thus, the table 45 may represent the identifier "7999" assigned to the Arm? Architecture, but the removable storage 35 is stored therein, for example, to save memory space discussed later in more detail. It may be desirable not to have a compatible master boot record.

아키텍쳐 컬럼(210-1 내지 210-17)의 메모리 위치 엔트리들은 다양한 아키텍쳐를 위한 마스터 부트 레코드들이 탈착 가능한 저장 장치(35) 내에 배치되는 것을 나타내는 블록 어드레스들이다. 아키텍쳐 컬럼(210)의 모든 엔트리가 6 바이트들이고 여기서 제 1 4개의 바이트들은 논리 블록 어드레스(LBA) 오프셋을 나타낸다. LBA 오프셋은 특정 아키텍쳐를 위한 마스터 부트 레코드가 탈착 가능한 저장 장치(35)에 잔류하는 것을 가리킨다. 다른 2 바이트들은 다수의 LBA 섹터들로서 이진 길이를 나타낸다. 탈착 가능한 저장 장치(35)는 논리 블록 어드레스 방법을 사용하고, 상기 방법은 다른 것 중에서 논리 블록 어드레스 위치를 탈착 가능한 저장 장치상 물리적 블록 어드레스 위치들로 번역하는 것을 포함한다.Memory location entries in architecture columns 210-1 through 210-17 are block addresses indicating that master boot records for the various architectures are placed in removable storage 35. Every entry in architecture column 210 is six bytes, where the first four bytes represent a logical block address (LBA) offset. LBA offset indicates that the master boot record for a particular architecture remains in removable storage 35. The other two bytes represent a binary length as multiple LBA sectors. The removable storage device 35 uses a logical block address method, which among other things includes translating the logical block address location into physical block address locations on the removable storage device.

요약하여, 식별자들(205-1 내지 205-17로 표시됨)은 마스터 부트 레코드들 및 부트스트랩 프로그램들이 저장된 메모리 위치들(210-1 내지 210-17)과 연관된다. 따라서, 만약 특정 타입의 컴퓨터 아키텍쳐의 식별자가 공지되면, 테이블(45)은 탈착 가능한 저장 장치(35)에 저장된 부트스트랩 프로그램(예를 들어, 부트 로더) 및 호환 가능하거나 대응하는 마스터 부트 레코드를 배치하기 위해 사용될 수 있다.In summary, identifiers (denoted 205-1 through 205-17) are associated with memory locations 210-1 through 210-17 where master boot records and bootstrap programs are stored. Thus, if an identifier of a particular type of computer architecture is known, the table 45 places a bootstrap program (e.g., a boot loader) stored in the removable storage device 35 and a compatible or corresponding master boot record. Can be used to

상기된 바와 같이, 비록 테이블(45)에 17개의 다른 아키텍쳐들 각각을 위해 하나의 식별자가 있지만, 탈착 가능한 저장 장치(35)는 이용할 수 없게 된 17개의 마스터 부트 레코드를 저장하지 않는다. 특정 타입의 아키텍쳐에 대한 마스터 부트 레코드를 포함하지 않는 것이 바람직한 상황들에서, 널(NULL) 또는 "0" 값들은 지원되지 않는 아키텍쳐 타입의 식별자에 대응하는 아키텍쳐 컬럼(210) 내 빈 엔트리를 나타내기 위하여 사용된다. 예를 들어, 만약 탈착 가능한 저장 장치(35)가 Cris? 아키텍쳐를 지원하지 않는 것이 바람직하면, 식별자 "7853"은 메모리 위치를 가지기 보다 아키텍쳐 컬럼(210)에 널 또는 "0" 값들과 연관된다. 게다가, 탈착 가능한 저장 장치(35)는 Cris? 아키텍쳐에 대한 호환 가능한 마스터 부트 레코드를 저장하지 않고, 따라서 메모리 공간을 절약한다. 테이블(45)을 참조하여, Cris? 아키텍쳐 메모리 위치(210-3으로 표시됨)는 "0000" 엔트리를 갖는다. 테이블(45)의 제 1 엔트리는 대응하는 값 x86 HLT(0xF4)(215로 표시됨)를 가진 인덱스 "0"(220으로 표시됨)이다. x86 HLT(0xF4) 오피코드는 이전 인텔? 아키텍쳐들이 탈착 가능한 저장 장치(35) 내 임의의 마스터 부트 레코드를 잘못되게 실행하는 것을 방지하는 중단 명령이다.As noted above, although there is one identifier for each of the 17 different architectures in table 45, removable storage 35 does not store the 17 master boot records that have become unavailable. In situations where it is desirable not to include a master boot record for a particular type of architecture, null or "0" values indicate empty entries in the architecture column 210 corresponding to identifiers of an unsupported architecture type. To be used. For example, if the removable storage device 35 does not support the Cris® architecture, the identifier "7853" is associated with null or "0" values in the architecture column 210 rather than having a memory location. In addition, the removable storage 35 does not store a compatible master boot record for the Cris® architecture, thus saving memory space. Referring to table 45, the Cris® architecture memory location (indicated by 210-3) has an entry "0000". The first entry of the table 45 is the index "0" (denoted 220) with the corresponding value x86 HLT (0xF4) (denoted 215). The x86 HLT (0xF4) opcode is an abort instruction that prevents previous Intel® architectures from erroneously executing any master boot record in removable storage 35.

도 3은 예시적인 실시예에 따른 컴퓨터 시스템(10) 및 탈착 가능한 저장 장치(35)에 의해 수행되는 방법의 흐름도를 도시한다. 컴퓨터 시스템(10)이 턴온될 때, 처리기(15)는 ROM(40)의 메모리 위치로 진행하고 BIOS 프로그램(50)을 실행하기 시작한다(블록 305). 임의의 인텔?-윈도우즈? 아키텍쳐에서, BIOS 프로그램(50)은 전력 인가 자체 검사(POST) 및 마스터 부트 레코드 검색을 수행한다. BIOS 프로그램(50)은 예를 들어 광학 드라이브(65), 하드 드라이브(55), 및 인터페이스(90)에 작동 가능하게 결합된 유니버셜 시리얼 버스 같은 컴퓨터 시스템(10)에 결합되고 상기 컴퓨터 시스템의 일부인 장치들을 갖는다. 따라서, BIOS 프로그램(50)은 상기 장치들과 상호작용하고 상기 장치들을 검출할 수 있다. 예를 들어, 탈착 가능한 저장 장치(35)와 상호작용하고 상기 장치를 검출할 수 있다.3 shows a flowchart of a method performed by computer system 10 and removable storage 35 in accordance with an exemplary embodiment. When computer system 10 is turned on, processor 15 proceeds to a memory location in ROM 40 and begins executing BIOS program 50 (block 305). In any Intel® Windows® architecture, the BIOS program 50 performs a power on self test (POST) and a master boot record lookup. The BIOS program 50 is a device that is part of and is coupled to a computer system 10 such as, for example, an optical drive 65, a hard drive 55, and a universal serial bus operably coupled to an interface 90. Have them. Thus, the BIOS program 50 can interact with the devices and detect the devices. For example, the device may interact with and detect the removable storage device 35.

종래 기술 시스템들에서, 마스터 부트 레코드가 배치된 드라이브를 식별하면, BIOS 프로그램은 섹터 1(512 바이트 영역), 마스터 부트 레코드가 저장된 장치의 LBA#0 및 부트스트랩 코드가 저장된 오프셋 0x3E(448 바이트 영역)을 찾는다. BIOS 프로그램은 마스터 부트 레코드를 RAM에 카피하고 제어부를 마스터 부트 레코드에 전달한다. 마스터 부트 레코드는 컴퓨터 시스템을 제어하고 더 이상 필요하지 않을 때까지 코드를 로드한다.In prior art systems, upon identifying the drive on which the master boot record is located, the BIOS program will display sector 1 (512 byte area), LBA # 0 of the device where the master boot record is stored, and offset 0x3E (448 byte area) where the bootstrap code is stored. Find). The BIOS program copies the master boot record into RAM and passes control to the master boot record. The master boot record controls the computer system and loads code until it is no longer needed.

본 발명의 실시예에 따라, 테이블(45)은 마스터 부트 레코드보다 탈착 가능한 저장 장치(35)의 섹터(1)에 저장된다. 마스터 부트 레코드 및 부트스트랩 코드는 테이블(45)에 따라 탈착 가능한 장치(35)의 메모리 위치들(60-1 내지 60-y) 중 하나에 재배치되고, 여기서 y는 탈착 가능한 저장 장치(35) 내에 저장된 마스터 부트 레코드들의 수와 동일하다. 또한 본 발명의 실시예에 따라, 마스터 부트 레코드 및 부트스트랩 코드는 다른 마스터 부트 레코드들 및 부트스트랩 코드들 사이에 저장되고, 그 각각은 다른 타입의 컴퓨터 시스템 아키텍쳐와 호환할 수 있다. 도 2를 참조하여, 마스터 부트 레코드 및 인텔?-윈도우즈? 아키텍쳐에 대한 부트스트랩 코드의 메모리 위치는 XXX(210-4로 표시됨)이다. According to an embodiment of the invention, the table 45 is stored in the sector 1 of the storage device 35 which is removable than the master boot record. The master boot record and bootstrap code are relocated to one of the memory locations 60-1 through 60-y of the removable device 35 in accordance with the table 45, where y is in the removable storage device 35. It is equal to the number of master boot records stored. Also in accordance with an embodiment of the present invention, the master boot record and bootstrap code are stored between other master boot records and bootstrap codes, each of which is compatible with other types of computer system architectures. Referring to FIG. 2, the memory location of the bootstrap code for the master boot record and the Intel®-Windows® architecture is XXX (denoted 210-4).

따라서, BIOS 프로그램(50)은 섹터 1에 배치된 테이블(45)을 판독하고 컴퓨터 시스템(10)의 아키텍쳐와 호환할 수 있는 마스터 부트 레코드 및 부트스트랩 코 드의 위치를 발견하기 위하여 ROM(40)에 버닝된 식별자를 사용한다. 게다가, BIOS 프로그램(50)은 정보를 선택하고 테이블(45)로부터 옵션들을 실행하기 위하여 구성된다. 선택적으로, 테이블(45)의 정보 및 옵션들은 선택되고 BIOS 프로그램(50)과 작동하는 ROM(40)에 저장된 프로그램을 통하여 실행된다.Thus, BIOS program 50 reads table 45 located in sector 1 and reads ROM 40 to locate the master boot record and bootstrap code that is compatible with the architecture of computer system 10. Use the identifier burned in. In addition, the BIOS program 50 is configured to select information and to execute the options from the table 45. Optionally, the information and options in table 45 are selected and executed via a program stored in ROM 40 that works with BIOS program 50.

도 3을 다시 참조하여, 처리기(15)는 탈착 가능한 저장 드라이브(35)를 식별하고 미리 정의된 메모리 위치에 배치된 테이블(45)에 액세스하는 BIOS 프로그램(50)을 계속 실행한다(블록 310). 이 예에서, 미리 정의된 메모리 위치는 섹터 1(512 바이트 영역) 및 보다 특정하게 탈착 가능한 저장 장치(35)의 오프셋 0x3E(448 바이트 영역)이다. 컴퓨터 시스템(10)에 대한 식별자를 알고, BIOS 프로그램(50)은 테이블(45)에 식별자 "8686"(205-4로 표시됨)을 배치한다(블록 315). 상기된 바와 같이, 본 발명의 실시예에 따라, 식별자는 인덱스로서 기능한다. 따라서, BIOS 프로그램(50)이 테이블을 통하여 반복하지 않고 테이블(45)에서 특정 위치를 발견하게 한다. 상기된 바와 같이, 이 실시예에서, 컴퓨터 시스템(10)은 "8686" 식별자가 할당된 인텔?-윈도우즈? 아키텍쳐를 바탕으로 한다.Referring again to FIG. 3, processor 15 continues to execute BIOS program 50 to identify removable storage drive 35 and access table 45 located at a predefined memory location (block 310). . In this example, the predefined memory location is sector 1 (512 byte area) and offset 0x3E (448 byte area) of the more specifically removable storage device 35. Knowing the identifier for computer system 10, BIOS program 50 places identifier " 8686 " (denoted 205-4) in table 45 (block 315). As mentioned above, according to an embodiment of the present invention, the identifier serves as an index. Thus, the BIOS program 50 finds a specific position in the table 45 without repeating through the table. As noted above, in this embodiment, computer system 10 is based on an Intel®-Windows® architecture assigned an "8686" identifier.

순차적으로, BIOS 프로그램(50)은 식별자 "8686"과 연관된 아키텍쳐 컬럼(210)내 메모리 위치 엔트리를 판독한다(블록 320). 이 실시예에서, 식별자 "8686"과 연관된 아키텍쳐 컬럼(210)의 엔트리는 XXXX(210-4로 표시됨)이고, 이것은 호환 가능한 마스터 부트 레코드가 탈착 가능한 저장 장치(35) 내에 배치되는 메모리 위치를 나타낸다. LBA 방법 다음, 탈착 가능한 저장 장치(35)는 논리적 블록 어드레스를 매체상에서 호환 가능한 마스터 부트 레코드가 배치된 장소를 나타 내는 물리적 블록 어드레스로 번역한다. BIOS 프로그램(50)은 LBA 오프셋(xxx)에서 메모리 위치에 액세스하고 마스터 부트 레코드를 RAM(45)에 카피한다(블록 325). 컴퓨터 시스템(10)은 마스터 부트 레코드를 실행하고 제어부를 마스터 부트 레코드에 전달한다(블록 330). 마스터 부트 레코드는 컴퓨터 시스템(10)을 제어하고 더 이상 필요하지 않을 때까지 코드를 계속 로딩하고, 이것은 하드 드라이브(55)로부터 RAM(45)에 컴퓨터 시스템의 오퍼레이팅 시스템을 로딩하는 것을 포함한다.In turn, BIOS program 50 reads a memory location entry in architecture column 210 associated with identifier " 8686 " (block 320). In this embodiment, the entry of the architecture column 210 associated with the identifier "8686" is XXXX (denoted 210-4), which represents a memory location where a compatible master boot record is placed in the removable storage 35. . LBA Method Next, the removable storage device 35 translates the logical block address into a physical block address indicating where a compatible master boot record is located on the medium. BIOS program 50 accesses the memory location at LBA offset xxx and copies the master boot record to RAM 45 (block 325). Computer system 10 executes the master boot record and passes control to the master boot record (block 330). The master boot record controls the computer system 10 and continues loading code until it is no longer needed, which includes loading the operating system of the computer system from the hard drive 55 to the RAM 45.

상기된 바와 같이, 본 발명의 실시예에 따라, 탈착 가능한 저장 장치(35)는 다른 아키텍쳐를 가진 제 2 컴퓨터 시스템에 작동 가능하게 연결된 컴퓨터 시스템(10)으로부터 분리될 수 있고 제 2 컴퓨터 시스템을 부트스트랩한다.As noted above, in accordance with an embodiment of the present invention, removable storage device 35 may be detached from computer system 10 operably connected to a second computer system having a different architecture and booting the second computer system. Strap it.

예를 들어, 도 4는 상기된 방법 및 시스템에 따라 탈착 가능한 저장 장치(35)의 일반적인 예시적 블록도를 도시한다. 제 1 예시적인 실시예에서, 탈착 가능한 저장 장치(35)는 인텔? 아키텍쳐를 포함하는 컴퓨터 시스템(410)에 작동 가능하게 결합된다. 컴퓨터 시스템(410)이 턴온될 때, BIOS 프로그램은 테이블(45)의 식별자에 액세스한다. 테이블(45)로부터, BIOS 프로그램은 마스터 부트 레코드(430)의 위치를 결정하고, 마스터 부트 레코드를 카피하고 이를 실행되는 컴퓨터 시스템(410)에 저장한다.For example, FIG. 4 shows a general exemplary block diagram of a removable storage device 35 in accordance with the methods and systems described above. In a first exemplary embodiment, removable storage device 35 is operatively coupled to computer system 410 that includes the Intel® architecture. When computer system 410 is turned on, the BIOS program accesses the identifiers in table 45. From the table 45, the BIOS program determines the location of the master boot record 430, copies the master boot record and stores it in the running computer system 410.

제 2 예시적인 실시예에서, 탈착 가능한 저장 장치(35)는 Alpha? 아키텍쳐를 포함하는 컴퓨터 시스템(420)에 작동 가능하게 결합된다. 컴퓨터 시스템(420)이 턴온될 때, BIOS 프로그램은 테이블(45)의 식별자에 액세스한다. 테이블(45)로부터, BIOS 프로그램은 마스터 부트 레코드(440)의 위치를 결정하고, 마스터 부트 레 코드를 카피하고 실행되는 컴퓨터 시스템(420)의 RAM에 이를 저장한다.In a second exemplary embodiment, removable storage device 35 is operably coupled to computer system 420 that includes an Alpha® architecture. When computer system 420 is turned on, the BIOS program accesses the identifiers in table 45. From the table 45, the BIOS program determines the location of the master boot record 440, copies it and stores it in the RAM of the computer system 420 to be executed.

상기는 본 발명의 원리들을 단순하게 도시한다. 따라서 당업자가 본 발명의 원리들을 구현하고 따라서 본 발명의 사상 및 범위내에 있는 다수의 다른 장치들을 고안할 것이라는 것이 인식될 것이다.The above merely illustrates the principles of the invention. It will therefore be appreciated that those skilled in the art will implement the principles of the present invention and will, accordingly, devise many other devices that fall within the spirit and scope of the present invention.

예를 들어, 상기 개시를 바탕으로, 탈착 가능한 저장 장치가 SD 메모리 카드, 컴팩트 플래시 카드, 멀티미디어 카드 또는 다른 탈착 가능한 카드 또는 메모리 장치 같은 메모리이고 본 발명의 원리들을 쉽게 수용할 수 있다는 것은 명백하다.For example, based on the above disclosure, it is apparent that the removable storage device is a memory such as an SD memory card, a compact flash card, a multimedia card or other removable card or memory device and can easily accommodate the principles of the present invention.

게다가, 개시물을 바탕으로, 본 발명의 원리들이 컴퓨터 시스템(10)의 RAM(45)에 로딩되는 테이블을 쉽게 수용할 수 있다는 것은 명백하다. 본 발명의 예시적인 실시예에서, ROM(40)의 BIOS 프로그램은 탈착 가능한 저장 장치(35)에 저장된 테이블(45)을 배치하고 테이블(45)을 RAM(45)에 로딩한다. BIOS 프로그램은 테이블을 통하여 ROM(40)에 저장된 식별자와 매칭하는 식별자를 검색하는 것을 반복한다. 상기 예시적인 실시예들과 같이, 식별자들은 여러 타입의 컴퓨터 아키텍쳐를 나타내지만, 이 실시예에서 식별자들은 인덱스들로서 기능하지 않고 다른 타입의 아키텍쳐를 간단히 식별한다. 따라서, BIOS 프로그램은 인덱스로서 기능한 식별자를 가지는 경우처럼, 테이블(45)의 적당한 식별자로 특정하게 진행하기 보다 적당한 식별자를 테이블(45)을 통하여 반복하여 검색하여야 한다.Moreover, based on the disclosure, it is clear that the principles of the present invention can easily accommodate a table loaded in the RAM 45 of the computer system 10. In an exemplary embodiment of the present invention, the BIOS program of the ROM 40 places the table 45 stored in the removable storage device 35 and loads the table 45 into the RAM 45. The BIOS program repeats searching for an identifier matching the identifier stored in the ROM 40 through the table. As with the exemplary embodiments above, the identifiers represent several types of computer architectures, but in this embodiment the identifiers do not function as indexes and simply identify another type of architecture. Therefore, the BIOS program must repeatedly search through the table 45 for an appropriate identifier, rather than proceeding specifically to the appropriate identifier for the table 45, as in the case of having an identifier functioning as an index.

식별자가 테이블(45)에 배치된 후, BIOS 프로그램은 식별자와 연관된 메모리 위치를 판독하고 탈착 가능한 저장 장치(35)에 배치된 적당한 마스터 부트 레코드 를 액세스한다. BIOS 프로그램은 탈착 가능한 저장 장치(35)로부터 마스터 부트 레코드를 카피하고 처리기(15)가 마스터 부트 레코드를 실행하는 RAM(45)에 이를 로딩한다.After the identifier is placed in the table 45, the BIOS program reads the memory location associated with the identifier and accesses the appropriate master boot record placed in the removable storage 35. The BIOS program copies the master boot record from the removable storage device 35 and loads it into the RAM 45 where the processor 15 executes the master boot record.

본 발명의 이 실시예에서, 이 실시예의 식별자들이 인덱스들로서 기능하지 않기 때문에, 테이블의 아키텍쳐 컬럼에 빈 엔트리들(예를 들어 널 또는 "0" 값들)이 없다. 테이블은 탈착 가능한 장치(35)에 저장된 마스터 부트 레코드를 가진 식별자들만을 저장하여, 테이블 및 보다 작은 테이블에 빈 엔트리들이 없다. 예를 들어, 만약 Arm? 아키텍쳐를 가진 컴퓨터 시스템을 구비한 탈착 가능한 저장 장치(35)를 사용하지 않을 경우, 탈착 가능한 저장 장치(35)에 저장된 Arm? 호환 가능 마스터 부트 레코드는 없고, 테이블에 Arm? 식별자 또는 메모리 위치는 없다. 물론, 식별자가 인덱스로서 작동하지 않기 때문에, BIOS 프로그램은 테이블의 각각의 식별자를 통하여 올바른 아키텍쳐를 위해 식별자를 반복하여 배치한다.In this embodiment of the present invention, there are no empty entries (eg null or "0" values) in the architecture column of the table because the identifiers of this embodiment do not function as indexes. The table stores only the identifiers with the master boot record stored in the removable device 35 so that there are no empty entries in the table and smaller tables. For example, if you do not use a removable storage device 35 with a computer system with an Arm® architecture, there is no Arm ™ compatible master boot record stored in the removable storage device 35, There is no identifier or memory location. Of course, because the identifier does not act as an index, the BIOS program repeatedly places the identifier for the correct architecture through each identifier in the table.

본 발명의 다른 실시예에서, 컴퓨터 시스템은 운용되고 오퍼레이팅 시스템은 이미 로딩되었다. 본 발명의 이 실시예에서, 다중 애플리케이션은 탈착 가능한 저장 장치(예를 들어 SD 카드)상에 저장된다. 예를 들어, 3 재생 음악 애플리케이션은 탈착 가능한 저장 장치 상에 저장되고, 각각의 상기 저장 장치는 다른 컴퓨터 아키텍쳐와 호환할 수 있다. 탈착 가능한 저장 장치가 컴퓨터 시스템에 작동 가능하게 결합될 때, 탈착 가능한 저장 장치는 인식된다. 컴퓨터 시스템의 식별자 및 탈착 가능한 저장 장치내 테이블을 아는 자동 운용 프로그램은 식별자와 연관된 재생 음악 애플리케이션이 배치된 메모리 위치를 배치한다. 추후, 자동 운행 프로그 램은 컴퓨터 시스템상 호환 가능한 재생 음악 애플리케이션을 로딩하고, 여기서 애플리케이션은 탈착 가능한 저장 장치에 저장된 콘텐트(데이터 파일들, 음악 파일들)를 플레이할 수 있다. 예시적인 컴퓨터 시스템 아키텍쳐들은 Palm?, 윈도우즈 CE? 및 윈도우즈?이다. In another embodiment of the invention, the computer system is operated and the operating system is already loaded. In this embodiment of the present invention, multiple applications are stored on a removable storage device (eg SD card). For example, three playback music applications may be stored on removable storage devices, each of which may be compatible with other computer architectures. When a removable storage device is operably coupled to a computer system, the removable storage device is recognized. An autonomous program that knows the identifier of the computer system and the table in the removable storage device locates the memory location where the playback music application associated with the identifier is located. Subsequently, the autopilot program loads a compatible playback music application on the computer system, where the application can play the content (data files, music files) stored on the removable storage device. Exemplary computer system architectures are Palm, Windows CE, and Windows.

게다가, 시스템은 다양한 기능들이 이산 기능 블록들에 의해 수행되는 형태로 개시된다. 그러나, 이들 기능들 중 임의의 하나 또는 그 이상은 이들 블록들의 임의의 하나 또는 그 이상의 기능들이 다양한 매체들에 저장된 소프트웨어 프로그램들을 운용하거나 펌웨어에 프로그램된 기능들을 가진 하나 또는 그 이상의 적당하게 프로그램된 처리 장치들에 의해 구현되는 장치에서 똑같이 구현될 수 있다.In addition, the system is disclosed in the form in which various functions are performed by discrete functional blocks. However, any one or more of these functions may include one or more suitably programmed processes in which any one or more functions of these blocks operate software programs stored on various media or have functions programmed in firmware. The same may be implemented in a device implemented by the devices.

게다가, 당업자는 본 발명이 핸드 헬드 장치들, 마이크로처리기 시스템들, 마이크로처리기 바탕 또는 프로그램 가능 고객 전자제품들, 네트워크 PC들, 미니컴퓨터들, 메인프레임 컴퓨터들, 및 등등을 포함하는 다른 컴퓨터 시스템 구성들로 실시될 수 있는 것을 인식할 것이다.In addition, those skilled in the art will appreciate that the present invention may include other computer system configurations, including handheld devices, microprocessor systems, microprocessor based or programmable customer electronics, network PCs, minicomputers, mainframe computers, and the like. It will be appreciated that this can be done with

마지막으로, 본 발명들은 상기 방법들을 수행하기 위한 소프트웨어를 포함하는 구성된 컴퓨터 프로그램 저장 매체(예를 들어, CD-ROM, 하드 디스크, RAM)에서 구현될 수 있다.Finally, the present inventions may be implemented in a configured computer program storage medium (eg, CD-ROM, hard disk, RAM) that includes software for performing the methods.

다양한 개시된 실시예들에 따라, 전자 시스템이 제공되고; 상기 전자 시스템은 적어도 하나의 제어 처리기; 및 상기 제어 처리기에 액세스 가능하도록 작동 가능하게 연결된 휴대용 데이터 모듈; 상기 휴대용 데이터 모듈은 적어도 두 개의 상호 호환할 수 없는 아키텍쳐를 위한 부트 코드를 포함하고; 상기 휴대용 데이터 모 듈은 상기 부트 코드들의 어느 것이 상기 비호환성 아키텍쳐들 중 어느 것을 필요로 하는지 나타내는 데이터 구조를 포함하여; 상기 제어 처리기는 부팅시 상기 데이터 구조를 찾을 수 있고, 상기 제어 치리기의 아키텍쳐에 의해 요구되는 상기 부트 코드들 중 어느 것을 사용해서도 부트 처리를 계속한다.According to various disclosed embodiments, an electronic system is provided; The electronic system includes at least one control processor; And a portable data module operably connected to access the control processor; The portable data module includes boot code for at least two mutually incompatible architectures; The portable data module includes a data structure indicating which of the boot codes require which of the incompatible architectures; The control processor can find the data structure at boot time and continues the boot process using any of the boot codes required by the architecture of the control discipline.

다양한 개시된 실시예들에 따라, 전자 시스템이 제공되고: 상기 전자 시스템은 적어도 하나의 제어 처리기; 일시적으로 연결되고 이에 따라 상기 제어 처리기에 일시적으로 액세스 가능한 휴대용 데이터 모듈을 포함하고; 상기 휴대용 데이터 모듈은 적어도 두 개의 상호 비호환성인 아키텍쳐를 위한 부트 코드들, 및 상기 아키텍쳐들이 상기 부트 코드들 중 어느 것을 필요로 하는지 나타내는 데이터 구조를 포함하고; 및 저장된 초기 명령 시퀀스를 포함하고, 상기 제어 처리기는 전력이 인가시 실행하고, 상기 제어 처리기의 아키텍쳐에 의해 요구되는 상기 부트 코드들 중 어느 것을 사용해서도 부트 처리를 계속하도록 상기 데이터 구조를 사용하게 한다.According to various disclosed embodiments, an electronic system is provided comprising: at least one control processor; A portable data module temporarily connected and thus temporarily accessible to the control processor; The portable data module includes boot codes for at least two mutually incompatible architectures, and a data structure indicating which of the boot codes the architectures require; And a stored initial command sequence, wherein the control processor is configured to execute upon power up and use the data structure to continue boot processing using any of the boot codes required by the architecture of the control processor. do.

다양한 개시된 실시예들에 따라, 컴퓨터 시스템이 제공되고: 상기 컴퓨터 시스템은 그 내부에 저장된 기본 입력/출력 시스템(BIOS) 코드를 가진 판독 전용 메모리(ROM)를 포함하고, 여기서 BIOS 코드는 컴퓨터 시스템의 아키텍쳐 타입과 연관된 식별자를 알고 다수의 컴퓨터 아키텍쳐를 위한 다수의 부트스트랩 코드가 저장된 탈착 가능한 저장 장치내 다수의 메모리 위치를 식별하는 테이블을 가진 미리 정의된 메모리 위치를 알고; ROM에 결합된 인터페이스; 및 상기 인터페이스에 결합된 처리기를 포함하고, 상기 처리기는 탈착 가능한 저장 장치를 검출하기 위하여 BIOS 코드를 실행하고 만약 검출되면 미리 정의된 메모리 위치에 배치하고, 상기 식별자와 연관된 부트스트랩의 위치를 테이블로부터 결정하고, 컴퓨터 시스템에 부트스트랩 코드를 로딩하고 부트스트랩 코드를 실행한다.According to various disclosed embodiments, a computer system is provided: the computer system includes a read only memory (ROM) having a basic input / output system (BIOS) code stored therein, wherein the BIOS code is a Know a predefined memory location with a table that identifies an identifier associated with the architecture type and that identifies a plurality of memory locations in the removable storage device where the plurality of bootstrap codes for the plurality of computer architectures are stored; An interface coupled to the ROM; And a processor coupled to the interface, wherein the processor executes the BIOS code to detect a removable storage device and, if detected, locates in a predefined memory location and locates the bootstrap location associated with the identifier from a table. Determine, load the bootstrap code on the computer system, and execute the bootstrap code.

다양한 개시된 실시예들에 따라, 탈착 가능한 비휘발성 메모리가 제공되고, 상기 탈착 가능한 비휘발성 메모리는: 탈착 가능한 비휘발성 메모리의 미리 정의된 메모리 위치에 저장된 테이블을 포함하고, 상기 테이블은 비휘발성 메모리 내의 다수의 메모리 위치를 식별하고; 및 테이블과 연관된 다수의 메모리 위치들에 저장된 다수의 컴퓨터 아키텍쳐와 연관된 다수의 애플리케이션을 포함한다.According to various disclosed embodiments, a removable nonvolatile memory is provided, the removable nonvolatile memory comprising: a table stored at a predefined memory location of the removable nonvolatile memory, the table in a nonvolatile memory; Identify a plurality of memory locations; And a number of applications associated with a number of computer architectures stored in a number of memory locations associated with a table.

다양한 개시된 실시예들에 따라, 프로그램 가능한 시스템을 작동시키기 위한 방법이 제공되고, 상기 방법은: a) 시작시 시스템의 아키텍쳐 타입에 따라 다른 부트 파일들에 대한 다른 위치를 나타내는 데이터 구조에 의해 지정된 어드레스에서 휴대용 데이터 모듈로부터 실행을 위한 부트 파일을 검색하는 단계; 및 b) 시스템을 작동으로 자동으로 시작하기 위하여 상기 부트 파일을 사용하는 단계를 포함한다.In accordance with various disclosed embodiments, a method is provided for operating a programmable system, the method comprising: a) an address specified by a data structure indicating different locations for different boot files depending on the architecture type of the system at startup; Retrieving a boot file for execution from the portable data module at; And b) using the boot file to automatically start the system into operation.

다양한 개시된 실시예들에 따라, 프로그램 가능한 시스템을 작동시키기 위한 방법이 제공되고, 상기 방법은: 호스트 시스템에 저장된 초기 명령 시퀀스를 사용하여 시스템에 전력을 인가하는 단계; 및 상기 초기 명령 시퀀스의 제어하에서 시스템의 아키텍쳐 타입에 따라 다른 부트 파일들에 대해 다른 위치를 지정하는 휴대용 데이터 모듈의 데이터 구조에 의해 지정된 휴대용 데이터 모듈의 위치로부터 다중 부트 파일들 중 몇몇을 로딩하지만 다른 다중 부트 파일은 로딩하지 않는 단계; 및 상기 시스템을 작동으로 자동으로 시작하기 위하여 상기 부트 파일을 사용하는 단계를 포함한다.According to various disclosed embodiments, a method is provided for operating a programmable system, the method comprising: applying power to a system using an initial command sequence stored at a host system; And load several of the multiple boot files from the location of the portable data module specified by the data structure of the portable data module specifying different locations for different boot files according to the architecture type of the system under the control of the initial command sequence. Not loading multiple boot files; And using the boot file to automatically start the system in operation.

다양한 개시된 실시예들에 따라, 컴퓨터 시스템상에서 실행되는 방법이 제공되고, 상기 방법은: 탈착 가능한 비휘발성 메모리에 미리 정의된 메모리 위치를 배치하기 위하여 기본 입력/출력 시스템(BIOS)을 실행하는 단계를 포함하고, 상기 미리 정의된 메모리 위치는 다수의 컴퓨터 아키텍쳐들에 대한 다수의 부트스트랩 코드가 저장되는 탈착 가능한 비휘발성 메모리 내 다수의 메모리 위치를 식별하는 테이블을 가지며; 컴퓨터 시스템의 아키텍쳐 타입과 연관된 식별자와 연관된 부트스트랩 코드의 위치를 테이블로부터 결정하기 위하여 BIOS를 실행하는 단계; 및 컴퓨터 시스템에 부트스트랩 코드를 로딩하고 부트스트랩 코드를 실행하기 위하여 BIOS를 실행하는 단계를 포함한다.In accordance with various disclosed embodiments, a method is provided that executes on a computer system, the method comprising: executing a basic input / output system (BIOS) to locate a predefined memory location in a removable nonvolatile memory. Wherein the predefined memory location has a table identifying a plurality of memory locations in removable non-volatile memory in which a plurality of bootstrap codes for a plurality of computer architectures are stored; Executing a BIOS to determine from a table a location of bootstrap code associated with an identifier associated with an architecture type of the computer system; And executing the BIOS to load the bootstrap code into the computer system and to execute the bootstrap code.

다양한 개시된 실시예들에 따라, 비휘발성 메모리를 가진 휴대용 모듈로부터 멀티플랫폼 부팅하기 위한 방법들, 시스템들, 및 아키텍쳐들이 제공된다. 바람직하게 휴대용 모듈은 전력 인가시 호스트가 적당한 이진수를 로딩하기 위하여 올바른 오프셋을 계산할 수 있는 테이블과 함께 다중 시스템 아키텍쳐를 부팅하기 위한 올바른 이진수들을 갖는다. In accordance with various disclosed embodiments, methods, systems, and architectures for multiplatform booting from a portable module with nonvolatile memory are provided. Preferably the portable module has the correct binaries for booting the multi-system architecture along with a table where the host can calculate the correct offset to load the proper binary upon power up.

수정예와 변형예Modifications and variations

당업자에 의해 인식될 바와 같이, 본 출원에 기술된 혁신적인 개념들은 애플리케이션들의 거대한 범위에 걸쳐 변형 및 변화되고, 따라서 본 특허 주제의 범위는 주어진 특정 예시적인 지침들 중 임의의 것으로 제한되지 않는다. 첨부된 청구 항들의 사상 및 넓은 범위내에 속하는 모든 상기 대안들, 변형들 및 변화들이 열거된다.As will be appreciated by those skilled in the art, the innovative concepts described in this application are modified and varied over a vast range of applications, and therefore the scope of the present patent subject matter is not limited to any of the specific illustrative instructions given. All such alternatives, modifications, and variations fall within the spirit and broad scope of the appended claims.

휴대용 모듈로부터 부팅하는 시스템은 단어의 엄격한 의미에서 컴퓨터뿐 아니라, 게임 머신, PDA, 또는 프로그램들을 실행할 수 있는 다른 복합 시스템일 수 있다.The system booting from the portable module can be not only a computer in the strict sense of the word, but also a gaming machine, PDA, or other complex system capable of running programs.

휴대용 모듈은 SD 또는 MS 메모리 유니트가 아니라, 아직 존재하지 않는 사양들을 포함하는 탈착 가능한 메모리에 대한 임의의 넓은 범위의 물리적 및 전자적 사양들을 따를 수 있다.The portable module can follow any wide range of physical and electronic specifications for removable memory, including those that are not yet present, not SD or MS memory units.

상기된 다양한 오퍼레이팅 시스템들 및 하드웨어 아키텍쳐들은 단순히 예들이다 - 개시된 본 발명들은 미래에 나타날 수 있는 매우 넓은 범위의 환경들에 적용할 수 있다.The various operating systems and hardware architectures described above are merely examples-the disclosed inventions are applicable to a very wide range of environments that may appear in the future.

테이블 포맷 및 코딩은 상기 실시예들에 기술되지 않았지만, 물론 당업자에 의해 잘 이해될 바와 같이 폭넓게 변형될 수 있다.The table format and coding is not described in the above embodiments, but can of course vary widely as will be appreciated by those skilled in the art.

테이블 위치는 너무 상기 실시예들에 기술된 위치를 가질 필요가 없다. 하나의 선택적인 대안에서, 테이블의 다른 버젼은 상기된 테이블 위치 외에 또는 상기 위치 대신 다른 위치에 포함된다. The table position does not need to have the position described in the above embodiments too. In one optional alternative, other versions of the table are included in other locations besides or instead of the table locations described above.

휴대용 모듈로부터의 부팅이 수동으로 도움을 받음을 수 있는 것은 가능하다. 예를 들어, 컴팩트 유니트는 비록 정상적인 부트 시퀀스가 휴대용 모듈로 브랜치하지 않지만, 로더 프로그램이 부착된 휴대용 모듈내 데이터 테이블에 지정된 위치로부터 부팅을 허용하게 하는 상태를 셋업하기 위하여 사용자가 상호작용을 허용 할 수 있다.It is possible that booting from the portable module can be assisted manually. For example, a compact unit may allow the user to interact to set up a state that allows booting from the location specified in the data table in the portable module to which the loader program is attached, although the normal boot sequence does not branch into the portable module. Can be.

본 출원의 상세한 설명 중 어느 것도 임의의 특정 엘리먼트, 단계, 또는 기능이 청구 범위내에 포함되어야 하는 필수 엘리먼트인 것을 의미하는 것으로 판독되지 않는다: 특허 주제의 범위는 허용된 청구항들에 의해서만 한정된다. 게다가, 이들 청구항들 중 어느 것도 만약 정확한 단어들 "수단" 다음에 분사가 뒤따르지 않으면 35 USC 섹션(112)의 그래프 6을 호출하는 것으로 의도되지 않는다.Nothing in the description of the present application is read to mean that any particular element, step, or function is an essential element that should be included in the claims: the scope of the patent subject matter is defined only by the allowed claims. In addition, none of these claims is intended to call graph 6 of 35 USC section 112 if no injection follows the correct words “means”.

출원된 청구항들은 가능한 한 포괄적이고, 주제는 의도적으로 포기되고, 전용되거나, 철회되지 않는다.The claimed claims are as inclusive as possible and the subject matter is not intentionally waived, dedicated or withdrawn.

상술한 바와 같이, 본 발명은, 탈착 가능한 저장 장치로부터 다중 아키텍쳐 부트스트랩핑(bootstrapping)을 위한 시스템과 방법을 제공하는데 사용된다.As noted above, the present invention is used to provide a system and method for multiple architecture bootstrapping from removable storage devices.

Claims (54)

호스트 시스템을 위한 단일 아키텍쳐 타입의 부팅을 위해 호스트 시스템과 인터페이스 하는 탈착 가능한 메모리 시스템으로서, A removable memory system that interfaces with the host system for a single architecture type of boot for the host system. 적어도 두 개의 상호 비호환성인 컴퓨터 시스템 아키텍쳐 타입을 위한 부트 코드와, 상기 부트 코드의 메모리 위치에 따른 상기 비호환성 아키키텍쳐 타입과 상관(correlate)되는 데이터 구조를 포함하는 메모리; 및 A memory including boot code for at least two mutually incompatible computer system architecture types and a data structure correlated with the incompatible architecture type according to a memory location of the boot code; And 상기 메모리와 통신을 위한 것으로, 상기 호스트 시스템과 탈착 가능한 인터페이싱을 위한 인터페이스;를 포함하며, And a communication interface with the memory, the interface for removable interface with the host system. 상기 인터페이스는 호스트 시스템으로부터 제1 요청을 수신하며, 상기 호스트 시스템의 상기 제1 요청은 상기 호스트 시스템의 단일 아키텍쳐 타입에 기초한 상기 부트 코드의 메모리 위치를 식별하기 위한 데이터 구조에 액세스하기 위한 것임을 특징으로 하며, The interface receives a first request from a host system, wherein the first request of the host system is for accessing a data structure for identifying a memory location of the boot code based on a single architecture type of the host system , 상기 인터페이스는 호스트 시스템으로부터 상기 부트 코드의 메모리 위치로부터 상기 아키텍쳐 타입의 부트 코드를 로드하기 위한 제2 요청을 수신하되, 상기 제2 요청은 상기 호스트 시스템의 부팅을 시작하기 위한 것임을 특징으로 하는 메모리 시스템. The interface receives from the host system a second request to load the architecture type boot code from a memory location of the boot code, wherein the second request is to initiate booting of the host system . 제1항에 있어서, 상기 메모리는 The method of claim 1, wherein the memory is 적어도 4개의 상호 비호환성인 컴퓨터 시스템의 아키텍쳐 타입의 부트 코드를 포함하는 것을 특징으로 하는 메모리 시스템. At least four mutually incompatible architectures of the computer system architecture type of boot code. 제1항에 있어서, 상기 데이터 구조는 테이블인 것을 특징으로 하는 메모리 시스템. 2. The memory system of claim 1 wherein the data structure is a table. 제1항에 있어서, 상기 메모리 시스템은 The system of claim 1, wherein the memory system is 암호화 엔진(cryptographic engine) 및 상기 암호화 엔진을 통해서만 액세스 가능한 메모리 공간을 포함하는 것을 특징으로 하는 메모리 시스템. And a cryptographic engine and memory space accessible only through the cryptographic engine. 제1항에 있어서, 상기 메모리는 The method of claim 1, wherein the memory is 적어도 하나의 데스크탑 컴퓨터 아키텍쳐를 위한 부트 파일과 더불어 ARM 및 PPC 아키텍쳐를 위한 부트 파일을 포함하는 것을 특징으로 하는 메모리 시스템. And a boot file for the ARM and PPC architectures, along with a boot file for the at least one desktop computer architecture. 제1항에 있어서, 상기 데이터 구조는 The method of claim 1, wherein the data structure 상기 메모리에서 미리 설정된 위치에 저장되는 것을 특징으로 하는 메모리 시스템. And store at a predetermined position in the memory. 제1항에 있어서, 상기 컴퓨터 시스템은 전화 기능을 포함하는 것을 특징으로 하는 메모리 시스템. 2. The memory system of claim 1 wherein the computer system includes a telephone function. 제1항에 있어서, 상기 호스트 시스템은 단일 아키텍쳐 타입으로 구성되는 것을 특징으로 하는 메모리 시스템. 2. The memory system of claim 1 wherein the host system is of a single architecture type. 제1항에 있어서, 상기 데이터 구조는 The method of claim 1, wherein the data structure 적어도 하나의 아키텍쳐 타입에 대해서 부팅을 지원하지 않는 메모리 시스템을 지시하는 지시자를 가지는 적어도 하나의 아키텍쳐 타입과 상관(correlate)되는 것을 특징으로 하는 메모리 시스템. And correlate with at least one architecture type having an indicator indicating a memory system that does not support booting for at least one architecture type. 컴퓨터 시스템으로서, As a computer system, 컴퓨터 시스템의 아키텍쳐 타입을 식별하기 위한 저장된 식별자; A stored identifier for identifying an architecture type of the computer system; 내부에 저장된 기본 입력/출력 시스템(BIOS) 코드를 갖는 판독 전용 메모리(ROM)로서, 상기 BIOS 코드는 상기 식별자 및 다수의 컴퓨터 아키텍쳐를 위한 다수의 부트스트랩 코드가 저장된 탈착 가능 저장 장치 내에 다수의 메모리 위치를 식별하는 테이블을 갖는 미리 정의된 메모리 위치에 관한 지식을 갖는, 판독 전용 메모리(ROM); Read-only memory (ROM) having a basic input / output system (BIOS) code stored therein, wherein the BIOS code is a plurality of memories in a removable storage device storing the identifier and a plurality of bootstrap codes for a plurality of computer architectures. Read-only memory (ROM) having knowledge of a predefined memory location having a table identifying the location; 상기 탈착 가능한 저장 장치와 인터페이스를 위한 외부 인터페이스; 및 An external interface for interfacing with the removable storage device; And 상기 ROM 및 상기 외부 인터페이스와 통신하는 처리기로서, 상기 처리기는, 상기 BIOS 코드를 실행하고, 상기 탈착 가능한 저장 장치를 검출하여 만약 검출되면, 상기 탈착 가능한 저장 장치에 미리 정의된 메모리 위치를 위치시키고, 상기 식별자를 이용하여 컴퓨터 시스템의 아키텍쳐 타입과 호환되는 부트스트랩 코드의 위치를 상기 테이블로부터 결정하며, 상기 컴퓨터 시스템에 상기 부트스트랩 코드를 로딩하고, 상기 컴퓨터 시스템의 부팅을 시작하기 위해 상기 부트스트랩 코드를 실행하는 상기 처리기;를 포함하는 것을 특징으로 하는 컴퓨터 시스템. A processor in communication with the ROM and the external interface, the processor executing the BIOS code, detecting the removable storage device and, if detected, placing a predefined memory location in the removable storage device; The identifier is used to determine the location of bootstrap code compatible with an architecture type of a computer system from the table, to load the bootstrap code into the computer system, and to start booting the computer system. And the processor to execute the computer system. 제10항에 있어서, 상기 테이블은 The method of claim 10, wherein the table is 다수의 컴퓨터 아키텍쳐 및 연관된 다수의 메모리 위치에 각각 유일한 다수의 식별자를 포함하는 것을 특징으로 하는 컴퓨터 시스템. And a plurality of identifiers, each unique in a plurality of computer architectures and a plurality of associated memory locations. 제10항에 있어서, 상기 식별자는 인덱스인 것을 특징으로 하는 컴퓨터 시스템. 11. The computer system of claim 10 wherein the identifier is an index. 제10항에 있어서, 상기 처리기는 The processor of claim 10, wherein the processor 컴퓨터 시스템에 테이블을 카피하고 테이블을 검색하기 위해 BIOS 코드를 실행하는 것을 특징으로 하는 컴퓨터 시스템. A computer system for copying a table to a computer system and executing BIOS code to retrieve the table. 제10항에 있어서, 상기 탈착 가능한 저장 장치는 The device of claim 10, wherein the removable storage device is SD 메모리 카드, 컴팩트 플래시, 하드 드라이브 및 광학 디스크 중 적어도 하나임을 특징으로 하는 컴퓨터 시스템. At least one of an SD memory card, a compact flash, a hard drive, and an optical disk. 제10항에 있어서, 상기 다수의 부트스트랩 코드는 11. The method of claim 10, wherein the plurality of bootstrap code is 아키텍쳐 타입인 IA32, Alpha, Arm, Cris, IA64, M64k, Mips, Mips64, Parisc, Ppc, Ppc64, S390, S390x, Sh, Sh64, Sparc, 및 Sparc64 중 적어도 둘을 포함하는 것을 특징으로 하는 컴퓨터 시스템.A computer system comprising at least two of architecture types IA32, Alpha, Arm, Cris, IA64, M64k, Mips, Mips64, Parisc, Ppc, Ppc64, S390, S390x, Sh, Sh64, Sparc, and Sparc64. 제10항에 있어서, 상기 미리 정의된 메모리 위치는 The method of claim 10, wherein the predefined memory location is 제1 논리 블록 어드레스(LBA)인 것을 특징으로 하는 컴퓨터 시스템. And a first logical block address (LBA). 제10항에 있어서, 상기 미리 결정된 메모리 위치는 11. The method of claim 10, wherein the predetermined memory location is 마스터 부트 레코드가 상기 컴퓨터 시스템의 아키텍쳐 타입에 따라 배치되는 장소인 것을 특징으로 하는 컴퓨터 시스템. And wherein the master boot record is the location where the master boot record is located according to the architecture type of the computer system. 제17항에 있어서, 상기 마스터 부트 레코드는 18. The system of claim 17, wherein the master boot record is 상기 탈착 가능한 저장 장치 내의 다수의 메모리 위치 중 하나에 배치되는 것을 특징으로 하는 컴퓨터 시스템. And at one of a plurality of memory locations within said removable storage device. 제10항에 있어서, 상기 컴퓨터 시스템은 The computer system of claim 10, wherein the computer system is 단일 아키텍쳐 타입으로 구성되는 것을 특징으로 하는 컴퓨터 시스템. A computer system comprising a single architecture type. 호스트 시스템과 인터페이싱하는 탈착 가능한 메모리를 이용하여 호스트 컴퓨터 시스템을 부트(boot)하는 방법으로서, A method of booting a host computer system using removable memory that interfaces with the host system, 상기 호스트 컴퓨터 시스템에 저장된 초기 명령 시퀀스를 사용하여 상기 호스트 컴퓨터 시스템에 전력을 인가하는 단계; Applying power to the host computer system using an initial sequence of instructions stored in the host computer system; 상기 호스트 컴퓨터 시스템과 외부 인터페이스를 통해 인터페이스하는 상기 탈착 가능한 저장 장치를 검출하는 단계; Detecting the removable storage device interfacing with the host computer system via an external interface; 상기 호스트 컴퓨터 시스템의 아키텍쳐 타입을 식별하며, 상기 호스트 컴퓨터 시스템에 저장된 식별자를 읽는 단계; Identifying an architecture type of the host computer system and reading an identifier stored in the host computer system; 미리 정의된 메모리는 다수의 컴퓨터 아키텍쳐를 위한 다수의 부트스트랩 코드가 저장된 탈착 가능 저장 장치 내에 다수의 메모리 위치를 식별하는 테이블을 갖으며, 탈착 가능한 저장 장치에 미리 정의된 메모리 위치를 위치시키는 단계; The predefined memory has a table identifying a plurality of memory locations in a removable storage device having stored therein a plurality of bootstrap code for a plurality of computer architectures, the method comprising: placing a predefined memory location on the removable storage device; 호스트 컴퓨터 시스템의 아키텍쳐 타입과 호환되는 부트스트랩 코드의 탈착 가능한 저장 장치에서 위치를 결정하기 위해 식별자를 이용하는 단계; Using the identifier to determine a location in the removable storage of bootstrap code that is compatible with the architecture type of the host computer system; 상기 호스트 컴퓨터 시스템에 상기 부트스트랩 코드를 로딩하는 단계; 및 Loading the bootstrap code into the host computer system; And 상기 호스트 컴퓨터 시스템의 부팅의 시작을 위해 부트스트랩 코드를 실행하는 단계;를 포함하는 것을 특징으로 하는 부트하는 방법. Executing bootstrap code to initiate booting of the host computer system. 제20항에 있어서, 상기 탈착 가능한 저장 장치에서 미리 정의된 메모리 위치를 위치시키는 단계는 21. The method of claim 20, wherein locating a predefined memory location in the removable storage device 상기 탈착 가능한 저장 장치로부터 상기 호스트 컴퓨터 시스템으로 상기 테이블을 복사하는 것을 포함하는 것을 특징으로 하는 부트하는 방법. Copying the table from the removable storage device to the host computer system. 제21항에 있어서, 상기 호스트 컴퓨터 시스템은 22. The system of claim 21, wherein said host computer system is 단일 아키텍쳐 타입으로 구성되는 것을 특징으로 하는 부트하는 방법. Boot method, characterized in that consisting of a single architecture type. 제21항에 있어서, The method of claim 21, 상기 식별자를 이용하여 탈착 가능한 저장 장치가 상기 호스트 컴퓨터 시스템의 아키텍쳐 타입의 부팅의 지원 여부를 결정하는 단계;를 더 포함하는 것을 특징으로 하는 부트하는 방법. And determining, by the removable storage device, whether the booting of the architecture type of the host computer system is supported using the identifier. 제23항에 있어서, 상기 테이블은 The method of claim 23, wherein the table is 상기 탈착 가능한 저장 장치가 호스트 컴퓨터 시스템의 아키텍쳐 타입의 부팅을 지원하지 않음을 지시하는 지시자를 가지는 호스트 컴퓨터 시스템의 아키텍쳐 타입과 상관(correlate)되는 것을 특징으로 하는 부트하는 방법. And correlating with the architecture type of the host computer system having an indicator that the removable storage device does not support booting of the architecture type of the host computer system. 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020097013739A 2006-12-31 2007-12-28 Portable multi-platform booting systems and architectures KR101120956B1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US11/618,870 2006-12-31
US11/618,872 US7925875B2 (en) 2006-12-31 2006-12-31 Systems and methods for identifying and booting a computer architecture
US11/618,870 US20080162916A1 (en) 2006-12-31 2006-12-31 Portable Multi-Platform Booting
US11/618,872 2006-12-31

Publications (2)

Publication Number Publication Date
KR20090097171A KR20090097171A (en) 2009-09-15
KR101120956B1 true KR101120956B1 (en) 2012-03-05

Family

ID=39588994

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097013739A KR101120956B1 (en) 2006-12-31 2007-12-28 Portable multi-platform booting systems and architectures

Country Status (3)

Country Link
KR (1) KR101120956B1 (en)
TW (1) TWI441077B (en)
WO (1) WO2008083277A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9588774B2 (en) 2014-03-18 2017-03-07 International Business Machines Corporation Common boot sequence for control utility able to be initialized in multiple architectures
US9916185B2 (en) 2014-03-18 2018-03-13 International Business Machines Corporation Managing processing associated with selected architectural facilities
US9582295B2 (en) 2014-03-18 2017-02-28 International Business Machines Corporation Architectural mode configuration

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100247952B1 (en) * 1997-04-11 2000-03-15 윤종용 Booting control apparatus and method of pda
US20040068645A1 (en) 2002-06-28 2004-04-08 Jean-Francois Larvoire Operating system selector and data storage drive

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG138439A1 (en) * 2003-04-02 2008-01-28 Trek 2000 Int Ltd Portable operating system and method to load the same
US7664836B2 (en) * 2004-02-17 2010-02-16 Zhe Khi Pak Device and method for booting an operation system for a computer from a passive directly attached network device
KR100677327B1 (en) * 2004-06-16 2007-02-02 엘지전자 주식회사 Mobile communication terminal with dual operating system
US7490318B2 (en) * 2005-02-25 2009-02-10 Inventec Corporation Computer platform operating system compatibility management method and system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100247952B1 (en) * 1997-04-11 2000-03-15 윤종용 Booting control apparatus and method of pda
US20040068645A1 (en) 2002-06-28 2004-04-08 Jean-Francois Larvoire Operating system selector and data storage drive

Also Published As

Publication number Publication date
WO2008083277A1 (en) 2008-07-10
TW200844850A (en) 2008-11-16
KR20090097171A (en) 2009-09-15
WO2008083277A9 (en) 2008-12-31
TWI441077B (en) 2014-06-11

Similar Documents

Publication Publication Date Title
US7925875B2 (en) Systems and methods for identifying and booting a computer architecture
KR101035473B1 (en) Direct boot arrangement using a nand flash memory
KR950002945B1 (en) Apparatus and method for loading a system reference diskette image from a system partition in a personal computer system
US7073013B2 (en) Mass storage device with boot code
US8352721B1 (en) Initiating an operating system boot from firmware
KR930004902B1 (en) Apparatus and method for preventing unauthorized access to bios to bios in a personal computer system
US7702894B2 (en) System and method for loading programs from HDD independent of operating system
KR100924497B1 (en) System and method for booting from a non-volatile application and file storage device
US7689802B2 (en) Controlling memory access in a multi-booting system
US7617391B2 (en) Method and apparatus for dynamically selecting one of multiple firmware images for booting an I/O controller
US20080162916A1 (en) Portable Multi-Platform Booting
US20040230963A1 (en) Method for updating firmware in an operating system agnostic manner
US9239725B2 (en) System and method for installing an OS via a network card supporting PXE
US20090094447A1 (en) Universal serial bus flash drive for booting computer and method for loading programs to the flash drive
US6934833B2 (en) Operating system selector and data storage drive
US7484085B2 (en) Booting method and a computer using the booting method
US11314523B2 (en) Master boot record (MBR)/global unique identifer (GUID) partition table (GPT) hybrid disk that includes GPT bootstrap code
EP1485797B1 (en) Boot process
KR101120956B1 (en) Portable multi-platform booting systems and architectures
US6971003B1 (en) Method and apparatus for minimizing option ROM BIOS code
JP3693240B2 (en) Method and system for executing adapter configuration routines utilizing different operating modes
CN100403262C (en) Computer device startup method and computer device employing same method
US20120060021A1 (en) Method and Device For Modular Configuration Deployment At Run Time
CN117707431A (en) BIOS-based software RAID data reading method and device
KR101271784B1 (en) Method for executing multiple boot manager

Legal Events

Date Code Title Description
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: 20150119

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160119

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170119

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180201

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee