KR101120956B1 - Portable multi-platform booting systems and architectures - Google Patents
Portable multi-platform booting systems and architectures Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/24—Loading of the microprogram
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
- G06F9/441—Multiboot arrangements, i.e. selecting an operating system to be loaded
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44536—Selecting among different versions
- G06F9/44542—Retargetable
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
본 출원은, 일반적으로 컴퓨터 시스템들 분야에 관한 것이고, 보다 구체적으로는 탈착 가능한 저장 장치로부터 다중 아키텍쳐 부트스트랩핑(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
휴대용 전자제품들의 많은 개발들은 콘텐트 소유권에 의해 의도되었다. 음악, 비디오들, 및 게임들은 빈번하게 표절되고, 양심적인 바이어들에 의해 지불된 단가 및 카피라이트 소유자들에 의해 수신된 평균 단가 사이의 갭은 개발상의 짐이다. 따라서, 파괴를 불가능하게 하는 비휘발성 메모리 모듈들을 개발하기 위한 극한 노력들이 이루어졌다. 샌디스크에 의해 판매되는 것과 같은 진보된 메모리 모듈들은 공통적으로 호스트 머신에 보여지지 않게 암호화 알고리듬들을 실행할 수 있는 처리기를 포함하여, 보호된 콘텐트는 직접적으로 액세스될 수 없다. 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
본 발명들을 실행하기 위한 도 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
시스템 버스(30)는 메모리 버스 또는 메모리 제어기, 주변 버스, 및 임의의 다양한 버스 아키텍쳐를 사용하는 로컬 버스를 포함하는 몇몇 타입의 버스 구조들 중 임의의 것일 수 있다. 시스템 메모리(25)는 간단히 메모리라 하고, 판독 전용 메모리(ROM)(40) 및 랜덤 액세스 메모리(RAM)(45)를 포함한다. 기본 입력/출력 시스템(BIOS) 프로그램(50)은 ROM(40)에 저장되고 하기에 논의되는 시작 동안 같은 컴퓨터 시스템(10) 내의 엘리먼트들 사이에서 정보 전달을 돕는 기본 루틴들 또는 프로그램들을 포함하는 코드를 포함한다. 컴퓨터 시스템(10)은 하드 드라이브(55) 및 CD ROM 또는 다른 광학 매체 같은 광학 드라이브(65)를 더 포함한다.
하드 드라이브(55) 및 광학 드라이브(65)는 각각 하드 드라이브 인터페이스 및 광학 드라이브 인터페이스에 의해 시스템 버스(30)에 연결된다. 드라이브들 및 연관된 컴퓨터 판독 가능 매체는 컴퓨터 판독 가능 명령들, 데이터 구조들, 프로그램 모듈들 및 컴퓨터 시스템(10)을 위한 다른 데이터의 비휘발성 저장을 제공한다. 자기 카세트들, 플래시 메모리 카드들, 디지털 비디오 디스크들, 랜덤 액세스 메모리들(RAM), 판독 전용 메모리들(ROM), 및 등등 같은 컴퓨터에 의해 액세스 가능한 데이터를 저장할 수 있는 임의의 타입의 컴퓨터 판독 매체가 예시적인 오퍼레이팅 환경에서 사용될 수 있는 것이 구현되어야 한다. 다수의 프로그램 모듈들은 하드 드라이브(55), 광학 드라이브(65), ROM(40), 또는 RAM(45)상에 저장되고, 오퍼레이팅 시스템(70), 하나 또는 그 이상의 애플리케이션 프로그램들(75), 다른 프로그램 모듈들(80), 및 프로그램 데이터(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,
도 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
각각의 타입의 컴퓨터 시스템 아키텍쳐는 컴퓨터 시스템 아키텍쳐 타입을 식 별하는 유일한 식별자가 할당된다. 이런 식별자는 본 발명에 따라 설계된 탈착 가능한 저장 장치와 인터페이스하고자 하는 각각의 컴퓨터 시스템의 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
테이블(45)은 탈착 가능한 저장 장치(35)가 지원하는 다양한 컴퓨터 아키텍쳐를 위한 마스터 부트 레코드를 위한 메모리 위치들(210-1 내지 210-x로 표시됨)을 열거하는 아키텍쳐 컬럼(210)을 포함한다. 상기된 바와 같이, x는 17이다. 비록 각각 17개의 다른 아키텍쳐를 위한 하나의 식별자가 있지만, 탈착 가능한 저장 장치(35)는 이용 가능하지 않은 17개의 마스터 부트 레코드를 저장하지 않는다. 따라서, 테이블(45)은 Arm? 아키텍쳐에 할당된 식별자 "7999"를 나타낼 수 있지만, 탈 착 가능한 저장 장치(35)가 예를 들어 추후에 보다 상세히 논의되는 메모리 공간을 절약하기 위하여 그 내부에 저장된 호환 가능한 마스터 부트 레코드를 갖지 않는 것은 바람직할 수 있다.The table 45 includes an
아키텍쳐 컬럼(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
요약하여, 식별자들(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
상기된 바와 같이, 비록 테이블(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,
도 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
종래 기술 시스템들에서, 마스터 부트 레코드가 배치된 드라이브를 식별하면, 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),
본 발명의 실시예에 따라, 테이블(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
따라서, BIOS 프로그램(50)은 섹터 1에 배치된 테이블(45)을 판독하고 컴퓨터 시스템(10)의 아키텍쳐와 호환할 수 있는 마스터 부트 레코드 및 부트스트랩 코 드의 위치를 발견하기 위하여 ROM(40)에 버닝된 식별자를 사용한다. 게다가, BIOS 프로그램(50)은 정보를 선택하고 테이블(45)로부터 옵션들을 실행하기 위하여 구성된다. 선택적으로, 테이블(45)의 정보 및 옵션들은 선택되고 BIOS 프로그램(50)과 작동하는 ROM(40)에 저장된 프로그램을 통하여 실행된다.Thus,
도 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,
순차적으로, 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,
상기된 바와 같이, 본 발명의 실시예에 따라, 탈착 가능한 저장 장치(35)는 다른 아키텍쳐를 가진 제 2 컴퓨터 시스템에 작동 가능하게 연결된 컴퓨터 시스템(10)으로부터 분리될 수 있고 제 2 컴퓨터 시스템을 부트스트랩한다.As noted above, in accordance with an embodiment of the present invention,
예를 들어, 도 4는 상기된 방법 및 시스템에 따라 탈착 가능한 저장 장치(35)의 일반적인 예시적 블록도를 도시한다. 제 1 예시적인 실시예에서, 탈착 가능한 저장 장치(35)는 인텔? 아키텍쳐를 포함하는 컴퓨터 시스템(410)에 작동 가능하게 결합된다. 컴퓨터 시스템(410)이 턴온될 때, BIOS 프로그램은 테이블(45)의 식별자에 액세스한다. 테이블(45)로부터, BIOS 프로그램은 마스터 부트 레코드(430)의 위치를 결정하고, 마스터 부트 레코드를 카피하고 이를 실행되는 컴퓨터 시스템(410)에 저장한다.For example, FIG. 4 shows a general exemplary block diagram of a
제 2 예시적인 실시예에서, 탈착 가능한 저장 장치(35)는 Alpha? 아키텍쳐를 포함하는 컴퓨터 시스템(420)에 작동 가능하게 결합된다. 컴퓨터 시스템(420)이 턴온될 때, BIOS 프로그램은 테이블(45)의 식별자에 액세스한다. 테이블(45)로부터, BIOS 프로그램은 마스터 부트 레코드(440)의 위치를 결정하고, 마스터 부트 레 코드를 카피하고 실행되는 컴퓨터 시스템(420)의 RAM에 이를 저장한다.In a second exemplary embodiment,
상기는 본 발명의 원리들을 단순하게 도시한다. 따라서 당업자가 본 발명의 원리들을 구현하고 따라서 본 발명의 사상 및 범위내에 있는 다수의 다른 장치들을 고안할 것이라는 것이 인식될 것이다.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
식별자가 테이블(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
본 발명의 이 실시예에서, 이 실시예의 식별자들이 인덱스들로서 기능하지 않기 때문에, 테이블의 아키텍쳐 컬럼에 빈 엔트리들(예를 들어 널 또는 "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
본 발명의 다른 실시예에서, 컴퓨터 시스템은 운용되고 오퍼레이팅 시스템은 이미 로딩되었다. 본 발명의 이 실시예에서, 다중 애플리케이션은 탈착 가능한 저장 장치(예를 들어 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)
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)
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)
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)
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 |
-
2007
- 2007-12-28 KR KR1020097013739A patent/KR101120956B1/en not_active IP Right Cessation
- 2007-12-28 WO PCT/US2007/089050 patent/WO2008083277A1/en active Application Filing
- 2007-12-31 TW TW096151677A patent/TWI441077B/en not_active IP Right Cessation
Patent Citations (2)
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 |